@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
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * 외부 ERP 연동용 RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` 플로우). `/oauth/token` 에서 토큰을 발급받아 `Authorization: Bearer <token>` 헤더로 실으세요. ## 권한 — 두 개의 독립된 축 `403` 을 만났다면 둘 중 어느 축에 걸린 것인지 먼저 구분하세요. - **스코프** = *무엇을 할 수 있나*. 토큰에 부여된 `bids:read`·`contracts:write` 등입니다. 미보유 시 `…/insufficient-scope`. - **대행 범위** = *누구의 데이터를 다룰 수 있나*. API 키 설정이며 스코프로 표현되지 않습니다. 범위 밖이면 스코프와 무관하게 403 입니다. 대행 범위는 키마다 둘 중 하나로 설정됩니다 — **소속 그룹 전원**(기관 키. 사업처·부서 계정이 새로 생겨도 자동 포함) 또는 **지정 발주처 목록**(계약으로 합의된 목록). 범위를 넓혀야 하면 스코프가 아니라 키 설정 변경을 요청하세요. ## 성공 응답 봉투 `/v2` 의 모든 2xx 본문은 `{ \"data\": … }` 입니다. 단일 리소스든 목록이든 같습니다. 목록처럼 부가 정보가 있는 응답은 `meta` 가 함께 실립니다 — 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. 부가 정보가 없으면 `meta` 키는 아예 나가지 않습니다(빈 객체를 싣지 않습니다). 봉투를 쓰지 않는 표면은 둘입니다. `/oauth/_*` 와 `/.well-known/_*` 는 각각 RFC 6749·RFC 8414·RFC 9728 이 최상위 필드를 규정하고, 파일 내용 응답은 본문이 JSON 이 아닙니다. 에러 응답에는 봉투를 씌우지 않습니다 — 아래 problem+json 이 단독으로 책임집니다. ## 조건부 요청 (ETag) `/v2` 의 모든 `GET` 응답에 weak `ETag`(`W/\"…\"`)가 실립니다. 받은 값을 다음 요청의 `If-None-Match` 헤더로 되보내면, 내용이 그대로일 때 `304 Not Modified` 를 본문 없이 받습니다. 결과가 나기를 기다리며 같은 자원을 반복 조회하는 연동이라면 이 헤더 하나로 전송량이 사라집니다. ## 에러 (RFC 9457 problem+json) 모든 에러 응답은 `application/problem+json` 입니다. **HTTP status + `type` URI** 로 분기하세요. - `retryable`(boolean): 자동 재시도 안전 여부. `true`(429·5xx transient)면 backoff 후 재시도하고, `false`면 요청을 고쳐야 합니다. - `traceId`: 요청 추적 id. `X-Correlation-Id` 응답 헤더와 같은 값입니다 — 문의할 때 이 값을 첨부하세요. - `correlationId`: `traceId` 와 같은 값의 옛 이름. 기존 연동 호환으로 함께 실립니다. 새 연동은 `traceId` 를 읽으세요. - `invalid-params`: 검증 실패(400 `…/validation-failed`) 시 위반 필드 경로 목록(RFC 9457 확장, 값 없음). `type` 은 `https://problems.cmarket.io/partner/<slug>` 형태의 **안정 식별자**입니다. RFC 9457 §3.1.1 이 허용하는 대로 이 URI 는 **역참조(dereference)되지 않습니다** — 브라우저로 열지 말고 문자열 비교로만 쓰세요. slug 목록과 의미는 각 엔드포인트의 응답 설명에 status 별로 적혀 있습니다. ### 멱등성 위반: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` — 같은 키의 **원 요청이 아직 처리 중**입니다. 잠시 뒤 같은 키로 다시 부르면 그 결과를 받습니다. - `422` `…/idempotency-key-reused` — 같은 키를 **다른 body** 로 보냈습니다. 재시도해도 영원히 같은 실패이니 새 키를 쓰거나 body 를 되돌리세요. ## Rate Limit 전역 **60 요청/분 per `client_id`**, 토큰 발급(`/oauth/token`)은 **5 요청/분** 입니다. 초과 시 `429`(`type: …/too-many-requests`). 쿼터는 두 가지 표기로 함께 나갑니다 — 신규 연동은 표준 필드를 쓰세요. - **표준**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (정책) · `RateLimit: \"default\";r=59;t=42` (잔량 r, 리셋까지 t 초) - **레거시**(관용): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. 기존 연동 호환을 위해 유지합니다. `429` 에서는 `Retry-After`(초)가 우선합니다. 대량 동기화(품목 단위 반복 등록 등)는 `Retry-After` 만큼 backoff 후 재시도하세요. ## 추적 요청에 `X-Correlation-Id` 헤더를 실으면 그대로 echo 되고, 없으면 서버가 발급합니다. 모든 응답(성공/에러)에 `X-Correlation-Id` 가 실립니다. ## 전방호환 — 모르는 필드와 값에서 깨지지 않게 다음 셋은 breaking 변경으로 보지 않으며 minor 릴리스에서 예고 없이 일어납니다. 이 전제로 구현하세요. - **선택 필드 추가**: 모르는 필드는 무시하세요. 엄격 파서(unknown key 거부)를 쓰지 마세요. - **enum 값 추가**: 상태·낙찰방법 등에 새 값이 생깁니다. 모르는 값을 만나면 예외를 던지지 말고 원문 문자열을 보존하세요. - **problem `type` slug 추가**: 모르는 slug 은 **HTTP status 로 폴백**해 분기하세요. ## 버전 수명(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` 헤더로 통지합니다. 이 헤더를 모니터링하세요.
7
7
  *
8
- * The version of the OpenAPI document: 36.1.0
8
+ * The version of the OpenAPI document: 37.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -38,7 +38,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
38
38
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
39
39
  * @summary 공고 취소
40
40
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
41
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
41
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
42
42
  * @param {CancelBidRequestDto} cancelBidRequestDto
43
43
  * @param {*} [options] Override http request option.
44
44
  * @throws {RequiredError}
@@ -82,7 +82,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
82
82
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
83
83
  * @summary 검수완료 전송
84
84
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
85
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
85
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
86
86
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
87
87
  * @param {*} [options] Override http request option.
88
88
  * @throws {RequiredError}
@@ -122,11 +122,55 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
122
122
  options: localVarRequestOptions,
123
123
  };
124
124
  }),
