@bolta-io/cli 0.4.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/CLAUDE.md +65 -2
  3. package/README.md +54 -6
  4. package/dist/bin/bolta.js +5 -1
  5. package/dist/bin/bolta.js.map +1 -1
  6. package/dist/src/client/bolta-client.d.ts +12 -1
  7. package/dist/src/client/bolta-client.d.ts.map +1 -1
  8. package/dist/src/client/bolta-client.js +91 -16
  9. package/dist/src/client/bolta-client.js.map +1 -1
  10. package/dist/src/commands/bank-account/index.d.ts +3 -0
  11. package/dist/src/commands/bank-account/index.d.ts.map +1 -0
  12. package/dist/src/commands/bank-account/index.js +62 -0
  13. package/dist/src/commands/bank-account/index.js.map +1 -0
  14. package/dist/src/commands/bank-account/list.d.ts +3 -0
  15. package/dist/src/commands/bank-account/list.d.ts.map +1 -0
  16. package/dist/src/commands/bank-account/list.js +17 -0
  17. package/dist/src/commands/bank-account/list.js.map +1 -0
  18. package/dist/src/commands/bank-account/sync.d.ts +3 -0
  19. package/dist/src/commands/bank-account/sync.d.ts.map +1 -0
  20. package/dist/src/commands/bank-account/sync.js +17 -0
  21. package/dist/src/commands/bank-account/sync.js.map +1 -0
  22. package/dist/src/commands/bank-account/transactions.d.ts +13 -0
  23. package/dist/src/commands/bank-account/transactions.d.ts.map +1 -0
  24. package/dist/src/commands/bank-account/transactions.js +47 -0
  25. package/dist/src/commands/bank-account/transactions.js.map +1 -0
  26. package/dist/src/commands/document/get.d.ts +3 -0
  27. package/dist/src/commands/document/get.d.ts.map +1 -0
  28. package/dist/src/commands/document/get.js +24 -0
  29. package/dist/src/commands/document/get.js.map +1 -0
  30. package/dist/src/commands/document/index.d.ts +3 -0
  31. package/dist/src/commands/document/index.d.ts.map +1 -0
  32. package/dist/src/commands/document/index.js +40 -0
  33. package/dist/src/commands/document/index.js.map +1 -0
  34. package/dist/src/commands/document/issue.d.ts +8 -0
  35. package/dist/src/commands/document/issue.d.ts.map +1 -0
  36. package/dist/src/commands/document/issue.js +28 -0
  37. package/dist/src/commands/document/issue.js.map +1 -0
  38. package/dist/src/commands/examples/index.d.ts.map +1 -1
  39. package/dist/src/commands/examples/index.js +40 -0
  40. package/dist/src/commands/examples/index.js.map +1 -1
  41. package/dist/src/commands/guide/index.d.ts.map +1 -1
  42. package/dist/src/commands/guide/index.js +144 -3
  43. package/dist/src/commands/guide/index.js.map +1 -1
  44. package/dist/src/commands/invoice/reference-id.js +2 -2
  45. package/dist/src/commands/invoice/reference-id.js.map +1 -1
  46. package/dist/src/commands/invoice/status.js +2 -2
  47. package/dist/src/commands/invoice/status.js.map +1 -1
  48. package/dist/src/commands/schema/index.d.ts.map +1 -1
  49. package/dist/src/commands/schema/index.js +1 -0
  50. package/dist/src/commands/schema/index.js.map +1 -1
  51. package/dist/src/types/api.d.ts +98 -0
  52. package/dist/src/types/api.d.ts.map +1 -1
  53. package/dist/src/utils/input.js +33 -8
  54. package/dist/src/utils/input.js.map +1 -1
  55. package/dist/src/validators/schemas.d.ts +183 -17
  56. package/dist/src/validators/schemas.d.ts.map +1 -1
  57. package/dist/src/validators/schemas.js +178 -10
  58. package/dist/src/validators/schemas.js.map +1 -1
  59. package/llms.txt +50 -6
  60. package/package.json +4 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @bolta-io/cli
2
2
 
3
+ ## 0.6.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 905ee6e: 홈택스 국세 증명 서류 5종을 발급하고 결과와 원본 PDF 주소를 조회하는 `document issue`, `document get` 명령을 추가합니다.
8
+ `TOO_MANY_IN_FLIGHT`는 재시도 없이 바로 안내하고, `--stdin` 입력을 모두 읽은 뒤 대기 없이 종료합니다.
9
+
10
+ ## 0.5.1
11
+
12
+ ### Patch Changes
13
+
14
+ - 2573c5e: 입출금내역 API 계약 변경을 반영합니다. 계좌와 거래 응답의 `bank`가 금융결제원 3자리 은행코드 `bankCode`(예: `004` 국민은행, `088` 신한은행)로 바뀌었고, `currencyCode`는 ISO 4217 코드(`KRW`, `USD`, `JPY`)로 고정됐습니다. 이전 필드는 남기지 않습니다. `bolta guide bank-account`에 은행코드 표를 더하고 테스트 키 계좌를 새 코드로 고쳤습니다. cursor가 받을 때의 조회 조건과 API 키에 묶인다는 안내를 도움말, 가이드, 문서에 반영하고, `INVALID_CURSOR`가 나면 조건이나 키를 바꿨는지 확인하도록 안내합니다. 도움말의 예시 cursor도 새 형식으로 바꿨습니다.
15
+
16
+ ## 0.5.0
17
+
18
+ ### Minor Changes
19
+
20
+ - 74db6ac: 입출금내역 조회 명령 `bolta bank-account list`, `transactions`, `sync`를 추가했습니다. `transactions --all`로 남은 변경분을 끝까지 이어서 받고, 입출금내역 오류 코드마다 해결 방법을 안내합니다.
21
+
3
22
  ## 0.4.2
4
23
 
5
24
  ### Patch Changes
package/CLAUDE.md CHANGED
@@ -130,6 +130,51 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
130
130
  - 통신 실패는 `UNKNOWN`으로 돌려주지 않습니다. 사업자등록 상태를 확인할 수 없으면 `503 LOOKUP_UNAVAILABLE`입니다.
131
131
  - 라이브 키는 정상 조회 결과마다 포인트를 차감합니다. 테스트 키는 고정 번호 9개만 조회합니다(`bolta guide business-registration-status`).
132
132
 
