@cmarket/partner-sdk 38.6.0 β†’ 38.8.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 (799) 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 +2 -2
  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 +2 -2
  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/RequestInvoiceSplitRequestDto.md +1 -1
  649. package/docs/WebhooksApi.md +6 -6
  650. package/index.ts +1 -1
  651. package/models/acceptance-result-response-dto.ts +1 -1
  652. package/models/acknowledge-product-receipt200-response.ts +1 -1
  653. package/models/acknowledge-products-request-dto.ts +1 -1
  654. package/models/api-catalog-dto.ts +1 -1
  655. package/models/api-catalog-entry-dto.ts +1 -1
  656. package/models/api-catalog-link-dto.ts +1 -1
  657. package/models/authorization-server-metadata-dto.ts +1 -1
  658. package/models/award-method-public.ts +1 -1
  659. package/models/award-registered-v2-response-dto.ts +1 -1
  660. package/models/award-reverted-v2-response-dto.ts +1 -1
  661. package/models/bid-acceptance-dto.ts +1 -1
  662. package/models/bid-attachment-input-dto.ts +1 -1
  663. package/models/bid-bond-dto.ts +1 -1
  664. package/models/bid-cancelled-response-dto.ts +1 -1
  665. package/models/bid-contact-dto.ts +1 -1
  666. package/models/bid-contacts-dto.ts +1 -1
  667. package/models/bid-contract-document-dto.ts +1 -1
  668. package/models/bid-delivery-terms-dto.ts +1 -1
  669. package/models/bid-detail-response-dto.ts +1 -1
  670. package/models/bid-document-dto.ts +1 -1
  671. package/models/bid-failed-v2-response-dto.ts +1 -1
  672. package/models/bid-item-dto.ts +1 -1
  673. package/models/bid-lifecycle-dto.ts +1 -1
  674. package/models/bid-manager-dto.ts +1 -1
  675. package/models/bid-payment-terms-dto.ts +1 -1
  676. package/models/bid-product-dto.ts +1 -1
  677. package/models/bid-public-status.ts +1 -1
  678. package/models/bid-registered-response-dto.ts +1 -1
  679. package/models/bid-result-participant-attachment-dto.ts +1 -1
  680. package/models/bid-result-participant-dto.ts +1 -1
  681. package/models/bid-results-response-dto.ts +1 -1
  682. package/models/bid-settlement-line-item-dto.ts +1 -1
  683. package/models/bid-settlement-participant-dto.ts +1 -1
  684. package/models/bid-settlement-response-dto.ts +1 -1
  685. package/models/bid-statement-response-dto.ts +1 -1
  686. package/models/bid-summary-dto.ts +1 -1
  687. package/models/bid-type-public.ts +1 -1
  688. package/models/bid-updated-response-dto.ts +1 -1
  689. package/models/cancel-bid-request-dto.ts +1 -1
  690. package/models/cancel-bid200-response.ts +1 -1
  691. package/models/card-payment-request-response-dto.ts +1 -1
  692. package/models/complete-acceptance-request-dto.ts +1 -1
  693. package/models/complete-acceptance200-response.ts +1 -1
  694. package/models/complete-invoice200-response.ts +1 -1
  695. package/models/complete-upload-request-dto.ts +1 -1
  696. package/models/contract-restriction-confirm-input-dto.ts +1 -1
  697. package/models/create-bid-request-dto.ts +1 -1
  698. package/models/create-card-payment-dto.ts +1 -1
  699. package/models/create-card-payment-request-dto.ts +1 -1
  700. package/models/create-card-payment200-response.ts +1 -1
  701. package/models/create-embed-launch201-response.ts +1 -1
  702. package/models/create-external-contract-documents-request-dto.ts +1 -1
  703. package/models/create-external-contract-documents-response-dto.ts +1 -1
  704. package/models/create-file-upload-url201-response.ts +1 -1
  705. package/models/create-upload-url-request-dto.ts +1 -1
  706. package/models/create-webhook-endpoint-request-dto.ts +1 -1
  707. package/models/create-webhook-endpoint201-response.ts +1 -1
  708. package/models/delivery-date-type-public.ts +1 -1
  709. package/models/delivery-method-public.ts +1 -1
  710. package/models/embed-launch-request-dto.ts +1 -1
  711. package/models/embed-launch-response-dto.ts +1 -1
  712. package/models/excellent-procurement-public.ts +1 -1
  713. package/models/external-contract-document-item-dto.ts +1 -1
  714. package/models/external-contract-documents-response-dto.ts +1 -1
  715. package/models/external-contract-item-dto.ts +1 -1
  716. package/models/external-contract-snapshot-dto.ts +1 -1
  717. package/models/external-document-inputs-dto.ts +1 -1
  718. package/models/file-meta-response-dto.ts +1 -1
  719. package/models/file-uploaded-response-dto.ts +1 -1
  720. package/models/generated-external-contract-document-dto.ts +1 -1
  721. package/models/get-bid-settlement200-response.ts +1 -1
  722. package/models/get-bid-statement200-response.ts +1 -1
  723. package/models/get-bid200-response.ts +1 -1
  724. package/models/get-file-meta200-response.ts +1 -1
  725. package/models/get-supplier-card-payable-v2200-response.ts +1 -1
  726. package/models/get-webhook-endpoint200-response.ts +1 -1
  727. package/models/green-product-public.ts +1 -1
  728. package/models/health-controller-check200-response.ts +1 -1
  729. package/models/health-response-dto.ts +1 -1
  730. package/models/hierarchical-region-dto.ts +1 -1
  731. package/models/introspect-request-dto.ts +1 -1
  732. package/models/introspection-response-dto.ts +1 -1
  733. package/models/invalid-param-dto.ts +1 -1
  734. package/models/invoice-completed-response-dto.ts +1 -1
  735. package/models/invoice-split-response-dto.ts +1 -1
  736. package/models/legal-mandatory-public.ts +1 -1
  737. package/models/list-bid-results200-response.ts +1 -1
  738. package/models/list-bids200-response-meta.ts +1 -1
  739. package/models/list-bids200-response.ts +1 -1
  740. package/models/list-products200-response.ts +1 -1
  741. package/models/list-webhook-deliveries-response-dto.ts +1 -1
  742. package/models/list-webhook-deliveries200-response.ts +1 -1
  743. package/models/list-webhook-endpoints200-response.ts +1 -1
  744. package/models/mark-bid-failed-request-dto.ts +1 -1
  745. package/models/mark-bid-failed201-response.ts +1 -1
  746. package/models/negotiation-score-dto.ts +1 -1
  747. package/models/negotiation-scored-v2-response-dto.ts +1 -1
  748. package/models/oauth-error-response-dto.ts +1 -1
  749. package/models/on-bid-award-reverted-request.ts +1 -1
  750. package/models/on-bid-awarded-request.ts +1 -1
  751. package/models/on-bid-canceled-request.ts +1 -1
  752. package/models/on-bid-closed-request.ts +1 -1
  753. package/models/on-bid-failed-request.ts +1 -1
  754. package/models/on-ping-request.ts +1 -1
  755. package/models/partner-webhook-delivery-status.ts +1 -1
  756. package/models/partner-webhook-endpoint-status.ts +1 -1
  757. package/models/partner-webhook-event-type.ts +1 -1
  758. package/models/payment-method-public.ts +1 -1
  759. package/models/preconditions-dto.ts +1 -1
  760. package/models/problem-details-dto.ts +1 -1
  761. package/models/product-receipt-response-dto.ts +1 -1
  762. package/models/product-response-dto.ts +1 -1
  763. package/models/protected-resource-metadata-dto.ts +1 -1
  764. package/models/register-award-request-dto.ts +1 -1
  765. package/models/register-award201-response.ts +1 -1
  766. package/models/register-bid201-response.ts +1 -1
  767. package/models/register-semo-contract-request-dto.ts +1 -1
  768. package/models/request-invoice-split-request-dto.ts +2 -2
  769. package/models/request-invoice-split200-response.ts +1 -1
  770. package/models/retiree-roster-input-dto.ts +1 -1
  771. package/models/retiree-roster-row-dto.ts +1 -1
  772. package/models/revert-award-request-dto.ts +1 -1
  773. package/models/revert-award200-response.ts +1 -1
  774. package/models/revoke-request-dto.ts +1 -1
  775. package/models/semo-contract-registered-response-dto.ts +1 -1
  776. package/models/semo-contract-taxinvoice-status-response-dto.ts +1 -1
  777. package/models/send-webhook-test-event200-response.ts +1 -1
  778. package/models/statement-document-dto.ts +1 -1
  779. package/models/statement-product-dto.ts +1 -1
  780. package/models/submit-negotiation-scores-request-dto.ts +1 -1
  781. package/models/submit-negotiation-scores201-response.ts +1 -1
  782. package/models/supplier-card-payable-response-dto.ts +1 -1
  783. package/models/supplier-tax-type.ts +1 -1
  784. package/models/token-request-dto.ts +1 -1
  785. package/models/token-response-dto.ts +1 -1
  786. package/models/update-bid-request-dto.ts +1 -1
  787. package/models/update-bid200-response.ts +1 -1
  788. package/models/update-webhook-endpoint-request-dto.ts +1 -1
  789. package/models/upload-file-request-dto.ts +1 -1
  790. package/models/upload-file201-response.ts +1 -1
  791. package/models/upload-url-created-response-dto.ts +1 -1
  792. package/models/webhook-bid-event-data.ts +1 -1
  793. package/models/webhook-delivery-dto.ts +1 -1
  794. package/models/webhook-endpoint-dto.ts +1 -1
  795. package/models/webhook-endpoint-with-secret-dto.ts +1 -1
  796. package/models/webhook-event-envelope.ts +1 -1
  797. package/models/webhook-ping-event-data.ts +1 -1
  798. package/models/webhook-test-result-dto.ts +1 -1
  799. package/package.json +1 -1
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 OAuth2 Bearer JWT (`client_credentials` ν”Œλ‘œμš°). `/oauth/token` μ—μ„œ 토큰을 λ°œκΈ‰λ°›μ•„ `Authorization: Bearer <token>` ν—€λ”λ‘œ μ‹€μœΌμ„Έμš”. ## κΆŒν•œ β€” 두 개의 λ…λ¦½λœ μΆ• `403` 을 λ§Œλ‚¬λ‹€λ©΄ λ‘˜ 쀑 μ–΄λŠ 좕에 κ±Έλ¦° 것인지 λ¨Όμ € κ΅¬λΆ„ν•˜μ„Έμš”. - **μŠ€μ½”ν”„** = *무엇을 ν•  수 μžˆλ‚˜*. 토큰에 λΆ€μ—¬λœ `bids:read`Β·`contracts:write` λ“±μž…λ‹ˆλ‹€. 미보유 μ‹œ `…/insufficient-scope`. - **λŒ€ν–‰ λ²”μœ„** = *λˆ„κ΅¬μ˜ 데이터λ₯Ό λ‹€λ£° 수 μžˆλ‚˜*. API ν‚€ 섀정이며 μŠ€μ½”ν”„λ‘œ ν‘œν˜„λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ²”μœ„ 밖이면 μŠ€μ½”ν”„μ™€ λ¬΄κ΄€ν•˜κ²Œ 403 μž…λ‹ˆλ‹€. λŒ€ν–‰ λ²”μœ„λŠ” ν‚€λ§ˆλ‹€ λ‘˜ 쀑 ν•˜λ‚˜λ‘œ μ„€μ •λ©λ‹ˆλ‹€ β€” **μ†Œμ† κ·Έλ£Ή 전원**(κΈ°κ΄€ ν‚€. μ‚¬μ—…μ²˜Β·λΆ€μ„œ 계정이 μƒˆλ‘œ 생겨도 μžλ™ 포함) λ˜λŠ” **μ§€μ • 발주처 λͺ©λ‘**(κ³„μ•½μœΌλ‘œ ν•©μ˜λœ λͺ©λ‘). λ²”μœ„λ₯Ό λ„“ν˜€μ•Ό ν•˜λ©΄ μŠ€μ½”ν”„κ°€ μ•„λ‹ˆλΌ ν‚€ μ„€μ • 변경을 μš”μ²­ν•˜μ„Έμš”. ## 성곡 응닡 λ΄‰νˆ¬ `/v2` 의 λͺ¨λ“  2xx 본문은 `{ \"data\": … }` μž…λ‹ˆλ‹€. 단일 λ¦¬μ†ŒμŠ€λ“  λͺ©λ‘μ΄λ“  κ°™μŠ΅λ‹ˆλ‹€. **λͺ©λ‘μ€ `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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
7
7
  *
