@bolta-io/cli 0.4.1 → 0.5.1

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 (43) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/CLAUDE.md +42 -4
  3. package/README.md +32 -2
  4. package/dist/bin/bolta.js +2 -0
  5. package/dist/bin/bolta.js.map +1 -1
  6. package/dist/src/client/bolta-client.d.ts +9 -1
  7. package/dist/src/client/bolta-client.d.ts.map +1 -1
  8. package/dist/src/client/bolta-client.js +61 -14
  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/guide/index.d.ts.map +1 -1
  27. package/dist/src/commands/guide/index.js +101 -0
  28. package/dist/src/commands/guide/index.js.map +1 -1
  29. package/dist/src/commands/invoice/due-date.d.ts +3 -0
  30. package/dist/src/commands/invoice/due-date.d.ts.map +1 -0
  31. package/dist/src/commands/invoice/due-date.js +25 -0
  32. package/dist/src/commands/invoice/due-date.js.map +1 -0
  33. package/dist/src/commands/invoice/index.d.ts.map +1 -1
  34. package/dist/src/commands/invoice/index.js +18 -0
  35. package/dist/src/commands/invoice/index.js.map +1 -1
  36. package/dist/src/types/api.d.ts +69 -0
  37. package/dist/src/types/api.d.ts.map +1 -1
  38. package/dist/src/validators/schemas.d.ts +44 -0
  39. package/dist/src/validators/schemas.d.ts.map +1 -1
  40. package/dist/src/validators/schemas.js +38 -0
  41. package/dist/src/validators/schemas.js.map +1 -1
  42. package/llms.txt +34 -4
  43. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @bolta-io/cli
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 2573c5e: 입출금내역 API 계약 변경을 반영합니다. 계좌와 거래 응답의 `bank`가 금융결제원 3자리 은행코드 `bankCode`(예: `004` 국민은행, `088` 신한은행)로 바뀌었고, `currencyCode`는 ISO 4217 코드(`KRW`, `USD`, `JPY`)로 고정됐습니다. 이전 필드는 남기지 않습니다. `bolta guide bank-account`에 은행코드 표를 더하고 테스트 키 계좌를 새 코드로 고쳤습니다. cursor가 받을 때의 조회 조건과 API 키에 묶인다는 안내를 도움말, 가이드, 문서에 반영하고, `INVALID_CURSOR`가 나면 조건이나 키를 바꿨는지 확인하도록 안내합니다. 도움말의 예시 cursor도 새 형식으로 바꿨습니다.
8
+
9
+ ## 0.5.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 74db6ac: 입출금내역 조회 명령 `bolta bank-account list`, `transactions`, `sync`를 추가했습니다. `transactions --all`로 남은 변경분을 끝까지 이어서 받고, 입출금내역 오류 코드마다 해결 방법을 안내합니다.
14
+
15
+ ## 0.4.2
16
+
17
+ ### Patch Changes
18
+
19
+ - aee206e: 작성일자로 세금계산서 발행 마감일을 조회하는 `bolta invoice due-date <YYYY-MM-DD>` 명령을 추가합니다. `GET /v1/taxInvoiceIssueDueDates`를 호출하고 `{date, issueDueDate}`를 그대로 출력합니다. 발급자와 인증서가 필요 없고 포인트를 차감하지 않습니다. 존재하지 않는 날짜는 API를 호출하기 전에 `VALIDATION_ERROR`로 막고, 볼타가 마감일을 관리하지 않는 달로 `INVALID_REQUEST`가 나면 그 이유를 안내합니다. `invoice issue`와 `invoice issue-request` 도움말, `bolta guide workflow`, 문서에 작성일자가 마감일을 지나면 `400 INVALID_REQUEST`가 난다는 안내를 더했습니다.
20
+
3
21
  ## 0.4.1
4
22
 
5
23
  ### Patch Changes
package/CLAUDE.md CHANGED
@@ -44,7 +44,14 @@ bolta issuer create --data '{"identificationNumber":"1234567890","organizationNa
44
44
  bolta certificate status <issuerId>