133
+ ### 입출금내역 조회
134
+
135
+ 볼타 대시보드에 연결한 계좌의 목록과 거래 변경분을 조회합니다. 발급자 등록과 인증서가 필요 없고, API로는 계좌를 연결할 수 없습니다.
136
+
137
+ ```bash
138
+ bolta bank-account list
139
+ bolta bank-account transactions --from 2026-09-01 --to 2026-09-30 --all
140
+ bolta bank-account transactions --cursor <저장한 nextCursor> --all
141
+ bolta bank-account sync
142
+ ```
143
+
144
+ - 포인트는 차감하지 않습니다. 스탠다드 플랜 미만이면 `402 PLAN_UPGRADE_REQUIRED`입니다.
145
+ - 거래는 거래 시각이 아니라 볼타에서 바뀐 순서로 옵니다. 받은 순서대로 `ACTIVE`는 덮어쓰고 `REMOVED`는 지우세요.
146
+ - `hasMore`가 `false`여도 `nextCursor`는 항상 있습니다. 저장해 두고 다음 수집 때 `--cursor`로 넘기세요.
147
+ - cursor는 받을 때의 조회 조건(`--from`, `--to`, `--bank-account-id`, `--type`)과 API 키에 묶입니다. 조건마다 따로 저장하고, 조건을 바꿨거나 테스트 키에서 라이브 키로 옮겼다면 cursor 없이 다시 시작하세요. `--limit`은 바꿔도 됩니다.
148
+ - `bankCode`는 금융결제원 3자리 은행코드, `currencyCode`는 ISO 4217 코드(`KRW`, `USD`, `JPY`)입니다. 값이 늘 수 있으니 모르는 값도 처리하고 화면에는 `bankName`을 보여 주세요.
149
+ - `items`가 비어도 `hasMore`가 `true`일 수 있습니다. `--all`은 `hasMore`가 `false`가 될 때까지 이어서 조회합니다.
150
+ - `sync`는 사업자마다 30분 1회, 하루 12회입니다. CLI는 자동 재시도하지 않습니다. `202` 뒤에는 `list`로 `syncStatus`가 `IN_PROGRESS`인 계좌가 없어질 때까지 확인하고, 5분쯤 지나 조회하세요.
151
+ - 테스트 키는 고정 계좌 2개와 거래 6건을 돌려줍니다(`bolta guide bank-account`).
152
+
153
+ ### 홈택스 국세 증명 서류 발급
154
+
155
+ 사업자등록증명, 사업자등록증 재발급, 납세증명서, 부가가치세 과세표준증명, 표준재무제표증명을 비동기로 발급합니다. API 키가 속한 사업자만 요청할 수 있으며 볼타 대시보드에 공동인증서를 등록해야 합니다.
156
+
157
+ ```bash
158
+ bolta document issue --reference-id order-20260919-001 --data '{
159
+ "businessRegistrationNumber": "1234567890",
160
+ "document": { "type": "BUSINESS_REGISTRATION_PROOF", "language": "KO" }
161
+ }'
162
+
163
+ bolta document get <issuanceKey>
164
+ ```
165
+
166
+ - `BUSINESS_REGISTRATION_PROOF`: `language`는 `KO` 또는 `EN`
167
+ - `BUSINESS_REGISTRATION_CERTIFICATE`: `reason`은 앞뒤 공백을 제외하고 1~10자이며 제어 문자를 쓸 수 없음
168
+ - `TAX_PAYMENT_CERTIFICATE`: `purpose`는 `PAYMENT_RECEIPT` 또는 `OTHER`
169
+ - `VAT_TAX_BASE_PROOF`: `from`은 01월 또는 07월, `to`는 06월 또는 12월이며 최대 5개 연도
170
+ - `STANDARD_FINANCIAL_STATEMENT_PROOF`: `fiscalYearEnd`는 `YYYY-MM`
171
+ - `ACCEPTED`와 `SUBMITTED`는 처리 중입니다. `COMPLETED`의 `downloadUrl`은 5분 동안 유효합니다. 만료되면 다시 조회하세요.
172
+ - `ACTION_REQUIRED`이면 같은 서류를 다시 요청하지 마세요.
173
+ - 서류 한 건에 500포인트를 차감하며 실패하면 차감하지 않습니다.
174
+ - reference-id는 앞뒤 공백 없는 출력 가능한 ASCII 1~255자입니다.
175
+ - 같은 reference-id와 같은 본문은 기존 요청을 반환합니다. 다른 본문에는 새 reference-id를 사용하세요.
176
+ - 테스트 키는 `1000000014`를 바로 완료하고 `1000000071`을 바로 실패 처리합니다.
177
+
133
178
  ## 커맨드 빠른 참조
134
179
 
135
180
  | 커맨드 | 설명 | 데이터 필요 |
@@ -152,6 +197,11 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
152
197
  | `bolta cash-receipt cancel <key> --reference-id <id>` | 현금영수증 전액 취소 | - |
153
198
  | `bolta business-registration-status check <사업자등록번호>` | 사업자등록 상태 조회 | - |
154
199
  | `bolta business-registration-status check-bulk <사업자등록번호...>` | 사업자등록 상태 일괄 조회 (최대 100건) | 번호 인자 또는 --data |
200
+ | `bolta bank-account list` | 연결된 계좌 목록 | - |
201
+ | `bolta bank-account transactions [--from] [--to] [--cursor] [--all]` | 거래 변경분 조회 | - |
202
+ | `bolta bank-account sync` | 입출금내역 동기화 요청 | - |
203
+ | `bolta document issue --reference-id <id>` | 홈택스 국세 증명 서류 발급 요청 | --data |
204
+ | `bolta document get <issuanceKey>` | 서류 발급 결과와 PDF 주소 조회 | - |
155
205
  | `bolta config set <key> <value>` | 설정 | - |
156
206
  | `bolta config show` | 설정 확인 | - |
157
207
  | `bolta config test` | 연결 테스트 | - |
@@ -181,7 +231,7 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
181
231
  | `AUTH_ERROR` | API 키 없음/잘못됨 | `bolta config set api-key <key>` |
182
232
  | `VALIDATION_ERROR` | 입력 데이터 오류 | `bolta schema <command>`로 스키마 확인 |
183
233
  | `INPUT_ERROR` | 명령어·옵션·입력 방식 오류 | `bolta --help` 또는 하위 명령의 `--help`로 사용법 확인 |
184
- | `INVALID_REQUEST` | 세금계산서 요청 검증 실패, 발행 마감일 경과 또는 요청자 관리번호 중복 | `error.message` 확인. 중복이면 `invoice status`로 기존 요청 확인. 마감일은 `invoice due-date`로 확인 |
234
+ | `INVALID_REQUEST` | 요청 검증 실패, 세금계산서 발행 마감일 경과 또는 요청자 관리번호 중복 | `error.message`와 해당 명령의 `schema` 확인. 세금계산서 중복이면 `invoice status`로 기존 요청 확인 |
185
235
  | `HTTP_402` | 포인트 잔액 부족 | https://developers.bolta.io 에서 포인트 충전 |
186
236
  | `HTTP_400` | 잘못된 요청 | error.message 확인, 필수 필드 누락 체크 |