125
+ /**
126
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
127
+ * @summary 첨부파일 업로드 확정
128
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
129
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
130
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
131
+ * @param {*} [options] Override http request option.
132
+ * @throws {RequiredError}
133
+ */
134
+ 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 = {}) {
135
+ // verify required parameter 'fileKey' is not null or undefined
136
+ (0, common_1.assertParamExists)('completeFileUpload', 'fileKey', fileKey);
137
+ // verify required parameter 'idempotencyKey' is not null or undefined
138
+ (0, common_1.assertParamExists)('completeFileUpload', 'idempotencyKey', idempotencyKey);
139
+ // verify required parameter 'completeUploadRequestDto' is not null or undefined
140
+ (0, common_1.assertParamExists)('completeFileUpload', 'completeUploadRequestDto', completeUploadRequestDto);
141
+ const localVarPath = `/v2/files/{fileKey}/complete`
142
+ .replace('{fileKey}', encodeURIComponent(String(fileKey)));
143
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
144
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
145
+ let baseOptions;
146
+ if (configuration) {
147
+ baseOptions = configuration.baseOptions;
148
+ }
149
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
150
+ const localVarHeaderParameter = {};
151
+ const localVarQueryParameter = {};
152
+ // authentication partner-oauth2 required
153
+ // oauth required
154
+ yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["files:write"], configuration);
155
+ localVarHeaderParameter['Content-Type'] = 'application/json';
156
+ localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
157
+ if (idempotencyKey != null) {
158
+ localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
159
+ }
160
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
161
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
162
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
163
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(completeUploadRequestDto, localVarRequestOptions, configuration);
164
+ return {
165
+ url: (0, common_1.toPathString)(localVarUrlObj),
166
+ options: localVarRequestOptions,
167
+ };
168
+ }),
125
169
  /**
126
170
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
127
171
  * @summary 정산 마감
128
172
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
129
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
173
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
130
174
  * @param {*} [options] Override http request option.
131
175
  * @throws {RequiredError}
132
176
  */
@@ -164,7 +208,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
164
208
  /**
165
209
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
166
210
  * @summary 결제창 발행
167
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
211
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
168
212
  * @param {CreateCardPaymentDto} createCardPaymentDto
169
213
  * @param {*} [options] Override http request option.
170
214
  * @throws {RequiredError}
@@ -204,7 +248,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
204
248
  /**
205
249
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
206
250
  * @summary 계약서류 생성
207
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
251
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
208
252
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
209
253
  * @param {*} [options] Override http request option.
210
254
  * @throws {RequiredError}
@@ -241,6 +285,46 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
241
285
  options: localVarRequestOptions,
242
286
  };
243
287
  }),
288
+ /**
289
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
290
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
291
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
292
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
293
+ * @param {*} [options] Override http request option.
294
+ * @throws {RequiredError}
295
+ */
296
+ createFileUploadUrl: (idempotencyKey_1, createUploadUrlRequestDto_1, ...args_1) => __awaiter(this, [idempotencyKey_1, createUploadUrlRequestDto_1, ...args_1], void 0, function* (idempotencyKey, createUploadUrlRequestDto, options = {}) {
297
+ // verify required parameter 'idempotencyKey' is not null or undefined
298
+ (0, common_1.assertParamExists)('createFileUploadUrl', 'idempotencyKey', idempotencyKey);
299
+ // verify required parameter 'createUploadUrlRequestDto' is not null or undefined
300
+ (0, common_1.assertParamExists)('createFileUploadUrl', 'createUploadUrlRequestDto', createUploadUrlRequestDto);
301
+ const localVarPath = `/v2/files/upload-url`;
302
+ // use dummy base URL string because the URL constructor only accepts absolute URLs.
303
+ const localVarUrlObj = new URL(localVarPath, common_1.DUMMY_BASE_URL);
304
+ let baseOptions;
305
+ if (configuration) {
306
+ baseOptions = configuration.baseOptions;
307
+ }
308
+ const localVarRequestOptions = Object.assign(Object.assign({ method: 'POST' }, baseOptions), options);
309
+ const localVarHeaderParameter = {};
310
+ const localVarQueryParameter = {};
311
+ // authentication partner-oauth2 required
312
+ // oauth required
313
+ yield (0, common_1.setOAuthToObject)(localVarHeaderParameter, "partner-oauth2", ["files:write"], configuration);
314
+ localVarHeaderParameter['Content-Type'] = 'application/json';
315
+ localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
316
+ if (idempotencyKey != null) {
317
+ localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
318
+ }
319
+ (0, common_1.setSearchParams)(localVarUrlObj, localVarQueryParameter);
320
+ let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
321
+ localVarRequestOptions.headers = Object.assign(Object.assign(Object.assign({}, localVarHeaderParameter), headersFromBaseOptions), options.headers);
322
+ localVarRequestOptions.data = (0, common_1.serializeDataIfNeeded)(createUploadUrlRequestDto, localVarRequestOptions, configuration);
323
+ return {
324
+ url: (0, common_1.toPathString)(localVarUrlObj),
325
+ options: localVarRequestOptions,
326
+ };
327
+ }),
244
328
  /**
245
329
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
246
330
  * @summary 파일 다운로드
@@ -374,7 +458,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
374
458
  };
375
459
  }),
376
460
  /**
377
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
461
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
378
462
  * @summary 파일 정보 조회
379
463
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
380
464
  * @param {*} [options] Override http request option.
@@ -627,7 +711,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
627
711
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(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` 헤더 필수.
628
712
  * @summary 유찰 처리
629
713
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
630
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
714
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
631
715
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
632
716
  * @param {*} [options] Override http request option.
633
717
  * @throws {RequiredError}
@@ -671,7 +755,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
671
755
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `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시간 내 캐시 응답 반환.
672
756
  * @summary 낙찰 결과 전송
673
757
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
674
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
758
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
675
759
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
676
760
  * @param {*} [options] Override http request option.
677
761
  * @throws {RequiredError}
@@ -714,7 +798,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
714
798
  /**
715
799
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
716
800
  * @summary 공고 등록
717
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
801
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
718
802
  * @param {CreateBidRequestDto} createBidRequestDto
719
803
  * @param {*} [options] Override http request option.
720
804
  * @throws {RequiredError}
@@ -754,7 +838,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
754
838
  /**
755
839
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
756
840
  * @summary 계약 발행대상 등록
757
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
841
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
758
842
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
759
843
  * @param {*} [options] Override http request option.
760
844
  * @throws {RequiredError}
@@ -795,7 +879,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
795
879
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
796
880
  * @summary 계산서 분할 발급 청구
797
881
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
798
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
882
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
799
883
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
800
884
  * @param {*} [options] Override http request option.
801
885
  * @throws {RequiredError}
@@ -839,7 +923,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
839
923
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
840
924
  * @summary 낙찰 되돌리기
841
925
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
842
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
926
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
843
927
  * @param {RevertAwardRequestDto} revertAwardRequestDto
844
928
  * @param {*} [options] Override http request option.
845
929
  * @throws {RequiredError}
@@ -883,7 +967,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
883
967
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
884
968
  * @summary 협상 점수평가
885
969
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
886
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
970
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
887
971
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
888
972
  * @param {*} [options] Override http request option.
889
973
  * @throws {RequiredError}
@@ -927,20 +1011,17 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
927
1011
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
928
1012
  * @summary 공고 수정
929
1013
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
930
- * @param {string} ifMatch
931
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
932
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1014
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
1015
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
933
1016
  * @param {UpdateBidRequestDto} updateBidRequestDto
934
1017
  * @param {*} [options] Override http request option.
935
1018
  * @throws {RequiredError}
936
1019
  */
