@portone/mcp-server 0.13.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 (576) hide show
  1. package/LICENSE-APACHE +201 -0
  2. package/LICENSE-MIT +21 -0
  3. package/README.md +165 -0
  4. package/assets/docs/README.md +27 -0
  5. package/assets/docs/api/backward-compatibility.md +40 -0
  6. package/assets/docs/blog/posts/2024-02/v2-oom.md +341 -0
  7. package/assets/docs/blog/posts/2024-02/v2-webhook.md +314 -0
  8. package/assets/docs/blog/posts/2024-02/v2-zio.md +529 -0
  9. package/assets/docs/blog/posts/2024-03/tgs.md +238 -0
  10. package/assets/docs/blog/posts/2024-04/gcp-datastream.md +307 -0
  11. package/assets/docs/blog/posts/2024-04/solid.md +558 -0
  12. package/assets/docs/blog/posts/2024-07/v2-event-sourcing-basic.md +231 -0
  13. package/assets/docs/help/admin-console/analytics/content32.md +270 -0
  14. package/assets/docs/help/admin-console/console-account/content31.md +94 -0
  15. package/assets/docs/help/admin-console/console_home/content34.md +82 -0
  16. package/assets/docs/help/admin-console/integration/content28.md +79 -0
  17. package/assets/docs/help/admin-console/payment-service/content29.md +260 -0
  18. package/assets/docs/help/admin-console/pg-settlement/content30.md +352 -0
  19. package/assets/docs/help/admin-console/platform-settlement/content33-1.md +201 -0
  20. package/assets/docs/help/api-sdk-2024-12-19.md +64 -0
  21. package/assets/docs/help/api-sdk-2025-01-15.md +84 -0
  22. package/assets/docs/help/applepay.md +46 -0
  23. package/assets/docs/help/content100000.md +46 -0
  24. package/assets/docs/help/content100002.md +52 -0
  25. package/assets/docs/help/content100004.md +29 -0
  26. package/assets/docs/help/content100014.md +50 -0
  27. package/assets/docs/help/content100015.md +20 -0
  28. package/assets/docs/help/content100016.md +28 -0
  29. package/assets/docs/help/content100020.md +28 -0
  30. package/assets/docs/help/content100022.md +40 -0
  31. package/assets/docs/help/content100023.md +21 -0
  32. package/assets/docs/help/content100024.md +25 -0
  33. package/assets/docs/help/content100025.md +40 -0
  34. package/assets/docs/help/content100026.md +20 -0
  35. package/assets/docs/help/content100027.md +24 -0
  36. package/assets/docs/help/content100029.md +29 -0
  37. package/assets/docs/help/content100030.md +82 -0
  38. package/assets/docs/help/content100033.md +44 -0
  39. package/assets/docs/help/content100035.md +34 -0
  40. package/assets/docs/help/content100036.md +14 -0
  41. package/assets/docs/help/content100037.md +16 -0
  42. package/assets/docs/help/content100038.md +32 -0
  43. package/assets/docs/help/content100039.md +28 -0
  44. package/assets/docs/help/content100040.md +31 -0
  45. package/assets/docs/help/content100041.md +37 -0
  46. package/assets/docs/help/content100044.md +15 -0
  47. package/assets/docs/help/content100045.md +21 -0
  48. package/assets/docs/help/content100046.md +34 -0
  49. package/assets/docs/help/content100047.md +32 -0
  50. package/assets/docs/help/content100048.md +25 -0
  51. package/assets/docs/help/content100049.md +20 -0
  52. package/assets/docs/help/content100052.md +147 -0
  53. package/assets/docs/help/content100053.md +40 -0
  54. package/assets/docs/help/content100054.md +18 -0
  55. package/assets/docs/help/content100055.md +37 -0
  56. package/assets/docs/help/content100056.md +15 -0
  57. package/assets/docs/help/content100057.md +28 -0
  58. package/assets/docs/help/content100058.md +36 -0
  59. package/assets/docs/help/content100059.md +23 -0
  60. package/assets/docs/help/content100060.md +43 -0
  61. package/assets/docs/help/content200001.md +21 -0
  62. package/assets/docs/help/content200002.md +38 -0
  63. package/assets/docs/help/content200005.md +30 -0
  64. package/assets/docs/help/content200012.md +91 -0
  65. package/assets/docs/help/content200013.md +52 -0
  66. package/assets/docs/help/content200015.md +41 -0
  67. package/assets/docs/help/content200016.md +30 -0
  68. package/assets/docs/help/content200017.md +39 -0
  69. package/assets/docs/help/content200018.md +105 -0
  70. package/assets/docs/help/content200019.md +59 -0
  71. package/assets/docs/help/content200020.md +42 -0
  72. package/assets/docs/help/content200023.md +54 -0
  73. package/assets/docs/help/content200024.md +49 -0
  74. package/assets/docs/help/content200025.md +68 -0
  75. package/assets/docs/help/content200027.md +34 -0
  76. package/assets/docs/help/content200028.md +70 -0
  77. package/assets/docs/help/content200029.md +71 -0
  78. package/assets/docs/help/content200030.md +67 -0
  79. package/assets/docs/help/content200032.md +39 -0
  80. package/assets/docs/help/content200033.md +21 -0
  81. package/assets/docs/help/content200034.md +34 -0
  82. package/assets/docs/help/content200037.md +38 -0
  83. package/assets/docs/help/content200038.md +50 -0
  84. package/assets/docs/help/content200039.md +45 -0
  85. package/assets/docs/help/content200040.md +15 -0
  86. package/assets/docs/help/content200043.md +23 -0
  87. package/assets/docs/help/content200044.md +33 -0
  88. package/assets/docs/help/content200045.md +25 -0
  89. package/assets/docs/help/content200046.md +104 -0
  90. package/assets/docs/help/content200048.md +34 -0
  91. package/assets/docs/help/content200049.md +54 -0
  92. package/assets/docs/help/content200050.md +43 -0
  93. package/assets/docs/help/content200051.md +81 -0
  94. package/assets/docs/help/content51.md +38 -0
  95. package/assets/docs/help/content61.md +165 -0
  96. package/assets/docs/help/core-service/channel-setting/danal.md +170 -0
  97. package/assets/docs/help/core-service/channel-setting/daou.md +118 -0
  98. package/assets/docs/help/core-service/channel-setting/eximbay.md +136 -0
  99. package/assets/docs/help/core-service/channel-setting/inicis.md +340 -0
  100. package/assets/docs/help/core-service/channel-setting/kakaopay.md +107 -0
  101. package/assets/docs/help/core-service/channel-setting/kcp_channel.md +235 -0
  102. package/assets/docs/help/core-service/channel-setting/kicc.md +114 -0
  103. package/assets/docs/help/core-service/channel-setting/kpn.md +93 -0
  104. package/assets/docs/help/core-service/channel-setting/ksnet.md +116 -0
  105. package/assets/docs/help/core-service/channel-setting/mobilians.md +107 -0
  106. package/assets/docs/help/core-service/channel-setting/naverpay.md +179 -0
  107. package/assets/docs/help/core-service/channel-setting/nice.md +210 -0
  108. package/assets/docs/help/core-service/channel-setting/payco.md +124 -0
  109. package/assets/docs/help/core-service/channel-setting/paymentwall.md +107 -0
  110. package/assets/docs/help/core-service/channel-setting/paypal.md +247 -0
  111. package/assets/docs/help/core-service/channel-setting/settle.md +123 -0
  112. package/assets/docs/help/core-service/channel-setting/smartro.md +164 -0
  113. package/assets/docs/help/core-service/channel-setting/smilepay.md +83 -0
  114. package/assets/docs/help/core-service/channel-setting/tosspay.md +168 -0
  115. package/assets/docs/help/core-service/channel-setting/tosspayments.md +232 -0
  116. package/assets/docs/help/core-service/channel-setting/welcome.md +110 -0
  117. package/assets/docs/help/core-service/how-to-use/additional-danal.md +71 -0
  118. package/assets/docs/help/core-service/how-to-use/additional-daou.md +65 -0
  119. package/assets/docs/help/core-service/how-to-use/additional-eximbay.md +54 -0
  120. package/assets/docs/help/core-service/how-to-use/additional-inicis.md +97 -0
  121. package/assets/docs/help/core-service/how-to-use/additional-kakaopay.md +56 -0
  122. package/assets/docs/help/core-service/how-to-use/additional-kcp.md +53 -0
  123. package/assets/docs/help/core-service/how-to-use/additional-kicc.md +67 -0
  124. package/assets/docs/help/core-service/how-to-use/additional-ksnet.md +68 -0
  125. package/assets/docs/help/core-service/how-to-use/additional-mobilians.md +71 -0
  126. package/assets/docs/help/core-service/how-to-use/additional-naverpay-order.md +69 -0
  127. package/assets/docs/help/core-service/how-to-use/additional-naverpay.md +72 -0
  128. package/assets/docs/help/core-service/how-to-use/additional-nice.md +112 -0
  129. package/assets/docs/help/core-service/how-to-use/additional-payco.md +68 -0
  130. package/assets/docs/help/core-service/how-to-use/additional-settle.md +70 -0
  131. package/assets/docs/help/core-service/how-to-use/additional-smartro.md +70 -0
  132. package/assets/docs/help/core-service/how-to-use/additional-tosspay.md +57 -0
  133. package/assets/docs/help/core-service/how-to-use/additional-tosspayments.md +47 -0
  134. package/assets/docs/help/core-service/how-to-use/additional-welcome.md +72 -0
  135. package/assets/docs/help/core-service/how-to-use/cancel-deadline-by-paymethod.md +68 -0
  136. package/assets/docs/help/core-service/how-to-use/cancel-guide-using-admin-console.md +49 -0
  137. package/assets/docs/help/core-service/how-to-use/cancel-reversal.md +114 -0
  138. package/assets/docs/help/core-service/how-to-use/cellphone-identity-verification.md +62 -0
  139. package/assets/docs/help/core-service/how-to-use/content200000.md +72 -0
  140. package/assets/docs/help/core-service/how-to-use/content200009.md +83 -0
  141. package/assets/docs/help/core-service/how-to-use/danal-contract.md +82 -0
  142. package/assets/docs/help/core-service/how-to-use/daou-contract.md +82 -0
  143. package/assets/docs/help/core-service/how-to-use/eximbay-contract.md +75 -0
  144. package/assets/docs/help/core-service/how-to-use/high-risk-industry.md +554 -0
  145. package/assets/docs/help/core-service/how-to-use/identity-verification-value.md +61 -0
  146. package/assets/docs/help/core-service/how-to-use/impossible-partial-cancel.md +53 -0
  147. package/assets/docs/help/core-service/how-to-use/information-pg.md +151 -0
  148. package/assets/docs/help/core-service/how-to-use/inicis-contract.md +95 -0
  149. package/assets/docs/help/core-service/how-to-use/inicis-vat.md +45 -0
  150. package/assets/docs/help/core-service/how-to-use/inicis-vbank-refund.md +45 -0
  151. package/assets/docs/help/core-service/how-to-use/kakao-contract.md +73 -0
  152. package/assets/docs/help/core-service/how-to-use/kakaopay-contract.md +41 -0
  153. package/assets/docs/help/core-service/how-to-use/kcp-contract.md +82 -0
  154. package/assets/docs/help/core-service/how-to-use/kcp-vat.md +39 -0
  155. package/assets/docs/help/core-service/how-to-use/kcp-vbank-refund.md +46 -0
  156. package/assets/docs/help/core-service/how-to-use/kicc-contract.md +81 -0
  157. package/assets/docs/help/core-service/how-to-use/ksnet-contract.md +78 -0
  158. package/assets/docs/help/core-service/how-to-use/mobilians-contract.md +81 -0
  159. package/assets/docs/help/core-service/how-to-use/naverpay-contract.md +86 -0
  160. package/assets/docs/help/core-service/how-to-use/naverpay-order-1.md +36 -0
  161. package/assets/docs/help/core-service/how-to-use/naverpay-order-contract.md +88 -0
  162. package/assets/docs/help/core-service/how-to-use/naverpay-order-diff.md +66 -0
  163. package/assets/docs/help/core-service/how-to-use/naverpay-order-review-items.md +66 -0
  164. package/assets/docs/help/core-service/how-to-use/naverpay-review-items.md +199 -0
  165. package/assets/docs/help/core-service/how-to-use/nice-contract.md +81 -0
  166. package/assets/docs/help/core-service/how-to-use/open-immediately.md +60 -0
  167. package/assets/docs/help/core-service/how-to-use/other-hosting-company.md +38 -0
  168. package/assets/docs/help/core-service/how-to-use/payco-contract.md +74 -0
  169. package/assets/docs/help/core-service/how-to-use/payment-settlement-method.md +30 -0
  170. package/assets/docs/help/core-service/how-to-use/paymentwall-contract.md +85 -0
  171. package/assets/docs/help/core-service/how-to-use/paypal-contract.md +66 -0
  172. package/assets/docs/help/core-service/how-to-use/point-service.md +293 -0
  173. package/assets/docs/help/core-service/how-to-use/refund-date.md +66 -0
  174. package/assets/docs/help/core-service/how-to-use/requirements.md +100 -0
  175. package/assets/docs/help/core-service/how-to-use/settle-contract.md +79 -0
  176. package/assets/docs/help/core-service/how-to-use/shopify-available-list.md +65 -0
  177. package/assets/docs/help/core-service/how-to-use/shopify-guide.md +62 -0
  178. package/assets/docs/help/core-service/how-to-use/small-business-commission-fee.md +55 -0
  179. package/assets/docs/help/core-service/how-to-use/smartro-contract.md +77 -0
  180. package/assets/docs/help/core-service/how-to-use/test-mode-cancel.md +63 -0
  181. package/assets/docs/help/core-service/how-to-use/tosspay-contract.md +82 -0
  182. package/assets/docs/help/core-service/how-to-use/tosspayments-contract.md +82 -0
  183. package/assets/docs/help/core-service/how-to-use/welcome-contract.md +81 -0
  184. package/assets/docs/help/core-service/how-to-use/withsoft-guide.md +69 -0
  185. package/assets/docs/help/core-service/how-to-use/wordpress-available-pg.md +49 -0
  186. package/assets/docs/help/core-service/how-to-use/wordpress-setting.md +50 -0
  187. package/assets/docs/help/core-service/payment-type/billing-key.md +72 -0
  188. package/assets/docs/help/core-service/payment-type/content200003.md +39 -0
  189. package/assets/docs/help/core-service/payment-type/content200007.md +176 -0
  190. package/assets/docs/help/core-service/payment-type/content200036.md +37 -0
  191. package/assets/docs/help/core-service/payment-type/content200042.md +150 -0
  192. package/assets/docs/help/core-service/payment-type/content200047.md +215 -0
  193. package/assets/docs/help/core-service/payment-type/content200052.md +142 -0
  194. package/assets/docs/help/core-service/payment-type/content200053.md +128 -0
  195. package/assets/docs/help/core-service/payment-type/crossborder.md +132 -0
  196. package/assets/docs/help/core-service/payment-type/eximbay-international.md +96 -0
  197. package/assets/docs/help/core-service/payment-type/hub-service-fee.md +79 -0
  198. package/assets/docs/help/core-service/payment-type/inicis-easypay-hub-fee.md +45 -0
  199. package/assets/docs/help/core-service/payment-type/inicis-international.md +65 -0
  200. package/assets/docs/help/core-service/payment-type/internationl-high-risk-industry.md +267 -0
  201. package/assets/docs/help/core-service/payment-type/internationl-pg.md +42 -0
  202. package/assets/docs/help/core-service/payment-type/kcp-easypay-hub-apply.md +49 -0
  203. package/assets/docs/help/core-service/payment-type/kcp-international.md +60 -0
  204. package/assets/docs/help/core-service/payment-type/nice-easypay-hub-fee.md +72 -0
  205. package/assets/docs/help/core-service/payment-type/nice-international.md +51 -0
  206. package/assets/docs/help/core-service/payment-type/paymentwall-international.md +84 -0
  207. package/assets/docs/help/core-service/payment-type/paypal-international.md +86 -0
  208. package/assets/docs/help/core-service/payment-type/paypal-payment-status.md +55 -0
  209. package/assets/docs/help/core-service/payment-type/schedule-logic-guide.md +49 -0
  210. package/assets/docs/help/core-service/payment-type/schedule-requirement.md +111 -0
  211. package/assets/docs/help/core-service/payment-type/schedule-validity-guide.md +68 -0
  212. package/assets/docs/help/core-service/payment-type/tosspayment-international.md +54 -0
  213. package/assets/docs/help/core-service/payment-type/tosspayments-easypay-hub-fee.md +42 -0
  214. package/assets/docs/help/core-service/payment-type/webhook-re-send.md +41 -0
  215. package/assets/docs/help/faq/console-faq/2-depth-auth.md +53 -0
  216. package/assets/docs/help/faq/console-faq/add-admin-account.md +42 -0
  217. package/assets/docs/help/faq/console-faq/change-console-url.md +51 -0
  218. package/assets/docs/help/faq/console-faq/impossible-login.md +30 -0
  219. package/assets/docs/help/faq/console-faq/payment-list.md +45 -0
  220. package/assets/docs/help/faq/console-faq/sub-store-mgnt.md +97 -0
  221. package/assets/docs/help/faq/general-inquiry/change-business-number.md +32 -0
  222. package/assets/docs/help/faq/general-inquiry/confirm-process.md +118 -0
  223. package/assets/docs/help/faq/general-inquiry/content200004.md +55 -0
  224. package/assets/docs/help/faq/general-inquiry/content200006.md +86 -0
  225. package/assets/docs/help/faq/general-inquiry/content200011.md +24 -0
  226. package/assets/docs/help/faq/general-inquiry/content200031.md +194 -0
  227. package/assets/docs/help/faq/general-inquiry/content200041.md +21 -0
  228. package/assets/docs/help/faq/general-inquiry/contract-checkpoint.md +49 -0
  229. package/assets/docs/help/faq/general-inquiry/main-user.md +56 -0
  230. package/assets/docs/help/faq/general-inquiry/platform-contract-method.md +67 -0
  231. package/assets/docs/help/faq/general-inquiry/platform-contract-pg.md +234 -0
  232. package/assets/docs/help/faq/general-inquiry/portone-advantages.md +71 -0
  233. package/assets/docs/help/faq/general-inquiry/real-channel-info.md +70 -0
  234. package/assets/docs/help/faq/general-inquiry/what-is-the-small-business-fee.md +41 -0
  235. package/assets/docs/help/faq/payment-faq/business-card-available.md +55 -0
  236. package/assets/docs/help/faq/payment-faq/business-info-change.md +96 -0
  237. package/assets/docs/help/faq/payment-faq/cancel-deadline.md +32 -0
  238. package/assets/docs/help/faq/payment-faq/cancel-guide.md +48 -0
  239. package/assets/docs/help/faq/payment-faq/cash-receipt-guide.md +64 -0
  240. package/assets/docs/help/faq/payment-faq/content200022.md +73 -0
  241. package/assets/docs/help/faq/payment-faq/pg-max-min-amount.md +158 -0
  242. package/assets/docs/help/faq/payment-faq/receipt-guide.md +38 -0
  243. package/assets/docs/help/faq/payment-faq/tosspayments-cash-receipt.md +32 -0
  244. package/assets/docs/help/faq/payment-faq/vbank-info.md +35 -0
  245. package/assets/docs/help/faq/payment-faq/vbank-service-detail.md +67 -0
  246. package/assets/docs/help/faq/payment-faq/vbank-test-guide.md +65 -0
  247. package/assets/docs/help/faq/platform-faq/platform_function_partnerbulkupload.md +190 -0
  248. package/assets/docs/help/faq/platform-faq/platform_infosec.md +56 -0
  249. package/assets/docs/help/faq/platform-faq/platform_nocode_guide.md +104 -0
  250. package/assets/docs/help/faq/platform-faq/platform_payout_guide.md +75 -0
  251. package/assets/docs/help/faq/platform-faq/platform_policymanagement_calculator.md +73 -0
  252. package/assets/docs/help/faq/platform-faq/platform_settlmentandpayout_guide.md +83 -0
  253. package/assets/docs/help/faq/platform-faq/platform_tax_setting_guide.md +108 -0
  254. package/assets/docs/help/faq/platform-faq/taxinvoice_guide.md +107 -0
  255. package/assets/docs/help/faq/platform-faq/taxinvoice_signupemail.md +67 -0
  256. package/assets/docs/help/holidays.md +29 -0
  257. package/assets/docs/help/notice-kakaopay-2025-06-30.md +47 -0
  258. package/assets/docs/help/platform-2024-11-07.md +73 -0
  259. package/assets/docs/help/platform-2024-11-25.md +91 -0
  260. package/assets/docs/help/platform-2024-12-10.md +71 -0
  261. package/assets/docs/help/platform-2025-03-04.md +54 -0
  262. package/assets/docs/help/platform-2025-04-03.md +105 -0
  263. package/assets/docs/help/platform-2025-04-08.md +120 -0
  264. package/assets/docs/help/platform-2025-05-14.md +70 -0
  265. package/assets/docs/help/platform-2025-1-16.md +65 -0
  266. package/assets/docs/help/platform-2025-2-10.md +75 -0
  267. package/assets/docs/help/platform-2025-2-13.md +43 -0
  268. package/assets/docs/help/portone-service/portone-service/content50.md +80 -0
  269. package/assets/docs/help/pricing/pg/domestic-and-oversea-fees.md +34 -0
  270. package/assets/docs/help/pricing/portone/portone-pricing.md +116 -0
  271. package/assets/docs/help/procedure/payment-integration/real-integration.md +43 -0
  272. package/assets/docs/help/procedure/payment-integration/test-integration.md +91 -0
  273. package/assets/docs/help/procedure/pg-application/content53.md +49 -0
  274. package/assets/docs/help/procedure/pg-application/content54.md +136 -0
  275. package/assets/docs/help/procedure/pg-application/content59.md +53 -0
  276. package/assets/docs/help/procedure/pg-application/start.md +154 -0
  277. package/assets/docs/help/procedure/recommendation/package.md +98 -0
  278. package/assets/docs/help/procedure/service-addition/add-service.md +98 -0
  279. package/assets/docs/help/recon_issue1.md +25 -0
  280. package/assets/docs/help/recon_issue2.md +29 -0
  281. package/assets/docs/help/service/identity-verification/identity-verification.md +65 -0
  282. package/assets/docs/help/service/integration-type/integration-type.md +49 -0
  283. package/assets/docs/help/service/payment-type/payment-type.md +100 -0
  284. package/assets/docs/help/service/paymethod/paymethod.md +100 -0
  285. package/assets/docs/help/service/pg/pg-service-list.md +339 -0
  286. package/assets/docs/help/service/version/portone-version.md +61 -0
  287. package/assets/docs/opi/ko/console/guide/account.md +111 -0
  288. package/assets/docs/opi/ko/console/guide/api-keys.md +34 -0
  289. package/assets/docs/opi/ko/console/guide/billing-payments.md +312 -0
  290. package/assets/docs/opi/ko/console/guide/channel-manage.md +303 -0
  291. package/assets/docs/opi/ko/console/guide/connect.md +84 -0
  292. package/assets/docs/opi/ko/console/guide/home.md +37 -0
  293. package/assets/docs/opi/ko/console/guide/integration.md +18 -0
  294. package/assets/docs/opi/ko/console/guide/list.md +183 -0
  295. package/assets/docs/opi/ko/console/guide/pay.md +14 -0
  296. package/assets/docs/opi/ko/console/guide/payments.md +298 -0
  297. package/assets/docs/opi/ko/console/guide/promotion.md +140 -0
  298. package/assets/docs/opi/ko/console/guide/readme.md +22 -0
  299. package/assets/docs/opi/ko/console/guide/reg.md +159 -0
  300. package/assets/docs/opi/ko/console/guide/smartrouting.md +74 -0
  301. package/assets/docs/opi/ko/console/pg.md +92 -0
  302. package/assets/docs/opi/ko/etc/recon.md +286 -0
  303. package/assets/docs/opi/ko/extra/confirm-process/readme-v1.md +98 -0
  304. package/assets/docs/opi/ko/extra/confirm-process/readme-v2.md +152 -0
  305. package/assets/docs/opi/ko/extra/identity-verification/readme-v2.md +261 -0
  306. package/assets/docs/opi/ko/extra/identity-verification/v1/all/0.md +35 -0
  307. package/assets/docs/opi/ko/extra/identity-verification/v1/all/1.md +44 -0
  308. package/assets/docs/opi/ko/extra/identity-verification/v1/all/2.md +75 -0
  309. package/assets/docs/opi/ko/extra/identity-verification/v1/all/3.md +134 -0
  310. package/assets/docs/opi/ko/extra/identity-verification/v1/all/readme.md +17 -0
  311. package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/1.md +35 -0
  312. package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/2.md +78 -0
  313. package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/3.md +75 -0
  314. package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/4.md +134 -0
  315. package/assets/docs/opi/ko/extra/identity-verification/v1/credit-auth/readme.md +17 -0
  316. package/assets/docs/opi/ko/extra/identity-verification/v1/phone/1.md +37 -0
  317. package/assets/docs/opi/ko/extra/identity-verification/v1/phone/2.md +86 -0
  318. package/assets/docs/opi/ko/extra/identity-verification/v1/phone/3.md +77 -0
  319. package/assets/docs/opi/ko/extra/identity-verification/v1/phone/4.md +149 -0
  320. package/assets/docs/opi/ko/extra/identity-verification/v1/phone/readme.md +19 -0
  321. package/assets/docs/opi/ko/extra/identity-verification/v1/readme.md +9 -0
  322. package/assets/docs/opi/ko/extra/link-pay/readme-v1.md +235 -0
  323. package/assets/docs/opi/ko/extra/plugins/readme-v1.md +7 -0
  324. package/assets/docs/opi/ko/extra/plugins/shopify/readme-v1.md +54 -0
  325. package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-1.md +16 -0
  326. package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-2.md +32 -0
  327. package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-3.md +16 -0
  328. package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-4.md +35 -0
  329. package/assets/docs/opi/ko/extra/plugins/shopify/shopify/shopify-5.md +27 -0
  330. package/assets/docs/opi/ko/extra/plugins/wordpress/button.md +166 -0
  331. package/assets/docs/opi/ko/extra/plugins/wordpress/edd.md +56 -0
  332. package/assets/docs/opi/ko/extra/plugins/wordpress/readme-v1.md +10 -0
  333. package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/payment.md +62 -0
  334. package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/readme.md +30 -0
  335. package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/subscription.md +60 -0
  336. package/assets/docs/opi/ko/extra/plugins/wordpress/woocommerce/vbank.md +64 -0
  337. package/assets/docs/opi/ko/extra/promotion/console-guide.md +148 -0
  338. package/assets/docs/opi/ko/extra/promotion/integration.md +769 -0
  339. package/assets/docs/opi/ko/extra/promotion/intro.md +31 -0
  340. package/assets/docs/opi/ko/extra/promotion/refund.md +316 -0
  341. package/assets/docs/opi/ko/extra/smart-routing/console-guide.md +73 -0
  342. package/assets/docs/opi/ko/extra/smart-routing/integration.md +1324 -0
  343. package/assets/docs/opi/ko/extra/smart-routing/intro.md +155 -0
  344. package/assets/docs/opi/ko/integration/cancel/v1/basic.md +324 -0
  345. package/assets/docs/opi/ko/integration/cancel/v1/virtual-account.md +99 -0
  346. package/assets/docs/opi/ko/integration/cancel/v2/readme.md +378 -0
  347. package/assets/docs/opi/ko/integration/checklist/readme-v1.md +83 -0
  348. package/assets/docs/opi/ko/integration/pg/v1/blue.md +99 -0
  349. package/assets/docs/opi/ko/integration/pg/v1/danal.md +409 -0
  350. package/assets/docs/opi/ko/integration/pg/v1/daou/readme.md +305 -0
  351. package/assets/docs/opi/ko/integration/pg/v1/daou/undefined.md +214 -0
  352. package/assets/docs/opi/ko/integration/pg/v1/eximbay.md +242 -0
  353. package/assets/docs/opi/ko/integration/pg/v1/hyphen.md +196 -0
  354. package/assets/docs/opi/ko/integration/pg/v1/inicis.md +444 -0
  355. package/assets/docs/opi/ko/integration/pg/v1/kakaopay.md +207 -0
  356. package/assets/docs/opi/ko/integration/pg/v1/kcp-v2-identity-verification.md +188 -0
  357. package/assets/docs/opi/ko/integration/pg/v1/kg.md +177 -0
  358. package/assets/docs/opi/ko/integration/pg/v1/kicc.md +308 -0
  359. package/assets/docs/opi/ko/integration/pg/v1/ksnet/readme.md +533 -0
  360. package/assets/docs/opi/ko/integration/pg/v1/ksnet/warning.md +175 -0
  361. package/assets/docs/opi/ko/integration/pg/v1/naver.md +558 -0
  362. package/assets/docs/opi/ko/integration/pg/v1/newtoss/readme.md +503 -0
  363. package/assets/docs/opi/ko/integration/pg/v1/newtoss/warning.md +364 -0
  364. package/assets/docs/opi/ko/integration/pg/v1/nhn-kcp.md +1186 -0
  365. package/assets/docs/opi/ko/integration/pg/v1/nice-v2/billing-api-caution.md +150 -0
  366. package/assets/docs/opi/ko/integration/pg/v1/nice-v2/payment-caution.md +429 -0
  367. package/assets/docs/opi/ko/integration/pg/v1/nice-v2/readme.md +364 -0
  368. package/assets/docs/opi/ko/integration/pg/v1/nice.md +319 -0
  369. package/assets/docs/opi/ko/integration/pg/v1/payco.md +201 -0
  370. package/assets/docs/opi/ko/integration/pg/v1/paymentwall.md +283 -0
  371. package/assets/docs/opi/ko/integration/pg/v1/paypal.md +158 -0
  372. package/assets/docs/opi/ko/integration/pg/v1/readme.md +73 -0
  373. package/assets/docs/opi/ko/integration/pg/v1/rt/readme.md +501 -0
  374. package/assets/docs/opi/ko/integration/pg/v1/rt/warning.md +297 -0
  375. package/assets/docs/opi/ko/integration/pg/v1/settle/mybank.md +304 -0
  376. package/assets/docs/opi/ko/integration/pg/v1/settle/readme.md +185 -0
  377. package/assets/docs/opi/ko/integration/pg/v1/smartro-v2/api.md +197 -0
  378. package/assets/docs/opi/ko/integration/pg/v1/smartro-v2/caution.md +387 -0
  379. package/assets/docs/opi/ko/integration/pg/v1/smartro-v2/readme.md +293 -0
  380. package/assets/docs/opi/ko/integration/pg/v1/smartro.md +104 -0
  381. package/assets/docs/opi/ko/integration/pg/v1/smilepay.md +97 -0
  382. package/assets/docs/opi/ko/integration/pg/v1/spb/readme.md +441 -0
  383. package/assets/docs/opi/ko/integration/pg/v1/spb/stc.md +226 -0
  384. package/assets/docs/opi/ko/integration/pg/v1/spb/warning.md +729 -0
  385. package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/module.md +227 -0
  386. package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/readme.md +404 -0
  387. package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/warning.md +81 -0
  388. package/assets/docs/opi/ko/integration/pg/v1/toss-brandpay/widget.md +152 -0
  389. package/assets/docs/opi/ko/integration/pg/v1/toss.md +112 -0
  390. package/assets/docs/opi/ko/integration/pg/v1/tosspay-v2/caution.md +65 -0
  391. package/assets/docs/opi/ko/integration/pg/v1/tosspay-v2/readme.md +308 -0
  392. package/assets/docs/opi/ko/integration/pg/v1/tosspay.md +110 -0
  393. package/assets/docs/opi/ko/integration/pg/v1/welcome/api.md +229 -0
  394. package/assets/docs/opi/ko/integration/pg/v1/welcome/caution.md +517 -0
  395. package/assets/docs/opi/ko/integration/pg/v1/welcome/readme.md +795 -0
  396. package/assets/docs/opi/ko/integration/pg/v2/danal-identity-verification.md +121 -0
  397. package/assets/docs/opi/ko/integration/pg/v2/eximbay-v2.md +964 -0
  398. package/assets/docs/opi/ko/integration/pg/v2/hyphen.md +205 -0
  399. package/assets/docs/opi/ko/integration/pg/v2/inicis-jp.md +403 -0
  400. package/assets/docs/opi/ko/integration/pg/v2/inicis-unified-identity-verification.md +89 -0
  401. package/assets/docs/opi/ko/integration/pg/v2/inicis-v2.md +1598 -0
  402. package/assets/docs/opi/ko/integration/pg/v2/kakaopay.md +108 -0
  403. package/assets/docs/opi/ko/integration/pg/v2/kcp-v2-identity-verification.md +291 -0
  404. package/assets/docs/opi/ko/integration/pg/v2/kcp-v2.md +1273 -0
  405. package/assets/docs/opi/ko/integration/pg/v2/kpn.md +1133 -0
  406. package/assets/docs/opi/ko/integration/pg/v2/ksnet.md +526 -0
  407. package/assets/docs/opi/ko/integration/pg/v2/naverpay.md +186 -0
  408. package/assets/docs/opi/ko/integration/pg/v2/nice-v2.md +868 -0
  409. package/assets/docs/opi/ko/integration/pg/v2/payletter-global.md +62 -0
  410. package/assets/docs/opi/ko/integration/pg/v2/paypal-v2.md +1874 -0
  411. package/assets/docs/opi/ko/integration/pg/v2/readme.md +194 -0
  412. package/assets/docs/opi/ko/integration/pg/v2/smartro-v2.md +1043 -0
  413. package/assets/docs/opi/ko/integration/pg/v2/tosspay-v2.md +433 -0
  414. package/assets/docs/opi/ko/integration/pg/v2/tosspayments.md +551 -0
  415. package/assets/docs/opi/ko/integration/pg/v2/welcome.md +1441 -0
  416. package/assets/docs/opi/ko/integration/ready/readme.md +1069 -0
  417. package/assets/docs/opi/ko/integration/start/v1/auth.md +483 -0
  418. package/assets/docs/opi/ko/integration/start/v1/non-auth.md +420 -0
  419. package/assets/docs/opi/ko/integration/start/v1/readme.md +9 -0
  420. package/assets/docs/opi/ko/integration/start/v2/billing/issue.md +122 -0
  421. package/assets/docs/opi/ko/integration/start/v2/billing/payment.md +41 -0
  422. package/assets/docs/opi/ko/integration/start/v2/billing/readme.md +24 -0
  423. package/assets/docs/opi/ko/integration/start/v2/billing/schedule.md +54 -0
  424. package/assets/docs/opi/ko/integration/start/v2/checkout.md +258 -0
  425. package/assets/docs/opi/ko/integration/start/v2/keyin.md +54 -0
  426. package/assets/docs/opi/ko/integration/start/v2/readme.md +120 -0
  427. package/assets/docs/opi/ko/integration/using-ai-tools.md +140 -0
  428. package/assets/docs/opi/ko/integration/virtual-account/readme.md +268 -0
  429. package/assets/docs/opi/ko/integration/webhook/readme-v1.md +242 -0
  430. package/assets/docs/opi/ko/integration/webhook/readme-v2.md +599 -0
  431. package/assets/docs/opi/ko/quick-guide/payment.md +3305 -0
  432. package/assets/docs/opi/ko/readme.md +193 -0
  433. package/assets/docs/opi/ko/support/agency-and-tier.md +51 -0
  434. package/assets/docs/opi/ko/support/code-info/card-code.md +29 -0
  435. package/assets/docs/opi/ko/support/code-info/code.md +22 -0
  436. package/assets/docs/opi/ko/support/code-info/pg-1.md +161 -0
  437. package/assets/docs/opi/ko/support/code-info/pg-2.md +41 -0
  438. package/assets/docs/opi/ko/support/code-info/pg-3.md +36 -0
  439. package/assets/docs/opi/ko/support/code-info/pg.md +41 -0
  440. package/assets/docs/opi/ko/support/code-info/portone-code.md +15 -0
  441. package/assets/docs/opi/ko/support/code-info/readme.md +20 -0
  442. package/assets/docs/opi/ko/support/contact.md +23 -0
  443. package/assets/docs/opi/ko/support/faq/undefined.md +60 -0
  444. package/assets/docs/opi/ko/support/flow.md +24 -0
  445. package/assets/docs/opi/ko/support/redirect.md +26 -0
  446. package/assets/docs/opi/ko/support/tax.md +142 -0
  447. package/assets/docs/opi/ko/support/tls-support.md +497 -0
  448. package/assets/docs/platform/ko/guides/dictionary.md +20 -0
  449. package/assets/docs/platform/ko/guides/process.md +33 -0
  450. package/assets/docs/platform/ko/guides/webhook.md +171 -0
  451. package/assets/docs/platform/ko/readme.md +64 -0
  452. package/assets/docs/platform/ko/usages/client.md +17 -0
  453. package/assets/docs/platform/ko/usages/contract.md +126 -0
  454. package/assets/docs/platform/ko/usages/discount.md +89 -0
  455. package/assets/docs/platform/ko/usages/fee.md +97 -0
  456. package/assets/docs/platform/ko/usages/order.md +1666 -0
  457. package/assets/docs/platform/ko/usages/partner.md +115 -0
  458. package/assets/docs/platform/ko/using-ai-tools.md +140 -0
  459. package/assets/docs/release-notes/api-sdk/2023-04-24.md +10 -0
  460. package/assets/docs/release-notes/api-sdk/2023-05-08.md +22 -0
  461. package/assets/docs/release-notes/api-sdk/2023-05-12.md +24 -0
  462. package/assets/docs/release-notes/api-sdk/2023-05-22.md +46 -0
  463. package/assets/docs/release-notes/api-sdk/2023-05-25.md +15 -0
  464. package/assets/docs/release-notes/api-sdk/2023-06-19.md +20 -0
  465. package/assets/docs/release-notes/api-sdk/2023-07-03.md +26 -0
  466. package/assets/docs/release-notes/api-sdk/2023-07-10.md +35 -0
  467. package/assets/docs/release-notes/api-sdk/2023-07-17.md +31 -0
  468. package/assets/docs/release-notes/api-sdk/2023-07-31.md +14 -0
  469. package/assets/docs/release-notes/api-sdk/2023-08-31.md +29 -0
  470. package/assets/docs/release-notes/api-sdk/2023-12-15.md +12 -0
  471. package/assets/docs/release-notes/api-sdk/2024-01-08.md +36 -0
  472. package/assets/docs/release-notes/api-sdk/2024-01-11.md +18 -0
  473. package/assets/docs/release-notes/api-sdk/2024-01-25.md +35 -0
  474. package/assets/docs/release-notes/api-sdk/2024-01-30.md +19 -0
  475. package/assets/docs/release-notes/api-sdk/2024-02-23.md +26 -0
  476. package/assets/docs/release-notes/api-sdk/2024-03-08.md +12 -0
  477. package/assets/docs/release-notes/api-sdk/2024-03-15.md +30 -0
  478. package/assets/docs/release-notes/api-sdk/2024-03-25.md +23 -0
  479. package/assets/docs/release-notes/api-sdk/2024-04-01.md +37 -0
  480. package/assets/docs/release-notes/api-sdk/2024-04-05.md +10 -0
  481. package/assets/docs/release-notes/api-sdk/2024-04-12.md +32 -0
  482. package/assets/docs/release-notes/api-sdk/2024-05-08.md +34 -0
  483. package/assets/docs/release-notes/api-sdk/2024-05-14.md +17 -0
  484. package/assets/docs/release-notes/api-sdk/2024-06-03.md +48 -0
  485. package/assets/docs/release-notes/api-sdk/2024-06-17.md +37 -0
  486. package/assets/docs/release-notes/api-sdk/2024-06-19.md +39 -0
  487. package/assets/docs/release-notes/api-sdk/2024-06-20.md +13 -0
  488. package/assets/docs/release-notes/api-sdk/2024-07-04.md +15 -0
  489. package/assets/docs/release-notes/api-sdk/2024-07-11.md +47 -0
  490. package/assets/docs/release-notes/api-sdk/2024-09-05.md +36 -0
  491. package/assets/docs/release-notes/api-sdk/2024-09-27.md +27 -0
  492. package/assets/docs/release-notes/api-sdk/2024-12-19.md +52 -0
  493. package/assets/docs/release-notes/api-sdk/2025-01-15.md +76 -0
  494. package/assets/docs/release-notes/api-sdk/2025-05-19.md +49 -0
  495. package/assets/docs/release-notes/console/2023-04-24.md +41 -0
  496. package/assets/docs/release-notes/console/2023-05-08.md +6 -0
  497. package/assets/docs/release-notes/console/2023-05-22.md +15 -0
  498. package/assets/docs/release-notes/console/2023-07-05.md +29 -0
  499. package/assets/docs/release-notes/console/2023-07-07.md +25 -0
  500. package/assets/docs/release-notes/console/2023-07-17.md +16 -0
  501. package/assets/docs/release-notes/console/2023-08-23.md +17 -0
  502. package/assets/docs/release-notes/console/2023-09-12.md +16 -0
  503. package/assets/docs/release-notes/console/2023-12-27.md +24 -0
  504. package/assets/docs/release-notes/console/2024-09-05.md +23 -0
  505. package/assets/docs/release-notes/platform/2023-08-31.md +16 -0
  506. package/assets/docs/release-notes/platform/2023-11-08.md +37 -0
  507. package/assets/docs/release-notes/platform/2023-11-14.md +28 -0
  508. package/assets/docs/release-notes/platform/2023-12-15.md +11 -0
  509. package/assets/docs/release-notes/platform/2024-05-20.md +31 -0
  510. package/assets/docs/release-notes/platform/2024-05-29.md +159 -0
  511. package/assets/docs/release-notes/platform/2024-06-05.md +30 -0
  512. package/assets/docs/release-notes/platform/2024-07-05.md +49 -0
  513. package/assets/docs/release-notes/platform/2024-07-11.md +62 -0
  514. package/assets/docs/release-notes/platform/2024-07-30.md +44 -0
  515. package/assets/docs/release-notes/platform/2024-08-07.md +37 -0
  516. package/assets/docs/release-notes/platform/2024-08-22.md +111 -0
  517. package/assets/docs/release-notes/platform/2024-10-21.md +75 -0
  518. package/assets/docs/release-notes/platform/2024-11-07.md +65 -0
  519. package/assets/docs/release-notes/platform/2024-11-25.md +82 -0
  520. package/assets/docs/release-notes/platform/2024-12-10.md +61 -0
  521. package/assets/docs/release-notes/platform/2025-01-16.md +56 -0
  522. package/assets/docs/release-notes/platform/2025-02-10.md +67 -0
  523. package/assets/docs/release-notes/platform/2025-02-13.md +27 -0
  524. package/assets/docs/release-notes/platform/2025-03-04.md +49 -0
  525. package/assets/docs/release-notes/platform/2025-03-17.md +40 -0
  526. package/assets/docs/release-notes/platform/2025-04-03.md +96 -0
  527. package/assets/docs/release-notes/platform/2025-04-08.md +119 -0
  528. package/assets/docs/release-notes/platform/2025-05-14.md +77 -0
  529. package/assets/docs/release-notes/platform/2025-07-02.md +64 -0
  530. package/assets/docs/release-notes/platform/2025-07-07.md +55 -0
  531. package/assets/docs/schema/browser-sdk.yml +6349 -0
  532. package/assets/docs/schema/v1.openapi.json +11632 -0
  533. package/assets/docs/schema/v1.openapi.yml +11489 -0
  534. package/assets/docs/schema/v2.graphql +13849 -0
  535. package/assets/docs/schema/v2.openapi.json +47721 -0
  536. package/assets/docs/schema/v2.openapi.yml +34749 -0
  537. package/assets/docs/sdk/ko/readme.md +56 -0
  538. package/assets/docs/sdk/ko/v1-mobile-sdk/readme.md +31 -0
  539. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/cft-rt.md +32 -0
  540. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/cft.md +108 -0
  541. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/load-module-rt.md +10 -0
  542. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/load-module.md +55 -0
  543. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/payrq.md +502 -0
  544. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/payrt.md +300 -0
  545. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk/readme.md +46 -0
  546. package/assets/docs/sdk/ko/v1-sdk/javascript-sdk-old/readme.md +33 -0
  547. package/assets/docs/sdk/ko/v2-mobile-sdk/android.md +268 -0
  548. package/assets/docs/sdk/ko/v2-mobile-sdk/react-native.md +239 -0
  549. package/assets/docs/sdk/ko/v2-mobile-sdk/readme.md +30 -0
  550. package/assets/docs/sdk/ko/v2-sdk/billing-key-and-pay-request.md +26 -0
  551. package/assets/docs/sdk/ko/v2-sdk/billing-key-and-pay-response.md +15 -0
  552. package/assets/docs/sdk/ko/v2-sdk/billing-key-request.md +24 -0
  553. package/assets/docs/sdk/ko/v2-sdk/billing-key-response.md +15 -0
  554. package/assets/docs/sdk/ko/v2-sdk/changelog.md +8 -0
  555. package/assets/docs/sdk/ko/v2-sdk/identity-verification-request.md +15 -0
  556. package/assets/docs/sdk/ko/v2-sdk/identity-verification-response.md +15 -0
  557. package/assets/docs/sdk/ko/v2-sdk/load-issue-billing-key-ui-request.md +15 -0
  558. package/assets/docs/sdk/ko/v2-sdk/load-issue-billing-key-ui-response.md +23 -0
  559. package/assets/docs/sdk/ko/v2-sdk/load-payment-ui-request.md +15 -0
  560. package/assets/docs/sdk/ko/v2-sdk/load-payment-ui-response.md +23 -0
  561. package/assets/docs/sdk/ko/v2-sdk/payment-request.md +15 -0
  562. package/assets/docs/sdk/ko/v2-sdk/payment-response.md +15 -0
  563. package/assets/docs/sdk/ko/v2-sdk/readme.md +73 -0
  564. package/assets/docs/sdk/ko/v2-sdk/update-load-issue-billing-key-ui-request.md +15 -0
  565. package/assets/docs/sdk/ko/v2-sdk/update-load-payment-ui-request.md +15 -0
  566. package/assets/docs/sdk/ko/v2-server-sdk/javascript.md +170 -0
  567. package/assets/docs/sdk/ko/v2-server-sdk/jvm.md +170 -0
  568. package/assets/docs/sdk/ko/v2-server-sdk/python.md +152 -0
  569. package/assets/docs/sdk/ko/v2-server-sdk/readme.md +259 -0
  570. package/assets/docs/v1-docs-full.md +36540 -0
  571. package/assets/docs/v2-docs-full.md +34980 -0
  572. package/assets/docs/website-links.md +331 -0
  573. package/assets/instructions.md +19 -0
  574. package/manifest.json +50 -0
  575. package/package.json +66 -0
  576. package/server/index.js +1764 -0