45
45
  ```
46
46
 
47
- 3. **세금계산서 정발행**:
47
+ 3. **발행 마감일 확인** (작성일자가 마감일을 지나면 발행 요청이 `400 INVALID_REQUEST`):
48
+ ```bash
49
+ bolta invoice due-date 2026-03-25
50
+ ```
51
+
52
+ 마감일은 작성일자가 속한 달의 다음 달 10일입니다. 주말이나 공휴일이면 다음 영업일, 국세청이 연장한 달은 연장된 날짜입니다. 마감일 당일까지 기한 안이고, 포인트는 차감하지 않습니다.
53
+
54
+ 4. **세금계산서 정발행**:
48
55
  ```bash
49
56
  bolta invoice issue --reference-id inv-2026-001 --data '{
50
57
  "date": "2026-03-25",
@@ -71,14 +78,14 @@ bolta invoice issue --reference-id inv-2026-001 --data '{
71
78
  }'
72
79
  ```
73
80
 
74
- 4. **접수 여부 확인** (발행 응답을 받지 못한 경우):
81
+ 5. **접수 여부 확인** (발행 응답을 받지 못한 경우):
75
82
  ```bash
76
83
  bolta invoice status --reference-id inv-2026-001
77
84
  ```
78
85
 
79
86
  같은 요청을 다시 보내지 마세요. 같은 API 키의 세금계산서 발행 계열에서는 요청자 관리번호를 재사용할 수 없습니다. 중복이면 API가 `400 INVALID_REQUEST`를 반환합니다.
80
87
 
81
- 5. **발행 결과 확인**:
88
+ 6. **발행 결과 확인**:
82
89
  ```bash
83
90
  bolta invoice get <issuanceKey>