187
237
  | `HTTP_404` | 리소스 없음 | issuanceKey/issuerId 확인 |
@@ -189,7 +239,20 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
189
239
  | `RATE_LIMITED` | 사업자등록 상태 조회 24시간 한도 또는 서비스 전체 일일 한도 초과 | `error.details.retryAfterSeconds`초 뒤 다시 실행 |
190
240
  | `INVALID_BUSINESS_REGISTRATION_NUMBER` | 사업자등록번호 체크섬 불일치 | 번호 확인 |
191
241
  | `LOOKUP_UNAVAILABLE` | 사업자등록 상태 확인 불가 (포인트 미차감) | 잠시 후 다시 실행 |
192
- | `NETWORK_ERROR` | 네트워크 오류 또는 응답 본문 읽기 실패 | 인터넷 연결 확인. 세금계산서 관리번호를 사용했다면 재전송하지 말고 `invoice status`로 접수 여부 확인 |
242
+ | `PLAN_UPGRADE_REQUIRED` | 입출금내역 API를 쓰려면 스탠다드 플랜 이상 필요 | 볼타 대시보드 결제 메뉴에서 플랜 업그레이드 |
243
+ | `INVALID_CURSOR` | 입출금내역 cursor가 손상됐거나, 받을 때와 조회 조건 또는 API 키가 다름 | 같은 조건으로 이전 응답의 `nextCursor`를 그대로 사용. 조건이나 키를 바꿨다면 cursor 없이 다시 조회 |
244
+ | `BANK_ACCOUNT_NOT_FOUND` | 없거나 내 계좌가 아닌 계좌 ID | `bank-account list`의 `id` 확인 |
245
+ | `BANK_ACCOUNT_NOT_CONNECTED` | 연결된 계좌 없이 동기화 요청 | 볼타 대시보드에서 계좌 연결 |
246
+ | `SYNC_IN_PROGRESS` | 입출금내역 동기화가 이미 진행 중 (한도 미차감) | `bank-account list`로 `syncStatus` 확인 |
247
+ | `SYNC_RATE_LIMITED` | 동기화 한도(30분 1회, 하루 12회) 초과 | `error.details.retryAfterSeconds`초 뒤 다시 요청 |
248
+ | `SYNC_UNAVAILABLE` | 동기화 한도를 확인할 수 없어 요청 거절 | 잠시 후 다시 요청 |
249
+ | `CERTIFICATE_REQUIRED` | 서류 발급용 공동인증서 미등록 또는 만료 | 볼타 대시보드에서 인증서 등록 |
250
+ | `TARGET_NOT_ALLOWED` | API 키가 속한 사업자가 아닌 번호 | 사업자등록번호 확인 |
251
+ | `IDEMPOTENCY_CONFLICT` | 같은 서류 발급 reference-id에 다른 본문 사용 | 기존 본문 또는 새 reference-id 사용 |
252
+ | `POINT_RESERVED_BY_IN_FLIGHT_REQUESTS` | 처리 중인 서류 요청까지 합치면 포인트 부족 | 충전하거나 요청 완료 대기 |
253
+ | `TOO_MANY_IN_FLIGHT` | 처리 중인 서류 요청이 5건 | 기존 요청 완료 후 재요청 |
254
+ | `DOCUMENT_ISSUANCE_NOT_FOUND` | 서류 발급 요청 없음 | issuanceKey와 API 키 확인 |
255
+ | `NETWORK_ERROR` | 네트워크 오류 또는 응답 본문 읽기 실패 | 세금계산서는 `invoice status`로 확인. 서류 발급은 같은 reference-id와 같은 본문으로 다시 요청 |
193
256
 
194
257
  ## 개발 명령어
195
258
 
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # bolta
2
2
 
3
- Bolta API CLI - 한국 전자세금계산서와 현금영수증 발행/조회/관리 도구
3
+ Bolta API CLI - 한국 전자세금계산서, 현금영수증, 홈택스 국세 증명 서류 발급/조회 도구
4
4
 
5
- AI 에이전트(Claude Code 등)가 세금계산서와 현금영수증 업무를 자동화할 때 사용할 수 있도록 설계되었습니다.
5
+ AI 에이전트(Claude Code 등)가 세금계산서, 현금영수증, 국세 증명 서류 업무를 자동화할 때 사용할 수 있도록 설계되었습니다.
6
6
 
7
7
  ## 설치
8
8
 
@@ -243,6 +243,41 @@ bolta business-registration-status check-bulk --file numbers.json # {"business
243
243
 
244
244
  통신 실패는 `UNKNOWN`으로 돌려주지 않습니다. 사업자등록 상태를 확인할 수 없으면 `503 LOOKUP_UNAVAILABLE`입니다. 라이브 키는 정상 조회 결과마다 포인트를 차감합니다. 호출 한도는 API 키 모드별 24시간 10,000건이고, 요청 수가 아니라 조회한 번호 수로 셉니다. 볼타 서비스 전체의 일일 조회 한도에 도달해도 `429 RATE_LIMITED`를 받습니다. CLI는 이 조회를 자동 재시도하지 않습니다. 테스트 키로 조회할 수 있는 고정 번호는 `bolta guide business-registration-status`로 확인하세요.
245
245
 
