@cmarket/partner-sdk 36.1.0 β†’ 36.1.1

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 (629) hide show
  1. package/README.md +4 -4
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-api-api.ts +69 -78
  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 +65 -69
  13. package/dist/api/partner-api-api.js +69 -78
  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 +65 -69
  29. package/dist/esm/api/partner-api-api.js +69 -78
  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-bond-dto.d.ts +1 -1
  67. package/dist/esm/models/bid-bond-dto.js +1 -1
  68. package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
  69. package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
  70. package/dist/esm/models/bid-contact-dto.d.ts +1 -1
  71. package/dist/esm/models/bid-contact-dto.js +1 -1
  72. package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
  73. package/dist/esm/models/bid-contacts-dto.js +1 -1
  74. package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
  75. package/dist/esm/models/bid-contract-document-dto.js +1 -1
  76. package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
  77. package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
  78. package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
  79. package/dist/esm/models/bid-detail-response-dto.js +1 -1
  80. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  81. package/dist/esm/models/bid-document-dto.js +1 -1
  82. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  83. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  84. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  85. package/dist/esm/models/bid-item-dto.js +1 -1
  86. package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
  87. package/dist/esm/models/bid-lifecycle-dto.js +1 -1
  88. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  89. package/dist/esm/models/bid-manager-dto.js +1 -1
  90. package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
  91. package/dist/esm/models/bid-payment-terms-dto.js +1 -1
  92. package/dist/esm/models/bid-product-dto.d.ts +1 -1
  93. package/dist/esm/models/bid-product-dto.js +1 -1
  94. package/dist/esm/models/bid-public-status.d.ts +1 -1
  95. package/dist/esm/models/bid-public-status.js +1 -1
  96. package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
  97. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  98. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  99. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  100. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  101. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  102. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  103. package/dist/esm/models/bid-results-response-dto.js +1 -1
  104. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  105. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  106. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  107. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  108. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  109. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  110. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  111. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  112. package/dist/esm/models/bid-summary-dto.d.ts +1 -1
  113. package/dist/esm/models/bid-summary-dto.js +1 -1
  114. package/dist/esm/models/bid-type-public.d.ts +1 -1
  115. package/dist/esm/models/bid-type-public.js +1 -1
  116. package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
  117. package/dist/esm/models/bid-updated-response-dto.js +1 -1
  118. package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
  119. package/dist/esm/models/cancel-bid-request-dto.js +1 -1
  120. package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
  121. package/dist/esm/models/cancel-bid200-response.js +1 -1
  122. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  123. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  124. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  125. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  126. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  127. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  128. package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
  129. package/dist/esm/models/complete-invoice200-response.js +1 -1
  130. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  131. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  132. package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
  133. package/dist/esm/models/create-bid-request-dto.js +1 -1
  134. package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
  135. package/dist/esm/models/create-card-payment-dto.js +1 -1
  136. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  137. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  138. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  139. package/dist/esm/models/create-card-payment200-response.js +1 -1
  140. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  141. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  142. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  143. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  144. package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
  145. package/dist/esm/models/delivery-date-type-public.js +1 -1
  146. package/dist/esm/models/delivery-method-public.d.ts +1 -1
  147. package/dist/esm/models/delivery-method-public.js +1 -1
  148. package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
  149. package/dist/esm/models/excellent-procurement-public.js +1 -1
  150. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  151. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  152. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  153. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  154. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  155. package/dist/esm/models/external-contract-item-dto.js +1 -1
  156. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  157. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  158. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  159. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  160. package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
  161. package/dist/esm/models/file-meta-response-dto.js +1 -1
  162. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  163. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  164. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  165. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  166. package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
  167. package/dist/esm/models/get-bid-settlement200-response.js +1 -1
  168. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  169. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  170. package/dist/esm/models/get-bid200-response.d.ts +1 -1
  171. package/dist/esm/models/get-bid200-response.js +1 -1
  172. package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
  173. package/dist/esm/models/get-file-meta200-response.js +1 -1
  174. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  175. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  176. package/dist/esm/models/green-product-public.d.ts +1 -1
  177. package/dist/esm/models/green-product-public.js +1 -1
  178. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  179. package/dist/esm/models/health-controller-check200-response.js +1 -1
  180. package/dist/esm/models/health-response-dto.d.ts +1 -1
  181. package/dist/esm/models/health-response-dto.js +1 -1
  182. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  183. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  184. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  185. package/dist/esm/models/introspect-request-dto.js +1 -1
  186. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  187. package/dist/esm/models/introspection-response-dto.js +1 -1
  188. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  189. package/dist/esm/models/invalid-param-dto.js +1 -1
  190. package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
  191. package/dist/esm/models/invoice-completed-response-dto.js +1 -1
  192. package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
  193. package/dist/esm/models/invoice-split-response-dto.js +1 -1
  194. package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
  195. package/dist/esm/models/legal-mandatory-public.js +1 -1
  196. package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
  197. package/dist/esm/models/list-bid-results200-response.js +1 -1
  198. package/dist/esm/models/list-bids-response-dto.d.ts +1 -1
  199. package/dist/esm/models/list-bids-response-dto.js +1 -1
  200. package/dist/esm/models/list-bids200-response.d.ts +1 -1
  201. package/dist/esm/models/list-bids200-response.js +1 -1
  202. package/dist/esm/models/list-products200-response.d.ts +1 -1
  203. package/dist/esm/models/list-products200-response.js +1 -1
  204. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  205. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  206. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  207. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  208. package/dist/esm/models/negotiation-score-dto.d.ts +1 -1
  209. package/dist/esm/models/negotiation-score-dto.js +1 -1
  210. package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  211. package/dist/esm/models/negotiation-scored-v2-response-dto.js +1 -1
  212. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  213. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  214. package/dist/esm/models/payment-method-public.d.ts +1 -1
  215. package/dist/esm/models/payment-method-public.js +1 -1
  216. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  217. package/dist/esm/models/preconditions-dto.js +1 -1
  218. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  219. package/dist/esm/models/problem-details-dto.js +1 -1
  220. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  221. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  222. package/dist/esm/models/product-response-dto.d.ts +1 -1
  223. package/dist/esm/models/product-response-dto.js +1 -1
  224. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  225. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  226. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  227. package/dist/esm/models/register-award-request-dto.js +1 -1
  228. package/dist/esm/models/register-award201-response.d.ts +1 -1
  229. package/dist/esm/models/register-award201-response.js +1 -1
  230. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  231. package/dist/esm/models/register-bid201-response.js +1 -1
  232. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  233. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  234. package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
  235. package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
  236. package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
  237. package/dist/esm/models/request-invoice-split200-response.js +1 -1
  238. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  239. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  240. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  241. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  242. package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
  243. package/dist/esm/models/revert-award-request-dto.js +1 -1
  244. package/dist/esm/models/revert-award200-response.d.ts +1 -1
  245. package/dist/esm/models/revert-award200-response.js +1 -1
  246. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  247. package/dist/esm/models/revoke-request-dto.js +1 -1
  248. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  249. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  250. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  251. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  252. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  253. package/dist/esm/models/statement-document-dto.js +1 -1
  254. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  255. package/dist/esm/models/statement-product-dto.js +1 -1
  256. package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  257. package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
  258. package/dist/esm/models/submit-negotiation-scores201-response.d.ts +1 -1
  259. package/dist/esm/models/submit-negotiation-scores201-response.js +1 -1
  260. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  261. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  262. package/dist/esm/models/supplier-tax-type.d.ts +1 -1
  263. package/dist/esm/models/supplier-tax-type.js +1 -1
  264. package/dist/esm/models/token-request-dto.d.ts +1 -1
  265. package/dist/esm/models/token-request-dto.js +1 -1
  266. package/dist/esm/models/token-response-dto.d.ts +1 -1
  267. package/dist/esm/models/token-response-dto.js +1 -1
  268. package/dist/esm/models/update-bid-request-dto.d.ts +1 -1
  269. package/dist/esm/models/update-bid-request-dto.js +1 -1
  270. package/dist/esm/models/update-bid200-response.d.ts +1 -1
  271. package/dist/esm/models/update-bid200-response.js +1 -1
  272. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  273. package/dist/esm/models/upload-file-request-dto.js +1 -1
  274. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  275. package/dist/esm/models/upload-file201-response.js +1 -1
  276. package/dist/index.d.ts +1 -1
  277. package/dist/index.js +1 -1
  278. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  279. package/dist/models/acceptance-result-response-dto.js +1 -1
  280. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  281. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  282. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  283. package/dist/models/acknowledge-products-request-dto.js +1 -1
  284. package/dist/models/api-catalog-dto.d.ts +1 -1
  285. package/dist/models/api-catalog-dto.js +1 -1
  286. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  287. package/dist/models/api-catalog-entry-dto.js +1 -1
  288. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  289. package/dist/models/api-catalog-link-dto.js +1 -1
  290. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  291. package/dist/models/authorization-server-metadata-dto.js +1 -1
  292. package/dist/models/award-method-public.d.ts +1 -1
  293. package/dist/models/award-method-public.js +1 -1
  294. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  295. package/dist/models/award-registered-v2-response-dto.js +1 -1
  296. package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
  297. package/dist/models/award-reverted-v2-response-dto.js +1 -1
  298. package/dist/models/bid-acceptance-dto.d.ts +1 -1
  299. package/dist/models/bid-acceptance-dto.js +1 -1
  300. package/dist/models/bid-bond-dto.d.ts +1 -1
  301. package/dist/models/bid-bond-dto.js +1 -1
  302. package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
  303. package/dist/models/bid-cancelled-response-dto.js +1 -1
  304. package/dist/models/bid-contact-dto.d.ts +1 -1
  305. package/dist/models/bid-contact-dto.js +1 -1
  306. package/dist/models/bid-contacts-dto.d.ts +1 -1
  307. package/dist/models/bid-contacts-dto.js +1 -1
  308. package/dist/models/bid-contract-document-dto.d.ts +1 -1
  309. package/dist/models/bid-contract-document-dto.js +1 -1
  310. package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
  311. package/dist/models/bid-delivery-terms-dto.js +1 -1
  312. package/dist/models/bid-detail-response-dto.d.ts +1 -1
  313. package/dist/models/bid-detail-response-dto.js +1 -1
  314. package/dist/models/bid-document-dto.d.ts +1 -1
  315. package/dist/models/bid-document-dto.js +1 -1
  316. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  317. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  318. package/dist/models/bid-item-dto.d.ts +1 -1
  319. package/dist/models/bid-item-dto.js +1 -1
  320. package/dist/models/bid-lifecycle-dto.d.ts +1 -1
  321. package/dist/models/bid-lifecycle-dto.js +1 -1
  322. package/dist/models/bid-manager-dto.d.ts +1 -1
  323. package/dist/models/bid-manager-dto.js +1 -1
  324. package/dist/models/bid-payment-terms-dto.d.ts +1 -1
  325. package/dist/models/bid-payment-terms-dto.js +1 -1
  326. package/dist/models/bid-product-dto.d.ts +1 -1
  327. package/dist/models/bid-product-dto.js +1 -1
  328. package/dist/models/bid-public-status.d.ts +1 -1
  329. package/dist/models/bid-public-status.js +1 -1
  330. package/dist/models/bid-registered-response-dto.d.ts +1 -1
  331. package/dist/models/bid-registered-response-dto.js +1 -1
  332. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  333. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  334. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  335. package/dist/models/bid-result-participant-dto.js +1 -1
  336. package/dist/models/bid-results-response-dto.d.ts +1 -1
  337. package/dist/models/bid-results-response-dto.js +1 -1
  338. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  339. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  340. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  341. package/dist/models/bid-settlement-participant-dto.js +1 -1
  342. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  343. package/dist/models/bid-settlement-response-dto.js +1 -1
  344. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  345. package/dist/models/bid-statement-response-dto.js +1 -1
  346. package/dist/models/bid-summary-dto.d.ts +1 -1
  347. package/dist/models/bid-summary-dto.js +1 -1
  348. package/dist/models/bid-type-public.d.ts +1 -1
  349. package/dist/models/bid-type-public.js +1 -1
  350. package/dist/models/bid-updated-response-dto.d.ts +1 -1
  351. package/dist/models/bid-updated-response-dto.js +1 -1
  352. package/dist/models/cancel-bid-request-dto.d.ts +1 -1
  353. package/dist/models/cancel-bid-request-dto.js +1 -1
  354. package/dist/models/cancel-bid200-response.d.ts +1 -1
  355. package/dist/models/cancel-bid200-response.js +1 -1
  356. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  357. package/dist/models/card-payment-request-response-dto.js +1 -1
  358. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  359. package/dist/models/complete-acceptance-request-dto.js +1 -1
  360. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  361. package/dist/models/complete-acceptance200-response.js +1 -1
  362. package/dist/models/complete-invoice200-response.d.ts +1 -1
  363. package/dist/models/complete-invoice200-response.js +1 -1
  364. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  365. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  366. package/dist/models/create-bid-request-dto.d.ts +1 -1
  367. package/dist/models/create-bid-request-dto.js +1 -1
  368. package/dist/models/create-card-payment-dto.d.ts +1 -1
  369. package/dist/models/create-card-payment-dto.js +1 -1
  370. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  371. package/dist/models/create-card-payment-request-dto.js +1 -1
  372. package/dist/models/create-card-payment200-response.d.ts +1 -1
  373. package/dist/models/create-card-payment200-response.js +1 -1
  374. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  375. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  376. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  377. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  378. package/dist/models/delivery-date-type-public.d.ts +1 -1
  379. package/dist/models/delivery-date-type-public.js +1 -1
  380. package/dist/models/delivery-method-public.d.ts +1 -1
  381. package/dist/models/delivery-method-public.js +1 -1
  382. package/dist/models/excellent-procurement-public.d.ts +1 -1
  383. package/dist/models/excellent-procurement-public.js +1 -1
  384. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  385. package/dist/models/external-contract-document-item-dto.js +1 -1
  386. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  387. package/dist/models/external-contract-documents-response-dto.js +1 -1
  388. package/dist/models/external-contract-item-dto.d.ts +1 -1
  389. package/dist/models/external-contract-item-dto.js +1 -1
  390. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  391. package/dist/models/external-contract-snapshot-dto.js +1 -1
  392. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  393. package/dist/models/external-document-inputs-dto.js +1 -1
  394. package/dist/models/file-meta-response-dto.d.ts +1 -1
  395. package/dist/models/file-meta-response-dto.js +1 -1
  396. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  397. package/dist/models/file-uploaded-response-dto.js +1 -1
  398. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  399. package/dist/models/generated-external-contract-document-dto.js +1 -1
  400. package/dist/models/get-bid-settlement200-response.d.ts +1 -1
  401. package/dist/models/get-bid-settlement200-response.js +1 -1
  402. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  403. package/dist/models/get-bid-statement200-response.js +1 -1
  404. package/dist/models/get-bid200-response.d.ts +1 -1
  405. package/dist/models/get-bid200-response.js +1 -1
  406. package/dist/models/get-file-meta200-response.d.ts +1 -1
  407. package/dist/models/get-file-meta200-response.js +1 -1
  408. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  409. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  410. package/dist/models/green-product-public.d.ts +1 -1
  411. package/dist/models/green-product-public.js +1 -1
  412. package/dist/models/health-controller-check200-response.d.ts +1 -1
  413. package/dist/models/health-controller-check200-response.js +1 -1
  414. package/dist/models/health-response-dto.d.ts +1 -1
  415. package/dist/models/health-response-dto.js +1 -1
  416. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  417. package/dist/models/hierarchical-region-dto.js +1 -1
  418. package/dist/models/introspect-request-dto.d.ts +1 -1
  419. package/dist/models/introspect-request-dto.js +1 -1
  420. package/dist/models/introspection-response-dto.d.ts +1 -1
  421. package/dist/models/introspection-response-dto.js +1 -1
  422. package/dist/models/invalid-param-dto.d.ts +1 -1
  423. package/dist/models/invalid-param-dto.js +1 -1
  424. package/dist/models/invoice-completed-response-dto.d.ts +1 -1
  425. package/dist/models/invoice-completed-response-dto.js +1 -1
  426. package/dist/models/invoice-split-response-dto.d.ts +1 -1
  427. package/dist/models/invoice-split-response-dto.js +1 -1
  428. package/dist/models/legal-mandatory-public.d.ts +1 -1
  429. package/dist/models/legal-mandatory-public.js +1 -1
  430. package/dist/models/list-bid-results200-response.d.ts +1 -1
  431. package/dist/models/list-bid-results200-response.js +1 -1
  432. package/dist/models/list-bids-response-dto.d.ts +1 -1
  433. package/dist/models/list-bids-response-dto.js +1 -1
  434. package/dist/models/list-bids200-response.d.ts +1 -1
  435. package/dist/models/list-bids200-response.js +1 -1
  436. package/dist/models/list-products200-response.d.ts +1 -1
  437. package/dist/models/list-products200-response.js +1 -1
  438. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  439. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  440. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  441. package/dist/models/mark-bid-failed201-response.js +1 -1
  442. package/dist/models/negotiation-score-dto.d.ts +1 -1
  443. package/dist/models/negotiation-score-dto.js +1 -1
  444. package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  445. package/dist/models/negotiation-scored-v2-response-dto.js +1 -1
  446. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  447. package/dist/models/oauth-error-response-dto.js +1 -1
  448. package/dist/models/payment-method-public.d.ts +1 -1
  449. package/dist/models/payment-method-public.js +1 -1
  450. package/dist/models/preconditions-dto.d.ts +1 -1
  451. package/dist/models/preconditions-dto.js +1 -1
  452. package/dist/models/problem-details-dto.d.ts +1 -1
  453. package/dist/models/problem-details-dto.js +1 -1
  454. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  455. package/dist/models/product-receipt-response-dto.js +1 -1
  456. package/dist/models/product-response-dto.d.ts +1 -1
  457. package/dist/models/product-response-dto.js +1 -1
  458. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  459. package/dist/models/protected-resource-metadata-dto.js +1 -1
  460. package/dist/models/register-award-request-dto.d.ts +1 -1
  461. package/dist/models/register-award-request-dto.js +1 -1
  462. package/dist/models/register-award201-response.d.ts +1 -1
  463. package/dist/models/register-award201-response.js +1 -1
  464. package/dist/models/register-bid201-response.d.ts +1 -1
  465. package/dist/models/register-bid201-response.js +1 -1
  466. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  467. package/dist/models/register-semo-contract-request-dto.js +1 -1
  468. package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
  469. package/dist/models/request-invoice-split-request-dto.js +1 -1
  470. package/dist/models/request-invoice-split200-response.d.ts +1 -1
  471. package/dist/models/request-invoice-split200-response.js +1 -1
  472. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  473. package/dist/models/retiree-roster-input-dto.js +1 -1
  474. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  475. package/dist/models/retiree-roster-row-dto.js +1 -1
  476. package/dist/models/revert-award-request-dto.d.ts +1 -1
  477. package/dist/models/revert-award-request-dto.js +1 -1
  478. package/dist/models/revert-award200-response.d.ts +1 -1
  479. package/dist/models/revert-award200-response.js +1 -1
  480. package/dist/models/revoke-request-dto.d.ts +1 -1
  481. package/dist/models/revoke-request-dto.js +1 -1
  482. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  483. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  484. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  485. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  486. package/dist/models/statement-document-dto.d.ts +1 -1
  487. package/dist/models/statement-document-dto.js +1 -1
  488. package/dist/models/statement-product-dto.d.ts +1 -1
  489. package/dist/models/statement-product-dto.js +1 -1
  490. package/dist/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  491. package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
  492. package/dist/models/submit-negotiation-scores201-response.d.ts +1 -1
  493. package/dist/models/submit-negotiation-scores201-response.js +1 -1
  494. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  495. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  496. package/dist/models/supplier-tax-type.d.ts +1 -1
  497. package/dist/models/supplier-tax-type.js +1 -1
  498. package/dist/models/token-request-dto.d.ts +1 -1
  499. package/dist/models/token-request-dto.js +1 -1
  500. package/dist/models/token-response-dto.d.ts +1 -1
  501. package/dist/models/token-response-dto.js +1 -1
  502. package/dist/models/update-bid-request-dto.d.ts +1 -1
  503. package/dist/models/update-bid-request-dto.js +1 -1
  504. package/dist/models/update-bid200-response.d.ts +1 -1
  505. package/dist/models/update-bid200-response.js +1 -1
  506. package/dist/models/upload-file-request-dto.d.ts +1 -1
  507. package/dist/models/upload-file-request-dto.js +1 -1
  508. package/dist/models/upload-file201-response.d.ts +1 -1
  509. package/dist/models/upload-file201-response.js +1 -1
  510. package/docs/PartnerApiApi.md +30 -33
  511. package/docs/ProductsApi.md +2 -2
  512. package/index.ts +1 -1
  513. package/models/acceptance-result-response-dto.ts +1 -1
  514. package/models/acknowledge-product-receipt200-response.ts +1 -1
  515. package/models/acknowledge-products-request-dto.ts +1 -1
  516. package/models/api-catalog-dto.ts +1 -1
  517. package/models/api-catalog-entry-dto.ts +1 -1
  518. package/models/api-catalog-link-dto.ts +1 -1
  519. package/models/authorization-server-metadata-dto.ts +1 -1
  520. package/models/award-method-public.ts +1 -1
  521. package/models/award-registered-v2-response-dto.ts +1 -1
  522. package/models/award-reverted-v2-response-dto.ts +1 -1
  523. package/models/bid-acceptance-dto.ts +1 -1
  524. package/models/bid-bond-dto.ts +1 -1
  525. package/models/bid-cancelled-response-dto.ts +1 -1
  526. package/models/bid-contact-dto.ts +1 -1
  527. package/models/bid-contacts-dto.ts +1 -1
  528. package/models/bid-contract-document-dto.ts +1 -1
  529. package/models/bid-delivery-terms-dto.ts +1 -1
  530. package/models/bid-detail-response-dto.ts +1 -1
  531. package/models/bid-document-dto.ts +1 -1
  532. package/models/bid-failed-v2-response-dto.ts +1 -1
  533. package/models/bid-item-dto.ts +1 -1
  534. package/models/bid-lifecycle-dto.ts +1 -1
  535. package/models/bid-manager-dto.ts +1 -1
  536. package/models/bid-payment-terms-dto.ts +1 -1
  537. package/models/bid-product-dto.ts +1 -1
  538. package/models/bid-public-status.ts +1 -1
  539. package/models/bid-registered-response-dto.ts +1 -1
  540. package/models/bid-result-participant-attachment-dto.ts +1 -1
  541. package/models/bid-result-participant-dto.ts +1 -1
  542. package/models/bid-results-response-dto.ts +1 -1
  543. package/models/bid-settlement-line-item-dto.ts +1 -1
  544. package/models/bid-settlement-participant-dto.ts +1 -1
  545. package/models/bid-settlement-response-dto.ts +1 -1
  546. package/models/bid-statement-response-dto.ts +1 -1
  547. package/models/bid-summary-dto.ts +1 -1
  548. package/models/bid-type-public.ts +1 -1
  549. package/models/bid-updated-response-dto.ts +1 -1
  550. package/models/cancel-bid-request-dto.ts +1 -1
  551. package/models/cancel-bid200-response.ts +1 -1
  552. package/models/card-payment-request-response-dto.ts +1 -1
  553. package/models/complete-acceptance-request-dto.ts +1 -1
  554. package/models/complete-acceptance200-response.ts +1 -1
  555. package/models/complete-invoice200-response.ts +1 -1
  556. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  557. package/models/create-bid-request-dto.ts +1 -1
  558. package/models/create-card-payment-dto.ts +1 -1
  559. package/models/create-card-payment-request-dto.ts +1 -1
  560. package/models/create-card-payment200-response.ts +1 -1
  561. package/models/create-external-contract-documents-request-dto.ts +1 -1
  562. package/models/create-external-contract-documents-response-dto.ts +1 -1
  563. package/models/delivery-date-type-public.ts +1 -1
  564. package/models/delivery-method-public.ts +1 -1
  565. package/models/excellent-procurement-public.ts +1 -1
  566. package/models/external-contract-document-item-dto.ts +1 -1
  567. package/models/external-contract-documents-response-dto.ts +1 -1
  568. package/models/external-contract-item-dto.ts +1 -1
  569. package/models/external-contract-snapshot-dto.ts +1 -1
  570. package/models/external-document-inputs-dto.ts +1 -1
  571. package/models/file-meta-response-dto.ts +1 -1
  572. package/models/file-uploaded-response-dto.ts +1 -1
  573. package/models/generated-external-contract-document-dto.ts +1 -1
  574. package/models/get-bid-settlement200-response.ts +1 -1
  575. package/models/get-bid-statement200-response.ts +1 -1
  576. package/models/get-bid200-response.ts +1 -1
  577. package/models/get-file-meta200-response.ts +1 -1
  578. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  579. package/models/green-product-public.ts +1 -1
  580. package/models/health-controller-check200-response.ts +1 -1
  581. package/models/health-response-dto.ts +1 -1
  582. package/models/hierarchical-region-dto.ts +1 -1
  583. package/models/introspect-request-dto.ts +1 -1
  584. package/models/introspection-response-dto.ts +1 -1
  585. package/models/invalid-param-dto.ts +1 -1
  586. package/models/invoice-completed-response-dto.ts +1 -1
  587. package/models/invoice-split-response-dto.ts +1 -1
  588. package/models/legal-mandatory-public.ts +1 -1
  589. package/models/list-bid-results200-response.ts +1 -1
  590. package/models/list-bids-response-dto.ts +1 -1
  591. package/models/list-bids200-response.ts +1 -1
  592. package/models/list-products200-response.ts +1 -1
  593. package/models/mark-bid-failed-request-dto.ts +1 -1
  594. package/models/mark-bid-failed201-response.ts +1 -1
  595. package/models/negotiation-score-dto.ts +1 -1
  596. package/models/negotiation-scored-v2-response-dto.ts +1 -1
  597. package/models/oauth-error-response-dto.ts +1 -1
  598. package/models/payment-method-public.ts +1 -1
  599. package/models/preconditions-dto.ts +1 -1
  600. package/models/problem-details-dto.ts +1 -1
  601. package/models/product-receipt-response-dto.ts +1 -1
  602. package/models/product-response-dto.ts +1 -1
  603. package/models/protected-resource-metadata-dto.ts +1 -1
  604. package/models/register-award-request-dto.ts +1 -1
  605. package/models/register-award201-response.ts +1 -1
  606. package/models/register-bid201-response.ts +1 -1
  607. package/models/register-semo-contract-request-dto.ts +1 -1
  608. package/models/request-invoice-split-request-dto.ts +1 -1
  609. package/models/request-invoice-split200-response.ts +1 -1
  610. package/models/retiree-roster-input-dto.ts +1 -1
  611. package/models/retiree-roster-row-dto.ts +1 -1
  612. package/models/revert-award-request-dto.ts +1 -1
  613. package/models/revert-award200-response.ts +1 -1
  614. package/models/revoke-request-dto.ts +1 -1
  615. package/models/semo-contract-registered-response-dto.ts +1 -1
  616. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  617. package/models/statement-document-dto.ts +1 -1
  618. package/models/statement-product-dto.ts +1 -1
  619. package/models/submit-negotiation-scores-request-dto.ts +1 -1
  620. package/models/submit-negotiation-scores201-response.ts +1 -1
  621. package/models/supplier-card-payable-response-dto.ts +1 -1
  622. package/models/supplier-tax-type.ts +1 -1
  623. package/models/token-request-dto.ts +1 -1
  624. package/models/token-response-dto.ts +1 -1
  625. package/models/update-bid-request-dto.ts +1 -1
  626. package/models/update-bid200-response.ts +1 -1
  627. package/models/upload-file-request-dto.ts +1 -1
  628. package/models/upload-file201-response.ts +1 -1
  629. package/package.json +1 -1