937
- 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 = {}) {
1020
+ 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 = {}) {
938
1021
  // verify required parameter 'bidRef' is not null or undefined
939
1022
  (0, common_1.assertParamExists)('updateBid', 'bidRef', bidRef);
940
1023
  // verify required parameter 'ifMatch' is not null or undefined
941
1024
  (0, common_1.assertParamExists)('updateBid', 'ifMatch', ifMatch);
942
- // verify required parameter 'ifMatch2' is not null or undefined
943
- (0, common_1.assertParamExists)('updateBid', 'ifMatch2', ifMatch2);
944
1025
  // verify required parameter 'idempotencyKey' is not null or undefined
945
1026
  (0, common_1.assertParamExists)('updateBid', 'idempotencyKey', idempotencyKey);
946
1027
  // verify required parameter 'updateBidRequestDto' is not null or undefined
@@ -962,10 +1043,7 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
962
1043
  localVarHeaderParameter['Content-Type'] = 'application/json';
963
1044
  localVarHeaderParameter['Accept'] = 'application/json,application/problem+json';
964
1045
  if (ifMatch != null) {
965
- localVarHeaderParameter['if-match'] = String(ifMatch);
966
- }
967
- if (ifMatch2 != null) {
968
- localVarHeaderParameter['If-Match'] = String(ifMatch2);
1046
+ localVarHeaderParameter['If-Match'] = String(ifMatch);
969
1047
  }
970
1048
  if (idempotencyKey != null) {
971
1049
  localVarHeaderParameter['Idempotency-Key'] = String(idempotencyKey);
@@ -980,9 +1058,9 @@ const PartnerApiApiAxiosParamCreator = function (configuration) {
980
1058
  };
981
1059
  }),
982
1060
  /**
983
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
984
- * @summary 공고 첨부파일 업로드
985
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1061
+ * 파일 본문을 `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` 헤더 필수.
1062
+ * @summary 공고 첨부파일 업로드 (한 번에)
1063
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
986
1064
  * @param {UploadFileRequestDto} uploadFileRequestDto
987
1065
  * @param {*} [options] Override http request option.
988
1066
  * @throws {RequiredError}
@@ -1032,7 +1110,7 @@ const PartnerApiApiFp = function (configuration) {
1032
1110
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
1033
1111
  * @summary 공고 취소
1034
1112
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1035
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1113
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1036
1114
  * @param {CancelBidRequestDto} cancelBidRequestDto
1037
1115
  * @param {*} [options] Override http request option.
1038
1116
  * @throws {RequiredError}
@@ -1050,7 +1128,7 @@ const PartnerApiApiFp = function (configuration) {
1050
1128
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1051
1129
  * @summary 검수완료 전송
1052
1130
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1053
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1131
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1054
1132
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
1055
1133
  * @param {*} [options] Override http request option.
1056
1134
  * @throws {RequiredError}
@@ -1064,11 +1142,29 @@ const PartnerApiApiFp = function (configuration) {
1064
1142
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1065
1143
  });
1066
1144
  },
1145
+ /**
1146
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1147
+ * @summary 첨부파일 업로드 확정
1148
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1149
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1150
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1151
+ * @param {*} [options] Override http request option.
1152
+ * @throws {RequiredError}
1153
+ */
1154
+ completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options) {
1155
+ return __awaiter(this, void 0, void 0, function* () {
1156
+ var _a, _b, _c;
1157
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options);
1158
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1159
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.completeFileUpload']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1160
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1161
+ });
1162
+ },
1067
1163
  /**
1068
1164
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1069
1165
  * @summary 정산 마감
1070
1166
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1071
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1167
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1072
1168
  * @param {*} [options] Override http request option.
1073
1169
  * @throws {RequiredError}
1074
1170
  */
