@cmarket/partner-sdk 36.1.1 → 37.0.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 (665) hide show
  1. package/README.md +12 -5
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-api-api.ts +190 -13
  4. package/api/products-api.ts +1 -1
  5. package/api/well-known-api.ts +1 -1
  6. package/api.ts +1 -1
  7. package/base.ts +1 -1
  8. package/common.ts +1 -1
  9. package/configuration.ts +1 -1
  10. package/dist/api/oauth-api.d.ts +1 -1
  11. package/dist/api/oauth-api.js +1 -1
  12. package/dist/api/partner-api-api.d.ts +92 -13
  13. package/dist/api/partner-api-api.js +178 -13
  14. package/dist/api/products-api.d.ts +1 -1
  15. package/dist/api/products-api.js +1 -1
  16. package/dist/api/well-known-api.d.ts +1 -1
  17. package/dist/api/well-known-api.js +1 -1
  18. package/dist/api.d.ts +1 -1
  19. package/dist/api.js +1 -1
  20. package/dist/base.d.ts +1 -1
  21. package/dist/base.js +1 -1
  22. package/dist/common.d.ts +1 -1
  23. package/dist/common.js +1 -1
  24. package/dist/configuration.d.ts +1 -1
  25. package/dist/configuration.js +1 -1
  26. package/dist/esm/api/oauth-api.d.ts +1 -1
  27. package/dist/esm/api/oauth-api.js +1 -1
  28. package/dist/esm/api/partner-api-api.d.ts +92 -13
  29. package/dist/esm/api/partner-api-api.js +178 -13
  30. package/dist/esm/api/products-api.d.ts +1 -1
  31. package/dist/esm/api/products-api.js +1 -1
  32. package/dist/esm/api/well-known-api.d.ts +1 -1
  33. package/dist/esm/api/well-known-api.js +1 -1
  34. package/dist/esm/api.d.ts +1 -1
  35. package/dist/esm/api.js +1 -1
  36. package/dist/esm/base.d.ts +1 -1
  37. package/dist/esm/base.js +1 -1
  38. package/dist/esm/common.d.ts +1 -1
  39. package/dist/esm/common.js +1 -1
  40. package/dist/esm/configuration.d.ts +1 -1
  41. package/dist/esm/configuration.js +1 -1
  42. package/dist/esm/index.d.ts +1 -1
  43. package/dist/esm/index.js +1 -1
  44. package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
  45. package/dist/esm/models/acceptance-result-response-dto.js +1 -1
  46. package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
  47. package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
  48. package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
  49. package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
  50. package/dist/esm/models/api-catalog-dto.d.ts +1 -1
  51. package/dist/esm/models/api-catalog-dto.js +1 -1
  52. package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
  53. package/dist/esm/models/api-catalog-entry-dto.js +1 -1
  54. package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
  55. package/dist/esm/models/api-catalog-link-dto.js +1 -1
  56. package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
  57. package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
  58. package/dist/esm/models/award-method-public.d.ts +1 -1
  59. package/dist/esm/models/award-method-public.js +1 -1
  60. package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
  61. package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
  62. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +1 -1
  63. package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
  64. package/dist/esm/models/bid-acceptance-dto.d.ts +1 -1
  65. package/dist/esm/models/bid-acceptance-dto.js +1 -1
  66. package/dist/esm/models/bid-attachment-input-dto.d.ts +29 -0
  67. package/dist/esm/models/bid-attachment-input-dto.js +14 -0
  68. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  69. package/dist/esm/models/bid-bond-dto.js +1 -1
  70. package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
  71. package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
  72. package/dist/esm/models/bid-contact-dto.d.ts +1 -1
  73. package/dist/esm/models/bid-contact-dto.js +1 -1
  74. package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
  75. package/dist/esm/models/bid-contacts-dto.js +1 -1
  76. package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
  77. package/dist/esm/models/bid-contract-document-dto.js +1 -1
  78. package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
  79. package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
  80. package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
  81. package/dist/esm/models/bid-detail-response-dto.js +1 -1
  82. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  83. package/dist/esm/models/bid-document-dto.js +1 -1
  84. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  85. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  86. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  87. package/dist/esm/models/bid-item-dto.js +1 -1
  88. package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
  89. package/dist/esm/models/bid-lifecycle-dto.js +1 -1
  90. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  91. package/dist/esm/models/bid-manager-dto.js +1 -1
  92. package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
  93. package/dist/esm/models/bid-payment-terms-dto.js +1 -1
  94. package/dist/esm/models/bid-product-dto.d.ts +1 -1
  95. package/dist/esm/models/bid-product-dto.js +1 -1
  96. package/dist/esm/models/bid-public-status.d.ts +1 -1
  97. package/dist/esm/models/bid-public-status.js +1 -1
  98. package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
  99. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  100. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  101. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  102. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  103. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  104. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  105. package/dist/esm/models/bid-results-response-dto.js +1 -1
  106. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  107. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  108. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  109. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  110. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  111. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  112. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  113. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  114. package/dist/esm/models/bid-summary-dto.d.ts +1 -1
  115. package/dist/esm/models/bid-summary-dto.js +1 -1
  116. package/dist/esm/models/bid-type-public.d.ts +1 -1
  117. package/dist/esm/models/bid-type-public.js +1 -1
  118. package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
  119. package/dist/esm/models/bid-updated-response-dto.js +1 -1
  120. package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
  121. package/dist/esm/models/cancel-bid-request-dto.js +1 -1
  122. package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
  123. package/dist/esm/models/cancel-bid200-response.js +1 -1
  124. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  125. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  126. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  127. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  128. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  129. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  130. package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
  131. package/dist/esm/models/complete-invoice200-response.js +1 -1
  132. package/dist/esm/models/complete-upload-request-dto.d.ts +17 -0
  133. package/dist/esm/models/complete-upload-request-dto.js +14 -0
  134. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  135. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  136. package/dist/esm/models/create-bid-request-dto.d.ts +4 -3
  137. package/dist/esm/models/create-bid-request-dto.js +1 -1
  138. package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
  139. package/dist/esm/models/create-card-payment-dto.js +1 -1
  140. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  141. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  142. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  143. package/dist/esm/models/create-card-payment200-response.js +1 -1
  144. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  145. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  146. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  147. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  148. package/dist/esm/models/create-file-upload-url201-response.d.ts +21 -0
  149. package/dist/esm/models/create-file-upload-url201-response.js +14 -0
  150. package/dist/esm/models/create-upload-url-request-dto.d.ts +21 -0
  151. package/dist/esm/models/create-upload-url-request-dto.js +14 -0
  152. package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
  153. package/dist/esm/models/delivery-date-type-public.js +1 -1
  154. package/dist/esm/models/delivery-method-public.d.ts +1 -1
  155. package/dist/esm/models/delivery-method-public.js +1 -1
  156. package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
  157. package/dist/esm/models/excellent-procurement-public.js +1 -1
  158. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  159. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  160. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  161. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  162. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  163. package/dist/esm/models/external-contract-item-dto.js +1 -1
  164. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  165. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  166. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  167. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  168. package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
  169. package/dist/esm/models/file-meta-response-dto.js +1 -1
  170. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  171. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  172. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  173. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  174. package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
  175. package/dist/esm/models/get-bid-settlement200-response.js +1 -1
  176. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  177. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  178. package/dist/esm/models/get-bid200-response.d.ts +1 -1
  179. package/dist/esm/models/get-bid200-response.js +1 -1
  180. package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
  181. package/dist/esm/models/get-file-meta200-response.js +1 -1
  182. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  183. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  184. package/dist/esm/models/green-product-public.d.ts +1 -1
  185. package/dist/esm/models/green-product-public.js +1 -1
  186. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  187. package/dist/esm/models/health-controller-check200-response.js +1 -1
  188. package/dist/esm/models/health-response-dto.d.ts +1 -1
  189. package/dist/esm/models/health-response-dto.js +1 -1
  190. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  191. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  192. package/dist/esm/models/index.d.ts +5 -0
  193. package/dist/esm/models/index.js +5 -0
  194. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  195. package/dist/esm/models/introspect-request-dto.js +1 -1
  196. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  197. package/dist/esm/models/introspection-response-dto.js +1 -1
  198. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  199. package/dist/esm/models/invalid-param-dto.js +1 -1
  200. package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
  201. package/dist/esm/models/invoice-completed-response-dto.js +1 -1
  202. package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
  203. package/dist/esm/models/invoice-split-response-dto.js +1 -1
  204. package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
  205. package/dist/esm/models/legal-mandatory-public.js +1 -1
  206. package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
  207. package/dist/esm/models/list-bid-results200-response.js +1 -1
  208. package/dist/esm/models/list-bids-response-dto.d.ts +1 -1
  209. package/dist/esm/models/list-bids-response-dto.js +1 -1
  210. package/dist/esm/models/list-bids200-response.d.ts +1 -1
  211. package/dist/esm/models/list-bids200-response.js +1 -1
  212. package/dist/esm/models/list-products200-response.d.ts +1 -1
  213. package/dist/esm/models/list-products200-response.js +1 -1
  214. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  215. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  216. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  217. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  218. package/dist/esm/models/negotiation-score-dto.d.ts +1 -1
  219. package/dist/esm/models/negotiation-score-dto.js +1 -1
  220. package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  221. package/dist/esm/models/negotiation-scored-v2-response-dto.js +1 -1
  222. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  223. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  224. package/dist/esm/models/payment-method-public.d.ts +1 -1
  225. package/dist/esm/models/payment-method-public.js +1 -1
  226. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  227. package/dist/esm/models/preconditions-dto.js +1 -1
  228. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  229. package/dist/esm/models/problem-details-dto.js +1 -1
  230. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  231. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  232. package/dist/esm/models/product-response-dto.d.ts +1 -1
  233. package/dist/esm/models/product-response-dto.js +1 -1
  234. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  235. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  236. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  237. package/dist/esm/models/register-award-request-dto.js +1 -1
  238. package/dist/esm/models/register-award201-response.d.ts +1 -1
  239. package/dist/esm/models/register-award201-response.js +1 -1
  240. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  241. package/dist/esm/models/register-bid201-response.js +1 -1
  242. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  243. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  244. package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
  245. package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
  246. package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
  247. package/dist/esm/models/request-invoice-split200-response.js +1 -1
  248. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  249. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  250. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  251. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  252. package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
  253. package/dist/esm/models/revert-award-request-dto.js +1 -1
  254. package/dist/esm/models/revert-award200-response.d.ts +1 -1
  255. package/dist/esm/models/revert-award200-response.js +1 -1
  256. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  257. package/dist/esm/models/revoke-request-dto.js +1 -1
  258. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  259. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  260. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  261. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  262. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  263. package/dist/esm/models/statement-document-dto.js +1 -1
  264. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  265. package/dist/esm/models/statement-product-dto.js +1 -1
  266. package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  267. package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
  268. package/dist/esm/models/submit-negotiation-scores201-response.d.ts +1 -1
  269. package/dist/esm/models/submit-negotiation-scores201-response.js +1 -1
  270. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  271. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  272. package/dist/esm/models/supplier-tax-type.d.ts +1 -1
  273. package/dist/esm/models/supplier-tax-type.js +1 -1
  274. package/dist/esm/models/token-request-dto.d.ts +1 -1
  275. package/dist/esm/models/token-request-dto.js +1 -1
  276. package/dist/esm/models/token-response-dto.d.ts +1 -1
  277. package/dist/esm/models/token-response-dto.js +1 -1
  278. package/dist/esm/models/update-bid-request-dto.d.ts +4 -3
  279. package/dist/esm/models/update-bid-request-dto.js +1 -1
  280. package/dist/esm/models/update-bid200-response.d.ts +1 -1
  281. package/dist/esm/models/update-bid200-response.js +1 -1
  282. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  283. package/dist/esm/models/upload-file-request-dto.js +1 -1
  284. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  285. package/dist/esm/models/upload-file201-response.js +1 -1
  286. package/dist/esm/models/upload-url-created-response-dto.d.ts +29 -0
  287. package/dist/esm/models/upload-url-created-response-dto.js +14 -0
  288. package/dist/index.d.ts +1 -1
  289. package/dist/index.js +1 -1
  290. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  291. package/dist/models/acceptance-result-response-dto.js +1 -1
  292. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  293. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  294. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  295. package/dist/models/acknowledge-products-request-dto.js +1 -1
  296. package/dist/models/api-catalog-dto.d.ts +1 -1
  297. package/dist/models/api-catalog-dto.js +1 -1
  298. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  299. package/dist/models/api-catalog-entry-dto.js +1 -1
  300. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  301. package/dist/models/api-catalog-link-dto.js +1 -1
  302. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  303. package/dist/models/authorization-server-metadata-dto.js +1 -1
  304. package/dist/models/award-method-public.d.ts +1 -1
  305. package/dist/models/award-method-public.js +1 -1
  306. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  307. package/dist/models/award-registered-v2-response-dto.js +1 -1
  308. package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
  309. package/dist/models/award-reverted-v2-response-dto.js +1 -1
  310. package/dist/models/bid-acceptance-dto.d.ts +1 -1
  311. package/dist/models/bid-acceptance-dto.js +1 -1
  312. package/dist/models/bid-attachment-input-dto.d.ts +29 -0
  313. package/dist/models/bid-attachment-input-dto.js +15 -0
  314. package/dist/models/bid-bond-dto.d.ts +1 -1
  315. package/dist/models/bid-bond-dto.js +1 -1
  316. package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
  317. package/dist/models/bid-cancelled-response-dto.js +1 -1
  318. package/dist/models/bid-contact-dto.d.ts +1 -1
  319. package/dist/models/bid-contact-dto.js +1 -1
  320. package/dist/models/bid-contacts-dto.d.ts +1 -1
  321. package/dist/models/bid-contacts-dto.js +1 -1
  322. package/dist/models/bid-contract-document-dto.d.ts +1 -1
  323. package/dist/models/bid-contract-document-dto.js +1 -1
  324. package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
  325. package/dist/models/bid-delivery-terms-dto.js +1 -1
  326. package/dist/models/bid-detail-response-dto.d.ts +1 -1
  327. package/dist/models/bid-detail-response-dto.js +1 -1
  328. package/dist/models/bid-document-dto.d.ts +1 -1
  329. package/dist/models/bid-document-dto.js +1 -1
  330. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  331. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  332. package/dist/models/bid-item-dto.d.ts +1 -1
  333. package/dist/models/bid-item-dto.js +1 -1
  334. package/dist/models/bid-lifecycle-dto.d.ts +1 -1
  335. package/dist/models/bid-lifecycle-dto.js +1 -1
  336. package/dist/models/bid-manager-dto.d.ts +1 -1
  337. package/dist/models/bid-manager-dto.js +1 -1
  338. package/dist/models/bid-payment-terms-dto.d.ts +1 -1
  339. package/dist/models/bid-payment-terms-dto.js +1 -1
  340. package/dist/models/bid-product-dto.d.ts +1 -1
  341. package/dist/models/bid-product-dto.js +1 -1
  342. package/dist/models/bid-public-status.d.ts +1 -1
  343. package/dist/models/bid-public-status.js +1 -1
  344. package/dist/models/bid-registered-response-dto.d.ts +1 -1
  345. package/dist/models/bid-registered-response-dto.js +1 -1
  346. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  347. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  348. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  349. package/dist/models/bid-result-participant-dto.js +1 -1
  350. package/dist/models/bid-results-response-dto.d.ts +1 -1
  351. package/dist/models/bid-results-response-dto.js +1 -1
  352. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  353. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  354. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  355. package/dist/models/bid-settlement-participant-dto.js +1 -1
  356. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  357. package/dist/models/bid-settlement-response-dto.js +1 -1
  358. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  359. package/dist/models/bid-statement-response-dto.js +1 -1
  360. package/dist/models/bid-summary-dto.d.ts +1 -1
  361. package/dist/models/bid-summary-dto.js +1 -1
  362. package/dist/models/bid-type-public.d.ts +1 -1
  363. package/dist/models/bid-type-public.js +1 -1
  364. package/dist/models/bid-updated-response-dto.d.ts +1 -1
  365. package/dist/models/bid-updated-response-dto.js +1 -1
  366. package/dist/models/cancel-bid-request-dto.d.ts +1 -1
  367. package/dist/models/cancel-bid-request-dto.js +1 -1
  368. package/dist/models/cancel-bid200-response.d.ts +1 -1
  369. package/dist/models/cancel-bid200-response.js +1 -1
  370. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  371. package/dist/models/card-payment-request-response-dto.js +1 -1
  372. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  373. package/dist/models/complete-acceptance-request-dto.js +1 -1
  374. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  375. package/dist/models/complete-acceptance200-response.js +1 -1
  376. package/dist/models/complete-invoice200-response.d.ts +1 -1
  377. package/dist/models/complete-invoice200-response.js +1 -1
  378. package/dist/models/complete-upload-request-dto.d.ts +17 -0
  379. package/dist/models/complete-upload-request-dto.js +15 -0
  380. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  381. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  382. package/dist/models/create-bid-request-dto.d.ts +4 -3
  383. package/dist/models/create-bid-request-dto.js +1 -1
  384. package/dist/models/create-card-payment-dto.d.ts +1 -1
  385. package/dist/models/create-card-payment-dto.js +1 -1
  386. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  387. package/dist/models/create-card-payment-request-dto.js +1 -1
  388. package/dist/models/create-card-payment200-response.d.ts +1 -1
  389. package/dist/models/create-card-payment200-response.js +1 -1
  390. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  391. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  392. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  393. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  394. package/dist/models/create-file-upload-url201-response.d.ts +21 -0
  395. package/dist/models/create-file-upload-url201-response.js +15 -0
  396. package/dist/models/create-upload-url-request-dto.d.ts +21 -0
  397. package/dist/models/create-upload-url-request-dto.js +15 -0
  398. package/dist/models/delivery-date-type-public.d.ts +1 -1
  399. package/dist/models/delivery-date-type-public.js +1 -1
  400. package/dist/models/delivery-method-public.d.ts +1 -1
  401. package/dist/models/delivery-method-public.js +1 -1
  402. package/dist/models/excellent-procurement-public.d.ts +1 -1
  403. package/dist/models/excellent-procurement-public.js +1 -1
  404. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  405. package/dist/models/external-contract-document-item-dto.js +1 -1
  406. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  407. package/dist/models/external-contract-documents-response-dto.js +1 -1
  408. package/dist/models/external-contract-item-dto.d.ts +1 -1
  409. package/dist/models/external-contract-item-dto.js +1 -1
  410. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  411. package/dist/models/external-contract-snapshot-dto.js +1 -1
  412. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  413. package/dist/models/external-document-inputs-dto.js +1 -1
  414. package/dist/models/file-meta-response-dto.d.ts +1 -1
  415. package/dist/models/file-meta-response-dto.js +1 -1
  416. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  417. package/dist/models/file-uploaded-response-dto.js +1 -1
  418. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  419. package/dist/models/generated-external-contract-document-dto.js +1 -1
  420. package/dist/models/get-bid-settlement200-response.d.ts +1 -1
  421. package/dist/models/get-bid-settlement200-response.js +1 -1
  422. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  423. package/dist/models/get-bid-statement200-response.js +1 -1
  424. package/dist/models/get-bid200-response.d.ts +1 -1
  425. package/dist/models/get-bid200-response.js +1 -1
  426. package/dist/models/get-file-meta200-response.d.ts +1 -1
  427. package/dist/models/get-file-meta200-response.js +1 -1
  428. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  429. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  430. package/dist/models/green-product-public.d.ts +1 -1
  431. package/dist/models/green-product-public.js +1 -1
  432. package/dist/models/health-controller-check200-response.d.ts +1 -1
  433. package/dist/models/health-controller-check200-response.js +1 -1
  434. package/dist/models/health-response-dto.d.ts +1 -1
  435. package/dist/models/health-response-dto.js +1 -1
  436. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  437. package/dist/models/hierarchical-region-dto.js +1 -1
  438. package/dist/models/index.d.ts +5 -0
  439. package/dist/models/index.js +5 -0
  440. package/dist/models/introspect-request-dto.d.ts +1 -1
  441. package/dist/models/introspect-request-dto.js +1 -1
  442. package/dist/models/introspection-response-dto.d.ts +1 -1
  443. package/dist/models/introspection-response-dto.js +1 -1
  444. package/dist/models/invalid-param-dto.d.ts +1 -1
  445. package/dist/models/invalid-param-dto.js +1 -1
  446. package/dist/models/invoice-completed-response-dto.d.ts +1 -1
  447. package/dist/models/invoice-completed-response-dto.js +1 -1
  448. package/dist/models/invoice-split-response-dto.d.ts +1 -1
  449. package/dist/models/invoice-split-response-dto.js +1 -1
  450. package/dist/models/legal-mandatory-public.d.ts +1 -1
  451. package/dist/models/legal-mandatory-public.js +1 -1
  452. package/dist/models/list-bid-results200-response.d.ts +1 -1
  453. package/dist/models/list-bid-results200-response.js +1 -1
  454. package/dist/models/list-bids-response-dto.d.ts +1 -1
  455. package/dist/models/list-bids-response-dto.js +1 -1
  456. package/dist/models/list-bids200-response.d.ts +1 -1
  457. package/dist/models/list-bids200-response.js +1 -1
  458. package/dist/models/list-products200-response.d.ts +1 -1
  459. package/dist/models/list-products200-response.js +1 -1
  460. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  461. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  462. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  463. package/dist/models/mark-bid-failed201-response.js +1 -1
  464. package/dist/models/negotiation-score-dto.d.ts +1 -1
  465. package/dist/models/negotiation-score-dto.js +1 -1
  466. package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  467. package/dist/models/negotiation-scored-v2-response-dto.js +1 -1
  468. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  469. package/dist/models/oauth-error-response-dto.js +1 -1
  470. package/dist/models/payment-method-public.d.ts +1 -1
  471. package/dist/models/payment-method-public.js +1 -1
  472. package/dist/models/preconditions-dto.d.ts +1 -1
  473. package/dist/models/preconditions-dto.js +1 -1
  474. package/dist/models/problem-details-dto.d.ts +1 -1
  475. package/dist/models/problem-details-dto.js +1 -1
  476. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  477. package/dist/models/product-receipt-response-dto.js +1 -1
  478. package/dist/models/product-response-dto.d.ts +1 -1
  479. package/dist/models/product-response-dto.js +1 -1
  480. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  481. package/dist/models/protected-resource-metadata-dto.js +1 -1
  482. package/dist/models/register-award-request-dto.d.ts +1 -1
  483. package/dist/models/register-award-request-dto.js +1 -1
  484. package/dist/models/register-award201-response.d.ts +1 -1
  485. package/dist/models/register-award201-response.js +1 -1
  486. package/dist/models/register-bid201-response.d.ts +1 -1
  487. package/dist/models/register-bid201-response.js +1 -1
  488. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  489. package/dist/models/register-semo-contract-request-dto.js +1 -1
  490. package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
  491. package/dist/models/request-invoice-split-request-dto.js +1 -1
  492. package/dist/models/request-invoice-split200-response.d.ts +1 -1
  493. package/dist/models/request-invoice-split200-response.js +1 -1
  494. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  495. package/dist/models/retiree-roster-input-dto.js +1 -1
  496. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  497. package/dist/models/retiree-roster-row-dto.js +1 -1
  498. package/dist/models/revert-award-request-dto.d.ts +1 -1
  499. package/dist/models/revert-award-request-dto.js +1 -1
  500. package/dist/models/revert-award200-response.d.ts +1 -1
  501. package/dist/models/revert-award200-response.js +1 -1
  502. package/dist/models/revoke-request-dto.d.ts +1 -1
  503. package/dist/models/revoke-request-dto.js +1 -1
  504. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  505. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  506. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  507. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  508. package/dist/models/statement-document-dto.d.ts +1 -1
  509. package/dist/models/statement-document-dto.js +1 -1
  510. package/dist/models/statement-product-dto.d.ts +1 -1
  511. package/dist/models/statement-product-dto.js +1 -1
  512. package/dist/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  513. package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
  514. package/dist/models/submit-negotiation-scores201-response.d.ts +1 -1
  515. package/dist/models/submit-negotiation-scores201-response.js +1 -1
  516. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  517. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  518. package/dist/models/supplier-tax-type.d.ts +1 -1
  519. package/dist/models/supplier-tax-type.js +1 -1
  520. package/dist/models/token-request-dto.d.ts +1 -1
  521. package/dist/models/token-request-dto.js +1 -1
  522. package/dist/models/token-response-dto.d.ts +1 -1
  523. package/dist/models/token-response-dto.js +1 -1
  524. package/dist/models/update-bid-request-dto.d.ts +4 -3
  525. package/dist/models/update-bid-request-dto.js +1 -1
  526. package/dist/models/update-bid200-response.d.ts +1 -1
  527. package/dist/models/update-bid200-response.js +1 -1
  528. package/dist/models/upload-file-request-dto.d.ts +1 -1
  529. package/dist/models/upload-file-request-dto.js +1 -1
  530. package/dist/models/upload-file201-response.d.ts +1 -1
  531. package/dist/models/upload-file201-response.js +1 -1
  532. package/dist/models/upload-url-created-response-dto.d.ts +29 -0
  533. package/dist/models/upload-url-created-response-dto.js +15 -0
  534. package/docs/BidAttachmentInputDto.md +26 -0
  535. package/docs/CompleteUploadRequestDto.md +20 -0
  536. package/docs/CreateBidRequestDto.md +1 -1
  537. package/docs/CreateFileUploadUrl201Response.md +22 -0
  538. package/docs/CreateUploadUrlRequestDto.md +22 -0
  539. package/docs/PartnerApiApi.md +136 -3
  540. package/docs/UpdateBidRequestDto.md +1 -1
  541. package/docs/UploadUrlCreatedResponseDto.md +26 -0
  542. package/index.ts +1 -1
  543. package/models/acceptance-result-response-dto.ts +1 -1
  544. package/models/acknowledge-product-receipt200-response.ts +1 -1
  545. package/models/acknowledge-products-request-dto.ts +1 -1
  546. package/models/api-catalog-dto.ts +1 -1
  547. package/models/api-catalog-entry-dto.ts +1 -1
  548. package/models/api-catalog-link-dto.ts +1 -1
  549. package/models/authorization-server-metadata-dto.ts +1 -1
  550. package/models/award-method-public.ts +1 -1
  551. package/models/award-registered-v2-response-dto.ts +1 -1
  552. package/models/award-reverted-v2-response-dto.ts +1 -1
  553. package/models/bid-acceptance-dto.ts +1 -1
  554. package/models/bid-attachment-input-dto.ts +35 -0
  555. package/models/bid-bond-dto.ts +1 -1
  556. package/models/bid-cancelled-response-dto.ts +1 -1
  557. package/models/bid-contact-dto.ts +1 -1
  558. package/models/bid-contacts-dto.ts +1 -1
  559. package/models/bid-contract-document-dto.ts +1 -1
  560. package/models/bid-delivery-terms-dto.ts +1 -1
  561. package/models/bid-detail-response-dto.ts +1 -1
  562. package/models/bid-document-dto.ts +1 -1
  563. package/models/bid-failed-v2-response-dto.ts +1 -1
  564. package/models/bid-item-dto.ts +1 -1
  565. package/models/bid-lifecycle-dto.ts +1 -1
  566. package/models/bid-manager-dto.ts +1 -1
  567. package/models/bid-payment-terms-dto.ts +1 -1
  568. package/models/bid-product-dto.ts +1 -1
  569. package/models/bid-public-status.ts +1 -1
  570. package/models/bid-registered-response-dto.ts +1 -1
  571. package/models/bid-result-participant-attachment-dto.ts +1 -1
  572. package/models/bid-result-participant-dto.ts +1 -1
  573. package/models/bid-results-response-dto.ts +1 -1
  574. package/models/bid-settlement-line-item-dto.ts +1 -1
  575. package/models/bid-settlement-participant-dto.ts +1 -1
  576. package/models/bid-settlement-response-dto.ts +1 -1
  577. package/models/bid-statement-response-dto.ts +1 -1
  578. package/models/bid-summary-dto.ts +1 -1
  579. package/models/bid-type-public.ts +1 -1
  580. package/models/bid-updated-response-dto.ts +1 -1
  581. package/models/cancel-bid-request-dto.ts +1 -1
  582. package/models/cancel-bid200-response.ts +1 -1
  583. package/models/card-payment-request-response-dto.ts +1 -1
  584. package/models/complete-acceptance-request-dto.ts +1 -1
  585. package/models/complete-acceptance200-response.ts +1 -1
  586. package/models/complete-invoice200-response.ts +1 -1
  587. package/models/complete-upload-request-dto.ts +23 -0
  588. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  589. package/models/create-bid-request-dto.ts +6 -3
  590. package/models/create-card-payment-dto.ts +1 -1
  591. package/models/create-card-payment-request-dto.ts +1 -1
  592. package/models/create-card-payment200-response.ts +1 -1
  593. package/models/create-external-contract-documents-request-dto.ts +1 -1
  594. package/models/create-external-contract-documents-response-dto.ts +1 -1
  595. package/models/create-file-upload-url201-response.ts +27 -0
  596. package/models/create-upload-url-request-dto.ts +27 -0
  597. package/models/delivery-date-type-public.ts +1 -1
  598. package/models/delivery-method-public.ts +1 -1
  599. package/models/excellent-procurement-public.ts +1 -1
  600. package/models/external-contract-document-item-dto.ts +1 -1
  601. package/models/external-contract-documents-response-dto.ts +1 -1
  602. package/models/external-contract-item-dto.ts +1 -1
  603. package/models/external-contract-snapshot-dto.ts +1 -1
  604. package/models/external-document-inputs-dto.ts +1 -1
  605. package/models/file-meta-response-dto.ts +1 -1
  606. package/models/file-uploaded-response-dto.ts +1 -1
  607. package/models/generated-external-contract-document-dto.ts +1 -1
  608. package/models/get-bid-settlement200-response.ts +1 -1
  609. package/models/get-bid-statement200-response.ts +1 -1
  610. package/models/get-bid200-response.ts +1 -1
  611. package/models/get-file-meta200-response.ts +1 -1
  612. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  613. package/models/green-product-public.ts +1 -1
  614. package/models/health-controller-check200-response.ts +1 -1
  615. package/models/health-response-dto.ts +1 -1
  616. package/models/hierarchical-region-dto.ts +1 -1
  617. package/models/index.ts +5 -0
  618. package/models/introspect-request-dto.ts +1 -1
  619. package/models/introspection-response-dto.ts +1 -1
  620. package/models/invalid-param-dto.ts +1 -1
  621. package/models/invoice-completed-response-dto.ts +1 -1
  622. package/models/invoice-split-response-dto.ts +1 -1
  623. package/models/legal-mandatory-public.ts +1 -1
  624. package/models/list-bid-results200-response.ts +1 -1
  625. package/models/list-bids-response-dto.ts +1 -1
  626. package/models/list-bids200-response.ts +1 -1
  627. package/models/list-products200-response.ts +1 -1
  628. package/models/mark-bid-failed-request-dto.ts +1 -1
  629. package/models/mark-bid-failed201-response.ts +1 -1
  630. package/models/negotiation-score-dto.ts +1 -1
  631. package/models/negotiation-scored-v2-response-dto.ts +1 -1
  632. package/models/oauth-error-response-dto.ts +1 -1
  633. package/models/payment-method-public.ts +1 -1
  634. package/models/preconditions-dto.ts +1 -1
  635. package/models/problem-details-dto.ts +1 -1
  636. package/models/product-receipt-response-dto.ts +1 -1
  637. package/models/product-response-dto.ts +1 -1
  638. package/models/protected-resource-metadata-dto.ts +1 -1
  639. package/models/register-award-request-dto.ts +1 -1
  640. package/models/register-award201-response.ts +1 -1
  641. package/models/register-bid201-response.ts +1 -1
  642. package/models/register-semo-contract-request-dto.ts +1 -1
  643. package/models/request-invoice-split-request-dto.ts +1 -1
  644. package/models/request-invoice-split200-response.ts +1 -1
  645. package/models/retiree-roster-input-dto.ts +1 -1
  646. package/models/retiree-roster-row-dto.ts +1 -1
  647. package/models/revert-award-request-dto.ts +1 -1
  648. package/models/revert-award200-response.ts +1 -1
  649. package/models/revoke-request-dto.ts +1 -1
  650. package/models/semo-contract-registered-response-dto.ts +1 -1
  651. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  652. package/models/statement-document-dto.ts +1 -1
  653. package/models/statement-product-dto.ts +1 -1
  654. package/models/submit-negotiation-scores-request-dto.ts +1 -1
  655. package/models/submit-negotiation-scores201-response.ts +1 -1
  656. package/models/supplier-card-payable-response-dto.ts +1 -1
  657. package/models/supplier-tax-type.ts +1 -1
  658. package/models/token-request-dto.ts +1 -1
  659. package/models/token-response-dto.ts +1 -1
  660. package/models/update-bid-request-dto.ts +6 -3
  661. package/models/update-bid200-response.ts +1 -1
  662. package/models/upload-file-request-dto.ts +1 -1
  663. package/models/upload-file201-response.ts +1 -1
  664. package/models/upload-url-created-response-dto.ts +35 -0
  665. package/package.json +1 -1