8
- * The version of the OpenAPI document: 38.6.0
8
+ * The version of the OpenAPI document: 38.8.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -35,7 +35,7 @@ const base_1 = require("../base");
35
35
  const WebhooksApiAxiosParamCreator = function (configuration) {
36
36
  return {
37
37
  /**
38
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
38
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
39
39
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
40
40
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
41
41
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -89,7 +89,7 @@ const WebhooksApiAxiosParamCreator = function (configuration) {
89
89
  };
90
90
  }),
91
91
  /**
92
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
92
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
93
93
  * @summary λ‚™μ°° ν™•μ •.
94
94
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
95
95
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -143,7 +143,7 @@ const WebhooksApiAxiosParamCreator = function (configuration) {
143
143
  };
144
144
  }),
145
145
  /**
146
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
146
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
147
147
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
148
148
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
149
149
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -197,7 +197,7 @@ const WebhooksApiAxiosParamCreator = function (configuration) {
197
197
  };
198
198
  }),
199
199
  /**
200
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
200
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
201
201
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
202
202
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
203
203
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -251,7 +251,7 @@ const WebhooksApiAxiosParamCreator = function (configuration) {
251
251
  };
252
252
  }),
253
253
  /**
254
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
254
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
255
255
  * @summary 유찰 ν™•μ •.
256
256
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
257
257
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -305,7 +305,7 @@ const WebhooksApiAxiosParamCreator = function (configuration) {
305
305
  };
306
306
  }),
307
307
  /**
308
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
308
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
309
309
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
310
310
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
311
311
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -368,7 +368,7 @@ const WebhooksApiFp = function (configuration) {
368
368
  const localVarAxiosParamCreator = (0, exports.WebhooksApiAxiosParamCreator)(configuration);
369
369
  return {
370
370
  /**
371
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
371
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
372
372
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
373
373
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
374
374
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -388,7 +388,7 @@ const WebhooksApiFp = function (configuration) {
388
388
  });
389
389
  },
390
390
  /**
391
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
391
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
392
392
  * @summary λ‚™μ°° ν™•μ •.
393
393
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
394
394
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -408,7 +408,7 @@ const WebhooksApiFp = function (configuration) {
408
408
  });
409
409
  },
410
410
  /**
411
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
411
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
412
412
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
413
413
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
414
414
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -428,7 +428,7 @@ const WebhooksApiFp = function (configuration) {
428
428
  });
429
429
  },
430
430
  /**
431
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
431
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
432
432
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
433
433
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
434
434
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -448,7 +448,7 @@ const WebhooksApiFp = function (configuration) {
448
448
  });
449
449
  },
450
450
  /**
451
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
451
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
452
452
  * @summary 유찰 ν™•μ •.
453
453
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
454
454
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -468,7 +468,7 @@ const WebhooksApiFp = function (configuration) {
468
468
  });
469
469
  },
470
470
  /**
471
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
471
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
472
472
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
473
473
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
474
474
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -497,7 +497,7 @@ const WebhooksApiFactory = function (configuration, basePath, axios) {
497
497
  const localVarFp = (0, exports.WebhooksApiFp)(configuration);
498
498
  return {
499
499
  /**
500
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
500
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
501
501
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
502
502
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
503
503
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -511,7 +511,7 @@ const WebhooksApiFactory = function (configuration, basePath, axios) {
511
511
  return localVarFp.onBidAwardReverted(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardRevertedRequest, options).then((request) => request(axios, basePath));
512
512
  },
513
513
  /**
514
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
514
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
515
515
  * @summary λ‚™μ°° ν™•μ •.
516
516
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
517
517
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -525,7 +525,7 @@ const WebhooksApiFactory = function (configuration, basePath, axios) {
525
525
  return localVarFp.onBidAwarded(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardedRequest, options).then((request) => request(axios, basePath));
526
526
  },
527
527
  /**
528
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
528
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
529
529
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
530
530
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
531
531
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -539,7 +539,7 @@ const WebhooksApiFactory = function (configuration, basePath, axios) {
539
539
  return localVarFp.onBidCanceled(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidCanceledRequest, options).then((request) => request(axios, basePath));
540
540
  },
541
541
  /**
542
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
542
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
543
543
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
544
544
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
545
545
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -553,7 +553,7 @@ const WebhooksApiFactory = function (configuration, basePath, axios) {
553
553
  return localVarFp.onBidClosed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidClosedRequest, options).then((request) => request(axios, basePath));
554
554
  },
555
555
  /**
556
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
556
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
557
557
  * @summary 유찰 ν™•μ •.
558
558
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
559
559
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -567,7 +567,7 @@ const WebhooksApiFactory = function (configuration, basePath, axios) {
567
567
  return localVarFp.onBidFailed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidFailedRequest, options).then((request) => request(axios, basePath));
568
568
  },
569
569
  /**
570
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
570
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
571
571
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
572
572
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
573
573
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -588,7 +588,7 @@ exports.WebhooksApiFactory = WebhooksApiFactory;
588
588
  */
589
589
  class WebhooksApi extends base_1.BaseAPI {
590
590
  /**
591
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
591
+ * μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€. **이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”** β€” 계약·정산을 이 곡고둜 μ§„ν–‰ν–ˆλ‹€λ©΄ λ˜λŒλ €μ•Ό ν•©λ‹ˆλ‹€. 이후 λ‹€μ‹œ λ‚™μ°°λ˜λ©΄ `bid.awarded` κ°€ μƒˆλ‘œ μ˜΅λ‹ˆλ‹€.
592
592
  * @summary μš΄μ˜μžκ°€ 낙찰을 λ˜λŒλ ΈμŠ΅λ‹ˆλ‹€ β€” 이미 받은 `bid.awarded` λ₯Ό 무효둜 μ·¨κΈ‰ν•˜μ„Έμš”.
593
593
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
594
594
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -602,7 +602,7 @@ class WebhooksApi extends base_1.BaseAPI {
602
602
  return (0, exports.WebhooksApiFp)(this.configuration).onBidAwardReverted(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardRevertedRequest, options).then((request) => request(this.axios, this.basePath));
603
603
  }
604
604
  /**
605
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
605
+ * 낙찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€. λ‚™μ°°μžλŠ” `GET /v2/bid-results` 의 `participants[].isWinner` 둜 μ½μœΌμ„Έμš” β€” **곡고 μƒνƒœλ‘œ νŒμ •ν•˜μ§€ λ§ˆμ„Έμš”.** `AWARDED` λΌλŠ” μƒνƒœλŠ” μ‘΄μž¬ν•˜μ§€ μ•Šκ³  λ‚™μ°° 직후 `CONTRACT_IN_PROGRESS` 둜 μ „μ΄ν•©λ‹ˆλ‹€. λ‹€μˆ˜μ—…μ²΄ λ‚™μ°°μ—μ„œλŠ” `isWinner` κ°€ μ—¬λŸΏμΌ 수 μžˆμŠ΅λ‹ˆλ‹€.
606
606
  * @summary λ‚™μ°° ν™•μ •.
607
607
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
608
608
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -616,7 +616,7 @@ class WebhooksApi extends base_1.BaseAPI {
616
616
  return (0, exports.WebhooksApiFp)(this.configuration).onBidAwarded(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidAwardedRequest, options).then((request) => request(this.axios, this.basePath));
617
617
  }
618
618
  /**
619
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
619
+ * 곡고가 μ·¨μ†ŒλμŠ΅λ‹ˆλ‹€. μ§„ν–‰ μ€‘μ΄λ˜ 절차λ₯Ό μ€‘λ‹¨ν•˜μ„Έμš”. μ·¨μ†ŒλŠ” 마감 μ „ν›„ μ–΄λŠ μ‹œμ μ—λ„ 올 수 있고, 이미 `bid.closed` λ₯Ό 받은 뒀에도 μ˜΅λ‹ˆλ‹€.
620
620
  * @summary λ°œμ£ΌκΈ°κ΄€ λ˜λŠ” 운영자의 곡고 μ·¨μ†Œ.
621
621
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
622
622
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -630,7 +630,7 @@ class WebhooksApi extends base_1.BaseAPI {
630
630
  return (0, exports.WebhooksApiFp)(this.configuration).onBidCanceled(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidCanceledRequest, options).then((request) => request(this.axios, this.basePath));
631
631
  }
632
632
  /**
633
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
633
+ * 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€. **λ‚™μ°°μžλŠ” 아직 μ—†μŠ΅λ‹ˆλ‹€** β€” 이 μ‹œμ μ— κ²°κ³Όλ₯Ό 물으면 빈 값을 λ°›μŠ΅λ‹ˆλ‹€. 낙찰이 ν™•μ •λ˜λ©΄ `bid.awarded` κ°€ λ”°λ‘œ μ˜΅λ‹ˆλ‹€.
634
634
  * @summary 곡고 마감 β€” 응찰 μ ‘μˆ˜κ°€ λλ‚¬μŠ΅λ‹ˆλ‹€(λ‚™μ°°μžλŠ” 아직 μ •ν•΄μ§€μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€).
635
635
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
636
636
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -644,7 +644,7 @@ class WebhooksApi extends base_1.BaseAPI {
644
644
  return (0, exports.WebhooksApiFp)(this.configuration).onBidClosed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidClosedRequest, options).then((request) => request(this.axios, this.basePath));
645
645
  }
646
646
  /**
647
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
647
+ * 유찰이 ν™•μ •λμŠ΅λ‹ˆλ‹€(λ‚™μ°°μž 없이 μ’…λ£Œ). 재곡고 μ—¬λΆ€λŠ” λ°œμ£ΌκΈ°κ΄€ νŒλ‹¨μ΄λ©° κ·Έλ•Œ μƒˆ 곡고번호둜 μƒˆ μ΄λ²€νŠΈκ°€ μ˜΅λ‹ˆλ‹€ β€” 이 곡고λ₯Ό 기닀리지 λ§ˆμ„Έμš”.
648
648
  * @summary 유찰 ν™•μ •.
649
649
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
650
650
  * @param {string} webhookEventType 이벀트 νƒ€μž…. λ³Έλ¬Έ &#x60;type&#x60; κ³Ό κ°™μŠ΅λ‹ˆλ‹€.
@@ -658,7 +658,7 @@ class WebhooksApi extends base_1.BaseAPI {
658
658
  return (0, exports.WebhooksApiFp)(this.configuration).onBidFailed(webhookId, webhookEventType, webhookTimestamp, webhookSignature, onBidFailedRequest, options).then((request) => request(this.axios, this.basePath));
659
659
  }
660
660
  /**
661
- * λ°œμ†‘μž User-Agent λŠ” `cmarket-webhooks/1` μž…λ‹ˆλ‹€. **μ„œλͺ… 검증은 원문 λ°”μ΄νŠΈλ‘œ ν•˜μ„Έμš”.** JSON 을 νŒŒμ‹±ν•œ λ’€ λ‹€μ‹œ μ§λ ¬ν™”ν•˜λ©΄ ν‚€ μˆœμ„œΒ·κ³΅λ°±μ΄ 달라져 μ„œλͺ…이 μ–΄κΈ‹λ‚©λ‹ˆλ‹€. **μ„œλͺ… κ·œμ•½μ€ [Standard Webhooks](https://www.standardwebhooks.com) μž…λ‹ˆλ‹€** β€” 검증을 직접 μ§œμ§€ 말고 각 μ–Έμ–΄μ˜ `standardwebhooks` λΌμ΄λΈŒλŸ¬λ¦¬μ— λ°œκΈ‰λ°›μ€ μ‹œν¬λ¦Ώ(`whsec_…`)을 κ·ΈλŒ€λ‘œ λ„˜κΈ°μ„Έμš”. **μž¬μ‹œλ„λŠ” at-least-once μž…λ‹ˆλ‹€.** 같은 μ΄λ²€νŠΈκ°€ 두 번 올 수 μžˆμœΌλ‹ˆ `webhook-id` 둜 쀑볡 μ œκ±°ν•˜μ„Έμš”. **λ³Έλ¬Έμ—λŠ” μ΅œμ†Œ μ •λ³΄λ§Œ λ‹΄κΉλ‹ˆλ‹€.** μƒμ„ΈλŠ” 이벀트λ₯Ό 받은 λ’€ ν•΄λ‹Ή 쑰회 μ—”λ“œν¬μΈνŠΈλ‘œ κ°€μ Έμ˜€μ„Έμš” β€” 같은 사싀을 두 곳이 각자 ν‘œν˜„ν•˜λ©΄ κ°ˆλΌμ§‘λ‹ˆλ‹€.
661
+ * μˆ˜μ‹  μ£Όμ†Œμ™€ μ„œλͺ… 검증이 μ‹€μ œλ‘œ λ™μž‘ν•˜λŠ”μ§€ ν™•μΈν•˜λŠ” λ°œμ†‘μž…λ‹ˆλ‹€. λ³Έλ¬Έμ—λŠ” 확인을 μš”μ²­ν•œ ꡬ독 μ‹λ³„μžλ§Œ λ‹΄κΈ°κ³  곡고 μ •λ³΄λŠ” μ—†μŠ΅λ‹ˆλ‹€ β€” μ²˜λ¦¬ν•˜μ§€ 말고 2xx 만 돌렀주면 λ©λ‹ˆλ‹€. ꡬ독 λŒ€μƒμ΄ μ•„λ‹ˆλ―€λ‘œ `eventTypes` 에 λ„£μœΌλ©΄ 400 μž…λ‹ˆλ‹€.
662
662
  * @summary μ—°κ²° 확인 λ°œμ†‘. **ꡬ독할 수 μ—†μŠ΅λ‹ˆλ‹€** β€” `POST /v2/webhook-endpoints/{endpointId}/test` κ°€ μ¦‰μ‹œ 1회 보낼 λ•Œλ§Œ μ˜΅λ‹ˆλ‹€.
663
663
  * @param {string} webhookId 이벀트 μ‹λ³„μž. **μž¬μ‹œλ„μ—λ„ 같은 κ°’**μ΄λ―€λ‘œ μˆ˜μ‹ μΈ‘ 쀑볡 제거 ν‚€λ‘œ μ“°μ„Έμš”.
664
664
  * @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.8.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
7
7
  *
8
- * The version of the OpenAPI document: 38.6.0
8
+ * The version of the OpenAPI document: 38.8.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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.8.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/api.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
7
7
  *
8
- * The version of the OpenAPI document: 38.6.0
8
+ * The version of the OpenAPI document: 38.8.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/base.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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.8.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/base.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
7
7
  *
8
- * The version of the OpenAPI document: 38.6.0
8
+ * The version of the OpenAPI document: 38.8.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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.8.0
6
6
  * Contact: semo.io.kr@gmail.com
7
7
  *
8
8
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
package/dist/common.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * CMARKET V6 Partner API
6
6
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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` ν—€λ”λ‘œ ν†΅μ§€ν•©λ‹ˆλ‹€. 이 헀더λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜μ„Έμš”.
7
7
  *
8
- * The version of the OpenAPI document: 38.6.0
8
+ * The version of the OpenAPI document: 38.8.0
9
9
  * Contact: semo.io.kr@gmail.com
10
10
  *
11
11
  * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -2,7 +2,7 @@
2
2
  * CMARKET V6 Partner API
3
3
  * μ™ΈλΆ€ ERP μ—°λ™μš© RESTful API. ## 인증 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.8.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.8.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.8.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.8.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.8.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).