@cmarket/partner-sdk 38.6.0 β†’ 38.7.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 (798) hide show
  1. package/README.md +4 -4
  2. package/api/embed-api.ts +1 -1
  3. package/api/oauth-api.ts +1 -1
  4. package/api/partner-api-api.ts +1 -1
  5. package/api/products-api.ts +1 -1
  6. package/api/webhooks-api.ts +25 -25
  7. package/api/well-known-api.ts +1 -1
  8. package/api.ts +1 -1
  9. package/base.ts +1 -1
  10. package/common.ts +1 -1
  11. package/configuration.ts +1 -1
  12. package/dist/api/embed-api.d.ts +1 -1
  13. package/dist/api/embed-api.js +1 -1
  14. package/dist/api/oauth-api.d.ts +1 -1
  15. package/dist/api/oauth-api.js +1 -1
  16. package/dist/api/partner-api-api.d.ts +1 -1
  17. package/dist/api/partner-api-api.js +1 -1
  18. package/dist/api/products-api.d.ts +1 -1
  19. package/dist/api/products-api.js +1 -1
  20. package/dist/api/webhooks-api.d.ts +25 -25
  21. package/dist/api/webhooks-api.js +25 -25
  22. package/dist/api/well-known-api.d.ts +1 -1
  23. package/dist/api/well-known-api.js +1 -1
  24. package/dist/api.d.ts +1 -1
  25. package/dist/api.js +1 -1
  26. package/dist/base.d.ts +1 -1
  27. package/dist/base.js +1 -1
  28. package/dist/common.d.ts +1 -1
  29. package/dist/common.js +1 -1
  30. package/dist/configuration.d.ts +1 -1
  31. package/dist/configuration.js +1 -1
  32. package/dist/esm/api/embed-api.d.ts +1 -1
  33. package/dist/esm/api/embed-api.js +1 -1
  34. package/dist/esm/api/oauth-api.d.ts +1 -1
  35. package/dist/esm/api/oauth-api.js +1 -1
  36. package/dist/esm/api/partner-api-api.d.ts +1 -1
  37. package/dist/esm/api/partner-api-api.js +1 -1
  38. package/dist/esm/api/products-api.d.ts +1 -1
  39. package/dist/esm/api/products-api.js +1 -1
  40. package/dist/esm/api/webhooks-api.d.ts +25 -25
  41. package/dist/esm/api/webhooks-api.js +25 -25
  42. package/dist/esm/api/well-known-api.d.ts +1 -1
  43. package/dist/esm/api/well-known-api.js +1 -1
  44. package/dist/esm/api.d.ts +1 -1
  45. package/dist/esm/api.js +1 -1
  46. package/dist/esm/base.d.ts +1 -1
  47. package/dist/esm/base.js +1 -1
  48. package/dist/esm/common.d.ts +1 -1
  49. package/dist/esm/common.js +1 -1
  50. package/dist/esm/configuration.d.ts +1 -1
  51. package/dist/esm/configuration.js +1 -1
  52. package/dist/esm/index.d.ts +1 -1
  53. package/dist/esm/index.js +1 -1
  54. package/dist/esm/models/acceptance-result-response-dto.d.ts +1 -1
  55. package/dist/esm/models/acceptance-result-response-dto.js +1 -1
  56. package/dist/esm/models/acknowledge-product-receipt200-response.d.ts +1 -1
  57. package/dist/esm/models/acknowledge-product-receipt200-response.js +1 -1
  58. package/dist/esm/models/acknowledge-products-request-dto.d.ts +1 -1
  59. package/dist/esm/models/acknowledge-products-request-dto.js +1 -1
  60. package/dist/esm/models/api-catalog-dto.d.ts +1 -1
  61. package/dist/esm/models/api-catalog-dto.js +1 -1
  62. package/dist/esm/models/api-catalog-entry-dto.d.ts +1 -1
  63. package/dist/esm/models/api-catalog-entry-dto.js +1 -1
  64. package/dist/esm/models/api-catalog-link-dto.d.ts +1 -1
  65. package/dist/esm/models/api-catalog-link-dto.js +1 -1
  66. package/dist/esm/models/authorization-server-metadata-dto.d.ts +1 -1
  67. package/dist/esm/models/authorization-server-metadata-dto.js +1 -1
  68. package/dist/esm/models/award-method-public.d.ts +1 -1
  69. package/dist/esm/models/award-method-public.js +1 -1
  70. package/dist/esm/models/award-registered-v2-response-dto.d.ts +1 -1
  71. package/dist/esm/models/award-registered-v2-response-dto.js +1 -1
  72. package/dist/esm/models/award-reverted-v2-response-dto.d.ts +1 -1
  73. package/dist/esm/models/award-reverted-v2-response-dto.js +1 -1
  74. package/dist/esm/models/bid-acceptance-dto.d.ts +1 -1
  75. package/dist/esm/models/bid-acceptance-dto.js +1 -1
  76. package/dist/esm/models/bid-attachment-input-dto.d.ts +1 -1
  77. package/dist/esm/models/bid-attachment-input-dto.js +1 -1
  78. package/dist/esm/models/bid-bond-dto.d.ts +1 -1
  79. package/dist/esm/models/bid-bond-dto.js +1 -1
  80. package/dist/esm/models/bid-cancelled-response-dto.d.ts +1 -1
  81. package/dist/esm/models/bid-cancelled-response-dto.js +1 -1
  82. package/dist/esm/models/bid-contact-dto.d.ts +1 -1
  83. package/dist/esm/models/bid-contact-dto.js +1 -1
  84. package/dist/esm/models/bid-contacts-dto.d.ts +1 -1
  85. package/dist/esm/models/bid-contacts-dto.js +1 -1
  86. package/dist/esm/models/bid-contract-document-dto.d.ts +1 -1
  87. package/dist/esm/models/bid-contract-document-dto.js +1 -1
  88. package/dist/esm/models/bid-delivery-terms-dto.d.ts +1 -1
  89. package/dist/esm/models/bid-delivery-terms-dto.js +1 -1
  90. package/dist/esm/models/bid-detail-response-dto.d.ts +1 -1
  91. package/dist/esm/models/bid-detail-response-dto.js +1 -1
  92. package/dist/esm/models/bid-document-dto.d.ts +1 -1
  93. package/dist/esm/models/bid-document-dto.js +1 -1
  94. package/dist/esm/models/bid-failed-v2-response-dto.d.ts +1 -1
  95. package/dist/esm/models/bid-failed-v2-response-dto.js +1 -1
  96. package/dist/esm/models/bid-item-dto.d.ts +1 -1
  97. package/dist/esm/models/bid-item-dto.js +1 -1
  98. package/dist/esm/models/bid-lifecycle-dto.d.ts +1 -1
  99. package/dist/esm/models/bid-lifecycle-dto.js +1 -1
  100. package/dist/esm/models/bid-manager-dto.d.ts +1 -1
  101. package/dist/esm/models/bid-manager-dto.js +1 -1
  102. package/dist/esm/models/bid-payment-terms-dto.d.ts +1 -1
  103. package/dist/esm/models/bid-payment-terms-dto.js +1 -1
  104. package/dist/esm/models/bid-product-dto.d.ts +1 -1
  105. package/dist/esm/models/bid-product-dto.js +1 -1
  106. package/dist/esm/models/bid-public-status.d.ts +1 -1
  107. package/dist/esm/models/bid-public-status.js +1 -1
  108. package/dist/esm/models/bid-registered-response-dto.d.ts +1 -1
  109. package/dist/esm/models/bid-registered-response-dto.js +1 -1
  110. package/dist/esm/models/bid-result-participant-attachment-dto.d.ts +1 -1
  111. package/dist/esm/models/bid-result-participant-attachment-dto.js +1 -1
  112. package/dist/esm/models/bid-result-participant-dto.d.ts +1 -1
  113. package/dist/esm/models/bid-result-participant-dto.js +1 -1
  114. package/dist/esm/models/bid-results-response-dto.d.ts +1 -1
  115. package/dist/esm/models/bid-results-response-dto.js +1 -1
  116. package/dist/esm/models/bid-settlement-line-item-dto.d.ts +1 -1
  117. package/dist/esm/models/bid-settlement-line-item-dto.js +1 -1
  118. package/dist/esm/models/bid-settlement-participant-dto.d.ts +1 -1
  119. package/dist/esm/models/bid-settlement-participant-dto.js +1 -1
  120. package/dist/esm/models/bid-settlement-response-dto.d.ts +1 -1
  121. package/dist/esm/models/bid-settlement-response-dto.js +1 -1
  122. package/dist/esm/models/bid-statement-response-dto.d.ts +1 -1
  123. package/dist/esm/models/bid-statement-response-dto.js +1 -1
  124. package/dist/esm/models/bid-summary-dto.d.ts +1 -1
  125. package/dist/esm/models/bid-summary-dto.js +1 -1
  126. package/dist/esm/models/bid-type-public.d.ts +1 -1
  127. package/dist/esm/models/bid-type-public.js +1 -1
  128. package/dist/esm/models/bid-updated-response-dto.d.ts +1 -1
  129. package/dist/esm/models/bid-updated-response-dto.js +1 -1
  130. package/dist/esm/models/cancel-bid-request-dto.d.ts +1 -1
  131. package/dist/esm/models/cancel-bid-request-dto.js +1 -1
  132. package/dist/esm/models/cancel-bid200-response.d.ts +1 -1
  133. package/dist/esm/models/cancel-bid200-response.js +1 -1
  134. package/dist/esm/models/card-payment-request-response-dto.d.ts +1 -1
  135. package/dist/esm/models/card-payment-request-response-dto.js +1 -1
  136. package/dist/esm/models/complete-acceptance-request-dto.d.ts +1 -1
  137. package/dist/esm/models/complete-acceptance-request-dto.js +1 -1
  138. package/dist/esm/models/complete-acceptance200-response.d.ts +1 -1
  139. package/dist/esm/models/complete-acceptance200-response.js +1 -1
  140. package/dist/esm/models/complete-invoice200-response.d.ts +1 -1
  141. package/dist/esm/models/complete-invoice200-response.js +1 -1
  142. package/dist/esm/models/complete-upload-request-dto.d.ts +1 -1
  143. package/dist/esm/models/complete-upload-request-dto.js +1 -1
  144. package/dist/esm/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  145. package/dist/esm/models/contract-restriction-confirm-input-dto.js +1 -1
  146. package/dist/esm/models/create-bid-request-dto.d.ts +1 -1
  147. package/dist/esm/models/create-bid-request-dto.js +1 -1
  148. package/dist/esm/models/create-card-payment-dto.d.ts +1 -1
  149. package/dist/esm/models/create-card-payment-dto.js +1 -1
  150. package/dist/esm/models/create-card-payment-request-dto.d.ts +1 -1
  151. package/dist/esm/models/create-card-payment-request-dto.js +1 -1
  152. package/dist/esm/models/create-card-payment200-response.d.ts +1 -1
  153. package/dist/esm/models/create-card-payment200-response.js +1 -1
  154. package/dist/esm/models/create-embed-launch201-response.d.ts +1 -1
  155. package/dist/esm/models/create-embed-launch201-response.js +1 -1
  156. package/dist/esm/models/create-external-contract-documents-request-dto.d.ts +1 -1
  157. package/dist/esm/models/create-external-contract-documents-request-dto.js +1 -1
  158. package/dist/esm/models/create-external-contract-documents-response-dto.d.ts +1 -1
  159. package/dist/esm/models/create-external-contract-documents-response-dto.js +1 -1
  160. package/dist/esm/models/create-file-upload-url201-response.d.ts +1 -1
  161. package/dist/esm/models/create-file-upload-url201-response.js +1 -1
  162. package/dist/esm/models/create-upload-url-request-dto.d.ts +1 -1
  163. package/dist/esm/models/create-upload-url-request-dto.js +1 -1
  164. package/dist/esm/models/create-webhook-endpoint-request-dto.d.ts +1 -1
  165. package/dist/esm/models/create-webhook-endpoint-request-dto.js +1 -1
  166. package/dist/esm/models/create-webhook-endpoint201-response.d.ts +1 -1
  167. package/dist/esm/models/create-webhook-endpoint201-response.js +1 -1
  168. package/dist/esm/models/delivery-date-type-public.d.ts +1 -1
  169. package/dist/esm/models/delivery-date-type-public.js +1 -1
  170. package/dist/esm/models/delivery-method-public.d.ts +1 -1
  171. package/dist/esm/models/delivery-method-public.js +1 -1
  172. package/dist/esm/models/embed-launch-request-dto.d.ts +1 -1
  173. package/dist/esm/models/embed-launch-request-dto.js +1 -1
  174. package/dist/esm/models/embed-launch-response-dto.d.ts +1 -1
  175. package/dist/esm/models/embed-launch-response-dto.js +1 -1
  176. package/dist/esm/models/excellent-procurement-public.d.ts +1 -1
  177. package/dist/esm/models/excellent-procurement-public.js +1 -1
  178. package/dist/esm/models/external-contract-document-item-dto.d.ts +1 -1
  179. package/dist/esm/models/external-contract-document-item-dto.js +1 -1
  180. package/dist/esm/models/external-contract-documents-response-dto.d.ts +1 -1
  181. package/dist/esm/models/external-contract-documents-response-dto.js +1 -1
  182. package/dist/esm/models/external-contract-item-dto.d.ts +1 -1
  183. package/dist/esm/models/external-contract-item-dto.js +1 -1
  184. package/dist/esm/models/external-contract-snapshot-dto.d.ts +1 -1
  185. package/dist/esm/models/external-contract-snapshot-dto.js +1 -1
  186. package/dist/esm/models/external-document-inputs-dto.d.ts +1 -1
  187. package/dist/esm/models/external-document-inputs-dto.js +1 -1
  188. package/dist/esm/models/file-meta-response-dto.d.ts +1 -1
  189. package/dist/esm/models/file-meta-response-dto.js +1 -1
  190. package/dist/esm/models/file-uploaded-response-dto.d.ts +1 -1
  191. package/dist/esm/models/file-uploaded-response-dto.js +1 -1
  192. package/dist/esm/models/generated-external-contract-document-dto.d.ts +1 -1
  193. package/dist/esm/models/generated-external-contract-document-dto.js +1 -1
  194. package/dist/esm/models/get-bid-settlement200-response.d.ts +1 -1
  195. package/dist/esm/models/get-bid-settlement200-response.js +1 -1
  196. package/dist/esm/models/get-bid-statement200-response.d.ts +1 -1
  197. package/dist/esm/models/get-bid-statement200-response.js +1 -1
  198. package/dist/esm/models/get-bid200-response.d.ts +1 -1
  199. package/dist/esm/models/get-bid200-response.js +1 -1
  200. package/dist/esm/models/get-file-meta200-response.d.ts +1 -1
  201. package/dist/esm/models/get-file-meta200-response.js +1 -1
  202. package/dist/esm/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  203. package/dist/esm/models/get-supplier-card-payable-v2200-response.js +1 -1
  204. package/dist/esm/models/get-webhook-endpoint200-response.d.ts +1 -1
  205. package/dist/esm/models/get-webhook-endpoint200-response.js +1 -1
  206. package/dist/esm/models/green-product-public.d.ts +1 -1
  207. package/dist/esm/models/green-product-public.js +1 -1
  208. package/dist/esm/models/health-controller-check200-response.d.ts +1 -1
  209. package/dist/esm/models/health-controller-check200-response.js +1 -1
  210. package/dist/esm/models/health-response-dto.d.ts +1 -1
  211. package/dist/esm/models/health-response-dto.js +1 -1
  212. package/dist/esm/models/hierarchical-region-dto.d.ts +1 -1
  213. package/dist/esm/models/hierarchical-region-dto.js +1 -1
  214. package/dist/esm/models/introspect-request-dto.d.ts +1 -1
  215. package/dist/esm/models/introspect-request-dto.js +1 -1
  216. package/dist/esm/models/introspection-response-dto.d.ts +1 -1
  217. package/dist/esm/models/introspection-response-dto.js +1 -1
  218. package/dist/esm/models/invalid-param-dto.d.ts +1 -1
  219. package/dist/esm/models/invalid-param-dto.js +1 -1
  220. package/dist/esm/models/invoice-completed-response-dto.d.ts +1 -1
  221. package/dist/esm/models/invoice-completed-response-dto.js +1 -1
  222. package/dist/esm/models/invoice-split-response-dto.d.ts +1 -1
  223. package/dist/esm/models/invoice-split-response-dto.js +1 -1
  224. package/dist/esm/models/legal-mandatory-public.d.ts +1 -1
  225. package/dist/esm/models/legal-mandatory-public.js +1 -1
  226. package/dist/esm/models/list-bid-results200-response.d.ts +1 -1
  227. package/dist/esm/models/list-bid-results200-response.js +1 -1
  228. package/dist/esm/models/list-bids200-response-meta.d.ts +1 -1
  229. package/dist/esm/models/list-bids200-response-meta.js +1 -1
  230. package/dist/esm/models/list-bids200-response.d.ts +1 -1
  231. package/dist/esm/models/list-bids200-response.js +1 -1
  232. package/dist/esm/models/list-products200-response.d.ts +1 -1
  233. package/dist/esm/models/list-products200-response.js +1 -1
  234. package/dist/esm/models/list-webhook-deliveries-response-dto.d.ts +1 -1
  235. package/dist/esm/models/list-webhook-deliveries-response-dto.js +1 -1
  236. package/dist/esm/models/list-webhook-deliveries200-response.d.ts +1 -1
  237. package/dist/esm/models/list-webhook-deliveries200-response.js +1 -1
  238. package/dist/esm/models/list-webhook-endpoints200-response.d.ts +1 -1
  239. package/dist/esm/models/list-webhook-endpoints200-response.js +1 -1
  240. package/dist/esm/models/mark-bid-failed-request-dto.d.ts +1 -1
  241. package/dist/esm/models/mark-bid-failed-request-dto.js +1 -1
  242. package/dist/esm/models/mark-bid-failed201-response.d.ts +1 -1
  243. package/dist/esm/models/mark-bid-failed201-response.js +1 -1
  244. package/dist/esm/models/negotiation-score-dto.d.ts +1 -1
  245. package/dist/esm/models/negotiation-score-dto.js +1 -1
  246. package/dist/esm/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  247. package/dist/esm/models/negotiation-scored-v2-response-dto.js +1 -1
  248. package/dist/esm/models/oauth-error-response-dto.d.ts +1 -1
  249. package/dist/esm/models/oauth-error-response-dto.js +1 -1
  250. package/dist/esm/models/on-bid-award-reverted-request.d.ts +1 -1
  251. package/dist/esm/models/on-bid-award-reverted-request.js +1 -1
  252. package/dist/esm/models/on-bid-awarded-request.d.ts +1 -1
  253. package/dist/esm/models/on-bid-awarded-request.js +1 -1
  254. package/dist/esm/models/on-bid-canceled-request.d.ts +1 -1
  255. package/dist/esm/models/on-bid-canceled-request.js +1 -1
  256. package/dist/esm/models/on-bid-closed-request.d.ts +1 -1
  257. package/dist/esm/models/on-bid-closed-request.js +1 -1
  258. package/dist/esm/models/on-bid-failed-request.d.ts +1 -1
  259. package/dist/esm/models/on-bid-failed-request.js +1 -1
  260. package/dist/esm/models/on-ping-request.d.ts +1 -1
  261. package/dist/esm/models/on-ping-request.js +1 -1
  262. package/dist/esm/models/partner-webhook-delivery-status.d.ts +1 -1
  263. package/dist/esm/models/partner-webhook-delivery-status.js +1 -1
  264. package/dist/esm/models/partner-webhook-endpoint-status.d.ts +1 -1
  265. package/dist/esm/models/partner-webhook-endpoint-status.js +1 -1
  266. package/dist/esm/models/partner-webhook-event-type.d.ts +1 -1
  267. package/dist/esm/models/partner-webhook-event-type.js +1 -1
  268. package/dist/esm/models/payment-method-public.d.ts +1 -1
  269. package/dist/esm/models/payment-method-public.js +1 -1
  270. package/dist/esm/models/preconditions-dto.d.ts +1 -1
  271. package/dist/esm/models/preconditions-dto.js +1 -1
  272. package/dist/esm/models/problem-details-dto.d.ts +1 -1
  273. package/dist/esm/models/problem-details-dto.js +1 -1
  274. package/dist/esm/models/product-receipt-response-dto.d.ts +1 -1
  275. package/dist/esm/models/product-receipt-response-dto.js +1 -1
  276. package/dist/esm/models/product-response-dto.d.ts +1 -1
  277. package/dist/esm/models/product-response-dto.js +1 -1
  278. package/dist/esm/models/protected-resource-metadata-dto.d.ts +1 -1
  279. package/dist/esm/models/protected-resource-metadata-dto.js +1 -1
  280. package/dist/esm/models/register-award-request-dto.d.ts +1 -1
  281. package/dist/esm/models/register-award-request-dto.js +1 -1
  282. package/dist/esm/models/register-award201-response.d.ts +1 -1
  283. package/dist/esm/models/register-award201-response.js +1 -1
  284. package/dist/esm/models/register-bid201-response.d.ts +1 -1
  285. package/dist/esm/models/register-bid201-response.js +1 -1
  286. package/dist/esm/models/register-semo-contract-request-dto.d.ts +1 -1
  287. package/dist/esm/models/register-semo-contract-request-dto.js +1 -1
  288. package/dist/esm/models/request-invoice-split-request-dto.d.ts +1 -1
  289. package/dist/esm/models/request-invoice-split-request-dto.js +1 -1
  290. package/dist/esm/models/request-invoice-split200-response.d.ts +1 -1
  291. package/dist/esm/models/request-invoice-split200-response.js +1 -1
  292. package/dist/esm/models/retiree-roster-input-dto.d.ts +1 -1
  293. package/dist/esm/models/retiree-roster-input-dto.js +1 -1
  294. package/dist/esm/models/retiree-roster-row-dto.d.ts +1 -1
  295. package/dist/esm/models/retiree-roster-row-dto.js +1 -1
  296. package/dist/esm/models/revert-award-request-dto.d.ts +1 -1
  297. package/dist/esm/models/revert-award-request-dto.js +1 -1
  298. package/dist/esm/models/revert-award200-response.d.ts +1 -1
  299. package/dist/esm/models/revert-award200-response.js +1 -1
  300. package/dist/esm/models/revoke-request-dto.d.ts +1 -1
  301. package/dist/esm/models/revoke-request-dto.js +1 -1
  302. package/dist/esm/models/semo-contract-registered-response-dto.d.ts +1 -1
  303. package/dist/esm/models/semo-contract-registered-response-dto.js +1 -1
  304. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  305. package/dist/esm/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  306. package/dist/esm/models/send-webhook-test-event200-response.d.ts +1 -1
  307. package/dist/esm/models/send-webhook-test-event200-response.js +1 -1
  308. package/dist/esm/models/statement-document-dto.d.ts +1 -1
  309. package/dist/esm/models/statement-document-dto.js +1 -1
  310. package/dist/esm/models/statement-product-dto.d.ts +1 -1
  311. package/dist/esm/models/statement-product-dto.js +1 -1
  312. package/dist/esm/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  313. package/dist/esm/models/submit-negotiation-scores-request-dto.js +1 -1
  314. package/dist/esm/models/submit-negotiation-scores201-response.d.ts +1 -1
  315. package/dist/esm/models/submit-negotiation-scores201-response.js +1 -1
  316. package/dist/esm/models/supplier-card-payable-response-dto.d.ts +1 -1
  317. package/dist/esm/models/supplier-card-payable-response-dto.js +1 -1
  318. package/dist/esm/models/supplier-tax-type.d.ts +1 -1
  319. package/dist/esm/models/supplier-tax-type.js +1 -1
  320. package/dist/esm/models/token-request-dto.d.ts +1 -1
  321. package/dist/esm/models/token-request-dto.js +1 -1
  322. package/dist/esm/models/token-response-dto.d.ts +1 -1
  323. package/dist/esm/models/token-response-dto.js +1 -1
  324. package/dist/esm/models/update-bid-request-dto.d.ts +1 -1
  325. package/dist/esm/models/update-bid-request-dto.js +1 -1
  326. package/dist/esm/models/update-bid200-response.d.ts +1 -1
  327. package/dist/esm/models/update-bid200-response.js +1 -1
  328. package/dist/esm/models/update-webhook-endpoint-request-dto.d.ts +1 -1
  329. package/dist/esm/models/update-webhook-endpoint-request-dto.js +1 -1
  330. package/dist/esm/models/upload-file-request-dto.d.ts +1 -1
  331. package/dist/esm/models/upload-file-request-dto.js +1 -1
  332. package/dist/esm/models/upload-file201-response.d.ts +1 -1
  333. package/dist/esm/models/upload-file201-response.js +1 -1
  334. package/dist/esm/models/upload-url-created-response-dto.d.ts +1 -1
  335. package/dist/esm/models/upload-url-created-response-dto.js +1 -1
  336. package/dist/esm/models/webhook-bid-event-data.d.ts +1 -1
  337. package/dist/esm/models/webhook-bid-event-data.js +1 -1
  338. package/dist/esm/models/webhook-delivery-dto.d.ts +1 -1
  339. package/dist/esm/models/webhook-delivery-dto.js +1 -1
  340. package/dist/esm/models/webhook-endpoint-dto.d.ts +1 -1
  341. package/dist/esm/models/webhook-endpoint-dto.js +1 -1
  342. package/dist/esm/models/webhook-endpoint-with-secret-dto.d.ts +1 -1
  343. package/dist/esm/models/webhook-endpoint-with-secret-dto.js +1 -1
  344. package/dist/esm/models/webhook-event-envelope.d.ts +1 -1
  345. package/dist/esm/models/webhook-event-envelope.js +1 -1
  346. package/dist/esm/models/webhook-ping-event-data.d.ts +1 -1
  347. package/dist/esm/models/webhook-ping-event-data.js +1 -1
  348. package/dist/esm/models/webhook-test-result-dto.d.ts +1 -1
  349. package/dist/esm/models/webhook-test-result-dto.js +1 -1
  350. package/dist/index.d.ts +1 -1
  351. package/dist/index.js +1 -1
  352. package/dist/models/acceptance-result-response-dto.d.ts +1 -1
  353. package/dist/models/acceptance-result-response-dto.js +1 -1
  354. package/dist/models/acknowledge-product-receipt200-response.d.ts +1 -1
  355. package/dist/models/acknowledge-product-receipt200-response.js +1 -1
  356. package/dist/models/acknowledge-products-request-dto.d.ts +1 -1
  357. package/dist/models/acknowledge-products-request-dto.js +1 -1
  358. package/dist/models/api-catalog-dto.d.ts +1 -1
  359. package/dist/models/api-catalog-dto.js +1 -1
  360. package/dist/models/api-catalog-entry-dto.d.ts +1 -1
  361. package/dist/models/api-catalog-entry-dto.js +1 -1
  362. package/dist/models/api-catalog-link-dto.d.ts +1 -1
  363. package/dist/models/api-catalog-link-dto.js +1 -1
  364. package/dist/models/authorization-server-metadata-dto.d.ts +1 -1
  365. package/dist/models/authorization-server-metadata-dto.js +1 -1
  366. package/dist/models/award-method-public.d.ts +1 -1
  367. package/dist/models/award-method-public.js +1 -1
  368. package/dist/models/award-registered-v2-response-dto.d.ts +1 -1
  369. package/dist/models/award-registered-v2-response-dto.js +1 -1
  370. package/dist/models/award-reverted-v2-response-dto.d.ts +1 -1
  371. package/dist/models/award-reverted-v2-response-dto.js +1 -1
  372. package/dist/models/bid-acceptance-dto.d.ts +1 -1
  373. package/dist/models/bid-acceptance-dto.js +1 -1
  374. package/dist/models/bid-attachment-input-dto.d.ts +1 -1
  375. package/dist/models/bid-attachment-input-dto.js +1 -1
  376. package/dist/models/bid-bond-dto.d.ts +1 -1
  377. package/dist/models/bid-bond-dto.js +1 -1
  378. package/dist/models/bid-cancelled-response-dto.d.ts +1 -1
  379. package/dist/models/bid-cancelled-response-dto.js +1 -1
  380. package/dist/models/bid-contact-dto.d.ts +1 -1
  381. package/dist/models/bid-contact-dto.js +1 -1
  382. package/dist/models/bid-contacts-dto.d.ts +1 -1
  383. package/dist/models/bid-contacts-dto.js +1 -1
  384. package/dist/models/bid-contract-document-dto.d.ts +1 -1
  385. package/dist/models/bid-contract-document-dto.js +1 -1
  386. package/dist/models/bid-delivery-terms-dto.d.ts +1 -1
  387. package/dist/models/bid-delivery-terms-dto.js +1 -1
  388. package/dist/models/bid-detail-response-dto.d.ts +1 -1
  389. package/dist/models/bid-detail-response-dto.js +1 -1
  390. package/dist/models/bid-document-dto.d.ts +1 -1
  391. package/dist/models/bid-document-dto.js +1 -1
  392. package/dist/models/bid-failed-v2-response-dto.d.ts +1 -1
  393. package/dist/models/bid-failed-v2-response-dto.js +1 -1
  394. package/dist/models/bid-item-dto.d.ts +1 -1
  395. package/dist/models/bid-item-dto.js +1 -1
  396. package/dist/models/bid-lifecycle-dto.d.ts +1 -1
  397. package/dist/models/bid-lifecycle-dto.js +1 -1
  398. package/dist/models/bid-manager-dto.d.ts +1 -1
  399. package/dist/models/bid-manager-dto.js +1 -1
  400. package/dist/models/bid-payment-terms-dto.d.ts +1 -1
  401. package/dist/models/bid-payment-terms-dto.js +1 -1
  402. package/dist/models/bid-product-dto.d.ts +1 -1
  403. package/dist/models/bid-product-dto.js +1 -1
  404. package/dist/models/bid-public-status.d.ts +1 -1
  405. package/dist/models/bid-public-status.js +1 -1
  406. package/dist/models/bid-registered-response-dto.d.ts +1 -1
  407. package/dist/models/bid-registered-response-dto.js +1 -1
  408. package/dist/models/bid-result-participant-attachment-dto.d.ts +1 -1
  409. package/dist/models/bid-result-participant-attachment-dto.js +1 -1
  410. package/dist/models/bid-result-participant-dto.d.ts +1 -1
  411. package/dist/models/bid-result-participant-dto.js +1 -1
  412. package/dist/models/bid-results-response-dto.d.ts +1 -1
  413. package/dist/models/bid-results-response-dto.js +1 -1
  414. package/dist/models/bid-settlement-line-item-dto.d.ts +1 -1
  415. package/dist/models/bid-settlement-line-item-dto.js +1 -1
  416. package/dist/models/bid-settlement-participant-dto.d.ts +1 -1
  417. package/dist/models/bid-settlement-participant-dto.js +1 -1
  418. package/dist/models/bid-settlement-response-dto.d.ts +1 -1
  419. package/dist/models/bid-settlement-response-dto.js +1 -1
  420. package/dist/models/bid-statement-response-dto.d.ts +1 -1
  421. package/dist/models/bid-statement-response-dto.js +1 -1
  422. package/dist/models/bid-summary-dto.d.ts +1 -1
  423. package/dist/models/bid-summary-dto.js +1 -1
  424. package/dist/models/bid-type-public.d.ts +1 -1
  425. package/dist/models/bid-type-public.js +1 -1
  426. package/dist/models/bid-updated-response-dto.d.ts +1 -1
  427. package/dist/models/bid-updated-response-dto.js +1 -1
  428. package/dist/models/cancel-bid-request-dto.d.ts +1 -1
  429. package/dist/models/cancel-bid-request-dto.js +1 -1
  430. package/dist/models/cancel-bid200-response.d.ts +1 -1
  431. package/dist/models/cancel-bid200-response.js +1 -1
  432. package/dist/models/card-payment-request-response-dto.d.ts +1 -1
  433. package/dist/models/card-payment-request-response-dto.js +1 -1
  434. package/dist/models/complete-acceptance-request-dto.d.ts +1 -1
  435. package/dist/models/complete-acceptance-request-dto.js +1 -1
  436. package/dist/models/complete-acceptance200-response.d.ts +1 -1
  437. package/dist/models/complete-acceptance200-response.js +1 -1
  438. package/dist/models/complete-invoice200-response.d.ts +1 -1
  439. package/dist/models/complete-invoice200-response.js +1 -1
  440. package/dist/models/complete-upload-request-dto.d.ts +1 -1
  441. package/dist/models/complete-upload-request-dto.js +1 -1
  442. package/dist/models/contract-restriction-confirm-input-dto.d.ts +1 -1
  443. package/dist/models/contract-restriction-confirm-input-dto.js +1 -1
  444. package/dist/models/create-bid-request-dto.d.ts +1 -1
  445. package/dist/models/create-bid-request-dto.js +1 -1
  446. package/dist/models/create-card-payment-dto.d.ts +1 -1
  447. package/dist/models/create-card-payment-dto.js +1 -1
  448. package/dist/models/create-card-payment-request-dto.d.ts +1 -1
  449. package/dist/models/create-card-payment-request-dto.js +1 -1
  450. package/dist/models/create-card-payment200-response.d.ts +1 -1
  451. package/dist/models/create-card-payment200-response.js +1 -1
  452. package/dist/models/create-embed-launch201-response.d.ts +1 -1
  453. package/dist/models/create-embed-launch201-response.js +1 -1
  454. package/dist/models/create-external-contract-documents-request-dto.d.ts +1 -1
  455. package/dist/models/create-external-contract-documents-request-dto.js +1 -1
  456. package/dist/models/create-external-contract-documents-response-dto.d.ts +1 -1
  457. package/dist/models/create-external-contract-documents-response-dto.js +1 -1
  458. package/dist/models/create-file-upload-url201-response.d.ts +1 -1
  459. package/dist/models/create-file-upload-url201-response.js +1 -1
  460. package/dist/models/create-upload-url-request-dto.d.ts +1 -1
  461. package/dist/models/create-upload-url-request-dto.js +1 -1
  462. package/dist/models/create-webhook-endpoint-request-dto.d.ts +1 -1
  463. package/dist/models/create-webhook-endpoint-request-dto.js +1 -1
  464. package/dist/models/create-webhook-endpoint201-response.d.ts +1 -1
  465. package/dist/models/create-webhook-endpoint201-response.js +1 -1
  466. package/dist/models/delivery-date-type-public.d.ts +1 -1
  467. package/dist/models/delivery-date-type-public.js +1 -1
  468. package/dist/models/delivery-method-public.d.ts +1 -1
  469. package/dist/models/delivery-method-public.js +1 -1
  470. package/dist/models/embed-launch-request-dto.d.ts +1 -1
  471. package/dist/models/embed-launch-request-dto.js +1 -1
  472. package/dist/models/embed-launch-response-dto.d.ts +1 -1
  473. package/dist/models/embed-launch-response-dto.js +1 -1
  474. package/dist/models/excellent-procurement-public.d.ts +1 -1
  475. package/dist/models/excellent-procurement-public.js +1 -1
  476. package/dist/models/external-contract-document-item-dto.d.ts +1 -1
  477. package/dist/models/external-contract-document-item-dto.js +1 -1
  478. package/dist/models/external-contract-documents-response-dto.d.ts +1 -1
  479. package/dist/models/external-contract-documents-response-dto.js +1 -1
  480. package/dist/models/external-contract-item-dto.d.ts +1 -1
  481. package/dist/models/external-contract-item-dto.js +1 -1
  482. package/dist/models/external-contract-snapshot-dto.d.ts +1 -1
  483. package/dist/models/external-contract-snapshot-dto.js +1 -1
  484. package/dist/models/external-document-inputs-dto.d.ts +1 -1
  485. package/dist/models/external-document-inputs-dto.js +1 -1
  486. package/dist/models/file-meta-response-dto.d.ts +1 -1
  487. package/dist/models/file-meta-response-dto.js +1 -1
  488. package/dist/models/file-uploaded-response-dto.d.ts +1 -1
  489. package/dist/models/file-uploaded-response-dto.js +1 -1
  490. package/dist/models/generated-external-contract-document-dto.d.ts +1 -1
  491. package/dist/models/generated-external-contract-document-dto.js +1 -1
  492. package/dist/models/get-bid-settlement200-response.d.ts +1 -1
  493. package/dist/models/get-bid-settlement200-response.js +1 -1
  494. package/dist/models/get-bid-statement200-response.d.ts +1 -1
  495. package/dist/models/get-bid-statement200-response.js +1 -1
  496. package/dist/models/get-bid200-response.d.ts +1 -1
  497. package/dist/models/get-bid200-response.js +1 -1
  498. package/dist/models/get-file-meta200-response.d.ts +1 -1
  499. package/dist/models/get-file-meta200-response.js +1 -1
  500. package/dist/models/get-supplier-card-payable-v2200-response.d.ts +1 -1
  501. package/dist/models/get-supplier-card-payable-v2200-response.js +1 -1
  502. package/dist/models/get-webhook-endpoint200-response.d.ts +1 -1
  503. package/dist/models/get-webhook-endpoint200-response.js +1 -1
  504. package/dist/models/green-product-public.d.ts +1 -1
  505. package/dist/models/green-product-public.js +1 -1
  506. package/dist/models/health-controller-check200-response.d.ts +1 -1
  507. package/dist/models/health-controller-check200-response.js +1 -1
  508. package/dist/models/health-response-dto.d.ts +1 -1
  509. package/dist/models/health-response-dto.js +1 -1
  510. package/dist/models/hierarchical-region-dto.d.ts +1 -1
  511. package/dist/models/hierarchical-region-dto.js +1 -1
  512. package/dist/models/introspect-request-dto.d.ts +1 -1
  513. package/dist/models/introspect-request-dto.js +1 -1
  514. package/dist/models/introspection-response-dto.d.ts +1 -1
  515. package/dist/models/introspection-response-dto.js +1 -1
  516. package/dist/models/invalid-param-dto.d.ts +1 -1
  517. package/dist/models/invalid-param-dto.js +1 -1
  518. package/dist/models/invoice-completed-response-dto.d.ts +1 -1
  519. package/dist/models/invoice-completed-response-dto.js +1 -1
  520. package/dist/models/invoice-split-response-dto.d.ts +1 -1
  521. package/dist/models/invoice-split-response-dto.js +1 -1
  522. package/dist/models/legal-mandatory-public.d.ts +1 -1
  523. package/dist/models/legal-mandatory-public.js +1 -1
  524. package/dist/models/list-bid-results200-response.d.ts +1 -1
  525. package/dist/models/list-bid-results200-response.js +1 -1
  526. package/dist/models/list-bids200-response-meta.d.ts +1 -1
  527. package/dist/models/list-bids200-response-meta.js +1 -1
  528. package/dist/models/list-bids200-response.d.ts +1 -1
  529. package/dist/models/list-bids200-response.js +1 -1
  530. package/dist/models/list-products200-response.d.ts +1 -1
  531. package/dist/models/list-products200-response.js +1 -1
  532. package/dist/models/list-webhook-deliveries-response-dto.d.ts +1 -1
  533. package/dist/models/list-webhook-deliveries-response-dto.js +1 -1
  534. package/dist/models/list-webhook-deliveries200-response.d.ts +1 -1
  535. package/dist/models/list-webhook-deliveries200-response.js +1 -1
  536. package/dist/models/list-webhook-endpoints200-response.d.ts +1 -1
  537. package/dist/models/list-webhook-endpoints200-response.js +1 -1
  538. package/dist/models/mark-bid-failed-request-dto.d.ts +1 -1
  539. package/dist/models/mark-bid-failed-request-dto.js +1 -1
  540. package/dist/models/mark-bid-failed201-response.d.ts +1 -1
  541. package/dist/models/mark-bid-failed201-response.js +1 -1
  542. package/dist/models/negotiation-score-dto.d.ts +1 -1
  543. package/dist/models/negotiation-score-dto.js +1 -1
  544. package/dist/models/negotiation-scored-v2-response-dto.d.ts +1 -1
  545. package/dist/models/negotiation-scored-v2-response-dto.js +1 -1
  546. package/dist/models/oauth-error-response-dto.d.ts +1 -1
  547. package/dist/models/oauth-error-response-dto.js +1 -1
  548. package/dist/models/on-bid-award-reverted-request.d.ts +1 -1
  549. package/dist/models/on-bid-award-reverted-request.js +1 -1
  550. package/dist/models/on-bid-awarded-request.d.ts +1 -1
  551. package/dist/models/on-bid-awarded-request.js +1 -1
  552. package/dist/models/on-bid-canceled-request.d.ts +1 -1
  553. package/dist/models/on-bid-canceled-request.js +1 -1
  554. package/dist/models/on-bid-closed-request.d.ts +1 -1
  555. package/dist/models/on-bid-closed-request.js +1 -1
  556. package/dist/models/on-bid-failed-request.d.ts +1 -1
  557. package/dist/models/on-bid-failed-request.js +1 -1
  558. package/dist/models/on-ping-request.d.ts +1 -1
  559. package/dist/models/on-ping-request.js +1 -1
  560. package/dist/models/partner-webhook-delivery-status.d.ts +1 -1
  561. package/dist/models/partner-webhook-delivery-status.js +1 -1
  562. package/dist/models/partner-webhook-endpoint-status.d.ts +1 -1
  563. package/dist/models/partner-webhook-endpoint-status.js +1 -1
  564. package/dist/models/partner-webhook-event-type.d.ts +1 -1
  565. package/dist/models/partner-webhook-event-type.js +1 -1
  566. package/dist/models/payment-method-public.d.ts +1 -1
  567. package/dist/models/payment-method-public.js +1 -1
  568. package/dist/models/preconditions-dto.d.ts +1 -1
  569. package/dist/models/preconditions-dto.js +1 -1
  570. package/dist/models/problem-details-dto.d.ts +1 -1
  571. package/dist/models/problem-details-dto.js +1 -1
  572. package/dist/models/product-receipt-response-dto.d.ts +1 -1
  573. package/dist/models/product-receipt-response-dto.js +1 -1
  574. package/dist/models/product-response-dto.d.ts +1 -1
  575. package/dist/models/product-response-dto.js +1 -1
  576. package/dist/models/protected-resource-metadata-dto.d.ts +1 -1
  577. package/dist/models/protected-resource-metadata-dto.js +1 -1
  578. package/dist/models/register-award-request-dto.d.ts +1 -1
  579. package/dist/models/register-award-request-dto.js +1 -1
  580. package/dist/models/register-award201-response.d.ts +1 -1
  581. package/dist/models/register-award201-response.js +1 -1
  582. package/dist/models/register-bid201-response.d.ts +1 -1
  583. package/dist/models/register-bid201-response.js +1 -1
  584. package/dist/models/register-semo-contract-request-dto.d.ts +1 -1
  585. package/dist/models/register-semo-contract-request-dto.js +1 -1
  586. package/dist/models/request-invoice-split-request-dto.d.ts +1 -1
  587. package/dist/models/request-invoice-split-request-dto.js +1 -1
  588. package/dist/models/request-invoice-split200-response.d.ts +1 -1
  589. package/dist/models/request-invoice-split200-response.js +1 -1
  590. package/dist/models/retiree-roster-input-dto.d.ts +1 -1
  591. package/dist/models/retiree-roster-input-dto.js +1 -1
  592. package/dist/models/retiree-roster-row-dto.d.ts +1 -1
  593. package/dist/models/retiree-roster-row-dto.js +1 -1
  594. package/dist/models/revert-award-request-dto.d.ts +1 -1
  595. package/dist/models/revert-award-request-dto.js +1 -1
  596. package/dist/models/revert-award200-response.d.ts +1 -1
  597. package/dist/models/revert-award200-response.js +1 -1
  598. package/dist/models/revoke-request-dto.d.ts +1 -1
  599. package/dist/models/revoke-request-dto.js +1 -1
  600. package/dist/models/semo-contract-registered-response-dto.d.ts +1 -1
  601. package/dist/models/semo-contract-registered-response-dto.js +1 -1
  602. package/dist/models/semo-contract-taxinvoice-status-response-dto.d.ts +1 -1
  603. package/dist/models/semo-contract-taxinvoice-status-response-dto.js +1 -1
  604. package/dist/models/send-webhook-test-event200-response.d.ts +1 -1
  605. package/dist/models/send-webhook-test-event200-response.js +1 -1
  606. package/dist/models/statement-document-dto.d.ts +1 -1
  607. package/dist/models/statement-document-dto.js +1 -1
  608. package/dist/models/statement-product-dto.d.ts +1 -1
  609. package/dist/models/statement-product-dto.js +1 -1
  610. package/dist/models/submit-negotiation-scores-request-dto.d.ts +1 -1
  611. package/dist/models/submit-negotiation-scores-request-dto.js +1 -1
  612. package/dist/models/submit-negotiation-scores201-response.d.ts +1 -1
  613. package/dist/models/submit-negotiation-scores201-response.js +1 -1
  614. package/dist/models/supplier-card-payable-response-dto.d.ts +1 -1
  615. package/dist/models/supplier-card-payable-response-dto.js +1 -1
  616. package/dist/models/supplier-tax-type.d.ts +1 -1
  617. package/dist/models/supplier-tax-type.js +1 -1
  618. package/dist/models/token-request-dto.d.ts +1 -1
  619. package/dist/models/token-request-dto.js +1 -1
  620. package/dist/models/token-response-dto.d.ts +1 -1
  621. package/dist/models/token-response-dto.js +1 -1
  622. package/dist/models/update-bid-request-dto.d.ts +1 -1
  623. package/dist/models/update-bid-request-dto.js +1 -1
  624. package/dist/models/update-bid200-response.d.ts +1 -1
  625. package/dist/models/update-bid200-response.js +1 -1
  626. package/dist/models/update-webhook-endpoint-request-dto.d.ts +1 -1
  627. package/dist/models/update-webhook-endpoint-request-dto.js +1 -1
  628. package/dist/models/upload-file-request-dto.d.ts +1 -1
  629. package/dist/models/upload-file-request-dto.js +1 -1
  630. package/dist/models/upload-file201-response.d.ts +1 -1
  631. package/dist/models/upload-file201-response.js +1 -1
  632. package/dist/models/upload-url-created-response-dto.d.ts +1 -1
  633. package/dist/models/upload-url-created-response-dto.js +1 -1
  634. package/dist/models/webhook-bid-event-data.d.ts +1 -1
  635. package/dist/models/webhook-bid-event-data.js +1 -1
  636. package/dist/models/webhook-delivery-dto.d.ts +1 -1
  637. package/dist/models/webhook-delivery-dto.js +1 -1
  638. package/dist/models/webhook-endpoint-dto.d.ts +1 -1
  639. package/dist/models/webhook-endpoint-dto.js +1 -1
  640. package/dist/models/webhook-endpoint-with-secret-dto.d.ts +1 -1
  641. package/dist/models/webhook-endpoint-with-secret-dto.js +1 -1
  642. package/dist/models/webhook-event-envelope.d.ts +1 -1
  643. package/dist/models/webhook-event-envelope.js +1 -1
  644. package/dist/models/webhook-ping-event-data.d.ts +1 -1
  645. package/dist/models/webhook-ping-event-data.js +1 -1
  646. package/dist/models/webhook-test-result-dto.d.ts +1 -1
  647. package/dist/models/webhook-test-result-dto.js +1 -1
  648. package/docs/WebhooksApi.md +6 -6
  649. package/index.ts +1 -1
  650. package/models/acceptance-result-response-dto.ts +1 -1
  651. package/models/acknowledge-product-receipt200-response.ts +1 -1
  652. package/models/acknowledge-products-request-dto.ts +1 -1
  653. package/models/api-catalog-dto.ts +1 -1
  654. package/models/api-catalog-entry-dto.ts +1 -1
  655. package/models/api-catalog-link-dto.ts +1 -1
  656. package/models/authorization-server-metadata-dto.ts +1 -1
  657. package/models/award-method-public.ts +1 -1
  658. package/models/award-registered-v2-response-dto.ts +1 -1
  659. package/models/award-reverted-v2-response-dto.ts +1 -1
  660. package/models/bid-acceptance-dto.ts +1 -1
  661. package/models/bid-attachment-input-dto.ts +1 -1
  662. package/models/bid-bond-dto.ts +1 -1
  663. package/models/bid-cancelled-response-dto.ts +1 -1
  664. package/models/bid-contact-dto.ts +1 -1
  665. package/models/bid-contacts-dto.ts +1 -1
  666. package/models/bid-contract-document-dto.ts +1 -1
  667. package/models/bid-delivery-terms-dto.ts +1 -1
  668. package/models/bid-detail-response-dto.ts +1 -1
  669. package/models/bid-document-dto.ts +1 -1
  670. package/models/bid-failed-v2-response-dto.ts +1 -1
  671. package/models/bid-item-dto.ts +1 -1
  672. package/models/bid-lifecycle-dto.ts +1 -1
  673. package/models/bid-manager-dto.ts +1 -1
  674. package/models/bid-payment-terms-dto.ts +1 -1
  675. package/models/bid-product-dto.ts +1 -1
  676. package/models/bid-public-status.ts +1 -1
  677. package/models/bid-registered-response-dto.ts +1 -1
  678. package/models/bid-result-participant-attachment-dto.ts +1 -1
  679. package/models/bid-result-participant-dto.ts +1 -1
  680. package/models/bid-results-response-dto.ts +1 -1
  681. package/models/bid-settlement-line-item-dto.ts +1 -1
  682. package/models/bid-settlement-participant-dto.ts +1 -1
  683. package/models/bid-settlement-response-dto.ts +1 -1
  684. package/models/bid-statement-response-dto.ts +1 -1
  685. package/models/bid-summary-dto.ts +1 -1
  686. package/models/bid-type-public.ts +1 -1
  687. package/models/bid-updated-response-dto.ts +1 -1
  688. package/models/cancel-bid-request-dto.ts +1 -1
  689. package/models/cancel-bid200-response.ts +1 -1
  690. package/models/card-payment-request-response-dto.ts +1 -1
  691. package/models/complete-acceptance-request-dto.ts +1 -1
  692. package/models/complete-acceptance200-response.ts +1 -1
  693. package/models/complete-invoice200-response.ts +1 -1
  694. package/models/complete-upload-request-dto.ts +1 -1
  695. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  696. package/models/create-bid-request-dto.ts +1 -1
  697. package/models/create-card-payment-dto.ts +1 -1
  698. package/models/create-card-payment-request-dto.ts +1 -1
  699. package/models/create-card-payment200-response.ts +1 -1
  700. package/models/create-embed-launch201-response.ts +1 -1
  701. package/models/create-external-contract-documents-request-dto.ts +1 -1
  702. package/models/create-external-contract-documents-response-dto.ts +1 -1
  703. package/models/create-file-upload-url201-response.ts +1 -1
  704. package/models/create-upload-url-request-dto.ts +1 -1
  705. package/models/create-webhook-endpoint-request-dto.ts +1 -1
  706. package/models/create-webhook-endpoint201-response.ts +1 -1
  707. package/models/delivery-date-type-public.ts +1 -1
  708. package/models/delivery-method-public.ts +1 -1
  709. package/models/embed-launch-request-dto.ts +1 -1
  710. package/models/embed-launch-response-dto.ts +1 -1
  711. package/models/excellent-procurement-public.ts +1 -1
  712. package/models/external-contract-document-item-dto.ts +1 -1
  713. package/models/external-contract-documents-response-dto.ts +1 -1
  714. package/models/external-contract-item-dto.ts +1 -1
  715. package/models/external-contract-snapshot-dto.ts +1 -1
  716. package/models/external-document-inputs-dto.ts +1 -1
  717. package/models/file-meta-response-dto.ts +1 -1
  718. package/models/file-uploaded-response-dto.ts +1 -1
  719. package/models/generated-external-contract-document-dto.ts +1 -1
  720. package/models/get-bid-settlement200-response.ts +1 -1
  721. package/models/get-bid-statement200-response.ts +1 -1
  722. package/models/get-bid200-response.ts +1 -1
  723. package/models/get-file-meta200-response.ts +1 -1
  724. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  725. package/models/get-webhook-endpoint200-response.ts +1 -1
  726. package/models/green-product-public.ts +1 -1
  727. package/models/health-controller-check200-response.ts +1 -1
  728. package/models/health-response-dto.ts +1 -1
  729. package/models/hierarchical-region-dto.ts +1 -1
  730. package/models/introspect-request-dto.ts +1 -1
  731. package/models/introspection-response-dto.ts +1 -1
  732. package/models/invalid-param-dto.ts +1 -1
  733. package/models/invoice-completed-response-dto.ts +1 -1
  734. package/models/invoice-split-response-dto.ts +1 -1
  735. package/models/legal-mandatory-public.ts +1 -1
  736. package/models/list-bid-results200-response.ts +1 -1
  737. package/models/list-bids200-response-meta.ts +1 -1
  738. package/models/list-bids200-response.ts +1 -1
  739. package/models/list-products200-response.ts +1 -1
  740. package/models/list-webhook-deliveries-response-dto.ts +1 -1
  741. package/models/list-webhook-deliveries200-response.ts +1 -1
  742. package/models/list-webhook-endpoints200-response.ts +1 -1
  743. package/models/mark-bid-failed-request-dto.ts +1 -1
  744. package/models/mark-bid-failed201-response.ts +1 -1
  745. package/models/negotiation-score-dto.ts +1 -1
  746. package/models/negotiation-scored-v2-response-dto.ts +1 -1
  747. package/models/oauth-error-response-dto.ts +1 -1
  748. package/models/on-bid-award-reverted-request.ts +1 -1
  749. package/models/on-bid-awarded-request.ts +1 -1
  750. package/models/on-bid-canceled-request.ts +1 -1
  751. package/models/on-bid-closed-request.ts +1 -1
  752. package/models/on-bid-failed-request.ts +1 -1
  753. package/models/on-ping-request.ts +1 -1
  754. package/models/partner-webhook-delivery-status.ts +1 -1
  755. package/models/partner-webhook-endpoint-status.ts +1 -1
  756. package/models/partner-webhook-event-type.ts +1 -1
  757. package/models/payment-method-public.ts +1 -1
  758. package/models/preconditions-dto.ts +1 -1
  759. package/models/problem-details-dto.ts +1 -1
  760. package/models/product-receipt-response-dto.ts +1 -1
  761. package/models/product-response-dto.ts +1 -1
  762. package/models/protected-resource-metadata-dto.ts +1 -1
  763. package/models/register-award-request-dto.ts +1 -1
  764. package/models/register-award201-response.ts +1 -1
  765. package/models/register-bid201-response.ts +1 -1
  766. package/models/register-semo-contract-request-dto.ts +1 -1
  767. package/models/request-invoice-split-request-dto.ts +1 -1
  768. package/models/request-invoice-split200-response.ts +1 -1
  769. package/models/retiree-roster-input-dto.ts +1 -1
  770. package/models/retiree-roster-row-dto.ts +1 -1
  771. package/models/revert-award-request-dto.ts +1 -1
  772. package/models/revert-award200-response.ts +1 -1
  773. package/models/revoke-request-dto.ts +1 -1
  774. package/models/semo-contract-registered-response-dto.ts +1 -1
  775. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  776. package/models/send-webhook-test-event200-response.ts +1 -1
  777. package/models/statement-document-dto.ts +1 -1
  778. package/models/statement-product-dto.ts +1 -1
  779. package/models/submit-negotiation-scores-request-dto.ts +1 -1
  780. package/models/submit-negotiation-scores201-response.ts +1 -1
  781. package/models/supplier-card-payable-response-dto.ts +1 -1
  782. package/models/supplier-tax-type.ts +1 -1
  783. package/models/token-request-dto.ts +1 -1
  784. package/models/token-response-dto.ts +1 -1
  785. package/models/update-bid-request-dto.ts +1 -1
  786. package/models/update-bid200-response.ts +1 -1
  787. package/models/update-webhook-endpoint-request-dto.ts +1 -1
  788. package/models/upload-file-request-dto.ts +1 -1
  789. package/models/upload-file201-response.ts +1 -1
  790. package/models/upload-url-created-response-dto.ts +1 -1
  791. package/models/webhook-bid-event-data.ts +1 -1
  792. package/models/webhook-delivery-dto.ts +1 -1
  793. package/models/webhook-endpoint-dto.ts +1 -1
  794. package/models/webhook-endpoint-with-secret-dto.ts +1 -1
  795. package/models/webhook-event-envelope.ts +1 -1
  796. package/models/webhook-ping-event-data.ts +1 -1
  797. package/models/webhook-test-result-dto.ts +1 -1
  798. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 38.6.0
