@cmarket/partner-sdk 45.1.3 → 45.2.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 (950) hide show
  1. package/README.md +4 -4
  2. package/api/embed-api.ts +5 -5
  3. package/api/oauth-api.ts +1 -1
  4. package/api/partner-api-api.ts +21 -21
  5. package/api/products-api.ts +1 -1
  6. package/api/webhooks-api.ts +1 -1
  7. package/api/well-known-api.ts +1 -1
  8. package/api.ts +1 -1
  9. package/base.ts +1 -1
  10. package/common.ts +1 -1
  11. package/configuration.ts +1 -1
  12. package/dist/api/embed-api.d.ts +5 -5
  13. package/dist/api/embed-api.js +5 -5
  14. package/dist/api/oauth-api.d.ts +1 -1
  15. package/dist/api/oauth-api.js +1 -1
  16. package/dist/api/partner-api-api.d.ts +21 -21
  17. package/dist/api/partner-api-api.js +21 -21
  18. package/dist/api/products-api.d.ts +1 -1
  19. package/dist/api/products-api.js +1 -1
  20. package/dist/api/webhooks-api.d.ts +1 -1
  21. package/dist/api/webhooks-api.js +1 -1
  22. package/dist/api/well-known-api.d.ts +1 -1
  23. package/dist/api/well-known-api.js +1 -1
  24. package/dist/api.d.ts +1 -1
  25. package/dist/api.js +1 -1
  26. package/dist/base.d.ts +1 -1
  27. package/dist/base.js +1 -1
  28. package/dist/common.d.ts +1 -1
  29. package/dist/common.js +1 -1
  30. package/dist/configuration.d.ts +1 -1
  31. package/dist/configuration.js +1 -1
  32. package/dist/esm/api/embed-api.d.ts +5 -5
  33. package/dist/esm/api/embed-api.js +5 -5
  34. package/dist/esm/api/oauth-api.d.ts +1 -1
  35. package/dist/esm/api/oauth-api.js +1 -1
  36. package/dist/esm/api/partner-api-api.d.ts +21 -21
  37. package/dist/esm/api/partner-api-api.js +21 -21
  38. package/dist/esm/api/products-api.d.ts +1 -1
  39. package/dist/esm/api/products-api.js +1 -1
  40. package/dist/esm/api/webhooks-api.d.ts +1 -1
  41. package/dist/esm/api/webhooks-api.js +1 -1
  42. package/dist/esm/api/well-known-api.d.ts +1 -1
  43. package/dist/esm/api/well-known-api.js +1 -1
  44. package/dist/esm/api.d.ts +1 -1
  45. package/dist/esm/api.js +1 -1
  46. package/dist/esm/base.d.ts +1 -1
  47. package/dist/esm/base.js +1 -1
  48. package/dist/esm/common.d.ts +1 -1
  49. package/dist/esm/common.js +1 -1
  50. package/dist/esm/configuration.d.ts +1 -1
  51. package/dist/esm/configuration.js +1 -1
  52. package/dist/esm/index.d.ts +1 -1
  53. package/dist/esm/index.js +1 -1
  54. package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
  55. package/dist/esm/models/acceptance-result-response-dto.js +1 -1
  56. package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
  57. package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
  58. package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
  59. package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
  60. package/dist/esm/models/api-catalog-dto.d.ts +1 -1
  61. package/dist/esm/models/api-catalog-dto.js +1 -1
  62. package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
  63. package/dist/esm/models/api-catalog-entry-dto.js +1 -1
  64. package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
  65. package/dist/esm/models/api-catalog-link-dto.js +1 -1
  66. package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
  67. package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
  68. package/dist/esm/models/avalues-input-dto.d.ts +1 -1
  69. package/dist/esm/models/avalues-input-dto.js +1 -1
  70. package/dist/esm/models/award-method-public.d.ts +1 -1
  71. package/dist/esm/models/award-method-public.js +1 -1
  72. package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
  73. package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
  74. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +1 -1
  75. package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
  76. package/dist/esm/models/bid-acceptance-dto.d.ts +1 -1
  77. package/dist/esm/models/bid-acceptance-dto.js +1 -1
  78. package/dist/esm/models/bid-attachment-dto.d.ts +1 -1
  79. package/dist/esm/models/bid-attachment-dto.js +1 -1
  80. package/dist/esm/models/bid-attachment-input-dto.d.ts +1 -1
  81. package/dist/esm/models/bid-attachment-input-dto.js +1 -1
  82. package/dist/esm/models/bid-avalues-dto.d.ts +1 -1
  83. package/dist/esm/models/bid-avalues-dto.js +1 -1
  84. package/dist/esm/models/bid-award-method-detail-dto.d.ts +1 -1
  85. package/dist/esm/models/bid-award-method-detail-dto.js +1 -1
  86. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  87. package/dist/esm/models/bid-bond-dto.js +1 -1
  88. package/dist/esm/models/bid-cancellation-dto.d.ts +1 -1
  89. package/dist/esm/models/bid-cancellation-dto.js +1 -1
  90. package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
  91. package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
  92. package/dist/esm/models/bid-category-public.d.ts +1 -1
  93. package/dist/esm/models/bid-category-public.js +1 -1
  94. package/dist/esm/models/bid-contact-dto.d.ts +1 -1
  95. package/dist/esm/models/bid-contact-dto.js +1 -1
  96. package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
  97. package/dist/esm/models/bid-contacts-dto.js +1 -1
  98. package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
  99. package/dist/esm/models/bid-contract-document-dto.js +1 -1
  100. package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
  101. package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
  102. package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
  103. package/dist/esm/models/bid-detail-response-dto.js +1 -1
  104. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  105. package/dist/esm/models/bid-document-dto.js +1 -1
  106. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  107. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  108. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  109. package/dist/esm/models/bid-item-dto.js +1 -1
  110. package/dist/esm/models/bid-license-requirement-dto.d.ts +1 -1
  111. package/dist/esm/models/bid-license-requirement-dto.js +1 -1
  112. package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
  113. package/dist/esm/models/bid-lifecycle-dto.js +1 -1
  114. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  115. package/dist/esm/models/bid-manager-dto.js +1 -1
  116. package/dist/esm/models/bid-must-read-notice-dto.d.ts +1 -1
  117. package/dist/esm/models/bid-must-read-notice-dto.js +1 -1
  118. package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
  119. package/dist/esm/models/bid-payment-terms-dto.js +1 -1
  120. package/dist/esm/models/bid-preliminary-price-dto.d.ts +1 -1
  121. package/dist/esm/models/bid-preliminary-price-dto.js +1 -1
  122. package/dist/esm/models/bid-preliminary-price-slot-dto.d.ts +1 -1
  123. package/dist/esm/models/bid-preliminary-price-slot-dto.js +1 -1
  124. package/dist/esm/models/bid-product-dto.d.ts +1 -1
  125. package/dist/esm/models/bid-product-dto.js +1 -1
  126. package/dist/esm/models/bid-public-status.d.ts +1 -1
  127. package/dist/esm/models/bid-public-status.js +1 -1
  128. package/dist/esm/models/bid-qualification-review-dto.d.ts +1 -1
  129. package/dist/esm/models/bid-qualification-review-dto.js +1 -1
  130. package/dist/esm/models/bid-region-dto.d.ts +1 -1
  131. package/dist/esm/models/bid-region-dto.js +1 -1
  132. package/dist/esm/models/bid-region-restriction-dto.d.ts +1 -1
  133. package/dist/esm/models/bid-region-restriction-dto.js +1 -1
  134. package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
  135. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  136. package/dist/esm/models/bid-related-bid-dto.d.ts +1 -1
  137. package/dist/esm/models/bid-related-bid-dto.js +1 -1
  138. package/dist/esm/models/bid-required-document-dto.d.ts +1 -1
  139. package/dist/esm/models/bid-required-document-dto.js +1 -1
  140. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  141. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  142. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  143. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  144. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  145. package/dist/esm/models/bid-results-response-dto.js +1 -1
  146. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  147. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  148. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  149. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  150. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  151. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  152. package/dist/esm/models/bid-site-briefing-dto.d.ts +1 -1
  153. package/dist/esm/models/bid-site-briefing-dto.js +1 -1
  154. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  155. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  156. package/dist/esm/models/bid-summary-dto.d.ts +1 -1
  157. package/dist/esm/models/bid-summary-dto.js +1 -1
  158. package/dist/esm/models/bid-type-public.d.ts +1 -1
  159. package/dist/esm/models/bid-type-public.js +1 -1
  160. package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
  161. package/dist/esm/models/bid-updated-response-dto.js +1 -1
  162. package/dist/esm/models/bidding-style-public.d.ts +1 -1
  163. package/dist/esm/models/bidding-style-public.js +1 -1
  164. package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
  165. package/dist/esm/models/cancel-bid-request-dto.js +1 -1
  166. package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
  167. package/dist/esm/models/cancel-bid200-response.js +1 -1
  168. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  169. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  170. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  171. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  172. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  173. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  174. package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
  175. package/dist/esm/models/complete-invoice200-response.js +1 -1
  176. package/dist/esm/models/complete-upload-request-dto.d.ts +1 -1
  177. package/dist/esm/models/complete-upload-request-dto.js +1 -1
  178. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  179. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  180. package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
  181. package/dist/esm/models/create-bid-request-dto.js +1 -1
  182. package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
  183. package/dist/esm/models/create-card-payment-dto.js +1 -1
  184. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  185. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  186. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  187. package/dist/esm/models/create-card-payment200-response.js +1 -1
  188. package/dist/esm/models/create-embed-launch201-response.d.ts +1 -1
  189. package/dist/esm/models/create-embed-launch201-response.js +1 -1
  190. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  191. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  192. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  193. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  194. package/dist/esm/models/create-file-upload-url201-response.d.ts +1 -1
  195. package/dist/esm/models/create-file-upload-url201-response.js +1 -1
  196. package/dist/esm/models/create-upload-url-request-dto.d.ts +1 -1
  197. package/dist/esm/models/create-upload-url-request-dto.js +1 -1
  198. package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +1 -1
  199. package/dist/esm/models/create-webhook-endpoint-request-dto.js +1 -1
  200. package/dist/esm/models/create-webhook-endpoint201-response.d.ts +1 -1
  201. package/dist/esm/models/create-webhook-endpoint201-response.js +1 -1
  202. package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
  203. package/dist/esm/models/delivery-date-type-public.js +1 -1
  204. package/dist/esm/models/delivery-method-public.d.ts +1 -1
  205. package/dist/esm/models/delivery-method-public.js +1 -1
  206. package/dist/esm/models/embed-bid-prefill-dto.d.ts +1 -1
  207. package/dist/esm/models/embed-bid-prefill-dto.js +1 -1
  208. package/dist/esm/models/embed-bid-prefill-item-dto.d.ts +1 -1
  209. package/dist/esm/models/embed-bid-prefill-item-dto.js +1 -1
  210. package/dist/esm/models/embed-bid-prefill-manager-dto.d.ts +1 -1
  211. package/dist/esm/models/embed-bid-prefill-manager-dto.js +1 -1
  212. package/dist/esm/models/embed-launch-request-dto.d.ts +1 -1
  213. package/dist/esm/models/embed-launch-request-dto.js +1 -1
  214. package/dist/esm/models/embed-launch-response-dto.d.ts +1 -1
  215. package/dist/esm/models/embed-launch-response-dto.js +1 -1
  216. package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
  217. package/dist/esm/models/excellent-procurement-public.js +1 -1
  218. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  219. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  220. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  221. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  222. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  223. package/dist/esm/models/external-contract-item-dto.js +1 -1
  224. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  225. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  226. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  227. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  228. package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
  229. package/dist/esm/models/file-meta-response-dto.js +1 -1
  230. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  231. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  232. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  233. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  234. package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
  235. package/dist/esm/models/get-bid-settlement200-response.js +1 -1
  236. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  237. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  238. package/dist/esm/models/get-bid200-response.d.ts +1 -1
  239. package/dist/esm/models/get-bid200-response.js +1 -1
  240. package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
  241. package/dist/esm/models/get-file-meta200-response.js +1 -1
  242. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  243. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  244. package/dist/esm/models/get-webhook-endpoint200-response.d.ts +1 -1
  245. package/dist/esm/models/get-webhook-endpoint200-response.js +1 -1
  246. package/dist/esm/models/green-product-public.d.ts +1 -1
  247. package/dist/esm/models/green-product-public.js +1 -1
  248. package/dist/esm/models/handover-type-public.d.ts +1 -1
  249. package/dist/esm/models/handover-type-public.js +1 -1
  250. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  251. package/dist/esm/models/health-controller-check200-response.js +1 -1
  252. package/dist/esm/models/health-response-dto.d.ts +1 -1
  253. package/dist/esm/models/health-response-dto.js +1 -1
  254. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  255. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  256. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  257. package/dist/esm/models/introspect-request-dto.js +1 -1
  258. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  259. package/dist/esm/models/introspection-response-dto.js +1 -1
  260. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  261. package/dist/esm/models/invalid-param-dto.js +1 -1
  262. package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
  263. package/dist/esm/models/invoice-completed-response-dto.js +1 -1
  264. package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
  265. package/dist/esm/models/invoice-split-response-dto.js +1 -1
  266. package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
  267. package/dist/esm/models/legal-mandatory-public.js +1 -1
  268. package/dist/esm/models/license-combination-mode.d.ts +1 -1
  269. package/dist/esm/models/license-combination-mode.js +1 -1
  270. package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
  271. package/dist/esm/models/list-bid-results200-response.js +1 -1
  272. package/dist/esm/models/list-bids200-response-meta.d.ts +1 -1
  273. package/dist/esm/models/list-bids200-response-meta.js +1 -1
  274. package/dist/esm/models/list-bids200-response.d.ts +1 -1
  275. package/dist/esm/models/list-bids200-response.js +1 -1
  276. package/dist/esm/models/list-products200-response.d.ts +1 -1
  277. package/dist/esm/models/list-products200-response.js +1 -1
  278. package/dist/esm/models/list-suppliers200-response.d.ts +1 -1
  279. package/dist/esm/models/list-suppliers200-response.js +1 -1
  280. package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +1 -1
  281. package/dist/esm/models/list-webhook-deliveries-response-dto.js +1 -1
  282. package/dist/esm/models/list-webhook-deliveries200-response.d.ts +1 -1
  283. package/dist/esm/models/list-webhook-deliveries200-response.js +1 -1
  284. package/dist/esm/models/list-webhook-endpoints200-response.d.ts +1 -1
  285. package/dist/esm/models/list-webhook-endpoints200-response.js +1 -1
  286. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  287. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  288. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  289. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  290. package/dist/esm/models/nominated-supplier-dto.d.ts +1 -1
  291. package/dist/esm/models/nominated-supplier-dto.js +1 -1
  292. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  293. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  294. package/dist/esm/models/on-bid-award-reverted-request.d.ts +1 -1
  295. package/dist/esm/models/on-bid-award-reverted-request.js +1 -1
  296. package/dist/esm/models/on-bid-awarded-request.d.ts +1 -1
  297. package/dist/esm/models/on-bid-awarded-request.js +1 -1
  298. package/dist/esm/models/on-bid-canceled-request.d.ts +1 -1
  299. package/dist/esm/models/on-bid-canceled-request.js +1 -1
  300. package/dist/esm/models/on-bid-closed-request.d.ts +1 -1
  301. package/dist/esm/models/on-bid-closed-request.js +1 -1
  302. package/dist/esm/models/on-bid-failed-request.d.ts +1 -1
  303. package/dist/esm/models/on-bid-failed-request.js +1 -1
  304. package/dist/esm/models/on-ping-request.d.ts +1 -1
  305. package/dist/esm/models/on-ping-request.js +1 -1
  306. package/dist/esm/models/partner-webhook-delivery-status.d.ts +1 -1
  307. package/dist/esm/models/partner-webhook-delivery-status.js +1 -1
  308. package/dist/esm/models/partner-webhook-endpoint-status.d.ts +1 -1
  309. package/dist/esm/models/partner-webhook-endpoint-status.js +1 -1
  310. package/dist/esm/models/partner-webhook-event-type.d.ts +1 -1
  311. package/dist/esm/models/partner-webhook-event-type.js +1 -1
  312. package/dist/esm/models/payment-method-public.d.ts +1 -1
  313. package/dist/esm/models/payment-method-public.js +1 -1
  314. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  315. package/dist/esm/models/preconditions-dto.js +1 -1
  316. package/dist/esm/models/preliminary-price-region-public.d.ts +1 -1
  317. package/dist/esm/models/preliminary-price-region-public.js +1 -1
  318. package/dist/esm/models/price-score-type-public.d.ts +1 -1
  319. package/dist/esm/models/price-score-type-public.js +1 -1
  320. package/dist/esm/models/pricing-type-public.d.ts +1 -1
  321. package/dist/esm/models/pricing-type-public.js +1 -1
  322. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  323. package/dist/esm/models/problem-details-dto.js +1 -1
  324. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  325. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  326. package/dist/esm/models/product-response-dto.d.ts +1 -1
  327. package/dist/esm/models/product-response-dto.js +1 -1
  328. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  329. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  330. package/dist/esm/models/qualification-review-input-dto.d.ts +1 -1
  331. package/dist/esm/models/qualification-review-input-dto.js +1 -1
  332. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  333. package/dist/esm/models/register-award-request-dto.js +1 -1
  334. package/dist/esm/models/register-award201-response.d.ts +1 -1
  335. package/dist/esm/models/register-award201-response.js +1 -1
  336. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  337. package/dist/esm/models/register-bid201-response.js +1 -1
  338. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  339. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  340. package/dist/esm/models/regulation-type-public.d.ts +1 -1
  341. package/dist/esm/models/regulation-type-public.js +1 -1
  342. package/dist/esm/models/related-bid-relation.d.ts +1 -1
  343. package/dist/esm/models/related-bid-relation.js +1 -1
  344. package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
  345. package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
  346. package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
  347. package/dist/esm/models/request-invoice-split200-response.js +1 -1
  348. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  349. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  350. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  351. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  352. package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
  353. package/dist/esm/models/revert-award-request-dto.js +1 -1
  354. package/dist/esm/models/revert-award200-response.d.ts +1 -1
  355. package/dist/esm/models/revert-award200-response.js +1 -1
  356. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  357. package/dist/esm/models/revoke-request-dto.js +1 -1
  358. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  359. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  360. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  361. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  362. package/dist/esm/models/send-webhook-test-event200-response.d.ts +1 -1
  363. package/dist/esm/models/send-webhook-test-event200-response.js +1 -1
  364. package/dist/esm/models/site-briefing-input-dto.d.ts +1 -1
  365. package/dist/esm/models/site-briefing-input-dto.js +1 -1
  366. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  367. package/dist/esm/models/statement-document-dto.js +1 -1
  368. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  369. package/dist/esm/models/statement-product-dto.js +1 -1
  370. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  371. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  372. package/dist/esm/models/supplier-response-dto.d.ts +1 -1
  373. package/dist/esm/models/supplier-response-dto.js +1 -1
  374. package/dist/esm/models/supplier-tax-type.d.ts +1 -1
  375. package/dist/esm/models/supplier-tax-type.js +1 -1
  376. package/dist/esm/models/taxation-type-public.d.ts +1 -1
  377. package/dist/esm/models/taxation-type-public.js +1 -1
  378. package/dist/esm/models/token-request-dto.d.ts +1 -1
  379. package/dist/esm/models/token-request-dto.js +1 -1
  380. package/dist/esm/models/token-response-dto.d.ts +1 -1
  381. package/dist/esm/models/token-response-dto.js +1 -1
  382. package/dist/esm/models/two-stage-phase-public.d.ts +1 -1
  383. package/dist/esm/models/two-stage-phase-public.js +1 -1
  384. package/dist/esm/models/update-bid-request-dto.d.ts +1 -1
  385. package/dist/esm/models/update-bid-request-dto.js +1 -1
  386. package/dist/esm/models/update-bid200-response.d.ts +1 -1
  387. package/dist/esm/models/update-bid200-response.js +1 -1
  388. package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +1 -1
  389. package/dist/esm/models/update-webhook-endpoint-request-dto.js +1 -1
  390. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  391. package/dist/esm/models/upload-file-request-dto.js +1 -1
  392. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  393. package/dist/esm/models/upload-file201-response.js +1 -1
  394. package/dist/esm/models/upload-url-created-response-dto.d.ts +1 -1
  395. package/dist/esm/models/upload-url-created-response-dto.js +1 -1
  396. package/dist/esm/models/webhook-bid-event-data.d.ts +1 -1
  397. package/dist/esm/models/webhook-bid-event-data.js +1 -1
  398. package/dist/esm/models/webhook-delivery-dto.d.ts +1 -1
  399. package/dist/esm/models/webhook-delivery-dto.js +1 -1
  400. package/dist/esm/models/webhook-endpoint-dto.d.ts +1 -1
  401. package/dist/esm/models/webhook-endpoint-dto.js +1 -1
  402. package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +1 -1
  403. package/dist/esm/models/webhook-endpoint-with-secret-dto.js +1 -1
  404. package/dist/esm/models/webhook-event-envelope.d.ts +1 -1
  405. package/dist/esm/models/webhook-event-envelope.js +1 -1
  406. package/dist/esm/models/webhook-ping-event-data.d.ts +1 -1
  407. package/dist/esm/models/webhook-ping-event-data.js +1 -1
  408. package/dist/esm/models/webhook-test-result-dto.d.ts +1 -1
  409. package/dist/esm/models/webhook-test-result-dto.js +1 -1
  410. package/dist/index.d.ts +1 -1
  411. package/dist/index.js +1 -1
  412. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  413. package/dist/models/acceptance-result-response-dto.js +1 -1
  414. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  415. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  416. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  417. package/dist/models/acknowledge-products-request-dto.js +1 -1
  418. package/dist/models/api-catalog-dto.d.ts +1 -1
  419. package/dist/models/api-catalog-dto.js +1 -1
  420. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  421. package/dist/models/api-catalog-entry-dto.js +1 -1
  422. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  423. package/dist/models/api-catalog-link-dto.js +1 -1
  424. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  425. package/dist/models/authorization-server-metadata-dto.js +1 -1
  426. package/dist/models/avalues-input-dto.d.ts +1 -1
  427. package/dist/models/avalues-input-dto.js +1 -1
  428. package/dist/models/award-method-public.d.ts +1 -1
  429. package/dist/models/award-method-public.js +1 -1
  430. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  431. package/dist/models/award-registered-v2-response-dto.js +1 -1
  432. package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
  433. package/dist/models/award-reverted-v2-response-dto.js +1 -1
  434. package/dist/models/bid-acceptance-dto.d.ts +1 -1
  435. package/dist/models/bid-acceptance-dto.js +1 -1
  436. package/dist/models/bid-attachment-dto.d.ts +1 -1
  437. package/dist/models/bid-attachment-dto.js +1 -1
  438. package/dist/models/bid-attachment-input-dto.d.ts +1 -1
  439. package/dist/models/bid-attachment-input-dto.js +1 -1
  440. package/dist/models/bid-avalues-dto.d.ts +1 -1
  441. package/dist/models/bid-avalues-dto.js +1 -1
  442. package/dist/models/bid-award-method-detail-dto.d.ts +1 -1
  443. package/dist/models/bid-award-method-detail-dto.js +1 -1
  444. package/dist/models/bid-bond-dto.d.ts +1 -1
  445. package/dist/models/bid-bond-dto.js +1 -1
  446. package/dist/models/bid-cancellation-dto.d.ts +1 -1
  447. package/dist/models/bid-cancellation-dto.js +1 -1
  448. package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
  449. package/dist/models/bid-cancelled-response-dto.js +1 -1
  450. package/dist/models/bid-category-public.d.ts +1 -1
  451. package/dist/models/bid-category-public.js +1 -1
  452. package/dist/models/bid-contact-dto.d.ts +1 -1
  453. package/dist/models/bid-contact-dto.js +1 -1
  454. package/dist/models/bid-contacts-dto.d.ts +1 -1
  455. package/dist/models/bid-contacts-dto.js +1 -1
  456. package/dist/models/bid-contract-document-dto.d.ts +1 -1
  457. package/dist/models/bid-contract-document-dto.js +1 -1
  458. package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
  459. package/dist/models/bid-delivery-terms-dto.js +1 -1
  460. package/dist/models/bid-detail-response-dto.d.ts +1 -1
  461. package/dist/models/bid-detail-response-dto.js +1 -1
  462. package/dist/models/bid-document-dto.d.ts +1 -1
  463. package/dist/models/bid-document-dto.js +1 -1
  464. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  465. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  466. package/dist/models/bid-item-dto.d.ts +1 -1
  467. package/dist/models/bid-item-dto.js +1 -1
  468. package/dist/models/bid-license-requirement-dto.d.ts +1 -1
  469. package/dist/models/bid-license-requirement-dto.js +1 -1
  470. package/dist/models/bid-lifecycle-dto.d.ts +1 -1
  471. package/dist/models/bid-lifecycle-dto.js +1 -1
  472. package/dist/models/bid-manager-dto.d.ts +1 -1
  473. package/dist/models/bid-manager-dto.js +1 -1
  474. package/dist/models/bid-must-read-notice-dto.d.ts +1 -1
  475. package/dist/models/bid-must-read-notice-dto.js +1 -1
  476. package/dist/models/bid-payment-terms-dto.d.ts +1 -1
  477. package/dist/models/bid-payment-terms-dto.js +1 -1
  478. package/dist/models/bid-preliminary-price-dto.d.ts +1 -1
  479. package/dist/models/bid-preliminary-price-dto.js +1 -1
  480. package/dist/models/bid-preliminary-price-slot-dto.d.ts +1 -1
  481. package/dist/models/bid-preliminary-price-slot-dto.js +1 -1
  482. package/dist/models/bid-product-dto.d.ts +1 -1
  483. package/dist/models/bid-product-dto.js +1 -1
  484. package/dist/models/bid-public-status.d.ts +1 -1
  485. package/dist/models/bid-public-status.js +1 -1
  486. package/dist/models/bid-qualification-review-dto.d.ts +1 -1
  487. package/dist/models/bid-qualification-review-dto.js +1 -1
  488. package/dist/models/bid-region-dto.d.ts +1 -1
  489. package/dist/models/bid-region-dto.js +1 -1
  490. package/dist/models/bid-region-restriction-dto.d.ts +1 -1
  491. package/dist/models/bid-region-restriction-dto.js +1 -1
  492. package/dist/models/bid-registered-response-dto.d.ts +1 -1
  493. package/dist/models/bid-registered-response-dto.js +1 -1
  494. package/dist/models/bid-related-bid-dto.d.ts +1 -1
  495. package/dist/models/bid-related-bid-dto.js +1 -1
  496. package/dist/models/bid-required-document-dto.d.ts +1 -1
  497. package/dist/models/bid-required-document-dto.js +1 -1
  498. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  499. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  500. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  501. package/dist/models/bid-result-participant-dto.js +1 -1
  502. package/dist/models/bid-results-response-dto.d.ts +1 -1
  503. package/dist/models/bid-results-response-dto.js +1 -1
  504. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  505. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  506. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  507. package/dist/models/bid-settlement-participant-dto.js +1 -1
  508. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  509. package/dist/models/bid-settlement-response-dto.js +1 -1
  510. package/dist/models/bid-site-briefing-dto.d.ts +1 -1
  511. package/dist/models/bid-site-briefing-dto.js +1 -1
  512. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  513. package/dist/models/bid-statement-response-dto.js +1 -1
  514. package/dist/models/bid-summary-dto.d.ts +1 -1
  515. package/dist/models/bid-summary-dto.js +1 -1
  516. package/dist/models/bid-type-public.d.ts +1 -1
  517. package/dist/models/bid-type-public.js +1 -1
  518. package/dist/models/bid-updated-response-dto.d.ts +1 -1
  519. package/dist/models/bid-updated-response-dto.js +1 -1
  520. package/dist/models/bidding-style-public.d.ts +1 -1
  521. package/dist/models/bidding-style-public.js +1 -1
  522. package/dist/models/cancel-bid-request-dto.d.ts +1 -1
  523. package/dist/models/cancel-bid-request-dto.js +1 -1
  524. package/dist/models/cancel-bid200-response.d.ts +1 -1
  525. package/dist/models/cancel-bid200-response.js +1 -1
  526. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  527. package/dist/models/card-payment-request-response-dto.js +1 -1
  528. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  529. package/dist/models/complete-acceptance-request-dto.js +1 -1
  530. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  531. package/dist/models/complete-acceptance200-response.js +1 -1
  532. package/dist/models/complete-invoice200-response.d.ts +1 -1
  533. package/dist/models/complete-invoice200-response.js +1 -1
  534. package/dist/models/complete-upload-request-dto.d.ts +1 -1
  535. package/dist/models/complete-upload-request-dto.js +1 -1
  536. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  537. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  538. package/dist/models/create-bid-request-dto.d.ts +1 -1
  539. package/dist/models/create-bid-request-dto.js +1 -1
  540. package/dist/models/create-card-payment-dto.d.ts +1 -1
  541. package/dist/models/create-card-payment-dto.js +1 -1
  542. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  543. package/dist/models/create-card-payment-request-dto.js +1 -1
  544. package/dist/models/create-card-payment200-response.d.ts +1 -1
  545. package/dist/models/create-card-payment200-response.js +1 -1
  546. package/dist/models/create-embed-launch201-response.d.ts +1 -1
  547. package/dist/models/create-embed-launch201-response.js +1 -1
  548. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  549. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  550. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  551. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  552. package/dist/models/create-file-upload-url201-response.d.ts +1 -1
  553. package/dist/models/create-file-upload-url201-response.js +1 -1
  554. package/dist/models/create-upload-url-request-dto.d.ts +1 -1
  555. package/dist/models/create-upload-url-request-dto.js +1 -1
  556. package/dist/models/create-webhook-endpoint-request-dto.d.ts +1 -1
  557. package/dist/models/create-webhook-endpoint-request-dto.js +1 -1
  558. package/dist/models/create-webhook-endpoint201-response.d.ts +1 -1
  559. package/dist/models/create-webhook-endpoint201-response.js +1 -1
  560. package/dist/models/delivery-date-type-public.d.ts +1 -1
  561. package/dist/models/delivery-date-type-public.js +1 -1
  562. package/dist/models/delivery-method-public.d.ts +1 -1
  563. package/dist/models/delivery-method-public.js +1 -1
  564. package/dist/models/embed-bid-prefill-dto.d.ts +1 -1
  565. package/dist/models/embed-bid-prefill-dto.js +1 -1
  566. package/dist/models/embed-bid-prefill-item-dto.d.ts +1 -1
  567. package/dist/models/embed-bid-prefill-item-dto.js +1 -1
  568. package/dist/models/embed-bid-prefill-manager-dto.d.ts +1 -1
  569. package/dist/models/embed-bid-prefill-manager-dto.js +1 -1
  570. package/dist/models/embed-launch-request-dto.d.ts +1 -1
  571. package/dist/models/embed-launch-request-dto.js +1 -1
  572. package/dist/models/embed-launch-response-dto.d.ts +1 -1
  573. package/dist/models/embed-launch-response-dto.js +1 -1
  574. package/dist/models/excellent-procurement-public.d.ts +1 -1
  575. package/dist/models/excellent-procurement-public.js +1 -1
  576. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  577. package/dist/models/external-contract-document-item-dto.js +1 -1
  578. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  579. package/dist/models/external-contract-documents-response-dto.js +1 -1
  580. package/dist/models/external-contract-item-dto.d.ts +1 -1
  581. package/dist/models/external-contract-item-dto.js +1 -1
  582. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  583. package/dist/models/external-contract-snapshot-dto.js +1 -1
  584. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  585. package/dist/models/external-document-inputs-dto.js +1 -1
  586. package/dist/models/file-meta-response-dto.d.ts +1 -1
  587. package/dist/models/file-meta-response-dto.js +1 -1
  588. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  589. package/dist/models/file-uploaded-response-dto.js +1 -1
  590. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  591. package/dist/models/generated-external-contract-document-dto.js +1 -1
  592. package/dist/models/get-bid-settlement200-response.d.ts +1 -1
  593. package/dist/models/get-bid-settlement200-response.js +1 -1
  594. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  595. package/dist/models/get-bid-statement200-response.js +1 -1
  596. package/dist/models/get-bid200-response.d.ts +1 -1
  597. package/dist/models/get-bid200-response.js +1 -1
  598. package/dist/models/get-file-meta200-response.d.ts +1 -1
  599. package/dist/models/get-file-meta200-response.js +1 -1
  600. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  601. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  602. package/dist/models/get-webhook-endpoint200-response.d.ts +1 -1
  603. package/dist/models/get-webhook-endpoint200-response.js +1 -1
  604. package/dist/models/green-product-public.d.ts +1 -1
  605. package/dist/models/green-product-public.js +1 -1
  606. package/dist/models/handover-type-public.d.ts +1 -1
  607. package/dist/models/handover-type-public.js +1 -1
  608. package/dist/models/health-controller-check200-response.d.ts +1 -1
  609. package/dist/models/health-controller-check200-response.js +1 -1
  610. package/dist/models/health-response-dto.d.ts +1 -1
  611. package/dist/models/health-response-dto.js +1 -1
  612. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  613. package/dist/models/hierarchical-region-dto.js +1 -1
  614. package/dist/models/introspect-request-dto.d.ts +1 -1
  615. package/dist/models/introspect-request-dto.js +1 -1
  616. package/dist/models/introspection-response-dto.d.ts +1 -1
  617. package/dist/models/introspection-response-dto.js +1 -1
  618. package/dist/models/invalid-param-dto.d.ts +1 -1
  619. package/dist/models/invalid-param-dto.js +1 -1
  620. package/dist/models/invoice-completed-response-dto.d.ts +1 -1
  621. package/dist/models/invoice-completed-response-dto.js +1 -1
  622. package/dist/models/invoice-split-response-dto.d.ts +1 -1
  623. package/dist/models/invoice-split-response-dto.js +1 -1
  624. package/dist/models/legal-mandatory-public.d.ts +1 -1
  625. package/dist/models/legal-mandatory-public.js +1 -1
  626. package/dist/models/license-combination-mode.d.ts +1 -1
  627. package/dist/models/license-combination-mode.js +1 -1
  628. package/dist/models/list-bid-results200-response.d.ts +1 -1
  629. package/dist/models/list-bid-results200-response.js +1 -1
  630. package/dist/models/list-bids200-response-meta.d.ts +1 -1
  631. package/dist/models/list-bids200-response-meta.js +1 -1
  632. package/dist/models/list-bids200-response.d.ts +1 -1
  633. package/dist/models/list-bids200-response.js +1 -1
  634. package/dist/models/list-products200-response.d.ts +1 -1
  635. package/dist/models/list-products200-response.js +1 -1
  636. package/dist/models/list-suppliers200-response.d.ts +1 -1
  637. package/dist/models/list-suppliers200-response.js +1 -1
  638. package/dist/models/list-webhook-deliveries-response-dto.d.ts +1 -1
  639. package/dist/models/list-webhook-deliveries-response-dto.js +1 -1
  640. package/dist/models/list-webhook-deliveries200-response.d.ts +1 -1
  641. package/dist/models/list-webhook-deliveries200-response.js +1 -1
  642. package/dist/models/list-webhook-endpoints200-response.d.ts +1 -1
  643. package/dist/models/list-webhook-endpoints200-response.js +1 -1
  644. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  645. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  646. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  647. package/dist/models/mark-bid-failed201-response.js +1 -1
  648. package/dist/models/nominated-supplier-dto.d.ts +1 -1
  649. package/dist/models/nominated-supplier-dto.js +1 -1
  650. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  651. package/dist/models/oauth-error-response-dto.js +1 -1
  652. package/dist/models/on-bid-award-reverted-request.d.ts +1 -1
  653. package/dist/models/on-bid-award-reverted-request.js +1 -1
  654. package/dist/models/on-bid-awarded-request.d.ts +1 -1
  655. package/dist/models/on-bid-awarded-request.js +1 -1
  656. package/dist/models/on-bid-canceled-request.d.ts +1 -1
  657. package/dist/models/on-bid-canceled-request.js +1 -1
  658. package/dist/models/on-bid-closed-request.d.ts +1 -1
  659. package/dist/models/on-bid-closed-request.js +1 -1
  660. package/dist/models/on-bid-failed-request.d.ts +1 -1
  661. package/dist/models/on-bid-failed-request.js +1 -1
  662. package/dist/models/on-ping-request.d.ts +1 -1
  663. package/dist/models/on-ping-request.js +1 -1
  664. package/dist/models/partner-webhook-delivery-status.d.ts +1 -1
  665. package/dist/models/partner-webhook-delivery-status.js +1 -1
  666. package/dist/models/partner-webhook-endpoint-status.d.ts +1 -1
  667. package/dist/models/partner-webhook-endpoint-status.js +1 -1
  668. package/dist/models/partner-webhook-event-type.d.ts +1 -1
  669. package/dist/models/partner-webhook-event-type.js +1 -1
  670. package/dist/models/payment-method-public.d.ts +1 -1
  671. package/dist/models/payment-method-public.js +1 -1
  672. package/dist/models/preconditions-dto.d.ts +1 -1
  673. package/dist/models/preconditions-dto.js +1 -1
  674. package/dist/models/preliminary-price-region-public.d.ts +1 -1
  675. package/dist/models/preliminary-price-region-public.js +1 -1
  676. package/dist/models/price-score-type-public.d.ts +1 -1
  677. package/dist/models/price-score-type-public.js +1 -1
  678. package/dist/models/pricing-type-public.d.ts +1 -1
  679. package/dist/models/pricing-type-public.js +1 -1
  680. package/dist/models/problem-details-dto.d.ts +1 -1
  681. package/dist/models/problem-details-dto.js +1 -1
  682. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  683. package/dist/models/product-receipt-response-dto.js +1 -1
  684. package/dist/models/product-response-dto.d.ts +1 -1
  685. package/dist/models/product-response-dto.js +1 -1
  686. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  687. package/dist/models/protected-resource-metadata-dto.js +1 -1
  688. package/dist/models/qualification-review-input-dto.d.ts +1 -1
  689. package/dist/models/qualification-review-input-dto.js +1 -1
  690. package/dist/models/register-award-request-dto.d.ts +1 -1
  691. package/dist/models/register-award-request-dto.js +1 -1
  692. package/dist/models/register-award201-response.d.ts +1 -1
  693. package/dist/models/register-award201-response.js +1 -1
  694. package/dist/models/register-bid201-response.d.ts +1 -1
  695. package/dist/models/register-bid201-response.js +1 -1
  696. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  697. package/dist/models/register-semo-contract-request-dto.js +1 -1
  698. package/dist/models/regulation-type-public.d.ts +1 -1
  699. package/dist/models/regulation-type-public.js +1 -1
  700. package/dist/models/related-bid-relation.d.ts +1 -1
  701. package/dist/models/related-bid-relation.js +1 -1
  702. package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
  703. package/dist/models/request-invoice-split-request-dto.js +1 -1
  704. package/dist/models/request-invoice-split200-response.d.ts +1 -1
  705. package/dist/models/request-invoice-split200-response.js +1 -1
  706. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  707. package/dist/models/retiree-roster-input-dto.js +1 -1
  708. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  709. package/dist/models/retiree-roster-row-dto.js +1 -1
  710. package/dist/models/revert-award-request-dto.d.ts +1 -1
  711. package/dist/models/revert-award-request-dto.js +1 -1
  712. package/dist/models/revert-award200-response.d.ts +1 -1
  713. package/dist/models/revert-award200-response.js +1 -1
  714. package/dist/models/revoke-request-dto.d.ts +1 -1
  715. package/dist/models/revoke-request-dto.js +1 -1
  716. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  717. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  718. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  719. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  720. package/dist/models/send-webhook-test-event200-response.d.ts +1 -1
  721. package/dist/models/send-webhook-test-event200-response.js +1 -1
  722. package/dist/models/site-briefing-input-dto.d.ts +1 -1
  723. package/dist/models/site-briefing-input-dto.js +1 -1
  724. package/dist/models/statement-document-dto.d.ts +1 -1
  725. package/dist/models/statement-document-dto.js +1 -1
  726. package/dist/models/statement-product-dto.d.ts +1 -1
  727. package/dist/models/statement-product-dto.js +1 -1
  728. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  729. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  730. package/dist/models/supplier-response-dto.d.ts +1 -1
  731. package/dist/models/supplier-response-dto.js +1 -1
  732. package/dist/models/supplier-tax-type.d.ts +1 -1
  733. package/dist/models/supplier-tax-type.js +1 -1
  734. package/dist/models/taxation-type-public.d.ts +1 -1
  735. package/dist/models/taxation-type-public.js +1 -1
  736. package/dist/models/token-request-dto.d.ts +1 -1
  737. package/dist/models/token-request-dto.js +1 -1
  738. package/dist/models/token-response-dto.d.ts +1 -1
  739. package/dist/models/token-response-dto.js +1 -1
  740. package/dist/models/two-stage-phase-public.d.ts +1 -1
  741. package/dist/models/two-stage-phase-public.js +1 -1
  742. package/dist/models/update-bid-request-dto.d.ts +1 -1
  743. package/dist/models/update-bid-request-dto.js +1 -1
  744. package/dist/models/update-bid200-response.d.ts +1 -1
  745. package/dist/models/update-bid200-response.js +1 -1
  746. package/dist/models/update-webhook-endpoint-request-dto.d.ts +1 -1
  747. package/dist/models/update-webhook-endpoint-request-dto.js +1 -1
  748. package/dist/models/upload-file-request-dto.d.ts +1 -1
  749. package/dist/models/upload-file-request-dto.js +1 -1
  750. package/dist/models/upload-file201-response.d.ts +1 -1
  751. package/dist/models/upload-file201-response.js +1 -1
  752. package/dist/models/upload-url-created-response-dto.d.ts +1 -1
  753. package/dist/models/upload-url-created-response-dto.js +1 -1
  754. package/dist/models/webhook-bid-event-data.d.ts +1 -1
  755. package/dist/models/webhook-bid-event-data.js +1 -1
  756. package/dist/models/webhook-delivery-dto.d.ts +1 -1
  757. package/dist/models/webhook-delivery-dto.js +1 -1
  758. package/dist/models/webhook-endpoint-dto.d.ts +1 -1
  759. package/dist/models/webhook-endpoint-dto.js +1 -1
  760. package/dist/models/webhook-endpoint-with-secret-dto.d.ts +1 -1
  761. package/dist/models/webhook-endpoint-with-secret-dto.js +1 -1
  762. package/dist/models/webhook-event-envelope.d.ts +1 -1
  763. package/dist/models/webhook-event-envelope.js +1 -1
  764. package/dist/models/webhook-ping-event-data.d.ts +1 -1
  765. package/dist/models/webhook-ping-event-data.js +1 -1
  766. package/dist/models/webhook-test-result-dto.d.ts +1 -1
  767. package/dist/models/webhook-test-result-dto.js +1 -1
  768. package/docs/EmbedApi.md +1 -1
  769. package/docs/OauthApi.md +1 -1
  770. package/docs/PartnerApiApi.md +5 -5
  771. package/index.ts +1 -1
  772. package/models/acceptance-result-response-dto.ts +1 -1
  773. package/models/acknowledge-product-receipt200-response.ts +1 -1
  774. package/models/acknowledge-products-request-dto.ts +1 -1
  775. package/models/api-catalog-dto.ts +1 -1
  776. package/models/api-catalog-entry-dto.ts +1 -1
  777. package/models/api-catalog-link-dto.ts +1 -1
  778. package/models/authorization-server-metadata-dto.ts +1 -1
  779. package/models/avalues-input-dto.ts +1 -1
  780. package/models/award-method-public.ts +1 -1
  781. package/models/award-registered-v2-response-dto.ts +1 -1
  782. package/models/award-reverted-v2-response-dto.ts +1 -1
  783. package/models/bid-acceptance-dto.ts +1 -1
  784. package/models/bid-attachment-dto.ts +1 -1
  785. package/models/bid-attachment-input-dto.ts +1 -1
  786. package/models/bid-avalues-dto.ts +1 -1
  787. package/models/bid-award-method-detail-dto.ts +1 -1
  788. package/models/bid-bond-dto.ts +1 -1
  789. package/models/bid-cancellation-dto.ts +1 -1
  790. package/models/bid-cancelled-response-dto.ts +1 -1
  791. package/models/bid-category-public.ts +1 -1
  792. package/models/bid-contact-dto.ts +1 -1
  793. package/models/bid-contacts-dto.ts +1 -1
  794. package/models/bid-contract-document-dto.ts +1 -1
  795. package/models/bid-delivery-terms-dto.ts +1 -1
  796. package/models/bid-detail-response-dto.ts +1 -1
  797. package/models/bid-document-dto.ts +1 -1
  798. package/models/bid-failed-v2-response-dto.ts +1 -1
  799. package/models/bid-item-dto.ts +1 -1
  800. package/models/bid-license-requirement-dto.ts +1 -1
  801. package/models/bid-lifecycle-dto.ts +1 -1
  802. package/models/bid-manager-dto.ts +1 -1
  803. package/models/bid-must-read-notice-dto.ts +1 -1
  804. package/models/bid-payment-terms-dto.ts +1 -1
  805. package/models/bid-preliminary-price-dto.ts +1 -1
  806. package/models/bid-preliminary-price-slot-dto.ts +1 -1
  807. package/models/bid-product-dto.ts +1 -1
  808. package/models/bid-public-status.ts +1 -1
  809. package/models/bid-qualification-review-dto.ts +1 -1
  810. package/models/bid-region-dto.ts +1 -1
  811. package/models/bid-region-restriction-dto.ts +1 -1
  812. package/models/bid-registered-response-dto.ts +1 -1
  813. package/models/bid-related-bid-dto.ts +1 -1
  814. package/models/bid-required-document-dto.ts +1 -1
  815. package/models/bid-result-participant-attachment-dto.ts +1 -1
  816. package/models/bid-result-participant-dto.ts +1 -1
  817. package/models/bid-results-response-dto.ts +1 -1
  818. package/models/bid-settlement-line-item-dto.ts +1 -1
  819. package/models/bid-settlement-participant-dto.ts +1 -1
  820. package/models/bid-settlement-response-dto.ts +1 -1
  821. package/models/bid-site-briefing-dto.ts +1 -1
  822. package/models/bid-statement-response-dto.ts +1 -1
  823. package/models/bid-summary-dto.ts +1 -1
  824. package/models/bid-type-public.ts +1 -1
  825. package/models/bid-updated-response-dto.ts +1 -1
  826. package/models/bidding-style-public.ts +1 -1
  827. package/models/cancel-bid-request-dto.ts +1 -1
  828. package/models/cancel-bid200-response.ts +1 -1
  829. package/models/card-payment-request-response-dto.ts +1 -1
  830. package/models/complete-acceptance-request-dto.ts +1 -1
  831. package/models/complete-acceptance200-response.ts +1 -1
  832. package/models/complete-invoice200-response.ts +1 -1
  833. package/models/complete-upload-request-dto.ts +1 -1
  834. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  835. package/models/create-bid-request-dto.ts +1 -1
  836. package/models/create-card-payment-dto.ts +1 -1
  837. package/models/create-card-payment-request-dto.ts +1 -1
  838. package/models/create-card-payment200-response.ts +1 -1
  839. package/models/create-embed-launch201-response.ts +1 -1
  840. package/models/create-external-contract-documents-request-dto.ts +1 -1
  841. package/models/create-external-contract-documents-response-dto.ts +1 -1
  842. package/models/create-file-upload-url201-response.ts +1 -1
  843. package/models/create-upload-url-request-dto.ts +1 -1
  844. package/models/create-webhook-endpoint-request-dto.ts +1 -1
  845. package/models/create-webhook-endpoint201-response.ts +1 -1
  846. package/models/delivery-date-type-public.ts +1 -1
  847. package/models/delivery-method-public.ts +1 -1
  848. package/models/embed-bid-prefill-dto.ts +1 -1
  849. package/models/embed-bid-prefill-item-dto.ts +1 -1
  850. package/models/embed-bid-prefill-manager-dto.ts +1 -1
  851. package/models/embed-launch-request-dto.ts +1 -1
  852. package/models/embed-launch-response-dto.ts +1 -1
  853. package/models/excellent-procurement-public.ts +1 -1
  854. package/models/external-contract-document-item-dto.ts +1 -1
  855. package/models/external-contract-documents-response-dto.ts +1 -1
  856. package/models/external-contract-item-dto.ts +1 -1
  857. package/models/external-contract-snapshot-dto.ts +1 -1
  858. package/models/external-document-inputs-dto.ts +1 -1
  859. package/models/file-meta-response-dto.ts +1 -1
  860. package/models/file-uploaded-response-dto.ts +1 -1
  861. package/models/generated-external-contract-document-dto.ts +1 -1
  862. package/models/get-bid-settlement200-response.ts +1 -1
  863. package/models/get-bid-statement200-response.ts +1 -1
  864. package/models/get-bid200-response.ts +1 -1
  865. package/models/get-file-meta200-response.ts +1 -1
  866. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  867. package/models/get-webhook-endpoint200-response.ts +1 -1
  868. package/models/green-product-public.ts +1 -1
  869. package/models/handover-type-public.ts +1 -1
  870. package/models/health-controller-check200-response.ts +1 -1
  871. package/models/health-response-dto.ts +1 -1
  872. package/models/hierarchical-region-dto.ts +1 -1
  873. package/models/introspect-request-dto.ts +1 -1
  874. package/models/introspection-response-dto.ts +1 -1
  875. package/models/invalid-param-dto.ts +1 -1
  876. package/models/invoice-completed-response-dto.ts +1 -1
  877. package/models/invoice-split-response-dto.ts +1 -1
  878. package/models/legal-mandatory-public.ts +1 -1
  879. package/models/license-combination-mode.ts +1 -1
  880. package/models/list-bid-results200-response.ts +1 -1
  881. package/models/list-bids200-response-meta.ts +1 -1
  882. package/models/list-bids200-response.ts +1 -1
  883. package/models/list-products200-response.ts +1 -1
  884. package/models/list-suppliers200-response.ts +1 -1
  885. package/models/list-webhook-deliveries-response-dto.ts +1 -1
  886. package/models/list-webhook-deliveries200-response.ts +1 -1
  887. package/models/list-webhook-endpoints200-response.ts +1 -1
  888. package/models/mark-bid-failed-request-dto.ts +1 -1
  889. package/models/mark-bid-failed201-response.ts +1 -1
  890. package/models/nominated-supplier-dto.ts +1 -1
  891. package/models/oauth-error-response-dto.ts +1 -1
  892. package/models/on-bid-award-reverted-request.ts +1 -1
  893. package/models/on-bid-awarded-request.ts +1 -1
  894. package/models/on-bid-canceled-request.ts +1 -1
  895. package/models/on-bid-closed-request.ts +1 -1
  896. package/models/on-bid-failed-request.ts +1 -1
  897. package/models/on-ping-request.ts +1 -1
  898. package/models/partner-webhook-delivery-status.ts +1 -1
  899. package/models/partner-webhook-endpoint-status.ts +1 -1
  900. package/models/partner-webhook-event-type.ts +1 -1
  901. package/models/payment-method-public.ts +1 -1
  902. package/models/preconditions-dto.ts +1 -1
  903. package/models/preliminary-price-region-public.ts +1 -1
  904. package/models/price-score-type-public.ts +1 -1
  905. package/models/pricing-type-public.ts +1 -1
  906. package/models/problem-details-dto.ts +1 -1
  907. package/models/product-receipt-response-dto.ts +1 -1
  908. package/models/product-response-dto.ts +1 -1
  909. package/models/protected-resource-metadata-dto.ts +1 -1
  910. package/models/qualification-review-input-dto.ts +1 -1
  911. package/models/register-award-request-dto.ts +1 -1
  912. package/models/register-award201-response.ts +1 -1
  913. package/models/register-bid201-response.ts +1 -1
  914. package/models/register-semo-contract-request-dto.ts +1 -1
  915. package/models/regulation-type-public.ts +1 -1
  916. package/models/related-bid-relation.ts +1 -1
  917. package/models/request-invoice-split-request-dto.ts +1 -1
  918. package/models/request-invoice-split200-response.ts +1 -1
  919. package/models/retiree-roster-input-dto.ts +1 -1
  920. package/models/retiree-roster-row-dto.ts +1 -1
  921. package/models/revert-award-request-dto.ts +1 -1
  922. package/models/revert-award200-response.ts +1 -1
  923. package/models/revoke-request-dto.ts +1 -1
  924. package/models/semo-contract-registered-response-dto.ts +1 -1
  925. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  926. package/models/send-webhook-test-event200-response.ts +1 -1
  927. package/models/site-briefing-input-dto.ts +1 -1
  928. package/models/statement-document-dto.ts +1 -1
  929. package/models/statement-product-dto.ts +1 -1
  930. package/models/supplier-card-payable-response-dto.ts +1 -1
  931. package/models/supplier-response-dto.ts +1 -1
  932. package/models/supplier-tax-type.ts +1 -1
  933. package/models/taxation-type-public.ts +1 -1
  934. package/models/token-request-dto.ts +1 -1
  935. package/models/token-response-dto.ts +1 -1
  936. package/models/two-stage-phase-public.ts +1 -1
  937. package/models/update-bid-request-dto.ts +1 -1
  938. package/models/update-bid200-response.ts +1 -1
  939. package/models/update-webhook-endpoint-request-dto.ts +1 -1
  940. package/models/upload-file-request-dto.ts +1 -1
  941. package/models/upload-file201-response.ts +1 -1
  942. package/models/upload-url-created-response-dto.ts +1 -1
  943. package/models/webhook-bid-event-data.ts +1 -1
  944. package/models/webhook-delivery-dto.ts +1 -1
  945. package/models/webhook-endpoint-dto.ts +1 -1
  946. package/models/webhook-endpoint-with-secret-dto.ts +1 -1
  947. package/models/webhook-event-envelope.ts +1 -1
  948. package/models/webhook-ping-event-data.ts +1 -1
  949. package/models/webhook-test-result-dto.ts +1 -1
  950. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
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.1.3
7
+ * The version of the OpenAPI document: 45.2.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).
@@ -203,7 +203,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
203
203
  };
