@cmarket/partner-sdk 45.2.0 → 45.4.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 (990) hide show
  1. package/README.md +4 -4
  2. package/api/embed-api.ts +6 -6
  3. package/api/oauth-api.ts +2 -2
  4. package/api/partner-api-api.ts +74 -74
  5. package/api/products-api.ts +2 -2
  6. package/api/webhooks-api.ts +6 -6
  7. package/api/well-known-api.ts +6 -6
  8. package/api.ts +2 -2
  9. package/base.ts +2 -2
  10. package/common.ts +2 -2
  11. package/configuration.ts +2 -2
  12. package/dist/api/embed-api.d.ts +6 -6
  13. package/dist/api/embed-api.js +6 -6
  14. package/dist/api/oauth-api.d.ts +2 -2
  15. package/dist/api/oauth-api.js +2 -2
  16. package/dist/api/partner-api-api.d.ts +74 -74
  17. package/dist/api/partner-api-api.js +74 -74
  18. package/dist/api/products-api.d.ts +2 -2
  19. package/dist/api/products-api.js +2 -2
  20. package/dist/api/webhooks-api.d.ts +6 -6
  21. package/dist/api/webhooks-api.js +6 -6
  22. package/dist/api/well-known-api.d.ts +6 -6
  23. package/dist/api/well-known-api.js +6 -6
  24. package/dist/api.d.ts +2 -2
  25. package/dist/api.js +2 -2
  26. package/dist/base.d.ts +2 -2
  27. package/dist/base.js +2 -2
  28. package/dist/common.d.ts +2 -2
  29. package/dist/common.js +2 -2
  30. package/dist/configuration.d.ts +2 -2
  31. package/dist/configuration.js +2 -2
  32. package/dist/esm/api/embed-api.d.ts +6 -6
  33. package/dist/esm/api/embed-api.js +6 -6
  34. package/dist/esm/api/oauth-api.d.ts +2 -2
  35. package/dist/esm/api/oauth-api.js +2 -2
  36. package/dist/esm/api/partner-api-api.d.ts +74 -74
  37. package/dist/esm/api/partner-api-api.js +74 -74
  38. package/dist/esm/api/products-api.d.ts +2 -2
  39. package/dist/esm/api/products-api.js +2 -2
  40. package/dist/esm/api/webhooks-api.d.ts +6 -6
  41. package/dist/esm/api/webhooks-api.js +6 -6
  42. package/dist/esm/api/well-known-api.d.ts +6 -6
  43. package/dist/esm/api/well-known-api.js +6 -6
  44. package/dist/esm/api.d.ts +2 -2
  45. package/dist/esm/api.js +2 -2
  46. package/dist/esm/base.d.ts +2 -2
  47. package/dist/esm/base.js +2 -2
  48. package/dist/esm/common.d.ts +2 -2
  49. package/dist/esm/common.js +2 -2
  50. package/dist/esm/configuration.d.ts +2 -2
  51. package/dist/esm/configuration.js +2 -2
  52. package/dist/esm/index.d.ts +2 -2
  53. package/dist/esm/index.js +2 -2
  54. package/dist/esm/models/acceptance-result-response-dto.d.ts +2 -2
  55. package/dist/esm/models/acceptance-result-response-dto.js +2 -2
  56. package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +2 -2
  57. package/dist/esm/models/acknowledge-product-receipt200-response.js +2 -2
  58. package/dist/esm/models/acknowledge-products-request-dto.d.ts +2 -2
  59. package/dist/esm/models/acknowledge-products-request-dto.js +2 -2
  60. package/dist/esm/models/api-catalog-dto.d.ts +2 -2
  61. package/dist/esm/models/api-catalog-dto.js +2 -2
  62. package/dist/esm/models/api-catalog-entry-dto.d.ts +4 -4
  63. package/dist/esm/models/api-catalog-entry-dto.js +2 -2
  64. package/dist/esm/models/api-catalog-link-dto.d.ts +2 -2
  65. package/dist/esm/models/api-catalog-link-dto.js +2 -2
  66. package/dist/esm/models/authorization-server-metadata-dto.d.ts +5 -5
  67. package/dist/esm/models/authorization-server-metadata-dto.js +2 -2
  68. package/dist/esm/models/avalues-input-dto.d.ts +2 -2
  69. package/dist/esm/models/avalues-input-dto.js +2 -2
  70. package/dist/esm/models/award-method-public.d.ts +2 -2
  71. package/dist/esm/models/award-method-public.js +2 -2
  72. package/dist/esm/models/award-registered-v2-response-dto.d.ts +2 -2
  73. package/dist/esm/models/award-registered-v2-response-dto.js +2 -2
  74. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +2 -2
  75. package/dist/esm/models/award-reverted-v2-response-dto.js +2 -2
  76. package/dist/esm/models/bid-acceptance-dto.d.ts +2 -2
  77. package/dist/esm/models/bid-acceptance-dto.js +2 -2
  78. package/dist/esm/models/bid-attachment-dto.d.ts +2 -2
  79. package/dist/esm/models/bid-attachment-dto.js +2 -2
  80. package/dist/esm/models/bid-attachment-input-dto.d.ts +2 -2
  81. package/dist/esm/models/bid-attachment-input-dto.js +2 -2
  82. package/dist/esm/models/bid-avalues-dto.d.ts +2 -2
  83. package/dist/esm/models/bid-avalues-dto.js +2 -2
  84. package/dist/esm/models/bid-award-method-detail-dto.d.ts +2 -2
  85. package/dist/esm/models/bid-award-method-detail-dto.js +2 -2
  86. package/dist/esm/models/bid-bond-dto.d.ts +2 -2
  87. package/dist/esm/models/bid-bond-dto.js +2 -2
  88. package/dist/esm/models/bid-cancellation-dto.d.ts +2 -2
  89. package/dist/esm/models/bid-cancellation-dto.js +2 -2
  90. package/dist/esm/models/bid-cancelled-response-dto.d.ts +2 -2
  91. package/dist/esm/models/bid-cancelled-response-dto.js +2 -2
  92. package/dist/esm/models/bid-category-public.d.ts +2 -2
  93. package/dist/esm/models/bid-category-public.js +2 -2
  94. package/dist/esm/models/bid-contact-dto.d.ts +2 -2
  95. package/dist/esm/models/bid-contact-dto.js +2 -2
  96. package/dist/esm/models/bid-contacts-dto.d.ts +2 -2
  97. package/dist/esm/models/bid-contacts-dto.js +2 -2
  98. package/dist/esm/models/bid-contract-document-dto.d.ts +3 -3
  99. package/dist/esm/models/bid-contract-document-dto.js +2 -2
  100. package/dist/esm/models/bid-delivery-terms-dto.d.ts +2 -2
  101. package/dist/esm/models/bid-delivery-terms-dto.js +2 -2
  102. package/dist/esm/models/bid-detail-response-dto.d.ts +7 -7
  103. package/dist/esm/models/bid-detail-response-dto.js +2 -2
  104. package/dist/esm/models/bid-document-dto.d.ts +2 -2
  105. package/dist/esm/models/bid-document-dto.js +2 -2
  106. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +2 -2
  107. package/dist/esm/models/bid-failed-v2-response-dto.js +2 -2
  108. package/dist/esm/models/bid-item-dto.d.ts +3 -3
  109. package/dist/esm/models/bid-item-dto.js +2 -2
  110. package/dist/esm/models/bid-license-requirement-dto.d.ts +2 -2
  111. package/dist/esm/models/bid-license-requirement-dto.js +2 -2
  112. package/dist/esm/models/bid-lifecycle-dto.d.ts +2 -2
  113. package/dist/esm/models/bid-lifecycle-dto.js +2 -2
  114. package/dist/esm/models/bid-manager-dto.d.ts +2 -2
  115. package/dist/esm/models/bid-manager-dto.js +2 -2
  116. package/dist/esm/models/bid-must-read-notice-dto.d.ts +3 -3
  117. package/dist/esm/models/bid-must-read-notice-dto.js +2 -2
  118. package/dist/esm/models/bid-payment-terms-dto.d.ts +2 -2
  119. package/dist/esm/models/bid-payment-terms-dto.js +2 -2
  120. package/dist/esm/models/bid-preliminary-price-dto.d.ts +5 -5
  121. package/dist/esm/models/bid-preliminary-price-dto.js +2 -2
  122. package/dist/esm/models/bid-preliminary-price-slot-dto.d.ts +3 -3
  123. package/dist/esm/models/bid-preliminary-price-slot-dto.js +2 -2
  124. package/dist/esm/models/bid-product-dto.d.ts +3 -3
  125. package/dist/esm/models/bid-product-dto.js +2 -2
  126. package/dist/esm/models/bid-public-status.d.ts +2 -2
  127. package/dist/esm/models/bid-public-status.js +2 -2
  128. package/dist/esm/models/bid-qualification-review-dto.d.ts +2 -2
  129. package/dist/esm/models/bid-qualification-review-dto.js +2 -2
  130. package/dist/esm/models/bid-region-dto.d.ts +3 -3
  131. package/dist/esm/models/bid-region-dto.js +2 -2
  132. package/dist/esm/models/bid-region-restriction-dto.d.ts +4 -4
  133. package/dist/esm/models/bid-region-restriction-dto.js +2 -2
  134. package/dist/esm/models/bid-registered-response-dto.d.ts +2 -2
  135. package/dist/esm/models/bid-registered-response-dto.js +2 -2
  136. package/dist/esm/models/bid-related-bid-dto.d.ts +2 -2
  137. package/dist/esm/models/bid-related-bid-dto.js +2 -2
  138. package/dist/esm/models/bid-required-document-dto.d.ts +3 -3
  139. package/dist/esm/models/bid-required-document-dto.js +2 -2
  140. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +2 -2
  141. package/dist/esm/models/bid-result-participant-attachment-dto.js +2 -2
  142. package/dist/esm/models/bid-result-participant-dto.d.ts +7 -7
  143. package/dist/esm/models/bid-result-participant-dto.js +2 -2
  144. package/dist/esm/models/bid-results-response-dto.d.ts +4 -4
  145. package/dist/esm/models/bid-results-response-dto.js +2 -2
  146. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +4 -4
  147. package/dist/esm/models/bid-settlement-line-item-dto.js +2 -2
  148. package/dist/esm/models/bid-settlement-participant-dto.d.ts +4 -4
  149. package/dist/esm/models/bid-settlement-participant-dto.js +2 -2
  150. package/dist/esm/models/bid-settlement-response-dto.d.ts +3 -3
  151. package/dist/esm/models/bid-settlement-response-dto.js +2 -2
  152. package/dist/esm/models/bid-site-briefing-dto.d.ts +2 -2
  153. package/dist/esm/models/bid-site-briefing-dto.js +2 -2
  154. package/dist/esm/models/bid-statement-response-dto.d.ts +2 -2
  155. package/dist/esm/models/bid-statement-response-dto.js +2 -2
  156. package/dist/esm/models/bid-summary-dto.d.ts +5 -5
  157. package/dist/esm/models/bid-summary-dto.js +2 -2
  158. package/dist/esm/models/bid-type-public.d.ts +2 -2
  159. package/dist/esm/models/bid-type-public.js +2 -2
  160. package/dist/esm/models/bid-updated-response-dto.d.ts +2 -2
  161. package/dist/esm/models/bid-updated-response-dto.js +2 -2
  162. package/dist/esm/models/bidding-style-public.d.ts +3 -3
  163. package/dist/esm/models/bidding-style-public.js +3 -3
  164. package/dist/esm/models/cancel-bid-request-dto.d.ts +2 -2
  165. package/dist/esm/models/cancel-bid-request-dto.js +2 -2
  166. package/dist/esm/models/cancel-bid200-response.d.ts +2 -2
  167. package/dist/esm/models/cancel-bid200-response.js +2 -2
  168. package/dist/esm/models/card-payment-request-response-dto.d.ts +2 -2
  169. package/dist/esm/models/card-payment-request-response-dto.js +2 -2
  170. package/dist/esm/models/complete-acceptance-request-dto.d.ts +2 -2
  171. package/dist/esm/models/complete-acceptance-request-dto.js +2 -2
  172. package/dist/esm/models/complete-acceptance200-response.d.ts +2 -2
  173. package/dist/esm/models/complete-acceptance200-response.js +2 -2
  174. package/dist/esm/models/complete-invoice200-response.d.ts +2 -2
  175. package/dist/esm/models/complete-invoice200-response.js +2 -2
  176. package/dist/esm/models/complete-upload-request-dto.d.ts +2 -2
  177. package/dist/esm/models/complete-upload-request-dto.js +2 -2
  178. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +2 -2
  179. package/dist/esm/models/contract-restriction-confirm-input-dto.js +2 -2
  180. package/dist/esm/models/create-bid-request-dto.d.ts +7 -7
  181. package/dist/esm/models/create-bid-request-dto.js +2 -2
  182. package/dist/esm/models/create-card-payment-dto.d.ts +3 -3
  183. package/dist/esm/models/create-card-payment-dto.js +2 -2
  184. package/dist/esm/models/create-card-payment-request-dto.d.ts +3 -3
  185. package/dist/esm/models/create-card-payment-request-dto.js +2 -2
  186. package/dist/esm/models/create-card-payment200-response.d.ts +2 -2
  187. package/dist/esm/models/create-card-payment200-response.js +2 -2
  188. package/dist/esm/models/create-embed-launch201-response.d.ts +2 -2
  189. package/dist/esm/models/create-embed-launch201-response.js +2 -2
  190. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +2 -2
  191. package/dist/esm/models/create-external-contract-documents-request-dto.js +2 -2
  192. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +2 -2
  193. package/dist/esm/models/create-external-contract-documents-response-dto.js +2 -2
  194. package/dist/esm/models/create-file-upload-url201-response.d.ts +2 -2
  195. package/dist/esm/models/create-file-upload-url201-response.js +2 -2
  196. package/dist/esm/models/create-upload-url-request-dto.d.ts +2 -2
  197. package/dist/esm/models/create-upload-url-request-dto.js +2 -2
  198. package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +2 -2
  199. package/dist/esm/models/create-webhook-endpoint-request-dto.js +2 -2
  200. package/dist/esm/models/create-webhook-endpoint201-response.d.ts +2 -2
  201. package/dist/esm/models/create-webhook-endpoint201-response.js +2 -2
  202. package/dist/esm/models/delivery-date-type-public.d.ts +2 -2
  203. package/dist/esm/models/delivery-date-type-public.js +2 -2
  204. package/dist/esm/models/delivery-method-public.d.ts +2 -2
  205. package/dist/esm/models/delivery-method-public.js +2 -2
  206. package/dist/esm/models/embed-bid-prefill-dto.d.ts +3 -3
  207. package/dist/esm/models/embed-bid-prefill-dto.js +2 -2
  208. package/dist/esm/models/embed-bid-prefill-item-dto.d.ts +2 -2
  209. package/dist/esm/models/embed-bid-prefill-item-dto.js +2 -2
  210. package/dist/esm/models/embed-bid-prefill-manager-dto.d.ts +2 -2
  211. package/dist/esm/models/embed-bid-prefill-manager-dto.js +2 -2
  212. package/dist/esm/models/embed-launch-request-dto.d.ts +3 -3
  213. package/dist/esm/models/embed-launch-request-dto.js +2 -2
  214. package/dist/esm/models/embed-launch-response-dto.d.ts +2 -2
  215. package/dist/esm/models/embed-launch-response-dto.js +2 -2
  216. package/dist/esm/models/excellent-procurement-public.d.ts +2 -2
  217. package/dist/esm/models/excellent-procurement-public.js +2 -2
  218. package/dist/esm/models/external-contract-document-item-dto.d.ts +2 -2
  219. package/dist/esm/models/external-contract-document-item-dto.js +2 -2
  220. package/dist/esm/models/external-contract-documents-response-dto.d.ts +2 -2
  221. package/dist/esm/models/external-contract-documents-response-dto.js +2 -2
  222. package/dist/esm/models/external-contract-item-dto.d.ts +2 -2
  223. package/dist/esm/models/external-contract-item-dto.js +2 -2
  224. package/dist/esm/models/external-contract-snapshot-dto.d.ts +2 -2
  225. package/dist/esm/models/external-contract-snapshot-dto.js +2 -2
  226. package/dist/esm/models/external-document-inputs-dto.d.ts +2 -2
  227. package/dist/esm/models/external-document-inputs-dto.js +2 -2
  228. package/dist/esm/models/file-meta-response-dto.d.ts +3 -3
  229. package/dist/esm/models/file-meta-response-dto.js +2 -2
  230. package/dist/esm/models/file-uploaded-response-dto.d.ts +2 -2
  231. package/dist/esm/models/file-uploaded-response-dto.js +2 -2
  232. package/dist/esm/models/generated-external-contract-document-dto.d.ts +2 -2
  233. package/dist/esm/models/generated-external-contract-document-dto.js +2 -2
  234. package/dist/esm/models/get-bid-settlement200-response.d.ts +2 -2
  235. package/dist/esm/models/get-bid-settlement200-response.js +2 -2
  236. package/dist/esm/models/get-bid-statement200-response.d.ts +2 -2
  237. package/dist/esm/models/get-bid-statement200-response.js +2 -2
  238. package/dist/esm/models/get-bid200-response.d.ts +2 -2
  239. package/dist/esm/models/get-bid200-response.js +2 -2
  240. package/dist/esm/models/get-file-meta200-response.d.ts +2 -2
  241. package/dist/esm/models/get-file-meta200-response.js +2 -2
  242. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +2 -2
  243. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +2 -2
  244. package/dist/esm/models/get-webhook-endpoint200-response.d.ts +2 -2
  245. package/dist/esm/models/get-webhook-endpoint200-response.js +2 -2
  246. package/dist/esm/models/green-product-public.d.ts +2 -2
  247. package/dist/esm/models/green-product-public.js +2 -2
  248. package/dist/esm/models/handover-type-public.d.ts +2 -2
  249. package/dist/esm/models/handover-type-public.js +2 -2
  250. package/dist/esm/models/health-controller-check200-response.d.ts +2 -2
  251. package/dist/esm/models/health-controller-check200-response.js +2 -2
  252. package/dist/esm/models/health-response-dto.d.ts +2 -2
  253. package/dist/esm/models/health-response-dto.js +2 -2
  254. package/dist/esm/models/hierarchical-region-dto.d.ts +2 -2
  255. package/dist/esm/models/hierarchical-region-dto.js +2 -2
  256. package/dist/esm/models/introspect-request-dto.d.ts +2 -2
  257. package/dist/esm/models/introspect-request-dto.js +2 -2
  258. package/dist/esm/models/introspection-response-dto.d.ts +2 -2
  259. package/dist/esm/models/introspection-response-dto.js +2 -2
  260. package/dist/esm/models/invalid-param-dto.d.ts +2 -2
  261. package/dist/esm/models/invalid-param-dto.js +2 -2
  262. package/dist/esm/models/invoice-completed-response-dto.d.ts +2 -2
  263. package/dist/esm/models/invoice-completed-response-dto.js +2 -2
  264. package/dist/esm/models/invoice-split-response-dto.d.ts +2 -2
  265. package/dist/esm/models/invoice-split-response-dto.js +2 -2
  266. package/dist/esm/models/legal-mandatory-public.d.ts +2 -2
  267. package/dist/esm/models/legal-mandatory-public.js +2 -2
  268. package/dist/esm/models/license-combination-mode.d.ts +2 -2
  269. package/dist/esm/models/license-combination-mode.js +2 -2
  270. package/dist/esm/models/list-bid-results200-response.d.ts +2 -2
  271. package/dist/esm/models/list-bid-results200-response.js +2 -2
  272. package/dist/esm/models/list-bids200-response-meta.d.ts +2 -2
  273. package/dist/esm/models/list-bids200-response-meta.js +2 -2
  274. package/dist/esm/models/list-bids200-response.d.ts +2 -2
  275. package/dist/esm/models/list-bids200-response.js +2 -2
  276. package/dist/esm/models/list-products200-response.d.ts +2 -2
  277. package/dist/esm/models/list-products200-response.js +2 -2
  278. package/dist/esm/models/list-suppliers200-response.d.ts +2 -2
  279. package/dist/esm/models/list-suppliers200-response.js +2 -2
  280. package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +2 -2
  281. package/dist/esm/models/list-webhook-deliveries-response-dto.js +2 -2
  282. package/dist/esm/models/list-webhook-deliveries200-response.d.ts +2 -2
  283. package/dist/esm/models/list-webhook-deliveries200-response.js +2 -2
  284. package/dist/esm/models/list-webhook-endpoints200-response.d.ts +2 -2
  285. package/dist/esm/models/list-webhook-endpoints200-response.js +2 -2
  286. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +2 -2
  287. package/dist/esm/models/mark-bid-failed-request-dto.js +2 -2
  288. package/dist/esm/models/mark-bid-failed201-response.d.ts +2 -2
  289. package/dist/esm/models/mark-bid-failed201-response.js +2 -2
  290. package/dist/esm/models/nominated-supplier-dto.d.ts +3 -3
  291. package/dist/esm/models/nominated-supplier-dto.js +2 -2
  292. package/dist/esm/models/oauth-error-response-dto.d.ts +2 -2
  293. package/dist/esm/models/oauth-error-response-dto.js +2 -2
  294. package/dist/esm/models/on-bid-award-reverted-request.d.ts +2 -2
  295. package/dist/esm/models/on-bid-award-reverted-request.js +2 -2
  296. package/dist/esm/models/on-bid-awarded-request.d.ts +2 -2
  297. package/dist/esm/models/on-bid-awarded-request.js +2 -2
  298. package/dist/esm/models/on-bid-canceled-request.d.ts +2 -2
  299. package/dist/esm/models/on-bid-canceled-request.js +2 -2
  300. package/dist/esm/models/on-bid-closed-request.d.ts +2 -2
  301. package/dist/esm/models/on-bid-closed-request.js +2 -2
  302. package/dist/esm/models/on-bid-failed-request.d.ts +2 -2
  303. package/dist/esm/models/on-bid-failed-request.js +2 -2
  304. package/dist/esm/models/on-ping-request.d.ts +2 -2
  305. package/dist/esm/models/on-ping-request.js +2 -2
  306. package/dist/esm/models/partner-webhook-delivery-status.d.ts +2 -2
  307. package/dist/esm/models/partner-webhook-delivery-status.js +2 -2
  308. package/dist/esm/models/partner-webhook-endpoint-status.d.ts +2 -2
  309. package/dist/esm/models/partner-webhook-endpoint-status.js +2 -2
  310. package/dist/esm/models/partner-webhook-event-type.d.ts +2 -2
  311. package/dist/esm/models/partner-webhook-event-type.js +2 -2
  312. package/dist/esm/models/payment-method-public.d.ts +2 -2
  313. package/dist/esm/models/payment-method-public.js +2 -2
  314. package/dist/esm/models/preconditions-dto.d.ts +7 -7
  315. package/dist/esm/models/preconditions-dto.js +2 -2
  316. package/dist/esm/models/preliminary-price-region-public.d.ts +2 -2
  317. package/dist/esm/models/preliminary-price-region-public.js +2 -2
  318. package/dist/esm/models/price-score-type-public.d.ts +2 -2
  319. package/dist/esm/models/price-score-type-public.js +2 -2
  320. package/dist/esm/models/pricing-type-public.d.ts +2 -2
  321. package/dist/esm/models/pricing-type-public.js +2 -2
  322. package/dist/esm/models/problem-details-dto.d.ts +2 -2
  323. package/dist/esm/models/problem-details-dto.js +2 -2
  324. package/dist/esm/models/product-receipt-response-dto.d.ts +2 -2
  325. package/dist/esm/models/product-receipt-response-dto.js +2 -2
  326. package/dist/esm/models/product-response-dto.d.ts +2 -2
  327. package/dist/esm/models/product-response-dto.js +2 -2
  328. package/dist/esm/models/protected-resource-metadata-dto.d.ts +3 -3
  329. package/dist/esm/models/protected-resource-metadata-dto.js +2 -2
  330. package/dist/esm/models/qualification-review-input-dto.d.ts +2 -2
  331. package/dist/esm/models/qualification-review-input-dto.js +2 -2
  332. package/dist/esm/models/register-award-request-dto.d.ts +2 -2
  333. package/dist/esm/models/register-award-request-dto.js +2 -2
  334. package/dist/esm/models/register-award201-response.d.ts +2 -2
  335. package/dist/esm/models/register-award201-response.js +2 -2
  336. package/dist/esm/models/register-bid201-response.d.ts +2 -2
  337. package/dist/esm/models/register-bid201-response.js +2 -2
  338. package/dist/esm/models/register-semo-contract-request-dto.d.ts +2 -2
  339. package/dist/esm/models/register-semo-contract-request-dto.js +2 -2
  340. package/dist/esm/models/regulation-type-public.d.ts +2 -2
  341. package/dist/esm/models/regulation-type-public.js +2 -2
  342. package/dist/esm/models/related-bid-relation.d.ts +2 -2
  343. package/dist/esm/models/related-bid-relation.js +2 -2
  344. package/dist/esm/models/request-invoice-split-request-dto.d.ts +2 -2
  345. package/dist/esm/models/request-invoice-split-request-dto.js +2 -2
  346. package/dist/esm/models/request-invoice-split200-response.d.ts +2 -2
  347. package/dist/esm/models/request-invoice-split200-response.js +2 -2
  348. package/dist/esm/models/retiree-roster-input-dto.d.ts +2 -2
  349. package/dist/esm/models/retiree-roster-input-dto.js +2 -2
  350. package/dist/esm/models/retiree-roster-row-dto.d.ts +2 -2
  351. package/dist/esm/models/retiree-roster-row-dto.js +2 -2
  352. package/dist/esm/models/revert-award-request-dto.d.ts +2 -2
  353. package/dist/esm/models/revert-award-request-dto.js +2 -2
  354. package/dist/esm/models/revert-award200-response.d.ts +2 -2
  355. package/dist/esm/models/revert-award200-response.js +2 -2
  356. package/dist/esm/models/revoke-request-dto.d.ts +2 -2
  357. package/dist/esm/models/revoke-request-dto.js +2 -2
  358. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +2 -2
  359. package/dist/esm/models/semo-contract-registered-response-dto.js +2 -2
  360. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +2 -2
  361. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +2 -2
  362. package/dist/esm/models/send-webhook-test-event200-response.d.ts +2 -2
  363. package/dist/esm/models/send-webhook-test-event200-response.js +2 -2
  364. package/dist/esm/models/site-briefing-input-dto.d.ts +2 -2
  365. package/dist/esm/models/site-briefing-input-dto.js +2 -2
  366. package/dist/esm/models/statement-document-dto.d.ts +2 -2
  367. package/dist/esm/models/statement-document-dto.js +2 -2
  368. package/dist/esm/models/statement-product-dto.d.ts +6 -6
  369. package/dist/esm/models/statement-product-dto.js +2 -2
  370. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +2 -2
  371. package/dist/esm/models/supplier-card-payable-response-dto.js +2 -2
  372. package/dist/esm/models/supplier-response-dto.d.ts +3 -3
  373. package/dist/esm/models/supplier-response-dto.js +2 -2
  374. package/dist/esm/models/supplier-tax-type.d.ts +2 -2
  375. package/dist/esm/models/supplier-tax-type.js +2 -2
  376. package/dist/esm/models/taxation-type-public.d.ts +2 -2
  377. package/dist/esm/models/taxation-type-public.js +2 -2
  378. package/dist/esm/models/token-request-dto.d.ts +2 -2
  379. package/dist/esm/models/token-request-dto.js +2 -2
  380. package/dist/esm/models/token-response-dto.d.ts +2 -2
  381. package/dist/esm/models/token-response-dto.js +2 -2
  382. package/dist/esm/models/two-stage-phase-public.d.ts +2 -2
  383. package/dist/esm/models/two-stage-phase-public.js +2 -2
  384. package/dist/esm/models/update-bid-request-dto.d.ts +7 -7
  385. package/dist/esm/models/update-bid-request-dto.js +2 -2
  386. package/dist/esm/models/update-bid200-response.d.ts +2 -2
  387. package/dist/esm/models/update-bid200-response.js +2 -2
  388. package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +2 -2
  389. package/dist/esm/models/update-webhook-endpoint-request-dto.js +2 -2
  390. package/dist/esm/models/upload-file-request-dto.d.ts +2 -2
  391. package/dist/esm/models/upload-file-request-dto.js +2 -2
  392. package/dist/esm/models/upload-file201-response.d.ts +2 -2
  393. package/dist/esm/models/upload-file201-response.js +2 -2
  394. package/dist/esm/models/upload-url-created-response-dto.d.ts +2 -2
  395. package/dist/esm/models/upload-url-created-response-dto.js +2 -2
  396. package/dist/esm/models/webhook-bid-event-data.d.ts +3 -3
  397. package/dist/esm/models/webhook-bid-event-data.js +2 -2
  398. package/dist/esm/models/webhook-delivery-dto.d.ts +2 -2
  399. package/dist/esm/models/webhook-delivery-dto.js +2 -2
  400. package/dist/esm/models/webhook-endpoint-dto.d.ts +2 -2
  401. package/dist/esm/models/webhook-endpoint-dto.js +2 -2
  402. package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +2 -2
  403. package/dist/esm/models/webhook-endpoint-with-secret-dto.js +2 -2
  404. package/dist/esm/models/webhook-event-envelope.d.ts +3 -3
  405. package/dist/esm/models/webhook-event-envelope.js +2 -2
  406. package/dist/esm/models/webhook-ping-event-data.d.ts +2 -2
  407. package/dist/esm/models/webhook-ping-event-data.js +2 -2
  408. package/dist/esm/models/webhook-test-result-dto.d.ts +2 -2
  409. package/dist/esm/models/webhook-test-result-dto.js +2 -2
  410. package/dist/index.d.ts +2 -2
  411. package/dist/index.js +2 -2
  412. package/dist/models/acceptance-result-response-dto.d.ts +2 -2
  413. package/dist/models/acceptance-result-response-dto.js +2 -2
  414. package/dist/models/acknowledge-product-receipt200-response.d.ts +2 -2
  415. package/dist/models/acknowledge-product-receipt200-response.js +2 -2
  416. package/dist/models/acknowledge-products-request-dto.d.ts +2 -2
  417. package/dist/models/acknowledge-products-request-dto.js +2 -2
  418. package/dist/models/api-catalog-dto.d.ts +2 -2
  419. package/dist/models/api-catalog-dto.js +2 -2
  420. package/dist/models/api-catalog-entry-dto.d.ts +4 -4
  421. package/dist/models/api-catalog-entry-dto.js +2 -2
  422. package/dist/models/api-catalog-link-dto.d.ts +2 -2
  423. package/dist/models/api-catalog-link-dto.js +2 -2
  424. package/dist/models/authorization-server-metadata-dto.d.ts +5 -5
  425. package/dist/models/authorization-server-metadata-dto.js +2 -2
  426. package/dist/models/avalues-input-dto.d.ts +2 -2
  427. package/dist/models/avalues-input-dto.js +2 -2
  428. package/dist/models/award-method-public.d.ts +2 -2
  429. package/dist/models/award-method-public.js +2 -2
  430. package/dist/models/award-registered-v2-response-dto.d.ts +2 -2
  431. package/dist/models/award-registered-v2-response-dto.js +2 -2
  432. package/dist/models/award-reverted-v2-response-dto.d.ts +2 -2
  433. package/dist/models/award-reverted-v2-response-dto.js +2 -2
  434. package/dist/models/bid-acceptance-dto.d.ts +2 -2
  435. package/dist/models/bid-acceptance-dto.js +2 -2
  436. package/dist/models/bid-attachment-dto.d.ts +2 -2
  437. package/dist/models/bid-attachment-dto.js +2 -2
  438. package/dist/models/bid-attachment-input-dto.d.ts +2 -2
  439. package/dist/models/bid-attachment-input-dto.js +2 -2
  440. package/dist/models/bid-avalues-dto.d.ts +2 -2
  441. package/dist/models/bid-avalues-dto.js +2 -2
  442. package/dist/models/bid-award-method-detail-dto.d.ts +2 -2
  443. package/dist/models/bid-award-method-detail-dto.js +2 -2
  444. package/dist/models/bid-bond-dto.d.ts +2 -2
  445. package/dist/models/bid-bond-dto.js +2 -2
  446. package/dist/models/bid-cancellation-dto.d.ts +2 -2
  447. package/dist/models/bid-cancellation-dto.js +2 -2
  448. package/dist/models/bid-cancelled-response-dto.d.ts +2 -2
  449. package/dist/models/bid-cancelled-response-dto.js +2 -2
  450. package/dist/models/bid-category-public.d.ts +2 -2
  451. package/dist/models/bid-category-public.js +2 -2
  452. package/dist/models/bid-contact-dto.d.ts +2 -2
  453. package/dist/models/bid-contact-dto.js +2 -2
  454. package/dist/models/bid-contacts-dto.d.ts +2 -2
  455. package/dist/models/bid-contacts-dto.js +2 -2
  456. package/dist/models/bid-contract-document-dto.d.ts +3 -3
  457. package/dist/models/bid-contract-document-dto.js +2 -2
  458. package/dist/models/bid-delivery-terms-dto.d.ts +2 -2
  459. package/dist/models/bid-delivery-terms-dto.js +2 -2
  460. package/dist/models/bid-detail-response-dto.d.ts +7 -7
  461. package/dist/models/bid-detail-response-dto.js +2 -2
  462. package/dist/models/bid-document-dto.d.ts +2 -2
  463. package/dist/models/bid-document-dto.js +2 -2
  464. package/dist/models/bid-failed-v2-response-dto.d.ts +2 -2
  465. package/dist/models/bid-failed-v2-response-dto.js +2 -2
  466. package/dist/models/bid-item-dto.d.ts +3 -3
  467. package/dist/models/bid-item-dto.js +2 -2
  468. package/dist/models/bid-license-requirement-dto.d.ts +2 -2
  469. package/dist/models/bid-license-requirement-dto.js +2 -2
  470. package/dist/models/bid-lifecycle-dto.d.ts +2 -2
  471. package/dist/models/bid-lifecycle-dto.js +2 -2
  472. package/dist/models/bid-manager-dto.d.ts +2 -2
  473. package/dist/models/bid-manager-dto.js +2 -2
  474. package/dist/models/bid-must-read-notice-dto.d.ts +3 -3
  475. package/dist/models/bid-must-read-notice-dto.js +2 -2
  476. package/dist/models/bid-payment-terms-dto.d.ts +2 -2
  477. package/dist/models/bid-payment-terms-dto.js +2 -2
  478. package/dist/models/bid-preliminary-price-dto.d.ts +5 -5
  479. package/dist/models/bid-preliminary-price-dto.js +2 -2
  480. package/dist/models/bid-preliminary-price-slot-dto.d.ts +3 -3
  481. package/dist/models/bid-preliminary-price-slot-dto.js +2 -2
  482. package/dist/models/bid-product-dto.d.ts +3 -3
  483. package/dist/models/bid-product-dto.js +2 -2
  484. package/dist/models/bid-public-status.d.ts +2 -2
  485. package/dist/models/bid-public-status.js +2 -2
  486. package/dist/models/bid-qualification-review-dto.d.ts +2 -2
  487. package/dist/models/bid-qualification-review-dto.js +2 -2
  488. package/dist/models/bid-region-dto.d.ts +3 -3
  489. package/dist/models/bid-region-dto.js +2 -2
  490. package/dist/models/bid-region-restriction-dto.d.ts +4 -4
  491. package/dist/models/bid-region-restriction-dto.js +2 -2
  492. package/dist/models/bid-registered-response-dto.d.ts +2 -2
  493. package/dist/models/bid-registered-response-dto.js +2 -2
  494. package/dist/models/bid-related-bid-dto.d.ts +2 -2
  495. package/dist/models/bid-related-bid-dto.js +2 -2
  496. package/dist/models/bid-required-document-dto.d.ts +3 -3
  497. package/dist/models/bid-required-document-dto.js +2 -2
  498. package/dist/models/bid-result-participant-attachment-dto.d.ts +2 -2
  499. package/dist/models/bid-result-participant-attachment-dto.js +2 -2
  500. package/dist/models/bid-result-participant-dto.d.ts +7 -7
  501. package/dist/models/bid-result-participant-dto.js +2 -2
  502. package/dist/models/bid-results-response-dto.d.ts +4 -4
  503. package/dist/models/bid-results-response-dto.js +2 -2
  504. package/dist/models/bid-settlement-line-item-dto.d.ts +4 -4
  505. package/dist/models/bid-settlement-line-item-dto.js +2 -2
  506. package/dist/models/bid-settlement-participant-dto.d.ts +4 -4
  507. package/dist/models/bid-settlement-participant-dto.js +2 -2
  508. package/dist/models/bid-settlement-response-dto.d.ts +3 -3
  509. package/dist/models/bid-settlement-response-dto.js +2 -2
  510. package/dist/models/bid-site-briefing-dto.d.ts +2 -2
  511. package/dist/models/bid-site-briefing-dto.js +2 -2
  512. package/dist/models/bid-statement-response-dto.d.ts +2 -2
  513. package/dist/models/bid-statement-response-dto.js +2 -2
  514. package/dist/models/bid-summary-dto.d.ts +5 -5
  515. package/dist/models/bid-summary-dto.js +2 -2
  516. package/dist/models/bid-type-public.d.ts +2 -2
  517. package/dist/models/bid-type-public.js +2 -2
  518. package/dist/models/bid-updated-response-dto.d.ts +2 -2
  519. package/dist/models/bid-updated-response-dto.js +2 -2
  520. package/dist/models/bidding-style-public.d.ts +3 -3
  521. package/dist/models/bidding-style-public.js +3 -3
  522. package/dist/models/cancel-bid-request-dto.d.ts +2 -2
  523. package/dist/models/cancel-bid-request-dto.js +2 -2
  524. package/dist/models/cancel-bid200-response.d.ts +2 -2
  525. package/dist/models/cancel-bid200-response.js +2 -2
  526. package/dist/models/card-payment-request-response-dto.d.ts +2 -2
  527. package/dist/models/card-payment-request-response-dto.js +2 -2
  528. package/dist/models/complete-acceptance-request-dto.d.ts +2 -2
  529. package/dist/models/complete-acceptance-request-dto.js +2 -2
  530. package/dist/models/complete-acceptance200-response.d.ts +2 -2
  531. package/dist/models/complete-acceptance200-response.js +2 -2
  532. package/dist/models/complete-invoice200-response.d.ts +2 -2
  533. package/dist/models/complete-invoice200-response.js +2 -2
  534. package/dist/models/complete-upload-request-dto.d.ts +2 -2
  535. package/dist/models/complete-upload-request-dto.js +2 -2
  536. package/dist/models/contract-restriction-confirm-input-dto.d.ts +2 -2
  537. package/dist/models/contract-restriction-confirm-input-dto.js +2 -2
  538. package/dist/models/create-bid-request-dto.d.ts +7 -7
  539. package/dist/models/create-bid-request-dto.js +2 -2
  540. package/dist/models/create-card-payment-dto.d.ts +3 -3
  541. package/dist/models/create-card-payment-dto.js +2 -2
  542. package/dist/models/create-card-payment-request-dto.d.ts +3 -3
  543. package/dist/models/create-card-payment-request-dto.js +2 -2
  544. package/dist/models/create-card-payment200-response.d.ts +2 -2
  545. package/dist/models/create-card-payment200-response.js +2 -2
  546. package/dist/models/create-embed-launch201-response.d.ts +2 -2
  547. package/dist/models/create-embed-launch201-response.js +2 -2
  548. package/dist/models/create-external-contract-documents-request-dto.d.ts +2 -2
  549. package/dist/models/create-external-contract-documents-request-dto.js +2 -2
  550. package/dist/models/create-external-contract-documents-response-dto.d.ts +2 -2
  551. package/dist/models/create-external-contract-documents-response-dto.js +2 -2
  552. package/dist/models/create-file-upload-url201-response.d.ts +2 -2
  553. package/dist/models/create-file-upload-url201-response.js +2 -2
  554. package/dist/models/create-upload-url-request-dto.d.ts +2 -2
  555. package/dist/models/create-upload-url-request-dto.js +2 -2
  556. package/dist/models/create-webhook-endpoint-request-dto.d.ts +2 -2
  557. package/dist/models/create-webhook-endpoint-request-dto.js +2 -2
  558. package/dist/models/create-webhook-endpoint201-response.d.ts +2 -2
  559. package/dist/models/create-webhook-endpoint201-response.js +2 -2
  560. package/dist/models/delivery-date-type-public.d.ts +2 -2
  561. package/dist/models/delivery-date-type-public.js +2 -2
  562. package/dist/models/delivery-method-public.d.ts +2 -2
  563. package/dist/models/delivery-method-public.js +2 -2
  564. package/dist/models/embed-bid-prefill-dto.d.ts +3 -3
  565. package/dist/models/embed-bid-prefill-dto.js +2 -2
  566. package/dist/models/embed-bid-prefill-item-dto.d.ts +2 -2
  567. package/dist/models/embed-bid-prefill-item-dto.js +2 -2
  568. package/dist/models/embed-bid-prefill-manager-dto.d.ts +2 -2
  569. package/dist/models/embed-bid-prefill-manager-dto.js +2 -2
  570. package/dist/models/embed-launch-request-dto.d.ts +3 -3
  571. package/dist/models/embed-launch-request-dto.js +2 -2
  572. package/dist/models/embed-launch-response-dto.d.ts +2 -2
  573. package/dist/models/embed-launch-response-dto.js +2 -2
  574. package/dist/models/excellent-procurement-public.d.ts +2 -2
  575. package/dist/models/excellent-procurement-public.js +2 -2
  576. package/dist/models/external-contract-document-item-dto.d.ts +2 -2
  577. package/dist/models/external-contract-document-item-dto.js +2 -2
  578. package/dist/models/external-contract-documents-response-dto.d.ts +2 -2
  579. package/dist/models/external-contract-documents-response-dto.js +2 -2
  580. package/dist/models/external-contract-item-dto.d.ts +2 -2
  581. package/dist/models/external-contract-item-dto.js +2 -2
  582. package/dist/models/external-contract-snapshot-dto.d.ts +2 -2
  583. package/dist/models/external-contract-snapshot-dto.js +2 -2
  584. package/dist/models/external-document-inputs-dto.d.ts +2 -2
  585. package/dist/models/external-document-inputs-dto.js +2 -2
  586. package/dist/models/file-meta-response-dto.d.ts +3 -3
  587. package/dist/models/file-meta-response-dto.js +2 -2
  588. package/dist/models/file-uploaded-response-dto.d.ts +2 -2
  589. package/dist/models/file-uploaded-response-dto.js +2 -2
  590. package/dist/models/generated-external-contract-document-dto.d.ts +2 -2
  591. package/dist/models/generated-external-contract-document-dto.js +2 -2
  592. package/dist/models/get-bid-settlement200-response.d.ts +2 -2
  593. package/dist/models/get-bid-settlement200-response.js +2 -2
  594. package/dist/models/get-bid-statement200-response.d.ts +2 -2
  595. package/dist/models/get-bid-statement200-response.js +2 -2
  596. package/dist/models/get-bid200-response.d.ts +2 -2
  597. package/dist/models/get-bid200-response.js +2 -2
  598. package/dist/models/get-file-meta200-response.d.ts +2 -2
  599. package/dist/models/get-file-meta200-response.js +2 -2
  600. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +2 -2
  601. package/dist/models/get-supplier-card-payable-v2200-response.js +2 -2
  602. package/dist/models/get-webhook-endpoint200-response.d.ts +2 -2
  603. package/dist/models/get-webhook-endpoint200-response.js +2 -2
  604. package/dist/models/green-product-public.d.ts +2 -2
  605. package/dist/models/green-product-public.js +2 -2
  606. package/dist/models/handover-type-public.d.ts +2 -2
  607. package/dist/models/handover-type-public.js +2 -2
  608. package/dist/models/health-controller-check200-response.d.ts +2 -2
  609. package/dist/models/health-controller-check200-response.js +2 -2
  610. package/dist/models/health-response-dto.d.ts +2 -2
  611. package/dist/models/health-response-dto.js +2 -2
  612. package/dist/models/hierarchical-region-dto.d.ts +2 -2
  613. package/dist/models/hierarchical-region-dto.js +2 -2
  614. package/dist/models/introspect-request-dto.d.ts +2 -2
  615. package/dist/models/introspect-request-dto.js +2 -2
  616. package/dist/models/introspection-response-dto.d.ts +2 -2
  617. package/dist/models/introspection-response-dto.js +2 -2
  618. package/dist/models/invalid-param-dto.d.ts +2 -2
  619. package/dist/models/invalid-param-dto.js +2 -2
  620. package/dist/models/invoice-completed-response-dto.d.ts +2 -2
  621. package/dist/models/invoice-completed-response-dto.js +2 -2
  622. package/dist/models/invoice-split-response-dto.d.ts +2 -2
  623. package/dist/models/invoice-split-response-dto.js +2 -2
  624. package/dist/models/legal-mandatory-public.d.ts +2 -2
  625. package/dist/models/legal-mandatory-public.js +2 -2
  626. package/dist/models/license-combination-mode.d.ts +2 -2
  627. package/dist/models/license-combination-mode.js +2 -2
  628. package/dist/models/list-bid-results200-response.d.ts +2 -2
  629. package/dist/models/list-bid-results200-response.js +2 -2
  630. package/dist/models/list-bids200-response-meta.d.ts +2 -2
  631. package/dist/models/list-bids200-response-meta.js +2 -2
  632. package/dist/models/list-bids200-response.d.ts +2 -2
  633. package/dist/models/list-bids200-response.js +2 -2
  634. package/dist/models/list-products200-response.d.ts +2 -2
  635. package/dist/models/list-products200-response.js +2 -2
  636. package/dist/models/list-suppliers200-response.d.ts +2 -2
  637. package/dist/models/list-suppliers200-response.js +2 -2
  638. package/dist/models/list-webhook-deliveries-response-dto.d.ts +2 -2
  639. package/dist/models/list-webhook-deliveries-response-dto.js +2 -2
  640. package/dist/models/list-webhook-deliveries200-response.d.ts +2 -2
  641. package/dist/models/list-webhook-deliveries200-response.js +2 -2
  642. package/dist/models/list-webhook-endpoints200-response.d.ts +2 -2
  643. package/dist/models/list-webhook-endpoints200-response.js +2 -2
  644. package/dist/models/mark-bid-failed-request-dto.d.ts +2 -2
  645. package/dist/models/mark-bid-failed-request-dto.js +2 -2
  646. package/dist/models/mark-bid-failed201-response.d.ts +2 -2
  647. package/dist/models/mark-bid-failed201-response.js +2 -2
  648. package/dist/models/nominated-supplier-dto.d.ts +3 -3
  649. package/dist/models/nominated-supplier-dto.js +2 -2
  650. package/dist/models/oauth-error-response-dto.d.ts +2 -2
  651. package/dist/models/oauth-error-response-dto.js +2 -2
  652. package/dist/models/on-bid-award-reverted-request.d.ts +2 -2
  653. package/dist/models/on-bid-award-reverted-request.js +2 -2
  654. package/dist/models/on-bid-awarded-request.d.ts +2 -2
  655. package/dist/models/on-bid-awarded-request.js +2 -2
  656. package/dist/models/on-bid-canceled-request.d.ts +2 -2
  657. package/dist/models/on-bid-canceled-request.js +2 -2
  658. package/dist/models/on-bid-closed-request.d.ts +2 -2
  659. package/dist/models/on-bid-closed-request.js +2 -2
  660. package/dist/models/on-bid-failed-request.d.ts +2 -2
  661. package/dist/models/on-bid-failed-request.js +2 -2
  662. package/dist/models/on-ping-request.d.ts +2 -2
  663. package/dist/models/on-ping-request.js +2 -2
  664. package/dist/models/partner-webhook-delivery-status.d.ts +2 -2
  665. package/dist/models/partner-webhook-delivery-status.js +2 -2
  666. package/dist/models/partner-webhook-endpoint-status.d.ts +2 -2
  667. package/dist/models/partner-webhook-endpoint-status.js +2 -2
  668. package/dist/models/partner-webhook-event-type.d.ts +2 -2
  669. package/dist/models/partner-webhook-event-type.js +2 -2
  670. package/dist/models/payment-method-public.d.ts +2 -2
  671. package/dist/models/payment-method-public.js +2 -2
  672. package/dist/models/preconditions-dto.d.ts +7 -7
  673. package/dist/models/preconditions-dto.js +2 -2
  674. package/dist/models/preliminary-price-region-public.d.ts +2 -2
  675. package/dist/models/preliminary-price-region-public.js +2 -2
  676. package/dist/models/price-score-type-public.d.ts +2 -2
  677. package/dist/models/price-score-type-public.js +2 -2
  678. package/dist/models/pricing-type-public.d.ts +2 -2
  679. package/dist/models/pricing-type-public.js +2 -2
  680. package/dist/models/problem-details-dto.d.ts +2 -2
  681. package/dist/models/problem-details-dto.js +2 -2
  682. package/dist/models/product-receipt-response-dto.d.ts +2 -2
  683. package/dist/models/product-receipt-response-dto.js +2 -2
  684. package/dist/models/product-response-dto.d.ts +2 -2
  685. package/dist/models/product-response-dto.js +2 -2
  686. package/dist/models/protected-resource-metadata-dto.d.ts +3 -3
  687. package/dist/models/protected-resource-metadata-dto.js +2 -2
  688. package/dist/models/qualification-review-input-dto.d.ts +2 -2
  689. package/dist/models/qualification-review-input-dto.js +2 -2
  690. package/dist/models/register-award-request-dto.d.ts +2 -2
  691. package/dist/models/register-award-request-dto.js +2 -2
  692. package/dist/models/register-award201-response.d.ts +2 -2
  693. package/dist/models/register-award201-response.js +2 -2
  694. package/dist/models/register-bid201-response.d.ts +2 -2
  695. package/dist/models/register-bid201-response.js +2 -2
  696. package/dist/models/register-semo-contract-request-dto.d.ts +2 -2
  697. package/dist/models/register-semo-contract-request-dto.js +2 -2
  698. package/dist/models/regulation-type-public.d.ts +2 -2
  699. package/dist/models/regulation-type-public.js +2 -2
  700. package/dist/models/related-bid-relation.d.ts +2 -2
  701. package/dist/models/related-bid-relation.js +2 -2
  702. package/dist/models/request-invoice-split-request-dto.d.ts +2 -2
  703. package/dist/models/request-invoice-split-request-dto.js +2 -2
  704. package/dist/models/request-invoice-split200-response.d.ts +2 -2
  705. package/dist/models/request-invoice-split200-response.js +2 -2
  706. package/dist/models/retiree-roster-input-dto.d.ts +2 -2
  707. package/dist/models/retiree-roster-input-dto.js +2 -2
  708. package/dist/models/retiree-roster-row-dto.d.ts +2 -2
  709. package/dist/models/retiree-roster-row-dto.js +2 -2
  710. package/dist/models/revert-award-request-dto.d.ts +2 -2
  711. package/dist/models/revert-award-request-dto.js +2 -2
  712. package/dist/models/revert-award200-response.d.ts +2 -2
  713. package/dist/models/revert-award200-response.js +2 -2
  714. package/dist/models/revoke-request-dto.d.ts +2 -2
  715. package/dist/models/revoke-request-dto.js +2 -2
  716. package/dist/models/semo-contract-registered-response-dto.d.ts +2 -2
  717. package/dist/models/semo-contract-registered-response-dto.js +2 -2
  718. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +2 -2
  719. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +2 -2
  720. package/dist/models/send-webhook-test-event200-response.d.ts +2 -2
  721. package/dist/models/send-webhook-test-event200-response.js +2 -2
  722. package/dist/models/site-briefing-input-dto.d.ts +2 -2
  723. package/dist/models/site-briefing-input-dto.js +2 -2
  724. package/dist/models/statement-document-dto.d.ts +2 -2
  725. package/dist/models/statement-document-dto.js +2 -2
  726. package/dist/models/statement-product-dto.d.ts +6 -6
  727. package/dist/models/statement-product-dto.js +2 -2
  728. package/dist/models/supplier-card-payable-response-dto.d.ts +2 -2
  729. package/dist/models/supplier-card-payable-response-dto.js +2 -2
  730. package/dist/models/supplier-response-dto.d.ts +3 -3
  731. package/dist/models/supplier-response-dto.js +2 -2
  732. package/dist/models/supplier-tax-type.d.ts +2 -2
  733. package/dist/models/supplier-tax-type.js +2 -2
  734. package/dist/models/taxation-type-public.d.ts +2 -2
  735. package/dist/models/taxation-type-public.js +2 -2
  736. package/dist/models/token-request-dto.d.ts +2 -2
  737. package/dist/models/token-request-dto.js +2 -2
  738. package/dist/models/token-response-dto.d.ts +2 -2
  739. package/dist/models/token-response-dto.js +2 -2
  740. package/dist/models/two-stage-phase-public.d.ts +2 -2
  741. package/dist/models/two-stage-phase-public.js +2 -2
  742. package/dist/models/update-bid-request-dto.d.ts +7 -7
  743. package/dist/models/update-bid-request-dto.js +2 -2
  744. package/dist/models/update-bid200-response.d.ts +2 -2
  745. package/dist/models/update-bid200-response.js +2 -2
  746. package/dist/models/update-webhook-endpoint-request-dto.d.ts +2 -2
  747. package/dist/models/update-webhook-endpoint-request-dto.js +2 -2
  748. package/dist/models/upload-file-request-dto.d.ts +2 -2
  749. package/dist/models/upload-file-request-dto.js +2 -2
  750. package/dist/models/upload-file201-response.d.ts +2 -2
  751. package/dist/models/upload-file201-response.js +2 -2
  752. package/dist/models/upload-url-created-response-dto.d.ts +2 -2
  753. package/dist/models/upload-url-created-response-dto.js +2 -2
  754. package/dist/models/webhook-bid-event-data.d.ts +3 -3
  755. package/dist/models/webhook-bid-event-data.js +2 -2
  756. package/dist/models/webhook-delivery-dto.d.ts +2 -2
  757. package/dist/models/webhook-delivery-dto.js +2 -2
  758. package/dist/models/webhook-endpoint-dto.d.ts +2 -2
  759. package/dist/models/webhook-endpoint-dto.js +2 -2
  760. package/dist/models/webhook-endpoint-with-secret-dto.d.ts +2 -2
  761. package/dist/models/webhook-endpoint-with-secret-dto.js +2 -2
  762. package/dist/models/webhook-event-envelope.d.ts +3 -3
  763. package/dist/models/webhook-event-envelope.js +2 -2
  764. package/dist/models/webhook-ping-event-data.d.ts +2 -2
  765. package/dist/models/webhook-ping-event-data.js +2 -2
  766. package/dist/models/webhook-test-result-dto.d.ts +2 -2
  767. package/dist/models/webhook-test-result-dto.js +2 -2
  768. package/docs/ApiCatalogEntryDto.md +2 -2
  769. package/docs/AuthorizationServerMetadataDto.md +3 -3
  770. package/docs/BidContractDocumentDto.md +1 -1
  771. package/docs/BidDetailResponseDto.md +5 -5
  772. package/docs/BidItemDto.md +1 -1
  773. package/docs/BidMustReadNoticeDto.md +1 -1
  774. package/docs/BidPreliminaryPriceDto.md +3 -3
  775. package/docs/BidPreliminaryPriceSlotDto.md +1 -1
  776. package/docs/BidProductDto.md +1 -1
  777. package/docs/BidRegionDto.md +1 -1
  778. package/docs/BidRegionRestrictionDto.md +2 -2
  779. package/docs/BidRequiredDocumentDto.md +1 -1
  780. package/docs/BidResultParticipantDto.md +5 -5
  781. package/docs/BidResultsResponseDto.md +2 -2
  782. package/docs/BidSettlementLineItemDto.md +2 -2
  783. package/docs/BidSettlementParticipantDto.md +2 -2
  784. package/docs/BidSettlementResponseDto.md +1 -1
  785. package/docs/BidSummaryDto.md +3 -3
  786. package/docs/BiddingStylePublic.md +1 -1
  787. package/docs/CreateBidRequestDto.md +5 -5
  788. package/docs/CreateCardPaymentDto.md +1 -1
  789. package/docs/CreateCardPaymentRequestDto.md +1 -1
  790. package/docs/EmbedApi.md +1 -1
  791. package/docs/EmbedBidPrefillDto.md +1 -1
  792. package/docs/EmbedLaunchRequestDto.md +1 -1
  793. package/docs/FileMetaResponseDto.md +1 -1
  794. package/docs/NominatedSupplierDto.md +1 -1
  795. package/docs/OnBidAwardRevertedRequest.md +1 -1
  796. package/docs/OnBidAwardedRequest.md +1 -1
  797. package/docs/OnBidCanceledRequest.md +1 -1
  798. package/docs/OnBidClosedRequest.md +1 -1
  799. package/docs/OnBidFailedRequest.md +1 -1
  800. package/docs/OnPingRequest.md +1 -1
  801. package/docs/PartnerApiApi.md +23 -23
  802. package/docs/PreconditionsDto.md +5 -5
  803. package/docs/ProtectedResourceMetadataDto.md +1 -1
  804. package/docs/StatementProductDto.md +4 -4
  805. package/docs/SupplierResponseDto.md +1 -1
  806. package/docs/UpdateBidRequestDto.md +5 -5
  807. package/docs/WebhookBidEventData.md +1 -1
  808. package/docs/WebhookEventEnvelope.md +1 -1
  809. package/docs/WebhooksApi.md +1 -1
  810. package/docs/WellKnownApi.md +2 -2
  811. package/index.ts +2 -2
  812. package/models/acceptance-result-response-dto.ts +2 -2
  813. package/models/acknowledge-product-receipt200-response.ts +2 -2
  814. package/models/acknowledge-products-request-dto.ts +2 -2
  815. package/models/api-catalog-dto.ts +2 -2
  816. package/models/api-catalog-entry-dto.ts +4 -4
  817. package/models/api-catalog-link-dto.ts +2 -2
  818. package/models/authorization-server-metadata-dto.ts +5 -5
  819. package/models/avalues-input-dto.ts +2 -2
  820. package/models/award-method-public.ts +2 -2
  821. package/models/award-registered-v2-response-dto.ts +2 -2
  822. package/models/award-reverted-v2-response-dto.ts +2 -2
  823. package/models/bid-acceptance-dto.ts +2 -2
  824. package/models/bid-attachment-dto.ts +2 -2
  825. package/models/bid-attachment-input-dto.ts +2 -2
  826. package/models/bid-avalues-dto.ts +2 -2
  827. package/models/bid-award-method-detail-dto.ts +2 -2
  828. package/models/bid-bond-dto.ts +2 -2
  829. package/models/bid-cancellation-dto.ts +2 -2
  830. package/models/bid-cancelled-response-dto.ts +2 -2
  831. package/models/bid-category-public.ts +2 -2
  832. package/models/bid-contact-dto.ts +2 -2
  833. package/models/bid-contacts-dto.ts +2 -2
  834. package/models/bid-contract-document-dto.ts +3 -3
  835. package/models/bid-delivery-terms-dto.ts +2 -2
  836. package/models/bid-detail-response-dto.ts +7 -7
  837. package/models/bid-document-dto.ts +2 -2
  838. package/models/bid-failed-v2-response-dto.ts +2 -2
  839. package/models/bid-item-dto.ts +3 -3
  840. package/models/bid-license-requirement-dto.ts +2 -2
  841. package/models/bid-lifecycle-dto.ts +2 -2
  842. package/models/bid-manager-dto.ts +2 -2
  843. package/models/bid-must-read-notice-dto.ts +3 -3
  844. package/models/bid-payment-terms-dto.ts +2 -2
  845. package/models/bid-preliminary-price-dto.ts +5 -5
  846. package/models/bid-preliminary-price-slot-dto.ts +3 -3
  847. package/models/bid-product-dto.ts +3 -3
  848. package/models/bid-public-status.ts +2 -2
  849. package/models/bid-qualification-review-dto.ts +2 -2
  850. package/models/bid-region-dto.ts +3 -3
  851. package/models/bid-region-restriction-dto.ts +4 -4
  852. package/models/bid-registered-response-dto.ts +2 -2
  853. package/models/bid-related-bid-dto.ts +2 -2
  854. package/models/bid-required-document-dto.ts +3 -3
  855. package/models/bid-result-participant-attachment-dto.ts +2 -2
  856. package/models/bid-result-participant-dto.ts +7 -7
  857. package/models/bid-results-response-dto.ts +4 -4
  858. package/models/bid-settlement-line-item-dto.ts +4 -4
  859. package/models/bid-settlement-participant-dto.ts +4 -4
  860. package/models/bid-settlement-response-dto.ts +3 -3
  861. package/models/bid-site-briefing-dto.ts +2 -2
  862. package/models/bid-statement-response-dto.ts +2 -2
  863. package/models/bid-summary-dto.ts +5 -5
  864. package/models/bid-type-public.ts +2 -2
  865. package/models/bid-updated-response-dto.ts +2 -2
  866. package/models/bidding-style-public.ts +3 -3
  867. package/models/cancel-bid-request-dto.ts +2 -2
  868. package/models/cancel-bid200-response.ts +2 -2
  869. package/models/card-payment-request-response-dto.ts +2 -2
  870. package/models/complete-acceptance-request-dto.ts +2 -2
  871. package/models/complete-acceptance200-response.ts +2 -2
  872. package/models/complete-invoice200-response.ts +2 -2
  873. package/models/complete-upload-request-dto.ts +2 -2
  874. package/models/contract-restriction-confirm-input-dto.ts +2 -2
  875. package/models/create-bid-request-dto.ts +7 -7
  876. package/models/create-card-payment-dto.ts +3 -3
  877. package/models/create-card-payment-request-dto.ts +3 -3
  878. package/models/create-card-payment200-response.ts +2 -2
  879. package/models/create-embed-launch201-response.ts +2 -2
  880. package/models/create-external-contract-documents-request-dto.ts +2 -2
  881. package/models/create-external-contract-documents-response-dto.ts +2 -2
  882. package/models/create-file-upload-url201-response.ts +2 -2
  883. package/models/create-upload-url-request-dto.ts +2 -2
  884. package/models/create-webhook-endpoint-request-dto.ts +2 -2
  885. package/models/create-webhook-endpoint201-response.ts +2 -2
  886. package/models/delivery-date-type-public.ts +2 -2
  887. package/models/delivery-method-public.ts +2 -2
  888. package/models/embed-bid-prefill-dto.ts +3 -3
  889. package/models/embed-bid-prefill-item-dto.ts +2 -2
  890. package/models/embed-bid-prefill-manager-dto.ts +2 -2
  891. package/models/embed-launch-request-dto.ts +3 -3
  892. package/models/embed-launch-response-dto.ts +2 -2
  893. package/models/excellent-procurement-public.ts +2 -2
  894. package/models/external-contract-document-item-dto.ts +2 -2
  895. package/models/external-contract-documents-response-dto.ts +2 -2
  896. package/models/external-contract-item-dto.ts +2 -2
  897. package/models/external-contract-snapshot-dto.ts +2 -2
  898. package/models/external-document-inputs-dto.ts +2 -2
  899. package/models/file-meta-response-dto.ts +3 -3
  900. package/models/file-uploaded-response-dto.ts +2 -2
  901. package/models/generated-external-contract-document-dto.ts +2 -2
  902. package/models/get-bid-settlement200-response.ts +2 -2
  903. package/models/get-bid-statement200-response.ts +2 -2
  904. package/models/get-bid200-response.ts +2 -2
  905. package/models/get-file-meta200-response.ts +2 -2
  906. package/models/get-supplier-card-payable-v2200-response.ts +2 -2
  907. package/models/get-webhook-endpoint200-response.ts +2 -2
  908. package/models/green-product-public.ts +2 -2
  909. package/models/handover-type-public.ts +2 -2
  910. package/models/health-controller-check200-response.ts +2 -2
  911. package/models/health-response-dto.ts +2 -2
  912. package/models/hierarchical-region-dto.ts +2 -2
  913. package/models/introspect-request-dto.ts +2 -2
  914. package/models/introspection-response-dto.ts +2 -2
  915. package/models/invalid-param-dto.ts +2 -2
  916. package/models/invoice-completed-response-dto.ts +2 -2
  917. package/models/invoice-split-response-dto.ts +2 -2
  918. package/models/legal-mandatory-public.ts +2 -2
  919. package/models/license-combination-mode.ts +2 -2
  920. package/models/list-bid-results200-response.ts +2 -2
  921. package/models/list-bids200-response-meta.ts +2 -2
  922. package/models/list-bids200-response.ts +2 -2
  923. package/models/list-products200-response.ts +2 -2
  924. package/models/list-suppliers200-response.ts +2 -2
  925. package/models/list-webhook-deliveries-response-dto.ts +2 -2
  926. package/models/list-webhook-deliveries200-response.ts +2 -2
  927. package/models/list-webhook-endpoints200-response.ts +2 -2
  928. package/models/mark-bid-failed-request-dto.ts +2 -2
  929. package/models/mark-bid-failed201-response.ts +2 -2
  930. package/models/nominated-supplier-dto.ts +3 -3
  931. package/models/oauth-error-response-dto.ts +2 -2
  932. package/models/on-bid-award-reverted-request.ts +2 -2
  933. package/models/on-bid-awarded-request.ts +2 -2
  934. package/models/on-bid-canceled-request.ts +2 -2
  935. package/models/on-bid-closed-request.ts +2 -2
  936. package/models/on-bid-failed-request.ts +2 -2
  937. package/models/on-ping-request.ts +2 -2
  938. package/models/partner-webhook-delivery-status.ts +2 -2
  939. package/models/partner-webhook-endpoint-status.ts +2 -2
  940. package/models/partner-webhook-event-type.ts +2 -2
  941. package/models/payment-method-public.ts +2 -2
  942. package/models/preconditions-dto.ts +7 -7
  943. package/models/preliminary-price-region-public.ts +2 -2
  944. package/models/price-score-type-public.ts +2 -2
  945. package/models/pricing-type-public.ts +2 -2
  946. package/models/problem-details-dto.ts +2 -2
  947. package/models/product-receipt-response-dto.ts +2 -2
  948. package/models/product-response-dto.ts +2 -2
  949. package/models/protected-resource-metadata-dto.ts +3 -3
  950. package/models/qualification-review-input-dto.ts +2 -2
  951. package/models/register-award-request-dto.ts +2 -2
  952. package/models/register-award201-response.ts +2 -2
  953. package/models/register-bid201-response.ts +2 -2
  954. package/models/register-semo-contract-request-dto.ts +2 -2
  955. package/models/regulation-type-public.ts +2 -2
  956. package/models/related-bid-relation.ts +2 -2
  957. package/models/request-invoice-split-request-dto.ts +2 -2
  958. package/models/request-invoice-split200-response.ts +2 -2
  959. package/models/retiree-roster-input-dto.ts +2 -2
  960. package/models/retiree-roster-row-dto.ts +2 -2
  961. package/models/revert-award-request-dto.ts +2 -2
  962. package/models/revert-award200-response.ts +2 -2
  963. package/models/revoke-request-dto.ts +2 -2
  964. package/models/semo-contract-registered-response-dto.ts +2 -2
  965. package/models/semo-contract-taxinvoice-status-response-dto.ts +2 -2
  966. package/models/send-webhook-test-event200-response.ts +2 -2
  967. package/models/site-briefing-input-dto.ts +2 -2
  968. package/models/statement-document-dto.ts +2 -2
  969. package/models/statement-product-dto.ts +6 -6
  970. package/models/supplier-card-payable-response-dto.ts +2 -2
  971. package/models/supplier-response-dto.ts +3 -3
  972. package/models/supplier-tax-type.ts +2 -2
  973. package/models/taxation-type-public.ts +2 -2
  974. package/models/token-request-dto.ts +2 -2
  975. package/models/token-response-dto.ts +2 -2
  976. package/models/two-stage-phase-public.ts +2 -2
  977. package/models/update-bid-request-dto.ts +7 -7
  978. package/models/update-bid200-response.ts +2 -2
  979. package/models/update-webhook-endpoint-request-dto.ts +2 -2
  980. package/models/upload-file-request-dto.ts +2 -2
  981. package/models/upload-file201-response.ts +2 -2
  982. package/models/upload-url-created-response-dto.ts +2 -2
  983. package/models/webhook-bid-event-data.ts +3 -3
  984. package/models/webhook-delivery-dto.ts +2 -2
  985. package/models/webhook-endpoint-dto.ts +2 -2
  986. package/models/webhook-endpoint-with-secret-dto.ts +2 -2
  987. package/models/webhook-event-envelope.ts +3 -3
  988. package/models/webhook-ping-event-data.ts +2 -2
  989. package/models/webhook-test-result-dto.ts +2 -2
  990. package/package.json +1 -1
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CMARKET V6 Partner API
3
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
3
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
4
4
  *