7
+ * The version of the OpenAPI document: 38.7.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).
@@ -32,7 +32,7 @@ import { BASE_PATH, BaseAPI, operationServerMap } from '../base';
32
32
  export const WebhooksApiAxiosParamCreator = function (configuration) {
33
33
  return {
34
34
  /**
35
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
35
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
36
36
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
37
37
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
38
38
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -86,7 +86,7 @@ export const WebhooksApiAxiosParamCreator = function (configuration) {
86
86
  };
87
87
  }),
88
88
  /**
89
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
89
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
90
90
  * @summary λ‚™μ°° ν™•μ •.
91
91
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
92
92
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -140,7 +140,7 @@ export const WebhooksApiAxiosParamCreator = function (configuration) {
140
140
  };
141
141
  }),
142
142
  /**
143
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
143
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
144
144
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
145
145
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
146
146
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -194,7 +194,7 @@ export const WebhooksApiAxiosParamCreator = function (configuration) {
194
194
  };
195
195
  }),
196
196
  /**
197
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
197
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
198
198
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
199
199
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
200
200
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -248,7 +248,7 @@ export const WebhooksApiAxiosParamCreator = function (configuration) {
248
248
  };
249
249
  }),
250
250
  /**
251
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
251
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
252
252
  * @summary 유찰 ν™•μ •.
253
253
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
254
254
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -302,7 +302,7 @@ export const WebhooksApiAxiosParamCreator = function (configuration) {
302
302
  };
303
303
  }),
304
304
  /**
305
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
305
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
306
306
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
307
307
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
308
308
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -364,7 +364,7 @@ export const WebhooksApiFp = function (configuration) {
364
364
  const localVarAxiosParamCreator = WebhooksApiAxiosParamCreator(configuration);
365
365
  return {
366
366
  /**
367
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
367
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
368
368
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
369
369
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
370
370
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -384,7 +384,7 @@ export const WebhooksApiFp = function (configuration) {
384
384
  });
385
385
  },
386
386
  /**
387
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
387
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
388
388
  * @summary λ‚™μ°° ν™•μ •.
389
389
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
390
390
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -404,7 +404,7 @@ export const WebhooksApiFp = function (configuration) {
404
404
  });
405
405
  },
406
406
  /**
407
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
407
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
408
408
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
409
409
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
410
410
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -424,7 +424,7 @@ export const WebhooksApiFp = function (configuration) {
424
424
  });
425
425
  },
426
426
  /**
427
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
427
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
428
428
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
429
429
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
430
430
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -444,7 +444,7 @@ export const WebhooksApiFp = function (configuration) {
444
444
  });
445
445
  },
446
446
  /**
447
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
447
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
448
448
  * @summary 유찰 ν™•μ •.
449
449
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
450
450
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -464,7 +464,7 @@ export const WebhooksApiFp = function (configuration) {
464
464
  });
465
465
  },
466
466
  /**
467
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
467
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
468
468
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
469
469
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
470
470
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -492,7 +492,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
492
492
  const localVarFp = WebhooksApiFp(configuration);
493
493
  return {
494
494
  /**
495
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
495
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
496
496
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
497
497
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
498
498
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -506,7 +506,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
506
506
  return localVarFp.onBidAwardReverted(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardRevertedRequest, options).then((request) => request(axios, basePath));
507
507
  },
508
508
  /**
509
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
509
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
510
510
  * @summary λ‚™μ°° ν™•μ •.
511
511
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
512
512
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -520,7 +520,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
520
520
  return localVarFp.onBidAwarded(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardedRequest, options).then((request) => request(axios, basePath));
521
521
  },
522
522
  /**
523
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
523
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
524
524
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
525
525
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
526
526
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -534,7 +534,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
534
534
  return localVarFp.onBidCanceled(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidCanceledRequest, options).then((request) => request(axios, basePath));
535
535
  },
536
536
  /**
537
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
537
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
538
538
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
539
539
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
540
540
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -548,7 +548,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
548
548
  return localVarFp.onBidClosed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidClosedRequest, options).then((request) => request(axios, basePath));
549
549
  },
550
550
  /**
551
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
551
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
552
552
  * @summary 유찰 ν™•μ •.
553
553
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
554
554
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -562,7 +562,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
562
562
  return localVarFp.onBidFailed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidFailedRequest, options).then((request) => request(axios, basePath));
563
563
  },
564
564
  /**
565
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
565
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
566
566
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
567
567
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
568
568
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -582,7 +582,7 @@ export const WebhooksApiFactory = function (configuration, basePath, axios) {
582
582
  */
583
583
  export class WebhooksApi extends BaseAPI {
584
584
  /**
585
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
585
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
586
586
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
587
587
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
588
588
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -596,7 +596,7 @@ export class WebhooksApi extends BaseAPI {
596
596
  return WebhooksApiFp(this.configuration).onBidAwardReverted(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardRevertedRequest, options).then((request) => request(this.axios, this.basePath));
597
597
  }
598
598
  /**
599
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
599
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
600
600
  * @summary λ‚™μ°° ν™•μ •.
601
601
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
602
602
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -610,7 +610,7 @@ export class WebhooksApi extends BaseAPI {
610
610
  return WebhooksApiFp(this.configuration).onBidAwarded(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardedRequest, options).then((request) => request(this.axios, this.basePath));
611
611
  }
612
612
  /**
613
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
613
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
614
614
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
615
615
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
616
616
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -624,7 +624,7 @@ export class WebhooksApi extends BaseAPI {
624
624
  return WebhooksApiFp(this.configuration).onBidCanceled(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidCanceledRequest, options).then((request) => request(this.axios, this.basePath));
625
625
  }
626
626
  /**
627
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
627
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
628
628
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
629
629
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
630
630
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -638,7 +638,7 @@ export class WebhooksApi extends BaseAPI {
638
638
  return WebhooksApiFp(this.configuration).onBidClosed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidClosedRequest, options).then((request) => request(this.axios, this.basePath));
639
639
  }
640
640
  /**
641
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
641
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
642
642
  * @summary 유찰 ν™•μ •.
643
643
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
644
644
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -652,7 +652,7 @@ export class WebhooksApi extends BaseAPI {
652
652
  return WebhooksApiFp(this.configuration).onBidFailed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidFailedRequest, options).then((request) => request(this.axios, this.basePath));
653
653
  }
654
654
  /**
655
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
655
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
656
656
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
657
657
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
658
658
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 38.6.0
7
+ * The version of the OpenAPI document: 38.7.0
8
8
  * Contact: semo.io.kr@gmail.com
9
9
  *
10
10
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/esm/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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/esm/api.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 38.6.0
7
+ * The version of the OpenAPI document: 38.7.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. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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/esm/base.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 38.6.0
7
+ * The version of the OpenAPI document: 38.7.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. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 38.6.0
7
+ * The version of the OpenAPI document: 38.7.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. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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).
@@ -3,7 +3,7 @@
3
3
  * CMARKET V6 Partner API
4
4
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
5
5
  *
6
- * The version of the OpenAPI document: 38.6.0
6
+ * The version of the OpenAPI document: 38.7.0
7
7
  * Contact: semo.io.kr@gmail.com
8
8
  *
9
9
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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/esm/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * CMARKET V6 Partner API
5
5
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
6
6
  *
7
- * The version of the OpenAPI document: 38.6.0
7
+ * The version of the OpenAPI document: 38.7.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. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `data` κ°€ 배열이고 `meta` κ°€ 항상 ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€** β€” `{ \"data\": [...], \"meta\": { \"nextCursor\": \"Mg==\", \"hasMore\": true } }`. 단일 λ¦¬μ†ŒμŠ€ μ‘λ‹΅μ—λŠ” `meta` κ°€ λ‚˜κ°€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ΄‰νˆ¬λ₯Ό μ“°μ§€ μ•ŠλŠ” ν‘œλ©΄μ€ λ‘˜μž…λ‹ˆλ‹€. `/oauth/_*` 와 `/.well-known/_*` λŠ” 각각 RFC 6749Β·RFC 8414Β·RFC 9728 이 μ΅œμƒμœ„ ν•„λ“œλ₯Ό κ·œμ •ν•˜κ³ , 파일 λ‚΄μš© 응닡은 본문이 JSON 이 μ•„λ‹™λ‹ˆλ‹€. μ—λŸ¬ μ‘λ‹΅μ—λŠ” λ΄‰νˆ¬λ₯Ό μ”Œμš°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ β€” μ•„λž˜ problem+json 이 λ‹¨λ…μœΌλ‘œ μ±…μž„μ§‘λ‹ˆλ‹€. ## 쑰건뢀 μš”μ²­ (ETag) `/v2` 의 λͺ¨λ“  `GET` 응닡에 weak `ETag`(`W/\"…\"`)κ°€ μ‹€λ¦½λ‹ˆλ‹€. 받은 값을 λ‹€μŒ μš”μ²­μ˜ `If-None-Match` ν—€λ”λ‘œ λ˜λ³΄λ‚΄λ©΄, λ‚΄μš©μ΄ κ·ΈλŒ€λ‘œμΌ λ•Œ `304 Not Modified` λ₯Ό λ³Έλ¬Έ 없이 λ°›μŠ΅λ‹ˆλ‹€. κ²°κ³Όκ°€ λ‚˜κΈ°λ₯Ό 기닀리며 같은 μžμ›μ„ 반볡 μ‘°νšŒν•˜λŠ” 연동이라면 이 헀더 ν•˜λ‚˜λ‘œ μ „μ†‘λŸ‰μ΄ μ‚¬λΌμ§‘λ‹ˆλ‹€. ## μ—λŸ¬ (RFC 9457 problem+json) λͺ¨λ“  μ—λŸ¬ 응닡은 `application/problem+json` μž…λ‹ˆλ‹€. **HTTP status + `type` URI** 둜 λΆ„κΈ°ν•˜μ„Έμš”. - `retryable`(boolean): μžλ™ μž¬μ‹œλ„ μ•ˆμ „ μ—¬λΆ€. `true`(429Β·5xx transient)λ©΄ backoff ν›„ μž¬μ‹œλ„ν•˜κ³ , `false`λ©΄ μš”μ²­μ„ 고쳐야 ν•©λ‹ˆλ‹€. - `traceId`: μš”μ²­ 좔적 id. `X-Correlation-Id` 응닡 헀더와 같은 κ°’μž…λ‹ˆλ‹€ β€” λ¬Έμ˜ν•  λ•Œ 이 값을 μ²¨λΆ€ν•˜μ„Έμš”. - `correlationId`: `traceId` 와 같은 κ°’μ˜ μ˜› 이름. κΈ°μ‘΄ 연동 ν˜Έν™˜μœΌλ‘œ ν•¨κ»˜ μ‹€λ¦½λ‹ˆλ‹€. μƒˆ 연동은 `traceId` λ₯Ό μ½μœΌμ„Έμš”. - `invalid-params`: 검증 μ‹€νŒ¨(400 `…/validation-failed`) μ‹œ μœ„λ°˜ ν•„λ“œ 경둜 λͺ©λ‘(RFC 9457 ν™•μž₯, κ°’ μ—†μŒ). `type` 은 `https://problems.cmarket.io/partner/<slug>` ν˜•νƒœμ˜ **μ•ˆμ • μ‹λ³„μž**μž…λ‹ˆλ‹€. RFC 9457 Β§3.1.1 이 ν—ˆμš©ν•˜λŠ” λŒ€λ‘œ 이 URI λŠ” **μ—­μ°Έμ‘°(dereference)λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€** β€” λΈŒλΌμš°μ €λ‘œ μ—΄μ§€ 말고 λ¬Έμžμ—΄ λΉ„κ΅λ‘œλ§Œ μ“°μ„Έμš”. slug λͺ©λ‘κ³Ό μ˜λ―ΈλŠ” 각 μ—”λ“œν¬μΈνŠΈμ˜ 응닡 μ„€λͺ…에 status λ³„λ‘œ μ ν˜€ μžˆμŠ΅λ‹ˆλ‹€. ### λ©±λ“±μ„± μœ„λ°˜: 409 와 422 의 차이 - `409` `…/idempotency-key-conflict` β€” 같은 ν‚€μ˜ **원 μš”μ²­μ΄ 아직 처리 쀑**μž…λ‹ˆλ‹€. μž μ‹œ λ’€ 같은 ν‚€λ‘œ λ‹€μ‹œ λΆ€λ₯΄λ©΄ κ·Έ κ²°κ³Όλ₯Ό λ°›μŠ΅λ‹ˆλ‹€. - `422` `…/idempotency-key-reused` β€” 같은 ν‚€λ₯Ό **λ‹€λ₯Έ body** 둜 λ³΄λƒˆμŠ΅λ‹ˆλ‹€. μž¬μ‹œλ„ν•΄λ„ μ˜μ›νžˆ 같은 μ‹€νŒ¨μ΄λ‹ˆ μƒˆ ν‚€λ₯Ό μ“°κ±°λ‚˜ body λ₯Ό λ˜λŒλ¦¬μ„Έμš”. ## Rate Limit μ „μ—­ **60 μš”μ²­/λΆ„ per `client_id`**, 토큰 λ°œκΈ‰(`/oauth/token`)은 **5 μš”μ²­/λΆ„** μž…λ‹ˆλ‹€. 초과 μ‹œ `429`(`type: …/too-many-requests`). μΏΌν„°λŠ” 두 κ°€μ§€ ν‘œκΈ°λ‘œ ν•¨κ»˜ λ‚˜κ°‘λ‹ˆλ‹€ β€” μ‹ κ·œ 연동은 ν‘œμ€€ ν•„λ“œλ₯Ό μ“°μ„Έμš”. - **ν‘œμ€€**(`draft-ietf-httpapi-ratelimit-headers`, Structured Fields): `RateLimit-Policy: \"default\";q=60;w=60` (μ •μ±…) Β· `RateLimit: \"default\";r=59;t=42` (μž”λŸ‰ r, λ¦¬μ…‹κΉŒμ§€ t 초) - **λ ˆκ±°μ‹œ**(κ΄€μš©): `X-RateLimit-Limit` / `X-RateLimit-Remaining` / `X-RateLimit-Reset`. κΈ°μ‘΄ 연동 ν˜Έν™˜μ„ μœ„ν•΄ μœ μ§€ν•©λ‹ˆλ‹€. `429` μ—μ„œλŠ” `Retry-After`(초)κ°€ μš°μ„ ν•©λ‹ˆλ‹€. λŒ€λŸ‰ 동기화(ν’ˆλͺ© λ‹¨μœ„ 반볡 등둝 λ“±)λŠ” `Retry-After` 만큼 backoff ν›„ μž¬μ‹œλ„ν•˜μ„Έμš”. ## 좔적 μš”μ²­μ— `X-Correlation-Id` 헀더λ₯Ό μ‹€μœΌλ©΄ κ·ΈλŒ€λ‘œ echo 되고, μ—†μœΌλ©΄ μ„œλ²„κ°€ λ°œκΈ‰ν•©λ‹ˆλ‹€. λͺ¨λ“  응닡(성곡/μ—λŸ¬)에 `X-Correlation-Id` κ°€ μ‹€λ¦½λ‹ˆλ‹€. ## μ „λ°©ν˜Έν™˜ β€” λͺ¨λ₯΄λŠ” ν•„λ“œμ™€ κ°’μ—μ„œ κΉ¨μ§€μ§€ μ•Šκ²Œ λ‹€μŒ 셋은 breaking λ³€κ²½μœΌλ‘œ 보지 μ•ŠμœΌλ©° minor λ¦΄λ¦¬μŠ€μ—μ„œ 예고 없이 μΌμ–΄λ‚©λ‹ˆλ‹€. 이 μ „μ œλ‘œ κ΅¬ν˜„ν•˜μ„Έμš”. - **선택 ν•„λ“œ μΆ”κ°€**: λͺ¨λ₯΄λŠ” ν•„λ“œλŠ” λ¬΄μ‹œν•˜μ„Έμš”. 엄격 νŒŒμ„œ(unknown key κ±°λΆ€)λ₯Ό μ“°μ§€ λ§ˆμ„Έμš”. - **enum κ°’ μΆ”κ°€**: μƒνƒœΒ·λ‚™μ°°λ°©λ²• 등에 μƒˆ 값이 μƒκΉλ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 값을 λ§Œλ‚˜λ©΄ μ˜ˆμ™Έλ₯Ό λ˜μ§€μ§€ 말고 원문 λ¬Έμžμ—΄μ„ λ³΄μ‘΄ν•˜μ„Έμš”. - **problem `type` slug μΆ”κ°€**: λͺ¨λ₯΄λŠ” slug 은 **HTTP status 둜 폴백**ν•΄ λΆ„κΈ°ν•˜μ„Έμš”. ## 버전 수λͺ…(deprecation/sunset) - **_/v2** breaking 변경은 CHANGELOG SemVer(major bump)와 `Deprecation`/`Sunset` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
4
4
  *
5
- * The version of the OpenAPI document: 38.6.0
5
+ * The version of the OpenAPI document: 38.7.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).