@@ -48,7 +48,7 @@ const configuration = new Configuration();
48
48
  const apiInstance = new PartnerApiApi(configuration);
49
49
 
50
50
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
51
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
51
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
52
52
  let cancelBidRequestDto: CancelBidRequestDto; //
53
53
 
54
54
  const { status, data } = await apiInstance.cancelBid(
@@ -64,7 +64,7 @@ const { status, data } = await apiInstance.cancelBid(
64
64
  |------------- | ------------- | ------------- | -------------|
65
65
  | **cancelBidRequestDto** | **CancelBidRequestDto**| | |
66
66
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
67
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
67
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
68
68
 
69
69
 
70
70
  ### Return type
@@ -115,7 +115,7 @@ const configuration = new Configuration();
115
115
  const apiInstance = new PartnerApiApi(configuration);
116
116
 
117
117
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
118
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
118
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
119
119
  let completeAcceptanceRequestDto: CompleteAcceptanceRequestDto; //
120
120
 
121
121
  const { status, data } = await apiInstance.completeAcceptance(
@@ -131,7 +131,7 @@ const { status, data } = await apiInstance.completeAcceptance(
131
131
  |------------- | ------------- | ------------- | -------------|
132
132
  | **completeAcceptanceRequestDto** | **CompleteAcceptanceRequestDto**| | |
133
133
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
134
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
134
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
135
135
 
136
136
 
137
137
  ### Return type
@@ -181,7 +181,7 @@ const configuration = new Configuration();
181
181
  const apiInstance = new PartnerApiApi(configuration);
182
182
 
183
183
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
184
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
184
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
185
185
 
186
186
  const { status, data } = await apiInstance.completeInvoice(
187
187
  bidRef,
@@ -194,7 +194,7 @@ const { status, data } = await apiInstance.completeInvoice(
194
194
  |Name | Type | Description | Notes|
195
195
  |------------- | ------------- | ------------- | -------------|
196
196
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
197
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
197
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
198
198
 
199
199
 
200
200
  ### Return type
@@ -244,7 +244,7 @@ import {
244
244
  const configuration = new Configuration();
245
245
  const apiInstance = new PartnerApiApi(configuration);
246
246
 
247
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
247
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
248
248
  let createCardPaymentDto: CreateCardPaymentDto; //
249
249
 
250
250
  const { status, data } = await apiInstance.createCardPayment(
@@ -258,7 +258,7 @@ const { status, data } = await apiInstance.createCardPayment(
258
258
  |Name | Type | Description | Notes|
259
259
  |------------- | ------------- | ------------- | -------------|
260
260
  | **createCardPaymentDto** | **CreateCardPaymentDto**| | |
261
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
261
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
262
262
 
263
263
 
264
264
  ### Return type
@@ -308,7 +308,7 @@ import {
308
308
  const configuration = new Configuration();
309
309
  const apiInstance = new PartnerApiApi(configuration);
310
310
 
311
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
311
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
312
312
  let createExternalContractDocumentsRequestDto: CreateExternalContractDocumentsRequestDto; //
313
313
 
314
314
  const { status, data } = await apiInstance.createExternalContractDocuments(
@@ -322,7 +322,7 @@ const { status, data } = await apiInstance.createExternalContractDocuments(
322
322
  |Name | Type | Description | Notes|
323
323
  |------------- | ------------- | ------------- | -------------|
324
324
  | **createExternalContractDocumentsRequestDto** | **CreateExternalContractDocumentsRequestDto**| | |
325
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
325
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
326
326
 
327
327
 
328
328
  ### Return type
@@ -1003,7 +1003,7 @@ const configuration = new Configuration();
1003
1003
  const apiInstance = new PartnerApiApi(configuration);
1004
1004
 
1005
1005
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
1006
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1006
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1007
1007
  let markBidFailedRequestDto: MarkBidFailedRequestDto; //
1008
1008
 
1009
1009
  const { status, data } = await apiInstance.markBidFailed(
@@ -1019,7 +1019,7 @@ const { status, data } = await apiInstance.markBidFailed(
1019
1019
  |------------- | ------------- | ------------- | -------------|
1020
1020
  | **markBidFailedRequestDto** | **MarkBidFailedRequestDto**| | |
1021
1021
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
1022
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1022
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1023
1023
 
1024
1024
 
1025
1025
  ### Return type
@@ -1070,7 +1070,7 @@ const configuration = new Configuration();
1070
1070
  const apiInstance = new PartnerApiApi(configuration);
1071
1071
 
1072
1072
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
1073
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1073
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1074
1074
  let registerAwardRequestDto: RegisterAwardRequestDto; //
1075
1075
 
1076
1076
  const { status, data } = await apiInstance.registerAward(
@@ -1086,7 +1086,7 @@ const { status, data } = await apiInstance.registerAward(
1086
1086
  |------------- | ------------- | ------------- | -------------|
1087
1087
  | **registerAwardRequestDto** | **RegisterAwardRequestDto**| | |
1088
1088
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
1089
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1089
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1090
1090
 
1091
1091
 
1092
1092
  ### Return type
@@ -1136,7 +1136,7 @@ import {
1136
1136
  const configuration = new Configuration();
1137
1137
  const apiInstance = new PartnerApiApi(configuration);
1138
1138
 
1139
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1139
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1140
1140
  let createBidRequestDto: CreateBidRequestDto; //
1141
1141
 
1142
1142
  const { status, data } = await apiInstance.registerBid(
@@ -1150,7 +1150,7 @@ const { status, data } = await apiInstance.registerBid(
1150
1150
  |Name | Type | Description | Notes|
1151
1151
  |------------- | ------------- | ------------- | -------------|
1152
1152
  | **createBidRequestDto** | **CreateBidRequestDto**| | |
1153
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1153
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1154
1154
 
1155
1155
 
1156
1156
  ### Return type
@@ -1200,7 +1200,7 @@ import {
1200
1200
  const configuration = new Configuration();
1201
1201
  const apiInstance = new PartnerApiApi(configuration);
1202
1202
 
1203
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1203
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1204
1204
  let registerSemoContractRequestDto: RegisterSemoContractRequestDto; //
1205
1205
 
1206
1206
  const { status, data } = await apiInstance.registerSemoContract(
@@ -1214,7 +1214,7 @@ const { status, data } = await apiInstance.registerSemoContract(
1214
1214
  |Name | Type | Description | Notes|
1215
1215
  |------------- | ------------- | ------------- | -------------|
1216
1216
  | **registerSemoContractRequestDto** | **RegisterSemoContractRequestDto**| | |
1217
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1217
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1218
1218
 
1219
1219
 
1220
1220
  ### Return type
@@ -1265,7 +1265,7 @@ const configuration = new Configuration();
1265
1265
  const apiInstance = new PartnerApiApi(configuration);
1266
1266
 
1267
1267
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
1268
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1268
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1269
1269
  let requestInvoiceSplitRequestDto: RequestInvoiceSplitRequestDto; //
1270
1270
 
1271
1271
  const { status, data } = await apiInstance.requestInvoiceSplit(
@@ -1281,7 +1281,7 @@ const { status, data } = await apiInstance.requestInvoiceSplit(
1281
1281
  |------------- | ------------- | ------------- | -------------|
1282
1282
  | **requestInvoiceSplitRequestDto** | **RequestInvoiceSplitRequestDto**| | |
1283
1283
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
1284
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1284
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1285
1285
 
1286
1286
 
1287
1287
  ### Return type
@@ -1332,7 +1332,7 @@ const configuration = new Configuration();
1332
1332
  const apiInstance = new PartnerApiApi(configuration);
1333
1333
 
1334
1334
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
1335
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1335
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1336
1336
  let revertAwardRequestDto: RevertAwardRequestDto; //
1337
1337
 
1338
1338
  const { status, data } = await apiInstance.revertAward(
@@ -1348,7 +1348,7 @@ const { status, data } = await apiInstance.revertAward(
1348
1348
  |------------- | ------------- | ------------- | -------------|
1349
1349
  | **revertAwardRequestDto** | **RevertAwardRequestDto**| | |
1350
1350
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
1351
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1351
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1352
1352
 
1353
1353
 
1354
1354
  ### Return type
@@ -1399,7 +1399,7 @@ const configuration = new Configuration();
1399
1399
  const apiInstance = new PartnerApiApi(configuration);
1400
1400
 
1401
1401
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
1402
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1402
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1403
1403
  let submitNegotiationScoresRequestDto: SubmitNegotiationScoresRequestDto; //
1404
1404
 
1405
1405
  const { status, data } = await apiInstance.submitNegotiationScores(
@@ -1415,7 +1415,7 @@ const { status, data } = await apiInstance.submitNegotiationScores(
1415
1415
  |------------- | ------------- | ------------- | -------------|
1416
1416
  | **submitNegotiationScoresRequestDto** | **SubmitNegotiationScoresRequestDto**| | |
1417
1417
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
1418
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1418
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1419
1419
 
1420
1420
 
1421
1421
  ### Return type
@@ -1466,15 +1466,13 @@ const configuration = new Configuration();
1466
1466
  const apiInstance = new PartnerApiApi(configuration);
1467
1467
 
1468
1468
  let bidRef: string; //λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. (default to undefined)
1469
- let ifMatch: string; // (default to undefined)
1470
- let ifMatch2: string; //μˆ˜μ •ν•˜λ €λŠ” 곡고의 ETag(ν•„μˆ˜). 직전 `GET /v2/bids/{bidRef}` μ‘λ‹΅μ˜ `ETag` 헀더 값을 κ·ΈλŒ€λ‘œ μ‹€μ–΄ λ³΄λ‚΄μ„Έμš”. λˆ„λ½ν•˜λ©΄ 428, κ·Έ 사이 곡고가 λ°”λ€Œμ—ˆμœΌλ©΄ 412 둜 거절되며 아무것도 μˆ˜μ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (default to undefined)
1471
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1469
+ let ifMatch: string; //μˆ˜μ •ν•˜λ €λŠ” 곡고의 ETag(ν•„μˆ˜). 직전 `GET /v2/bids/{bidRef}` μ‘λ‹΅μ˜ `ETag` 헀더 값을 κ·ΈλŒ€λ‘œ μ‹€μ–΄ λ³΄λ‚΄μ„Έμš”. λˆ„λ½ν•˜λ©΄ 428, κ·Έ 사이 곡고가 λ°”λ€Œμ—ˆμœΌλ©΄ 412 둜 거절되며 아무것도 μˆ˜μ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (default to undefined)
1470
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1472
1471
  let updateBidRequestDto: UpdateBidRequestDto; //
1473
1472
 
1474
1473
  const { status, data } = await apiInstance.updateBid(
1475
1474
  bidRef,
1476
1475
  ifMatch,
1477
- ifMatch2,
1478
1476
  idempotencyKey,
1479
1477
  updateBidRequestDto
1480
1478
  );
@@ -1486,9 +1484,8 @@ const { status, data } = await apiInstance.updateBid(
1486
1484
  |------------- | ------------- | ------------- | -------------|
1487
1485
  | **updateBidRequestDto** | **UpdateBidRequestDto**| | |
1488
1486
  | **bidRef** | [**string**] | λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. | defaults to undefined|
1489
- | **ifMatch** | [**string**] | | defaults to undefined|
1490
- | **ifMatch2** | [**string**] | μˆ˜μ •ν•˜λ €λŠ” 곡고의 ETag(ν•„μˆ˜). 직전 `GET /v2/bids/{bidRef}` μ‘λ‹΅μ˜ `ETag` 헀더 값을 κ·ΈλŒ€λ‘œ μ‹€μ–΄ λ³΄λ‚΄μ„Έμš”. λˆ„λ½ν•˜λ©΄ 428, κ·Έ 사이 곡고가 λ°”λ€Œμ—ˆμœΌλ©΄ 412 둜 거절되며 아무것도 μˆ˜μ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. | defaults to undefined|
1491
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1487
+ | **ifMatch** | [**string**] | μˆ˜μ •ν•˜λ €λŠ” 곡고의 ETag(ν•„μˆ˜). 직전 `GET /v2/bids/{bidRef}` μ‘λ‹΅μ˜ `ETag` 헀더 값을 κ·ΈλŒ€λ‘œ μ‹€μ–΄ λ³΄λ‚΄μ„Έμš”. λˆ„λ½ν•˜λ©΄ 428, κ·Έ 사이 곡고가 λ°”λ€Œμ—ˆμœΌλ©΄ 412 둜 거절되며 아무것도 μˆ˜μ •λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. | defaults to undefined|
1488
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1492
1489
 
1493
1490
 
1494
1491
  ### Return type
@@ -1540,7 +1537,7 @@ import {
1540
1537
  const configuration = new Configuration();
1541
1538
  const apiInstance = new PartnerApiApi(configuration);
1542
1539
 
1543
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
1540
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
1544
1541
  let uploadFileRequestDto: UploadFileRequestDto; //
1545
1542
 
1546
1543
  const { status, data } = await apiInstance.uploadFile(
@@ -1554,7 +1551,7 @@ const { status, data } = await apiInstance.uploadFile(
1554
1551
  |Name | Type | Description | Notes|
1555
1552
  |------------- | ------------- | ------------- | -------------|
1556
1553
  | **uploadFileRequestDto** | **UploadFileRequestDto**| | |
1557
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
1554
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
1558
1555
 
1559
1556
 
1560
1557
  ### Return type
@@ -24,7 +24,7 @@ import {
24
24
  const configuration = new Configuration();
25
25
  const apiInstance = new ProductsApi(configuration);
26
26
 
27
- let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. (default to undefined)
27
+ let idempotencyKey: string; //λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. (default to undefined)
28
28
  let acknowledgeProductsRequestDto: AcknowledgeProductsRequestDto; //
29
29
 
30
30
  const { status, data } = await apiInstance.acknowledgeProductReceipt(
@@ -38,7 +38,7 @@ const { status, data } = await apiInstance.acknowledgeProductReceipt(
38
38
  |Name | Type | Description | Notes|
39
39
  |------------- | ------------- | ------------- | -------------|
40
40
  | **acknowledgeProductsRequestDto** | **AcknowledgeProductsRequestDto**| | |
41
- | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). 같은 ν‚€ + 같은 body 둜 μž¬μ „μ†‘ν•˜λ©΄ 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λ°›μŠ΅λ‹ˆλ‹€. UUID v4 λ₯Ό ꢌμž₯ν•©λ‹ˆλ‹€. | defaults to undefined|
41
+ | **idempotencyKey** | [**string**] | λ©±λ“±μ„± ν‚€(1~255자, `[A-Za-z0-9_-]`). **μž¬μ‹œλ„ν•  λ•Œ 처음과 같은 ν‚€λ₯Ό λ‹€μ‹œ 보내야** 쀑볡 생성이 λ§‰νž™λ‹ˆλ‹€ β€” νƒ€μž„μ•„μ›ƒΒ·λ„€νŠΈμ›Œν¬ 였λ₯˜λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄μ„œ μƒˆ ν‚€λ₯Ό λ§Œλ“€λ©΄ λ³„κ°œ μš”μ²­μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€. κ·Έλž˜μ„œ ν‚€λŠ” UUID v4 λ₯Ό λ§Œλ“€μ–΄ **연동 μ‹œμŠ€ν…œ 원μž₯에 μ €μž₯**ν•˜κ±°λ‚˜, μš”μ²­ λ‚΄μš©μ—μ„œ κ²°μ •μ μœΌλ‘œ νŒŒμƒ(예: `bid-create-{ꡬ맀번호}`)ν•΄ μž¬μ‹œλ„κ°€ 같은 값을 μž¬ν˜„ν•˜λ„λ‘ ν•˜μ„Έμš”. 같은 ν‚€ + 같은 body λŠ” 24μ‹œκ°„ λ™μ•ˆ μΊμ‹œλœ 응닡을 κ·ΈλŒ€λ‘œ λŒλ €μ€λ‹ˆλ‹€. | defaults to undefined|
42
42
 
43
43
 
44
44
  ### Return type
package/index.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. λͺ©λ‘μ²˜λŸΌ λΆ€κ°€ 정보가 μžˆλŠ” 응닡은 `meta` κ°€ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€ β€” 예: `{ \"data\": [...], \"meta\": { \"nextCursor\": \"…\" } }`. λΆ€κ°€ 정보가 μ—†μœΌλ©΄ `meta` ν‚€λŠ” μ•„μ˜ˆ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€(빈 객체λ₯Ό μ‹£μ§€ μ•ŠμŠ΅λ‹ˆλ‹€). λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 36.1.0
7
+ * The version of the OpenAPI document: 36.1.1
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).