package/common.ts 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\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `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 확장, 값 없음). `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: 36.1.1
7
+ * The version of the OpenAPI document: 37.0.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/configuration.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * CMARKET V6 Partner API
4
4
  * 외부 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\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `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 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
5
5
  *
6
- * The version of the OpenAPI document: 36.1.1
6
+ * The version of the OpenAPI document: 37.0.0
7
7
  * Contact: semo.io.kr@gmail.com
8
8
  *
9
9
  * 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\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `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 확장, 값 없음). `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: 36.1.1
5
+ * The version of the OpenAPI document: 37.0.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).
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * 외부 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\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `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 확장, 값 없음). `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` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
7
7
  *
8
- * The version of the OpenAPI document: 36.1.1
8
+ * The version of the OpenAPI document: 37.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * 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\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `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 확장, 값 없음). `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: 36.1.1
5
+ * The version of the OpenAPI document: 37.0.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).
@@ -18,11 +18,14 @@ import type { CancelBidRequestDto } from '../models';
18
18
  import type { CompleteAcceptance200Response } from '../models';
19
19
  import type { CompleteAcceptanceRequestDto } from '../models';
20
20
  import type { CompleteInvoice200Response } from '../models';
21
+ import type { CompleteUploadRequestDto } from '../models';
21
22
  import type { CreateBidRequestDto } from '../models';
