@cmarket/partner-sdk 31.2.0 β†’ 32.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (937) hide show
  1. package/README.md +5 -4
  2. package/api/oauth-api.ts +1 -1
  3. package/api/partner-v1-api.ts +1 -1
  4. package/api/partner-v2-api.ts +9 -9
  5. package/api/webhooks-api.ts +1 -1
  6. package/api/well-known-api.ts +1 -1
  7. package/api.ts +1 -1
  8. package/base.ts +1 -1
  9. package/common.ts +1 -1
  10. package/configuration.ts +1 -1
  11. package/dist/api/oauth-api.d.ts +1 -1
  12. package/dist/api/oauth-api.js +1 -1
  13. package/dist/api/partner-v1-api.d.ts +1 -1
  14. package/dist/api/partner-v1-api.js +1 -1
  15. package/dist/api/partner-v2-api.d.ts +9 -9
  16. package/dist/api/partner-v2-api.js +9 -9
  17. package/dist/api/webhooks-api.d.ts +1 -1
  18. package/dist/api/webhooks-api.js +1 -1
  19. package/dist/api/well-known-api.d.ts +1 -1
  20. package/dist/api/well-known-api.js +1 -1
  21. package/dist/api.d.ts +1 -1
  22. package/dist/api.js +1 -1
  23. package/dist/base.d.ts +1 -1
  24. package/dist/base.js +1 -1
  25. package/dist/common.d.ts +1 -1
  26. package/dist/common.js +1 -1
  27. package/dist/configuration.d.ts +1 -1
  28. package/dist/configuration.js +1 -1
  29. package/dist/esm/api/oauth-api.d.ts +1 -1
  30. package/dist/esm/api/oauth-api.js +1 -1
  31. package/dist/esm/api/partner-v1-api.d.ts +1 -1
  32. package/dist/esm/api/partner-v1-api.js +1 -1
  33. package/dist/esm/api/partner-v2-api.d.ts +9 -9
  34. package/dist/esm/api/partner-v2-api.js +9 -9
  35. package/dist/esm/api/webhooks-api.d.ts +1 -1
  36. package/dist/esm/api/webhooks-api.js +1 -1
  37. package/dist/esm/api/well-known-api.d.ts +1 -1
  38. package/dist/esm/api/well-known-api.js +1 -1
  39. package/dist/esm/api.d.ts +1 -1
  40. package/dist/esm/api.js +1 -1
  41. package/dist/esm/base.d.ts +1 -1
  42. package/dist/esm/base.js +1 -1
  43. package/dist/esm/common.d.ts +1 -1
  44. package/dist/esm/common.js +1 -1
  45. package/dist/esm/configuration.d.ts +1 -1
  46. package/dist/esm/configuration.js +1 -1
  47. package/dist/esm/index.d.ts +1 -1
  48. package/dist/esm/index.js +1 -1
  49. package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
  50. package/dist/esm/models/acceptance-result-response-dto.js +1 -1
  51. package/dist/esm/models/acceptance-result-v1-response-dto.d.ts +1 -1
  52. package/dist/esm/models/acceptance-result-v1-response-dto.js +1 -1
  53. package/dist/esm/models/acceptance-status-response-dto.d.ts +1 -1
  54. package/dist/esm/models/acceptance-status-response-dto.js +1 -1
  55. package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
  56. package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
  57. package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
  58. package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
  59. package/dist/esm/models/acknowledge-products-v1-request-dto.d.ts +1 -1
  60. package/dist/esm/models/acknowledge-products-v1-request-dto.js +1 -1
  61. package/dist/esm/models/api-catalog-dto.d.ts +1 -1
  62. package/dist/esm/models/api-catalog-dto.js +1 -1
  63. package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
  64. package/dist/esm/models/api-catalog-entry-dto.js +1 -1
  65. package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
  66. package/dist/esm/models/api-catalog-link-dto.js +1 -1
  67. package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
  68. package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
  69. package/dist/esm/models/award-method-public.d.ts +1 -1
  70. package/dist/esm/models/award-method-public.js +1 -1
  71. package/dist/esm/models/award-registered-response-dto.d.ts +1 -1
  72. package/dist/esm/models/award-registered-response-dto.js +1 -1
  73. package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
  74. package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
  75. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +1 -1
  76. package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
  77. package/dist/esm/models/bid-acceptance-dto.d.ts +29 -0
  78. package/dist/esm/models/bid-acceptance-dto.js +14 -0
  79. package/dist/esm/models/bid-attachment-v1-dto.d.ts +1 -1
  80. package/dist/esm/models/bid-attachment-v1-dto.js +1 -1
  81. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  82. package/dist/esm/models/bid-bond-dto.js +1 -1
  83. package/dist/esm/models/bid-bond-v1-dto.d.ts +1 -1
  84. package/dist/esm/models/bid-bond-v1-dto.js +1 -1
  85. package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
  86. package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
  87. package/dist/esm/models/bid-contact-dto.d.ts +1 -1
  88. package/dist/esm/models/bid-contact-dto.js +1 -1
  89. package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
  90. package/dist/esm/models/bid-contacts-dto.js +1 -1
  91. package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
  92. package/dist/esm/models/bid-contract-document-dto.js +1 -1
  93. package/dist/esm/models/bid-contract-documents-batch-v1-request-dto.d.ts +1 -1
  94. package/dist/esm/models/bid-contract-documents-batch-v1-request-dto.js +1 -1
  95. package/dist/esm/models/bid-contract-documents-v1-response-dto.d.ts +1 -1
  96. package/dist/esm/models/bid-contract-documents-v1-response-dto.js +1 -1
  97. package/dist/esm/models/bid-created-response-dto.d.ts +1 -1
  98. package/dist/esm/models/bid-created-response-dto.js +1 -1
  99. package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
  100. package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
  101. package/dist/esm/models/bid-detail-response-dto.d.ts +40 -14
  102. package/dist/esm/models/bid-detail-response-dto.js +1 -1
  103. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  104. package/dist/esm/models/bid-document-dto.js +1 -1
  105. package/dist/esm/models/bid-document-v1-dto.d.ts +1 -1
  106. package/dist/esm/models/bid-document-v1-dto.js +1 -1
  107. package/dist/esm/models/bid-failed-response-dto.d.ts +1 -1
  108. package/dist/esm/models/bid-failed-response-dto.js +1 -1
  109. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  110. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  111. package/dist/esm/models/bid-failure-reason.d.ts +1 -1
  112. package/dist/esm/models/bid-failure-reason.js +1 -1
  113. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  114. package/dist/esm/models/bid-item-dto.js +1 -1
  115. package/dist/esm/models/bid-item-v1-dto.d.ts +1 -1
  116. package/dist/esm/models/bid-item-v1-dto.js +1 -1
  117. package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
  118. package/dist/esm/models/bid-lifecycle-dto.js +1 -1
  119. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  120. package/dist/esm/models/bid-manager-dto.js +1 -1
  121. package/dist/esm/models/bid-manager-v1-dto.d.ts +1 -1
  122. package/dist/esm/models/bid-manager-v1-dto.js +1 -1
  123. package/dist/esm/models/bid-participant-summary-dto.d.ts +1 -1
  124. package/dist/esm/models/bid-participant-summary-dto.js +1 -1
  125. package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
  126. package/dist/esm/models/bid-payment-terms-dto.js +1 -1
  127. package/dist/esm/models/bid-product-dto.d.ts +1 -1
  128. package/dist/esm/models/bid-product-dto.js +1 -1
  129. package/dist/esm/models/bid-public-status.d.ts +1 -1
  130. package/dist/esm/models/bid-public-status.js +1 -1
  131. package/dist/esm/models/bid-published-response-dto.d.ts +1 -1
  132. package/dist/esm/models/bid-published-response-dto.js +1 -1
  133. package/dist/esm/models/bid-registered-response-dto.d.ts +5 -1
  134. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  135. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  136. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  137. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  138. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  139. package/dist/esm/models/bid-result-v1-attachment-dto.d.ts +1 -1
  140. package/dist/esm/models/bid-result-v1-attachment-dto.js +1 -1
  141. package/dist/esm/models/bid-result-v1-bid-product-info-dto.d.ts +1 -1
  142. package/dist/esm/models/bid-result-v1-bid-product-info-dto.js +1 -1
  143. package/dist/esm/models/bid-result-v1-participant-dto.d.ts +1 -1
  144. package/dist/esm/models/bid-result-v1-participant-dto.js +1 -1
  145. package/dist/esm/models/bid-result-v1-product-dto.d.ts +1 -1
  146. package/dist/esm/models/bid-result-v1-product-dto.js +1 -1
  147. package/dist/esm/models/bid-results-batch-request-dto.d.ts +2 -2
  148. package/dist/esm/models/bid-results-batch-request-dto.js +1 -1
  149. package/dist/esm/models/bid-results-batch-v1-request-dto.d.ts +1 -1
  150. package/dist/esm/models/bid-results-batch-v1-request-dto.js +1 -1
  151. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  152. package/dist/esm/models/bid-results-response-dto.js +1 -1
  153. package/dist/esm/models/bid-results-v1-response-dto.d.ts +1 -1
  154. package/dist/esm/models/bid-results-v1-response-dto.js +1 -1
  155. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  156. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  157. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  158. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  159. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  160. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  161. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  162. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  163. package/dist/esm/models/bid-statement-v1-response-dto.d.ts +1 -1
  164. package/dist/esm/models/bid-statement-v1-response-dto.js +1 -1
  165. package/dist/esm/models/bid-status.d.ts +1 -1
  166. package/dist/esm/models/bid-status.js +1 -1
  167. package/dist/esm/models/bid-summary-dto.d.ts +1 -1
  168. package/dist/esm/models/bid-summary-dto.js +1 -1
  169. package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
  170. package/dist/esm/models/bid-updated-response-dto.js +1 -1
  171. package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
  172. package/dist/esm/models/cancel-bid-request-dto.js +1 -1
  173. package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
  174. package/dist/esm/models/cancel-bid200-response.js +1 -1
  175. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  176. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  177. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  178. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  179. package/dist/esm/models/complete-acceptance-v1-request-dto.d.ts +1 -1
  180. package/dist/esm/models/complete-acceptance-v1-request-dto.js +1 -1
  181. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  182. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  183. package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
  184. package/dist/esm/models/complete-invoice200-response.js +1 -1
  185. package/dist/esm/models/contract-document-item-dto.d.ts +1 -1
  186. package/dist/esm/models/contract-document-item-dto.js +1 -1
  187. package/dist/esm/models/contract-documents-regenerated-response-dto.d.ts +1 -1
  188. package/dist/esm/models/contract-documents-regenerated-response-dto.js +1 -1
  189. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  190. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  191. package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
  192. package/dist/esm/models/create-bid-request-dto.js +1 -1
  193. package/dist/esm/models/create-bid-v1-request-dto.d.ts +1 -1
  194. package/dist/esm/models/create-bid-v1-request-dto.js +1 -1
  195. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  196. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  197. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  198. package/dist/esm/models/create-card-payment200-response.js +1 -1
  199. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  200. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  201. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  202. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  203. package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +1 -1
  204. package/dist/esm/models/create-webhook-endpoint-request-dto.js +1 -1
  205. package/dist/esm/models/create-webhook-endpoint201-response.d.ts +1 -1
  206. package/dist/esm/models/create-webhook-endpoint201-response.js +1 -1
  207. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  208. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  209. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  210. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  211. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  212. package/dist/esm/models/external-contract-item-dto.js +1 -1
  213. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  214. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  215. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  216. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  217. package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
  218. package/dist/esm/models/file-meta-response-dto.js +1 -1
  219. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  220. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  221. package/dist/esm/models/file-uploaded-v1-response-dto.d.ts +1 -1
  222. package/dist/esm/models/file-uploaded-v1-response-dto.js +1 -1
  223. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  224. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  225. package/dist/esm/models/get-bid-acceptance200-response.d.ts +1 -1
  226. package/dist/esm/models/get-bid-acceptance200-response.js +1 -1
  227. package/dist/esm/models/get-bid-results200-response.d.ts +1 -1
  228. package/dist/esm/models/get-bid-results200-response.js +1 -1
  229. package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
  230. package/dist/esm/models/get-bid-settlement200-response.js +1 -1
  231. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  232. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  233. package/dist/esm/models/get-bid200-response.d.ts +1 -1
  234. package/dist/esm/models/get-bid200-response.js +1 -1
  235. package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
  236. package/dist/esm/models/get-file-meta200-response.js +1 -1
  237. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  238. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  239. package/dist/esm/models/get-webhook-endpoint200-response.d.ts +1 -1
  240. package/dist/esm/models/get-webhook-endpoint200-response.js +1 -1
  241. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  242. package/dist/esm/models/health-controller-check200-response.js +1 -1
  243. package/dist/esm/models/health-response-dto.d.ts +1 -1
  244. package/dist/esm/models/health-response-dto.js +1 -1
  245. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  246. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  247. package/dist/esm/models/hierarchical-region-v1-dto.d.ts +1 -1
  248. package/dist/esm/models/hierarchical-region-v1-dto.js +1 -1
  249. package/dist/esm/models/index.d.ts +1 -0
  250. package/dist/esm/models/index.js +1 -0
  251. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  252. package/dist/esm/models/introspect-request-dto.js +1 -1
  253. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  254. package/dist/esm/models/introspection-response-dto.js +1 -1
  255. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  256. package/dist/esm/models/invalid-param-dto.js +1 -1
  257. package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
  258. package/dist/esm/models/invoice-completed-response-dto.js +1 -1
  259. package/dist/esm/models/list-bid-contract-documents200-response.d.ts +1 -1
  260. package/dist/esm/models/list-bid-contract-documents200-response.js +1 -1
  261. package/dist/esm/models/list-bid-participants200-response.d.ts +1 -1
  262. package/dist/esm/models/list-bid-participants200-response.js +1 -1
  263. package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
  264. package/dist/esm/models/list-bid-results200-response.js +1 -1
  265. package/dist/esm/models/list-bids-response-dto.d.ts +1 -1
  266. package/dist/esm/models/list-bids-response-dto.js +1 -1
  267. package/dist/esm/models/list-bids200-response.d.ts +1 -1
  268. package/dist/esm/models/list-bids200-response.js +1 -1
  269. package/dist/esm/models/list-products200-response.d.ts +1 -1
  270. package/dist/esm/models/list-products200-response.js +1 -1
  271. package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +1 -1
  272. package/dist/esm/models/list-webhook-deliveries-response-dto.js +1 -1
  273. package/dist/esm/models/list-webhook-deliveries200-response.d.ts +1 -1
  274. package/dist/esm/models/list-webhook-deliveries200-response.js +1 -1
  275. package/dist/esm/models/list-webhook-endpoints200-response.d.ts +1 -1
  276. package/dist/esm/models/list-webhook-endpoints200-response.js +1 -1
  277. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  278. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  279. package/dist/esm/models/mark-bid-failed-v1-request-dto.d.ts +1 -1
  280. package/dist/esm/models/mark-bid-failed-v1-request-dto.js +1 -1
  281. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  282. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  283. package/dist/esm/models/negotiation-score-v1-dto.d.ts +1 -1
  284. package/dist/esm/models/negotiation-score-v1-dto.js +1 -1
  285. package/dist/esm/models/negotiation-scored-response-dto.d.ts +1 -1
  286. package/dist/esm/models/negotiation-scored-response-dto.js +1 -1
  287. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  288. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  289. package/dist/esm/models/on-bid-award-reverted-request.d.ts +1 -1
  290. package/dist/esm/models/on-bid-award-reverted-request.js +1 -1
  291. package/dist/esm/models/on-bid-awarded-request.d.ts +1 -1
  292. package/dist/esm/models/on-bid-awarded-request.js +1 -1
  293. package/dist/esm/models/on-bid-canceled-request.d.ts +1 -1
  294. package/dist/esm/models/on-bid-canceled-request.js +1 -1
  295. package/dist/esm/models/on-bid-closed-request.d.ts +1 -1
  296. package/dist/esm/models/on-bid-closed-request.js +1 -1
  297. package/dist/esm/models/on-bid-failed-request.d.ts +1 -1
  298. package/dist/esm/models/on-bid-failed-request.js +1 -1
  299. package/dist/esm/models/on-ping-request.d.ts +1 -1
  300. package/dist/esm/models/on-ping-request.js +1 -1
  301. package/dist/esm/models/partner-webhook-delivery-status.d.ts +1 -1
  302. package/dist/esm/models/partner-webhook-delivery-status.js +1 -1
  303. package/dist/esm/models/partner-webhook-endpoint-status.d.ts +1 -1
  304. package/dist/esm/models/partner-webhook-endpoint-status.js +1 -1
  305. package/dist/esm/models/partner-webhook-event-type.d.ts +1 -1
  306. package/dist/esm/models/partner-webhook-event-type.js +1 -1
  307. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  308. package/dist/esm/models/preconditions-dto.js +1 -1
  309. package/dist/esm/models/preconditions-v1-dto.d.ts +1 -1
  310. package/dist/esm/models/preconditions-v1-dto.js +1 -1
  311. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  312. package/dist/esm/models/problem-details-dto.js +1 -1
  313. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  314. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  315. package/dist/esm/models/product-receipt-v1-response-dto.d.ts +1 -1
  316. package/dist/esm/models/product-receipt-v1-response-dto.js +1 -1
  317. package/dist/esm/models/product-response-dto.d.ts +1 -1
  318. package/dist/esm/models/product-response-dto.js +1 -1
  319. package/dist/esm/models/product-v1-response-dto.d.ts +1 -1
  320. package/dist/esm/models/product-v1-response-dto.js +1 -1
  321. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  322. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  323. package/dist/esm/models/publish-bid200-response.d.ts +1 -1
  324. package/dist/esm/models/publish-bid200-response.js +1 -1
  325. package/dist/esm/models/regenerate-contract-documents201-response.d.ts +1 -1
  326. package/dist/esm/models/regenerate-contract-documents201-response.js +1 -1
  327. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  328. package/dist/esm/models/register-award-request-dto.js +1 -1
  329. package/dist/esm/models/register-award-v1-request-dto.d.ts +1 -1
  330. package/dist/esm/models/register-award-v1-request-dto.js +1 -1
  331. package/dist/esm/models/register-award201-response.d.ts +1 -1
  332. package/dist/esm/models/register-award201-response.js +1 -1
  333. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  334. package/dist/esm/models/register-bid201-response.js +1 -1
  335. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  336. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  337. package/dist/esm/models/request-split-invoice-v1-request-dto.d.ts +1 -1
  338. package/dist/esm/models/request-split-invoice-v1-request-dto.js +1 -1
  339. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  340. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  341. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  342. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  343. package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
  344. package/dist/esm/models/revert-award-request-dto.js +1 -1
  345. package/dist/esm/models/revert-award200-response.d.ts +1 -1
  346. package/dist/esm/models/revert-award200-response.js +1 -1
  347. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  348. package/dist/esm/models/revoke-request-dto.js +1 -1
  349. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  350. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  351. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  352. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  353. package/dist/esm/models/send-webhook-test-event200-response.d.ts +1 -1
  354. package/dist/esm/models/send-webhook-test-event200-response.js +1 -1
  355. package/dist/esm/models/split-invoice-v1-response-dto.d.ts +1 -1
  356. package/dist/esm/models/split-invoice-v1-response-dto.js +1 -1
  357. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  358. package/dist/esm/models/statement-document-dto.js +1 -1
  359. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  360. package/dist/esm/models/statement-product-dto.js +1 -1
  361. package/dist/esm/models/statement-v1-document-dto.d.ts +1 -1
  362. package/dist/esm/models/statement-v1-document-dto.js +1 -1
  363. package/dist/esm/models/statement-v1-product-dto.d.ts +1 -1
  364. package/dist/esm/models/statement-v1-product-dto.js +1 -1
  365. package/dist/esm/models/submit-negotiation-scores-v1-request-dto.d.ts +1 -1
  366. package/dist/esm/models/submit-negotiation-scores-v1-request-dto.js +1 -1
  367. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  368. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  369. package/dist/esm/models/supplier-tax-type.d.ts +1 -1
  370. package/dist/esm/models/supplier-tax-type.js +1 -1
  371. package/dist/esm/models/token-request-dto.d.ts +1 -1
  372. package/dist/esm/models/token-request-dto.js +1 -1
  373. package/dist/esm/models/token-response-dto.d.ts +1 -1
  374. package/dist/esm/models/token-response-dto.js +1 -1
  375. package/dist/esm/models/update-bid-request-dto.d.ts +1 -1
  376. package/dist/esm/models/update-bid-request-dto.js +1 -1
  377. package/dist/esm/models/update-bid200-response.d.ts +1 -1
  378. package/dist/esm/models/update-bid200-response.js +1 -1
  379. package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +1 -1
  380. package/dist/esm/models/update-webhook-endpoint-request-dto.js +1 -1
  381. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  382. package/dist/esm/models/upload-file-request-dto.js +1 -1
  383. package/dist/esm/models/upload-file-v1-request-dto.d.ts +1 -1
  384. package/dist/esm/models/upload-file-v1-request-dto.js +1 -1
  385. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  386. package/dist/esm/models/upload-file201-response.js +1 -1
  387. package/dist/esm/models/webhook-bid-event-data.d.ts +1 -1
  388. package/dist/esm/models/webhook-bid-event-data.js +1 -1
  389. package/dist/esm/models/webhook-delivery-dto.d.ts +1 -1
  390. package/dist/esm/models/webhook-delivery-dto.js +1 -1
  391. package/dist/esm/models/webhook-endpoint-dto.d.ts +1 -1
  392. package/dist/esm/models/webhook-endpoint-dto.js +1 -1
  393. package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +1 -1
  394. package/dist/esm/models/webhook-endpoint-with-secret-dto.js +1 -1
  395. package/dist/esm/models/webhook-event-envelope.d.ts +1 -1
  396. package/dist/esm/models/webhook-event-envelope.js +1 -1
  397. package/dist/esm/models/webhook-ping-event-data.d.ts +1 -1
  398. package/dist/esm/models/webhook-ping-event-data.js +1 -1
  399. package/dist/esm/models/webhook-test-result-dto.d.ts +1 -1
  400. package/dist/esm/models/webhook-test-result-dto.js +1 -1
  401. package/dist/index.d.ts +1 -1
  402. package/dist/index.js +1 -1
  403. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  404. package/dist/models/acceptance-result-response-dto.js +1 -1
  405. package/dist/models/acceptance-result-v1-response-dto.d.ts +1 -1
  406. package/dist/models/acceptance-result-v1-response-dto.js +1 -1
  407. package/dist/models/acceptance-status-response-dto.d.ts +1 -1
  408. package/dist/models/acceptance-status-response-dto.js +1 -1
  409. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  410. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  411. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  412. package/dist/models/acknowledge-products-request-dto.js +1 -1
  413. package/dist/models/acknowledge-products-v1-request-dto.d.ts +1 -1
  414. package/dist/models/acknowledge-products-v1-request-dto.js +1 -1
  415. package/dist/models/api-catalog-dto.d.ts +1 -1
  416. package/dist/models/api-catalog-dto.js +1 -1
  417. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  418. package/dist/models/api-catalog-entry-dto.js +1 -1
  419. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  420. package/dist/models/api-catalog-link-dto.js +1 -1
  421. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  422. package/dist/models/authorization-server-metadata-dto.js +1 -1
  423. package/dist/models/award-method-public.d.ts +1 -1
  424. package/dist/models/award-method-public.js +1 -1
  425. package/dist/models/award-registered-response-dto.d.ts +1 -1
  426. package/dist/models/award-registered-response-dto.js +1 -1
  427. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  428. package/dist/models/award-registered-v2-response-dto.js +1 -1
  429. package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
  430. package/dist/models/award-reverted-v2-response-dto.js +1 -1
  431. package/dist/models/bid-acceptance-dto.d.ts +29 -0
  432. package/dist/models/bid-acceptance-dto.js +15 -0
  433. package/dist/models/bid-attachment-v1-dto.d.ts +1 -1
  434. package/dist/models/bid-attachment-v1-dto.js +1 -1
  435. package/dist/models/bid-bond-dto.d.ts +1 -1
  436. package/dist/models/bid-bond-dto.js +1 -1
  437. package/dist/models/bid-bond-v1-dto.d.ts +1 -1
  438. package/dist/models/bid-bond-v1-dto.js +1 -1
  439. package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
  440. package/dist/models/bid-cancelled-response-dto.js +1 -1
  441. package/dist/models/bid-contact-dto.d.ts +1 -1
  442. package/dist/models/bid-contact-dto.js +1 -1
  443. package/dist/models/bid-contacts-dto.d.ts +1 -1
  444. package/dist/models/bid-contacts-dto.js +1 -1
  445. package/dist/models/bid-contract-document-dto.d.ts +1 -1
  446. package/dist/models/bid-contract-document-dto.js +1 -1
  447. package/dist/models/bid-contract-documents-batch-v1-request-dto.d.ts +1 -1
  448. package/dist/models/bid-contract-documents-batch-v1-request-dto.js +1 -1
  449. package/dist/models/bid-contract-documents-v1-response-dto.d.ts +1 -1
  450. package/dist/models/bid-contract-documents-v1-response-dto.js +1 -1
  451. package/dist/models/bid-created-response-dto.d.ts +1 -1
  452. package/dist/models/bid-created-response-dto.js +1 -1
  453. package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
  454. package/dist/models/bid-delivery-terms-dto.js +1 -1
  455. package/dist/models/bid-detail-response-dto.d.ts +40 -14
  456. package/dist/models/bid-detail-response-dto.js +1 -1
  457. package/dist/models/bid-document-dto.d.ts +1 -1
  458. package/dist/models/bid-document-dto.js +1 -1
  459. package/dist/models/bid-document-v1-dto.d.ts +1 -1
  460. package/dist/models/bid-document-v1-dto.js +1 -1
  461. package/dist/models/bid-failed-response-dto.d.ts +1 -1
  462. package/dist/models/bid-failed-response-dto.js +1 -1
  463. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  464. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  465. package/dist/models/bid-failure-reason.d.ts +1 -1
  466. package/dist/models/bid-failure-reason.js +1 -1
  467. package/dist/models/bid-item-dto.d.ts +1 -1
  468. package/dist/models/bid-item-dto.js +1 -1
  469. package/dist/models/bid-item-v1-dto.d.ts +1 -1
  470. package/dist/models/bid-item-v1-dto.js +1 -1
  471. package/dist/models/bid-lifecycle-dto.d.ts +1 -1
  472. package/dist/models/bid-lifecycle-dto.js +1 -1
  473. package/dist/models/bid-manager-dto.d.ts +1 -1
  474. package/dist/models/bid-manager-dto.js +1 -1
  475. package/dist/models/bid-manager-v1-dto.d.ts +1 -1
  476. package/dist/models/bid-manager-v1-dto.js +1 -1
  477. package/dist/models/bid-participant-summary-dto.d.ts +1 -1
  478. package/dist/models/bid-participant-summary-dto.js +1 -1
  479. package/dist/models/bid-payment-terms-dto.d.ts +1 -1
  480. package/dist/models/bid-payment-terms-dto.js +1 -1
  481. package/dist/models/bid-product-dto.d.ts +1 -1
  482. package/dist/models/bid-product-dto.js +1 -1
  483. package/dist/models/bid-public-status.d.ts +1 -1
  484. package/dist/models/bid-public-status.js +1 -1
  485. package/dist/models/bid-published-response-dto.d.ts +1 -1
  486. package/dist/models/bid-published-response-dto.js +1 -1
  487. package/dist/models/bid-registered-response-dto.d.ts +5 -1
  488. package/dist/models/bid-registered-response-dto.js +1 -1
  489. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  490. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  491. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  492. package/dist/models/bid-result-participant-dto.js +1 -1
  493. package/dist/models/bid-result-v1-attachment-dto.d.ts +1 -1
  494. package/dist/models/bid-result-v1-attachment-dto.js +1 -1
  495. package/dist/models/bid-result-v1-bid-product-info-dto.d.ts +1 -1
  496. package/dist/models/bid-result-v1-bid-product-info-dto.js +1 -1
  497. package/dist/models/bid-result-v1-participant-dto.d.ts +1 -1
  498. package/dist/models/bid-result-v1-participant-dto.js +1 -1
  499. package/dist/models/bid-result-v1-product-dto.d.ts +1 -1
  500. package/dist/models/bid-result-v1-product-dto.js +1 -1
  501. package/dist/models/bid-results-batch-request-dto.d.ts +2 -2
  502. package/dist/models/bid-results-batch-request-dto.js +1 -1
  503. package/dist/models/bid-results-batch-v1-request-dto.d.ts +1 -1
  504. package/dist/models/bid-results-batch-v1-request-dto.js +1 -1
  505. package/dist/models/bid-results-response-dto.d.ts +1 -1
  506. package/dist/models/bid-results-response-dto.js +1 -1
  507. package/dist/models/bid-results-v1-response-dto.d.ts +1 -1
  508. package/dist/models/bid-results-v1-response-dto.js +1 -1
  509. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  510. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  511. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  512. package/dist/models/bid-settlement-participant-dto.js +1 -1
  513. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  514. package/dist/models/bid-settlement-response-dto.js +1 -1
  515. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  516. package/dist/models/bid-statement-response-dto.js +1 -1
  517. package/dist/models/bid-statement-v1-response-dto.d.ts +1 -1
  518. package/dist/models/bid-statement-v1-response-dto.js +1 -1
  519. package/dist/models/bid-status.d.ts +1 -1
  520. package/dist/models/bid-status.js +1 -1
  521. package/dist/models/bid-summary-dto.d.ts +1 -1
  522. package/dist/models/bid-summary-dto.js +1 -1
  523. package/dist/models/bid-updated-response-dto.d.ts +1 -1
  524. package/dist/models/bid-updated-response-dto.js +1 -1
  525. package/dist/models/cancel-bid-request-dto.d.ts +1 -1
  526. package/dist/models/cancel-bid-request-dto.js +1 -1
  527. package/dist/models/cancel-bid200-response.d.ts +1 -1
  528. package/dist/models/cancel-bid200-response.js +1 -1
  529. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  530. package/dist/models/card-payment-request-response-dto.js +1 -1
  531. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  532. package/dist/models/complete-acceptance-request-dto.js +1 -1
  533. package/dist/models/complete-acceptance-v1-request-dto.d.ts +1 -1
  534. package/dist/models/complete-acceptance-v1-request-dto.js +1 -1
  535. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  536. package/dist/models/complete-acceptance200-response.js +1 -1
  537. package/dist/models/complete-invoice200-response.d.ts +1 -1
  538. package/dist/models/complete-invoice200-response.js +1 -1
  539. package/dist/models/contract-document-item-dto.d.ts +1 -1
  540. package/dist/models/contract-document-item-dto.js +1 -1
  541. package/dist/models/contract-documents-regenerated-response-dto.d.ts +1 -1
  542. package/dist/models/contract-documents-regenerated-response-dto.js +1 -1
  543. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  544. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  545. package/dist/models/create-bid-request-dto.d.ts +1 -1
  546. package/dist/models/create-bid-request-dto.js +1 -1
  547. package/dist/models/create-bid-v1-request-dto.d.ts +1 -1
  548. package/dist/models/create-bid-v1-request-dto.js +1 -1
  549. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  550. package/dist/models/create-card-payment-request-dto.js +1 -1
  551. package/dist/models/create-card-payment200-response.d.ts +1 -1
  552. package/dist/models/create-card-payment200-response.js +1 -1
  553. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  554. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  555. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  556. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  557. package/dist/models/create-webhook-endpoint-request-dto.d.ts +1 -1
  558. package/dist/models/create-webhook-endpoint-request-dto.js +1 -1
  559. package/dist/models/create-webhook-endpoint201-response.d.ts +1 -1
  560. package/dist/models/create-webhook-endpoint201-response.js +1 -1
  561. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  562. package/dist/models/external-contract-document-item-dto.js +1 -1
  563. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  564. package/dist/models/external-contract-documents-response-dto.js +1 -1
  565. package/dist/models/external-contract-item-dto.d.ts +1 -1
  566. package/dist/models/external-contract-item-dto.js +1 -1
  567. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  568. package/dist/models/external-contract-snapshot-dto.js +1 -1
  569. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  570. package/dist/models/external-document-inputs-dto.js +1 -1
  571. package/dist/models/file-meta-response-dto.d.ts +1 -1
  572. package/dist/models/file-meta-response-dto.js +1 -1
  573. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  574. package/dist/models/file-uploaded-response-dto.js +1 -1
  575. package/dist/models/file-uploaded-v1-response-dto.d.ts +1 -1
  576. package/dist/models/file-uploaded-v1-response-dto.js +1 -1
  577. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  578. package/dist/models/generated-external-contract-document-dto.js +1 -1
  579. package/dist/models/get-bid-acceptance200-response.d.ts +1 -1
  580. package/dist/models/get-bid-acceptance200-response.js +1 -1
  581. package/dist/models/get-bid-results200-response.d.ts +1 -1
  582. package/dist/models/get-bid-results200-response.js +1 -1
  583. package/dist/models/get-bid-settlement200-response.d.ts +1 -1
  584. package/dist/models/get-bid-settlement200-response.js +1 -1
  585. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  586. package/dist/models/get-bid-statement200-response.js +1 -1
  587. package/dist/models/get-bid200-response.d.ts +1 -1
  588. package/dist/models/get-bid200-response.js +1 -1
  589. package/dist/models/get-file-meta200-response.d.ts +1 -1
  590. package/dist/models/get-file-meta200-response.js +1 -1
  591. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  592. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  593. package/dist/models/get-webhook-endpoint200-response.d.ts +1 -1
  594. package/dist/models/get-webhook-endpoint200-response.js +1 -1
  595. package/dist/models/health-controller-check200-response.d.ts +1 -1
  596. package/dist/models/health-controller-check200-response.js +1 -1
  597. package/dist/models/health-response-dto.d.ts +1 -1
  598. package/dist/models/health-response-dto.js +1 -1
  599. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  600. package/dist/models/hierarchical-region-dto.js +1 -1
  601. package/dist/models/hierarchical-region-v1-dto.d.ts +1 -1
  602. package/dist/models/hierarchical-region-v1-dto.js +1 -1
  603. package/dist/models/index.d.ts +1 -0
  604. package/dist/models/index.js +1 -0
  605. package/dist/models/introspect-request-dto.d.ts +1 -1
  606. package/dist/models/introspect-request-dto.js +1 -1
  607. package/dist/models/introspection-response-dto.d.ts +1 -1
  608. package/dist/models/introspection-response-dto.js +1 -1
  609. package/dist/models/invalid-param-dto.d.ts +1 -1
  610. package/dist/models/invalid-param-dto.js +1 -1
  611. package/dist/models/invoice-completed-response-dto.d.ts +1 -1
  612. package/dist/models/invoice-completed-response-dto.js +1 -1
  613. package/dist/models/list-bid-contract-documents200-response.d.ts +1 -1
  614. package/dist/models/list-bid-contract-documents200-response.js +1 -1
  615. package/dist/models/list-bid-participants200-response.d.ts +1 -1
  616. package/dist/models/list-bid-participants200-response.js +1 -1
  617. package/dist/models/list-bid-results200-response.d.ts +1 -1
  618. package/dist/models/list-bid-results200-response.js +1 -1
  619. package/dist/models/list-bids-response-dto.d.ts +1 -1
  620. package/dist/models/list-bids-response-dto.js +1 -1
  621. package/dist/models/list-bids200-response.d.ts +1 -1
  622. package/dist/models/list-bids200-response.js +1 -1
  623. package/dist/models/list-products200-response.d.ts +1 -1
  624. package/dist/models/list-products200-response.js +1 -1
  625. package/dist/models/list-webhook-deliveries-response-dto.d.ts +1 -1
  626. package/dist/models/list-webhook-deliveries-response-dto.js +1 -1
  627. package/dist/models/list-webhook-deliveries200-response.d.ts +1 -1
  628. package/dist/models/list-webhook-deliveries200-response.js +1 -1
  629. package/dist/models/list-webhook-endpoints200-response.d.ts +1 -1
  630. package/dist/models/list-webhook-endpoints200-response.js +1 -1
  631. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  632. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  633. package/dist/models/mark-bid-failed-v1-request-dto.d.ts +1 -1
  634. package/dist/models/mark-bid-failed-v1-request-dto.js +1 -1
  635. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  636. package/dist/models/mark-bid-failed201-response.js +1 -1
  637. package/dist/models/negotiation-score-v1-dto.d.ts +1 -1
  638. package/dist/models/negotiation-score-v1-dto.js +1 -1
  639. package/dist/models/negotiation-scored-response-dto.d.ts +1 -1
  640. package/dist/models/negotiation-scored-response-dto.js +1 -1
  641. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  642. package/dist/models/oauth-error-response-dto.js +1 -1
  643. package/dist/models/on-bid-award-reverted-request.d.ts +1 -1
  644. package/dist/models/on-bid-award-reverted-request.js +1 -1
  645. package/dist/models/on-bid-awarded-request.d.ts +1 -1
  646. package/dist/models/on-bid-awarded-request.js +1 -1
  647. package/dist/models/on-bid-canceled-request.d.ts +1 -1
  648. package/dist/models/on-bid-canceled-request.js +1 -1
  649. package/dist/models/on-bid-closed-request.d.ts +1 -1
  650. package/dist/models/on-bid-closed-request.js +1 -1
  651. package/dist/models/on-bid-failed-request.d.ts +1 -1
  652. package/dist/models/on-bid-failed-request.js +1 -1
  653. package/dist/models/on-ping-request.d.ts +1 -1
  654. package/dist/models/on-ping-request.js +1 -1
  655. package/dist/models/partner-webhook-delivery-status.d.ts +1 -1
  656. package/dist/models/partner-webhook-delivery-status.js +1 -1
  657. package/dist/models/partner-webhook-endpoint-status.d.ts +1 -1
  658. package/dist/models/partner-webhook-endpoint-status.js +1 -1
  659. package/dist/models/partner-webhook-event-type.d.ts +1 -1
  660. package/dist/models/partner-webhook-event-type.js +1 -1
  661. package/dist/models/preconditions-dto.d.ts +1 -1
  662. package/dist/models/preconditions-dto.js +1 -1
  663. package/dist/models/preconditions-v1-dto.d.ts +1 -1
  664. package/dist/models/preconditions-v1-dto.js +1 -1
  665. package/dist/models/problem-details-dto.d.ts +1 -1
  666. package/dist/models/problem-details-dto.js +1 -1
  667. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  668. package/dist/models/product-receipt-response-dto.js +1 -1
  669. package/dist/models/product-receipt-v1-response-dto.d.ts +1 -1
  670. package/dist/models/product-receipt-v1-response-dto.js +1 -1
  671. package/dist/models/product-response-dto.d.ts +1 -1
  672. package/dist/models/product-response-dto.js +1 -1
  673. package/dist/models/product-v1-response-dto.d.ts +1 -1
  674. package/dist/models/product-v1-response-dto.js +1 -1
  675. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  676. package/dist/models/protected-resource-metadata-dto.js +1 -1
  677. package/dist/models/publish-bid200-response.d.ts +1 -1
  678. package/dist/models/publish-bid200-response.js +1 -1
  679. package/dist/models/regenerate-contract-documents201-response.d.ts +1 -1
  680. package/dist/models/regenerate-contract-documents201-response.js +1 -1
  681. package/dist/models/register-award-request-dto.d.ts +1 -1
  682. package/dist/models/register-award-request-dto.js +1 -1
  683. package/dist/models/register-award-v1-request-dto.d.ts +1 -1
  684. package/dist/models/register-award-v1-request-dto.js +1 -1
  685. package/dist/models/register-award201-response.d.ts +1 -1
  686. package/dist/models/register-award201-response.js +1 -1
  687. package/dist/models/register-bid201-response.d.ts +1 -1
  688. package/dist/models/register-bid201-response.js +1 -1
  689. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  690. package/dist/models/register-semo-contract-request-dto.js +1 -1
  691. package/dist/models/request-split-invoice-v1-request-dto.d.ts +1 -1
  692. package/dist/models/request-split-invoice-v1-request-dto.js +1 -1
  693. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  694. package/dist/models/retiree-roster-input-dto.js +1 -1
  695. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  696. package/dist/models/retiree-roster-row-dto.js +1 -1
  697. package/dist/models/revert-award-request-dto.d.ts +1 -1
  698. package/dist/models/revert-award-request-dto.js +1 -1
  699. package/dist/models/revert-award200-response.d.ts +1 -1
  700. package/dist/models/revert-award200-response.js +1 -1
  701. package/dist/models/revoke-request-dto.d.ts +1 -1
  702. package/dist/models/revoke-request-dto.js +1 -1
  703. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  704. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  705. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  706. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  707. package/dist/models/send-webhook-test-event200-response.d.ts +1 -1
  708. package/dist/models/send-webhook-test-event200-response.js +1 -1
  709. package/dist/models/split-invoice-v1-response-dto.d.ts +1 -1
  710. package/dist/models/split-invoice-v1-response-dto.js +1 -1
  711. package/dist/models/statement-document-dto.d.ts +1 -1
  712. package/dist/models/statement-document-dto.js +1 -1
  713. package/dist/models/statement-product-dto.d.ts +1 -1
  714. package/dist/models/statement-product-dto.js +1 -1
  715. package/dist/models/statement-v1-document-dto.d.ts +1 -1
  716. package/dist/models/statement-v1-document-dto.js +1 -1
  717. package/dist/models/statement-v1-product-dto.d.ts +1 -1
  718. package/dist/models/statement-v1-product-dto.js +1 -1
  719. package/dist/models/submit-negotiation-scores-v1-request-dto.d.ts +1 -1
  720. package/dist/models/submit-negotiation-scores-v1-request-dto.js +1 -1
  721. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  722. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  723. package/dist/models/supplier-tax-type.d.ts +1 -1
  724. package/dist/models/supplier-tax-type.js +1 -1
  725. package/dist/models/token-request-dto.d.ts +1 -1
  726. package/dist/models/token-request-dto.js +1 -1
  727. package/dist/models/token-response-dto.d.ts +1 -1
  728. package/dist/models/token-response-dto.js +1 -1
  729. package/dist/models/update-bid-request-dto.d.ts +1 -1
  730. package/dist/models/update-bid-request-dto.js +1 -1
  731. package/dist/models/update-bid200-response.d.ts +1 -1
  732. package/dist/models/update-bid200-response.js +1 -1
  733. package/dist/models/update-webhook-endpoint-request-dto.d.ts +1 -1
  734. package/dist/models/update-webhook-endpoint-request-dto.js +1 -1
  735. package/dist/models/upload-file-request-dto.d.ts +1 -1
  736. package/dist/models/upload-file-request-dto.js +1 -1
  737. package/dist/models/upload-file-v1-request-dto.d.ts +1 -1
  738. package/dist/models/upload-file-v1-request-dto.js +1 -1
  739. package/dist/models/upload-file201-response.d.ts +1 -1
  740. package/dist/models/upload-file201-response.js +1 -1
  741. package/dist/models/webhook-bid-event-data.d.ts +1 -1
  742. package/dist/models/webhook-bid-event-data.js +1 -1
  743. package/dist/models/webhook-delivery-dto.d.ts +1 -1
  744. package/dist/models/webhook-delivery-dto.js +1 -1
  745. package/dist/models/webhook-endpoint-dto.d.ts +1 -1
  746. package/dist/models/webhook-endpoint-dto.js +1 -1
  747. package/dist/models/webhook-endpoint-with-secret-dto.d.ts +1 -1
  748. package/dist/models/webhook-endpoint-with-secret-dto.js +1 -1
  749. package/dist/models/webhook-event-envelope.d.ts +1 -1
  750. package/dist/models/webhook-event-envelope.js +1 -1
  751. package/dist/models/webhook-ping-event-data.d.ts +1 -1
  752. package/dist/models/webhook-ping-event-data.js +1 -1
  753. package/dist/models/webhook-test-result-dto.d.ts +1 -1
  754. package/dist/models/webhook-test-result-dto.js +1 -1
  755. package/docs/BidAcceptanceDto.md +26 -0
  756. package/docs/BidDetailResponseDto.md +17 -7
  757. package/docs/BidRegisteredResponseDto.md +2 -0
  758. package/docs/BidResultsBatchRequestDto.md +1 -1
  759. package/docs/PartnerV2Api.md +4 -4
  760. package/index.ts +1 -1
  761. package/models/acceptance-result-response-dto.ts +1 -1
  762. package/models/acceptance-result-v1-response-dto.ts +1 -1
  763. package/models/acceptance-status-response-dto.ts +1 -1
  764. package/models/acknowledge-product-receipt200-response.ts +1 -1
  765. package/models/acknowledge-products-request-dto.ts +1 -1
  766. package/models/acknowledge-products-v1-request-dto.ts +1 -1
  767. package/models/api-catalog-dto.ts +1 -1
  768. package/models/api-catalog-entry-dto.ts +1 -1
  769. package/models/api-catalog-link-dto.ts +1 -1
  770. package/models/authorization-server-metadata-dto.ts +1 -1
  771. package/models/award-method-public.ts +1 -1
  772. package/models/award-registered-response-dto.ts +1 -1
  773. package/models/award-registered-v2-response-dto.ts +1 -1
  774. package/models/award-reverted-v2-response-dto.ts +1 -1
  775. package/models/bid-acceptance-dto.ts +35 -0
  776. package/models/bid-attachment-v1-dto.ts +1 -1
  777. package/models/bid-bond-dto.ts +1 -1
  778. package/models/bid-bond-v1-dto.ts +1 -1
  779. package/models/bid-cancelled-response-dto.ts +1 -1
  780. package/models/bid-contact-dto.ts +1 -1
  781. package/models/bid-contacts-dto.ts +1 -1
  782. package/models/bid-contract-document-dto.ts +1 -1
  783. package/models/bid-contract-documents-batch-v1-request-dto.ts +1 -1
  784. package/models/bid-contract-documents-v1-response-dto.ts +1 -1
  785. package/models/bid-created-response-dto.ts +1 -1
  786. package/models/bid-delivery-terms-dto.ts +1 -1
  787. package/models/bid-detail-response-dto.ts +52 -14
  788. package/models/bid-document-dto.ts +1 -1
  789. package/models/bid-document-v1-dto.ts +1 -1
  790. package/models/bid-failed-response-dto.ts +1 -1
  791. package/models/bid-failed-v2-response-dto.ts +1 -1
  792. package/models/bid-failure-reason.ts +1 -1
  793. package/models/bid-item-dto.ts +1 -1
  794. package/models/bid-item-v1-dto.ts +1 -1
  795. package/models/bid-lifecycle-dto.ts +1 -1
  796. package/models/bid-manager-dto.ts +1 -1
  797. package/models/bid-manager-v1-dto.ts +1 -1
  798. package/models/bid-participant-summary-dto.ts +1 -1
  799. package/models/bid-payment-terms-dto.ts +1 -1
  800. package/models/bid-product-dto.ts +1 -1
  801. package/models/bid-public-status.ts +1 -1
  802. package/models/bid-published-response-dto.ts +1 -1
  803. package/models/bid-registered-response-dto.ts +5 -1
  804. package/models/bid-result-participant-attachment-dto.ts +1 -1
  805. package/models/bid-result-participant-dto.ts +1 -1
  806. package/models/bid-result-v1-attachment-dto.ts +1 -1
  807. package/models/bid-result-v1-bid-product-info-dto.ts +1 -1
  808. package/models/bid-result-v1-participant-dto.ts +1 -1
  809. package/models/bid-result-v1-product-dto.ts +1 -1
  810. package/models/bid-results-batch-request-dto.ts +2 -2
  811. package/models/bid-results-batch-v1-request-dto.ts +1 -1
  812. package/models/bid-results-response-dto.ts +1 -1
  813. package/models/bid-results-v1-response-dto.ts +1 -1
  814. package/models/bid-settlement-line-item-dto.ts +1 -1
  815. package/models/bid-settlement-participant-dto.ts +1 -1
  816. package/models/bid-settlement-response-dto.ts +1 -1
  817. package/models/bid-statement-response-dto.ts +1 -1
  818. package/models/bid-statement-v1-response-dto.ts +1 -1
  819. package/models/bid-status.ts +1 -1
  820. package/models/bid-summary-dto.ts +1 -1
  821. package/models/bid-updated-response-dto.ts +1 -1
  822. package/models/cancel-bid-request-dto.ts +1 -1
  823. package/models/cancel-bid200-response.ts +1 -1
  824. package/models/card-payment-request-response-dto.ts +1 -1
  825. package/models/complete-acceptance-request-dto.ts +1 -1
  826. package/models/complete-acceptance-v1-request-dto.ts +1 -1
  827. package/models/complete-acceptance200-response.ts +1 -1
  828. package/models/complete-invoice200-response.ts +1 -1
  829. package/models/contract-document-item-dto.ts +1 -1
  830. package/models/contract-documents-regenerated-response-dto.ts +1 -1
  831. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  832. package/models/create-bid-request-dto.ts +1 -1
  833. package/models/create-bid-v1-request-dto.ts +1 -1
  834. package/models/create-card-payment-request-dto.ts +1 -1
  835. package/models/create-card-payment200-response.ts +1 -1
  836. package/models/create-external-contract-documents-request-dto.ts +1 -1
  837. package/models/create-external-contract-documents-response-dto.ts +1 -1
  838. package/models/create-webhook-endpoint-request-dto.ts +1 -1
  839. package/models/create-webhook-endpoint201-response.ts +1 -1
  840. package/models/external-contract-document-item-dto.ts +1 -1
  841. package/models/external-contract-documents-response-dto.ts +1 -1
  842. package/models/external-contract-item-dto.ts +1 -1
  843. package/models/external-contract-snapshot-dto.ts +1 -1
  844. package/models/external-document-inputs-dto.ts +1 -1
  845. package/models/file-meta-response-dto.ts +1 -1
  846. package/models/file-uploaded-response-dto.ts +1 -1
  847. package/models/file-uploaded-v1-response-dto.ts +1 -1
  848. package/models/generated-external-contract-document-dto.ts +1 -1
  849. package/models/get-bid-acceptance200-response.ts +1 -1
  850. package/models/get-bid-results200-response.ts +1 -1
  851. package/models/get-bid-settlement200-response.ts +1 -1
  852. package/models/get-bid-statement200-response.ts +1 -1
  853. package/models/get-bid200-response.ts +1 -1
  854. package/models/get-file-meta200-response.ts +1 -1
  855. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  856. package/models/get-webhook-endpoint200-response.ts +1 -1
  857. package/models/health-controller-check200-response.ts +1 -1
  858. package/models/health-response-dto.ts +1 -1
  859. package/models/hierarchical-region-dto.ts +1 -1
  860. package/models/hierarchical-region-v1-dto.ts +1 -1
  861. package/models/index.ts +1 -0
  862. package/models/introspect-request-dto.ts +1 -1
  863. package/models/introspection-response-dto.ts +1 -1
  864. package/models/invalid-param-dto.ts +1 -1
  865. package/models/invoice-completed-response-dto.ts +1 -1
  866. package/models/list-bid-contract-documents200-response.ts +1 -1
  867. package/models/list-bid-participants200-response.ts +1 -1
  868. package/models/list-bid-results200-response.ts +1 -1
  869. package/models/list-bids-response-dto.ts +1 -1
  870. package/models/list-bids200-response.ts +1 -1
  871. package/models/list-products200-response.ts +1 -1
  872. package/models/list-webhook-deliveries-response-dto.ts +1 -1
  873. package/models/list-webhook-deliveries200-response.ts +1 -1
  874. package/models/list-webhook-endpoints200-response.ts +1 -1
  875. package/models/mark-bid-failed-request-dto.ts +1 -1
  876. package/models/mark-bid-failed-v1-request-dto.ts +1 -1
  877. package/models/mark-bid-failed201-response.ts +1 -1
  878. package/models/negotiation-score-v1-dto.ts +1 -1
  879. package/models/negotiation-scored-response-dto.ts +1 -1
  880. package/models/oauth-error-response-dto.ts +1 -1
  881. package/models/on-bid-award-reverted-request.ts +1 -1
  882. package/models/on-bid-awarded-request.ts +1 -1
  883. package/models/on-bid-canceled-request.ts +1 -1
  884. package/models/on-bid-closed-request.ts +1 -1
  885. package/models/on-bid-failed-request.ts +1 -1
  886. package/models/on-ping-request.ts +1 -1
  887. package/models/partner-webhook-delivery-status.ts +1 -1
  888. package/models/partner-webhook-endpoint-status.ts +1 -1
  889. package/models/partner-webhook-event-type.ts +1 -1
  890. package/models/preconditions-dto.ts +1 -1
  891. package/models/preconditions-v1-dto.ts +1 -1
  892. package/models/problem-details-dto.ts +1 -1
  893. package/models/product-receipt-response-dto.ts +1 -1
  894. package/models/product-receipt-v1-response-dto.ts +1 -1
  895. package/models/product-response-dto.ts +1 -1
  896. package/models/product-v1-response-dto.ts +1 -1
  897. package/models/protected-resource-metadata-dto.ts +1 -1
  898. package/models/publish-bid200-response.ts +1 -1
  899. package/models/regenerate-contract-documents201-response.ts +1 -1
  900. package/models/register-award-request-dto.ts +1 -1
  901. package/models/register-award-v1-request-dto.ts +1 -1
  902. package/models/register-award201-response.ts +1 -1
  903. package/models/register-bid201-response.ts +1 -1
  904. package/models/register-semo-contract-request-dto.ts +1 -1
  905. package/models/request-split-invoice-v1-request-dto.ts +1 -1
  906. package/models/retiree-roster-input-dto.ts +1 -1
  907. package/models/retiree-roster-row-dto.ts +1 -1
  908. package/models/revert-award-request-dto.ts +1 -1
  909. package/models/revert-award200-response.ts +1 -1
  910. package/models/revoke-request-dto.ts +1 -1
  911. package/models/semo-contract-registered-response-dto.ts +1 -1
  912. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  913. package/models/send-webhook-test-event200-response.ts +1 -1
  914. package/models/split-invoice-v1-response-dto.ts +1 -1
  915. package/models/statement-document-dto.ts +1 -1
  916. package/models/statement-product-dto.ts +1 -1
  917. package/models/statement-v1-document-dto.ts +1 -1
  918. package/models/statement-v1-product-dto.ts +1 -1
  919. package/models/submit-negotiation-scores-v1-request-dto.ts +1 -1
  920. package/models/supplier-card-payable-response-dto.ts +1 -1
  921. package/models/supplier-tax-type.ts +1 -1
  922. package/models/token-request-dto.ts +1 -1
  923. package/models/token-response-dto.ts +1 -1
  924. package/models/update-bid-request-dto.ts +1 -1
  925. package/models/update-bid200-response.ts +1 -1
  926. package/models/update-webhook-endpoint-request-dto.ts +1 -1
  927. package/models/upload-file-request-dto.ts +1 -1
  928. package/models/upload-file-v1-request-dto.ts +1 -1
  929. package/models/upload-file201-response.ts +1 -1
  930. package/models/webhook-bid-event-data.ts +1 -1
  931. package/models/webhook-delivery-dto.ts +1 -1
  932. package/models/webhook-endpoint-dto.ts +1 -1
  933. package/models/webhook-endpoint-with-secret-dto.ts +1 -1
  934. package/models/webhook-event-envelope.ts +1 -1
  935. package/models/webhook-ping-event-data.ts +1 -1
  936. package/models/webhook-test-result-dto.ts +1 -1
  937. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