246
+ #### 입출금내역 조회
247
+
248
+ 볼타 대시보드에 연결한 계좌의 목록과 거래 변경분을 조회합니다. 발급자 등록과 공동인증서가 필요 없습니다. API로는 계좌를 연결할 수 없으니 대시보드에서 먼저 연결하세요. 포인트는 차감하지 않지만 스탠다드 플랜 이상이 필요합니다(아니면 `402 PLAN_UPGRADE_REQUIRED`).
249
+
250
+ ```bash
251
+ bolta bank-account list # 연결된 계좌 목록
252
+ bolta bank-account transactions --from 2026-09-01 --to 2026-09-30 # 거래 변경분 한 페이지
253
+ bolta bank-account transactions --all --limit 500 # hasMore가 false가 될 때까지 이어서 조회
254
+ bolta bank-account transactions --cursor <저장한 nextCursor> --all # 저장한 지점 뒤 변경분만
255
+ bolta bank-account sync # 즉시 동기화 요청
256
+ ```
257
+
258
+ `transactions`는 거래 시각 순서가 아니라 볼타에서 거래가 바뀐 순서로 돌려줍니다. 받은 순서대로 반영하세요. `ACTIVE`는 같은 `id`를 덮어쓰고, `REMOVED`는 같은 `id`를 지웁니다. `hasMore`가 `false`여도 `nextCursor`는 항상 있으니 저장해 두고 다음 수집 때 `--cursor`로 넘기세요. cursor는 받을 때의 조회 조건(`--from`, `--to`, `--bank-account-id`, `--type`)과 API 키에 묶입니다. 조건마다 cursor를 따로 저장하고, 조건을 바꿨거나 테스트 키에서 라이브 키로 옮겼다면 cursor 없이 처음부터 다시 조회하세요. 다르면 `400 INVALID_CURSOR`입니다. `--limit`은 바꿔도 됩니다.
259
+
260
+ 계좌와 거래의 `bankCode`는 금융결제원 3자리 은행코드(예: `004` 국민은행, `088` 신한은행)이고 `currencyCode`는 ISO 4217 통화 코드(`KRW`, `USD`, `JPY`)입니다. 두 값 모두 늘어날 수 있으니 모르는 값을 받아도 실패하지 말고, 화면에는 `bankName`을 보여 주세요. 전체 은행코드는 `bolta guide bank-account`로 확인하세요.
261
+
262
+ `sync`는 사업자마다 30분에 한 번, 하루 12번까지 요청할 수 있고 CLI는 자동으로 다시 요청하지 않습니다. `202`는 접수만 뜻합니다. `bolta bank-account list`로 `syncStatus`가 `IN_PROGRESS`인 계좌가 없어질 때까지 확인한 뒤, 5분쯤 지나서 `transactions`를 조회하세요. 테스트 키가 돌려주는 고정 계좌와 거래는 `bolta guide bank-account`로 확인하세요.
263
+
264
+ #### 홈택스 국세 증명 서류 발급
265
+
266
+ API 키가 속한 사업자의 사업자등록증명, 사업자등록증 재발급, 납세증명서, 부가가치세 과세표준증명, 표준재무제표증명을 발급합니다. 볼타 대시보드에 해당 사업자의 공동인증서를 등록해야 합니다.
267
+
268
+ ```bash
269
+ bolta document issue --reference-id order-20260919-001 --data '{
270
+ "businessRegistrationNumber": "1234567890",
271
+ "document": { "type": "BUSINESS_REGISTRATION_PROOF", "language": "KO" }
272
+ }'
273
+
274
+ bolta document get <issuanceKey>
275
+ ```
276
+
277
+ 발급은 비동기입니다. `ACCEPTED`와 `SUBMITTED`는 처리 중이고, `COMPLETED`가 되면 5분 동안 유효한 `downloadUrl`을 반환합니다. 주소가 만료되면 `document get`으로 새 주소를 받으세요. `ACTION_REQUIRED`이면 같은 서류를 다시 요청하지 마세요.
278
+
279
+ 서류 한 건에 500포인트를 차감하며 실패하면 차감하지 않습니다. reference-id는 앞뒤 공백 없는 출력 가능한 ASCII 1~255자로 입력하세요. 같은 reference-id와 같은 본문은 안전하게 다시 보낼 수 있지만, 다른 본문을 보내면 `409 IDEMPOTENCY_CONFLICT`입니다. 테스트 키는 `1000000014`를 바로 완료하고 `1000000071`을 바로 실패 처리합니다. 자세한 입력은 `bolta schema document-issue`, 서류별 샘플은 `bolta examples document-issue-business-registration-proof` 등으로 확인하세요.
280
+
246
281
  #### 설정
247
282
 
248
283
  ```bash
@@ -254,7 +289,7 @@ bolta config test # API 연결 테스트
254
289
  #### 도움말
255
290
 
256
291
  ```bash
257
- # 주요 개념 안내 (issuer, payment, workflow, cash-receipt, business-registration-status, glossary)
292
+ # 주요 개념 안내 (issuer, payment, workflow, cash-receipt, business-registration-status, bank-account, document, glossary)
258
293
  bolta guide [topic]
259
294
 
260
295
  # 바로 쓸 수 있는 샘플 JSON
@@ -266,7 +301,7 @@ bolta schema [command]
266
301
 
267
302
  `invoice issue`, `invoice issue-request`, `amend change-supply-cost` 입력은 국세청 XML 전송 제한에 맞춰 로컬에서 먼저 검증됩니다. 필드별 길이 제한은 `bolta schema invoice-issue`로 확인할 수 있습니다.
268
303
  `taxType`은 `TAXABLE`(과세), `ZERO_RATE`(영세율), `TAX_FREE`(면세) 중 하나이며 필수입니다. `ZERO_RATE`은 모든 품목의 `tax`를 `0`으로, `TAX_FREE`는 모든 품목의 `tax`를 `null`로 전달합니다.
269
- 사업자등록 상태 일괄 조회 입력은 `bolta schema business-registration-status-check-bulk`로 확인할 수 있습니다. 현금영수증 입력 규칙은 `bolta schema cash-receipt-issue`로 확인할 수 있습니다. 수취인 유형별 예제는 `bolta examples cash-receipt-issue`, `cash-receipt-issue-business`, `cash-receipt-issue-self`를 사용하세요.
304
+ 사업자등록 상태 일괄 조회 입력은 `bolta schema business-registration-status-check-bulk`로 확인할 수 있습니다. 현금영수증 입력 규칙은 `bolta schema cash-receipt-issue`로 확인할 수 있습니다. 수취인 유형별 예제는 `bolta examples cash-receipt-issue`, `cash-receipt-issue-business`, `cash-receipt-issue-self`를 사용하세요. 서류 발급 입력은 `bolta schema document-issue`로 확인하세요.
270
305
 
271
306
  #### 업데이트
272
307
 
@@ -320,7 +355,7 @@ cat invoice.json | bolta invoice issue --stdin
320
355
  | `AUTH_ERROR` | API 키 없음/잘못됨 | `bolta config set api-key <key>` |
321
356
  | `VALIDATION_ERROR` | 입력 데이터 오류 | `bolta schema <command>`로 스키마 확인 |
322
357
  | `INPUT_ERROR` | 명령어·옵션·입력 방식 오류 | `bolta --help` 또는 하위 명령의 `--help`로 사용법 확인 |
323
- | `INVALID_REQUEST` | 세금계산서 요청 검증 실패, 발행 마감일 경과 또는 요청자 관리번호 중복 | `error.message` 확인. 중복이면 `invoice status`로 기존 요청 확인. 마감일은 `invoice due-date`로 확인 |
358
+ | `INVALID_REQUEST` | 요청 검증 실패, 세금계산서 발행 마감일 경과 또는 요청자 관리번호 중복 | `error.message`와 해당 명령의 `schema` 확인. 세금계산서 중복이면 `invoice status`로 기존 요청 확인 |
324
359
  | `HTTP_402` | 포인트 잔액 부족 | https://developers.bolta.io 에서 포인트 충전 |
325
360
  | `HTTP_400` | 잘못된 요청 | error.message 확인 |
326
361
  | `HTTP_404` | 리소스 없음 | issuanceKey/issuerId 확인 |