@@ -0,0 +1,1666 @@
1
+ ---
2
+ title: 주문정산 예시
3
+ description: ''
4
+ ---
5
+
6
+ ## 주문 정산 생성
7
+
8
+ 주문 정산을 생성하는 예시입니다.
9
+
10
+ ### 사전 조건
11
+
12
+ - 주문금액 : 10,000원
13
+ - 결제금액 : 10,000원
14
+ - 판매 파트너 : A
15
+ - 정산시작일 (결제완료 시점): 2023-08-11
16
+
17
+ ### 샘플 코드
18
+
19
+ #### Request
20
+
21
+ <div class="tabs-container">
22
+
23
+ <div class="tabs-content" data-title="Python">
24
+
25
+ ```py
26
+ import requests
27
+ # ... 결제 요청 및 결제 완료 로직 생략. 포트원 결제일경우 https://developers.portone.io/opi/ko/authpay/guide?v=v2 를 참고하세요
28
+
29
+ # 주문 정산 요청
30
+
31
+ orderTransferData = {
32
+ "partnerId": "partner_A", # 파트너 A 파트너 아이디 등록 가정
33
+ "paymentId": "payment_1", # 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
34
+ "orderDetail": {
35
+ "orderAmount": 10000,
36
+ },
37
+ "settlementStartDate": None, #결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
38
+ "isForTest": False # 테스트 정산 여부
39
+ }
40
+
41
+ headers = {
42
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
43
+ 'Content-Type': 'application/json'
44
+ }
45
+
46
+ orderTransferResponse =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransferData)
47
+ ```
48
+
49
+ </div>
50
+
51
+ <div class="tabs-content" data-title="Node">
52
+
53
+ ```js
54
+ const axios = require("axios");
55
+
56
+ // 주문 정산 요청
57
+ const orderTransferData = {
58
+ partnerId: "partner_A", // 파트너 A 파트너 아이디 등록 가정
59
+ paymentId: "payment_1", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
60
+ orderDetail: {
61
+ orderAmount: 10000,
62
+ },
63
+ settlementStartDate: null, // 결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
64
+ isForTest: false, // 테스트 정산 여부
65
+ };
66
+
67
+ axios
68
+ .post("https://api.portone.io/platform/transfer/order", orderTransferData, {
69
+ headers: {
70
+ "Content-Type": "application/json",
71
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
72
+ },
73
+ })
74
+ .then((response) => {
75
+ console.log(response.data);
76
+ })
77
+ .catch((error) => {
78
+ console.error("Error:", error.response.data);
79
+ });
80
+ ```
81
+
82
+ </div>
83
+
84
+ </div>
85
+
86
+ #### Response (snippet)
87
+
88
+ <div class="tabs-container">
89
+
90
+ <div class="tabs-content" data-title="snippet">
91
+
92
+ ```json
93
+ {
94
+ "transfer": {
95
+ "type": "ORDER",
96
+ "id": "01H7MCX58SGYCNVN1CWY3HXM6D",
97
+ "graphqlId": "NjowMUg3TUNYNThTR1lDTlZOMUNXWTNIWE02RA==",
98
+ "partner": {
99
+ // 파트너 정보 생략
100
+ },
101
+ "status": "IN_PROCESS", // 정산 상태값. 정산 api 문서에서 보다 자세하게 확인하실 수 있습니다.
102
+ "settlementDate": "2023-08-31", //정산일
103
+ "settlementCurrency": "KRW", //포트원 결제 통화를 따릅니다.
104
+ "isForTest": false,
105
+ "amount": {
106
+ "settlement": 8900, //최종 정산금액
107
+ "payment": 10000, //결제금액
108
+ "order": 10000, //주문금액
109
+ "platformFee": 1000, //중개수수료 10%
110
+ "platformFeeVat": 100, //중개수수료 부가세 부담금
111
+ "additionalFee": 0, //추가수수료
112
+ "additionalFeeVat": 0, //추가수수료 부가세 부담금
113
+ "discount": 0, //할인금액
114
+ "discountShare": 0 //할인금액 중 파트너가 부담하는 금액
115
+ },
116
+ "contract": {
117
+ //적용된 계약 정보. 파트너 A의 대표 계약이 적용됩니다.
118
+ "id": "contractA",
119
+ "graphqlId": "NTpjb250cmFjdEE=",
120
+ "memo": "contract A",
121
+ "platformFee": {
122
+ "type": "FIXED_RATE",
123
+ "rate": 10000
124
+ },
125
+ "payment": {
126
+ "id": "payment_1",
127
+ "orderName": "string",
128
+ "currency": "KRW",
129
+ "method": {
130
+ "card": {}
131
+ },
132
+ "paidAt": "2023-08-11T08:21:01.241Z"
133
+ }
134
+ },
135
+ "settlementStartDate": "2023-08-11", //기본값으로 결제 완료 시점을 따릅니다.
136
+ "orderLines": [],
137
+ "additionalFees": [],
138
+ "discounts": []
139
+ }
140
+ }
141
+ ```
142
+
143
+ </div>
144
+
145
+ </div>
146
+
147
+ ## 주문 취소 정산 등록
148
+
149
+ 주문 정산건에 대해서 주문 취소가 일어났을 때 주문취소 정산을 등록하는 예시입니다.
150
+
151
+ ### 사전 조건
152
+
153
+ - 취소금액 : 5,000원
154
+ - 결제 취소금액 : 5,000원
155
+ - 판매 파트너 : A
156
+ - 정산시작일 (결제 취소 완료 시점): 2023-08-12
157
+
158
+ ### 샘플 코드
159
+
160
+ #### Request
161
+
162
+ <div class="tabs-container">
163
+
164
+ <div class="tabs-content" data-title="Python">
165
+
166
+ ```py
167
+ # 결제 취소 후 결제취소 아이디(cancellation_id)를 확인합니다.
168
+ # 결제취소 아이디 (cancellation_id)는 결제 취소 API (POST https://api.portone.io/v2/payments/{paymentId}/cancel)로 취소시 응답에 포함됩니다.
169
+ # 또는 결제내역 단건조회 API (GET https://api.portone.io/v2/payments/{paymentId}) 조회시 응답에 포함됩니다.
170
+ # ... 중략....
171
+
172
+ # 주문취소 정산 요청
173
+ orderCancelTransferData ={
174
+ "partnerId": "partner_A",
175
+ "paymentId": "payment_1", # 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
176
+ "cancellationId": "cancellation_1", # 포트원 결제시 결제 취소 아이디
177
+ "orderDetail": {
178
+ "orderAmount": 5000,
179
+ },
180
+ "settlementStartDate": None, #결제취소 완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
181
+ "isForTest": False # 테스트 정산 여부
182
+ }
183
+
184
+ headers = {
185
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
186
+ 'Content-Type': 'application/json'
187
+ }
188
+
189
+ orderCancelTransferResponse =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderCancelTransferData)
190
+ ```
191
+
192
+ </div>
193
+
194
+ <div class="tabs-content" data-title="Node">
195
+
196
+ ```js
197
+ const axios = require("axios");
198
+
199
+ // 결제 취소 후 결제취소 아이디(cancellation_id)를 확인합니다.
200
+ // 결제취소 아이디 (cancellation_id)는 결제 취소 API (POST https://api.portone.io/v2/payments/{paymentId}/cancel)로 취소시 응답에 포함됩니다.
201
+ // 또는 결제내역 단건조회 API (GET https://api.portone.io/v2/payments/{paymentId}) 조회시 응답에 포함됩니다.
202
+ // ... 중략....
203
+
204
+ // 주문취소 정산 요청
205
+ const orderCancelTransferData = {
206
+ partnerId: "partner_A",
207
+ paymentId: "payment_1", // 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
208
+ cancellationId: "cancellation_1", // 포트원 결제시 결제 취소 아이디
209
+ orderDetail: {
210
+ orderAmount: 5000,
211
+ },
212
+ settlementStartDate: null, // 결제취소 완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
213
+ isForTest: false, // 테스트 정산 여부
214
+ };
215
+
216
+ axios
217
+ .post(
218
+ "https://api.portone.io/platform/transfer/order",
219
+ orderCancelTransferData,
220
+ {
221
+ headers: {
222
+ "Content-Type": "application/json",
223
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
224
+ },
225
+ },
226
+ )
227
+ .then((response) => {
228
+ console.log(response.data);
229
+ })
230
+ .catch((error) => {
231
+ console.error("Error:", error.response.data);
232
+ });
233
+ ```
234
+
235
+ </div>
236
+
237
+ </div>
238
+
239
+ #### Response (snippet)
240
+
241
+ <div class="tabs-container">
242
+
243
+ <div class="tabs-content" data-title="snippet">
244
+
245
+ ```json
246
+ {
247
+ "transfer": {
248
+ "type": "ORDER_CANCEL",
249
+ "id": "01H7J87XQ4JAS28RWZBC29YCJ1",
250
+ "graphqlId": "NjowMUg3Sjg3WFE0SkFTMjhSV1pCQzI5WUNKMQ==",
251
+ "partner": {
252
+ // 파트너 정보 생략 ...
253
+ },
254
+ "status": "SCHEDULED", // 정산 상태값. 미래 시점인경우 SCHEDULED 상태입니다.
255
+ "settlementDate": "2023-08-3", //정산일
256
+ "settlementCurrency": "KRW", //포트원 결제 통화를 따릅니다.
257
+ "isForTest": false,
258
+ "amount": {
259
+ "settlement": 4450, //최종 정산취소금액
260
+ "payment": 5000, //결제 취소 금액
261
+ "order": 5000, //주문 취소 금액
262
+ "platformFee": 500, //중개수수료 10%
263
+ "platformFeeVat": 50, //중개수수료 부가세 부담금
264
+ "additionalFee": 0, //추가수수료
265
+ "additionalFeeVat": 0, //추가수수료 부가세 부담금
266
+ "discount": 0, //할인금액
267
+ "discountShare": 0 //할인금액 중 파트너가 부담하는 금액
268
+ },
269
+ "contract": {
270
+ //계약 정보 생략 ...
271
+ },
272
+ "payment": {
273
+ "id": "payment_1",
274
+ "orderName": "string",
275
+ "currency": "KRW",
276
+ "method": {
277
+ "card": {}
278
+ },
279
+ "paidAt": "2023-08-11T08:21:01.241Z"
280
+ }
281
+ },
282
+ "settlementStartDate": "2023-08-12", //기본값으로 결제 취소 시점을 따릅니다.
283
+ "orderLines": [],
284
+ "additionalFees": [],
285
+ "discounts": [],
286
+ "cancellation": {
287
+ // 결제 취소 정보
288
+ "id": "cancellation_1",
289
+ "cancelledAt": "2023-08-12T11:57:15.292Z"
290
+ }
291
+ }
292
+ ```
293
+
294
+ </div>
295
+
296
+ </div>
297
+
298
+ ## 상품 정보를 통한 주문 정산
299
+
300
+ 상품 정보를 통한 주문 정산을 생성하는 예시입니다.
301
+
302
+ ### 사전 조건
303
+
304
+ - 주문금액 : 14,000원
305
+ - 결제금액 : 14,000원
306
+ - 판매 파트너 : A, 정산시작일 (결제완료 시점): 2023-08-11
307
+
308
+ |상품| 가격 |갯수|
309
+ |:--:|:-----:|:--:|
310
+ | A |2,000원| 5개|
311
+ | B |4,000원| 1개|
312
+
313
+ ### 샘플 코드
314
+
315
+ #### Request
316
+
317
+ <div class="tabs-container">
318
+
319
+ <div class="tabs-content" data-title="Python">
320
+
321
+ ```py
322
+ # 주문정산과 차이나는 부분만 기재하였습니다.
323
+ orderTransferData ={
324
+ # 생략 ...
325
+ "orderDetail":{
326
+ "orderLines":[
327
+ {
328
+ "product": {
329
+ "id": "product_A", # 상품아이디
330
+ "name": "상품 A", # 상품명
331
+ "amount": 2000, # 상품 가격
332
+ "tag": "과일", # 상품 태그 에시
333
+ },
334
+ "quantity": 5,
335
+ "discounts": [], # 해당 상품에만 적용되는 할인정보
336
+ "additionalFees": [], # 해당 상품에만 적용되는 추가수수료 정보
337
+ },
338
+ {
339
+ "product": {
340
+ "id": "product_B", # 상품아이디
341
+ "name": "상품 B", # 상품명
342
+ "amount": 4000, # 상품 가격
343
+ "tag": "과일", # 상품 태그 예시
344
+ },
345
+ "quantity": 1,
346
+ "discounts": [], # 해당 상품에만 적용되는 할인정보
347
+ "additionalFees": [], # 해당 상품에만 적용되는 추가수수료 정보
348
+ }
349
+ ]
350
+ }
351
+ # 생략 ...
352
+ }
353
+
354
+ headers = {
355
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
356
+ 'Content-Type': 'application/json'
357
+ }
358
+
359
+ orderTransferResponse =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransferData)
360
+ ```
361
+
362
+ </div>
363
+
364
+ <div class="tabs-content" data-title="Node">
365
+
366
+ ```js
367
+ const axios = require("axios");
368
+
369
+ // 위 주문정산1과 차이나는 부분만 기재하였습니다.
370
+ const orderTransferData = {
371
+ // ... 생략 ...
372
+ orderDetail: {
373
+ orderLines: [
374
+ {
375
+ product: {
376
+ id: "product_A", // 상품 아이디
377
+ name: "상품 A", // 상품 명
378
+ amount: 2000, // 상품 가격
379
+ tag: "과일", // 상품 태그 에시
380
+ },
381
+ quantity: 5,
382
+ discounts: [], // 해당 상품에만 적용되는 할인정보
383
+ additionalFees: [], // 해당 상품에만 적용되는 추가수수료 정보
384
+ },
385
+ {
386
+ product: {
387
+ id: "product_B", // 상품 아이시
388
+ name: "상품 B", // 상품 명
389
+ amount: 4000, // 상품 가격
390
+ tag: "과일", // 상품 태그 예시
391
+ },
392
+ quantity: 1,
393
+ discounts: [], // 해당 상품에만 적용되는 할인정보
394
+ additionalFees: [], // 해당 상품에만 적용되는 추가수수료 정보
395
+ },
396
+ ],
397
+ },
398
+ // ... 생략 ...
399
+ };
400
+
401
+ const headers = {
402
+ "Content-Type": "application/json",
403
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
404
+ };
405
+
406
+ axios
407
+ .post("https://api.portone.io/platform/transfer/order", orderTransferData, {
408
+ headers: headers,
409
+ })
410
+ .then((response) => {
411
+ console.log(response.data);
412
+ })
413
+ .catch((error) => {
414
+ console.error("Error:", error.response.data);
415
+ });
416
+ ```
417
+
418
+ </div>
419
+
420
+ </div>
421
+
422
+ #### Response (snippet)
423
+
424
+ <div class="tabs-container">
425
+
426
+ <div class="tabs-content" data-title="snippet">
427
+
428
+ ```json
429
+ {
430
+ "transfer": {
431
+ "type": "ORDER",
432
+ "id": "01H7MCX58SGYCNVN1CWY3HXM6D",
433
+ "graphqlId": "NjowMUg3TUNYNThTR1lDTlZOMUNXWTNIWE02RA==",
434
+ "partner": {
435
+ // 파트너 정보 생략
436
+ },
437
+ "status": "IN_PROCESS",
438
+ "settlementDate": "2023-08-31",
439
+ "settlementCurrency": "KRW",
440
+ "isForTest": false,
441
+ "amount": {
442
+ // 전체 주문건에 대한 정산정보
443
+ "settlement": 12460, // 전체 주문건에 대한 정산 금액
444
+ "payment": 14000,
445
+ "order": 14000,
446
+ "platformFee": 1400,
447
+ "platformFeeVat": 140,
448
+ "additionalFee": 0,
449
+ "additionalFeeVat": 0,
450
+ "discount": 0,
451
+ "discountShare": 0
452
+ },
453
+ "contract": {
454
+ //계약 정보 생략
455
+ },
456
+ "payment": {
457
+ "id": "payment_1",
458
+ "orderName": "string",
459
+ "currency": "KRW",
460
+ "method": { "card": {} },
461
+ "paidAt": "2023-08-11T08:21:01.241Z"
462
+ },
463
+ "settlementStartDate": "2023-08-11",
464
+ "orderLines": [
465
+ // 상품별 주문 및 정산정보
466
+ {
467
+ "product": {
468
+ "id": "product_A",
469
+ "name": "상품 A",
470
+ "amount": 2000,
471
+ "tag": "과일"
472
+ },
473
+ "quantity": 5,
474
+ "discounts": [],
475
+ "additionalFees": [],
476
+ "amount": {
477
+ //상품 별 정산정보. 참고로 전체 주문에대한 할인 및 추가수수료 정보는 전체 주문건에 대한 정산정보에 포함됩니다.
478
+ "settlement": 8900,
479
+ "payment": 10000,
480
+ "order": 10000,
481
+ "platformFee": 1000,
482
+ "platformFeeVat": 100,
483
+ "additionalFee": 0,
484
+ "additionalFeeVat": 0,
485
+ "discount": 0,
486
+ "discountShare": 0
487
+ }
488
+ },
489
+ {
490
+ "product": {
491
+ "id": "product_B",
492
+ "name": "상품 B",
493
+ "amount": 4000,
494
+ "tag": "과일"
495
+ },
496
+ "quantity": 1,
497
+ "discounts": [],
498
+ "additionalFees": [],
499
+ "amount": {
500
+ "settlement": 3560,
501
+ "payment": 4000,
502
+ "order": 4000,
503
+ "platformFee": 400,
504
+ "platformFeeVat": 40,
505
+ "additionalFee": 0,
506
+ "additionalFeeVat": 0,
507
+ "discount": 0,
508
+ "discountShare": 0
509
+ }
510
+ }
511
+ ],
512
+ "additionalFees": [], //전체 주문건에 대한 추가수수료 정보
513
+ "discounts": [] //전체 주문건에 대한 할인 정보
514
+ }
515
+ }
516
+ ```
517
+
518
+ </div>
519
+
520
+ </div>
521
+
522
+ ## 상품 정보를 통한 주문 취소 정산
523
+
524
+ 상품 정보를 통한 주문 취소 정산을 등록하는 예시입니다.
525
+
526
+ ### 사전 조건
527
+
528
+ - 주문취소 금액 : 4,000원
529
+ - 취소 상품 A 가격: 2,000
530
+ - 취소 갯수: 2개
531
+ - 결제 취소금액 4,000원
532
+
533
+ ### 샘플 코드
534
+
535
+ #### Request
536
+
537
+ <div class="tabs-container">
538
+
539
+ <div class="tabs-content" data-title="Python">
540
+
541
+ ```py
542
+ # 결제 취소 후 결제취소 아이디(cancellation_id)를 확인합니다.
543
+ # 결제취소 아이디 (cancellation_id)는 결제 취소 API (POST https://api.portone.io/v2/payments/{paymentId}/cancel)로 취소시 응답에 포함됩니다.
544
+ # 또는 결제내역 단건조회 API (GET https://api.portone.io/v2/payments/{paymentId}) 조회시 응답에 포함됩니다.
545
+ # ... 중략....
546
+
547
+ # 주문취소 정산 요청
548
+ orderCancelTransferData ={
549
+ "partnerId": "partner_A",
550
+ "paymentId": "payment_1", # 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
551
+ "cancellationId": "cancellation_1", # 포트원 결제시 결제 취소 아이디
552
+ "orderDetail": {
553
+ "orderAmount": 4000,
554
+ "orderLines": [
555
+ {
556
+ "productId": "product_A", # 상품 A 아이디
557
+ "quantity": "2" # 상품 취소 갯수
558
+ }
559
+ ],
560
+ },
561
+ "settlementStartDate": None, #결제취소 완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
562
+ "isForTest": False # 테스트 정산 여부
563
+ }
564
+
565
+ headers = {
566
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
567
+ 'Content-Type': 'application/json'
568
+ }
569
+
570
+ orderCancelTransferResponse =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderCancelTransferData)
571
+ ```
572
+
573
+ </div>
574
+
575
+ <div class="tabs-content" data-title="Node">
576
+
577
+ ```js
578
+ const axios = require("axios");
579
+
580
+ // 결제 취소 후 결제취소 아이디(cancellation_id)를 확인합니다.
581
+ // 결제취소 아이디 (cancellation_id)는 결제 취소 API (POST https://api.portone.io/v2/payments/{paymentId}/cancel)로 취소시 응답에 포함됩니다.
582
+ // 또는 결제내역 단건조회 API (GET https://api.portone.io/v2/payments/{paymentId}) 조회시 응답에 포함됩니다.
583
+ // ... 중략....
584
+
585
+ // 주문취소 정산 요청
586
+ const orderCancelTransferData = {
587
+ partnerId: "partner_A",
588
+ paymentId: "payment_1", // 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
589
+ cancellationId: "cancellation_1", // 포트원 결제시 결제 취소 아이디
590
+ orderDetail: {
591
+ orderAmount: 5000,
592
+ orderLines: [
593
+ {
594
+ productId: "product_A", // 상품 A 아이디
595
+ quantity: "2", // 상품 취소 갯수
596
+ },
597
+ ],
598
+ },
599
+ settlementStartDate: null, // 결제취소 완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
600
+ isForTest: false, // 테스트 정산 여부
601
+ };
602
+
603
+ axios
604
+ .post(
605
+ "https://api.portone.io/platform/transfer/order",
606
+ orderCancelTransferData,
607
+ {
608
+ headers: {
609
+ "Content-Type": "application/json",
610
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
611
+ },
612
+ },
613
+ )
614
+ .then((response) => {
615
+ console.log(response.data);
616
+ })
617
+ .catch((error) => {
618
+ console.error("Error:", error.response.data);
619
+ });
620
+ ```
621
+
622
+ </div>
623
+
624
+ </div>
625
+
626
+ #### Response (snippet)
627
+
628
+ <div class="tabs-container">
629
+
630
+ <div class="tabs-content" data-title="snippet">
631
+
632
+ ```json
633
+ {
634
+ "transfer": {
635
+ "type": "ORDER_CANCEL",
636
+ "id": "01H7J87XQ4JAS28RWZBC29YCJ1",
637
+ "graphqlId": "NjowMUg3Sjg3WFE0SkFTMjhSV1pCQzI5WUNKMQ==",
638
+ "partner": {
639
+ // 파트너 정보 생략 ...
640
+ },
641
+ "status": "SCHEDULED", // 정산 상태값. 미래 시점인경우 SCHEDULED 상태입니다.
642
+ "settlementDate": "2023-08-3", //정산일
643
+ "settlementCurrency": "KRW", //포트원 결제 통화를 따릅니다.
644
+ "isForTest": false,
645
+ "amount": {
646
+ "settlement": 3560, //최종 정산취소금액
647
+ "payment": 4000, //결제 취소 금액
648
+ "order": 4000, //주문 취소 금액
649
+ "platformFee": 400, //중개수수료 10%
650
+ "platformFeeVat": 40, //중개수수료 부가세 부담금
651
+ "additionalFee": 0, //추가수수료
652
+ "additionalFeeVat": 0, //추가수수료 부가세 부담금
653
+ "discount": 0, //할인금액
654
+ "discountShare": 0 //할인금액 중 파트너가 부담하는 금액
655
+ },
656
+ "contract": {
657
+ //계약 정보 생략 ...
658
+ },
659
+ "payment": {
660
+ "id": "payment_1",
661
+ "orderName": "string",
662
+ "currency": "KRW",
663
+ "method": {
664
+ "card": {}
665
+ },
666
+ "paidAt": "2023-08-11T08:21:01.241Z"
667
+ }
668
+ },
669
+ "settlementStartDate": "2023-08-12", //기본값으로 결제 취소 시점을 따릅니다.
670
+ "orderLines": [],
671
+ "additionalFees": [],
672
+ "discounts": [],
673
+ "cancellation": {
674
+ // 결제 취소 정보
675
+ "id": "cancellation_1",
676
+ "cancelledAt": "2023-08-12T11:57:15.292Z"
677
+ }
678
+ }
679
+ ```
680
+
681
+ </div>
682
+
683
+ </div>
684
+
685
+ ## 주문 : 정산 파트너가 1:N일 때
686
+
687
+ 정산 API는 현재 1명의 파트너에 대해 1개의 정산건만 지원하고 있습니다.
688
+
689
+ 따라서 단일 주문에 여러 파트너가 정산을 해야한다면 파트너의 주문금액 기준으로 정산건을 분리하여 별도의
690
+ 정산건을 생성하셔야 합니다.
691
+
692
+ 이는 orderLines를 통한 정산API에도 동일하게 적용됩니다.
693
+
694
+ (추후 상품관리 기능을 통해 각 상품별 정산 파트너를 지정할 수 있도록 개선할 예정입니다.)
695
+
696
+ ### 사전 조건
697
+
698
+ - 전체 주문금액 : 10,000원
699
+ - 결제금액 10,000원
700
+ - 판매 파트너 A, B
701
+ - 파트너 A 할당 주문금액 5,000원
702
+ - 파트너 B 할당 주문금액 5,000원
703
+
704
+ ### 샘플 코드
705
+
706
+ #### Request
707
+
708
+ <div class="tabs-container">
709
+
710
+ <div class="tabs-content" data-title="Python">
711
+
712
+ ```py
713
+ # ... 결제 요청 및 결제 완료 로직 생략. 포트원 결제일경우 https://developers.portone.io/opi/ko/authpay/guide?v=v2 를 참고하세요
714
+
715
+ # 주문건에 대해서 주문금액 기준으로 직접 파트너별로 분리하여 정산건을 생성합니다.
716
+
717
+ orderTransferData_A ={
718
+ "partnerId": "partner_A", # 파트너 A 파트너 아이디 등록 가정
719
+ "paymentId": "payment_3", # 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
720
+ "orderDetail": {
721
+ "orderAmount": 5000,
722
+ },
723
+ "settlementStartDate": None, #결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
724
+ "isForTest": False # 테스트 정산 여부
725
+ }
726
+
727
+ headers = {
728
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
729
+ 'Content-Type': 'application/json'
730
+ }
731
+
732
+ orderTransferResponse_A =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransferData_A)
733
+
734
+ orderTransferData_B ={
735
+ "partnerId": "partner_B", # 파트너 B 파트너 아이디 등록 가정
736
+ "paymentId": "payment_3", # 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
737
+ "orderDetail": {
738
+ "orderAmount": 5000,
739
+ },
740
+ "settlementStartDate": None, #결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
741
+ "isForTest": False # 테스트 정산 여부
742
+ }
743
+
744
+ orderTransferResponse_B =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransferData_B)
745
+ ```
746
+
747
+ </div>
748
+
749
+ <div class="tabs-content" data-title="Node">
750
+
751
+ ```js
752
+ const axios = require("axios");
753
+ // ... 결제 요청 및 결제 완료 로직 생략. 포트원 결제일경우 https://developers.portone.io/opi/ko/authpay/guide?v=v2 를 참고하세요
754
+ // 주문건에 대해서 주문금액 기준으로 직접 파트너별로 분리하여 정산건을 생성합니다.
755
+
756
+ const orderTransferData_A = {
757
+ partnerId: "partner_A", // 파트너 A 파트너 아이디 등록 가정
758
+ paymentId: "payment_3", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
759
+ orderDetail: {
760
+ orderAmount: 5000,
761
+ },
762
+ settlementStartDate: null, //결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
763
+ isForTest: false, // 테스트 정산 여부
764
+ };
765
+
766
+ const orderTransferData_B = {
767
+ partnerId: "partner_B", // 파트너 B 파트너 아이디 등록 가정
768
+ paymentId: "payment_3", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
769
+ orderDetail: {
770
+ orderAmount: 5000,
771
+ },
772
+ settlementStartDate: null, //결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
773
+ isForTest: false, // 테스트 정산 여부
774
+ };
775
+
776
+ const headers = {
777
+ "Content-Type": "application/json",
778
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
779
+ };
780
+
781
+ async function sendOrderTransfer(data) {
782
+ try {
783
+ const response = await axios.post(
784
+ "https://api.portone.io/platform/transfer/order",
785
+ data,
786
+ {
787
+ headers: headers,
788
+ },
789
+ );
790
+ return response.data;
791
+ } catch (error) {
792
+ console.error("Error sending order transfer:", error);
793
+ }
794
+ }
795
+
796
+ (async () => {
797
+ const orderTransferResponse_A = await sendOrderTransfer(orderTransferData_A);
798
+ console.log(orderTransferResponse_A);
799
+
800
+ const orderTransferResponse_B = await sendOrderTransfer(orderTransferData_B);
801
+ console.log(orderTransferResponse_B);
802
+ })();
803
+ ```
804
+
805
+ </div>
806
+
807
+ </div>
808
+
809
+ ## 주문 정산 할인 반영
810
+
811
+ 할인 정책 생성은 쿠폰 또는 포인트와 같은 할인 유형에 대해서 분담율을 설정하신 후 생성 하실 수 있습니다.
812
+
813
+ 할인 정책 생성은 콘솔이나 api를 통해서 하실 수 있습니다. 생성 후 `discounts` 파라미터에 `sharePolicyId`
814
+ 와 `amount` (할인금액)을 전달하시면 됩니다.
815
+
816
+ ### 사전 조건
817
+
818
+ - 주문금액 : 10,000원
819
+ - 할인금액 :2,000원
820
+ - 결제금액 : 8,000원
821
+ - 판매 파트너 : A
822
+ - 정산시작일 (결제완료 시점): 2023-08-11
823
+ - 할인 정책: 파트너 분담율 50%
824
+
825
+ ### 샘플코드
826
+
827
+ #### Request
828
+
829
+ <div class="tabs-container">
830
+
831
+ <div class="tabs-content" data-title="Python">
832
+
833
+ ```py
834
+ orderTransfer_payload = {
835
+ "partnerId": "partnerA", # 파트너 A 파트너 아이디 등록 가정
836
+ "paymentId": "payment_4", # 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
837
+ "orderDetail": {
838
+ "orderAmount": 10000, # 주문금액
839
+ },
840
+ "settlementStartDate": None, # 결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
841
+ "isForTest": false, # 테스트 정산 여부
842
+ "discounts": [ # 주문에 적용될 할인 정책. 리스트로써 할인 유형별 여러개를 전달하실 수 있습니다.
843
+ {
844
+ "sharePolicyId": "discount_2", # 할인 정책 아이디
845
+ "amount": 2000 # 할인 금액
846
+ }
847
+ ]
848
+ }
849
+
850
+ headers = {
851
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
852
+ 'Content-Type': 'application/json'
853
+ }
854
+
855
+ orderTransfer_A = request.post ('https://api.portone.io/platform/transfers/order', headers=headers, json=orderTransfer_payload)
856
+ ```
857
+
858
+ </div>
859
+
860
+ <div class="tabs-content" data-title="Node">
861
+
862
+ ```js
863
+ const axios = require("axios");
864
+ const orderTransfer_payload = {
865
+ partnerId: "partnerA", // 파트너 A 파트너 아이디 등록 가정
866
+ paymentId: "payment_4", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
867
+ orderDetail: {
868
+ orderAmount: 10000, // 주문금액
869
+ },
870
+ settlementStartDate: null, //결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
871
+ isForTest: false, // 테스트 정산 여부
872
+ discounts: [
873
+ // 주문에 적용될 할인 정책. 할인 유형별 여러개를 전달하실 수 있습니다.
874
+ {
875
+ sharePolicyId: "discount_2", // 할인 정책 아이디
876
+ amount: 2000, // 할인 금액
877
+ },
878
+ ],
879
+ };
880
+
881
+ const headers = {
882
+ "Content-Type": "application/json",
883
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
884
+ };
885
+
886
+ async function post_platform_api(endpoint, payload) {
887
+ try {
888
+ const response = await axios.post(
889
+ `https://api.portone.io/${endpoint}`,
890
+ payload,
891
+ {
892
+ headers: headers,
893
+ },
894
+ );
895
+ return response.data;
896
+ } catch (error) {
897
+ console.error("Error posting to platform API:", error);
898
+ }
899
+ }
900
+
901
+ (async () => {
902
+ const orderTransfer_A = await post_platform_api(
903
+ "platform/transfers/order",
904
+ orderTransfer_payload,
905
+ );
906
+ console.log(orderTransfer_A);
907
+ })();
908
+ ```
909
+
910
+ </div>
911
+
912
+ </div>
913
+
914
+ #### Response (snippet)
915
+
916
+ <div class="tabs-container">
917
+
918
+ <div class="tabs-content" data-title="snippet">
919
+
920
+ ```json
921
+ {
922
+ "transfer": {
923
+ "type": "ORDER",
924
+ "id": "01H7Q7WKY98R1TKM8XBHSQ1J6F",
925
+ "graphqlId": "NjowMUg3UTdXS1k5OFIxVEtNOFhCSFNRMUo2Rg==",
926
+ "partner": {
927
+ // 파트너 정보 생략
928
+ },
929
+ "status": "IN_PROCESS",
930
+ "settlementDate": "2023-08-31",
931
+ "settlementCurrency": "KRW",
932
+ "isForTest": false,
933
+ "amount": {
934
+ //주문건 정산 정보
935
+ "settlement": 7900, // 정산금액
936
+ "payment": 8000,
937
+ "order": 10000,
938
+ "platformFee": 1000,
939
+ "platformFeeVat": 100,
940
+ "additionalFee": 0,
941
+ "additionalFeeVat": 0,
942
+ "discount": 2000, // 적용된 할인금액
943
+ "discountShare": 1000 //파트너가 부담할 할인금액 (할인 정책의 파트너 분담율이 50% 이기 때문에)
944
+ },
945
+ "contract": {
946
+ // 계약 정보 생략
947
+ },
948
+ "payment": {
949
+ "id": "payment_4",
950
+ "orderName": "string",
951
+ "currency": "KRW",
952
+ "method": { "card": {} },
953
+ "paidAt": "2023-08-11T08:21:01.241Z"
954
+ },
955
+ "settlementStartDate": "2023-08-11",
956
+ "orderLines": [],
957
+ "additionalFees": [],
958
+ "discounts": [
959
+ //적용된 할인 정보
960
+ {
961
+ "sharePolicy": {
962
+ //적용된 할인 정책
963
+ "id": "discount_2",
964
+ "graphqlId": "MjpkaXNjb3VudF8y",
965
+ "partnerShareRate": 50000,
966
+ "memo": "테스트 할인",
967
+ "isHidden": false,
968
+ "appliedAt": "2023-08-13T10:41:02.385833Z"
969
+ },
970
+ "amount": 2000,
971
+ "shareAmount": 1000
972
+ }
973
+ ]
974
+ }
975
+ }
976
+ ```
977
+
978
+ </div>
979
+
980
+ </div>
981
+
982
+ ## 주문 정산 상품 할인 반영
983
+
984
+ 주문 전체가 아닌 특정 상품에대해서 할인 정책을 적용하고 싶으시면 orderLines 의 각 상품 항목의 discounts 파라미터에 전달하시면 됩니다.
985
+
986
+ ### 사전 조건
987
+
988
+ - A 상품 금액 : 10,000원
989
+ - A 상품 할인금액 : 2000원
990
+ - 구매 갯수 : 2개
991
+ - 결제금액 : 16,000원
992
+ - 판매 파트너 : A
993
+ - 정산시작일 (결제완료 시점): 2023-08-11
994
+ - 할인 정책: 파트너 분담율 50%
995
+
996
+ ### 샘플코드
997
+
998
+ #### Request
999
+
1000
+ <div class="tabs-container">
1001
+
1002
+ <div class="tabs-content" data-title="Python">
1003
+
1004
+ ```py
1005
+ orderTransfer_payload = {
1006
+ "partnerId": "partnerA", # 파트너 A 파트너 아이디 등록 가정
1007
+ "paymentId": "payment_4", # 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1008
+ "orderDetail": {
1009
+ "orderAmount": 20000, # 주문금액
1010
+ "orderLines": [
1011
+ {
1012
+ "product": {
1013
+ "id": "product_A",
1014
+ "name": "A상품",
1015
+ "amount": 10000
1016
+ },
1017
+ "quantity": 2,
1018
+ "discounts": [
1019
+ {
1020
+ "sharePolicyId": "discount_2", # 할인 정책 아이디
1021
+ "amount": 2000 # 할인 금액
1022
+ }
1023
+ ],
1024
+ }
1025
+ ]
1026
+ },
1027
+ "settlementStartDate": None, # 결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1028
+ "isForTest": false, # 테스트 정산 여부
1029
+ }
1030
+
1031
+ headers = {
1032
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
1033
+ 'Content-Type': 'application/json'
1034
+ }
1035
+ orderTransfer_A = requests.post ('https://api.portone.io/platform/transfers/order', headers=headers, json=orderTransfer_payload)
1036
+ ```
1037
+
1038
+ </div>
1039
+
1040
+ <div class="tabs-content" data-title="Node">
1041
+
1042
+ ```js
1043
+ const axios = require("axios");
1044
+ const orderTransfer_payload = {
1045
+ partnerId: "partnerA", // 파트너 A 파트너 아이디 등록 가정
1046
+ paymentId: "payment_4", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1047
+ orderDetail: {
1048
+ orderAmount: 10000, // 주문금액
1049
+ orderLines: [
1050
+ {
1051
+ product: {
1052
+ id: "product_A",
1053
+ name: "A상품",
1054
+ amount: 10000,
1055
+ },
1056
+ quantity: 2,
1057
+ discounts: [
1058
+ {
1059
+ sharePolicyId: "discount_2", // 할인 정책 아이디
1060
+ amount: 2000, // 할인 금액
1061
+ },
1062
+ ],
1063
+ },
1064
+ ],
1065
+ },
1066
+ settlementStartDate: null, //결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1067
+ isForTest: false, // 테스트 정산 여부
1068
+ };
1069
+
1070
+ const headers = {
1071
+ "Content-Type": "application/json",
1072
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
1073
+ };
1074
+
1075
+ async function post_platform_api(endpoint, payload) {
1076
+ try {
1077
+ const response = await axios.post(
1078
+ `https://api.portone.io/${endpoint}`,
1079
+ payload,
1080
+ {
1081
+ headers: headers,
1082
+ },
1083
+ );
1084
+ return response.data;
1085
+ } catch (error) {
1086
+ console.error("Error posting to platform API:", error);
1087
+ }
1088
+ }
1089
+
1090
+ (async () => {
1091
+ const orderTransfer_A = await post_platform_api(
1092
+ "platform/transfers/order",
1093
+ orderTransfer_payload,
1094
+ );
1095
+ console.log(orderTransfer_A);
1096
+ })();
1097
+ ```
1098
+
1099
+ </div>
1100
+
1101
+ </div>
1102
+
1103
+ ## 주문 정산 추가수수료 반영
1104
+
1105
+ 추가수수료 정책 생성 은 로켓배송, 마케팅채널 수수료 등 특정 주문건에 적용되는 수수료 입니다.
1106
+ 관리자 콘솔이나 API를 통해서 적용하실 수 있습니다.
1107
+ `additionalFees` 파라미터에 `policyId` 를 전달하시면 됩니다.
1108
+
1109
+ ### 사전 조건
1110
+
1111
+ - 주문금액 : 10,000원
1112
+ - 추가수수료(로켓배송) : 2,000원
1113
+ - 결제금액 : 8,000원
1114
+ - 판매 파트너 : A
1115
+ - 정산시작일 (결제완료 시점): 2023-08-11
1116
+ - 추가수수료 정책: 수수료율 5%, 부가세 파트너 부담
1117
+
1118
+ <div class="tabs-container">
1119
+
1120
+ <div class="tabs-content" data-title="Python">
1121
+
1122
+ ```py
1123
+ orderTransfer_payload = {
1124
+ "partnerId": "partnerA", # 파트너 A 파트너 아이디 등록 가정
1125
+ "paymentId": "payment_5", # 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1126
+ "orderDetail": {
1127
+ "orderAmount": 10000, # 주문금액
1128
+ },
1129
+ "settlementStartDate": None, #결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1130
+ "isForTest": false, # 테스트 정산 여부
1131
+ "additionalFees": [ # 주문에 추가수수료 정책들. 리스트로써 여러개를 전달하실 수 있습니다.
1132
+ {
1133
+ "policyId": "addtional_fee_3", # 추가수수료 정책 아이디
1134
+ }
1135
+ ]
1136
+ }
1137
+
1138
+ headers = {
1139
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
1140
+ 'Content-Type': 'application/json'
1141
+ }
1142
+
1143
+ orderTransfer_A =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransfer_payload)
1144
+ ```
1145
+
1146
+ </div>
1147
+
1148
+ <div class="tabs-content" data-title="Node">
1149
+
1150
+ ```js
1151
+ const axios = require("axios");
1152
+
1153
+ async function postPlatformApi(endpoint, payload) {
1154
+ const baseURL = "https://api.portone.io/";
1155
+ const headers = {
1156
+ "Content-Type": "application/json",
1157
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
1158
+ };
1159
+
1160
+ try {
1161
+ const response = await axios.post(baseURL + endpoint, payload, {
1162
+ headers: headers,
1163
+ });
1164
+ return response.data;
1165
+ } catch (error) {
1166
+ console.error("Error posting data:", error);
1167
+ }
1168
+ }
1169
+
1170
+ const orderTransferPayload = {
1171
+ partnerId: "partnerA", // 파트너 A 파트너 아이디 등록 가정
1172
+ paymentId: "payment_5", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1173
+ orderDetail: {
1174
+ orderAmount: 10000, // 주문금액
1175
+ },
1176
+ settlementStartDate: null, //결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1177
+ isForTest: false, // 테스트 정산 여부
1178
+ additionalFees: [
1179
+ // 주문에 추가수수료 정책들. 리스트로써 여러개를 전달하실 수 있습니다.
1180
+ {
1181
+ policyId: "addtional_fee_3", // 추가수수료 정책 아이디
1182
+ },
1183
+ ],
1184
+ };
1185
+
1186
+ // Using the function
1187
+ (async () => {
1188
+ const orderTransferA = await postPlatformApi(
1189
+ "platform/transfers/order",
1190
+ orderTransferPayload,
1191
+ );
1192
+ console.log(orderTransferA);
1193
+ })();
1194
+ ```
1195
+
1196
+ </div>
1197
+
1198
+ </div>
1199
+
1200
+ #### Response (snippet)
1201
+
1202
+ <div class="tabs-container">
1203
+
1204
+ <div class="tabs-content" data-title="snippet">
1205
+
1206
+ ```json
1207
+ {
1208
+ "transfer": {
1209
+ "type": "ORDER",
1210
+ "id": "01H7QEET738MFFY40NP4V7WW4V",
1211
+ "graphqlId": "NjowMUg3UUVFVDczOE1GRlk0ME5QNFY3V1c0Vg==",
1212
+ "partner": {
1213
+ //파트너 생략
1214
+ },
1215
+ "status": "IN_PROCESS",
1216
+ "settlementDate": "2023-08-31",
1217
+ "settlementCurrency": "KRW",
1218
+ "isForTest": false,
1219
+ "amount": {
1220
+ //주문건 정산 정보
1221
+ "settlement": 8350,
1222
+ "payment": 10000,
1223
+ "order": 10000,
1224
+ "platformFee": 1000,
1225
+ "platformFeeVat": 100,
1226
+ "additionalFee": 500, //추가수수료
1227
+ "additionalFeeVat": 50, //추가수수료 부가세 부담금
1228
+ "discount": 0,
1229
+ "discountShare": 0
1230
+ },
1231
+ "contract": {
1232
+ // 계약 생약
1233
+ },
1234
+ "payment": {
1235
+ "id": "payment_5",
1236
+ "orderName": "string",
1237
+ "currency": "KRW",
1238
+ "method": { "card": {} },
1239
+ "paidAt": "2023-08-11T08:21:01.241Z"
1240
+ },
1241
+ "settlementStartDate": "2023-08-11",
1242
+ "orderLines": [],
1243
+ "additionalFees": [
1244
+ // 적용된 추가수수료 정책 정보
1245
+ {
1246
+ "policy": {
1247
+ "id": "addtional_fee_3",
1248
+ "graphqlId": "MzphZGR0aW9uYWxfZmVlXzM=",
1249
+ "fee": {
1250
+ "type": "FIXED_RATE",
1251
+ "rate": 5000
1252
+ },
1253
+ "memo": "테스트 추가수수료",
1254
+ "vatPayer": "PARTNER",
1255
+ "isHidden": false,
1256
+ "appliedAt": "2023-08-13T12:31:50.822913Z"
1257
+ },
1258
+ "amount": 500,
1259
+ "vat": 50
1260
+ }
1261
+ ],
1262
+ "discounts": []
1263
+ }
1264
+ }
1265
+ ```
1266
+
1267
+ </div>
1268
+
1269
+ </div>
1270
+
1271
+ ## 주문 정산 상품별 추가수수료 반영
1272
+
1273
+ 주문 전체가 아닌 특정 상품에대해서 할인 정책영 적용하고 싶으시면 `orderLines` 의 각 상품 항목의
1274
+ `additionalFees` 파라미터에 전달하시면 됩니다.
1275
+
1276
+ ### 사전 조건
1277
+
1278
+ - A 상품 금액 : 10,000원
1279
+ - A 상품 갯수 : 2개
1280
+ - A 추가수수료(로켓배송) : 2,000원
1281
+ - 결제금액 : 16,000원
1282
+ - 판매 파트너 : A
1283
+ - 정산시작일 (결제완료 시점): 2023-08-11
1284
+ - 추가수수료 정책: 수수료율 5%, 부가세 파트너 부담
1285
+
1286
+ <div class="tabs-container">
1287
+
1288
+ <div class="tabs-content" data-title="Python">
1289
+
1290
+ ```py
1291
+ orderTransfer_payload = {
1292
+ "partnerId": "partnerA", # 파트너 A 파트너 아이디 등록 가정
1293
+ "paymentId": "payment_5", # 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1294
+ "orderDetail": {
1295
+ "orderAmount": 20000, # 주문금액
1296
+ "orderLines": [{
1297
+ "product": {
1298
+ "id": "product_A",
1299
+ "name": "A상품",
1300
+ "amount": 10000
1301
+ },
1302
+ "quantity": 2,
1303
+ "additionalFees": [{
1304
+ "policyId": "fee_1" # 상품별 추가수수료 정책
1305
+ }
1306
+ ]
1307
+ }
1308
+ ]
1309
+ },
1310
+ "settlementStartDate": None, #결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1311
+ "isForTest": false, # 테스트 정산 여부
1312
+ }
1313
+
1314
+ headers = {
1315
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
1316
+ 'Content-Type': 'application/json'
1317
+ }
1318
+
1319
+ orderTransfer_A =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransfer_payload)
1320
+ ```
1321
+
1322
+ </div>
1323
+
1324
+ <div class="tabs-content" data-title="Node">
1325
+
1326
+ ```js
1327
+ const axios = require("axios");
1328
+
1329
+ async function postPlatformApi(endpoint, payload) {
1330
+ const baseURL = "https://api.portone.io/";
1331
+ const headers = {
1332
+ "Content-Type": "application/json",
1333
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
1334
+ };
1335
+
1336
+ try {
1337
+ const response = await axios.post(baseURL + endpoint, payload, {
1338
+ headers: headers,
1339
+ });
1340
+ return response.data;
1341
+ } catch (error) {
1342
+ console.error("Error posting data:", error);
1343
+ }
1344
+ }
1345
+
1346
+ const orderTransferPayload = {
1347
+ partnerId: "partnerA", // 파트너 A 파트너 아이디 등록 가정
1348
+ paymentId: "payment_5", // 포트원 결제시 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1349
+ orderDetail: {
1350
+ orderAmount: 10000, // 주문금액
1351
+ orderLines: [
1352
+ {
1353
+ product: {
1354
+ id: "product_A",
1355
+ name: "A상품",
1356
+ amount: 10000,
1357
+ },
1358
+ quantity: 2,
1359
+ additionalFees: [
1360
+ {
1361
+ policyId: "fee_1", // 상품별 추가수수료 정책
1362
+ },
1363
+ ],
1364
+ },
1365
+ ],
1366
+ },
1367
+ settlementStartDate: null, //결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1368
+ isForTest: false, // 테스트 정산 여부
1369
+ };
1370
+
1371
+ // Using the function
1372
+ (async () => {
1373
+ const orderTransferA = await postPlatformApi(
1374
+ "platform/transfers/order",
1375
+ orderTransferPayload,
1376
+ );
1377
+ console.log(orderTransferA);
1378
+ })();
1379
+ ```
1380
+
1381
+ </div>
1382
+
1383
+ </div>
1384
+
1385
+ ## 포트원 결제가 아닌 주문 정산
1386
+
1387
+ `externalPaymentDetail` 에 결제정보를 전달주시면 됩니다. `paymentId` 는 고객사에서 사용한 고유
1388
+ 주문번호를 전달해주시면 됩니다.
1389
+
1390
+ ### 예시 코드
1391
+
1392
+ #### Request
1393
+
1394
+ <div class="tabs-container">
1395
+
1396
+ <div class="tabs-content" data-title="Python">
1397
+
1398
+ ```py
1399
+ orderTransfer_payload = {
1400
+ "partnerId": "partnerA", # 파트너 A 파트너 아이디 등록 가정
1401
+ "paymentId": "payment_5", # 고객사 주문번호
1402
+ "orderDetail": {
1403
+ "orderAmount": 10000, # 주문금액
1404
+ },
1405
+ "settlementStartDate": None, #결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1406
+ "isForTest": false, # 테스트 정산 여부
1407
+ "externalPaymentDetail": { # 포트원 결제가 아닌 주문 정산시 전달하시면 됩니다.
1408
+ "currency": "KRW", # 결제 통화 정보
1409
+ "orderName": "테스트 주문",
1410
+ "paidAt": "2023-08-11T08:21:01.241Z", # 결제 완료 시점. settlementStartDate을 전달하지 않으실경우 꼭 전달하셔야 됩니다.
1411
+ "method": {
1412
+ "card": {},
1413
+ }
1414
+ },
1415
+ "additionalFees": [ # 주문에 추가수수료 정책들. 여러개를 전달하실 수 있습니다.
1416
+ {
1417
+ "policyId": "addtional_fee_3", # 추가수수료 정책 아이디
1418
+ }
1419
+ ]
1420
+ }
1421
+
1422
+ orderTransfer_A = request.post ('https://api.portone.io/platform/transfers/order', headers=headers, json=orderTransfer_payload)
1423
+ ```
1424
+
1425
+ </div>
1426
+
1427
+ <div class="tabs-content" data-title="Node">
1428
+
1429
+ ```js
1430
+ const axios = require("axios");
1431
+ const orderTransferPayload = {
1432
+ partnerId: "partnerA", // 파트너 A 파트너 아이디 등록 가정
1433
+ paymentId: "payment_5", // 고객사 주문번호
1434
+ orderDetail: {
1435
+ orderAmount: 10000, // 주문금액
1436
+ },
1437
+ // 결제완료 시점으로 등록을 원하실 경우 전달하지 않으셔도 됩니다.
1438
+ settlementStartDate: null,
1439
+ isForTest: false, // 테스트 정산 여부
1440
+ externalPaymentDetail: {
1441
+ // 포트원 아닌 결제건 정보
1442
+ currency: "KRW",
1443
+ orderName: "테스트 주문",
1444
+ paidAt: "2023-08-11T08:21:01.241Z",
1445
+ method: {
1446
+ card: {},
1447
+ },
1448
+ },
1449
+ additionalFees: [
1450
+ // 주문에 추가수수료 정책들
1451
+ {
1452
+ policyId: "addtional_fee_3", // 추가수수료 정책 아이디
1453
+ },
1454
+ ],
1455
+ };
1456
+
1457
+ const headers = {
1458
+ "Content-Type": "application/json",
1459
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
1460
+ };
1461
+
1462
+ async function postPlatformApi(endpoint, data) {
1463
+ try {
1464
+ const response = await axios.post(endpoint, data, {
1465
+ headers: headers,
1466
+ });
1467
+ return response.data;
1468
+ } catch (error) {
1469
+ console.error("Error posting to API:", error);
1470
+ return null;
1471
+ }
1472
+ }
1473
+
1474
+ const orderTransferA = postPlatformApi(
1475
+ "platform/transfers/order",
1476
+ orderTransferPayload,
1477
+ );
1478
+ ```
1479
+
1480
+ </div>
1481
+
1482
+ </div>
1483
+
1484
+ #### Response (snippet)
1485
+
1486
+ <div class="tabs-container">
1487
+
1488
+ <div class="tabs-content" data-title="snippet">
1489
+
1490
+ ```json
1491
+ {
1492
+ "transfer": {
1493
+ "type": "ORDER",
1494
+ "id": "01H7QEET738MFFY40NP4V7WW4V",
1495
+ "graphqlId": "NjowMUg3UUVFVDczOE1GRlk0ME5QNFY3V1c0Vg==",
1496
+ "partner": {
1497
+ //파트너 정보 생략
1498
+ },
1499
+ "status": "IN_PROCESS",
1500
+ "settlementDate": "2023-08-31",
1501
+ "settlementCurrency": "KRW",
1502
+ "isForTest": false,
1503
+ "amount": {
1504
+ "settlement": 8350,
1505
+ "payment": 10000,
1506
+ "order": 10000,
1507
+ "platformFee": 1000,
1508
+ "platformFeeVat": 100,
1509
+ "additionalFee": 500,
1510
+ "additionalFeeVat": 50,
1511
+ "discount": 0,
1512
+ "discountShare": 0
1513
+ },
1514
+ "contract": {
1515
+ //계약 정보 생략
1516
+ },
1517
+ "payment": {
1518
+ "type": "EXTERNAL", //포트원 결제가 아닐경우 결제일 경우 EXTERNAL로 표기됩니다.
1519
+ "id": "payment_5",
1520
+ "orderName": "테스트 주문",
1521
+ "currency": "KRW",
1522
+ "method": {
1523
+ "type": "CARD"
1524
+ },
1525
+ "paidAt": "2023-08-11T08:21:01.241Z"
1526
+ },
1527
+ "settlementStartDate": "2023-08-11",
1528
+ "orderLines": [],
1529
+ "additionalFees": [
1530
+ // 추가수수료 정보 생략
1531
+ ],
1532
+ "discounts": []
1533
+ }
1534
+ }
1535
+ ```
1536
+
1537
+ </div>
1538
+
1539
+ </div>
1540
+
1541
+ ## 정산 시작일을 지정해서 보내는 경우
1542
+
1543
+ 정산고려를 배달완료, 수강오픈, 이용완료 등의 시점부터 하고 싶으시면 `settlementStartDate` 파라미터에
1544
+ 해당시점을 `YYYY-MM-DD`형식으로 전달하시면 됩니다.
1545
+
1546
+ 해당 시점이 정해졌을 때 정산 api를 호출하시면 됩니다.
1547
+
1548
+ ### 예시 코드
1549
+
1550
+ #### Request
1551
+
1552
+ <div class="tabs-container">
1553
+
1554
+ <div class="tabs-content" data-title="Python">
1555
+
1556
+ ```py
1557
+ orderTransfer_payload = {
1558
+ "partnerId": "partnerA", # 파트너 A 파트너 아이디 등록 가정
1559
+ "paymentId": "payment_6", # 포트원 결제시 가맹점 주문번호 (merchant_uid)
1560
+ "orderDetail": {
1561
+ "orderAmount": 10000, # 주문금액
1562
+ },
1563
+ "settlementStartDate": '2023-09-01', # 배송완료 시점 (예시)
1564
+ "isForTest": false, # 테스트 정산 여부
1565
+ }
1566
+
1567
+ headers = {
1568
+ 'Authorization': f'PortOne ${PORTONE_API_SECRET}',
1569
+ 'Content-Type': 'application/json'
1570
+ }
1571
+
1572
+ orderTransferResponse =requests.post('https://api.portone.io/platform/transfer/order', headers=headers, json=orderTransfer_payload)
1573
+ ```
1574
+
1575
+ </div>
1576
+
1577
+ <div class="tabs-content" data-title="Node">
1578
+
1579
+ ```js
1580
+ const axios = require("axios");
1581
+ const orderTransfer_payload = {
1582
+ partnerId: "partnerA", // 파트너 A 파트너 아이디 등록 가정
1583
+ paymentId: "payment_6", // 기존 결제의 고객사 주문번호 (V1 결제 모듈 이용 시 merchant_uid 입력)
1584
+ orderDetail: {
1585
+ orderAmount: 10000, // 주문금액
1586
+ },
1587
+ settlementStartDate: "2023-09-01", // 배송완료 시점 (예시)
1588
+ isForTest: false, // 테스트 정산 여부
1589
+ };
1590
+
1591
+ const headers = {
1592
+ "Content-Type": "application/json",
1593
+ Authorization: `PortOne ${PORTONE_API_SECRET}`,
1594
+ };
1595
+
1596
+ async function sendOrderTransfer(data) {
1597
+ try {
1598
+ const response = await axios.post(
1599
+ "https://api.portone.io/platform/transfer/order",
1600
+ data,
1601
+ {
1602
+ headers: headers,
1603
+ },
1604
+ );
1605
+ return response.data;
1606
+ } catch (error) {
1607
+ console.error("Error sending order transfer:", error);
1608
+ }
1609
+ }
1610
+ ```
1611
+
1612
+ </div>
1613
+
1614
+ </div>
1615
+
1616
+ #### Response (snippet)
1617
+
1618
+ <div class="tabs-container">
1619
+
1620
+ <div class="tabs-content" data-title="snippet">
1621
+
1622
+ ```json
1623
+ {
1624
+ "transfer": {
1625
+ "type": "ORDER",
1626
+ "id": "01H7QHWNSNHCT9RF9GYKSKXRBZ",
1627
+ "graphqlId": "NjowMUg3UUhXTlNOSENUOVJGOUdZS1NLWFJCWg==",
1628
+ "partner": {
1629
+ //파트너 정보 생략
1630
+ },
1631
+ "status": "SCHEDULED", // 정산 시작일이 미래이므로 SCHEDULED 상태로 표기됩니다.
1632
+ "settlementDate": "2023-09-27", //설날을 고려하여 그 전 영업일이 됐습니다.
1633
+ "settlementCurrency": "KRW",
1634
+ "isForTest": false,
1635
+ "amount": {
1636
+ "settlement": 8900,
1637
+ "payment": 10000,
1638
+ "order": 10000,
1639
+ "platformFee": 1000,
1640
+ "platformFeeVat": 100,
1641
+ "additionalFee": 0,
1642
+ "additionalFeeVat": 0,
1643
+ "discount": 0,
1644
+ "discountShare": 0
1645
+ },
1646
+ "contract": {
1647
+ // 계약 정보 생약
1648
+ },
1649
+ "payment": {
1650
+ "id": "payment_6",
1651
+ "orderName": "string",
1652
+ "currency": "KRW",
1653
+ "method": { "card": {} },
1654
+ "paidAt": "2023-08-11T08:21:01.241Z"
1655
+ },
1656
+ "settlementStartDate": "2023-09-01",
1657
+ "orderLines": [],
1658
+ "additionalFees": [],
1659
+ "discounts": []
1660
+ }
1661
+ }
1662
+ ```
1663
+
1664
+ </div>
1665
+
1666
+ </div>