@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,155 @@
1
+ ---
2
+ title: 스마트 라우팅
3
+ description: 멀티PG 환경을 클릭 한 번으로 쉽게 만들 수 있는 결제 트래픽 분산 자동화 서비스 입니다.
4
+ targetVersions:
5
+ - v1
6
+ - v2
7
+ ---
8
+
9
+ ## 스마트 라우팅이란?
10
+
11
+ (관련 이미지 첨부)
12
+
13
+ 스마트 라우팅은 원클릭 결제 트래픽 자동 분산 서비스로 최초 연동 이후 포트원 관리자콘솔 내에서
14
+ 결제대행사 추가/삭제 및 결제대행사 별 결제 요청 비율을 설정할 수 있습니다.
15
+ 노코드 방식으로 고객사에서 멀티 PG 인프라를 구성하는데 필요한 개발 리소스를 확 줄였습니다.
16
+
17
+ SDK 일반결제 및 API 키인(수기) 결제 요청 시 스마트 라우팅 그룹 아이디를 지정하여 호출하는 경우
18
+ 설정하신 그룹 내 결제대행사 비율에 따라 확률에 기반하여 결제를 요청합니다.
19
+
20
+ API 빌링키 발급 요청 시 스마트 라우팅 그룹 아이디를 지정하여 호출하는 경우 설정하신 그룹 내
21
+ 모든 결제대행사로 빌링키를 발급 요청합니다. 하나의 포트원 빌링키에 발급된 모든 결제대행사의 빌링키가
22
+ 맵핑되며 이를 **슈퍼 빌링키**라고 부릅니다. 슈퍼 빌링키를 이용하여 빌링키 결제 또는 예약 결제 시
23
+ 그룹 내 결제대행사 비율에 따라 확률에 기반하여 그 중 하나의 결제대행사 빌링키로 결제를 요청합니다.
24
+
25
+ ## 사용 가능한 PG사 및 결제수단 <span id="available-pg" />
26
+
27
+ 스마트 라우팅 기능은 아래 PG사에 한하여 제공하고 있습니다.
28
+ (추후 지원 PG사 확대 예정)
29
+
30
+ <!-- VERSION-SPECIFIC: V1 ONLY CONTENT START -->
31
+
32
+ ### 결제창(SDK) 인증결제
33
+
34
+ - **나이스페이먼츠(신모듈)** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
35
+ - **(구) 나이스페이먼츠** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
36
+ - **NHN KCP** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
37
+ - **KG 이니시스** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
38
+ - **토스페이먼츠(신모듈)** : 카드 / 퀵계좌이체 / 가상계좌 / 휴대폰 소액결제
39
+ - **토스페이먼츠(구모듈)** : 카드 / 퀵계좌이체 / 가상계좌 / 휴대폰 소액결제
40
+ - **스마트로(신모듈)** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
41
+ - **스마트로(구모듈)** : 카드 / 실시간 계좌이체 / 가상계좌
42
+ - **다날** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
43
+ - **키움페이** : 카드 / 실시간 계좌이체 / 가상계좌
44
+ - **헥토파이낸셜** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
45
+ - **KG모빌리언스** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
46
+ - **KSNET** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
47
+ - **이지페이(KICC)** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
48
+ - **웰컴페이먼츠** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
49
+ - **엑심베이** : 카드
50
+ - **하이픈** : 실시간 계좌이체
51
+
52
+ ### API 수기(키인)결제
53
+
54
+ - **나이스페이먼츠(신모듈)** : 카드
55
+ - **NHN KCP** : 카드
56
+ - **KG 이니시스** : 카드
57
+ - **토스페이먼츠(신모듈)** : 카드
58
+ - **키움페이** : 카드
59
+ - **KSNET** : 카드
60
+
61
+ ### API 빌링키 발급 및 정기결제
62
+
63
+ - **나이스페이먼츠 (신모듈)** : 카드
64
+ - **(구) 나이스페이먼츠** : 카드
65
+ - **NHN KCP** : 카드
66
+ - **KG이니시스** : 카드
67
+ - **토스페이먼츠(신모듈)** : 카드
68
+ - **키움페이** : 카드
69
+ - **헥토파이낸셜** : 카드
70
+ - **KSNET** : 카드
71
+ - **웰컴페이먼츠** : 카드
72
+
73
+ <!-- VERSION-SPECIFIC: V1 ONLY CONTENT END -->
74
+
75
+ <!-- VERSION-SPECIFIC: V2 ONLY CONTENT START -->
76
+
77
+ ### 결제창(SDK) 인증결제
78
+
79
+ - **나이스페이먼츠** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
80
+ - **KG이니시스** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
81
+ - **토스페이먼츠** : 카드 / 퀵계좌이체 / 가상계좌 / 휴대폰 소액결제
82
+ - **한국결제네트웍스(KPN)** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
83
+ - **KSNET** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
84
+ - **스마트로** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
85
+ - **NHN KCP** : 카드 / 실시간 계좌이체 / 가상계좌 / 휴대폰 소액결제
86
+
87
+ ### API 수기(키인)결제
88
+
89
+ - **나이스페이먼츠** : 카드 / 가상계좌
90
+ - **KG이니시스** : 카드 / 가상계좌
91
+ - **토스페이먼츠** : 카드 / 가상계좌
92
+ - **한국결제네트웍스(KPN)** : 카드 / 가상계좌
93
+ - **KSNET** : 카드 / 가상계좌
94
+ - **스마트로** : 가상계좌
95
+ - **NHN KCP** : 카드 / 가상계좌
96
+
97
+ ### API 빌링키 발급 및 정기결제
98
+
99
+ - **나이스페이먼츠** : 카드
100
+ - **KG이니시스** : 카드
101
+ - **토스페이먼츠** : 카드
102
+ - **한국결제네트웍스(KPN)** : 카드
103
+ - **KSNET** : 카드
104
+ - **스마트로** : 카드
105
+ - **NHN KCP** : 카드
106
+
107
+ <!-- VERSION-SPECIFIC: V2 ONLY CONTENT END -->
108
+
109
+ ## 스마트 라우팅 연동 안내
110
+
111
+ (관련 이미지 첨부)
112
+
113
+ 스마트 라우팅을 사용하기 위해서는 포트원 관리자콘솔 내 \[연동 관리] - \[스마트 라우팅]에서 그룹 설정이 필요합니다.
114
+ 자세한 내용은 [스마트 라우팅 그룹 설정 가이드](https://developers.portone.io/opi/ko/extra/smart-routing/console-guide)에서 확인할 수 있습니다.
115
+
116
+ 그룹 설정 후 결제 요청 시 `channelGroupId` 파라미터를 지정하여 호출해야 합니다.
117
+ 자세한 내용은 [스마트 라우팅 연동하기](https://developers.portone.io/opi/ko/extra/smart-routing/integration)에서 확인할 수 있습니다.
118
+
119
+ ## 스마트 라우팅 FAQ
120
+
121
+ <details>
122
+
123
+ <summary> 스마트 라우팅 그룹 이용 시 지원되는 모든 결제수단을 사용할 수 있는건가요? </summary>
124
+
125
+ 스마트 라우팅 그룹을 지정하여 결제 호출 시 결제 수단에 대한 제약은 없습니다.
126
+ 다만, 스마트 라우팅 이용 시 동일한 그룹 내에 설정된 채널은 가급적 동일한 결제수단으로 계약이 완료되어 있어야 합니다.
127
+
128
+ ex) 카드 및 가상계좌 이용을 원하시는 경우 스마트 라우팅 그룹에서 사용할 모든 PG사와
129
+ 카드 및 가상계좌 사용 계약이 필요합니다.
130
+
131
+ 그렇지 않는 경우 결제 호출 시 결제 수단에 따라 에러가 리턴될 수 있으며, 결제창 호출이 불가능할 수 있습니다.
132
+
133
+ </details>
134
+
135
+ <details>
136
+
137
+ <summary> 간편결제도 스마트 라우팅 기능을 사용할 수 있나요? </summary>
138
+
139
+ **간편결제 허브형을 사용하시는 경우**, 결제대행사 별 계약에 따라 결제창에 표시되는 간편결제가 상이할 수 있습니다.
140
+
141
+ **간편결제 다이렉트 호출을 사용하시는 경우**, 결제대행사 별 계약에 따라 결제 호출 시 에러가 리턴되며 결제창이
142
+ 호출되지 않을 수 있습니다. 가급적 결제대행사 별 동일한 간편결제 수단을 모두 계약하신 후 사용하시길 권장드립니다.
143
+
144
+ 단, **간편결제 직연동**의 경우 스마트 라우팅 기능을 제공하지 않습니다.
145
+
146
+ </details>
147
+
148
+ <details>
149
+
150
+ <summary> SDK(결제창) 빌링키 발급할 때도 사용하고 싶어요!</summary>
151
+
152
+ SDK(결제창) 빌링키 발급의 경우 해당 기능을 지원하지 않습니다. 빌링키 발급 시 스마트 라우팅 기능을 사용하고
153
+ 싶으신 경우 API 방식으로 빌링키를 발급하여 사용하시길 권장드립니다.
154
+
155
+ </details>
@@ -0,0 +1,324 @@
1
+ ---
2
+ title: 결제취소(환불) 연동하기
3
+ description: 포트원 결제취소 API를 이용한 결제취소 방법을 안내합니다.
4
+ targetVersions:
5
+ - v1
6
+ versionVariants:
7
+ v2: /opi/ko/integration/cancel/v2/readme
8
+ ---
9
+
10
+ ## **STEP 01.** 취소 요청하기
11
+
12
+ 필요한 취소 정보를 서버로 전달하여 취소 요청을 진행합니다. 가상계좌 환불의 경우 환불수령 계좌 정보를
13
+ 추가 파라미터로 전달해야 합니다. 다음은 환불요청을 하기 위해 서버로 해당 정보를 전달하는 예제입니다.
14
+
15
+ <div class="tabs-container">
16
+
17
+ <div class="tabs-content" data-title="HTML">
18
+
19
+ ```html title="client-side"
20
+ <button onclick="cancelPay()">환불하기</button>
21
+ <script
22
+ src="https://code.jquery.com/jquery-3.3.1.min.js"
23
+ integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
24
+ crossorigin="anonymous"
25
+ ></script>
26
+ <script>
27
+ function cancelPay() {
28
+ jQuery.ajax({
29
+ // 예: http://www.myservice.com/payments/cancel
30
+ "url": "{환불정보를 수신할 고객사 서비스 URL}",
31
+ "type": "POST",
32
+ "contentType": "application/json",
33
+ "data": JSON.stringify({
34
+ "merchant_uid": "{결제건의 주문번호}", // 예: ORD20180131-0000011
35
+ "cancel_request_amount": 2000, // 환불금액
36
+ "reason": "테스트 결제 환불" // 환불사유
37
+ // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주
38
+ "refund_holder": "홍길동",
39
+ // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(예: KG이니시스의 경우 신한은행은 88번)
40
+ "refund_bank": "88"
41
+ // [가상계좌 환불시 필수입력] 환불 수령계좌 번호
42
+ "refund_account": "56211105948400"
43
+ }),
44
+ "dataType": "json"
45
+ });
46
+ }
47
+ </script>
48
+ ```
49
+
50
+ </div>
51
+
52
+ <div class="tabs-content" data-title="React.js">
53
+
54
+ ```tsx title="client-side"
55
+ class CancelPay extends React.Component {
56
+ cancelPay = () => {
57
+ axios({
58
+ url: "{환불요청을 받을 서비스 URL}", // 예: http://www.myservice.com/payments/cancel
59
+ method: "POST",
60
+ headers: {
61
+ "Content-Type": "application/json",
62
+ },
63
+ data: {
64
+ merchant_uid: "{결제건의 주문번호}", // 주문번호
65
+ cancel_request_amount: 2000, // 환불금액
66
+ reason: "테스트 결제 환불", // 환불사유
67
+ refund_holder: "홍길동", // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주
68
+ refund_bank: "88", // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(예: KG이니시스의 경우 신한은행은 88번)
69
+ refund_account: "56211105948400", // [가상계좌 환불시 필수입력] 환불 수령계좌 번호
70
+ },
71
+ });
72
+ };
73
+ render() {
74
+ return <button onClick={this.cancelPay}>환불하기</button>;
75
+ }
76
+ }
77
+ ```
78
+
79
+ </div>
80
+
81
+ </div>
82
+
83
+ ## **STEP 02.** 결제정보 조회하기
84
+
85
+ 아래와 같이 결제정보를 저장하는 \*\*`Payments`\*\*라는 테이블을 생성했다고 가정합니다.
86
+
87
+ ```js title="server-side"
88
+ /* ... model/payments.js ... */
89
+ const mongoose = require("mongoose");
90
+ const Schema = mongoose.Schema;
91
+ const PaymentsSchema = new Schema({
92
+ imp_uid: String, // 포트원 `unique key`(환불 요청시 `unique key`로 사용)
93
+ merchant_uid: String, // 주문번호(결제정보 조회시 사용)
94
+ amount: { type: Number, default: 0 }, // 결제 금액(환불 가능 금액 계산시 사용)
95
+ // 환불 된 총 금액(환불 가능 금액 계산시 사용)
96
+ cancel_amount: { type: Number, default: 0 },
97
+ });
98
+ module.exports = mongoose.model("Payments", PaymentsSchema);
99
+ ```
100
+
101
+ 클라이언트에서 받은 주문번호(**`merchant_uid`**)를 사용해서 해당 주문의 결제정보를 **`Payments`** 테이블에서 조회합니다.
102
+
103
+ ```js title="server-side"
104
+ /* ... 중략 ... */
105
+ const Payments = require("./models/payments");
106
+ app.post("/payments/cancel", async (req, res, next) => {
107
+ try {
108
+ /* 액세스 토큰(access token) 발급 */
109
+ /* ... 중략 ... */
110
+ /* 결제정보 조회 */
111
+ const { body } = req;
112
+ const { merchant_uid } = body; // 클라이언트로부터 전달받은 주문번호
113
+ Payments.find({ merchant_uid }, async function (err, payment) {
114
+ if (err) {
115
+ return res.json(err);
116
+ }
117
+ const paymentData = payment[0]; // 조회된 결제정보
118
+ /* 포트원 REST API로 결제환불 요청 */
119
+ // ...
120
+ });
121
+ } catch (error) {
122
+ res.status(400).send(error);
123
+ }
124
+ });
125
+ ```
126
+
127
+ ## **STEP 03.** **포트원 서버에 취소 요청하기**
128
+
129
+ 취소 요청을 하기 위해서 먼저 [**REST API access token**](https://developers.portone.io/api/rest-v1/auth?v=v1#post%20%2Fusers%2FgetToken)을
130
+ 발급받습니다. 발급받은 액세스 토큰(**`access token`**)을 이용하여
131
+ [**포트원 취소 API**](https://developers.portone.io/api/rest-v1/payment?v=v1#post%20%2Fpayments%2Fcancel)를 호출하여 결제 취소를 요청합니다.
132
+
133
+ <div class="hint" data-style="info">
134
+
135
+ **휴대폰 소액결제 환불 시 유의사항**
136
+
137
+ - **결제가 이루어진 월과 환불을 요청하는 월이 다를 경우, 전액환불도 불가능**합니다. 예를 들어, 1월 31일 결제건은 2월 1일에 환불할 수 없습니다.
138
+
139
+ </div>
140
+
141
+ 아래는 환불요청 시 유의해야 하는 파라미터들입니다.
142
+
143
+ > **환불 `unique key`**
144
+ >
145
+ > 환불 대상 거래를 특정하기 위해서 `imp_uid` 또는 `merchant_uid`를 환불 `unique key`로 설정합니다.
146
+ > `imp_uid`의 값이 우선순위를 갖게되며 유효하지 않는 `imp_uid`값을 입력하면 `merchant_uid`값과
147
+ > 무관하게 환불요청이 실패합니다.
148
+
149
+ > **환불 금액**(`amount`)
150
+ >
151
+ > **미입력시 전액이 환불**됩니다.
152
+
153
+ > **환불 가능 금액**(`checksum`)
154
+ >
155
+ > 환불이 가능한 금액을 입력합니다. 예를 들어, 10\*\*,\*\*000원짜리 제품의 `checksum`은 10,000입니다.
156
+ > 만약 10,000원짜리 제품이 과거 1,000원 부분환불 되었다면, 이후 환불시 `checksum`은
157
+ > 9,000입니다.입력된 `checksum`을 사용해서 서버와 포트원 서버간에 환불 가능 금액이 일치하는지
158
+ > 확인합니다. 만약 일치하지 않으면 환불 요청은 실패하며 미 입력시 검증은 실행되지 않습니다.
159
+
160
+ <div class="hint" data-style="warning">
161
+
162
+ **checksum을 입력해야 하는 이유**
163
+
164
+ `checksum`은 필수입력은 아니지만 **서버와 포트원 서버간에 환불 가능 금액을 검증하기** 위해서 입력을 권장합니다.
165
+
166
+ 예를 들어, 10,000원짜리 제품에 대한 1,000원 부분환불 요청이 포트원 서버에서 완료하였으나 고객사가 서버 혹은 DB오류로 이를 반영하지 못했다면? 포트원 서버의 checksum은 9,000이 되고, 고객사 서버의 checksum은 그대로 10,000이 됩니다.
167
+
168
+ 이후 남은 금액을 환불하려고 할때 `checksum(10,000)`을 입력하면, 해당 값이 포트원 서버의 `checksum(9,000)`과 일치하지 않으므로 요청은 실패합니다.
169
+
170
+ </div>
171
+
172
+ 아래는 환불 요청을 하는 예제입니다.
173
+
174
+ ```ts title="Node.js"
175
+ /* ... 중략 ... */
176
+ app.post("/payments/cancel", async (req, res, next) => {
177
+ try {
178
+ /* 액세스 토큰(access token) 발급 */
179
+ /* ... 중략 ... */
180
+ /* 결제정보 조회 */
181
+ const { body } = req;
182
+ // 클라이언트로부터 전달받은 주문번호, 환불사유, 환불금액
183
+ const { merchant_uid, reason, cancel_request_amount } = body;
184
+ Payments.find({ merchant_uid }, async function (err, payment) {
185
+ /* ... 중략 ... */
186
+ const paymentData = payment[0]; // 조회된 결제정보
187
+ // 조회한 결제정보로부터 imp_uid, amount(결제금액), cancel_amount(환불된 총 금액) 추출
188
+ const { imp_uid, amount, cancel_amount } = paymentData;
189
+ // 환불 가능 금액(= 결제금액 - 환불 된 총 금액) 계산
190
+ const cancelableAmount = amount - cancel_amount;
191
+ if (cancelableAmount <= 0) {
192
+ // 이미 전액 환불된 경우
193
+ return res.status(400).json({ message: "이미 전액환불된 주문입니다." });
194
+ }
195
+ /* 포트원 REST API로 결제환불 요청 */
196
+ const getCancelData = await axios({
197
+ url: "https://api.iamport.kr/payments/cancel",
198
+ method: "post",
199
+ headers: {
200
+ "Content-Type": "application/json",
201
+ Authorization: access_token, // 포트원 서버로부터 발급받은 엑세스 토큰
202
+ },
203
+ data: {
204
+ reason, // 고객사 클라이언트로부터 받은 환불사유
205
+ imp_uid, // imp_uid를 환불 `unique key`로 입력
206
+ amount: cancel_request_amount, // 고객사 클라이언트로부터 받은 환불금액
207
+ checksum: cancelableAmount, // [권장] 환불 가능 금액 입력
208
+ },
209
+ });
210
+ const { response } = getCancelData.data; // 환불 결과
211
+ /* 환불 결과 동기화 */
212
+ // ...
213
+ });
214
+ } catch (error) {
215
+ res.status(400).send(error);
216
+ }
217
+ });
218
+ ```
219
+
220
+ ### **STEP 04.** 환불 결과 저장하기
221
+
222
+ #### 결제 취소가 완료되면 그 결과를 데이터베이스에 다음과 같이 저장합니다.
223
+
224
+ ```ts title="Node.js"
225
+ /* ... 중략 ... */
226
+ app.post("/payments/cancel", async (req, res, next) => {
227
+ try {
228
+ /* 액세스 토큰(access token) 발급 */
229
+ /* ... 중략 ... */
230
+ /* 결제정보 조회 */
231
+ Payments.find({ merchant_uid }, async function (err, payment) {
232
+ /* ... 중략 ... */
233
+ /* 포트원 REST API로 결제환불 요청 */
234
+ /* ... 중략 ... */
235
+ const { response } = getCancelData.data; // 환불 결과
236
+ /* 환불 결과 동기화 */
237
+ const { merchant_uid } = response; // 환불 결과에서 주문정보 추출
238
+ Payments.findOneAndUpdate(
239
+ { merchant_uid },
240
+ response,
241
+ { new: true },
242
+ function (err, payment) {
243
+ // 주문정보가 일치하는 결제정보를 추출해 동기화
244
+ if (err) {
245
+ return res.json(err);
246
+ }
247
+ res.json(payment); // 고객사 클라이언트로 환불 결과 반환
248
+ },
249
+ );
250
+ });
251
+ } catch (error) {
252
+ res.status(400).send(error);
253
+ }
254
+ });
255
+ ```
256
+
257
+ <div class="hint" data-style="warning">
258
+
259
+ **취소 시 유의할 점**
260
+
261
+ REST API[**(POST https://api.iamport.kr/payments/cancel)**](https://developers.portone.io/api/rest-v1/payment?v=v1#post%20%2Fpayments%2Fcancel) 요청에 대한 **응답 코드가 200**이라도 응답 body의 code가 0이 아니면 **환불에 실패했다는 의미**입니다. 실패 사유는 body의 message를 통해 확인하셔야 합니다.
262
+
263
+ </div>
264
+
265
+ ### **STEP 04.** 환불 응답 처리하기
266
+
267
+ 취소요청에 대한 응답을 클라이언트에게 처리하는 로직을 아래와 같이 작성합니다.
268
+
269
+ <div class="tabs-container">
270
+
271
+ <div class="tabs-content" data-title="HTML">
272
+
273
+ ```html title="client-side"
274
+ <button onclick="cancelPay()">환불하기</button>
275
+ <script
276
+ src="https://code.jquery.com/jquery-3.3.1.min.js"
277
+ integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
278
+ crossorigin="anonymous"
279
+ ></script>
280
+ <!-- jQuery CDN --->
281
+ <script>
282
+ function cancelPay() {
283
+ jQuery
284
+ .ajax({
285
+ /* ... 중략 ... */
286
+ })
287
+ .done(function (result) {
288
+ // 환불 성공시 로직
289
+ alert("환불 성공");
290
+ })
291
+ .fail(function (error) {
292
+ // 환불 실패시 로직
293
+ alert("환불 실패");
294
+ });
295
+ }
296
+ </script>
297
+ ```
298
+
299
+ </div>
300
+
301
+ <div class="tabs-content" data-title="React.js">
302
+
303
+ ```tsx title="client-side"
304
+ class CancelPay extends React.Component {
305
+ cancelPay = () => {
306
+ axios(/* ... 중략 ... */)
307
+ .then((response) => {
308
+ // 환불 성공시 로직
309
+ alert("환불 성공");
310
+ })
311
+ .catch((error) => {
312
+ // 환불 실패시 로직
313
+ alert("환불 실패");
314
+ });
315
+ };
316
+ render() {
317
+ return <button onClick={this.cancelPay}>환불하기</button>;
318
+ }
319
+ }
320
+ ```
321
+
322
+ </div>
323
+
324
+ </div>
@@ -0,0 +1,99 @@
1
+ ---
2
+ title: 가상계좌 환불하기
3
+ description: 가상계좌 입금내역을 환불하는 방법을 확인합니다.
4
+ targetVersions:
5
+ - v1
6
+ versionVariants:
7
+ v2: /opi/ko/integration/cancel/v2/readme
8
+ ---
9
+
10
+ **가상계좌 환불을 위해서는 PG사 **가상계좌 특약서비스**에 가입되어 있어야 합니다.**
11
+
12
+ <div class="hint" data-style="info">
13
+
14
+ **가상계좌 특약서비스에 가입해야 하는 이유**
15
+
16
+ 신용카드와는 달리 가상계좌의 경우 결제/환불에 대한 수수료는 환불대상에서 제외됩니다.예를 들어 10,000원 결제건에 대해서 고객사는
17
+
18
+ - 결제 시, 9,700원(10,000원 - 가상계좌 발행 수수료 300원)을 PG사로부터 정산받습니다.
19
+ - 환불 시, 10,300원(환불되어야할 10,000원 + 환불 계좌로의 송금 수수료 300원)을 PG사로 지불합니다.
20
+
21
+ PG사는 이런 과정에서 발생할 수 있는 혼란을 미연에 방지하고자 **가상계좌 특약서비스에 가입한 고객사에 한해서만 가상계좌 환불을 제공**하고 있습니다.
22
+
23
+ </div>
24
+
25
+ 가상계좌의 경우 단방향 결제수단이여서 환불 대상을 알 수 없으므로 환불 금액 외에 다음의 환불 수령계좌 정보를 입력해야 합니다.
26
+
27
+ - `refund_holder`: 환불 수령계좌 예금주
28
+ - `refund_account`: 환불 수령계좌 번호
29
+ - `refund_bank`: 환불 수령계좌 은행코드
30
+
31
+ <div class="hint" data-style="info">
32
+
33
+ **가상계좌 은행코드는 PG사에 따라 다릅니다**
34
+
35
+ `은행코드는`같은 은행이더라도 PG사에 따라 상이하므로 \*\*은행코드(TODO)\*\*표에서 은행코드를 확인해 주세요
36
+
37
+ </div>
38
+
39
+ 아래는 가상계좌 환불을 요청하는 예제입니다.
40
+
41
+ ```ts title="Node.js"
42
+ /* ... 중략 ... */
43
+ app.post("/payments/cancel", async (req, res, next) => {
44
+ try {
45
+ /* 액세스 토큰(access token) 발급 */
46
+ /* ... 중략 ... */
47
+ /* 결제정보 조회 */
48
+ const { body } = req;
49
+ // 클라이언트로부터 전달받은 주문번호, 환불사유, 환불금액, 가상계좌 정보(예금주, 계좌번호, 은행코드)
50
+ const {
51
+ merchant_uid,
52
+ reason,
53
+ cancel_request_amount,
54
+ refund_holder,
55
+ refund_bank,
56
+ refund_account,
57
+ } = body;
58
+ Payments.find({ merchant_uid }, async function (err, payment) {
59
+ /* ... 중략 ... */
60
+ const paymentData = payment[0]; // 조회된 결제정보
61
+ // 조회한 결제정보로부터 imp_uid, amount(결제금액), cancel_amount(환불된 총 금액) 추출
62
+ const { imp_uid, amount, cancel_amount } = paymentData;
63
+ // 환불 가능 금액(= 결제금액 - 환불된 총 금액) 계산
64
+ const cancelableAmount = amount - cancel_amount;
65
+ if (cancelableAmount <= 0) {
66
+ // 이미 전액 환불된 경우
67
+ return res.status(400).json({ message: "이미 전액환불된 주문입니다." });
68
+ }
69
+ /* 포트원 REST API로 결제환불 요청 */
70
+ const getCancelData = await axios({
71
+ url: "https://api.iamport.kr/payments/cancel",
72
+ method: "post",
73
+ headers: {
74
+ "Content-Type": "application/json",
75
+ Authorization: access_token, // 포트원 서버로부터 발급받은 엑세스 토큰
76
+ },
77
+ data: {
78
+ reason, // 고객사 클라이언트로부터 받은 환불사유
79
+ imp_uid, // imp_uid를 환불 `unique key`로 입력
80
+ amount: cancel_request_amount, // 고객사 클라이언트로부터 받은 환불금액
81
+ checksum: cancelableAmount, // [권장] 환불 가능 금액 입력
82
+ refund_holder, // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주
83
+ refund_bank, // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(ex. KG이니시스의 경우 신한은행은 88번)
84
+ refund_account, // [가상계좌 환불시 필수입력] 환불 수령계좌 번호
85
+ },
86
+ });
87
+ const { response } = getCancelData.data; // 환불 결과
88
+ /* 환불 결과 동기화 */
89
+ // ...
90
+ });
91
+ } catch (error) {
92
+ res.status(400).send(error);
93
+ }
94
+ });
95
+ ```
96
+
97
+ 다음과 같이 가상계좌 환불을 요청하여 성공하면 PG사 담당자가 다음날 해당 계좌로 환불 금액을 입금합니다. 이는 통상적으로 영업일 기준 하루 정도 소요됩니다.
98
+
99
+ (이미지 첨부: 가상게좌 환불 FLOW)