204
204
  }),
205
205
  /**
206
- * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자) 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
206
+ * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **카드 승인이 업체의 가맹점으로 나갑니다.** 대금은 씨마켓을 거치지 않고 업체로 직행합니다. 발행하면 자동 승인되어 바로 결제할 수 있고, 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. - 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다. `GET /v2/suppliers/{memberId}/card-payable` 미리 확인하세요. 미가입 업체로 발행하면 400입니다. - 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. - 멱등키는 `externalRef`(파트너 측 거래 식별자)입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
207
207
  * @summary 결제창 발행
208
208
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
209
209
  * @param {CreateCardPaymentDto} createCardPaymentDto
@@ -243,7 +243,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
243
243
  };
244
244
  }),
245
245
  /**
246
- * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서) 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서) 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208) 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
246
+ * 공고 없이 성사된 거래의 계약서류를 생성합니다. 계약이 체결된 직후에 부릅니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다. 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킵니다. - 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. - `name` 의 출처는 서류마다 다릅니다. 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 공급사가 등록한 원본 파일명입니다 — 채팅 첨부 라벨로 그대로 쓰세요. - **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면 400 이고 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). - 응답의 `fileUrl` 은 만료되지 않습니다. 채팅 메시지 등에 그대로 저장해 두어도 됩니다. - 대행 범위 밖 회원이면 403 입니다. 조회와 같은 축입니다. ### 서류별 추가 입력 `135`(수의계약체결제한여부확인서) `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수입니다. `documentInputs.contractRestrictionConfirm.answers` 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담습니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation` 으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명에 있습니다. `164`(퇴직자영입현황확인서) `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). 퇴직자가 없으면 `rows` 를 **빈 배열로** 보내세요 — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). 승낙사항(`4`·`184`·`185`·`186`·`189`·`197`·`208`) `contract.subject`(계약건명)가 필수입니다. 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다. 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
247
247
  * @summary 계약서류 생성
248
248
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
249
249
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
@@ -552,7 +552,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
552
552
  };
553
553
  }),
554
554
  /**
555
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
555
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey` 아는 경우, 예컨대 업로드 직후 크기를 확인할 씁니다. - 파일은 응답의 `downloadUrl` 로 받습니다. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. - MIME 타입은 싣지 않습니다. 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 그대로 들어 있습니다. - **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 영문 대소문자·숫자 32자이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. 스코프 `files:read`.
556
556
  * @summary 파일 정보 조회
557
557
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
558
558
  * @param {string} [ifNoneMatch] 직전 응답의 &#x60;ETag&#x60; 값. 내용이 그대로면 본문 없이 &#x60;304&#x60;로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
@@ -818,7 +818,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
818
818
  };
819
819
  }),
820
820
  /**
821
- * 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래예: 채팅 기반 견적 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. **조회 가능한 회원 범위:** 이 API 키에 설정된 대행 범위(소속 그룹 전원 또는 지정 회원 목록) 안의 회원만 조회할 수 있습니다. 범위 밖이면 403 입니다. 대행 범위는 키 설정이며 스코프와는 별개 축입니다. **필수 스코프:** `contracts:read` --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
821
+ * 발주기관 회원과 거래유형으로 거래에 필요한 계약서류 목록을 조회합니다. 스코프 `contracts:read`. 공고(입찰)를 거치지 않는 거래에서 씁니다 — 채팅 기반 견적 같은 자리에서, 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때입니다. 목록은 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. 대행 범위 밖 회원을 조회하면 403 입니다(대행 범위는 키 설정이며 스코프와 별개 축입니다). 응답 값의 뜻은 이렇습니다. - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 미리 체크된 상태로 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
822
822
  * @summary 거래에 필요한 계약서류 목록 조회
823
823
  * @param {string} buyerId 발주기관 회원 ID(c-market memberId).
824
824
  * @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
@@ -1114,7 +1114,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
1114
1114
  };
1115
1115
  }),
1116
1116
  /**
1117
- * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1117
+ * 외부에서 맺어진 계약 1건을 씨마켓의 세금계산서 발행 대상으로 등록합니다. 스코프 `contracts:write`. 등록하면 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 공급자는 공급기업, 공급받는자는 발주기관입니다. 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. - **`supplyPrice` 는 부가세를 뺀 과세 공급가액입니다.** 결제창 API 가 부가세 포함가를 받는 것과 다릅니다. 과세·면세 공급가액이 모두 0 이면 400 입니다. - 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. - 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. - 멱등키는 `externalContractId` 입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
1118
1118
  * @summary 계약 발행대상 등록
1119
1119
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1120
1120
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
@@ -1539,7 +1539,7 @@ export const PartnerApiApiFp = function (configuration) {
1539
1539
  });
1540
1540
  },
1541
1541
  /**
1542
- * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자) 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1542
+ * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **카드 승인이 업체의 가맹점으로 나갑니다.** 대금은 씨마켓을 거치지 않고 업체로 직행합니다. 발행하면 자동 승인되어 바로 결제할 수 있고, 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. - 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다. `GET /v2/suppliers/{memberId}/card-payable` 미리 확인하세요. 미가입 업체로 발행하면 400입니다. - 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. - 멱등키는 `externalRef`(파트너 측 거래 식별자)입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
1543
1543
  * @summary 결제창 발행
1544
1544
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1545
1545
  * @param {CreateCardPaymentDto} createCardPaymentDto
@@ -1556,7 +1556,7 @@ export const PartnerApiApiFp = function (configuration) {
1556
1556
  });
1557
1557
  },
1558
1558
  /**
1559
- * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서) 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서) 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208) 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1559
+ * 공고 없이 성사된 거래의 계약서류를 생성합니다. 계약이 체결된 직후에 부릅니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다. 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킵니다. - 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. - `name` 의 출처는 서류마다 다릅니다. 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 공급사가 등록한 원본 파일명입니다 — 채팅 첨부 라벨로 그대로 쓰세요. - **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면 400 이고 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). - 응답의 `fileUrl` 은 만료되지 않습니다. 채팅 메시지 등에 그대로 저장해 두어도 됩니다. - 대행 범위 밖 회원이면 403 입니다. 조회와 같은 축입니다. ### 서류별 추가 입력 `135`(수의계약체결제한여부확인서) `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수입니다. `documentInputs.contractRestrictionConfirm.answers` 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담습니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation` 으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명에 있습니다. `164`(퇴직자영입현황확인서) `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). 퇴직자가 없으면 `rows` 를 **빈 배열로** 보내세요 — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). 승낙사항(`4`·`184`·`185`·`186`·`189`·`197`·`208`) `contract.subject`(계약건명)가 필수입니다. 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다. 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1560
1560
  * @summary 계약서류 생성
1561
1561
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1562
1562
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
@@ -1693,7 +1693,7 @@ export const PartnerApiApiFp = function (configuration) {
1693
1693
  });
1694
1694
  },
1695
1695
  /**
1696
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1696
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey` 아는 경우, 예컨대 업로드 직후 크기를 확인할 씁니다. - 파일은 응답의 `downloadUrl` 로 받습니다. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. - MIME 타입은 싣지 않습니다. 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 그대로 들어 있습니다. - **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 영문 대소문자·숫자 32자이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. 스코프 `files:read`.
1697
1697
  * @summary 파일 정보 조회
1698
1698
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1699
1699
  * @param {string} [ifNoneMatch] 직전 응답의 &#x60;ETag&#x60; 값. 내용이 그대로면 본문 없이 &#x60;304&#x60;로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
@@ -1814,7 +1814,7 @@ export const PartnerApiApiFp = function (configuration) {
1814
1814
  });
1815
1815
  },
1816
1816
  /**
1817
- * 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래예: 채팅 기반 견적 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. **조회 가능한 회원 범위:** 이 API 키에 설정된 대행 범위(소속 그룹 전원 또는 지정 회원 목록) 안의 회원만 조회할 수 있습니다. 범위 밖이면 403 입니다. 대행 범위는 키 설정이며 스코프와는 별개 축입니다. **필수 스코프:** `contracts:read` --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1817
+ * 발주기관 회원과 거래유형으로 거래에 필요한 계약서류 목록을 조회합니다. 스코프 `contracts:read`. 공고(입찰)를 거치지 않는 거래에서 씁니다 — 채팅 기반 견적 같은 자리에서, 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때입니다. 목록은 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. 대행 범위 밖 회원을 조회하면 403 입니다(대행 범위는 키 설정이며 스코프와 별개 축입니다). 응답 값의 뜻은 이렇습니다. - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 미리 체크된 상태로 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1818
1818
  * @summary 거래에 필요한 계약서류 목록 조회
1819
1819
  * @param {string} buyerId 발주기관 회원 ID(c-market memberId).
1820
1820
  * @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
@@ -1939,7 +1939,7 @@ export const PartnerApiApiFp = function (configuration) {
1939
1939
  });
1940
1940
  },
1941
1941
  /**
1942
- * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1942
+ * 외부에서 맺어진 계약 1건을 씨마켓의 세금계산서 발행 대상으로 등록합니다. 스코프 `contracts:write`. 등록하면 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 공급자는 공급기업, 공급받는자는 발주기관입니다. 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. - **`supplyPrice` 는 부가세를 뺀 과세 공급가액입니다.** 결제창 API 가 부가세 포함가를 받는 것과 다릅니다. 과세·면세 공급가액이 모두 0 이면 400 입니다. - 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. - 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. - 멱등키는 `externalContractId` 입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
1943
1943
  * @summary 계약 발행대상 등록
1944
1944
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1945
1945
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
@@ -2136,7 +2136,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
2136
2136
  return localVarFp.completeInvoice(bidRef, idempotencyKey, options).then((request) => request(axios, basePath));
2137
2137
  },
2138
2138
  /**
2139
- * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자) 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
2139
+ * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **카드 승인이 업체의 가맹점으로 나갑니다.** 대금은 씨마켓을 거치지 않고 업체로 직행합니다. 발행하면 자동 승인되어 바로 결제할 수 있고, 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. - 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다. `GET /v2/suppliers/{memberId}/card-payable` 미리 확인하세요. 미가입 업체로 발행하면 400입니다. - 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. - 멱등키는 `externalRef`(파트너 측 거래 식별자)입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
2140
2140
  * @summary 결제창 발행
2141
2141
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2142
2142
  * @param {CreateCardPaymentDto} createCardPaymentDto
@@ -2147,7 +2147,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
2147
2147
  return localVarFp.createCardPayment(idempotencyKey, createCardPaymentDto, options).then((request) => request(axios, basePath));
2148
2148
  },
2149
2149
  /**
2150
- * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서) 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서) 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208) 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2150
+ * 공고 없이 성사된 거래의 계약서류를 생성합니다. 계약이 체결된 직후에 부릅니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다. 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킵니다. - 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. - `name` 의 출처는 서류마다 다릅니다. 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 공급사가 등록한 원본 파일명입니다 — 채팅 첨부 라벨로 그대로 쓰세요. - **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면 400 이고 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). - 응답의 `fileUrl` 은 만료되지 않습니다. 채팅 메시지 등에 그대로 저장해 두어도 됩니다. - 대행 범위 밖 회원이면 403 입니다. 조회와 같은 축입니다. ### 서류별 추가 입력 `135`(수의계약체결제한여부확인서) `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수입니다. `documentInputs.contractRestrictionConfirm.answers` 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담습니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation` 으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명에 있습니다. `164`(퇴직자영입현황확인서) `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). 퇴직자가 없으면 `rows` 를 **빈 배열로** 보내세요 — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). 승낙사항(`4`·`184`·`185`·`186`·`189`·`197`·`208`) `contract.subject`(계약건명)가 필수입니다. 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다. 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2151
2151
  * @summary 계약서류 생성
2152
2152
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2153
2153
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
@@ -2236,7 +2236,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
2236
2236
  return localVarFp.getBidStatement(bidRef, paperCode, ifNoneMatch, options).then((request) => request(axios, basePath));
2237
2237
  },
2238
2238
  /**
2239
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
2239
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey` 아는 경우, 예컨대 업로드 직후 크기를 확인할 씁니다. - 파일은 응답의 `downloadUrl` 로 받습니다. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. - MIME 타입은 싣지 않습니다. 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 그대로 들어 있습니다. - **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 영문 대소문자·숫자 32자이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. 스코프 `files:read`.
2240
2240
  * @summary 파일 정보 조회
2241
2241
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
2242
2242
  * @param {string} [ifNoneMatch] 직전 응답의 &#x60;ETag&#x60; 값. 내용이 그대로면 본문 없이 &#x60;304&#x60;로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
@@ -2315,7 +2315,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
2315
2315
  return localVarFp.listBids(limit, cursor, bidRefs, status, include, ifNoneMatch, options).then((request) => request(axios, basePath));
2316
2316
  },
2317
2317
  /**
2318
- * 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래예: 채팅 기반 견적 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. **조회 가능한 회원 범위:** 이 API 키에 설정된 대행 범위(소속 그룹 전원 또는 지정 회원 목록) 안의 회원만 조회할 수 있습니다. 범위 밖이면 403 입니다. 대행 범위는 키 설정이며 스코프와는 별개 축입니다. **필수 스코프:** `contracts:read` --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2318
+ * 발주기관 회원과 거래유형으로 거래에 필요한 계약서류 목록을 조회합니다. 스코프 `contracts:read`. 공고(입찰)를 거치지 않는 거래에서 씁니다 — 채팅 기반 견적 같은 자리에서, 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때입니다. 목록은 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. 대행 범위 밖 회원을 조회하면 403 입니다(대행 범위는 키 설정이며 스코프와 별개 축입니다). 응답 값의 뜻은 이렇습니다. - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 미리 체크된 상태로 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2319
2319
  * @summary 거래에 필요한 계약서류 목록 조회
2320
2320
  * @param {string} buyerId 발주기관 회원 ID(c-market memberId).
2321
2321
  * @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
@@ -2398,7 +2398,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
2398
2398
  return localVarFp.registerBid(idempotencyKey, createBidRequestDto, options).then((request) => request(axios, basePath));
2399
2399
  },
2400
2400
  /**
2401
- * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
2401
+ * 외부에서 맺어진 계약 1건을 씨마켓의 세금계산서 발행 대상으로 등록합니다. 스코프 `contracts:write`. 등록하면 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 공급자는 공급기업, 공급받는자는 발주기관입니다. 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. - **`supplyPrice` 는 부가세를 뺀 과세 공급가액입니다.** 결제창 API 가 부가세 포함가를 받는 것과 다릅니다. 과세·면세 공급가액이 모두 0 이면 400 입니다. - 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. - 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. - 멱등키는 `externalContractId` 입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
2402
2402
  * @summary 계약 발행대상 등록
2403
2403
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2404
2404
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
@@ -2545,7 +2545,7 @@ export class PartnerApiApi extends BaseAPI {
2545
2545
  return PartnerApiApiFp(this.configuration).completeInvoice(bidRef, idempotencyKey, options).then((request) => request(this.axios, this.basePath));
2546
2546
  }
2547
2547
  /**
2548
- * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable`로 미리 확인하세요. 미가입 업체로 발행하면 400입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자) 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
2548
+ * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **카드 승인이 업체의 가맹점으로 나갑니다.** 대금은 씨마켓을 거치지 않고 업체로 직행합니다. 발행하면 자동 승인되어 바로 결제할 수 있고, 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. - 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다. `GET /v2/suppliers/{memberId}/card-payable` 미리 확인하세요. 미가입 업체로 발행하면 400입니다. - 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. - 멱등키는 `externalRef`(파트너 측 거래 식별자)입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
2549
2549
  * @summary 결제창 발행
2550
2550
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2551
2551
  * @param {CreateCardPaymentDto} createCardPaymentDto
@@ -2556,7 +2556,7 @@ export class PartnerApiApi extends BaseAPI {
2556
2556
  return PartnerApiApiFp(this.configuration).createCardPayment(idempotencyKey, createCardPaymentDto, options).then((request) => request(this.axios, this.basePath));
2557
2557
  }
2558
2558
  /**
2559
- * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다.** 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킬 있습니다. **`name` 의 출처는 서류에 따라 다릅니다.** 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 **공급사가 등록한 원본 파일명**입니다 — 채팅 첨부 라벨로 그대로 쓰세요. **필요한 입력:** 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면(400) 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). **135(수의계약체결제한여부확인서) 요청하면 추가 입력이 필요합니다.** `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수이고, `documentInputs.contractRestrictionConfirm.answers`에 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담아야 합니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation`으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명을 참고하세요. **164(퇴직자영입현황확인서) 요청하면 퇴직자 명단이 필요합니다.** `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). **퇴직자가 없으면 `rows` 를 배열로 보내세요** — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). **승낙사항(4·184·185·186·189·197·208) 요청하면 `contract.subject`(계약건명)가 필수입니다.** 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. **응답의 `fileUrl` 은 만료되지 않습니다.** 채팅 메시지 등에 그대로 저장해 두어도 됩니다. **생성 가능한 회원 범위:** 조회와 같습니다 — 이 API 키에 설정된 대행 범위 안의 회원만 가능합니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2559
+ * 공고 없이 성사된 거래의 계약서류를 생성합니다. 계약이 체결된 직후에 부릅니다. 스코프 `contracts:write` · `Idempotency-Key` 헤더 필수. - 요청한 `paperCodes` 와 같은 순서로 같은 개수가 돌아옵니다. 각 항목의 `fileUrl` 을 그대로 쓰면 되고, `paperCode` 로 어느 요청에 대한 결과인지 대응시킵니다. - 발주기관·공급사는 회원 ID 만 주면 됩니다. 상호·사업자번호·대표자·주소·직인은 c-market 이 회원 정보에서 직접 채웁니다. - `name` 의 출처는 서류마다 다릅니다. 시스템이 렌더한 서류는 계약서류명이고, 공급사 사전등록 3종(11·12·13)은 공급사가 등록한 원본 파일명입니다 — 채팅 첨부 라벨로 그대로 쓰세요. - **전부 성공 또는 전부 실패입니다.** 지원하지 않는 서류가 하나라도 섞이면 400 이고 아무것도 만들지 않습니다. 렌더가 필요한 서류를 요청하면서 `contract` 를 빠뜨려도 마찬가지입니다(422). - 응답의 `fileUrl` 은 만료되지 않습니다. 채팅 메시지 등에 그대로 저장해 두어도 됩니다. - 대행 범위 밖 회원이면 403 입니다. 조회와 같은 축입니다. ### 서류별 추가 입력 `135`(수의계약체결제한여부확인서) `contract.subject`(발주내용)·`contract.category`(계약구분)·`contract.buyerDepartment`(발주부서)가 필수입니다. `documentInputs.contractRestrictionConfirm.answers` 서식 ①~⑧에 대한 **계약상대자**의 답변 8개를 순서대로 담습니다(c-market 이 대신 만들어낼 수 없는 값입니다). ⑨(발주자 확인사항)는 `documentInputs.contractRestrictionConfirm.buyerConfirmation` 으로 선택 전달하며, 생략하면 서식에 빈칸으로 인쇄됩니다. 문항 ①~⑧의 원문은 `answers` 필드 설명에 있습니다. `164`(퇴직자영입현황확인서) `contract.subject`(서식의 \"수의계약 대상건명\")가 필수이고, `documentInputs.retireeRoster.rows` 에 명단을 넣습니다(성명·직급 필수, 직급·입사일·근무기간·비고 선택, 최대 50행). 퇴직자가 없으면 `rows` 를 **빈 배열로** 보내세요 — 서식에 \"해당사항 없음\"으로 인쇄됩니다. 블록 자체를 생략하면 422 입니다(\"퇴직자 없음\"과 \"확인하지 않음\"을 구분할 수 없기 때문입니다). 승낙사항(`4`·`184`·`185`·`186`·`189`·`197`·`208`) `contract.subject`(계약건명)가 필수입니다. 서식 상단 \"건명\" 칸에 인쇄되는 값이라 비면 어느 계약의 승낙인지 알 수 없습니다. 그 외 추가 입력은 없습니다. 갑(발주기관) 서명란은 `buyerId` 로, 을(공급사) 서명란은 `supplierId` 로 c-market 이 채웁니다. 발주기관이 기관 전용 승낙사항 서식을 쓰면 요청한 코드 그대로 응답하되 PDF 는 그 기관 서식으로 발급됩니다. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2560
2560
  * @summary 계약서류 생성
2561
2561
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2562
2562
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
@@ -2645,7 +2645,7 @@ export class PartnerApiApi extends BaseAPI {
2645
2645
  return PartnerApiApiFp(this.configuration).getBidStatement(bidRef, paperCode, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
2646
2646
  }
2647
2647
  /**
2648
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey`만 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName`에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
2648
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **대부분은 이 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 이 엔드포인트는 그 주소를 들고 있지 않고 `fileKey` 아는 경우, 예컨대 업로드 직후 크기를 확인할 씁니다. - 파일은 응답의 `downloadUrl` 로 받습니다. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. - MIME 타입은 싣지 않습니다. 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 그대로 들어 있습니다. - **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 영문 대소문자·숫자 32자이고, 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. 스코프 `files:read`.
2649
2649
  * @summary 파일 정보 조회
2650
2650
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
2651
2651
  * @param {string} [ifNoneMatch] 직전 응답의 &#x60;ETag&#x60; 값. 내용이 그대로면 본문 없이 &#x60;304&#x60;로 끝납니다 — 폴링에서 전송량과 파싱 비용이 사라집니다.
@@ -2724,7 +2724,7 @@ export class PartnerApiApi extends BaseAPI {
2724
2724
  return PartnerApiApiFp(this.configuration).listBids(limit, cursor, bidRefs, status, include, ifNoneMatch, options).then((request) => request(this.axios, this.basePath));
2725
2725
  }
2726
2726
  /**
2727
- * 발주기관 회원과 거래유형으로 **그 거래에 필요한 계약서류 목록**을 조회합니다. **용도:** 공고(입찰)를 거치지 않는 거래예: 채팅 기반 견적 에서 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때. **판정 기준:** 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. **응답 해석:** - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 **미리 체크된 상태로** 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. **조회 가능한 회원 범위:** 이 API 키에 설정된 대행 범위(소속 그룹 전원 또는 지정 회원 목록) 안의 회원만 조회할 수 있습니다. 범위 밖이면 403 입니다. 대행 범위는 키 설정이며 스코프와는 별개 축입니다. **필수 스코프:** `contracts:read` --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2727
+ * 발주기관 회원과 거래유형으로 거래에 필요한 계약서류 목록을 조회합니다. 스코프 `contracts:read`. 공고(입찰)를 거치지 않는 거래에서 씁니다 — 채팅 기반 견적 같은 자리에서, 계약 전에 \"어떤 서류가 필요한가\"를 보여줄 때입니다. 목록은 발주기관이 속한 그룹에 배정된 계약서류 중 그 거래유형에 적용되는 것 전부입니다. 운영자가 어드민에서 배정을 바꾸면 별도 배포 없이 즉시 반영됩니다. 대행 범위 밖 회원을 조회하면 403 입니다(대행 범위는 키 설정이며 스코프와 별개 축입니다). 응답 값의 뜻은 이렇습니다. - `isDefault=true` — 운영자가 기본값(★)으로 켜 둔 서류입니다. 선택 화면에서 미리 체크된 상태로 보여주세요. 목록이 이 값으로 걸러져 있지는 않습니다. - `autoGenerated=true` — c-market이 데이터를 채워 PDF로 만들어 주는 서류입니다. 생성 API의 `paperCodes`에 넣을 수 있습니다. - `autoGenerated=false` — 이 API 로는 만들 수 없는 서류입니다(거래명세서처럼 세금계산서 발행 같은 별도 시점이 필요한 서류). 목록에서 감추지 말고 사용자가 직접 첨부하도록 안내하세요. --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 공고 기반 거래의 계약서류는 `GET /v2/bids/{bidRef}/contract-documents`가 v2 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
2728
2728
  * @summary 거래에 필요한 계약서류 목록 조회
2729
2729
  * @param {string} buyerId 발주기관 회원 ID(c-market memberId).
2730
2730
  * @param {ListExternalContractDocumentsBidTypeEnum} bidType 거래유형.
@@ -2807,7 +2807,7 @@ export class PartnerApiApi extends BaseAPI {
2807
2807
  return PartnerApiApiFp(this.configuration).registerBid(idempotencyKey, createBidRequestDto, options).then((request) => request(this.axios, this.basePath));
2808
2808
  }
2809
2809
  /**
2810
- * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
2810
+ * 외부에서 맺어진 계약 1건을 씨마켓의 세금계산서 발행 대상으로 등록합니다. 스코프 `contracts:write`. 등록하면 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 공급자는 공급기업, 공급받는자는 발주기관입니다. 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. - **`supplyPrice` 는 부가세를 뺀 과세 공급가액입니다.** 결제창 API 가 부가세 포함가를 받는 것과 다릅니다. 과세·면세 공급가액이 모두 0 이면 400 입니다. - 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. - 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. - 멱등키는 `externalContractId` 입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 보내세요.
2811
2811
  * @summary 계약 발행대상 등록
2812
2812
  * @param {string} idempotencyKey 멱등키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때는 처음과 같은 키를 보내야** 중복 생성이 막힙니다. 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청이 됩니다. UUID v4를 만들어 연동 시스템에 저장하거나, 요청 내용에서 결정적으로 파생하세요(예: &#x60;bid-create-{구매번호}&#x60;). 같은 키와 같은 body는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2813
2813
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
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.1.3
5
+ * The version of the OpenAPI document: 45.2.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).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
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.1.3
7
+ * The version of the OpenAPI document: 45.2.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).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
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.1.3
5
+ * The version of the OpenAPI document: 45.2.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).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
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.1.3
7
+ * The version of the OpenAPI document: 45.2.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).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
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.1.3
5
+ * The version of the OpenAPI document: 45.2.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).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
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.1.3
7
+ * The version of the OpenAPI document: 45.2.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).
package/dist/esm/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
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.1.3
5
+ * The version of the OpenAPI document: 45.2.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
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
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.1.3
7
+ * The version of the OpenAPI document: 45.2.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).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
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.1.3
5
+ * The version of the OpenAPI document: 45.2.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).