@cmarket/partner-sdk 36.1.0 → 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 (666) hide show
  1. package/README.md +12 -5
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-api-api.ts +258 -90
  4. package/api/products-api.ts +5 -5
  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 +156 -81
  13. package/dist/api/partner-api-api.js +246 -90
  14. package/dist/api/products-api.d.ts +5 -5
  15. package/dist/api/products-api.js +5 -5
  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 +156 -81
  29. package/dist/esm/api/partner-api-api.js +246 -90
  30. package/dist/esm/api/products-api.d.ts +5 -5
  31. package/dist/esm/api/products-api.js +5 -5
  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 +166 -36
  540. package/docs/ProductsApi.md +2 -2
  541. package/docs/UpdateBidRequestDto.md +1 -1
  542. package/docs/UploadUrlCreatedResponseDto.md +26 -0
  543. package/index.ts +1 -1
  544. package/models/acceptance-result-response-dto.ts +1 -1
  545. package/models/acknowledge-product-receipt200-response.ts +1 -1
  546. package/models/acknowledge-products-request-dto.ts +1 -1
  547. package/models/api-catalog-dto.ts +1 -1
  548. package/models/api-catalog-entry-dto.ts +1 -1
  549. package/models/api-catalog-link-dto.ts +1 -1
  550. package/models/authorization-server-metadata-dto.ts +1 -1
  551. package/models/award-method-public.ts +1 -1
  552. package/models/award-registered-v2-response-dto.ts +1 -1
  553. package/models/award-reverted-v2-response-dto.ts +1 -1
  554. package/models/bid-acceptance-dto.ts +1 -1
  555. package/models/bid-attachment-input-dto.ts +35 -0
  556. package/models/bid-bond-dto.ts +1 -1
  557. package/models/bid-cancelled-response-dto.ts +1 -1
  558. package/models/bid-contact-dto.ts +1 -1
  559. package/models/bid-contacts-dto.ts +1 -1
  560. package/models/bid-contract-document-dto.ts +1 -1
  561. package/models/bid-delivery-terms-dto.ts +1 -1
  562. package/models/bid-detail-response-dto.ts +1 -1
  563. package/models/bid-document-dto.ts +1 -1
  564. package/models/bid-failed-v2-response-dto.ts +1 -1
  565. package/models/bid-item-dto.ts +1 -1
  566. package/models/bid-lifecycle-dto.ts +1 -1
  567. package/models/bid-manager-dto.ts +1 -1
  568. package/models/bid-payment-terms-dto.ts +1 -1
  569. package/models/bid-product-dto.ts +1 -1
  570. package/models/bid-public-status.ts +1 -1
  571. package/models/bid-registered-response-dto.ts +1 -1
  572. package/models/bid-result-participant-attachment-dto.ts +1 -1
  573. package/models/bid-result-participant-dto.ts +1 -1
  574. package/models/bid-results-response-dto.ts +1 -1
  575. package/models/bid-settlement-line-item-dto.ts +1 -1
  576. package/models/bid-settlement-participant-dto.ts +1 -1
  577. package/models/bid-settlement-response-dto.ts +1 -1
  578. package/models/bid-statement-response-dto.ts +1 -1
  579. package/models/bid-summary-dto.ts +1 -1
  580. package/models/bid-type-public.ts +1 -1
  581. package/models/bid-updated-response-dto.ts +1 -1
  582. package/models/cancel-bid-request-dto.ts +1 -1
  583. package/models/cancel-bid200-response.ts +1 -1
  584. package/models/card-payment-request-response-dto.ts +1 -1
  585. package/models/complete-acceptance-request-dto.ts +1 -1
  586. package/models/complete-acceptance200-response.ts +1 -1
  587. package/models/complete-invoice200-response.ts +1 -1
  588. package/models/complete-upload-request-dto.ts +23 -0
  589. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  590. package/models/create-bid-request-dto.ts +6 -3
  591. package/models/create-card-payment-dto.ts +1 -1
  592. package/models/create-card-payment-request-dto.ts +1 -1
  593. package/models/create-card-payment200-response.ts +1 -1
  594. package/models/create-external-contract-documents-request-dto.ts +1 -1
  595. package/models/create-external-contract-documents-response-dto.ts +1 -1
  596. package/models/create-file-upload-url201-response.ts +27 -0
  597. package/models/create-upload-url-request-dto.ts +27 -0
  598. package/models/delivery-date-type-public.ts +1 -1
  599. package/models/delivery-method-public.ts +1 -1
  600. package/models/excellent-procurement-public.ts +1 -1
  601. package/models/external-contract-document-item-dto.ts +1 -1
  602. package/models/external-contract-documents-response-dto.ts +1 -1
  603. package/models/external-contract-item-dto.ts +1 -1
  604. package/models/external-contract-snapshot-dto.ts +1 -1
  605. package/models/external-document-inputs-dto.ts +1 -1
  606. package/models/file-meta-response-dto.ts +1 -1
  607. package/models/file-uploaded-response-dto.ts +1 -1
  608. package/models/generated-external-contract-document-dto.ts +1 -1
  609. package/models/get-bid-settlement200-response.ts +1 -1
  610. package/models/get-bid-statement200-response.ts +1 -1
  611. package/models/get-bid200-response.ts +1 -1
  612. package/models/get-file-meta200-response.ts +1 -1
  613. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  614. package/models/green-product-public.ts +1 -1
  615. package/models/health-controller-check200-response.ts +1 -1
  616. package/models/health-response-dto.ts +1 -1
  617. package/models/hierarchical-region-dto.ts +1 -1
  618. package/models/index.ts +5 -0
  619. package/models/introspect-request-dto.ts +1 -1
  620. package/models/introspection-response-dto.ts +1 -1
  621. package/models/invalid-param-dto.ts +1 -1
  622. package/models/invoice-completed-response-dto.ts +1 -1
  623. package/models/invoice-split-response-dto.ts +1 -1
  624. package/models/legal-mandatory-public.ts +1 -1
  625. package/models/list-bid-results200-response.ts +1 -1
  626. package/models/list-bids-response-dto.ts +1 -1
  627. package/models/list-bids200-response.ts +1 -1
  628. package/models/list-products200-response.ts +1 -1
  629. package/models/mark-bid-failed-request-dto.ts +1 -1
  630. package/models/mark-bid-failed201-response.ts +1 -1
  631. package/models/negotiation-score-dto.ts +1 -1
  632. package/models/negotiation-scored-v2-response-dto.ts +1 -1
  633. package/models/oauth-error-response-dto.ts +1 -1
  634. package/models/payment-method-public.ts +1 -1
  635. package/models/preconditions-dto.ts +1 -1
  636. package/models/problem-details-dto.ts +1 -1
  637. package/models/product-receipt-response-dto.ts +1 -1
  638. package/models/product-response-dto.ts +1 -1
  639. package/models/protected-resource-metadata-dto.ts +1 -1
  640. package/models/register-award-request-dto.ts +1 -1
  641. package/models/register-award201-response.ts +1 -1
  642. package/models/register-bid201-response.ts +1 -1
  643. package/models/register-semo-contract-request-dto.ts +1 -1
  644. package/models/request-invoice-split-request-dto.ts +1 -1
  645. package/models/request-invoice-split200-response.ts +1 -1
  646. package/models/retiree-roster-input-dto.ts +1 -1
  647. package/models/retiree-roster-row-dto.ts +1 -1
  648. package/models/revert-award-request-dto.ts +1 -1
  649. package/models/revert-award200-response.ts +1 -1
  650. package/models/revoke-request-dto.ts +1 -1
  651. package/models/semo-contract-registered-response-dto.ts +1 -1
  652. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  653. package/models/statement-document-dto.ts +1 -1
  654. package/models/statement-product-dto.ts +1 -1
  655. package/models/submit-negotiation-scores-request-dto.ts +1 -1
  656. package/models/submit-negotiation-scores201-response.ts +1 -1
  657. package/models/supplier-card-payable-response-dto.ts +1 -1
  658. package/models/supplier-tax-type.ts +1 -1
  659. package/models/token-request-dto.ts +1 -1
  660. package/models/token-response-dto.ts +1 -1
  661. package/models/update-bid-request-dto.ts +6 -3
  662. package/models/update-bid200-response.ts +1 -1
  663. package/models/upload-file-request-dto.ts +1 -1
  664. package/models/upload-file201-response.ts +1 -1
  665. package/models/upload-url-created-response-dto.ts +35 -0
  666. 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\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `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.0
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).
@@ -35,7 +35,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
35
35
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
36
36
  * @summary 공고 취소
37
37
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
38
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
38
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
39
39
  * @param {CancelBidRequestDto} cancelBidRequestDto
40
40
  * @param {*} [options] Override http request option.
41
41
  * @throws {RequiredError}
@@ -79,7 +79,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
79
79
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
80
80
  * @summary 검수완료 전송
81
81
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
82
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
82
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
83
83
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
84
84
  * @param {*} [options] Override http request option.
85
85
  * @throws {RequiredError}
@@ -119,11 +119,55 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
119
119
  options: localVarRequestOptions,
120
120
  };
121
121
  }),
122
+ /**
123
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
124
+ * @summary 첨부파일 업로드 확정
125
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
126
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
127
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
128
+ * @param {*} [options] Override http request option.
129
+ * @throws {RequiredError}
130
+ */
131
+ completeFileUpload: (fileKey_1, idempotencyKey_1, completeUploadRequestDto_1, ...args_1) => __awaiter(this, [fileKey_1, idempotencyKey_1, completeUploadRequestDto_1, ...args_1], void 0, function* (fileKey, idempotencyKey, completeUploadRequestDto, options = {}) {
132
+ // verify required parameter 'fileKey' is not null or undefined
133
+ assertParamExists('completeFileUpload', 'fileKey', fileKey);
134
+ // verify required parameter 'idempotencyKey' is not null or undefined
135
+ assertParamExists('completeFileUpload', 'idempotencyKey', idempotencyKey);
136
+ // verify required parameter 'completeUploadRequestDto' is not null or undefined
137
+ assertParamExists('completeFileUpload', 'completeUploadRequestDto', completeUploadRequestDto);
138
+ const localVarPath = `/v2/files/{fileKey}/complete`
139
+ .replace('{fileKey}', encodeURIComponent(String(fileKey)));
140
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
141
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
142
+ let baseOptions;
143
+ if (configuration) {
144
+ baseOptions = configuration.baseOptions;
145
+ }
146
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
147
+ const localVarHeaderParameter = {};
148
+ const localVarQueryParameter = {};
149
+ // authentication partner-oauth2 required
150
+ // oauth required
151
+ yield setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["files:write"], configuration);
152
+ localVarHeaderParameter['Content-Type'] = 'application/json';
153
+ localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
154
+ if (idempotencyKey != null) {
155
+ localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
156
+ }
157
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
158
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
159
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
160
+ localVarRequestOptions.data = serializeDataIfNeeded(completeUploadRequestDto, localVarRequestOptions, configuration);
161
+ return {
162
+ url: toPathString(localVarUrlObj),
163
+ options: localVarRequestOptions,
164
+ };
165
+ }),
122
166
  /**
123
167
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
124
168
  * @summary 정산 마감
125
169
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
126
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
170
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
127
171
  * @param {*} [options] Override http request option.
128
172
  * @throws {RequiredError}
129
173
  */
@@ -161,7 +205,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
161
205
  /**
162
206
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
163
207
  * @summary 결제창 발행
164
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
208
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
165
209
  * @param {CreateCardPaymentDto} createCardPaymentDto
166
210
  * @param {*} [options] Override http request option.
167
211
  * @throws {RequiredError}
@@ -201,7 +245,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
201
245
  /**
202
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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
203
247
  * @summary 계약서류 생성
204
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
248
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
205
249
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
206
250
  * @param {*} [options] Override http request option.
207
251
  * @throws {RequiredError}
@@ -238,6 +282,46 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
238
282
  options: localVarRequestOptions,
239
283
  };
240
284
  }),
285
+ /**
286
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
287
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
288
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
289
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
290
+ * @param {*} [options] Override http request option.
291
+ * @throws {RequiredError}
292
+ */
293
+ createFileUploadUrl: (idempotencyKey_1, createUploadUrlRequestDto_1, ...args_1) => __awaiter(this, [idempotencyKey_1, createUploadUrlRequestDto_1, ...args_1], void 0, function* (idempotencyKey, createUploadUrlRequestDto, options = {}) {
294
+ // verify required parameter 'idempotencyKey' is not null or undefined
295
+ assertParamExists('createFileUploadUrl', 'idempotencyKey', idempotencyKey);
296
+ // verify required parameter 'createUploadUrlRequestDto' is not null or undefined
297
+ assertParamExists('createFileUploadUrl', 'createUploadUrlRequestDto', createUploadUrlRequestDto);
298
+ const localVarPath = `/v2/files/upload-url`;
299
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
300
+ const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
301
+ let baseOptions;
302
+ if (configuration) {
303
+ baseOptions = configuration.baseOptions;
304
+ }
305
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
306
+ const localVarHeaderParameter = {};
307
+ const localVarQueryParameter = {};
308
+ // authentication partner-oauth2 required
309
+ // oauth required
310
+ yield setOAuthToObject(localVarHeaderParameter, "partner-oauth2", ["files:write"], configuration);
311
+ localVarHeaderParameter['Content-Type'] = 'application/json';
312
+ localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
313
+ if (idempotencyKey != null) {
314
+ localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
315
+ }
316
+ setSearchParams(localVarUrlObj, localVarQueryParameter);
317
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
318
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
319
+ localVarRequestOptions.data = serializeDataIfNeeded(createUploadUrlRequestDto, localVarRequestOptions, configuration);
320
+ return {
321
+ url: toPathString(localVarUrlObj),
322
+ options: localVarRequestOptions,
323
+ };
324
+ }),
241
325
  /**
242
326
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
243
327
  * @summary 파일 다운로드
@@ -371,7 +455,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
371
455
  };
372
456
  }),
373
457
  /**
374
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
458
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
375
459
  * @summary 파일 정보 조회
376
460
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
377
461
  * @param {*} [options] Override http request option.
@@ -624,7 +708,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
624
708
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
625
709
  * @summary 유찰 처리
626
710
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
627
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
711
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
628
712
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
629
713
  * @param {*} [options] Override http request option.
630
714
  * @throws {RequiredError}
@@ -668,7 +752,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
668
752
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
669
753
  * @summary 낙찰 결과 전송
670
754
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
671
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
755
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
672
756
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
673
757
  * @param {*} [options] Override http request option.
674
758
  * @throws {RequiredError}
@@ -711,7 +795,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
711
795
  /**
712
796
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
713
797
  * @summary 공고 등록
714
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
798
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
715
799
  * @param {CreateBidRequestDto} createBidRequestDto
716
800
  * @param {*} [options] Override http request option.
717
801
  * @throws {RequiredError}
@@ -751,7 +835,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
751
835
  /**
752
836
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
753
837
  * @summary 계약 발행대상 등록
754
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
838
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
755
839
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
756
840
  * @param {*} [options] Override http request option.
757
841
  * @throws {RequiredError}
@@ -792,7 +876,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
792
876
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
793
877
  * @summary 계산서 분할 발급 청구
794
878
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
795
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
879
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
796
880
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
797
881
  * @param {*} [options] Override http request option.
798
882
  * @throws {RequiredError}
@@ -836,7 +920,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
836
920
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
837
921
  * @summary 낙찰 되돌리기
838
922
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
839
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
923
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
840
924
  * @param {RevertAwardRequestDto} revertAwardRequestDto
841
925
  * @param {*} [options] Override http request option.
842
926
  * @throws {RequiredError}
@@ -880,7 +964,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
880
964
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
881
965
  * @summary 협상 점수평가
882
966
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
883
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
967
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
884
968
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
885
969
  * @param {*} [options] Override http request option.
886
970
  * @throws {RequiredError}
@@ -924,20 +1008,17 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
924
1008
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
925
1009
  * @summary 공고 수정
926
1010
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
927
- * @param {string} ifMatch
928
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
929
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1011
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
1012
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
930
1013
  * @param {UpdateBidRequestDto} updateBidRequestDto
931
1014
  * @param {*} [options] Override http request option.
932
1015
  * @throws {RequiredError}
933
1016
  */
934
- updateBid: (bidRef_1, ifMatch_1, ifMatch2_1, idempotencyKey_1, updateBidRequestDto_1, ...args_1) => __awaiter(this, [bidRef_1, ifMatch_1, ifMatch2_1, idempotencyKey_1, updateBidRequestDto_1, ...args_1], void 0, function* (bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options = {}) {
1017
+ updateBid: (bidRef_1, ifMatch_1, idempotencyKey_1, updateBidRequestDto_1, ...args_1) => __awaiter(this, [bidRef_1, ifMatch_1, idempotencyKey_1, updateBidRequestDto_1, ...args_1], void 0, function* (bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options = {}) {
935
1018
  // verify required parameter 'bidRef' is not null or undefined
936
1019
  assertParamExists('updateBid', 'bidRef', bidRef);
937
1020
  // verify required parameter 'ifMatch' is not null or undefined
938
1021
  assertParamExists('updateBid', 'ifMatch', ifMatch);
939
- // verify required parameter 'ifMatch2' is not null or undefined
940
- assertParamExists('updateBid', 'ifMatch2', ifMatch2);
941
1022
  // verify required parameter 'idempotencyKey' is not null or undefined
942
1023
  assertParamExists('updateBid', 'idempotencyKey', idempotencyKey);
943
1024
  // verify required parameter 'updateBidRequestDto' is not null or undefined
@@ -959,10 +1040,7 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
959
1040
  localVarHeaderParameter['Content-Type'] = 'application/json';
960
1041
  localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
961
1042
  if (ifMatch != null) {
962
- localVarHeaderParameter['if-match'] = String(ifMatch);
963
- }
964
- if (ifMatch2 != null) {
965
- localVarHeaderParameter['If-Match'] = String(ifMatch2);
1043
+ localVarHeaderParameter['If-Match'] = String(ifMatch);
966
1044
  }
967
1045
  if (idempotencyKey != null) {
968
1046
  localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
@@ -977,9 +1055,9 @@ export const PartnerApiApiAxiosParamCreator = function (configuration) {
977
1055
  };
978
1056
  }),
979
1057
  /**
980
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
981
- * @summary 공고 첨부파일 업로드
982
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1058
+ * 파일 본문을 `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` 헤더 필수.
1059
+ * @summary 공고 첨부파일 업로드 (한 번에)
1060
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
983
1061
  * @param {UploadFileRequestDto} uploadFileRequestDto
984
1062
  * @param {*} [options] Override http request option.
985
1063
  * @throws {RequiredError}
@@ -1028,7 +1106,7 @@ export const PartnerApiApiFp = function (configuration) {
1028
1106
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
1029
1107
  * @summary 공고 취소
1030
1108
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1031
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1109
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1032
1110
  * @param {CancelBidRequestDto} cancelBidRequestDto
1033
1111
  * @param {*} [options] Override http request option.
1034
1112
  * @throws {RequiredError}
@@ -1046,7 +1124,7 @@ export const PartnerApiApiFp = function (configuration) {
1046
1124
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1047
1125
  * @summary 검수완료 전송
1048
1126
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1049
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1127
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1050
1128
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
1051
1129
  * @param {*} [options] Override http request option.
1052
1130
  * @throws {RequiredError}
@@ -1060,11 +1138,29 @@ export const PartnerApiApiFp = function (configuration) {
1060
1138
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1061
1139
  });
1062
1140
  },
1141
+ /**
1142
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1143
+ * @summary 첨부파일 업로드 확정
1144
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1145
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1146
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1147
+ * @param {*} [options] Override http request option.
1148
+ * @throws {RequiredError}
1149
+ */
1150
+ completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options) {
1151
+ return __awaiter(this, void 0, void 0, function* () {
1152
+ var _a, _b, _c;
1153
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options);
1154
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1155
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PartnerApiApi.completeFileUpload']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1156
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1157
+ });
1158
+ },
1063
1159
  /**
1064
1160
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1065
1161
  * @summary 정산 마감
1066
1162
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1067
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1163
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1068
1164
  * @param {*} [options] Override http request option.
1069
1165
  * @throws {RequiredError}
1070
1166
  */
@@ -1080,7 +1176,7 @@ export const PartnerApiApiFp = function (configuration) {
1080
1176
  /**
1081
1177
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1082
1178
  * @summary 결제창 발행
1083
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1179
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1084
1180
  * @param {CreateCardPaymentDto} createCardPaymentDto
1085
1181
  * @param {*} [options] Override http request option.
1086
1182
  * @throws {RequiredError}
@@ -1097,7 +1193,7 @@ export const PartnerApiApiFp = function (configuration) {
1097
1193
  /**
1098
1194
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1099
1195
  * @summary 계약서류 생성
1100
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1196
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1101
1197
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
1102
1198
  * @param {*} [options] Override http request option.
1103
1199
  * @throws {RequiredError}
@@ -1111,6 +1207,23 @@ export const PartnerApiApiFp = function (configuration) {
1111
1207
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1112
1208
  });
1113
1209
  },
1210
+ /**
1211
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
1212
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1213
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1214
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1215
+ * @param {*} [options] Override http request option.
1216
+ * @throws {RequiredError}
1217
+ */
1218
+ createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
1219
+ return __awaiter(this, void 0, void 0, function* () {
1220
+ var _a, _b, _c;
1221
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options);
1222
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1223
+ const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PartnerApiApi.createFileUploadUrl']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1224
+ return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1225
+ });
1226
+ },
1114
1227
  /**
1115
1228
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1116
1229
  * @summary 파일 다운로드
@@ -1177,7 +1290,7 @@ export const PartnerApiApiFp = function (configuration) {
1177
1290
  });
1178
1291
  },
1179
1292
  /**
1180
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1293
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1181
1294
  * @summary 파일 정보 조회
1182
1295
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1183
1296
  * @param {*} [options] Override http request option.
@@ -1296,7 +1409,7 @@ export const PartnerApiApiFp = function (configuration) {
1296
1409
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1297
1410
  * @summary 유찰 처리
1298
1411
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1299
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1412
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1300
1413
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
1301
1414
  * @param {*} [options] Override http request option.
1302
1415
  * @throws {RequiredError}
@@ -1314,7 +1427,7 @@ export const PartnerApiApiFp = function (configuration) {
1314
1427
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1315
1428
  * @summary 낙찰 결과 전송
1316
1429
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1317
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1430
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1318
1431
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
1319
1432
  * @param {*} [options] Override http request option.
1320
1433
  * @throws {RequiredError}
@@ -1331,7 +1444,7 @@ export const PartnerApiApiFp = function (configuration) {
1331
1444
  /**
1332
1445
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
1333
1446
  * @summary 공고 등록
1334
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1447
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1335
1448
  * @param {CreateBidRequestDto} createBidRequestDto
1336
1449
  * @param {*} [options] Override http request option.
1337
1450
  * @throws {RequiredError}
@@ -1348,7 +1461,7 @@ export const PartnerApiApiFp = function (configuration) {
1348
1461
  /**
1349
1462
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1350
1463
  * @summary 계약 발행대상 등록
1351
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1464
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1352
1465
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
1353
1466
  * @param {*} [options] Override http request option.
1354
1467
  * @throws {RequiredError}
@@ -1366,7 +1479,7 @@ export const PartnerApiApiFp = function (configuration) {
1366
1479
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
1367
1480
  * @summary 계산서 분할 발급 청구
1368
1481
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1369
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1482
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1370
1483
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
1371
1484
  * @param {*} [options] Override http request option.
1372
1485
  * @throws {RequiredError}
@@ -1384,7 +1497,7 @@ export const PartnerApiApiFp = function (configuration) {
1384
1497
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
1385
1498
  * @summary 낙찰 되돌리기
1386
1499
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1387
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1500
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1388
1501
  * @param {RevertAwardRequestDto} revertAwardRequestDto
1389
1502
  * @param {*} [options] Override http request option.
1390
1503
  * @throws {RequiredError}
@@ -1402,7 +1515,7 @@ export const PartnerApiApiFp = function (configuration) {
1402
1515
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1403
1516
  * @summary 협상 점수평가
1404
1517
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1405
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1518
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1406
1519
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
1407
1520
  * @param {*} [options] Override http request option.
1408
1521
  * @throws {RequiredError}
@@ -1420,26 +1533,25 @@ export const PartnerApiApiFp = function (configuration) {
1420
1533
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
1421
1534
  * @summary 공고 수정
1422
1535
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1423
- * @param {string} ifMatch
1424
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
1425
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1536
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
1537
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1426
1538
  * @param {UpdateBidRequestDto} updateBidRequestDto
1427
1539
  * @param {*} [options] Override http request option.
1428
1540
  * @throws {RequiredError}
1429
1541
  */
1430
- updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
1542
+ updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
1431
1543
  return __awaiter(this, void 0, void 0, function* () {
1432
1544
  var _a, _b, _c;
1433
- const localVarAxiosArgs = yield localVarAxiosParamCreator.updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options);
1545
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options);
1434
1546
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1435
1547
  const localVarOperationServerBasePath = (_c = (_b = operationServerMap['PartnerApiApi.updateBid']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1436
1548
  return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1437
1549
  });
1438
1550
  },
1439
1551
  /**
1440
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1441
- * @summary 공고 첨부파일 업로드
1442
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1552
+ * 파일 본문을 `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` 헤더 필수.
1553
+ * @summary 공고 첨부파일 업로드 (한 번에)
1554
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1443
1555
  * @param {UploadFileRequestDto} uploadFileRequestDto
1444
1556
  * @param {*} [options] Override http request option.
1445
1557
  * @throws {RequiredError}
@@ -1465,7 +1577,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1465
1577
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
1466
1578
  * @summary 공고 취소
1467
1579
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1468
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1580
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1469
1581
  * @param {CancelBidRequestDto} cancelBidRequestDto
1470
1582
  * @param {*} [options] Override http request option.
1471
1583
  * @throws {RequiredError}
@@ -1477,7 +1589,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1477
1589
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1478
1590
  * @summary 검수완료 전송
1479
1591
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1480
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1592
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1481
1593
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
1482
1594
  * @param {*} [options] Override http request option.
1483
1595
  * @throws {RequiredError}
@@ -1485,11 +1597,23 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1485
1597
  completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options) {
1486
1598
  return localVarFp.completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(axios, basePath));
1487
1599
  },
1600
+ /**
1601
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1602
+ * @summary 첨부파일 업로드 확정
1603
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1604
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1605
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1606
+ * @param {*} [options] Override http request option.
1607
+ * @throws {RequiredError}
1608
+ */
1609
+ completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options) {
1610
+ return localVarFp.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(axios, basePath));
1611
+ },
1488
1612
  /**
1489
1613
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1490
1614
  * @summary 정산 마감
1491
1615
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1492
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1616
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1493
1617
  * @param {*} [options] Override http request option.
1494
1618
  * @throws {RequiredError}
1495
1619
  */
@@ -1499,7 +1623,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1499
1623
  /**
1500
1624
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1501
1625
  * @summary 결제창 발행
1502
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1626
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1503
1627
  * @param {CreateCardPaymentDto} createCardPaymentDto
1504
1628
  * @param {*} [options] Override http request option.
1505
1629
  * @throws {RequiredError}
@@ -1510,7 +1634,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1510
1634
  /**
1511
1635
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1512
1636
  * @summary 계약서류 생성
1513
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1637
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1514
1638
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
1515
1639
  * @param {*} [options] Override http request option.
1516
1640
  * @throws {RequiredError}
@@ -1518,6 +1642,17 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1518
1642
  createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options) {
1519
1643
  return localVarFp.createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(axios, basePath));
1520
1644
  },
1645
+ /**
1646
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
1647
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1648
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1649
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1650
+ * @param {*} [options] Override http request option.
1651
+ * @throws {RequiredError}
1652
+ */
1653
+ createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
1654
+ return localVarFp.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(axios, basePath));
1655
+ },
1521
1656
  /**
1522
1657
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1523
1658
  * @summary 파일 다운로드
@@ -1560,7 +1695,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1560
1695
  return localVarFp.getBidStatement(bidRef, paperCode, options).then((request) => request(axios, basePath));
1561
1696
  },
1562
1697
  /**
1563
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1698
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1564
1699
  * @summary 파일 정보 조회
1565
1700
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1566
1701
  * @param {*} [options] Override http request option.
@@ -1637,7 +1772,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1637
1772
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1638
1773
  * @summary 유찰 처리
1639
1774
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1640
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1775
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1641
1776
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
1642
1777
  * @param {*} [options] Override http request option.
1643
1778
  * @throws {RequiredError}
@@ -1649,7 +1784,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1649
1784
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1650
1785
  * @summary 낙찰 결과 전송
1651
1786
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1652
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1787
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1653
1788
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
1654
1789
  * @param {*} [options] Override http request option.
1655
1790
  * @throws {RequiredError}
@@ -1660,7 +1795,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1660
1795
  /**
1661
1796
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
1662
1797
  * @summary 공고 등록
1663
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1798
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1664
1799
  * @param {CreateBidRequestDto} createBidRequestDto
1665
1800
  * @param {*} [options] Override http request option.
1666
1801
  * @throws {RequiredError}
@@ -1671,7 +1806,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1671
1806
  /**
1672
1807
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1673
1808
  * @summary 계약 발행대상 등록
1674
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1809
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1675
1810
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
1676
1811
  * @param {*} [options] Override http request option.
1677
1812
  * @throws {RequiredError}
@@ -1683,7 +1818,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1683
1818
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
1684
1819
  * @summary 계산서 분할 발급 청구
1685
1820
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1686
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1821
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1687
1822
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
1688
1823
  * @param {*} [options] Override http request option.
1689
1824
  * @throws {RequiredError}
@@ -1695,7 +1830,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1695
1830
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
1696
1831
  * @summary 낙찰 되돌리기
1697
1832
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1698
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1833
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1699
1834
  * @param {RevertAwardRequestDto} revertAwardRequestDto
1700
1835
  * @param {*} [options] Override http request option.
1701
1836
  * @throws {RequiredError}
@@ -1707,7 +1842,7 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1707
1842
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1708
1843
  * @summary 협상 점수평가
1709
1844
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1710
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1845
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1711
1846
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
1712
1847
  * @param {*} [options] Override http request option.
1713
1848
  * @throws {RequiredError}
@@ -1719,20 +1854,19 @@ export const PartnerApiApiFactory = function (configuration, basePath, axios) {
1719
1854
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
1720
1855
  * @summary 공고 수정
1721
1856
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1722
- * @param {string} ifMatch
1723
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
1724
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1857
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
1858
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1725
1859
  * @param {UpdateBidRequestDto} updateBidRequestDto
1726
1860
  * @param {*} [options] Override http request option.
1727
1861
  * @throws {RequiredError}
1728
1862
  */
1729
- updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
1730
- return localVarFp.updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
1863
+ updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
1864
+ return localVarFp.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
1731
1865
  },
1732
1866
  /**
1733
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1734
- * @summary 공고 첨부파일 업로드
1735
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1867
+ * 파일 본문을 `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` 헤더 필수.
1868
+ * @summary 공고 첨부파일 업로드 (한 번에)
1869
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1736
1870
  * @param {UploadFileRequestDto} uploadFileRequestDto
1737
1871
  * @param {*} [options] Override http request option.
1738
1872
  * @throws {RequiredError}
@@ -1750,7 +1884,7 @@ export class PartnerApiApi extends BaseAPI {
1750
1884
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
1751
1885
  * @summary 공고 취소
1752
1886
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1753
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1887
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1754
1888
  * @param {CancelBidRequestDto} cancelBidRequestDto
1755
1889
  * @param {*} [options] Override http request option.
1756
1890
  * @throws {RequiredError}
@@ -1762,7 +1896,7 @@ export class PartnerApiApi extends BaseAPI {
1762
1896
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1763
1897
  * @summary 검수완료 전송
1764
1898
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1765
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1899
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1766
1900
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
1767
1901
  * @param {*} [options] Override http request option.
1768
1902
  * @throws {RequiredError}
@@ -1770,11 +1904,23 @@ export class PartnerApiApi extends BaseAPI {
1770
1904
  completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options) {
1771
1905
  return PartnerApiApiFp(this.configuration).completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(this.axios, this.basePath));
1772
1906
  }
1907
+ /**
1908
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1909
+ * @summary 첨부파일 업로드 확정
1910
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1911
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1912
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1913
+ * @param {*} [options] Override http request option.
1914
+ * @throws {RequiredError}
1915
+ */
1916
+ completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options) {
1917
+ return PartnerApiApiFp(this.configuration).completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(this.axios, this.basePath));
1918
+ }
1773
1919
  /**
1774
1920
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1775
1921
  * @summary 정산 마감
1776
1922
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1777
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1923
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1778
1924
  * @param {*} [options] Override http request option.
1779
1925
  * @throws {RequiredError}
1780
1926
  */
@@ -1784,7 +1930,7 @@ export class PartnerApiApi extends BaseAPI {
1784
1930
  /**
1785
1931
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1786
1932
  * @summary 결제창 발행
1787
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1933
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1788
1934
  * @param {CreateCardPaymentDto} createCardPaymentDto
1789
1935
  * @param {*} [options] Override http request option.
1790
1936
  * @throws {RequiredError}
@@ -1795,7 +1941,7 @@ export class PartnerApiApi extends BaseAPI {
1795
1941
  /**
1796
1942
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1797
1943
  * @summary 계약서류 생성
1798
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1944
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1799
1945
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
1800
1946
  * @param {*} [options] Override http request option.
1801
1947
  * @throws {RequiredError}
@@ -1803,6 +1949,17 @@ export class PartnerApiApi extends BaseAPI {
1803
1949
  createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options) {
1804
1950
  return PartnerApiApiFp(this.configuration).createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(this.axios, this.basePath));
1805
1951
  }
1952
+ /**
1953
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
1954
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1955
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1956
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1957
+ * @param {*} [options] Override http request option.
1958
+ * @throws {RequiredError}
1959
+ */
1960
+ createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
1961
+ return PartnerApiApiFp(this.configuration).createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(this.axios, this.basePath));
1962
+ }
1806
1963
  /**
1807
1964
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1808
1965
  * @summary 파일 다운로드
@@ -1845,7 +2002,7 @@ export class PartnerApiApi extends BaseAPI {
1845
2002
  return PartnerApiApiFp(this.configuration).getBidStatement(bidRef, paperCode, options).then((request) => request(this.axios, this.basePath));
1846
2003
  }
1847
2004
  /**
1848
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
2005
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1849
2006
  * @summary 파일 정보 조회
1850
2007
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1851
2008
  * @param {*} [options] Override http request option.
@@ -1922,7 +2079,7 @@ export class PartnerApiApi extends BaseAPI {
1922
2079
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(FAILED)로 전환됩니다. - 유찰사유 코드와 상세가 기록됩니다. **유찰사유 값 목록(failureReasonCode — 공개값):** | 값 | 의미 | |------|------| | `ABOVE_TARGET_PRICE` | 예정가격 초과 | | `DEPT_MISMATCH` | 자격 미달 | | `NEEDS_EXPERTISE` | 전문성 필요 | | `OTHER` | 기타 (`failureReasonDetail` 필수) | | `NO_PARTICIPANT` | 참가자 없음 | | `SINGLE_PARTICIPANT` | 단독 참가 | | `LESS_THAN_TWO` | 2인 미만 | | `BELOW_MINIMUM` | 최저가 미달 | **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1923
2080
  * @summary 유찰 처리
1924
2081
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1925
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2082
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1926
2083
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
1927
2084
  * @param {*} [options] Override http request option.
1928
2085
  * @throws {RequiredError}
@@ -1934,7 +2091,7 @@ export class PartnerApiApi extends BaseAPI {
1934
2091
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `AWARDED` 를 반환합니다. **호출 시점:** 입찰 마감 후 낙찰자가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 낙찰자(공급사)의 응찰 건이 낙찰 처리됩니다. - 이후 **공고의 조회 상태(status)는 계약진행(CONTRACT_IN_PROGRESS)** 으로 진행합니다. `AWARDED` 라는 공고 status 는 존재하지 않으므로, 낙찰 여부는 `GET /v2/bids/{bidRef}/results` 의 `participants[].isWinner` 또는 `GET /v2/bids/{bidRef}` 의 status(=계약진행)로 관측하세요(`status === \'AWARDED\'` 폴링 금지). - 협상 방식(NEGOTIATION/NEGOTIATION_AUTO) 공고는 이 엔드포인트 전에 `POST /v2/bids/{bidRef}/negotiation-scores`(협상 점수평가)로 평가를 완료해야 합니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1935
2092
  * @summary 낙찰 결과 전송