@@ -1084,7 +1180,7 @@ const PartnerApiApiFp = function (configuration) {
1084
1180
  /**
1085
1181
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1086
1182
  * @summary 결제창 발행
1087
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1183
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1088
1184
  * @param {CreateCardPaymentDto} createCardPaymentDto
1089
1185
  * @param {*} [options] Override http request option.
1090
1186
  * @throws {RequiredError}
@@ -1101,7 +1197,7 @@ const PartnerApiApiFp = function (configuration) {
1101
1197
  /**
1102
1198
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1103
1199
  * @summary 계약서류 생성
1104
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1200
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1105
1201
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
1106
1202
  * @param {*} [options] Override http request option.
1107
1203
  * @throws {RequiredError}
@@ -1115,6 +1211,23 @@ const PartnerApiApiFp = function (configuration) {
1115
1211
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1116
1212
  });
1117
1213
  },
1214
+ /**
1215
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
1216
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1217
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1218
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1219
+ * @param {*} [options] Override http request option.
1220
+ * @throws {RequiredError}
1221
+ */
1222
+ createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
1223
+ return __awaiter(this, void 0, void 0, function* () {
1224
+ var _a, _b, _c;
1225
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options);
1226
+ const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1227
+ const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.createFileUploadUrl']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1228
+ return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1229
+ });
1230
+ },
1118
1231
  /**
1119
1232
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1120
1233
  * @summary 파일 다운로드
@@ -1181,7 +1294,7 @@ const PartnerApiApiFp = function (configuration) {
1181
1294
  });
1182
1295
  },
1183
1296
  /**
1184
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1297
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1185
1298
  * @summary 파일 정보 조회
1186
1299
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1187
1300
  * @param {*} [options] Override http request option.
@@ -1300,7 +1413,7 @@ const PartnerApiApiFp = function (configuration) {
1300
1413
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(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` 헤더 필수.
1301
1414
  * @summary 유찰 처리
1302
1415
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1303
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1416
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1304
1417
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
1305
1418
  * @param {*} [options] Override http request option.
1306
1419
  * @throws {RequiredError}
@@ -1318,7 +1431,7 @@ const PartnerApiApiFp = function (configuration) {
1318
1431
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `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시간 내 캐시 응답 반환.
1319
1432
  * @summary 낙찰 결과 전송
1320
1433
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1321
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1434
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1322
1435
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
1323
1436
  * @param {*} [options] Override http request option.
1324
1437
  * @throws {RequiredError}
@@ -1335,7 +1448,7 @@ const PartnerApiApiFp = function (configuration) {
1335
1448
  /**
1336
1449
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
1337
1450
  * @summary 공고 등록
1338
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1451
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1339
1452
  * @param {CreateBidRequestDto} createBidRequestDto
1340
1453
  * @param {*} [options] Override http request option.
1341
1454
  * @throws {RequiredError}
@@ -1352,7 +1465,7 @@ const PartnerApiApiFp = function (configuration) {
1352
1465
  /**
1353
1466
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1354
1467
  * @summary 계약 발행대상 등록
1355
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1468
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1356
1469
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
1357
1470
  * @param {*} [options] Override http request option.
1358
1471
  * @throws {RequiredError}
@@ -1370,7 +1483,7 @@ const PartnerApiApiFp = function (configuration) {
1370
1483
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
1371
1484
  * @summary 계산서 분할 발급 청구
1372
1485
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1373
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1486
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1374
1487
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
1375
1488
  * @param {*} [options] Override http request option.
1376
1489
  * @throws {RequiredError}
@@ -1388,7 +1501,7 @@ const PartnerApiApiFp = function (configuration) {
1388
1501
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
1389
1502
  * @summary 낙찰 되돌리기
1390
1503
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1391
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1504
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1392
1505
  * @param {RevertAwardRequestDto} revertAwardRequestDto
1393
1506
  * @param {*} [options] Override http request option.
1394
1507
  * @throws {RequiredError}
@@ -1406,7 +1519,7 @@ const PartnerApiApiFp = function (configuration) {
1406
1519
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1407
1520
  * @summary 협상 점수평가
1408
1521
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1409
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1522
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1410
1523
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
1411
1524
  * @param {*} [options] Override http request option.
1412
1525
  * @throws {RequiredError}
@@ -1424,26 +1537,25 @@ const PartnerApiApiFp = function (configuration) {
1424
1537
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
1425
1538
  * @summary 공고 수정
1426
1539
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1427
- * @param {string} ifMatch
1428
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
1429
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1540
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
1541
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1430
1542
  * @param {UpdateBidRequestDto} updateBidRequestDto
1431
1543
  * @param {*} [options] Override http request option.
1432
1544
  * @throws {RequiredError}
1433
1545
  */
1434
- updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
1546
+ updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
1435
1547
  return __awaiter(this, void 0, void 0, function* () {
1436
1548
  var _a, _b, _c;
1437
- const localVarAxiosArgs = yield localVarAxiosParamCreator.updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options);
1549
+ const localVarAxiosArgs = yield localVarAxiosParamCreator.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options);
1438
1550
  const localVarOperationServerIndex = (_a = configuration === null || configuration === void 0 ? void 0 : configuration.serverIndex) !== null && _a !== void 0 ? _a : 0;
1439
1551
  const localVarOperationServerBasePath = (_c = (_b = base_1.operationServerMap['PartnerApiApi.updateBid']) === null || _b === void 0 ? void 0 : _b[localVarOperationServerIndex]) === null || _c === void 0 ? void 0 : _c.url;
1440
1552
  return (axios, basePath) => (0, common_1.createRequestFunction)(localVarAxiosArgs, axios_1.default, base_1.BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
1441
1553
  });
1442
1554
  },
1443
1555
  /**
1444
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1445
- * @summary 공고 첨부파일 업로드
1446
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1556
+ * 파일 본문을 `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` 헤더 필수.
1557
+ * @summary 공고 첨부파일 업로드 (한 번에)
1558
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1447
1559
  * @param {UploadFileRequestDto} uploadFileRequestDto
1448
1560
  * @param {*} [options] Override http request option.
1449
1561
  * @throws {RequiredError}
@@ -1470,7 +1582,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1470
1582
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
1471
1583
  * @summary 공고 취소
1472
1584
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1473
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1585
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1474
1586
  * @param {CancelBidRequestDto} cancelBidRequestDto
1475
1587
  * @param {*} [options] Override http request option.
1476
1588
  * @throws {RequiredError}
@@ -1482,7 +1594,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1482
1594
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1483
1595
  * @summary 검수완료 전송
1484
1596
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1485
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1597
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1486
1598
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
1487
1599
  * @param {*} [options] Override http request option.
1488
1600
  * @throws {RequiredError}
@@ -1490,11 +1602,23 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1490
1602
  completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options) {
1491
1603
  return localVarFp.completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(axios, basePath));
1492
1604
  },
1605
+ /**
1606
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1607
+ * @summary 첨부파일 업로드 확정
1608
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1609
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1610
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1611
+ * @param {*} [options] Override http request option.
1612
+ * @throws {RequiredError}
1613
+ */
1614
+ completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options) {
1615
+ return localVarFp.completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(axios, basePath));
1616
+ },
1493
1617
  /**
1494
1618
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1495
1619
  * @summary 정산 마감
1496
1620
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1497
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1621
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1498
1622
  * @param {*} [options] Override http request option.
1499
1623
  * @throws {RequiredError}
1500
1624
  */
