@bolta-io/cli 0.1.1 → 0.3.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 (119) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/CLAUDE.md +35 -31
  3. package/README.md +26 -27
  4. package/dist/bin/bolta.js +14 -29
  5. package/dist/bin/bolta.js.map +1 -1
  6. package/dist/src/client/bolta-client.d.ts +24 -27
  7. package/dist/src/client/bolta-client.d.ts.map +1 -1
  8. package/dist/src/client/bolta-client.js +106 -84
  9. package/dist/src/client/bolta-client.js.map +1 -1
  10. package/dist/src/commands/cash-receipt/cancel.js +3 -3
  11. package/dist/src/commands/cash-receipt/cancel.js.map +1 -1
  12. package/dist/src/commands/cash-receipt/issue.js +3 -3
  13. package/dist/src/commands/cash-receipt/issue.js.map +1 -1
  14. package/dist/src/commands/cash-receipt/status.d.ts.map +1 -1
  15. package/dist/src/commands/cash-receipt/status.js +3 -8
  16. package/dist/src/commands/cash-receipt/status.js.map +1 -1
  17. package/dist/src/commands/certificate/index.d.ts.map +1 -1
  18. package/dist/src/commands/certificate/index.js +19 -42
  19. package/dist/src/commands/certificate/index.js.map +1 -1
  20. package/dist/src/commands/config/index.d.ts.map +1 -1
  21. package/dist/src/commands/config/index.js +17 -54
  22. package/dist/src/commands/config/index.js.map +1 -1
  23. package/dist/src/commands/examples/index.d.ts.map +1 -1
  24. package/dist/src/commands/examples/index.js +8 -9
  25. package/dist/src/commands/examples/index.js.map +1 -1
  26. package/dist/src/commands/guide/index.d.ts.map +1 -1
  27. package/dist/src/commands/guide/index.js +35 -29
  28. package/dist/src/commands/guide/index.js.map +1 -1
  29. package/dist/src/commands/invoice/amend.d.ts.map +1 -1
  30. package/dist/src/commands/invoice/amend.js +25 -33
  31. package/dist/src/commands/invoice/amend.js.map +1 -1
  32. package/dist/src/commands/invoice/get.d.ts.map +1 -1
  33. package/dist/src/commands/invoice/get.js +2 -7
  34. package/dist/src/commands/invoice/get.js.map +1 -1
  35. package/dist/src/commands/invoice/index.d.ts.map +1 -1
  36. package/dist/src/commands/invoice/index.js +10 -6
  37. package/dist/src/commands/invoice/index.js.map +1 -1
  38. package/dist/src/commands/invoice/issue-request.d.ts.map +1 -1
  39. package/dist/src/commands/invoice/issue-request.js +6 -16
  40. package/dist/src/commands/invoice/issue-request.js.map +1 -1
  41. package/dist/src/commands/invoice/issue.d.ts.map +1 -1
  42. package/dist/src/commands/invoice/issue.js +6 -16
  43. package/dist/src/commands/invoice/issue.js.map +1 -1
  44. package/dist/src/commands/invoice/reference-id.d.ts +2 -0
  45. package/dist/src/commands/invoice/reference-id.d.ts.map +1 -0
  46. package/dist/src/commands/invoice/reference-id.js +8 -0
  47. package/dist/src/commands/invoice/reference-id.js.map +1 -0
  48. package/dist/src/commands/invoice/status.d.ts.map +1 -1
  49. package/dist/src/commands/invoice/status.js +6 -8
  50. package/dist/src/commands/invoice/status.js.map +1 -1
  51. package/dist/src/commands/issuer/create.d.ts +4 -0
  52. package/dist/src/commands/issuer/create.d.ts.map +1 -0
  53. package/dist/src/commands/issuer/create.js +24 -0
  54. package/dist/src/commands/issuer/create.js.map +1 -0
  55. package/dist/src/commands/issuer/get.d.ts +3 -0
  56. package/dist/src/commands/issuer/get.d.ts.map +1 -0
  57. package/dist/src/commands/issuer/get.js +14 -0
  58. package/dist/src/commands/issuer/get.js.map +1 -0
  59. package/dist/src/commands/issuer/index.d.ts +3 -0
  60. package/dist/src/commands/issuer/index.d.ts.map +1 -0
  61. package/dist/src/commands/issuer/index.js +31 -0
  62. package/dist/src/commands/issuer/index.js.map +1 -0
  63. package/dist/src/commands/schema/index.d.ts.map +1 -1
  64. package/dist/src/commands/schema/index.js +3 -4
  65. package/dist/src/commands/schema/index.js.map +1 -1
  66. package/dist/src/commands/supplier/legacy.d.ts +3 -0
  67. package/dist/src/commands/supplier/legacy.d.ts.map +1 -0
  68. package/dist/src/commands/supplier/legacy.js +75 -0
  69. package/dist/src/commands/supplier/legacy.js.map +1 -0
  70. package/dist/src/config/config-manager.d.ts +7 -9
  71. package/dist/src/config/config-manager.d.ts.map +1 -1
  72. package/dist/src/config/config-manager.js +28 -48
  73. package/dist/src/config/config-manager.js.map +1 -1
  74. package/dist/src/types/api.d.ts +40 -7
  75. package/dist/src/types/api.d.ts.map +1 -1
  76. package/dist/src/utils/client.d.ts +10 -15
  77. package/dist/src/utils/client.d.ts.map +1 -1
  78. package/dist/src/utils/client.js +26 -8
  79. package/dist/src/utils/client.js.map +1 -1
  80. package/dist/src/utils/errors.d.ts +1 -1
  81. package/dist/src/utils/errors.d.ts.map +1 -1
  82. package/dist/src/utils/errors.js +2 -2
  83. package/dist/src/utils/errors.js.map +1 -1
  84. package/dist/src/utils/legacy-issuer.d.ts +28 -0
  85. package/dist/src/utils/legacy-issuer.d.ts.map +1 -0
  86. package/dist/src/utils/legacy-issuer.js +45 -0
  87. package/dist/src/utils/legacy-issuer.js.map +1 -0
  88. package/dist/src/utils/output.d.ts +7 -3
  89. package/dist/src/utils/output.d.ts.map +1 -1
  90. package/dist/src/utils/output.js +14 -4
  91. package/dist/src/utils/output.js.map +1 -1
  92. package/dist/src/{commands/cash-receipt/validation.d.ts → validators/parse.d.ts} +1 -1
  93. package/dist/src/validators/parse.d.ts.map +1 -0
  94. package/dist/src/{commands/cash-receipt/validation.js → validators/parse.js} +2 -2
  95. package/dist/src/validators/parse.js.map +1 -0
  96. package/dist/src/validators/schemas.d.ts +2 -1
  97. package/dist/src/validators/schemas.d.ts.map +1 -1
  98. package/dist/src/validators/schemas.js +28 -11
  99. package/dist/src/validators/schemas.js.map +1 -1
  100. package/llms.txt +38 -36
  101. package/package.json +1 -1
  102. package/dist/src/commands/cash-receipt/validation.d.ts.map +0 -1
  103. package/dist/src/commands/cash-receipt/validation.js.map +0 -1
  104. package/dist/src/commands/supplier/create.d.ts +0 -4
  105. package/dist/src/commands/supplier/create.d.ts.map +0 -1
  106. package/dist/src/commands/supplier/create.js +0 -40
  107. package/dist/src/commands/supplier/create.js.map +0 -1
  108. package/dist/src/commands/supplier/get.d.ts +0 -3
  109. package/dist/src/commands/supplier/get.d.ts.map +0 -1
  110. package/dist/src/commands/supplier/get.js +0 -19
  111. package/dist/src/commands/supplier/get.js.map +0 -1
  112. package/dist/src/commands/supplier/index.d.ts +0 -3
  113. package/dist/src/commands/supplier/index.d.ts.map +0 -1
  114. package/dist/src/commands/supplier/index.js +0 -56
  115. package/dist/src/commands/supplier/index.js.map +0 -1
  116. package/dist/src/commands/supplier/legacy-customer.d.ts +0 -5
  117. package/dist/src/commands/supplier/legacy-customer.d.ts.map +0 -1
  118. package/dist/src/commands/supplier/legacy-customer.js +0 -56
  119. package/dist/src/commands/supplier/legacy-customer.js.map +0 -1