7
7
  *
8
- * The version of the OpenAPI document: 31.2.0
8
+ * The version of the OpenAPI document: 32.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -870,7 +870,7 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
870
870
  /**
871
871
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
872
872
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
873
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
873
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
874
874
  * @param {*} [options] Override http request option.
875
875
  * @throws {RequiredError}
876
876
  */
@@ -907,7 +907,7 @@ const PartnerV2ApiAxiosParamCreator = function (configuration) {
907
907
  * @summary 곡고 λͺ©λ‘ 쑰회
908
908
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
909
909
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
910
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
910
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
911
911
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
912
912
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
913
913
  * @param {*} [options] Override http request option.
@@ -2036,7 +2036,7 @@ const PartnerV2ApiFp = function (configuration) {
2036
2036
  /**
2037
2037
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
2038
2038
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
2039
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
2039
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
2040
2040
  * @param {*} [options] Override http request option.
2041
2041
  * @throws {RequiredError}
2042
2042
  */
@@ -2054,7 +2054,7 @@ const PartnerV2ApiFp = function (configuration) {
2054
2054
  * @summary 곡고 λͺ©λ‘ 쑰회
2055
2055
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
2056
2056
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
2057
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
2057
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
2058
2058
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
2059
2059
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
2060
2060
  * @param {*} [options] Override http request option.
@@ -2618,7 +2618,7 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
2618
2618
  /**
2619
2619
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
2620
2620
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
2621
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
2621
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
2622
2622
  * @param {*} [options] Override http request option.
2623
2623
  * @throws {RequiredError}
2624
2624
  */
@@ -2630,7 +2630,7 @@ const PartnerV2ApiFactory = function (configuration, basePath, axios) {
2630
2630
  * @summary 곡고 λͺ©λ‘ 쑰회
2631
2631
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
2632
2632
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
2633
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
2633
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
2634
2634
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
2635
2635
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
2636
2636
  * @param {*} [options] Override http request option.
@@ -3084,7 +3084,7 @@ class PartnerV2Api extends base_1.BaseAPI {
3084
3084
  /**
3085
3085
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
3086
3086
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
3087
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
3087
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
3088
3088
  * @param {*} [options] Override http request option.
3089
3089
  * @throws {RequiredError}
3090
3090
  */
@@ -3096,7 +3096,7 @@ class PartnerV2Api extends base_1.BaseAPI {
3096
3096
  * @summary 곡고 λͺ©λ‘ 쑰회
3097
3097
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
3098
3098
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
3099
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
3099
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
3100
3100
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
3101
3101
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
3102
3102
  * @param {*} [options] Override http request option.
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
7
7
  *
8
- * The version of the OpenAPI document: 31.2.0
8
+ * The version of the OpenAPI document: 32.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
7
7
  *
8
- * The version of the OpenAPI document: 31.2.0
8
+ * The version of the OpenAPI document: 32.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
7
7
  *
8
- * The version of the OpenAPI document: 31.2.0
8
+ * The version of the OpenAPI document: 32.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/base.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/base.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
7
7
  *
8
- * The version of the OpenAPI document: 31.2.0
8
+ * The version of the OpenAPI document: 32.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
7
7
  *
8
- * The version of the OpenAPI document: 31.2.0
8
+ * The version of the OpenAPI document: 32.0.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
6
6
  *
7
- * The version of the OpenAPI document: 31.2.0
7
+ * The version of the OpenAPI document: 32.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
6
6
  *
7
- * The version of the OpenAPI document: 31.2.0
7
+ * The version of the OpenAPI document: 32.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
6
6
  *
7
- * The version of the OpenAPI document: 31.2.0
7
+ * The version of the OpenAPI document: 32.0.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 버전별 인증 - **_/v2** β€” OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰 λ°œκΈ‰ ν›„ `Authorization: Bearer <token>` 헀더. - **_/v1** β€” V5 μΆ©μ‹€ platform-auth. `X-Platform-Id`(cate_set.api_id) / `X-Platform-Secret`(cate_set.api_secret, MD5-hex) ν—€λ”λ‘œ 전솑. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `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 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , `/v1/_*` 은 λ™κ²°λœ λ ˆκ±°μ‹œ ν‘œλ©΄μ΄λ©°, 파일 λ‚΄μš© 응닡은 본문이 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 λ³„λ‘œ λͺ…μ‹œλΌ μžˆλ‹€. μƒˆ slug 은 좔가될 수 μžˆμœΌλ―€λ‘œ, λͺ¨λ₯΄λŠ” slug 을 λ§Œλ‚˜λ©΄ `type` 이 μ•„λ‹ˆλΌ **HTTP 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` κ°€ μ‹€λ¦°λ‹€. ## 버전 수λͺ…(deprecation/sunset) - **_/v1** 은 λ ˆκ±°μ‹œ V5 cutover μ™„λ£Œ μ‹œμ κΉŒμ§€ μœ μ§€λ˜λŠ” μΆ©μ‹€ ν”„λ‘μ‹œμž…λ‹ˆλ‹€. 폐지 일정이 μ •ν•΄μ§€λ©΄ /v1 응닡에 헀더 μ„Έ κ°œκ°€ μ‹€λ¦½λ‹ˆλ‹€ β€” `Deprecation`(RFC 9745, `@<epoch초>`) Β· `Sunset`(RFC 8594, HTTP-date) Β· `Link`(RFC 8288, `rel=\"deprecation\"`/`rel=\"sunset\"` β€” 이전 μ•ˆλ‚΄ λ¬Έμ„œλ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€). 일정이 μ •ν•΄μ§€κΈ° μ „μ—λŠ” μ…‹ λ‹€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ’…λ£ŒμΌμ΄ μ§€λ‚œ λ’€μ˜ ν˜ΈμΆœμ€ `404` κ°€ μ•„λ‹ˆλΌ **`410 Gone`** κ³Ό `type: …/endpoint-sunset` 으둜 κ±°μ ˆλ©λ‹ˆλ‹€. λ‘˜μ˜ 뜻이 λ‹€λ¦…λ‹ˆλ‹€ β€” `404` λŠ” \"그런 것이 μžˆμ—ˆλŠ”μ§€ λͺ¨λ₯΄κ² λ‹€\", `410` 은 \"μžˆμ—ˆκ³  μ˜λ„μ μœΌλ‘œ μ—†μ•΄λ‹€\" μž…λ‹ˆλ‹€. `410` 을 λ°›μœΌλ©΄ 경둜 μ˜€νƒ€λ₯Ό μ˜μ‹¬ν•˜μ§€ 말고 /v2 둜 μ΄μ „ν•˜μ„Έμš”. - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•œλ‹€. μ†ŒλΉ„μžλŠ” 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  것.
4
4
  *
5
- * The version of the OpenAPI document: 31.2.0
5
+ * The version of the OpenAPI document: 32.0.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -270,7 +270,7 @@ export declare const PartnerV2ApiAxiosParamCreator: (configuration?: Configurati
270
270
  /**
271
271
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
272
272
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
273
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
273
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
274
274
  * @param {*} [options] Override http request option.
275
275
  * @throws {RequiredError}
276
276
  */
@@ -280,7 +280,7 @@ export declare const PartnerV2ApiAxiosParamCreator: (configuration?: Configurati
280
280
  * @summary 곡고 λͺ©λ‘ 쑰회
281
281
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
282
282
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
283
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
283
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
284
284
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
285
285
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
286
286
  * @param {*} [options] Override http request option.
@@ -650,7 +650,7 @@ export declare const PartnerV2ApiFp: (configuration?: Configuration) => {
650
650
  /**
651
651
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
652
652
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
653
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
653
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
654
654
  * @param {*} [options] Override http request option.
655
655
  * @throws {RequiredError}
656
656
  */
@@ -660,7 +660,7 @@ export declare const PartnerV2ApiFp: (configuration?: Configuration) => {
660
660
  * @summary 곡고 λͺ©λ‘ 쑰회
661
661
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
662
662
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
663
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
663
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
664
664
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
665
665
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
666
666
  * @param {*} [options] Override http request option.
@@ -1030,7 +1030,7 @@ export declare const PartnerV2ApiFactory: (configuration?: Configuration, basePa
1030
1030
  /**
1031
1031
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
1032
1032
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
1033
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
1033
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
1034
1034
  * @param {*} [options] Override http request option.
1035
1035
  * @throws {RequiredError}
1036
1036
  */
@@ -1040,7 +1040,7 @@ export declare const PartnerV2ApiFactory: (configuration?: Configuration, basePa
1040
1040
  * @summary 곡고 λͺ©λ‘ 쑰회
1041
1041
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
1042
1042
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
1043
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
1043
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
1044
1044
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
1045
1045
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
1046
1046
  * @param {*} [options] Override http request option.
@@ -1410,7 +1410,7 @@ export declare class PartnerV2Api extends BaseAPI {
1410
1410
  /**
1411
1411
  * μ—¬λŸ¬ 곡고의 응찰 κ²°κ³Όλ₯Ό ν•œ λ²ˆμ— μ‘°νšŒν•©λ‹ˆλ‹€. μŠ€μ½”ν”„ `bids:read`. **이 μ—”λ“œν¬μΈνŠΈλ₯Ό 폴링에 μ“°μ„Έμš”.** 곡고 ν•˜λ‚˜μ”© μ‘°νšŒν•˜λŠ” λŒ€μ‹  μ΅œλŒ€ 100건을 ν•œ μ™•λ³΅μœΌλ‘œ λ°›μŠ΅λ‹ˆλ‹€. μ‘λ‹΅μ—λŠ” `ETag` κ°€ μ‹€λ¦¬λ―€λ‘œ, λ‹€μŒ μš”μ²­μ— `If-None-Match` 둜 λ˜λ³΄λ‚΄λ©΄ κ²°κ³Όκ°€ κ·ΈλŒ€λ‘œμΌ λ•Œ `304` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€ β€” λ§ˆκ°μ„ κΈ°λ‹€λ¦¬λŠ” λ™μ•ˆμ˜ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. **μ‹λ³„μž 전달:** `?bidIds=A,B,C`(μ‰Όν‘œ) λ˜λŠ” `?bidIds=A&bidIds=B`(반볡) λ‘˜ λ‹€ λ©λ‹ˆλ‹€. **μ—†λŠ” κ³΅κ³ λŠ” μ‘λ‹΅μ—μ„œ λΉ μ§‘λ‹ˆλ‹€.** μ‘΄μž¬ν•˜μ§€ μ•Šκ±°λ‚˜ λŒ€ν–‰ λ²”μœ„ 밖인 μ‹λ³„μžλŠ” 였λ₯˜κ°€ μ•„λ‹ˆλΌ λˆ„λ½μœΌλ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€ β€” μš”μ²­ν•œ κ±΄μˆ˜μ™€ 받은 κ±΄μˆ˜κ°€ λ‹€λ₯Ό 수 μžˆμœΌλ‹ˆ `bidId` 둜 λŒ€μ‘°ν•˜μ„Έμš”. **λͺ©λ‘μ΄ κΈΈμ–΄ URL 이 λΆ€λ‹΄λ˜λ©΄** `POST /v2/bid-results/query` λ₯Ό μ“°μ„Έμš”. 응닡은 κ°™μŠ΅λ‹ˆλ‹€.
1412
1412
  * @summary μž…μ°° κ²°κ³Ό 배치 쑰회
1413
- * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
1413
+ * @param {string} bidIds μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. μ‰Όν‘œλ‘œ κ΅¬λΆ„ν•˜κ±°λ‚˜ &#x60;bidIds&#x60; λ₯Ό λ°˜λ³΅ν•΄ μ „λ‹¬ν•©λ‹ˆλ‹€. μ΅œλŒ€ 100건.
1414
1414
  * @param {*} [options] Override http request option.
1415
1415
  * @throws {RequiredError}
1416
1416
  */
@@ -1420,7 +1420,7 @@ export declare class PartnerV2Api extends BaseAPI {
1420
1420
  * @summary 곡고 λͺ©λ‘ 쑰회
1421
1421
  * @param {number} [limit] νŽ˜μ΄μ§€ 크기(1~100, κΈ°λ³Έ 100).
1422
1422
  * @param {string} [cursor] λ‹€μŒ νŽ˜μ΄μ§€ μ»€μ„œ(뢈투λͺ… 토큰). 직전 μ‘λ‹΅μ˜ &#x60;nextCursor&#x60; λ₯Ό κ·ΈλŒ€λ‘œ μ „λ‹¬ν•œλ‹€. λ―Έμ§€μ • μ‹œ 첫 νŽ˜μ΄μ§€. &#x60;nextCursor&#x3D;null&#x60; 이면 λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€λ‹€.
1423
- * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž CSV(μ΅œλŒ€ 100건). μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•œλ‹€.
1423
+ * @param {Array<string>} [bidIds] μ‘°νšŒν•  곡고 μ‹λ³„μž λͺ©λ‘. λ°œμ£ΌκΈ°κ΄€ 자체 ꡬ맀번호(ꢌμž₯) λ˜λŠ” c-market 곡고번호. κ΅¬λ§€λ²ˆν˜ΈλŠ” 킀에 λ°”μΈλ”©λœ 발주처 λ²”μœ„μ—μ„œ μ΅œμ‹  λΌμš΄λ“œ 곡고둜 ν•΄μ†Œλ©λ‹ˆλ‹€. 두 ν˜•μ‹μ„ μ„žμ–΄ 보내도 λ©λ‹ˆλ‹€. CSV 둜 μ „λ‹¬ν•˜λ©° μ΅œλŒ€ 100건. μ§€μ • μ‹œ κ·Έ 곡고만 μ‘°νšŒν•©λ‹ˆλ‹€.
1424
1424
  * @param {Array<BidPublicStatus>} [status] 곡고 μƒνƒœ ν•„ν„°(κ³΅κ°œκ°’) CSV. μ§€μ • μ‹œ 그쀑 ν•˜λ‚˜λΌλ„ μΌμΉ˜ν•˜λŠ” 곡고만 μ‘°νšŒν•œλ‹€.
1425
1425
  * @param {Array<ListBidsIncludeEnum>} [include] 행별 ν™•μž₯ λΆ€μ°© CSV. &#x60;results&#x60;&#x3D;응찰 μ°Έμ—¬μž, &#x60;products&#x60;&#x3D;곡고 등둝 ν’ˆλͺ©, &#x60;contacts&#x60;&#x3D;발주 λ‹΄λ‹Ήμž μ„±λͺ…Β·μ—°λ½μ²˜Β·μ΄λ©”μΌ. 미지정이면 λΆ€μ°©ν•˜μ§€ μ•ŠλŠ”λ‹€(응닡이 가볍고 쑰회 λΉ„μš©λ„ λ“€μ§€ μ•ŠλŠ”λ‹€).
1426
1426
  * @param {*} [options] Override http request option.