@@ -1504,7 +1628,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1504
1628
  /**
1505
1629
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1506
1630
  * @summary 결제창 발행
1507
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1631
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1508
1632
  * @param {CreateCardPaymentDto} createCardPaymentDto
1509
1633
  * @param {*} [options] Override http request option.
1510
1634
  * @throws {RequiredError}
@@ -1515,7 +1639,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1515
1639
  /**
1516
1640
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1517
1641
  * @summary 계약서류 생성
1518
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1642
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1519
1643
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
1520
1644
  * @param {*} [options] Override http request option.
1521
1645
  * @throws {RequiredError}
@@ -1523,6 +1647,17 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1523
1647
  createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options) {
1524
1648
  return localVarFp.createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(axios, basePath));
1525
1649
  },
1650
+ /**
1651
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
1652
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1653
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1654
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1655
+ * @param {*} [options] Override http request option.
1656
+ * @throws {RequiredError}
1657
+ */
1658
+ createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
1659
+ return localVarFp.createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(axios, basePath));
1660
+ },
1526
1661
  /**
1527
1662
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1528
1663
  * @summary 파일 다운로드
@@ -1565,7 +1700,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1565
1700
  return localVarFp.getBidStatement(bidRef, paperCode, options).then((request) => request(axios, basePath));
1566
1701
  },
1567
1702
  /**
1568
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1703
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1569
1704
  * @summary 파일 정보 조회
1570
1705
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1571
1706
  * @param {*} [options] Override http request option.
@@ -1642,7 +1777,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1642
1777
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(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` 헤더 필수.
1643
1778
  * @summary 유찰 처리
1644
1779
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1645
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1780
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1646
1781
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
1647
1782
  * @param {*} [options] Override http request option.
1648
1783
  * @throws {RequiredError}
@@ -1654,7 +1789,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1654
1789
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `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시간 내 캐시 응답 반환.
1655
1790
  * @summary 낙찰 결과 전송
1656
1791
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1657
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1792
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1658
1793
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
1659
1794
  * @param {*} [options] Override http request option.
1660
1795
  * @throws {RequiredError}
@@ -1665,7 +1800,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1665
1800
  /**
1666
1801
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
1667
1802
  * @summary 공고 등록
1668
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1803
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1669
1804
  * @param {CreateBidRequestDto} createBidRequestDto
1670
1805
  * @param {*} [options] Override http request option.
1671
1806
  * @throws {RequiredError}
@@ -1676,7 +1811,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1676
1811
  /**
1677
1812
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1678
1813
  * @summary 계약 발행대상 등록
1679
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1814
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1680
1815
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
1681
1816
  * @param {*} [options] Override http request option.
1682
1817
  * @throws {RequiredError}
@@ -1688,7 +1823,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1688
1823
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
1689
1824
  * @summary 계산서 분할 발급 청구
1690
1825
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1691
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1826
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1692
1827
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
1693
1828
  * @param {*} [options] Override http request option.
1694
1829
  * @throws {RequiredError}
@@ -1700,7 +1835,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1700
1835
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
1701
1836
  * @summary 낙찰 되돌리기
1702
1837
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1703
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1838
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1704
1839
  * @param {RevertAwardRequestDto} revertAwardRequestDto
1705
1840
  * @param {*} [options] Override http request option.
1706
1841
  * @throws {RequiredError}
@@ -1712,7 +1847,7 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1712
1847
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1713
1848
  * @summary 협상 점수평가
1714
1849
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1715
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1850
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1716
1851
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
1717
1852
  * @param {*} [options] Override http request option.
1718
1853
  * @throws {RequiredError}
@@ -1724,20 +1859,19 @@ const PartnerApiApiFactory = function (configuration, basePath, axios) {
1724
1859
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
1725
1860
  * @summary 공고 수정
1726
1861
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1727
- * @param {string} ifMatch
1728
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
1729
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1862
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
1863
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1730
1864
  * @param {UpdateBidRequestDto} updateBidRequestDto
1731
1865
  * @param {*} [options] Override http request option.
1732
1866
  * @throws {RequiredError}
1733
1867
  */
1734
- updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
1735
- return localVarFp.updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
1868
+ updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
1869
+ return localVarFp.updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(axios, basePath));
1736
1870
  },
1737
1871
  /**
1738
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
1739
- * @summary 공고 첨부파일 업로드
1740
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1872
+ * 파일 본문을 `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` 헤더 필수.
1873
+ * @summary 공고 첨부파일 업로드 (한 번에)
1874
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1741
1875
  * @param {UploadFileRequestDto} uploadFileRequestDto
1742
1876
  * @param {*} [options] Override http request option.
1743
1877
  * @throws {RequiredError}
@@ -1756,7 +1890,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1756
1890
  * 진행중인 공고를 취소합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **되돌릴 수 없습니다.** 취소 사유는 필수이며 공고 이력에 남습니다. **전제조건:** 진행중(ONGOING) 상태여야 합니다. **거부:** 진행중이 아니거나 이미 취소된 공고 → 409. 타 발주처 공고 → 403. **마감과의 차이:** 취소는 공고를 무효로 되돌리는 것이고, 유찰(`POST /v2/bids/{bidRef}/fail`)은 응찰을 받았으나 낙찰자를 정하지 못한 종료입니다.
1757
1891
  * @summary 공고 취소
1758
1892
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1759
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1893
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1760
1894
  * @param {CancelBidRequestDto} cancelBidRequestDto
1761
1895
  * @param {*} [options] Override http request option.
1762
1896
  * @throws {RequiredError}
@@ -1768,7 +1902,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1768
1902
  * 낙찰 공고의 검수(납품 검수)가 완료되었음을 기록합니다. **호출 시점:** 낙찰자(공급사)가 납품을 완료하고 구매자가 검수를 확인한 시점입니다. 공고 상태가 낙찰(AWARDED) 상태여야 합니다. **부수효과:** - 검수완료 상태가 기록됩니다. - 현금 결제 공고는 세금계산서 발행요청이 등록되고, 낙찰자(공급사)에게 발행요청 알림·문자가 발송됩니다. 카드 결제 공고는 발행요청 축이 없어 알림도 없습니다. - 거래명세서 발행이 예약됩니다. - 응답 코드는 200이며, 처리 결과가 본문에 담겨 반환됩니다. **부분계약(협의 감액):** 낙찰 후 협의로 계약금액이 줄었으면 `supplyAmount`+`vat` 를 함께 보내세요. 그 금액으로 계산서 발행이 요청됩니다. 생략하면 낙찰금액에서 파생합니다. 현금 결제 공고·낙찰자 1인·감액(증액 불가)일 때만 허용되며, 어긋나면 409 입니다. **문서에 찍히는 값:** 거래명세서·검수보고서의 구매사 사업자정보·담당자·작성일자는 등록된 발주처 정보에서 채워집니다. 요청으로 덮어쓸 수 없습니다. **낙찰자:** 공고의 낙찰 상태에서 결정되며 요청으로 지정하지 않습니다. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1769
1903
  * @summary 검수완료 전송
1770
1904
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1771
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1905
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1772
1906
  * @param {CompleteAcceptanceRequestDto} completeAcceptanceRequestDto
1773
1907
  * @param {*} [options] Override http request option.
1774
1908
  * @throws {RequiredError}
@@ -1776,11 +1910,23 @@ class PartnerApiApi extends base_1.BaseAPI {
1776
1910
  completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options) {
1777
1911
  return (0, exports.PartnerApiApiFp)(this.configuration).completeAcceptance(bidRef, idempotencyKey, completeAcceptanceRequestDto, options).then((request) => request(this.axios, this.basePath));
1778
1912
  }
1913
+ /**
1914
+ * `uploadUrl` 로의 `PUT` 이 끝난 뒤 호출합니다. 올라온 파일을 실측해 등록하고, 그 시점부터 `fileKey` 를 공고 첨부로 쓸 수 있습니다. **확정 전 `fileKey` 는 첨부로 쓸 수 없습니다** — 공고 등록이 400 으로 거절됩니다. **신고한 크기가 아니라 실제 파일을 봅니다.** 발급 요청의 `fileSize` 와 다르면 실제 크기가 기록되고, 정책 상한을 넘으면 여기서 거절됩니다. **같은 `fileKey` 로 여러 번 호출해도 안전합니다**(멱등). **필수 스코프:** `files:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1915
+ * @summary 첨부파일 업로드 확정
1916
+ * @param {string} fileKey 발급 응답의 fileKey(영문 대소문자·숫자 32자).
1917
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1918
+ * @param {CompleteUploadRequestDto} completeUploadRequestDto
1919
+ * @param {*} [options] Override http request option.
1920
+ * @throws {RequiredError}
1921
+ */
1922
+ completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options) {
1923
+ return (0, exports.PartnerApiApiFp)(this.configuration).completeFileUpload(fileKey, idempotencyKey, completeUploadRequestDto, options).then((request) => request(this.axios, this.basePath));
1924
+ }
1779
1925
  /**
1780
1926
  * 공급사로부터 계산서를 수령한 뒤, 계약을 완료처리 상태로 강제 전환합니다. **호출 시점:** 낙찰·계약 완료 후 공급사 계산서를 오프라인으로 수령했을 때. **부수효과:** - 결제완료·계산서 발급 상태가 기록되고 발급일자가 현재 시각으로 설정됩니다. **소유권:** 공고는 요청 파트너 키가 소유한 발주처 명의여야 합니다(타 발주처 공고 → 403). **이미 완료:** 이미 완료처리된 공고 재호출 → 409. **필수 스코프:** `contracts:write` **멱등성:** `Idempotency-Key` 헤더 필수.
1781
1927
  * @summary 정산 마감
1782
1928
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1783
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1929
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1784
1930
  * @param {*} [options] Override http request option.
1785
1931
  * @throws {RequiredError}
1786
1932
  */