@@ -1,27 +1,28 @@
1
- import { loadConfig, saveConfig, resolveApiKey, resolveBaseUrl, maskApiKey, resolveSupplierKeyWithSource, supplierKeySourceLabel, } from '../../config/config-manager.js';
2
- import { outputSuccess, outputError, deprecationWarning, warning } from '../../utils/output.js';
1
+ import { loadConfig, saveConfig, resolveApiKey, resolveBaseUrl, maskApiKey, } from '../../config/config-manager.js';
2
+ import { outputSuccess, outputError, legacyIssuerWarning } from '../../utils/output.js';
3
3
  import { BoltaClient } from '../../client/bolta-client.js';
4
4
  import { BoltaError, BoltaApiError } from '../../utils/errors.js';
5
- /** config set 시 supplierKey 값이 의심스러우면 stderr로 경고한다(하드 차단 아님). */
6
- function warnIfSuspiciousSupplierKey(value) {
5
+ function replaceLegacyIssuerKey(config, key, value) {
6
+ delete config.supplierKey;
7
+ delete config.customerKey;
7
8
  if (!value)
8
9
  return;
9
- if (/\s/.test(value)) {
10
- warning('supplierKey에 공백이 포함되어 있습니다. 복사 과정에서 섞이지 않았는지 확인하세요.');
10
+ legacyIssuerWarning(`'config set ${key}'`);
11
+ if (key === 'supplier-key') {
12
+ config.supplierKey = value;
11
13
  }
12
- if (!value.startsWith('SupplierKey_') && !value.startsWith('CustomerKey_')) {
13
- warning("supplierKey는 보통 'SupplierKey_'로 시작합니다. 올바른 값인지 확인하세요.");
14
+ else {
15
+ config.customerKey = value;
14
16
  }
15
17
  }
16
18
  export function registerConfigCommands(program) {
17
19
  const config = program.command('config').description('CLI 설정 관리');
18
20
  config
19
21
  .command('set <key> <value>')
20
- .description('설정값 저장 (api-key, supplier-key, base-url, update-check)')
22
+ .description('설정값 저장 (api-key, base-url, update-check)')
21
23
  .addHelpText('after', `
22
24
  Examples:
23
25
  bolta config set api-key test_your_key_here
24
- bolta config set supplier-key SupplierKey_abc123
25
26
  bolta config set base-url https://xapi.bolta.io/v1
26
27
  bolta config set update-check false`)
27
28
  .action(async (key, value) => {
@@ -34,16 +35,9 @@ Examples:
34
35
  current.apiKey = trimmedValue;
35
36
  break;
36
37
  case 'supplier-key':
37
- warnIfSuspiciousSupplierKey(trimmedValue);
38
- current.supplierKey = trimmedValue;
39
- // 구 필드가 남아있으면 정리
40
- delete current.customerKey;
41
- break;
42
38
  case 'customer-key':
43
- deprecationWarning("config의 'customer-key'는 'supplier-key'로 변경되었습니다.");
44
- warnIfSuspiciousSupplierKey(trimmedValue);
45
- current.supplierKey = trimmedValue;
46
- delete current.customerKey;
39
+ // 레거시 이름은 하나의 설정이다. 마지막으로 입력한 이름과 값만 보존한다.
40
+ replaceLegacyIssuerKey(current, key, trimmedValue);
47
41
  break;
48
42
  case 'base-url':
49
43
  current.baseUrl = trimmedValue;
@@ -55,7 +49,7 @@ Examples:
55
49
  current.updateCheck = value === 'true';
56
50
  break;
57
51
  default:
58
- throw new BoltaError(`알 수 없는 설정 키: ${key}`, 'CONFIG_ERROR', 'api-key, supplier-key, base-url, update-check 중 하나를 사용하세요.');
52
+ throw new BoltaError(`알 수 없는 설정 키: ${key}`, 'CONFIG_ERROR', 'api-key, base-url, update-check 중 하나를 사용하세요.');
59
53
  }
60
54
  saveConfig(current);
61
55
  outputSuccess({ key, message: '설정이 저장되었습니다.' });
@@ -70,17 +64,14 @@ Examples:
70
64
  .action(() => {
71
65
  try {
72
66
  const apiKey = resolveApiKey();
73
- const supplier = resolveSupplierKeyWithSource();
74
67
  const baseUrl = resolveBaseUrl();
75
68
  const savedConfig = loadConfig();
76
69
  outputSuccess({
77
70
  apiKey: apiKey ? maskApiKey(apiKey) : '(미설정)',
78
- supplierKey: supplier.value ? maskApiKey(supplier.value) : '(미설정)',
79
71
  baseUrl,
80
72
  updateCheck: savedConfig.updateCheck !== false,
81
73
  source: {
82
74
  apiKey: apiKey ? (process.env.BOLTA_API_KEY ? 'env' : 'config') : 'none',
83
- supplierKey: supplierKeySourceLabel(supplier.source),
84
75
  },
85
76
  });
86
77
  }
@@ -98,11 +89,11 @@ Examples:
98
89
  throw new BoltaError('API 키가 설정되지 않았습니다.', 'AUTH_ERROR', "BOLTA_API_KEY 환경변수를 설정하거나 'bolta config set api-key <key>'를 실행하세요.");
99
90
  }
100
91
  const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
101
- // 1) apiKey 인증 점검: 더미 supplierKey를 조회한다.
102
- // 서버는 존재하지 않는 supplierKey에 404 또는 403(유효하지 않은 supplierKey)을 반환하므로,
92
+ // API 인증 점검: 존재하지 않는 발급자를 조회한다.
93
+ // 서버는 404 또는 403을 반환하므로,
103
94
  // 인증 실패를 뜻하는 401은 AUTH_ERROR로, 403/404는 "인증됨"으로 판정한다.
104
95
  try {
105
- await client.getSupplier('__auth_probe__');
96
+ await client.getIssuer('__auth_probe__');
106
97
  }
107
98
  catch (err) {
108
99
  if (err instanceof BoltaApiError && err.statusCode === 401) {
@@ -113,37 +104,9 @@ Examples:
113
104
  throw err;
114
105
  }
115
106
  }
116
- // 2) supplierKey가 설정돼 있으면 이 API 키로 유효한지 실제 조회한다.
117
- const supplier = resolveSupplierKeyWithSource();
118
- let supplierKeyResult;
119
- if (!supplier.value) {
120
- supplierKeyResult = { configured: false };
121
- }
122
- else {
123
- const source = supplierKeySourceLabel(supplier.source);
124
- try {
125
- await client.getSupplier(supplier.value);
126
- supplierKeyResult = { configured: true, source, valid: true, message: 'supplierKey가 유효합니다.' };
127
- }
128
- catch (err) {
129
- if (err instanceof BoltaApiError && (err.statusCode === 403 || err.statusCode === 404)) {
130
- supplierKeyResult = {
131
- configured: true,
132
- source,
133
- valid: false,
134
- message: '이 API 키로는 존재하지 않거나 사용할 수 없는 supplierKey입니다. supplierKey는 test_/live_ 및 API 키마다 다릅니다. ' +
135
- '환경변수 BOLTA_SUPPLIER_KEY/BOLTA_CUSTOMER_KEY가 config를 덮고 있지 않은지 확인하세요.',
136
- };
137
- }
138
- else {
139
- throw err;
140
- }
141
- }
142
- }
143
107
  outputSuccess({
144
108
  authenticated: true,
145
109
  message: 'API 인증이 정상입니다.',
146
- supplierKey: supplierKeyResult,
147
110
  });
148
111
  }
149
112
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/config/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+OpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwD9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoPpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuD9D"}
@@ -1,4 +1,4 @@
1
- import { outputSuccess, outputError, resolveDeprecatedName } from '../../utils/output.js';
1
+ import { outputSuccess, outputError, resolveLegacyIssuerName, LEGACY_ISSUER_CREATE_ALIASES, } from '../../utils/output.js';
2
2
  import { BoltaError } from '../../utils/errors.js';
3
3
  function today() {
4
4
  return new Date().toISOString().slice(0, 10);
@@ -7,8 +7,8 @@ function buildExamples() {
7
7
  const d = today();
8
8
  const [year, month] = d.split('-');
9
9
  return {
10
- 'supplier-create': {
11
- description: '공급자 생성',
10
+ 'issuer-create': {
11
+ description: '발급자 등록',
12
12
  data: {
13
13
  identificationNumber: '1234567890',
14
14
  organizationName: '주식회사 테스트',
@@ -30,7 +30,7 @@ function buildExamples() {
30
30
  businessType: '서비스업',
31
31
  businessItem: '소프트웨어 개발',
32
32
  manager: {
33
- email: 'supplier@example.com',
33
+ email: 'seller@example.com',
34
34
  name: '김매니저',
35
35
  telephone: '010-1234-5678',
36
36
  },
@@ -80,7 +80,7 @@ function buildExamples() {
80
80
  businessType: '서비스업',
81
81
  businessItem: '소프트웨어 개발',
82
82
  manager: {
83
- email: 'supplier@example.com',
83
+ email: 'seller@example.com',
84
84
  name: '김매니저',
85
85
  telephone: null,
86
86
  },
@@ -126,7 +126,7 @@ function buildExamples() {
126
126
  identificationNumber: '1234567890',
127
127
  organizationName: '공급자 주식회사',
128
128
  representativeName: '김공급',
129
- manager: { email: 'supplier@example.com' },
129
+ manager: { email: 'seller@example.com' },
130
130
  },
131
131
  supplied: {
132
132
  identificationNumber: '0987654321',
@@ -239,7 +239,7 @@ export function registerExamplesCommand(program) {
239
239
  .description('샘플 JSON 데이터 출력 (AI 에이전트용)')
240
240
  .addHelpText('after', `
241
241
  Available examples:
242
- supplier-create 공급자 생성
242
+ issuer-create 발급자 등록
243
243
  invoice-issue 세금계산서 정발행
244
244
  invoice-issue-foreign-supplied 외국인등록번호 공급받는자 세금계산서 정발행
245
245
  invoice-issue-request 세금계산서 역발행 요청
@@ -265,8 +265,7 @@ Examples:
265
265
  outputSuccess({ availableExamples: list });
266
266
  return;
267
267
  }
268
- // 하위호환: 예제명 'customer-create' → 'supplier-create'
269
- commandName = resolveDeprecatedName(commandName, { 'customer-create': 'supplier-create' }, '예제');
268
+ commandName = resolveLegacyIssuerName(commandName, LEGACY_ISSUER_CREATE_ALIASES, '예제');
270
269
  const example = examples[commandName];
271
270
  if (!example) {
272
271
  const available = Object.keys(examples).join(', ');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/examples/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CA8GtD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD3D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,iBAAS,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAqHtD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwD3D"}
@@ -1,22 +1,22 @@
1
- import { outputSuccess, outputError, resolveDeprecatedName } from '../../utils/output.js';
1
+ import { outputSuccess, outputError, resolveLegacyIssuerName } from '../../utils/output.js';
2
2
  import { BoltaError } from '../../utils/errors.js';
3
3
  function buildGuideTopics() {
4
4
  return {
5
- 'supplier-key': {
6
- title: 'Supplier Key 이해하기',
7
- summary: 'supplierKey는 세금계산서나 현금영수증을 발행하는 공급자 본인을 식별하는 키입니다.',
5
+ issuer: {
6
+ title: '발급자 이해하기',
7
+ summary: '발급자는 세금계산서나 현금영수증 발행에 사용하는 인증서의 소유자입니다.',
8
8
  details: {
9
- 정의: 'Bolta 플랫폼에서 세금계산서나 현금영수증 공급자(발행자)를 식별하는 고유 ',
10
- 형식: 'SupplierKey_ 접두사 문자열 (예: SupplierKey_bf8paz)',
11
- 획득방법: '공급자의 사업자 정보로 bolta supplier create 호출 → 응답의 supplierKey 필드',
12
- 사용방법: 'BOLTA_SUPPLIER_KEY 환경변수, --supplier-key 플래그, 또는 bolta config set supplier-key',
13
- API키와의관계: 'API 키(test_/live_) 단위로 독립 관리. 테스트와 라이브 환경의 supplierKey는 서로 다른 값이며 상호 호환되지 않음',
9
+ 등록방법: '발급할 사업자 정보로 bolta issuer create 호출 → 응답의 issuerId 저장',
10
+ 관리방법: 'issuerId는 발급자 조회와 인증서 등록·조회·해제에만 사용',
11
+ 발행방법: 'API 키로 인증하고 요청 본문의 사업자등록번호로 발급자를 선택',
12
+ 발행주체판별: {
13
+ 일반정발행과역발행: 'supplier.identificationNumber',
14
+ 현금영수증: 'issuer.businessRegistrationNumber',
15
+ },
14
16
  주의사항: [
15
- 'Supplier-Key공급자(발행자) 본인의 키입니다',
16
- '세금계산서를 받는 거래처(공급받는자)의 정보는 Supplier-Key 헤더가 아니라 요청 본문의 supplied 필드에 포함합니다',
17
- '현금영수증 수취인 정보는 Supplier-Key 헤더가 아니라 요청 본문의 recipient 필드에 포함합니다',
18
- 'Supplier-Key에 공급받는자의 키를 잘못 전달하지 않도록 주의하세요',
19
- 'test_ 키로 생성한 supplierKey는 live_ 환경에서 사용할 수 없습니다',
17
+ 'issuerId발행 요청 본문에 넣지 않습니다',
18
+ '일반 정발행과 역발행에서는 supplier.identificationNumber를 정확히 입력하세요',
19
+ '현금영수증에서는 issuer.businessRegistrationNumber를 정확히 입력하세요',
20
20
  ],
21
21
  },
22
22
  },
@@ -40,13 +40,19 @@ function buildGuideTopics() {
40
40
  steps: [
41
41
  { 순서: 1, 명령어: 'bolta config set api-key <key>', 설명: 'API 키 설정 (test_ 또는 live_ 접두사)' },
42
42
  { 순서: 2, 명령어: 'bolta config test', 설명: 'API 연결 테스트' },
43
- { 순서: 3, 명령어: 'bolta supplier create --data \'{"identificationNumber":"...", ...}\'', 설명: '공급자 사업자 정보로 공급자 등록 → supplierKey 획득' },
44
- { 순서: 4, 명령어: 'bolta config set supplier-key <supplierKey>', 설명: '획득한 supplierKey 설정' },
45
- { 순서: 5, 명령어: 'bolta certificate url <supplierKey>', 설명: '공동인증서 등록 URL 조회 (정발행 시 필요)' },
46
- { 순서: 6, 설명: '포인트 충전 (라이브 사용 시). https://developers.bolta.io 개발자센터에서 충전' },
47
- { 순서: 7, 명령어: 'bolta invoice issue --data \'<세금계산서 JSON>\'', 설명: '세금계산서 정발행' },
43
+ { 순서: 3, 명령어: 'bolta issuer create --data \'{"identificationNumber":"...", ...}\'', 설명: '발급자 등록 → issuerId 획득' },
44
+ { 순서: 4, 명령어: 'bolta certificate url <issuerId>', 설명: '공동인증서 등록 URL 조회 (정발행 시 필요)' },
45
+ { 순서: 5, 설명: '포인트 충전 (라이브 사용 시). https://developers.bolta.io 개발자센터에서 충전' },
46
+ { 순서: 6, 명령어: 'bolta invoice issue --reference-id <id> --data \'<세금계산서 JSON>\'', 설명: '사용하지 않은 요청자 관리번호로 세금계산서 정발행' },
47
+ { 순서: 7, 명령어: 'bolta invoice status --reference-id <id>', 설명: '응답을 받지 못했거나 본문을 읽지 못했을 때 접수 여부 확인' },
48
48
  { 순서: 8, 명령어: 'bolta invoice get <issuanceKey>', 설명: '발행 결과 확인 (국세청 승인번호 포함)' },
49
49
  ],
50
+ 요청자관리번호: [
51
+ '앞뒤 공백 없는 출력 가능한 ASCII 1~255자이며 선택 사항입니다',
52
+ '같은 API 키의 정발행·역발행·수정발행에서 이미 사용한 값을 재사용할 수 없습니다',
53
+ '중복 요청은 400 INVALID_REQUEST를 반환합니다',
54
+ '응답을 받지 못했거나 본문을 읽지 못했다면 같은 요청을 다시 보내지 말고 status 명령으로 확인하세요',
55
+ ],
50
56
  },
51
57
  },
52
58
  'cash-receipt': {
@@ -54,9 +60,9 @@ function buildGuideTopics() {
54
60
  summary: '현금영수증 발행, 상태 조회, 전액 취소 순서를 안내합니다.',
55
61
  details: {
56
62
  사전준비: [
57
- 'API 키와 supplierKey를 설정하세요',
58
- '현금영수증을 발행할 공급자의 인증서를 먼저 등록하세요',
59
- 'issuer.businessRegistrationNumber supplierKey에 연결된 사업자등록번호와 같아야 합니다',
63
+ 'API 키를 설정하세요',
64
+ '현금영수증 발급자를 등록하고 인증서를 등록하세요',
65
+ 'issuer.businessRegistrationNumber에는 등록한 발급자의 사업자등록번호를 입력하세요',
60
66
  ],
61
67
  steps: [
62
68
  {
@@ -99,11 +105,12 @@ function buildGuideTopics() {
99
105
  details: {
100
106
  용어: [
101
107
  { 용어: 'apiKey', 설명: 'Bolta API 인증 키. test_(샌드박스) 또는 live_(프로덕션) 접두사' },
102
- { 용어: 'supplierKey', 설명: '공급자(세금계산서 발행자)를 식별하는 Bolta 플랫폼 고유 키. SupplierKey_ 접두사' },
108
+ { 용어: 'issuerId', 설명: '등록한 발급자를 식별하는 값. 발급자 조회와 인증서 관리에 사용' },
103
109
  { 용어: 'issuanceKey', 설명: '세금계산서나 현금영수증 요청 후 반환되는 고유 식별자. 조회·수정·취소 시 사용' },
110
+ { 용어: 'clientReferenceId', 설명: '발행 요청을 구분하는 요청자 관리번호. 세금계산서에서는 같은 API 키 안에서 발행 요청마다 새 값을 사용' },
104
111
  { 용어: 'identificationNumber', 설명: '사업자등록번호 (10자리). 세금계산서의 공급자/공급받는자 식별에 사용' },
105
- { 용어: 'supplier (공급자)', 설명: '세금계산서를 발행하는 측. supplierKey와 공동인증서가 필요' },
106
- { 용어: 'supplied (공급받는자)', 설명: '세금계산서를 받는 거래처. 별도 supplierKey 불필요, invoice JSON의 supplied 필드에 정보 입력' },
112
+ { 용어: 'supplier (공급자)', 설명: '세금계산서에서 재화나 용역을 공급하는 측. invoice JSON의 supplier 필드' },
113
+ { 용어: 'supplied (공급받는자)', 설명: '세금계산서를 받는 거래처. invoice JSON의 supplied 필드' },
107
114
  { 용어: 'purpose', 설명: 'CLAIM(청구용) 또는 RECEIPT(영수용)' },
108
115
  { 용어: 'ntsTransactionId', 설명: '국세청 승인번호. 발행 완료 후 부여됨' },
109
116
  ],
@@ -118,7 +125,7 @@ export function registerGuideCommand(program) {
118
125
  .description('주요 개념 및 사용법 안내')
119
126
  .addHelpText('after', `
120
127
  Available topics:
121
- supplier-key Supplier Key 이해하기
128
+ issuer 발급자 이해하기
122
129
  payment 요금 안내 및 포인트 충전
123
130
  workflow 전자세금계산서 발행 워크플로우
124
131
  cash-receipt 현금영수증 발행 워크플로우
@@ -126,7 +133,7 @@ Available topics:
126
133
 
127
134
  Examples:
128
135
  bolta guide # 사용 가능한 토픽 목록
129
- bolta guide supplier-key # Supplier Key 개념 안내
136
+ bolta guide issuer # 발급자 개념 안내
130
137
  bolta guide payment # 요금 및 포인트 충전 안내`)
131
138
  .action((topicName) => {
132
139
  try {
@@ -140,8 +147,7 @@ Examples:
140
147
  outputSuccess({ availableTopics: list });
141
148
  return;
142
149
  }
143
- // 하위호환: 토픽명 'customer-key' 'supplier-key'
144
- topicName = resolveDeprecatedName(topicName, { 'customer-key': 'supplier-key' }, 'guide 토픽');
150
+ topicName = resolveLegacyIssuerName(topicName, { 'supplier-key': 'issuer', 'customer-key': 'issuer' }, 'guide 토픽');
145
151
  const topic = topics[topicName];
146
152
  if (!topic) {
147
153
  const available = Object.keys(topics).join(', ');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/commands/guide/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"amend.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoI5D"}
1
+ {"version":3,"file":"amend.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuI5D"}
@@ -2,34 +2,28 @@ import { createClient } from '../../utils/client.js';
2
2
  import { resolveInput } from '../../utils/input.js';
3
3
  import { outputSuccess, outputError, verbose } from '../../utils/output.js';
4
4
  import { amendTerminationSchema, amendChangeSupplyCostSchema } from '../../validators/schemas.js';
5
- import { BoltaValidationError } from '../../utils/errors.js';
6
- import { ZodError } from 'zod';
5
+ import { parseOrThrow } from '../../validators/parse.js';
6
+ import { parseOptionalTaxInvoiceReferenceId } from './reference-id.js';
7
7
  export function registerAmendCommands(invoice) {
8
8
  const amend = invoice.command('amend').description('세금계산서 수정 발행');
9
9
  amend
10
10
  .command('termination <issuanceKey>')
11
11
  .description('수정발행: 계약 해제 (POST /v1/taxInvoices/{issuanceKey}/amend/termination)\n ⚠ 원본 세금계산서의 품목 공급가액이 음수인 경우 사용 불가')
12
12
  .requiredOption('--date <date>', '계약 해제일 (YYYY-MM-DD)')
13
+ .option('--reference-id <id>', '선택형 요청자 관리번호 (앞뒤 공백 없는 출력 가능한 ASCII 1~255자)')
13
14
  .addHelpText('after', `
14
15
  ⚠ 주의: 원본 세금계산서의 품목 공급가액(supplyCost)이 음수인 경우,
15
16
  계약 해제 수정발행이 불가합니다.
17
+ 요청자 관리번호는 같은 API 키의 다른 세금계산서 발행 요청과 중복될 수 없습니다.
18
+ 응답을 받지 못했거나 본문을 읽지 못했다면 재전송하지 말고 invoice status로 접수 여부를 확인하세요.
16
19
 
17
20
  Example:
18
- bolta invoice amend termination 8D529FAD3EBAE050 --date 2026-03-25`)
21
+ bolta invoice amend termination 8D529FAD3EBAE050 --date 2026-03-25 --reference-id amend-2026-001`)
19
22
  .action(async (issuanceKey, options, command) => {
20
23
  try {
21
24
  const globalOpts = command.optsWithGlobals();
22
- let validated;
23
- try {
24
- validated = amendTerminationSchema.parse({ date: options.date });
25
- }
26
- catch (err) {
27
- if (err instanceof ZodError) {
28
- const details = Object.fromEntries(err.errors.map((e) => [e.path.join('.'), e.message]));
29
- throw new BoltaValidationError('입력 데이터가 유효하지 않습니다.', details);
30
- }
31
- throw err;
32
- }
25
+ const referenceId = parseOptionalTaxInvoiceReferenceId(options.referenceId);
26
+ const validated = parseOrThrow(amendTerminationSchema, { date: options.date });
33
27
  if (globalOpts.dryRun) {
34
28
  outputSuccess({
35
29
  dryRun: true,
@@ -39,8 +33,8 @@ Example:
39
33
  return;
40
34
  }
41
35
  verbose('수정발행 (계약 해제) 요청', { issuanceKey });
42
- const { client, supplierKey } = createClient(globalOpts);
43
- const result = await client.amendTermination(issuanceKey, validated, supplierKey);
36
+ const client = createClient(globalOpts);
37
+ const result = await client.amendTermination(issuanceKey, validated, { referenceId });
44
38
  outputSuccess(result);
45
39
  }
46
40
  catch (err) {
@@ -53,12 +47,15 @@ Example:
53
47
  .option('--data <json>', '인라인 JSON 데이터')
54
48
  .option('--file <path>', 'JSON 파일 경로')
55
49
  .option('--stdin', '표준 입력에서 읽기')
50
+ .option('--reference-id <id>', '선택형 요청자 관리번호 (앞뒤 공백 없는 출력 가능한 ASCII 1~255자)')
56
51
  .addHelpText('after', `
57
52
  Note:
58
53
  taxType은 TAXABLE(과세), ZERO_RATE(영세율), TAX_FREE(면세) 중 하나입니다.
54
+ 요청자 관리번호는 같은 API 키의 다른 세금계산서 발행 요청과 중복될 수 없습니다.
55
+ 응답을 받지 못했거나 본문을 읽지 못했다면 재전송하지 말고 invoice status로 접수 여부를 확인하세요.
59
56
 
60
57
  Example:
61
- bolta invoice amend change-supply-cost 8D529FAD3EBAE050 --data '{
58
+ bolta invoice amend change-supply-cost 8D529FAD3EBAE050 --reference-id amend-2026-002 --data '{
62
59
  "date": "2026-03-25",
63
60
  "taxType": "TAXABLE",
64
61
  "items": [{
@@ -71,18 +68,9 @@ Example:
71
68
  .action(async (issuanceKey, options, command) => {
72
69
  try {
73
70
  const globalOpts = command.optsWithGlobals();
71
+ const referenceId = parseOptionalTaxInvoiceReferenceId(options.referenceId);
74
72
  const raw = await resolveInput(options);
75
- let validated;
76
- try {
77
- validated = amendChangeSupplyCostSchema.parse(raw);
78
- }
79
- catch (err) {
80
- if (err instanceof ZodError) {
81
- const details = Object.fromEntries(err.errors.map((e) => [e.path.join('.'), e.message]));
82
- throw new BoltaValidationError('입력 데이터가 유효하지 않습니다.', details);
83
- }
84
- throw err;
85
- }
73
+ const validated = parseOrThrow(amendChangeSupplyCostSchema, raw);
86
74
  if (globalOpts.dryRun) {
87
75
  outputSuccess({
88
76
  dryRun: true,
@@ -92,8 +80,8 @@ Example:
92
80
  return;
93
81
  }
94
82
  verbose('수정발행 (공급가액 변동) 요청', { issuanceKey });
95
- const { client, supplierKey } = createClient(globalOpts);
96
- const result = await client.amendChangeSupplyCost(issuanceKey, validated, supplierKey);
83
+ const client = createClient(globalOpts);
84
+ const result = await client.amendChangeSupplyCost(issuanceKey, validated, { referenceId });
97
85
  outputSuccess(result);
98
86
  }
99
87
  catch (err) {
@@ -103,15 +91,19 @@ Example:
103
91
  amend
104
92
  .command('double-issuance <issuanceKey>')
105
93
  .description('수정발행: 착오에 의한 이중발급 (POST /v1/taxInvoices/{issuanceKey}/amend/doubleIssuance)')
94
+ .option('--reference-id <id>', '선택형 요청자 관리번호 (앞뒤 공백 없는 출력 가능한 ASCII 1~255자)')
106
95
  .addHelpText('after', `
107
96
  이 수정발행은 입력 데이터가 필요하지 않습니다.
108
97
  원본 세금계산서의 공급가액이 자동으로 상계(마이너스) 처리됩니다.
98
+ 요청자 관리번호는 같은 API 키의 다른 세금계산서 발행 요청과 중복될 수 없습니다.
99
+ 응답을 받지 못했거나 본문을 읽지 못했다면 재전송하지 말고 invoice status로 접수 여부를 확인하세요.
109
100
 
110
101
  Example:
111
- bolta invoice amend double-issuance 8D529FAD3EBAE050`)
102
+ bolta invoice amend double-issuance 8D529FAD3EBAE050 --reference-id amend-2026-003`)
112
103
  .action(async (issuanceKey, options, command) => {
113
104
  try {
114
105
  const globalOpts = command.optsWithGlobals();
106
+ const referenceId = parseOptionalTaxInvoiceReferenceId(options.referenceId);
115
107
  if (globalOpts.dryRun) {
116
108
  outputSuccess({
117
109
  dryRun: true,
@@ -121,8 +113,8 @@ Example:
121
113
  return;
122
114
  }
123
115
  verbose('수정발행 (착오에 의한 이중발급) 요청', { issuanceKey });
124
- const { client, supplierKey } = createClient(globalOpts);
125
- const result = await client.amendDoubleIssuance(issuanceKey, supplierKey);
116
+ const client = createClient(globalOpts);
117
+ const result = await client.amendDoubleIssuance(issuanceKey, { referenceId });
126
118
  outputSuccess(result);
127
119
  }
128
120
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"amend.js","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"amend.js","sourceRoot":"","sources":["../../../../src/commands/invoice/amend.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7H"}
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAS7H"}
@@ -1,14 +1,9 @@
1
- import { resolveApiKey, resolveBaseUrl } from '../../config/config-manager.js';
2
- import { BoltaClient } from '../../client/bolta-client.js';
1
+ import { createApiKeyClient } from '../../utils/client.js';
3
2
  import { outputSuccess, outputError } from '../../utils/output.js';
4
- import { BoltaAuthError } from '../../utils/errors.js';
5
3
  export async function getInvoiceAction(issuanceKey, options, command) {
6
4
  try {
7
5
  const globalOpts = command.optsWithGlobals();
8
- const apiKey = resolveApiKey(globalOpts.apiKey);
9
- if (!apiKey)
10
- throw new BoltaAuthError('API 키가 설정되지 않았습니다.');
11
- const client = new BoltaClient({ apiKey, baseUrl: resolveBaseUrl() });
6
+ const client = createApiKeyClient(globalOpts);
12
7
  const result = await client.getTaxInvoice(issuanceKey);
13
8
  outputSuccess(result);
14
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,OAAgC,EAAE,OAAgB;IAC5G,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvD,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/commands/invoice/get.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,WAAmB,EAAE,OAAgC,EAAE,OAAgB;IAC5G,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACvD,aAAa,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4E9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/invoice/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgF9D"}