5
- * The version of the OpenAPI document: 45.2.0
5
+ * The version of the OpenAPI document: 45.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,9 +2,9 @@
2
2
  /* eslint-disable */
3
3
  /**
4
4
  * CMARKET V6 Partner API
5
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
5
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 45.2.0
7
+ * The version of the OpenAPI document: 45.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CMARKET V6 Partner API
3
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
3
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
4
4
  *
5
- * The version of the OpenAPI document: 45.2.0
5
+ * The version of the OpenAPI document: 45.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -35,7 +35,7 @@ export declare const WebhooksApiAxiosParamCreator: (configuration?: Configuratio
35
35
  */
36
36
  onBidAwardReverted: (webhookId: string, webhookEventType: string, webhookTimestamp: string, webhookSignature: string, onBidAwardRevertedRequest: OnBidAwardRevertedRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
37
37
  /**
38
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
38
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
39
39
  * @summary 낙찰 확정.
40
40
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
41
41
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -112,7 +112,7 @@ export declare const WebhooksApiFp: (configuration?: Configuration) => {
112
112
  */
113
113
  onBidAwardReverted(webhookId: string, webhookEventType: string, webhookTimestamp: string, webhookSignature: string, onBidAwardRevertedRequest: OnBidAwardRevertedRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
114
114
  /**
115
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
115
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
116
116
  * @summary 낙찰 확정.
117
117
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
118
118
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -189,7 +189,7 @@ export declare const WebhooksApiFactory: (configuration?: Configuration, basePat
189
189
  */
190
190
  onBidAwardReverted(webhookId: string, webhookEventType: string, webhookTimestamp: string, webhookSignature: string, onBidAwardRevertedRequest: OnBidAwardRevertedRequest, options?: RawAxiosRequestConfig): AxiosPromise<void>;
191
191
  /**
192
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
192
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
193
193
  * @summary 낙찰 확정.
194
194
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
195
195
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -266,7 +266,7 @@ export declare class WebhooksApi extends BaseAPI {
266
266
  */
267
267
  onBidAwardReverted(webhookId: string, webhookEventType: string, webhookTimestamp: string, webhookSignature: string, onBidAwardRevertedRequest: OnBidAwardRevertedRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
268
268
  /**
269
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
269
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
270
270
  * @summary 낙찰 확정.
271
271
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
272
272
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -2,9 +2,9 @@
2
2
  /* eslint-disable */
3
3
  /**
4
4
  * CMARKET V6 Partner API
5
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
5
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 45.2.0
7
+ * The version of the OpenAPI document: 45.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -86,7 +86,7 @@ export const WebhooksApiAxiosParamCreator = function (configuration) {
86
86
  };
87
87
  }),
88
88
  /**
89
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
89
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
90
90
  * @summary 낙찰 확정.
91
91
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
92
92
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -384,7 +384,7 @@ export const WebhooksApiFp = function (configuration) {
384
384
  });
385
385
  },
386
386
  /**
387
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
387
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
388
388
  * @summary 낙찰 확정.
389
389
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
390
390
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -506,7 +506,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
506
506
  return localVarFp.onBidAwardReverted(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardRevertedRequest, options).then((request) => request(axios, basePath));
507
507
  },
508
508
  /**
509
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
509
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
510
510
  * @summary 낙찰 확정.
511
511
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
512
512
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -596,7 +596,7 @@ export class WebhooksApi extends BaseAPI {
596
596
  return WebhooksApiFp(this.configuration).onBidAwardReverted(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardRevertedRequest, options).then((request) => request(this.axios, this.basePath));
597
597
  }
598
598
  /**
599
- * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 다수업체 낙찰에서는 `isWinner`가 여럿일 수 있습니다.
599
+ * 낙찰이 확정됐습니다. 낙찰자는 `GET /v2/bid-results`의 `participants[].isWinner`로 읽으세요 — **공고 상태로 판정하지 마세요.** `AWARDED` 라는 상태는 존재하지 않고 낙찰 직후 `CONTRACT_IN_PROGRESS`로 전이합니다. 낙찰방법이 다수업체 선정이면 `isWinner` 여럿일 수 있습니다.
600
600
  * @summary 낙찰 확정.
601
601
  * @param {string} webhookId 이벤트 식별자. **재시도에도 같은 값**이므로 수신측 중복 제거 키로 쓰세요.
602
602
  * @param {string} webhookEventType 이벤트 타입. 본문 &#x60;type&#x60;과 같습니다.
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CMARKET V6 Partner API
3
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
3
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
4
4
  *
5
- * The version of the OpenAPI document: 45.2.0
5
+ * The version of the OpenAPI document: 45.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -20,7 +20,7 @@ import type { ProtectedResourceMetadataDto } from '../models';
20
20
  */
21
21
  export declare const WellKnownApiAxiosParamCreator: (configuration?: Configuration) => {
22
22
  /**
23
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
23
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
24
24
  * @summary API 카탈로그 (api-catalog, RFC 9727)
25
25
  * @param {*} [options] Override http request option.
26
26
  * @throws {RequiredError}
@@ -46,7 +46,7 @@ export declare const WellKnownApiAxiosParamCreator: (configuration?: Configurati
46
46
  */
47
47
  export declare const WellKnownApiFp: (configuration?: Configuration) => {
48
48
  /**
49
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
49
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
50
50
  * @summary API 카탈로그 (api-catalog, RFC 9727)
51
51
  * @param {*} [options] Override http request option.
52
52
  * @throws {RequiredError}
@@ -72,7 +72,7 @@ export declare const WellKnownApiFp: (configuration?: Configuration) => {
72
72
  */
73
73
  export declare const WellKnownApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
74
74
  /**
75
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
75
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
76
76
  * @summary API 카탈로그 (api-catalog, RFC 9727)
77
77
  * @param {*} [options] Override http request option.
78
78
  * @throws {RequiredError}
@@ -98,7 +98,7 @@ export declare const WellKnownApiFactory: (configuration?: Configuration, basePa
98
98
  */
99
99
  export declare class WellKnownApi extends BaseAPI {
100
100
  /**
101
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
101
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
102
102
  * @summary API 카탈로그 (api-catalog, RFC 9727)
103
103
  * @param {*} [options] Override http request option.
104
104
  * @throws {RequiredError}
@@ -2,9 +2,9 @@
2
2
  /* eslint-disable */
3
3
  /**
4
4
  * CMARKET V6 Partner API
5
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
5
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 45.2.0
7
+ * The version of the OpenAPI document: 45.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -32,7 +32,7 @@ import { BASE_PATH, BaseAPI, operationServerMap } from '../base';
32
32
  export const WellKnownApiAxiosParamCreator = function (configuration) {
33
33
  return {
34
34
  /**
35
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
35
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
36
36
  * @summary API 카탈로그 (api-catalog, RFC 9727)
37
37
  * @param {*} [options] Override http request option.
38
38
  * @throws {RequiredError}
@@ -118,7 +118,7 @@ export const WellKnownApiFp = function (configuration) {
118
118
  const localVarAxiosParamCreator = WellKnownApiAxiosParamCreator(configuration);
119
119
  return {
120
120
  /**
121
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
121
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
122
122
  * @summary API 카탈로그 (api-catalog, RFC 9727)
123
123
  * @param {*} [options] Override http request option.
124
124
  * @throws {RequiredError}
@@ -171,7 +171,7 @@ export const WellKnownApiFactory = function (configuration, basePath, axios) {
171
171
  const localVarFp = WellKnownApiFp(configuration);
172
172
  return {
173
173
  /**
174
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
174
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
175
175
  * @summary API 카탈로그 (api-catalog, RFC 9727)
176
176
  * @param {*} [options] Override http request option.
177
177
  * @throws {RequiredError}
@@ -204,7 +204,7 @@ export const WellKnownApiFactory = function (configuration, basePath, axios) {
204
204
  */
205
205
  export class WellKnownApi extends BaseAPI {
206
206
  /**
207
- * 이 배포가 제공하는 API 표면과표면의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
207
+ * 이 배포가 제공하는 API 목록과API의 기계용 스펙·사람용 문서·상태 링크를 RFC 9264 Linkset으로 공개합니다. 인증이 필요 없습니다.
208
208
  * @summary API 카탈로그 (api-catalog, RFC 9727)
209
209
  * @param {*} [options] Override http request option.
210
210
  * @throws {RequiredError}
package/dist/esm/api.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CMARKET V6 Partner API
3
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
3
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
4
4
  *
5
- * The version of the OpenAPI document: 45.2.0
5
+ * The version of the OpenAPI document: 45.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/api.js CHANGED
@@ -2,9 +2,9 @@
2
2
  /* eslint-disable */
3
3
  /**
4
4
  * CMARKET V6 Partner API
5
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
5
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 45.2.0
7
+ * The version of the OpenAPI document: 45.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CMARKET V6 Partner API
3
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
3
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
4
4
  *
5
- * The version of the OpenAPI document: 45.2.0
5
+ * The version of the OpenAPI document: 45.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/base.js CHANGED
@@ -2,9 +2,9 @@
2
2
  /* eslint-disable */
3
3
  /**
4
4
  * CMARKET V6 Partner API
5
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
5
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
6
6
  *
7
- * The version of the OpenAPI document: 45.2.0
7
+ * The version of the OpenAPI document: 45.4.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * CMARKET V6 Partner API
3
- * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
3
+ * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token`에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403`을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주기관 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 형식 `/v2`의 모든 2xx 본문은 `{ \"data\": … }`입니다. 단일 리소스든 목록이든 같습니다. **목록은 `data`가 배열이고 `meta`가 항상 함께 실립니다** — `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 리소스 응답에는 `meta`가 나가지 않습니다. 형식을 쓰지 않는 엔드포인트는 둘입니다. `/oauth/_*`와 `/.well-known/_*`는 각각 RFC 6749·RFC 8414·RFC 9728이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON이 아닙니다. 에러 응답에는 형식을 씌우지 않습니다 — 아래 problem+json이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2`의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified`를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json`입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId`와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId`를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). - `code`: 조달플랫폼이 요청을 거부한 **사유 코드**(`…/upstream-*` 응답에 함께 옵니다). `type`은 상태 수준이고 `detail`은 고정 문구라, 무엇을 고쳐야 하는지는 이 값이 알려 줍니다 — 예: `BID_INVALID_BID_DATE_RANGE`(마감이 시작보다 이름), `BID_DUPLICATE_PURCHASE_NO`(같은 조달번호의 공고가 진행 중). 안정 식별자이므로 문자열로 분기해도 됩니다. `type`은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1이 허용하는 대로 이 URI는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409와 422의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id`가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug은 **HTTP status로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
4
4
  *
5
- * The version of the OpenAPI document: 45.2.0
5
+ * The version of the OpenAPI document: 45.4.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).