@@ -1790,7 +1936,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1790
1936
  /**
1791
1937
  * 발주기관이 특정 업체에게 카드로 지불하는 거래(결제창) 1건을 만듭니다. **대금 흐름:** 카드 승인이 **그 업체의 가맹점**으로 나가므로 대금은 씨마켓을 거치지 않고 업체로 직행합니다. **발행 직후 상태:** 자동 승인되어 바로 결제할 수 있습니다. **사용자 동선:** 응답의 `payUrl` 로 발주기관을 보내면 그 결제창 한 건만 걸러진 화면이 열립니다. **사전 조건:** 계약업체가 씨마켓 회원이고 카드결제에 가입(가맹)돼 있어야 합니다 — `GET /v2/suppliers/{memberId}/card-payable` 로 미리 확인하세요. 미가입 업체로 발행하면 400 입니다. **필수 스코프:** `payments:write`. 어느 발주기관을 대신할 수 있는지는 스코프가 아니라 API 키의 대행 범위 설정이 정합니다. **멱등성:** `externalRef`(파트너 측 거래 식별자)가 도메인 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 결제창을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1792
1938
  * @summary 결제창 발행
1793
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1939
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1794
1940
  * @param {CreateCardPaymentDto} createCardPaymentDto
1795
1941
  * @param {*} [options] Override http request option.
1796
1942
  * @throws {RequiredError}
@@ -1801,7 +1947,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1801
1947
  /**
1802
1948
  * 공고 없이 성사된 거래의 계약서류를 생성합니다. **호출 시점:** 계약이 체결된 직후. **요청한 `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 응답 규약으로 제공합니다. 공고 없는 거래(이 엔드포인트)의 신 표면은 아직 없습니다 — 만들 때 이 설명에 새 경로와 이관 기간을 함께 적습니다.
1803
1949
  * @summary 계약서류 생성
1804
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
1950
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1805
1951
  * @param {CreateExternalContractDocumentsRequestDto} createExternalContractDocumentsRequestDto
1806
1952
  * @param {*} [options] Override http request option.
1807
1953
  * @throws {RequiredError}
@@ -1809,6 +1955,17 @@ class PartnerApiApi extends base_1.BaseAPI {
1809
1955
  createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options) {
1810
1956
  return (0, exports.PartnerApiApiFp)(this.configuration).createExternalContractDocuments(idempotencyKey, createExternalContractDocumentsRequestDto, options).then((request) => request(this.axios, this.basePath));
1811
1957
  }
1958
+ /**
1959
+ * 파일 본문을 스토리지로 **직접** 올리기 위한 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` 헤더 필수.
1960
+ * @summary 첨부파일 업로드 주소 발급 (대용량·권장)
1961
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 는 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1962
+ * @param {CreateUploadUrlRequestDto} createUploadUrlRequestDto
1963
+ * @param {*} [options] Override http request option.
1964
+ * @throws {RequiredError}
1965
+ */
1966
+ createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options) {
1967
+ return (0, exports.PartnerApiApiFp)(this.configuration).createFileUploadUrl(idempotencyKey, createUploadUrlRequestDto, options).then((request) => request(this.axios, this.basePath));
1968
+ }
1812
1969
  /**
1813
1970
  * 무인증 — `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` 이 가리키는 주소라 계속 유지되며 중단 일정은 없습니다.
1814
1971
  * @summary 파일 다운로드
@@ -1851,7 +2008,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1851
2008
  return (0, exports.PartnerApiApiFp)(this.configuration).getBidStatement(bidRef, paperCode, options).then((request) => request(this.axios, this.basePath));
1852
2009
  }
1853
2010
  /**
1854
- * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **구 경로:** 버전 없는 `GET /files/{fileKey}` 만료 없는 안정 주소이고 파트너 응답의 `fileUrl`/`fullUrl` 이 그 값을 가리킵니다. 인증도 스코프도 없는 표면이라 신규 연동은 엔드포인트를 쓰세요. 경로는 당분간 유지됩니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
2011
+ * 파일명·크기·업로드 시각과 내려받기 주소를 함께 조회합니다. **내려받기:** 응답의 `downloadUrl` 로 파일을 받으세요. 요청 시점에 서명하므로 유효기간이 있습니다 — 저장해 두고 재사용하지 마시고 필요할 때 이 조회를 다시 호출하세요. **대부분은 조회가 필요 없습니다.** 공고·결과 응답의 첨부 항목에 파일명과 내려받기 주소 (`fileUrl`/`fullUrl`, 만료 없는 안정 주소)가 이미 실려 있습니다. 엔드포인트는 주소를 들고 있지 않고 `fileKey` 아는 경우(예: 업로드 직후 크기 확인)를 위한 것입니다. **MIME 타입은 싣지 않습니다.** 저장소가 그 값을 신뢰할 수 있게 보관하지 않아서, 지어내면 그것으로 분기한 쪽이 조용히 틀립니다. 확장자는 `fileName` 에 그대로 들어 있습니다. **형식이 틀린 키는 404 가 아니라 400 입니다.** fileKey 는 **영문 대소문자·숫자 32자**이고, 그 형태가 아닌 값은 애초에 키가 될 수 없으므로 그렇게 답합니다. 형식은 맞지만 없는 키는 404 입니다. 키를 16진수(hex)로 가정해 클라이언트에서 걸러내지 마세요 — 업로드된 파일의 키에는 hex 가 아닌 문자가 들어갑니다. **필수 스코프:** `files:read`
1855
2012
  * @summary 파일 정보 조회
1856
2013
  * @param {string} fileKey 파일 키 — 업로드 응답의 fileKey(영문 대소문자·숫자 32자).
1857
2014
  * @param {*} [options] Override http request option.
@@ -1928,7 +2085,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1928
2085
  * 공고를 유찰 상태로 전환합니다. **호출 시점:** 입찰 마감 후 유찰 사유가 확정되었을 때. 공고가 입찰완료(마감) 상태에서 호출합니다. **부수효과:** - 공고 상태가 유찰(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` 헤더 필수.
1929
2086
  * @summary 유찰 처리
1930
2087
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1931
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2088
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1932
2089
  * @param {MarkBidFailedRequestDto} markBidFailedRequestDto
1933
2090
  * @param {*} [options] Override http request option.
1934
2091
  * @throws {RequiredError}
@@ -1940,7 +2097,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1940
2097
  * 낙찰 결과를 등록합니다. 이 요청의 응답은 처리 상태 `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시간 내 캐시 응답 반환.
1941
2098
  * @summary 낙찰 결과 전송
1942
2099
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1943
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2100
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1944
2101
  * @param {RegisterAwardRequestDto} registerAwardRequestDto
1945
2102
  * @param {*} [options] Override http request option.
1946
2103
  * @throws {RequiredError}
@@ -1951,7 +2108,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1951
2108
  /**
1952
2109
  * 입찰 정보 등록. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. **첨부는 2단계입니다.** 파일을 이 요청 본문에 직접 싣지 마세요 — 먼저 `POST /v2/files`(base64 또는 url)로 올려 `fileKey` 를 받고, 그 32자 키를 이 요청의 `attachments` 배열에 넣습니다.
1953
2110
  * @summary 공고 등록
1954
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2111
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1955
2112
  * @param {CreateBidRequestDto} createBidRequestDto
1956
2113
  * @param {*} [options] Override http request option.
1957
2114
  * @throws {RequiredError}
@@ -1962,7 +2119,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1962
2119
  /**
1963
2120
  * 외부에서 맺어진 계약 1건을 씨마켓의 **세금계산서 발행 대상**으로 등록합니다. **등록 후 동선:** 발주기관이 씨마켓 [나의 계약 관리] 에서 계산서 발급을 요청하고, 공급기업이 같은 화면에서 발행합니다. 계산서의 **공급자는 공급기업, 공급받는자는 발주기관**입니다. **대금 흐름:** 씨마켓은 이 거래의 대금을 받지 않습니다 — 발행 경로만 제공합니다. **금액:** `supplyPrice` 는 **부가세를 뺀 과세 공급가액**입니다(결제창 API 가 부가세 포함가를 받는 것과 다릅니다). 과세·면세 공급가액이 모두 0 이면 400 입니다. **사전 조건:** 두 회원 ID 가 씨마켓에 실재해야 합니다. 회원 ID 가 곧 소유권이라, 없는 회원으로 등록하면 아무도 열 수 없는 계산서 대상이 됩니다. **필수 스코프:** `contracts:write`. 바인딩된 발주처 외의 발주기관을 대신하려면 대행 범위에 그 회원이 있어야 합니다. **멱등성:** `externalContractId` 가 멱등키입니다. 같은 값으로 재요청하면 새로 만들지 않고 기존 대상을 돌려줍니다(`reused=true`). `Idempotency-Key` 헤더도 함께 사용하세요.
1964
2121
  * @summary 계약 발행대상 등록
1965
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2122
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1966
2123
  * @param {RegisterSemoContractRequestDto} registerSemoContractRequestDto
1967
2124
  * @param {*} [options] Override http request option.
1968
2125
  * @throws {RequiredError}
@@ -1974,7 +2131,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1974
2131
  * 한 공고의 계산서를 여러 장으로 나눠 발급해 달라고 청구합니다. 스코프 `invoices:write`. **청구만 접수합니다.** 이 호출이 계산서를 발행하지는 않습니다 — 접수된 청구는 정산 파이프라인이 처리하며, 진행 여부는 `GET /v2/bids/{bidRef}` 의 `taxInvoiceRequested` 로 관측합니다. **나눠 담을 금액을 보냅니다.** `supplyAmount`(공급가액)와 `vat`(부가세)는 이번 장에 실을 금액입니다. 남은 금액을 다시 나누려면 같은 공고에 청구를 한 번 더 보냅니다 — 그때는 **새 `Idempotency-Key`** 를 쓰세요. 같은 키로 다시 보내면 앞선 청구의 응답이 그대로 재생됩니다. **발급 희망일**(`issueDate`)은 선택이며 미래 일자는 400 입니다. 미지정 시 서버 기본값을 씁니다.
1975
2132
  * @summary 계산서 분할 발급 청구
1976
2133
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1977
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2134
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1978
2135
  * @param {RequestInvoiceSplitRequestDto} requestInvoiceSplitRequestDto
1979
2136
  * @param {*} [options] Override http request option.
1980
2137
  * @throws {RequiredError}
@@ -1986,7 +2143,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1986
2143
  * 확정된 낙찰을 되돌려 공고를 낙찰대기(PENDING_AWARD) 상태로 보냅니다. 스코프 `awards:write` + `Idempotency-Key` 헤더 필수. **호출 시점:** 낙찰자가 계약을 포기했거나 낙찰 처리 자체가 잘못됐을 때. 되돌린 뒤 같은 공고에 다시 낙찰을 등록할 수 있습니다. **되돌릴 수 없는 경우 → 409:** - 수수료 결제가 이미 완료된 공고 - 세금계산서가 이미 발행된 공고 - 수입권공매 계열 낙찰방법(다수 낙찰자 구조라 되돌리기 단위가 다릅니다) **사유는 필수입니다** — 감사 대상 행위이며 공고 이력에 남습니다. **소유권:** 요청 파트너 키가 소유한 발주처 공고여야 합니다(타 발주처 공고 → 403).
1987
2144
  * @summary 낙찰 되돌리기
1988
2145
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
1989
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2146
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
1990
2147
  * @param {RevertAwardRequestDto} revertAwardRequestDto
1991
2148
  * @param {*} [options] Override http request option.
1992
2149
  * @throws {RequiredError}
@@ -1998,7 +2155,7 @@ class PartnerApiApi extends base_1.BaseAPI {
1998
2155
  * 협상방식(NEGOTIATION/NEGOTIATION_AUTO) 공고의 응찰자별 점수를 입력합니다. **호출 시점:** 입찰 마감 후 낙찰(`POST /v2/bids/{bidRef}/award`) 전. 협상방식 공고는 이 평가를 완료해야 낙찰에 진입할 수 있습니다. **부수효과:** - 응찰자별 기술점수(및 선택적 가격점수 override)가 기록됩니다. - `complete=true` 면 평가완료 게이트까지 적용돼 낙찰 진입이 가능해집니다. **발주처:** API 키에 바인딩된 발주처로 자동 스코프됩니다(요청 body 에 buyerId 를 넣지 않습니다). **필수 스코프:** `awards:write` **멱등성:** `Idempotency-Key` 헤더 필수. 동일 키 + 동일 body 재전송 시 24시간 내 캐시 응답 반환.
1999
2156
  * @summary 협상 점수평가
2000
2157
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
2001
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2158
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2002
2159
  * @param {SubmitNegotiationScoresRequestDto} submitNegotiationScoresRequestDto
2003
2160
  * @param {*} [options] Override http request option.
2004
2161
  * @throws {RequiredError}
@@ -2010,20 +2167,19 @@ class PartnerApiApi extends base_1.BaseAPI {
2010
2167
  * 등록된 공고의 내용을 수정합니다. 스코프 `bids:write` + `Idempotency-Key` 헤더 필수. 진행중/초안 상태의 공고만 수정할 수 있습니다. **부수효과:** - 변경 내용이 반영되고 수정이력이 기록됩니다. - `hideEditHistory=true` 면 변경이력을 비공개 처리하고 노출 카운터 증가를 생략합니다. **수정 제약:** - 낙찰방법(awardMethod)은 수정 불가(잠금). - 참여자가 있으면 입찰방식/면허/예산/품목 일부가 잠깁니다. - 마감/취소된 공고는 수정할 수 없습니다. 한 섹션을 수정하려면 해당 섹션의 필수 필드를 함께 보내야 합니다(부분 섹션은 거부됨).
2011
2168
  * @summary 공고 수정
2012
2169
  * @param {string} bidRef 발주기관 자체 구매번호(권장) 또는 c-market 공고번호. 구매번호는 키에 바인딩된 발주처 범위에서 최신 라운드 공고로 해소됩니다.
2013
- * @param {string} ifMatch
2014
- * @param {string} ifMatch2 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 사이 공고가 바뀌었으면 412 거절되며 아무것도 수정되지 않습니다.
2015
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 로 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2170
+ * @param {string} ifMatch 수정하려는 공고의 ETag(필수). 직전 &#x60;GET /v2/bids/{bidRef}&#x60; 응답의 &#x60;ETag&#x60; 헤더 값을 그대로 실어 보내세요. 누락하면 428, 그 사이 공고가 바뀌었으면 412 로 거절되며 아무것도 수정되지 않습니다.
2171
+ * @param {string} idempotencyKey 멱등성 (1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2016
2172
  * @param {UpdateBidRequestDto} updateBidRequestDto
2017
2173
  * @param {*} [options] Override http request option.
2018
2174
  * @throws {RequiredError}
2019
2175
  */