84
91
  ```
@@ -123,6 +130,26 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
123
130
  - 통신 실패는 `UNKNOWN`으로 돌려주지 않습니다. 사업자등록 상태를 확인할 수 없으면 `503 LOOKUP_UNAVAILABLE`입니다.
124
131
  - 라이브 키는 정상 조회 결과마다 포인트를 차감합니다. 테스트 키는 고정 번호 9개만 조회합니다(`bolta guide business-registration-status`).
125
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
+
126
153
  ## 커맨드 빠른 참조
127
154
 
128
155
  | 커맨드 | 설명 | 데이터 필요 |
@@ -136,6 +163,7 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
136
163
  | `bolta invoice issue-request [--reference-id <id>]` | 역발행 요청 | --data |
137
164
  | `bolta invoice get <issuanceKey>` | 세금계산서 조회 | - |
138
165
  | `bolta invoice status --reference-id <id>` | 상태 조회 | - |
166
+ | `bolta invoice due-date <작성일자>` | 발행 마감일 조회 | - |
139
167
  | `bolta invoice amend termination <key> --date <date> [--reference-id <id>]` | 수정: 계약해제 | - |
140
168
  | `bolta invoice amend change-supply-cost <key> [--reference-id <id>]` | 수정: 가액변동 | --data |
141
169
  | `bolta invoice amend double-issuance <key> [--reference-id <id>]` | 수정: 착오 이중발급 | - |
@@ -144,6 +172,9 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
144
172
  | `bolta cash-receipt cancel <key> --reference-id <id>` | 현금영수증 전액 취소 | - |
145
173
  | `bolta business-registration-status check <사업자등록번호>` | 사업자등록 상태 조회 | - |
146
174
  | `bolta business-registration-status check-bulk <사업자등록번호...>` | 사업자등록 상태 일괄 조회 (최대 100건) | 번호 인자 또는 --data |
175
+ | `bolta bank-account list` | 연결된 계좌 목록 | - |
176
+ | `bolta bank-account transactions [--from] [--to] [--cursor] [--all]` | 거래 변경분 조회 | - |
177
+ | `bolta bank-account sync` | 입출금내역 동기화 요청 | - |
147
178
  | `bolta config set <key> <value>` | 설정 | - |
148
179
  | `bolta config show` | 설정 확인 | - |
149
180
  | `bolta config test` | 연결 테스트 | - |
@@ -173,7 +204,7 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
173
204
  | `AUTH_ERROR` | API 키 없음/잘못됨 | `bolta config set api-key <key>` |
174
205
  | `VALIDATION_ERROR` | 입력 데이터 오류 | `bolta schema <command>`로 스키마 확인 |
175
206
  | `INPUT_ERROR` | 명령어·옵션·입력 방식 오류 | `bolta --help` 또는 하위 명령의 `--help`로 사용법 확인 |
176
- | `INVALID_REQUEST` | 세금계산서 요청 검증 실패 또는 요청자 관리번호 중복 | `error.message` 확인. 중복이면 `invoice status`로 기존 요청 확인 |
207
+ | `INVALID_REQUEST` | 세금계산서 요청 검증 실패, 발행 마감일 경과 또는 요청자 관리번호 중복 | `error.message` 확인. 중복이면 `invoice status`로 기존 요청 확인. 마감일은 `invoice due-date`로 확인 |
177
208
  | `HTTP_402` | 포인트 잔액 부족 | https://developers.bolta.io 에서 포인트 충전 |
178
209
  | `HTTP_400` | 잘못된 요청 | error.message 확인, 필수 필드 누락 체크 |
179
210
  | `HTTP_404` | 리소스 없음 | issuanceKey/issuerId 확인 |
@@ -181,6 +212,13 @@ bolta business-registration-status check-bulk 1000000014 100-00-00028 1000000071
181
212
  | `RATE_LIMITED` | 사업자등록 상태 조회 24시간 한도 또는 서비스 전체 일일 한도 초과 | `error.details.retryAfterSeconds`초 뒤 다시 실행 |
182
213
  | `INVALID_BUSINESS_REGISTRATION_NUMBER` | 사업자등록번호 체크섬 불일치 | 번호 확인 |
183
214
  | `LOOKUP_UNAVAILABLE` | 사업자등록 상태 확인 불가 (포인트 미차감) | 잠시 후 다시 실행 |
215
+ | `PLAN_UPGRADE_REQUIRED` | 입출금내역 API를 쓰려면 스탠다드 플랜 이상 필요 | 볼타 대시보드 결제 메뉴에서 플랜 업그레이드 |
216
+ | `INVALID_CURSOR` | 입출금내역 cursor가 손상됐거나, 받을 때와 조회 조건 또는 API 키가 다름 | 같은 조건으로 이전 응답의 `nextCursor`를 그대로 사용. 조건이나 키를 바꿨다면 cursor 없이 다시 조회 |
217
+ | `BANK_ACCOUNT_NOT_FOUND` | 없거나 내 계좌가 아닌 계좌 ID | `bank-account list`의 `id` 확인 |
218
+ | `BANK_ACCOUNT_NOT_CONNECTED` | 연결된 계좌 없이 동기화 요청 | 볼타 대시보드에서 계좌 연결 |
219
+ | `SYNC_IN_PROGRESS` | 입출금내역 동기화가 이미 진행 중 (한도 미차감) | `bank-account list`로 `syncStatus` 확인 |
220
+ | `SYNC_RATE_LIMITED` | 동기화 한도(30분 1회, 하루 12회) 초과 | `error.details.retryAfterSeconds`초 뒤 다시 요청 |
221
+ | `SYNC_UNAVAILABLE` | 동기화 한도를 확인할 수 없어 요청 거절 | 잠시 후 다시 요청 |
184
222
  | `NETWORK_ERROR` | 네트워크 오류 또는 응답 본문 읽기 실패 | 인터넷 연결 확인. 세금계산서 관리번호를 사용했다면 재전송하지 말고 `invoice status`로 접수 여부 확인 |
185
223
 
186
224
  ## 개발 명령어
package/README.md CHANGED
@@ -117,12 +117,17 @@ bolta invoice get <issuanceKey>
117
117
 
118
118
  # Bolta-Client-Reference-Id로 상태 조회
119
119
  bolta invoice status --reference-id <id>
120
+
121
+ # 작성일자로 발행 마감일 조회
122
+ bolta invoice due-date 2026-09-30
120
123
  ```
121
124
 
122
125
  세금계산서의 `--reference-id`는 선택 사항입니다. 앞뒤 공백 없는 출력 가능한 ASCII 1~255자를 입력하세요. 같은 API 키의 정발행·역발행·수정발행에서 이미 사용한 값은 요청 내용이나 명령이 달라도 다시 사용할 수 없습니다. 중복이면 API가 `400 INVALID_REQUEST`를 반환합니다.
123
126
 
124
127
  응답을 받지 못했거나 응답 본문을 읽지 못했다면 같은 요청을 다시 보내지 마세요. 요청에 사용한 값으로 `bolta invoice status --reference-id <id>`를 실행해 접수 여부를 확인하세요. 새 발행 요청에는 사용하지 않은 값을 입력합니다.
125
128
 