@@ -328,7 +363,20 @@ cat invoice.json | bolta invoice issue --stdin
328
363
  | `RATE_LIMITED` | 사업자등록 상태 조회 24시간 한도 또는 서비스 전체 일일 한도 초과 | `error.details.retryAfterSeconds`초 뒤 다시 실행 |
329
364
  | `INVALID_BUSINESS_REGISTRATION_NUMBER` | 사업자등록번호 체크섬 불일치 | 번호 확인 |
330
365
  | `LOOKUP_UNAVAILABLE` | 사업자등록 상태 확인 불가 (포인트 미차감) | 잠시 후 다시 실행 |
331
- | `NETWORK_ERROR` | 네트워크 오류 또는 응답 본문 읽기 실패 | 인터넷 연결 확인. 세금계산서 관리번호를 사용했다면 재전송하지 말고 `invoice status`로 접수 여부 확인 |
366
+ | `PLAN_UPGRADE_REQUIRED` | 입출금내역 API를 쓰려면 스탠다드 플랜 이상 필요 | 볼타 대시보드 결제 메뉴에서 플랜 업그레이드 |
367
+ | `INVALID_CURSOR` | 입출금내역 cursor가 손상됐거나, 받을 때와 조회 조건 또는 API 키가 다름 | 같은 조건으로 이전 응답의 `nextCursor`를 그대로 사용. 조건이나 키를 바꿨다면 cursor 없이 다시 조회 |
368
+ | `BANK_ACCOUNT_NOT_FOUND` | 없거나 내 계좌가 아닌 계좌 ID | `bank-account list`의 `id` 확인 |
369
+ | `BANK_ACCOUNT_NOT_CONNECTED` | 연결된 계좌 없이 동기화 요청 | 볼타 대시보드에서 계좌 연결 |
370
+ | `SYNC_IN_PROGRESS` | 입출금내역 동기화가 이미 진행 중 (한도 미차감) | `bank-account list`로 `syncStatus` 확인 |
371
+ | `SYNC_RATE_LIMITED` | 동기화 한도(30분 1회, 하루 12회) 초과 | `error.details.retryAfterSeconds`초 뒤 다시 요청 |
372
+ | `SYNC_UNAVAILABLE` | 동기화 한도를 확인할 수 없어 요청 거절 | 잠시 후 다시 요청 |
373
+ | `CERTIFICATE_REQUIRED` | 서류 발급에 쓸 공동인증서가 없거나 만료됨 | 볼타 대시보드에서 API 키가 속한 사업자의 인증서 등록 |
374
+ | `TARGET_NOT_ALLOWED` | API 키가 속한 사업자가 아닌 번호로 서류 발급 요청 | 사업자등록번호 확인 |
375
+ | `IDEMPOTENCY_CONFLICT` | 같은 서류 발급 reference-id에 다른 본문 사용 | 기존 본문을 다시 보내거나 새 reference-id 사용 |
376
+ | `POINT_RESERVED_BY_IN_FLIGHT_REQUESTS` | 처리 중인 서류 요청까지 합치면 포인트 부족 | 충전하거나 기존 요청이 끝난 뒤 다시 요청 |
377
+ | `TOO_MANY_IN_FLIGHT` | 처리 중인 서류 요청이 5건 | 기존 요청이 끝난 뒤 다시 요청 |
378
+ | `DOCUMENT_ISSUANCE_NOT_FOUND` | 없거나 다른 API 키의 서류 발급 요청 | issuanceKey와 API 키 확인 |
379
+ | `NETWORK_ERROR` | 네트워크 오류 또는 응답 본문 읽기 실패 | 세금계산서는 `invoice status`로 확인. 서류 발급은 같은 reference-id와 같은 본문으로 다시 요청 |
332
380
 
333
381
  ---
334
382
 
package/dist/bin/bolta.js CHANGED
@@ -12,6 +12,8 @@ import { maybeNudgeUpdate, refreshUpdateCache, UPDATE_CACHE_COMMAND, } from '../
12
12
  import { registerGuideCommand } from '../src/commands/guide/index.js';
13
13
  import { registerCashReceiptCommands } from '../src/commands/cash-receipt/index.js';
14
14
  import { registerBusinessRegistrationStatusCommands } from '../src/commands/business-registration-status/index.js';
15
+ import { registerBankAccountCommands } from '../src/commands/bank-account/index.js';
16
+ import { registerDocumentCommands } from '../src/commands/document/index.js';
15
17
  import { legacyIssuerWarning, outputError } from '../src/utils/output.js';
16
18
  import { BoltaInputError } from '../src/utils/errors.js';
17
19
  import { getCurrentVersion } from '../src/utils/version.js';
@@ -24,7 +26,7 @@ program
24
26
  .exitOverride();
25
27
  program
26
28
  .name('bolta')
27
- .description('Bolta API CLI - 전자세금계산서·현금영수증 발행/조회/관리 도구 (AI 에이전트 최적화)')
29
+ .description('Bolta API CLI - 전자세금계산서·현금영수증·국세 증명 서류 발급/조회 도구 (AI 에이전트 최적화)')
28
30
  .version(getCurrentVersion())
29
31
  .option('--api-key <key>', 'Bolta API 키 (환경변수 BOLTA_API_KEY 대체)')
30
32
  .addOption(new Option('--supplier-key <key>').hideHelp())
@@ -55,6 +57,8 @@ registerCertificateCommands(program);
55
57
  registerInvoiceCommands(program);
56
58
  registerCashReceiptCommands(program);
57
59
  registerBusinessRegistrationStatusCommands(program);
60
+ registerBankAccountCommands(program);
61
+ registerDocumentCommands(program);
58
62
  registerConfigCommands(program);
59
63
  registerExamplesCommand(program);
60
64
  registerSchemaCommand(program);