2020
- updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options) {
2021
- return (0, exports.PartnerApiApiFp)(this.configuration).updateBid(bidRef, ifMatch, ifMatch2, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
2176
+ updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options) {
2177
+ return (0, exports.PartnerApiApiFp)(this.configuration).updateBid(bidRef, ifMatch, idempotencyKey, updateBidRequestDto, options).then((request) => request(this.axios, this.basePath));
2022
2178
  }
2023
2179
  /**
2024
- * 파일 본문을 base64 또는 url 중 정확히 하나로 제출하면 `fileKey` 를 돌려줍니다. 이 값을 공고 등록·수정의 첨부 필드에 그대로 실으세요. 스코프 `files:write` + `Idempotency-Key` 헤더가 필요합니다.
2025
- * @summary 공고 첨부파일 업로드
2026
- * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). 같은 키 + 같은 body 재전송하면 24시간 동안 캐시된 응답을 그대로 받습니다. UUID v4 를 권장합니다.
2180
+ * 파일 본문을 `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` 헤더 필수.
2181
+ * @summary 공고 첨부파일 업로드 (한 번에)
2182
+ * @param {string} idempotencyKey 멱등성 키(1~255자, &#x60;[A-Za-z0-9_-]&#x60;). **재시도할 때 처음과 같은 키를 다시 보내야** 중복 생성이 막힙니다 — 타임아웃·네트워크 오류로 다시 부르면서 새 키를 만들면 별개 요청으로 처리됩니다. 그래서 키는 UUID v4 를 만들어 **연동 시스템 원장에 저장**하거나, 요청 내용에서 결정적으로 파생(예: &#x60;bid-create-{구매번호}&#x60;)해 재시도가 같은 값을 재현하도록 하세요. 같은 키 + 같은 body 24시간 동안 캐시된 응답을 그대로 돌려줍니다.
2027
2183
  * @param {UploadFileRequestDto} uploadFileRequestDto
2028
2184
  * @param {*} [options] Override http request option.
2029
2185
  * @throws {RequiredError}