22
23
  import type { CreateCardPayment200Response } from '../models';
23
24
  import type { CreateCardPaymentDto } from '../models';
24
25
  import type { CreateExternalContractDocumentsRequestDto } from '../models';
25
26
  import type { CreateExternalContractDocumentsResponseDto } from '../models';
27
+ import type { CreateFileUploadUrl201Response } from '../models';
28
+ import type { CreateUploadUrlRequestDto } from '../models';
26
29
  import type { ExternalContractDocumentsResponseDto } from '../models';
27
30
  import type { GetBid200Response } from '../models';
28
31
  import type { GetBidSettlement200Response } from '../models';
@@ -74,6 +77,16 @@ export declare const PartnerApiApiAxiosParamCreator: (configuration?: Configurat
74
77
  * @throws {RequiredError}
75
78
  */
76
79
  completeAcceptance: (bidRef: string, idempotencyKey: string, completeAcceptanceRequestDto: CompleteAcceptanceRequestDto, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
80
+ /**
81
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
82
+ * @summary 첨부파일 업로드 확정
83
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
84
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
85
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
86
+ * @param {*} [options] Override http request option.
87
+ * @throws {RequiredError}
88
+ */
89
+ completeFileUpload: (fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
77
90
  /**
78
91
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
79
92
  * @summary 정산 마감
@@ -101,6 +114,15 @@ export declare const PartnerApiApiAxiosParamCreator: (configuration?: Configurat
101
114
  * @throws {RequiredError}
102
115
  */
103
116
  createExternalContractDocuments: (idempotencyKey: string, createExternalContractDocumentsRequestDto: CreateExternalContractDocumentsRequestDto, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
117
+ /**
118
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
119
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
120
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
121
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
122
+ * @param {*} [options] Override http request option.
123
+ * @throws {RequiredError}
124
+ */
125
+ createFileUploadUrl: (idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
104
126
  /**
105
127
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
106
128
  * @summary 파일 다운로드
@@ -135,7 +157,7 @@ export declare const PartnerApiApiAxiosParamCreator: (configuration?: Configurat
135
157
  */
136
158
  getBidStatement: (bidRef: string, paperCode?: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
137
159
  /**
138
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
160
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
139
161
  * @summary 파일 정보 조회
140
162
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
141
163
  * @param {*} [options] Override http request option.
@@ -274,8 +296,8 @@ export declare const PartnerApiApiAxiosParamCreator: (configuration?: Configurat
274
296
  */
275
297
  updateBid: (bidRef: string, ifMatch: string, idempotencyKey: string, updateBidRequestDto: UpdateBidRequestDto, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
276
298
  /**
277
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
278
- * @summary 공고 첨부파일 업로드
299
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
300
+ * @summary 공고 첨부파일 업로드 (한 번에)
279
301
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
280
302
  * @param {UploadFileRequestDto} uploadFileRequestDto
281
303
  * @param {*} [options] Override http request option.
@@ -307,6 +329,16 @@ export declare const PartnerApiApiFp: (configuration?: Configuration) => {
307
329
  * @throws {RequiredError}
308
330
  */
309
331
  completeAcceptance(bidRef: string, idempotencyKey: string, completeAcceptanceRequestDto: CompleteAcceptanceRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CompleteAcceptance200Response>>;
332
+ /**
333
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
334
+ * @summary 첨부파일 업로드 확정
335
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
336
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
337
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
338
+ * @param {*} [options] Override http request option.
339
+ * @throws {RequiredError}
340
+ */
341
+ completeFileUpload(fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UploadFile201Response>>;
310
342
  /**
311
343
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
312
344
  * @summary 정산 마감
@@ -334,6 +366,15 @@ export declare const PartnerApiApiFp: (configuration?: Configuration) => {
334
366
  * @throws {RequiredError}
335
367
  */
336
368
  createExternalContractDocuments(idempotencyKey: string, createExternalContractDocumentsRequestDto: CreateExternalContractDocumentsRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateExternalContractDocumentsResponseDto>>;
369
+ /**
370
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
371
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
372
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
373
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
374
+ * @param {*} [options] Override http request option.
375
+ * @throws {RequiredError}
376
+ */
377
+ createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CreateFileUploadUrl201Response>>;
337
378
  /**
338
379
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
339
380
  * @summary 파일 다운로드
@@ -368,7 +409,7 @@ export declare const PartnerApiApiFp: (configuration?: Configuration) => {
368
409
  */
369
410
  getBidStatement(bidRef: string, paperCode?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetBidStatement200Response>>;
370
411
  /**
371
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
412
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
372
413
  * @summary 파일 정보 조회
373
414
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
374
415
  * @param {*} [options] Override http request option.
@@ -507,8 +548,8 @@ export declare const PartnerApiApiFp: (configuration?: Configuration) => {
507
548
  */
508
549
  updateBid(bidRef: string, ifMatch: string, idempotencyKey: string, updateBidRequestDto: UpdateBidRequestDto, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<UpdateBid200Response>>;
509
550
  /**
510
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
511
- * @summary 공고 첨부파일 업로드
551
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
552
+ * @summary 공고 첨부파일 업로드 (한 번에)
512
553
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
513
554
  * @param {UploadFileRequestDto} uploadFileRequestDto
514
555
  * @param {*} [options] Override http request option.
@@ -540,6 +581,16 @@ export declare const PartnerApiApiFactory: (configuration?: Configuration, baseP
540
581
  * @throws {RequiredError}
541
582
  */
542
583
  completeAcceptance(bidRef: string, idempotencyKey: string, completeAcceptanceRequestDto: CompleteAcceptanceRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CompleteAcceptance200Response>;
584
+ /**
585
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
586
+ * @summary 첨부파일 업로드 확정
587
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
588
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
589
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
590
+ * @param {*} [options] Override http request option.
591
+ * @throws {RequiredError}
592
+ */
593
+ completeFileUpload(fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<UploadFile201Response>;
543
594
  /**
544
595
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
545
596
  * @summary 정산 마감
@@ -567,6 +618,15 @@ export declare const PartnerApiApiFactory: (configuration?: Configuration, baseP
567
618
  * @throws {RequiredError}
568
619
  */
569
620
  createExternalContractDocuments(idempotencyKey: string, createExternalContractDocumentsRequestDto: CreateExternalContractDocumentsRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateExternalContractDocumentsResponseDto>;
621
+ /**
622
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
623
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
624
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
625
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
626
+ * @param {*} [options] Override http request option.
627
+ * @throws {RequiredError}
628
+ */
629
+ createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<CreateFileUploadUrl201Response>;
570
630
  /**
571
631
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
572
632
  * @summary 파일 다운로드
@@ -601,7 +661,7 @@ export declare const PartnerApiApiFactory: (configuration?: Configuration, baseP
601
661
  */
602
662
  getBidStatement(bidRef: string, paperCode?: number, options?: RawAxiosRequestConfig): AxiosPromise<GetBidStatement200Response>;
603
663
  /**
604
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
664
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
605
665
  * @summary 파일 정보 조회
606
666
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
607
667
  * @param {*} [options] Override http request option.
@@ -740,8 +800,8 @@ export declare const PartnerApiApiFactory: (configuration?: Configuration, baseP
740
800
  */
741
801
  updateBid(bidRef: string, ifMatch: string, idempotencyKey: string, updateBidRequestDto: UpdateBidRequestDto, options?: RawAxiosRequestConfig): AxiosPromise<UpdateBid200Response>;
742
802
  /**
743
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
744
- * @summary 공고 첨부파일 업로드
803
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
804
+ * @summary 공고 첨부파일 업로드 (한 번에)
745
805
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
746
806
  * @param {UploadFileRequestDto} uploadFileRequestDto
747
807
  * @param {*} [options] Override http request option.
@@ -773,6 +833,16 @@ export declare class PartnerApiApi extends BaseAPI {
773
833
  * @throws {RequiredError}
774
834
  */
775
835
  completeAcceptance(bidRef: string, idempotencyKey: string, completeAcceptanceRequestDto: CompleteAcceptanceRequestDto, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<CompleteAcceptance200Response, any, {}>>;
836
+ /**
837
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
838
+ * @summary 첨부파일 업로드 확정
839
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
840
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
841
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
842
+ * @param {*} [options] Override http request option.
843
+ * @throws {RequiredError}
844
+ */
845
+ completeFileUpload(fileKey: string, idempotencyKey: string, completeUploadRequestDto: CompleteUploadRequestDto, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<UploadFile201Response, any, {}>>;
776
846
  /**
777
847
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
778
848
  * @summary 정산 마감
@@ -800,6 +870,15 @@ export declare class PartnerApiApi extends BaseAPI {
800
870
  * @throws {RequiredError}
801
871
  */
802
872
  createExternalContractDocuments(idempotencyKey: string, createExternalContractDocumentsRequestDto: CreateExternalContractDocumentsRequestDto, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<CreateExternalContractDocumentsResponseDto, any, {}>>;
873
+ /**
874
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 1회용 서명 URL 을 발급합니다. 3단계로 씁니다. 1. 이 호출로 `fileKey` 와 `uploadUrl` 을 받습니다. 2. `uploadUrl` 에 파일 본문을 `PUT` 합니다 — 응답의 `contentType` 을 `Content-Type` 헤더에 그대로 실으세요. 이 요청은 c-market 을 거치지 않습니다. 3. `POST /v2/files/{fileKey}/complete` 로 확정합니다. **`POST /v2/files` 와 언제 갈리나:** 작은 첨부는 `POST /v2/files` 한 번이 간단합니다. 다만 그 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 원본 23MB 부근이 천장입니다. 이 경로는 바이트가 지나가지 않아 **100MB** 까지 올라갑니다. **`uploadUrl` 은 1회용입니다.** 덮어쓰기가 막혀 있고 `expiresIn` 초 뒤 만료됩니다 — 저장해 두고 재사용하지 마시고, 만료됐다면 이 호출부터 다시 하세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
875
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
876
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
877
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
878
+ * @param {*} [options] Override http request option.
879
+ * @throws {RequiredError}
880
+ */
881
+ createFileUploadUrl(idempotencyKey: string, createUploadUrlRequestDto: CreateUploadUrlRequestDto, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<CreateFileUploadUrl201Response, any, {}>>;
803
882
  /**
804
883
  * 무인증 — `fileKey` 자체가 capability 다(키를 아는 쪽이 곧 접근 권한을 가진다). 파트너 응답의 `fileUrl`/`fullUrl` 이 이 URL 을 가리킨다. 요청 시점에 서명하므로 URL 을 저장해 두어도 만료되지 않는다. 응답은 실제 저장소 URL 로의 302 리다이렉트이며 리다이렉트 타깃은 1시간 뒤 만료되므로 302 자체를 캐시하지 말 것(`Cache-Control: no-store`). --- **응답 형태가 동결된 표면입니다.** 이미 연동 중인 시스템이 있어 응답 필드를 추가하거나 이름을 바꾸지 않습니다. 다른 `/v2` 엔드포인트와 달리 `{data,meta}` 봉투를 씌우지 않으므로 응답 본문이 곧 위 스키마입니다. 지금 연동하셔도 계속 동작합니다 — 다만 이 경로에 새 기능이 추가되지는 않습니다. **대체 계획:** 이미 있습니다 — `GET /v2/files/{fileKey}` 가 파일 메타와 `downloadUrl` 을 v2 응답 규약으로 돌려줍니다. 이 안정 URL 은 파트너 응답의 `fileUrl`/`fullUrl` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
805
884
  * @summary 파일 다운로드
@@ -834,7 +913,7 @@ export declare class PartnerApiApi extends BaseAPI {
834
913
  */
835
914
  getBidStatement(bidRef: string, paperCode?: number, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<GetBidStatement200Response, any, {}>>;
836
915
  /**
837
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
916
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
838
917
  * @summary 파일 정보 조회
839
918
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
840
919
  * @param {*} [options] Override http request option.
@@ -973,8 +1052,8 @@ export declare class PartnerApiApi extends BaseAPI {
973
1052
  */
974
1053
  updateBid(bidRef: string, ifMatch: string, idempotencyKey: string, updateBidRequestDto: UpdateBidRequestDto, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<UpdateBid200Response, any, {}>>;
975
1054
  /**
976
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
977
- * @summary 공고 첨부파일 업로드
1055
+ * 파일 본문을 `base64` 또는 `url` 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 실으세요. **크기 상한이 다른 경로가 하나 더 있습니다.** 이 경로는 본문이 c-market 을 통과하므로 base64 팽창(4/3)까지 얹혀 **원본 23MB 부근**이 천장입니다(`url` 로 제출하면 c-market 이 대신 내려받으므로 그 제약은 없습니다). 더 큰 파일은 `POST /v2/files/upload-url` 로 서명 URL 을 받아 스토리지에 직접 올리세요 — **100MB** 까지 됩니다. **공고 등록에 파일을 함께 실을 수도 있습니다.** `POST /v2/bids` 의 `attachments` 원소에 `{ fileName, url }`·`{ fileName, base64 }` 를 그대로 넣으면 호출 없이 한 번에 끝납니다. 여러 공고에 같은 파일을 재사용하거나 큰 파일을 다룰 때만 `fileKey` 를 먼저 만드세요. **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1056
+ * @summary 공고 첨부파일 업로드 (한 번에)
978
1057
  * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
979
1058
  * @param {UploadFileRequestDto} uploadFileRequestDto
980
1059
  * @param {*} [options] Override http request option.