129
+ 정발행과 역발행은 작성일자가 발행 마감일을 지나면 `400 INVALID_REQUEST`를 반환합니다. 발행 전에 `bolta invoice due-date <작성일자>`로 마감일을 확인하세요. 마감일은 작성일자가 속한 달의 다음 달 10일입니다. 10일이 주말이나 공휴일이면 다음 영업일로 늦춰지고, 국세청이 기한을 연장한 달은 연장된 날짜를 따릅니다. 마감일 당일까지는 기한 안입니다. 이 조회는 발급자와 인증서가 필요 없고 포인트도 차감하지 않습니다. 볼타가 마감일을 관리하지 않는 달을 요청하면 `400 INVALID_REQUEST`입니다.
130
+
126
131
  #### 수정발행
127
132
 
128
133
  ```bash
@@ -238,6 +243,24 @@ bolta business-registration-status check-bulk --file numbers.json # {"business
238
243
 
239
244
  통신 실패는 `UNKNOWN`으로 돌려주지 않습니다. 사업자등록 상태를 확인할 수 없으면 `503 LOOKUP_UNAVAILABLE`입니다. 라이브 키는 정상 조회 결과마다 포인트를 차감합니다. 호출 한도는 API 키 모드별 24시간 10,000건이고, 요청 수가 아니라 조회한 번호 수로 셉니다. 볼타 서비스 전체의 일일 조회 한도에 도달해도 `429 RATE_LIMITED`를 받습니다. CLI는 이 조회를 자동 재시도하지 않습니다. 테스트 키로 조회할 수 있는 고정 번호는 `bolta guide business-registration-status`로 확인하세요.
240
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
+
241
264
  #### 설정
242
265
 
243
266
  ```bash
@@ -249,7 +272,7 @@ bolta config test # API 연결 테스트
249
272
  #### 도움말
250
273
 