1936
2093
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1937
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2094
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1938
2095
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
1939
2096
  * @param {*} [options] Override http request option.
1940
2097
  * @throws {RequiredError}
@@ -1945,7 +2102,7 @@ export class PartnerApiApi extends BaseAPI {
1945
2102
  /**
1946
2103
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
1947
2104
  * @summary 공고 등록
1948
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2105
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1949
2106
  * @param {CreateBidRequestDto} createBidRequestDto
1950
2107
  * @param {*} [options] Override http request option.
1951
2108
  * @throws {RequiredError}
@@ -1956,7 +2113,7 @@ export class PartnerApiApi extends BaseAPI {
1956
2113
  /**
1957
2114
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1958
2115
  * @summary 계약 발행대상 등록
1959
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2116
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1960
2117
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
1961
2118
  * @param {*} [options] Override http request option.
1962
2119
  * @throws {RequiredError}
@@ -1968,7 +2125,7 @@ export class PartnerApiApi extends BaseAPI {
1968
2125
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
1969
2126
  * @summary 계산서 분할 발급 청구
1970
2127
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1971
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2128
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1972
2129
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
1973
2130
  * @param {*} [options] Override http request option.
1974
2131
  * @throws {RequiredError}
@@ -1980,7 +2137,7 @@ export class PartnerApiApi extends BaseAPI {
1980
2137
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
1981
2138
  * @summary 낙찰 되돌리기
1982
2139
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1983
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2140
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1984
2141
  * @param {RevertAwardRequestDto} revertAwardRequestDto
1985
2142
  * @param {*} [options] Override http request option.
1986
2143
  * @throws {RequiredError}
@@ -1992,7 +2149,7 @@ export class PartnerApiApi extends BaseAPI {
1992
2149
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1993
2150
  * @summary 협상 점수평가
1994
2151
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1995
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2152
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1996
2153
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
1997
2154
  * @param {*} [options] Override http request option.
1998
2155
  * @throws {RequiredError}
@@ -2004,20 +2161,19 @@ export class PartnerApiApi extends BaseAPI {
2004
2161
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
2005
2162
  * @summary 공고 수정
2006
2163
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
2007
- * @param {string} ifMatch
2008
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
2009
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2164
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
2165
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2010
2166
  * @param {UpdateBidRequestDto} updateBidRequestDto
2011
2167
  * @param {*} [options] Override http request option.
2012
2168
  * @throws {RequiredError}
2013
2169
  */
2014
- updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
2015
- return PartnerApiApiFp(this.configuration).updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
2170
+ updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
2171
+ return PartnerApiApiFp(this.configuration).updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
2016
2172
  }
2017
2173
  /**
2018
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
2019
- * @summary 공고 첨부파일 업로드
2020
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2174
+ * 파일 본문을 `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` 헤더 필수.
2175
+ * @summary 공고 첨부파일 업로드 (한 번에)
2176
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2021
2177
  * @param {UploadFileRequestDto} uploadFileRequestDto
2022
2178
  * @param {*} [options] Override http request option.
2023
2179
  * @throws {RequiredError}