@@ -1 +1 @@
1
- {"version":3,"file":"bolta.js","sourceRoot":"","sources":["../../bin/bolta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bolta.js","sourceRoot":"","sources":["../../bin/bolta.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { CreateTaxInvoiceRequest, IssuanceResponse, TaxInvoiceDetail, StatusResponse, AmendTerminationRequest, AmendChangeSupplyCostRequest, CreateIssuerRequest, IssuerResponse, CreateSupplierRequest, LegacySupplierResponse, CreateCustomerRequest, LegacyCustomerResponse, CertificateUrlResponse, CertificateStatusResponse, CreateCashReceiptRequest, CashReceiptCancellationResponse, CashReceiptStatusResponse, BusinessRegistrationStatusCheckRequest, BusinessRegistrationStatusResponse, BusinessRegistrationStatusBulkCheckRequest, BusinessRegistrationStatusBulkResponse, TaxInvoiceIssueDueDateResponse } from '../types/api.js';
1
+ import type { CreateTaxInvoiceRequest, IssuanceResponse, TaxInvoiceDetail, StatusResponse, AmendTerminationRequest, AmendChangeSupplyCostRequest, CreateIssuerRequest, IssuerResponse, CreateSupplierRequest, LegacySupplierResponse, CreateCustomerRequest, LegacyCustomerResponse, CertificateUrlResponse, CertificateStatusResponse, CreateCashReceiptRequest, CashReceiptCancellationResponse, CashReceiptStatusResponse, BusinessRegistrationStatusCheckRequest, BusinessRegistrationStatusResponse, BusinessRegistrationStatusBulkCheckRequest, BusinessRegistrationStatusBulkResponse, TaxInvoiceIssueDueDateResponse, BankAccountListResponse, BankAccountTransactionQuery, BankAccountTransactionListResponse, BankAccountSyncResponse, CreateDocumentIssuanceRequest, DocumentIssuanceResponse } from '../types/api.js';
2
2
  import { type LegacyIssuerHeader } from '../utils/legacy-issuer.js';
3
3
  interface ClientConfig {
4
4
  apiKey: string;
@@ -53,6 +53,17 @@ export declare class BoltaClient {
53
53
  checkBusinessRegistrationStatus(data: BusinessRegistrationStatusCheckRequest): Promise<BusinessRegistrationStatusResponse>;
54
54
  /** 단건과 같은 이유로 재시도하지 않는다. 확인하지 못한 번호는 200 응답 안에서 status가 null이다. */
55
55
  checkBusinessRegistrationStatusBulk(data: BusinessRegistrationStatusBulkCheckRequest): Promise<BusinessRegistrationStatusBulkResponse>;
56
+ listBankAccounts(): Promise<BankAccountListResponse>;
57
+ listBankAccountTransactions(query: BankAccountTransactionQuery): Promise<BankAccountTransactionListResponse>;
58
+ /**
59
+ * 재전송하면 30분 1회, 하루 12회 한도를 쓰고, 429의 Retry-After는 최대 30분이라 기다릴 수 없다.
60
+ * 한 번만 시도하고 실패를 바로 돌려준다.
61
+ */
62
+ requestBankAccountSync(): Promise<BankAccountSyncResponse>;
63
+ issueDocument(data: CreateDocumentIssuanceRequest, options: {
64
+ referenceId: string;
65
+ }): Promise<DocumentIssuanceResponse>;
66
+ getDocumentIssuance(issuanceKey: string): Promise<DocumentIssuanceResponse>;
56
67
  private request;
57
68
  }
58
69
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"bolta-client.d.ts","sourceRoot":"","sources":["../../../src/client/bolta-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bolta-client.d.ts","sourceRoot":"","sources":["../../../src/client/bolta-client.ts"],"names":[],"mappings":"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"}
@@ -185,6 +185,55 @@ export class BoltaClient {
185
185
  });
186
186
  }
187
187
  // ========================
188
+ // Bank Account Methods
189
+ // ========================
190
+ async listBankAccounts() {
191
+ return this.request({ method: 'GET', path: '/bankAccounts' });
192
+ }
193
+ async listBankAccountTransactions(query) {
194
+ const params = new URLSearchParams();
195
+ for (const [key, value] of Object.entries(query)) {
196
+ if (value !== undefined)
197
+ params.set(key, String(value));
198
+ }
199
+ const search = params.toString();
200
+ return this.request({
201
+ method: 'GET',
202
+ path: `/bankAccounts/transactions${search ? `?${search}` : ''}`,
203
+ });
204
+ }
205
+ /**
206
+ * 재전송하면 30분 1회, 하루 12회 한도를 쓰고, 429의 Retry-After는 최대 30분이라 기다릴 수 없다.
207
+ * 한 번만 시도하고 실패를 바로 돌려준다.
208
+ */
209
+ async requestBankAccountSync() {
210
+ return this.request({
211
+ method: 'POST',
212
+ path: '/bankAccounts:sync',
213
+ retry: 'none',
214
+ });
215
+ }
216
+ // ========================
217
+ // Document Issuance Methods
218
+ // ========================
219
+ async issueDocument(data, options) {
220
+ return this.request({
221
+ method: 'POST',
222
+ path: '/documentIssuances',
223
+ body: data,
224
+ referenceId: options.referenceId,
225
+ retry: 'network-and-server',
226
+ failureSuggestion: '응답을 확인하지 못했다면 같은 reference-id와 같은 본문으로 다시 요청하세요. API가 기존 요청을 반환합니다.',
227
+ invalidRequestSuggestion: "error.message와 'bolta schema document-issue'를 확인하세요. 테스트 키는 1000000014와 1000000071만 지원합니다.",
228
+ });
229
+ }
230
+ async getDocumentIssuance(issuanceKey) {
231
+ return this.request({
232
+ method: 'GET',
233
+ path: `/documentIssuances/${encodeURIComponent(issuanceKey)}`,
234
+ });
235
+ }
236
+ // ========================
188
237
  // Internal Request Method
189
238
  // ========================
190
239
  async request(options) {
@@ -206,7 +255,8 @@ export class BoltaClient {
206
255
  if (options.referenceId !== undefined) {
207
256
  headers['Bolta-Client-Reference-Id'] = options.referenceId;
208
257
  }
209
- const maxAttempts = options.retry === 'none' ? 1 : this.maxRetries;
258
+ const retryPolicy = options.retry ?? 'default';
259
+ const maxAttempts = retryPolicy === 'none' ? 1 : this.maxRetries;
210
260
  const statusSuggestion = options.failureSuggestion;
211
261
  const legacyIssuerDetails = legacyIssuer
212
262
  ? { legacyIssuerKey: maskedLegacyIssuerKey, source: legacyIssuer.source, legacyHeader: true }
@@ -238,7 +288,7 @@ export class BoltaClient {
238
288
  ? parseRetryAfterSeconds(response.headers.get('Retry-After'))
239
289
  : undefined;
240
290
  // 재시도할 응답은 본문이 손상됐더라도 먼저 재시도한다.
241
- if (response.status === 429 && attempt < maxAttempts) {
291
+ if (response.status === 429 && retryPolicy === 'default' && attempt < maxAttempts) {
242
292
  const delay = retryAfterSeconds !== undefined ? retryAfterSeconds * 1000 : backoff(attempt);
243
293
  if (delay <= MAX_RETRY_AFTER_MS) {
244
294
  await response.body?.cancel().catch(() => undefined);
@@ -291,6 +341,14 @@ export class BoltaClient {
291
341
  catch (error) {
292
342
  if (error instanceof BoltaApiError)
293
343
  throw error;
344
+ if (error instanceof BoltaNetworkError) {
345
+ lastError = error;
346
+ if (retryPolicy === 'network-and-server' && attempt < maxAttempts) {
347
+ await sleep(backoff(attempt));
348
+ continue;
349
+ }
350
+ throw error;
351
+ }
294
352
  if ((error instanceof Error && error.name === 'AbortError') || error instanceof TypeError) {
295
353
  const msg = error instanceof Error && error.name === 'AbortError'
296
354
  ? `요청 시간 초과 (${this.timeout}ms)`
@@ -322,7 +380,37 @@ function parseRetryAfterSeconds(header) {
322
380
  function sleep(ms) {
323
381
  return new Promise((resolve) => setTimeout(resolve, ms));
324
382
  }
383
+ function describeRetryAfter(ctx) {
384
+ const retryAfterSeconds = ctx?.retryAfterSeconds;
385
+ return retryAfterSeconds !== undefined
386
+ ? `${retryAfterSeconds}초 뒤(error.details.retryAfterSeconds)`
387
+ : '잠시 후';
388
+ }
389
+ /**
390
+ * API가 도메인 오류 코드를 돌려줄 때의 안내. HTTP 상태별 공통 안내보다 먼저 적용한다.
391
+ */
392
+ const ERROR_CODE_SUGGESTIONS = {
393
+ INVALID_BUSINESS_REGISTRATION_NUMBER: () => '사업자등록번호 체크섬이 맞지 않습니다. 번호를 다시 확인하세요.',
394
+ LOOKUP_UNAVAILABLE: () => '사업자등록 상태를 지금 확인할 수 없습니다. 포인트는 차감되지 않았습니다. 잠시 후 다시 시도하세요.',
395
+ RATE_LIMITED: (ctx) => ctx?.statusSuggestion ?? `호출 한도를 모두 사용했습니다. ${describeRetryAfter(ctx)} 다시 시도하세요.`,
396
+ PLAN_UPGRADE_REQUIRED: () => "입출금내역 API는 스탠다드 플랜부터 쓸 수 있습니다. 포인트 잔액 문제가 아닙니다. 볼타 대시보드의 결제 메뉴에서 플랜을 업그레이드한 뒤 다시 시도하세요.",
397
+ INVALID_CURSOR: () => "cursor는 받을 때의 조회 조건(--from, --to, --bank-account-id, --type)과 API 키에 묶입니다. 이전 응답의 nextCursor를 같은 조건으로 그대로 넣으세요. 조건을 바꿨거나 테스트 키에서 라이브 키로 옮겼다면 --cursor 없이 처음부터 다시 조회하세요. --limit은 바꿔도 됩니다.",
398
+ BANK_ACCOUNT_NOT_FOUND: () => "계좌 ID를 확인하세요. 'bolta bank-account list' 응답의 id를 사용하세요.",
399
+ BANK_ACCOUNT_NOT_CONNECTED: () => '연결된 계좌가 없습니다. API로는 계좌를 연결할 수 없으니 볼타 대시보드에서 먼저 연결하세요.',
400
+ SYNC_IN_PROGRESS: () => "이미 동기화가 진행 중입니다. 한도는 차감되지 않았습니다. 'bolta bank-account list'로 syncStatus가 IN_PROGRESS에서 바뀌었는지 확인하세요.",
401
+ SYNC_RATE_LIMITED: (ctx) => `동기화는 30분에 한 번, 하루 12번까지 요청할 수 있습니다. ${describeRetryAfter(ctx)} 다시 요청하세요. 볼타가 주기적으로 거래를 가져오므로 기다리지 않고 조회해도 됩니다.`,
402
+ SYNC_UNAVAILABLE: () => '지금은 동기화 한도를 확인할 수 없어 요청을 받지 않았습니다. 잠시 후 다시 시도하세요.',
403
+ CERTIFICATE_REQUIRED: () => '공동인증서가 등록되지 않았거나 만료됐습니다. 볼타 대시보드에서 API 키가 속한 사업자의 인증서를 등록하세요.',
404
+ TARGET_NOT_ALLOWED: () => 'API 키가 속한 사업자의 서류만 발급할 수 있습니다. 요청한 사업자등록번호를 확인하세요.',
405
+ IDEMPOTENCY_CONFLICT: () => '같은 reference-id에 다른 요청 본문을 사용할 수 없습니다. 기존 요청과 같은 본문을 보내거나 새 reference-id를 사용하세요.',
406
+ POINT_RESERVED_BY_IN_FLIGHT_REQUESTS: () => '처리 중인 서류 요청이 포인트를 예약해 잔액이 부족합니다. 포인트를 충전하거나 기존 요청이 끝난 뒤 다시 요청하세요.',
407
+ TOO_MANY_IN_FLIGHT: () => "처리 중인 서류 요청은 최대 5건입니다. 기존 요청이 끝난 뒤 'bolta document issue'를 다시 실행하세요.",
408
+ DOCUMENT_ISSUANCE_NOT_FOUND: () => "서류 발급 요청을 찾을 수 없습니다. issuanceKey와 API 키를 확인한 뒤 'bolta document get <issuanceKey>'을 다시 실행하세요.",
409
+ };
325
410
  function getSuggestion(status, code, ctx) {
411
+ const codeSuggestion = ERROR_CODE_SUGGESTIONS[code];
412
+ if (codeSuggestion)
413
+ return codeSuggestion(ctx);
326
414
  if (status === 401)
327
415
  return "API 키가 올바른지 확인하세요. 'bolta config test'로 인증을 테스트할 수 있습니다.";
328
416
  if (status === 402)
@@ -341,23 +429,10 @@ function getSuggestion(status, code, ctx) {
341
429
  if (code === 'INVALID_REQUEST' && ctx?.invalidRequestSuggestion) {
342
430
  return ctx.invalidRequestSuggestion;
343
431
  }
344
- if (code === 'INVALID_BUSINESS_REGISTRATION_NUMBER') {
345
- return '사업자등록번호 체크섬이 맞지 않습니다. 번호를 다시 확인하세요.';
346
- }
347
- if (code === 'LOOKUP_UNAVAILABLE') {
348
- return '사업자등록 상태를 지금 확인할 수 없습니다. 포인트는 차감되지 않았습니다. 잠시 후 다시 시도하세요.';
349
- }
350
432
  if (status === 429) {
351
433
  if (ctx?.statusSuggestion)
352
434
  return ctx.statusSuggestion;
353
- const retryAfterSeconds = ctx?.retryAfterSeconds;
354
- const when = retryAfterSeconds !== undefined
355
- ? `${retryAfterSeconds}초 뒤(error.details.retryAfterSeconds)`
356
- : '잠시 후';
357
- if (code === 'RATE_LIMITED') {
358
- return `호출 한도를 모두 사용했습니다. ${when} 다시 시도하세요.`;
359
- }
360
- return `요청 횟수 제한에 도달했습니다. ${when} 다시 시도하세요.`;
435
+ return `요청 횟수 제한에 도달했습니다. ${describeRetryAfter(ctx)} 다시 시도하세요.`;
361
436
  }
362
437
  if (status >= 500) {
363
438
  return ctx?.statusSuggestion ?? 'Bolta 서버 오류입니다. 잠시 후 다시 시도하세요.';
@@ -1 +1 @@
1
- {"version":3,"file":"bolta-client.js","sourceRoot":"","sources":["../../../src/client/bolta-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bolta-client.js","sourceRoot":"","sources":["../../../src/client/bolta-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerBankAccountCommands(program: Command): void;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/bank-account/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4DlE"}
@@ -0,0 +1,62 @@
1
+ import { listBankAccountsAction } from './list.js';
2
+ import { listBankAccountTransactionsAction } from './transactions.js';
3
+ import { syncBankAccountsAction } from './sync.js';
4
+ export function registerBankAccountCommands(program) {
5
+ const group = program
6
+ .command('bank-account')
7
+ .description('입출금내역 조회 (연결된 계좌, 거래 변경분, 동기화 요청)');
8
+ group
9
+ .command('list')
10
+ .description('연결된 계좌 목록 조회 (GET /v1/bankAccounts)')
11
+ .addHelpText('after', `
12
+ Notes:
13
+ - API 키가 속한 사업자의 계좌만 조회합니다. 발급자 등록과 공동인증서가 필요 없습니다.
14
+ - 계좌 연결은 볼타 대시보드에서만 할 수 있습니다. 연결된 계좌가 없으면 items가 빈 배열입니다.
15
+ - bankCode는 금융결제원 3자리 은행코드입니다('bolta guide bank-account'). 값이 늘 수 있으니 화면에는 bankName을 보여 주세요.
16
+ - syncStatus가 IN_PROGRESS인 계좌가 없어지면 동기화가 끝난 것입니다.
17
+ - 스탠다드 플랜 이상이 필요합니다. 포인트는 차감하지 않습니다.
18
+
19
+ Example:
20
+ bolta bank-account list`)
21
+ .action(listBankAccountsAction);
22
+ group
23
+ .command('transactions')
24
+ .description('거래 변경분 조회 (GET /v1/bankAccounts/transactions)')
25
+ .option('--from <date>', '거래일 시작 (YYYY-MM-DD, KST, 포함)')
26
+ .option('--to <date>', '거래일 끝 (YYYY-MM-DD, KST, 포함)')
27
+ .option('--bank-account-id <id>', "계좌 ID ('bolta bank-account list'의 id)")
28
+ .option('--type <transactionType>', '거래 구분 (DEPOSIT, WITHDRAW, OTHER)')
29
+ .option('--cursor <cursor>', '이전 응답의 nextCursor')
30
+ .option('--limit <n>', '한 번에 받을 건수 (1~500, 기본 100)')
31
+ .option('--all', 'hasMore가 false가 될 때까지 이어서 조회하고 items를 합칩니다')
32
+ .addHelpText('after', `
33
+ Notes:
34
+ - 거래 시각 순서가 아니라 볼타에서 거래가 바뀐 순서로 돌려줍니다. 같은 id가 다시 올 수 있습니다.
35
+ - 받은 순서대로 반영하세요. ACTIVE는 같은 id를 덮어쓰고, REMOVED는 같은 id를 지웁니다.
36
+ - hasMore가 false여도 nextCursor는 항상 있습니다. 저장해 두고 다음에 --cursor로 넘기면 그 뒤 변경분만 받습니다.
37
+ - items가 비어도 hasMore가 true일 수 있습니다. hasMore가 false가 될 때까지 이어서 조회하세요.
38
+ - cursor는 받을 때의 조회 조건(--from, --to, --bank-account-id, --type)과 API 키에 묶입니다. 다르면 400 INVALID_CURSOR입니다.
39
+ - 조건을 바꿨거나 테스트 키에서 라이브 키로 옮겼다면 --cursor 없이 처음부터 다시 조회하세요. 조건마다 cursor를 따로 저장하세요.
40
+ - --limit은 cursor와 무관해서 페이지마다 바꿔도 됩니다.
41
+ - 최근 5분 안의 변경은 다음 조회로 넘어갑니다. 테스트 키는 지연이 없습니다.
42
+
43
+ Example:
44
+ bolta bank-account transactions --from 2026-09-01 --to 2026-09-30
45
+ bolta bank-account transactions --all --limit 500
46
+ bolta bank-account transactions --cursor djI6MTc4ODU3MDAwMDAwMDAwMDo2OjExeTVkdnQ --all`)
47
+ .action(listBankAccountTransactionsAction);
48
+ group
49
+ .command('sync')
50
+ .description('입출금내역 동기화 요청 (POST /v1/bankAccounts:sync)')
51
+ .addHelpText('after', `
52
+ Notes:
53
+ - 202는 요청 접수만 뜻합니다. 'bolta bank-account list'로 syncStatus가 IN_PROGRESS인 계좌가 없어질 때까지 확인하세요.
54
+ - 동기화가 끝나면 5분쯤 기다린 뒤 저장한 cursor로 transactions를 조회하세요.
55
+ - 사업자마다 30분에 한 번, 하루 12번까지 요청할 수 있습니다. CLI는 자동으로 다시 요청하지 않습니다.
56
+ - 볼타가 주기적으로 거래를 가져옵니다. 최신 거래가 바로 필요할 때만 요청하세요.
57
+
58
+ Example:
59
+ bolta bank-account sync`)
60
+ .action(syncBankAccountsAction);
61
+ }
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/bank-account/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,UAAU,2BAA2B,CAAC,OAAgB;IAC1D,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,mCAAmC,CAAC,CAAC;IAEpD,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qCAAqC,CAAC;SAClD,WAAW,CAAC,OAAO,EAAE;;;;;;;;;0BASA,CAAC;SACtB,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAElC,KAAK;SACF,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,eAAe,EAAE,8BAA8B,CAAC;SACvD,MAAM,CAAC,aAAa,EAAE,6BAA6B,CAAC;SACpD,MAAM,CAAC,wBAAwB,EAAE,uCAAuC,CAAC;SACzE,MAAM,CAAC,0BAA0B,EAAE,kCAAkC,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;SAChD,MAAM,CAAC,aAAa,EAAE,4BAA4B,CAAC;SACnD,MAAM,CAAC,OAAO,EAAE,4CAA4C,CAAC;SAC7D,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;yFAc+D,CAAC;SACrF,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAE7C,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2CAA2C,CAAC;SACxD,WAAW,CAAC,OAAO,EAAE;;;;;;;;0BAQA,CAAC;SACtB,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACpC,CAAC"}