251
274
  ```bash
252
- # 주요 개념 안내 (issuer, payment, workflow, cash-receipt, business-registration-status, glossary)
275
+ # 주요 개념 안내 (issuer, payment, workflow, cash-receipt, business-registration-status, bank-account, glossary)
253
276
  bolta guide [topic]
254
277
 
255
278
  # 바로 쓸 수 있는 샘플 JSON
@@ -315,7 +338,7 @@ cat invoice.json | bolta invoice issue --stdin
315
338
  | `AUTH_ERROR` | API 키 없음/잘못됨 | `bolta config set api-key <key>` |
316
339
  | `VALIDATION_ERROR` | 입력 데이터 오류 | `bolta schema <command>`로 스키마 확인 |
317
340
  | `INPUT_ERROR` | 명령어·옵션·입력 방식 오류 | `bolta --help` 또는 하위 명령의 `--help`로 사용법 확인 |
318
- | `INVALID_REQUEST` | 세금계산서 요청 검증 실패 또는 요청자 관리번호 중복 | `error.message` 확인. 중복이면 `invoice status`로 기존 요청 확인 |
341
+ | `INVALID_REQUEST` | 세금계산서 요청 검증 실패, 발행 마감일 경과 또는 요청자 관리번호 중복 | `error.message` 확인. 중복이면 `invoice status`로 기존 요청 확인. 마감일은 `invoice due-date`로 확인 |
319
342
  | `HTTP_402` | 포인트 잔액 부족 | https://developers.bolta.io 에서 포인트 충전 |
320
343
  | `HTTP_400` | 잘못된 요청 | error.message 확인 |
321
344
  | `HTTP_404` | 리소스 없음 | issuanceKey/issuerId 확인 |
@@ -323,6 +346,13 @@ cat invoice.json | bolta invoice issue --stdin
323
346
  | `RATE_LIMITED` | 사업자등록 상태 조회 24시간 한도 또는 서비스 전체 일일 한도 초과 | `error.details.retryAfterSeconds`초 뒤 다시 실행 |
324
347
  | `INVALID_BUSINESS_REGISTRATION_NUMBER` | 사업자등록번호 체크섬 불일치 | 번호 확인 |
325
348
  | `LOOKUP_UNAVAILABLE` | 사업자등록 상태 확인 불가 (포인트 미차감) | 잠시 후 다시 실행 |
349
+ | `PLAN_UPGRADE_REQUIRED` | 입출금내역 API를 쓰려면 스탠다드 플랜 이상 필요 | 볼타 대시보드 결제 메뉴에서 플랜 업그레이드 |
350
+ | `INVALID_CURSOR` | 입출금내역 cursor가 손상됐거나, 받을 때와 조회 조건 또는 API 키가 다름 | 같은 조건으로 이전 응답의 `nextCursor`를 그대로 사용. 조건이나 키를 바꿨다면 cursor 없이 다시 조회 |
351
+ | `BANK_ACCOUNT_NOT_FOUND` | 없거나 내 계좌가 아닌 계좌 ID | `bank-account list`의 `id` 확인 |
352
+ | `BANK_ACCOUNT_NOT_CONNECTED` | 연결된 계좌 없이 동기화 요청 | 볼타 대시보드에서 계좌 연결 |
353
+ | `SYNC_IN_PROGRESS` | 입출금내역 동기화가 이미 진행 중 (한도 미차감) | `bank-account list`로 `syncStatus` 확인 |
354
+ | `SYNC_RATE_LIMITED` | 동기화 한도(30분 1회, 하루 12회) 초과 | `error.details.retryAfterSeconds`초 뒤 다시 요청 |
355
+ | `SYNC_UNAVAILABLE` | 동기화 한도를 확인할 수 없어 요청 거절 | 잠시 후 다시 요청 |
326
356
  | `NETWORK_ERROR` | 네트워크 오류 또는 응답 본문 읽기 실패 | 인터넷 연결 확인. 세금계산서 관리번호를 사용했다면 재전송하지 말고 `invoice status`로 접수 여부 확인 |
327
357
 
328
358
  ---
package/dist/bin/bolta.js CHANGED
@@ -12,6 +12,7 @@ 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';
15
16
  import { legacyIssuerWarning, outputError } from '../src/utils/output.js';
16
17
  import { BoltaInputError } from '../src/utils/errors.js';
17
18
  import { getCurrentVersion } from '../src/utils/version.js';
@@ -55,6 +56,7 @@ registerCertificateCommands(program);
55
56
  registerInvoiceCommands(program);
56
57
  registerCashReceiptCommands(program);
57
58
  registerBusinessRegistrationStatusCommands(program);
59
+ registerBankAccountCommands(program);
58
60
  registerConfigCommands(program);
59
61
  registerExamplesCommand(program);
60
62
  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 } 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 } from '../types/api.js';
2
2
  import { type LegacyIssuerHeader } from '../utils/legacy-issuer.js';
3
3
  interface ClientConfig {
4
4
  apiKey: string;
@@ -35,6 +35,7 @@ export declare class BoltaClient {
35
35
  issueRequestTaxInvoice(data: CreateTaxInvoiceRequest, options?: TaxInvoiceRequestOptions): Promise<IssuanceResponse>;
36
36
  getTaxInvoice(issuanceKey: string): Promise<TaxInvoiceDetail>;
37
37
  getTaxInvoiceStatus(clientReferenceId: string): Promise<StatusResponse>;
38
+ getTaxInvoiceIssueDueDate(date: string): Promise<TaxInvoiceIssueDueDateResponse>;
38
39
  amendTermination(issuanceKey: string, data: AmendTerminationRequest, options?: TaxInvoiceRequestOptions): Promise<IssuanceResponse>;
39
40
  amendChangeSupplyCost(issuanceKey: string, data: AmendChangeSupplyCostRequest, options?: TaxInvoiceRequestOptions): Promise<IssuanceResponse>;
40
41
  amendDoubleIssuance(issuanceKey: string, options?: TaxInvoiceRequestOptions): Promise<IssuanceResponse>;
@@ -52,6 +53,13 @@ export declare class BoltaClient {
52
53
  checkBusinessRegistrationStatus(data: BusinessRegistrationStatusCheckRequest): Promise<BusinessRegistrationStatusResponse>;
53
54
  /** 단건과 같은 이유로 재시도하지 않는다. 확인하지 못한 번호는 200 응답 안에서 status가 null이다. */
54
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>;
55
63
  private request;
56
64
  }
57
65
  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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"}
@@ -106,6 +106,13 @@ export class BoltaClient {
106
106
  path: `/taxInvoices/issue/status?clientReferenceId=${encodeURIComponent(clientReferenceId)}`,
107
107
  });
108
108
  }
109
+ async getTaxInvoiceIssueDueDate(date) {
110
+ return this.request({
111
+ method: 'GET',
112
+ path: `/taxInvoiceIssueDueDates?date=${encodeURIComponent(date)}`,
113
+ invalidRequestSuggestion: "error.message를 확인하세요. 날짜 형식이 맞다면 볼타가 마감일을 제공하지 않는 달입니다. 'bolta invoice due-date --help'를 확인하세요.",
114
+ });
115
+ }
109
116
  async amendTermination(issuanceKey, data, options) {
110
117
  return this.request({
111
118
  method: 'POST',
@@ -178,6 +185,35 @@ export class BoltaClient {
178
185
  });
179
186
  }
180
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
+ // ========================
181
217
  // Internal Request Method
182
218
  // ========================
183
219
  async request(options) {
@@ -315,7 +351,31 @@ function parseRetryAfterSeconds(header) {
315
351
  function sleep(ms) {
316
352
  return new Promise((resolve) => setTimeout(resolve, ms));
317
353
  }
354
+ function describeRetryAfter(ctx) {
355
+ const retryAfterSeconds = ctx?.retryAfterSeconds;
356
+ return retryAfterSeconds !== undefined
357
+ ? `${retryAfterSeconds}초 뒤(error.details.retryAfterSeconds)`
358
+ : '잠시 후';
359
+ }
360
+ /**
361
+ * API가 도메인 오류 코드를 돌려줄 때의 안내. HTTP 상태별 공통 안내보다 먼저 적용한다.
362
+ */
363
+ const ERROR_CODE_SUGGESTIONS = {
364
+ INVALID_BUSINESS_REGISTRATION_NUMBER: () => '사업자등록번호 체크섬이 맞지 않습니다. 번호를 다시 확인하세요.',
365
+ LOOKUP_UNAVAILABLE: () => '사업자등록 상태를 지금 확인할 수 없습니다. 포인트는 차감되지 않았습니다. 잠시 후 다시 시도하세요.',
366
+ RATE_LIMITED: (ctx) => ctx?.statusSuggestion ?? `호출 한도를 모두 사용했습니다. ${describeRetryAfter(ctx)} 다시 시도하세요.`,
367
+ PLAN_UPGRADE_REQUIRED: () => "입출금내역 API는 스탠다드 플랜부터 쓸 수 있습니다. 포인트 잔액 문제가 아닙니다. 볼타 대시보드의 결제 메뉴에서 플랜을 업그레이드한 뒤 다시 시도하세요.",
368
+ INVALID_CURSOR: () => "cursor는 받을 때의 조회 조건(--from, --to, --bank-account-id, --type)과 API 키에 묶입니다. 이전 응답의 nextCursor를 같은 조건으로 그대로 넣으세요. 조건을 바꿨거나 테스트 키에서 라이브 키로 옮겼다면 --cursor 없이 처음부터 다시 조회하세요. --limit은 바꿔도 됩니다.",
369
+ BANK_ACCOUNT_NOT_FOUND: () => "계좌 ID를 확인하세요. 'bolta bank-account list' 응답의 id를 사용하세요.",
370
+ BANK_ACCOUNT_NOT_CONNECTED: () => '연결된 계좌가 없습니다. API로는 계좌를 연결할 수 없으니 볼타 대시보드에서 먼저 연결하세요.',
371
+ SYNC_IN_PROGRESS: () => "이미 동기화가 진행 중입니다. 한도는 차감되지 않았습니다. 'bolta bank-account list'로 syncStatus가 IN_PROGRESS에서 바뀌었는지 확인하세요.",
372
+ SYNC_RATE_LIMITED: (ctx) => `동기화는 30분에 한 번, 하루 12번까지 요청할 수 있습니다. ${describeRetryAfter(ctx)} 다시 요청하세요. 볼타가 주기적으로 거래를 가져오므로 기다리지 않고 조회해도 됩니다.`,
373
+ SYNC_UNAVAILABLE: () => '지금은 동기화 한도를 확인할 수 없어 요청을 받지 않았습니다. 잠시 후 다시 시도하세요.',
374
+ };
318
375
  function getSuggestion(status, code, ctx) {
376
+ const codeSuggestion = ERROR_CODE_SUGGESTIONS[code];
377
+ if (codeSuggestion)
378
+ return codeSuggestion(ctx);
319
379
  if (status === 401)
320
380
  return "API 키가 올바른지 확인하세요. 'bolta config test'로 인증을 테스트할 수 있습니다.";
321
381
  if (status === 402)
@@ -334,23 +394,10 @@ function getSuggestion(status, code, ctx) {
334
394
  if (code === 'INVALID_REQUEST' && ctx?.invalidRequestSuggestion) {
335
395
  return ctx.invalidRequestSuggestion;
336
396
  }
337
- if (code === 'INVALID_BUSINESS_REGISTRATION_NUMBER') {
338
- return '사업자등록번호 체크섬이 맞지 않습니다. 번호를 다시 확인하세요.';
339
- }
340
- if (code === 'LOOKUP_UNAVAILABLE') {
341
- return '사업자등록 상태를 지금 확인할 수 없습니다. 포인트는 차감되지 않았습니다. 잠시 후 다시 시도하세요.';
342
- }
343
397
  if (status === 429) {
344
398
  if (ctx?.statusSuggestion)
345
399
  return ctx.statusSuggestion;
346
- const retryAfterSeconds = ctx?.retryAfterSeconds;
347
- const when = retryAfterSeconds !== undefined
348
- ? `${retryAfterSeconds}초 뒤(error.details.retryAfterSeconds)`
349
- : '잠시 후';
350
- if (code === 'RATE_LIMITED') {
351
- return `호출 한도를 모두 사용했습니다. ${when} 다시 시도하세요.`;
352
- }
353
- return `요청 횟수 제한에 도달했습니다. ${when} 다시 시도하세요.`;
400
+ return `요청 횟수 제한에 도달했습니다. ${describeRetryAfter(ctx)} 다시 시도하세요.`;
354
401
  }
355
402
  if (status >= 500) {
356
403
  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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function listBankAccountsAction(options: Record<string, unknown>, command: Command): Promise<void>;
3
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/commands/bank-account/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9G"}
@@ -0,0 +1,17 @@
1
+ import { createApiKeyClient } from '../../utils/client.js';
2
+ import { outputError, outputSuccess } from '../../utils/output.js';
3
+ export async function listBankAccountsAction(options, command) {
4
+ try {
5
+ const globalOpts = command.optsWithGlobals();
6
+ if (globalOpts.dryRun) {
7
+ outputSuccess({ dryRun: true, endpoint: 'GET /v1/bankAccounts' });
8
+ return;
9
+ }
10
+ const client = createApiKeyClient(globalOpts);
11
+ outputSuccess(await client.listBankAccounts());
12
+ }
13
+ catch (err) {
14
+ outputError(err);
15
+ }
16
+ }
17
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/bank-account/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAgC,EAAE,OAAgB;IAC7F,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAE7C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,aAAa,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function syncBankAccountsAction(options: Record<string, unknown>, command: Command): Promise<void>;
3
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/bank-account/sync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIzC,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9G"}
@@ -0,0 +1,17 @@
1
+ import { createApiKeyClient } from '../../utils/client.js';
2
+ import { outputError, outputSuccess } from '../../utils/output.js';
3
+ export async function syncBankAccountsAction(options, command) {
4
+ try {
5
+ const globalOpts = command.optsWithGlobals();
6
+ if (globalOpts.dryRun) {
7
+ outputSuccess({ dryRun: true, endpoint: 'POST /v1/bankAccounts:sync' });
8
+ return;
9
+ }
10
+ const client = createApiKeyClient(globalOpts);
11
+ outputSuccess(await client.requestBankAccountSync());
12
+ }
13
+ catch (err) {
14
+ outputError(err);
15
+ }
16
+ }
17
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../src/commands/bank-account/sync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAgC,EAAE,OAAgB;IAC7F,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAE7C,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,4BAA4B,EAAE,CAAC,CAAC;YACxE,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,aAAa,CAAC,MAAM,MAAM,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Command } from 'commander';
2
+ interface TransactionsOptions {
3
+ from?: string;
4
+ to?: string;
5
+ bankAccountId?: string;
6
+ type?: string;
7
+ cursor?: string;
8
+ limit?: string;
9
+ all?: boolean;
10
+ }
11
+ export declare function listBankAccountTransactionsAction(options: TransactionsOptions, command: Command): Promise<void>;
12
+ export {};
13
+ //# sourceMappingURL=transactions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../../../src/commands/bank-account/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAgDf"}