From f9b50c70afbb61f6c568c58a946452b844aaa929 Mon Sep 17 00:00:00 2001 From: XiNiHa Date: Fri, 22 Mar 2024 00:44:01 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EA=B8=B0=EC=A1=B4=20MDX=20=EB=AC=B8?= =?UTF-8?q?=EC=84=9C=EB=93=A4=20=EB=A6=B0=ED=8A=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api-section-description/v1auth.mdx | 125 +- src/content/blog/2024-02/v2-oom.mdx | 1 + src/content/blog/2024-02/v2-zio.mdx | 10 +- src/content/blog/2024-03/tgs.mdx | 70 +- src/content/docs/_redir.yaml | 7 + src/content/docs/en/api/api/api.mdx | 610 +- ...non-authenticated-payment-one-time-api.mdx | 652 +- .../docs/en/api/billing-key-api/api-1.mdx | 306 +- .../delete-billing-key-api.mdx | 239 +- .../billing-key-api/get-billing-key-api.mdx | 219 +- .../billing-key-api/get-billing-keys-api.mdx | 236 +- .../get-scheduled-payments-api.mdx | 275 +- .../cancel-cash-receipt-external-api.mdx | 235 +- .../cancel-cash-receipt-transaction-api.mdx | 226 +- .../cash-receipt-api/get-cash-receipt-api.mdx | 181 +- .../get-cash-receipt-external-api.mdx | 179 +- .../request-cash-receipt-api.mdx | 304 +- .../request-cash-receipt-external-api.mdx | 317 +- .../api/escrow-api/add-delivery-info-api.mdx | 371 +- .../api/escrow-api/get-delivery-info-api.mdx | 184 +- src/content/docs/en/api/escrow-api/readme.mdx | 2 +- .../escrow-api/update-delivery-info-api.mdx | 319 +- .../confirm-identity-verification-api.mdx | 306 +- .../delete-identity-verification-api.mdx | 270 +- .../get-identity-verification-result-api.mdx | 255 +- .../request-identity-verification-api.mdx | 211 +- .../docs/en/api/import-api-overview.mdx | 32 +- .../benepia-point/get-points-api.mdx | 150 +- .../request-point-payment-api.mdx | 595 +- .../cancel-barcode-api.mdx | 258 +- .../request-barcode-api.mdx | 597 +- .../get-bank-codes-all-api.mdx | 123 +- .../get-bank-name-api.mdx | 133 +- .../get-credit-card-codes-all-api.mdx | 123 +- .../get-credit-card-name-api.mdx | 133 +- .../pg-information/get-pg-mids-api.mdx | 113 +- .../paymentwall-delivery-api.mdx | 301 +- .../en/api/payment-api/cancel-payment-api.mdx | 540 +- ...ance-api-for-split-payment-transaction.mdx | 310 +- .../payment-api/get-payment-amount-api.mdx | 122 +- .../en/api/payment-api/get-payment-api.mdx | 498 +- .../en/api/payment-api/get-payments-api.mdx | 515 +- .../get-payments-by-billing-key-api.mdx | 507 +- .../get-payments-by-order-id-status-all.mdx | 602 +- .../get-payments-by-order-id-status-top-1.mdx | 528 +- .../get-payments-by-status-api.mdx | 597 +- .../payment-api/save-payment-amount-api.mdx | 139 +- .../payment-api/update-payment-amount-api.mdx | 149 +- .../docs/en/api/rest-api-access-token.mdx | 205 +- .../kakao-pay/get-order-api.mdx | 68 +- .../kcp-quick-pay/delete-user-api.mdx | 170 +- .../naver-pay/accrue-points-api.mdx | 123 +- .../naver-pay/confirm-escrow-order-api.mdx | 152 +- .../naver-pay/get-cash-receipt-amount-api.mdx | 166 +- .../payco/update-order-status-api.mdx | 129 +- .../cancel-scheduled-payment-api.mdx | 248 +- .../get-scheduled-payment-api.mdx | 257 +- .../get-scheduled-payments-api.mdx | 316 +- ...-scheduled-payments-by-billing-key-api.mdx | 299 +- .../schedule-payment-api.mdx | 429 +- .../cancel-virtual-account-api.mdx | 550 +- .../get-account-holder-api.mdx | 150 +- .../request-virtual-account-api.mdx | 589 +- .../update-virtual-account-api.mdx | 554 +- .../docs/en/auth/guide-1/bill/pg-window.mdx | 260 +- .../docs/en/auth/guide-1/bill/readme.mdx | 83 +- .../docs/en/auth/guide-1/bill/rest-api.mdx | 319 +- src/content/docs/en/auth/guide-1/page-1.mdx | 36 +- ...subscription-payment-using-billing-key.mdx | 199 +- src/content/docs/en/auth/guide-2/readme.mdx | 377 +- src/content/docs/en/auth/guide-2/refund.mdx | 127 +- src/content/docs/en/auth/guide/1.mdx | 2 +- src/content/docs/en/auth/guide/2.mdx | 14 +- src/content/docs/en/auth/guide/3.mdx | 139 +- src/content/docs/en/auth/guide/4/iframe.mdx | 77 +- src/content/docs/en/auth/guide/4/redirect.mdx | 50 +- src/content/docs/en/auth/guide/5.mdx | 163 +- src/content/docs/en/auth/guide/6.mdx | 58 +- src/content/docs/en/auth/guide/def.mdx | 5 +- src/content/docs/en/auth/guide/readme.mdx | 497 +- src/content/docs/en/console/guide/account.mdx | 84 +- src/content/docs/en/console/guide/list.mdx | 244 +- src/content/docs/en/console/guide/readme.mdx | 4 +- src/content/docs/en/console/pg.mdx | 112 +- .../docs/en/etc/all/get-verification-info.mdx | 167 +- .../en/etc/all/prepare-for-verification.mdx | 58 +- src/content/docs/en/etc/all/readme.mdx | 14 +- .../docs/en/etc/all/request-verification.mdx | 46 +- .../en/etc/all/send-verification-result.mdx | 98 +- src/content/docs/en/etc/budget.mdx | 2 +- .../1-prepare-for-verification.mdx | 41 +- .../credit-auth/2-request-verification.mdx | 88 +- .../3-send-verification-result.mdx | 109 +- .../credit-auth/4-get-verification-info.mdx | 179 +- .../docs/en/etc/credit-auth/readme.mdx | 9 +- .../docs/en/etc/native-mobile-sdks.mdx | 6 +- .../etc/phone/1-prepare-for-verification.mdx | 26 +- .../en/etc/phone/2-request-verification.mdx | 96 +- .../etc/phone/3-send-verification-result.mdx | 107 +- .../en/etc/phone/4-get-verification-info.mdx | 195 +- src/content/docs/en/etc/phone/readme.mdx | 19 +- src/content/docs/en/etc/url.mdx | 304 +- src/content/docs/en/faq/undefined.mdx | 50 +- .../payment-gateways/blue-walnut.mdx | 114 +- .../payment-gateways/danal.mdx | 378 +- .../precautions-for-using-payjoa.mdx | 240 +- .../payment-gateways/daou-payjoa/readme.mdx | 294 +- .../payment-gateways/eximbay.mdx | 184 +- .../payment-gateways/inicis.mdx | 447 +- .../payment-gateways/jtnet.mdx | 324 +- .../payment-gateways/kg-mobilians.mdx | 221 +- .../payment-gateways/kicc.mdx | 405 +- .../payment-gateways/nhh-kcp.mdx | 883 +- .../payment-gateways/nice.mdx | 345 +- .../payment-gateways/paymentwall.mdx | 131 +- .../payment-gateways/paypal.mdx | 113 +- .../payment-gateways/readme.mdx | 2 +- .../payment-gateways/settlebank.mdx | 198 +- .../payment-gateways/smartro.mdx | 95 +- .../payment-gateways/toss.mdx | 415 +- .../simple/alipay.mdx | 83 +- .../simple/kakao-pay.mdx | 204 +- .../simple/naver-pay-standard.mdx | 493 +- .../simple/payco.mdx | 215 +- .../simple/readme.mdx | 2 +- .../payment-integration-by-pg/simple/toss.mdx | 105 +- src/content/docs/en/readme.mdx | 18 +- src/content/docs/en/readme/get-started.mdx | 34 +- src/content/docs/en/ready/1.mdx | 12 +- .../2-pg/payment-gateway-settings/daou.mdx | 158 +- .../2-pg/payment-gateway-settings/jtnet.mdx | 129 +- .../2-pg/payment-gateway-settings/kg.mdx | 40 +- .../2-pg/payment-gateway-settings/kicc.mdx | 79 +- .../payment-gateway-settings/nhn-kcp-1.mdx | 108 +- .../2-pg/payment-gateway-settings/nhn-kcp.mdx | 130 +- .../nice-payments.mdx | 96 +- .../2-pg/payment-gateway-settings/readme.mdx | 2 +- .../payment-gateway-settings/undefined-1.mdx | 8 +- .../payment-gateway-settings/undefined-2.mdx | 233 +- .../payment-gateway-settings/undefined-3.mdx | 63 +- .../payment-gateway-settings/undefined-4.mdx | 31 +- .../payment-gateway-settings/undefined-5.mdx | 104 +- .../payment-gateway-settings/undefined-6.mdx | 37 +- .../payment-gateway-settings/undefined-7.mdx | 31 +- .../payment-gateway-settings/undefined.mdx | 61 +- .../docs/en/ready/2-pg/pg/undefined-1.mdx | 33 +- .../docs/en/ready/2-pg/pg/undefined-2.mdx | 134 +- .../docs/en/ready/2-pg/pg/undefined-3.mdx | 61 +- .../docs/en/ready/2-pg/pg/undefined-4.mdx | 80 +- .../docs/en/ready/2-pg/pg/undefined-5.mdx | 26 +- .../docs/en/ready/2-pg/pg/undefined.mdx | 40 +- src/content/docs/en/ready/2-pg/readme.mdx | 2 +- src/content/docs/en/ready/3.mdx | 42 +- src/content/docs/en/ready/readme.mdx | 63 +- src/content/docs/en/result/webhook.mdx | 188 +- ...entity-verification-request-parameters.mdx | 4 +- ...ntity-verification-response-parameters.mdx | 2 +- .../docs/en/sdk/javascript-sdk/readme.mdx | 11 +- .../docs/en/sdk/javascript-sdk/rps.mdx | 191 +- .../sdk/javascript-sdk/sdk-release-note.mdx | 305 +- .../en/sdk/javascript-sdk/undefined-1.mdx | 91 +- src/content/docs/en/tips/agency-and-tier.mdx | 27 +- src/content/docs/en/tips/bank-codes-by-pg.mdx | 197 +- .../en/tips/billing-key-issuance-by-pg.mdx | 30 +- src/content/docs/en/tips/chk.mdx | 6 +- src/content/docs/en/tips/code.mdx | 3 +- src/content/docs/en/tips/confirm-process.mdx | 32 +- src/content/docs/en/tips/flow.mdx | 19 +- src/content/docs/en/tips/pg-codes.mdx | 1 - src/content/docs/en/tips/redirect.mdx | 10 +- src/content/docs/en/tips/tax.mdx | 85 +- src/content/docs/ko/api-v2/applications.mdx | 1192 +- src/content/docs/ko/api-v2/authorization.mdx | 338 +- src/content/docs/ko/api-v2/billing-key.mdx | 1479 ++ src/content/docs/ko/api-v2/billing_key.mdx | 1571 --- src/content/docs/ko/api-v2/cash-receipt.mdx | 556 + src/content/docs/ko/api-v2/cash_receipt.mdx | 611 - src/content/docs/ko/api-v2/channel.mdx | 346 +- .../docs/ko/api-v2/identity-verification.mdx | 1238 +- src/content/docs/ko/api-v2/payment.mdx | 11607 ++++++++-------- src/content/docs/ko/api-v2/schedule.mdx | 1028 +- src/content/docs/ko/api-v2/store.mdx | 1960 ++- src/content/docs/ko/api-v2/v2-api.mdx | 11 +- src/content/docs/ko/auth/guide-1/bill/pg.mdx | 202 +- .../docs/ko/auth/guide-1/bill/readme.mdx | 106 +- .../docs/ko/auth/guide-1/bill/rest-api.mdx | 348 +- src/content/docs/ko/auth/guide-1/page-1.mdx | 34 +- .../docs/ko/auth/guide-1/undefined.mdx | 133 +- src/content/docs/ko/auth/guide-2/readme.mdx | 399 +- src/content/docs/ko/auth/guide-2/refund.mdx | 120 +- src/content/docs/ko/auth/guide/1.mdx | 4 +- src/content/docs/ko/auth/guide/2.mdx | 22 +- src/content/docs/ko/auth/guide/3.mdx | 177 +- src/content/docs/ko/auth/guide/4/iframe.mdx | 77 +- src/content/docs/ko/auth/guide/4/readme.mdx | 4 +- src/content/docs/ko/auth/guide/4/redirect.mdx | 108 +- src/content/docs/ko/auth/guide/5/post.mdx | 56 +- src/content/docs/ko/auth/guide/5/pre.mdx | 33 +- src/content/docs/ko/auth/guide/5/readme.mdx | 13 +- src/content/docs/ko/auth/guide/6.mdx | 38 +- src/content/docs/ko/auth/guide/def.mdx | 19 +- src/content/docs/ko/auth/guide/readme.mdx | 14 +- src/content/docs/ko/console/guide/account.mdx | 57 +- src/content/docs/ko/console/guide/connect.mdx | 6 +- src/content/docs/ko/console/guide/list.mdx | 4 +- src/content/docs/ko/console/guide/readme.mdx | 7 +- src/content/docs/ko/console/pg.mdx | 103 +- src/content/docs/ko/etc/all/0.mdx | 31 +- src/content/docs/ko/etc/all/1.mdx | 37 +- src/content/docs/ko/etc/all/2.mdx | 98 +- src/content/docs/ko/etc/all/3.mdx | 71 +- src/content/docs/ko/etc/all/readme.mdx | 2 +- src/content/docs/ko/etc/budget.mdx | 2 +- src/content/docs/ko/etc/credit-auth/1.mdx | 29 +- src/content/docs/ko/etc/credit-auth/2.mdx | 90 +- src/content/docs/ko/etc/credit-auth/3.mdx | 100 +- src/content/docs/ko/etc/credit-auth/4.mdx | 190 +- .../docs/ko/etc/credit-auth/readme.mdx | 5 +- src/content/docs/ko/etc/phone/1.mdx | 19 +- src/content/docs/ko/etc/phone/2.mdx | 111 +- src/content/docs/ko/etc/phone/3.mdx | 100 +- src/content/docs/ko/etc/phone/4.mdx | 208 +- src/content/docs/ko/etc/sdk.mdx | 6 +- src/content/docs/ko/etc/url.mdx | 301 +- src/content/docs/ko/faq/undefined.mdx | 44 +- .../docs/ko/pg/payment-gateway/blue.mdx | 94 +- .../docs/ko/pg/payment-gateway/danal.mdx | 474 +- .../ko/pg/payment-gateway/daou/readme.mdx | 333 +- .../ko/pg/payment-gateway/daou/undefined.mdx | 182 +- .../docs/ko/pg/payment-gateway/eximbay.mdx | 254 +- .../docs/ko/pg/payment-gateway/inicis.mdx | 508 +- .../docs/ko/pg/payment-gateway/jtnet.mdx | 289 +- src/content/docs/ko/pg/payment-gateway/kg.mdx | 34 +- .../docs/ko/pg/payment-gateway/kicc.mdx | 383 +- .../ko/pg/payment-gateway/ksnet/readme.mdx | 293 +- .../ko/pg/payment-gateway/ksnet/warning.mdx | 134 +- .../ko/pg/payment-gateway/newtoss/readme.mdx | 520 +- .../ko/pg/payment-gateway/newtoss/warning.mdx | 303 +- .../docs/ko/pg/payment-gateway/nhn-kcp.mdx | 957 +- .../nice-v2/billing-api-caution.mdx | 47 +- .../nice-v2/payment-caution.mdx | 448 +- .../ko/pg/payment-gateway/nice-v2/readme.mdx | 217 +- .../docs/ko/pg/payment-gateway/nice.mdx | 394 +- .../ko/pg/payment-gateway/paymentwall.mdx | 288 +- .../docs/ko/pg/payment-gateway/paypal.mdx | 110 +- .../docs/ko/pg/payment-gateway/readme.mdx | 7 +- src/content/docs/ko/pg/payment-gateway/rt.mdx | 32 +- .../docs/ko/pg/payment-gateway/rt/warning.mdx | 400 +- .../ko/pg/payment-gateway/settle/mybank.mdx | 245 +- .../ko/pg/payment-gateway/settle/readme.mdx | 184 +- .../ko/pg/payment-gateway/smartro-v2/api.mdx | 15 +- .../pg/payment-gateway/smartro-v2/caution.mdx | 349 +- .../pg/payment-gateway/smartro-v2/readme.mdx | 279 +- .../docs/ko/pg/payment-gateway/smartro.mdx | 86 +- .../docs/ko/pg/payment-gateway/spb.mdx | 393 +- .../docs/ko/pg/payment-gateway/spb/stc.mdx | 334 +- .../ko/pg/payment-gateway/spb/warning.mdx | 967 +- .../docs/ko/pg/payment-gateway/toss.mdx | 16 +- .../ko/pg/payment-gateway/welcome/api.mdx | 12 +- .../ko/pg/payment-gateway/welcome/caution.mdx | 490 +- .../ko/pg/payment-gateway/welcome/readme.mdx | 868 +- src/content/docs/ko/pg/simple/alipay.mdx | 75 +- src/content/docs/ko/pg/simple/kakopay.mdx | 180 +- src/content/docs/ko/pg/simple/naver.mdx | 576 +- src/content/docs/ko/pg/simple/payco.mdx | 186 +- src/content/docs/ko/pg/simple/readme.mdx | 1 - .../ko/pg/simple/toss-brandpay/module.mdx | 289 +- .../ko/pg/simple/toss-brandpay/readme.mdx | 398 +- .../ko/pg/simple/toss-brandpay/warning.mdx | 51 +- .../ko/pg/simple/toss-brandpay/widget.mdx | 29 +- src/content/docs/ko/pg/simple/toss.mdx | 94 +- .../docs/ko/pg/simple/tosspay-v2/caution.mdx | 14 +- .../docs/ko/pg/simple/tosspay-v2/readme.mdx | 9 +- .../ko/release-note/api-sdk/2023-05-12.mdx | 31 - src/content/docs/ko/result/webhook.mdx | 4 +- .../docs/ko/sdk/javascript-sdk-old/readme.mdx | 10 +- .../javascript-sdk-old/sdk-release-note.mdx | 259 - .../docs/ko/sdk/javascript-sdk/cft-rt.mdx | 2 +- .../docs/ko/sdk/javascript-sdk/cft.mdx | 5 +- .../ko/sdk/javascript-sdk/load-module-rt.mdx | 2 +- .../ko/sdk/javascript-sdk/load-module.mdx | 53 +- .../docs/ko/sdk/javascript-sdk/payrq.mdx | 229 +- .../docs/ko/sdk/javascript-sdk/payrt.mdx | 243 +- .../docs/ko/sdk/javascript-sdk/readme.mdx | 14 +- src/content/docs/ko/shopify/readme.mdx | 5 +- .../docs/ko/shopify/shopify/shopify-1.mdx | 2 + .../docs/ko/shopify/shopify/shopify-4.mdx | 6 +- .../docs/ko/support/code-info/readme.mdx | 6 + src/content/docs/ko/tip/agency-and-tier.mdx | 10 +- src/content/docs/ko/tip/card-code.mdx | 6 +- src/content/docs/ko/tip/code.mdx | 2 +- src/content/docs/ko/tip/flow.mdx | 7 +- src/content/docs/ko/tip/pg-1.mdx | 256 +- src/content/docs/ko/tip/pg-2.mdx | 70 +- src/content/docs/ko/tip/pg-3.mdx | 33 +- src/content/docs/ko/tip/pg.mdx | 2 +- .../{portone_code.mdx => portone-code.mdx} | 0 src/content/docs/ko/tip/redirect.mdx | 10 +- src/content/docs/ko/tip/tax.mdx | 85 +- src/content/docs/ko/v2-payment/api.mdx | 2 +- src/content/docs/ko/v2-payment/authpay.mdx | 8 +- .../docs/ko/v2-payment/billing-key/1.mdx | 62 +- .../docs/ko/v2-payment/billing-key/2.mdx | 9 +- .../docs/ko/v2-payment/billing-key/3.mdx | 50 +- .../docs/ko/v2-payment/billing-key/readme.mdx | 2 - .../ko/v2-payment/identity-verification.mdx | 136 +- src/content/docs/ko/v2-payment/key-in.mdx | 10 +- .../pg/danal-identity-verification.mdx | 78 +- .../docs/ko/v2-payment/pg/inicis-v2.mdx | 30 +- .../docs/ko/v2-payment/pg/kakaopay.mdx | 17 +- src/content/docs/ko/v2-payment/pg/ksnet.mdx | 263 +- .../docs/ko/v2-payment/pg/naverpay.mdx | 64 +- src/content/docs/ko/v2-payment/pg/nice-v2.mdx | 98 +- .../docs/ko/v2-payment/pg/paypal-v2.mdx | 36 +- .../docs/ko/v2-payment/pg/smartro-v2.mdx | 641 +- .../docs/ko/v2-payment/pg/tosspayments.mdx | 365 +- .../v2-payment/v2-sdk/billing-key-request.mdx | 566 +- .../v2-sdk/billing-key-response.mdx | 30 +- .../v2-sdk/identity-verification-request.mdx | 849 +- .../v2-sdk/identity-verification-response.mdx | 30 +- .../ko/v2-payment/v2-sdk/payment-request.mdx | 3534 ++--- .../ko/v2-payment/v2-sdk/payment-response.mdx | 30 +- src/content/docs/ko/v2-payment/webhook.mdx | 4 +- .../docs/ko/wordpress/wordpress/button.mdx | 29 +- .../docs/ko/wordpress/wordpress/readme.mdx | 5 +- .../release-notes/api-sdk/2023-05-08.mdx | 2 +- .../release-notes/api-sdk/2023-05-22.mdx | 6 +- .../release-notes/api-sdk/2023-07-10.mdx | 2 +- .../release-notes/api-sdk/2023-07-17.mdx | 6 +- .../release-notes/api-sdk/2023-07-31.mdx | 1 + .../release-notes/api-sdk/2023-08-31.mdx | 20 +- .../release-notes/api-sdk/2023-12-15.mdx | 7 +- .../release-notes/api-sdk/2024-01-08.mdx | 7 +- .../release-notes/api-sdk/2024-01-11.mdx | 4 +- .../release-notes/api-sdk/2024-01-25.mdx | 6 +- .../release-notes/api-sdk/2024-01-30.mdx | 4 +- .../release-notes/api-sdk/2024-02-23.mdx | 4 +- .../release-notes/console/2023-05-08.mdx | 5 - .../release-notes/console/2023-05-22.mdx | 13 +- .../release-notes/console/2023-07-05.mdx | 6 +- .../release-notes/console/2023-07-07.mdx | 8 +- .../release-notes/console/2023-07-17.mdx | 2 +- .../release-notes/console/2023-08-23.mdx | 4 +- .../release-notes/console/2023-12-27.mdx | 5 +- .../release-notes/console/2024-01-25.mdx | 6 +- src/schema/v1.openapi.json | 2 +- 346 files changed, 37826 insertions(+), 39892 deletions(-) create mode 100644 src/content/docs/ko/api-v2/billing-key.mdx delete mode 100644 src/content/docs/ko/api-v2/billing_key.mdx create mode 100644 src/content/docs/ko/api-v2/cash-receipt.mdx delete mode 100644 src/content/docs/ko/api-v2/cash_receipt.mdx delete mode 100644 src/content/docs/ko/release-note/api-sdk/2023-05-12.mdx delete mode 100644 src/content/docs/ko/sdk/javascript-sdk-old/sdk-release-note.mdx rename src/content/docs/ko/tip/{portone_code.mdx => portone-code.mdx} (100%) diff --git a/src/content/api-section-description/v1auth.mdx b/src/content/api-section-description/v1auth.mdx index 75f97ef72..2c2fc474f 100644 --- a/src/content/api-section-description/v1auth.mdx +++ b/src/content/api-section-description/v1auth.mdx @@ -1,7 +1,13 @@ -import ApiLink from "~/layouts/rest-api/misc/ApiLink"; -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; +import ApiLink from "~/layouts/rest-api/misc/ApiLink"; + +import getTokenImage from "./_assets/v1auth/get-token.png"; +import merchantInfoImage from "./_assets/v1auth/merchant-info.png"; +import reuseImage from "./_assets/v1auth/reuse.svg"; +import tierImage from "./_assets/v1auth/tier.png"; +import useImage from "./_assets/v1auth/use.png"; 포트원 API를 호출할 때는 **액세스 토큰**을 `Authorization` 헤더에 넣어주어야 합니다.\ 액세스 토큰은 를 호출해서 발급받을 수 있습니다. @@ -9,106 +15,75 @@ import Hint from "~/components/Hint.astro"; 액세스 토큰 발급 API를 호출하려면 **API 키**와 **API 시크릿**을 인자로 넣어주어야 합니다.
-

API 키와 API 시크릿 확인하기

- -1. [관리자 콘솔 `상점・계정 관리` 화면](https://admin.portone.io/merchant) 접속 -2. `내 식별코드・API Keys` 버튼 클릭 - -import merchantInfoImage from "./_assets/v1auth/merchant-info.png"; - -
+

API 키와 API 시크릿 확인하기

- -**API 시크릿은 절대로 외부에 노출되어서는 안되는 값**입니다.\ -실제 구현에서 액세스 토큰 발급은 꼭 서버사이드에서 해주세요. + 1. [관리자 콘솔 `상점・계정 관리` 화면](https://admin.portone.io/merchant) 접속 + 2. `내 식별코드・API Keys` 버튼 클릭 - +
+ + **API 시크릿은 절대로 외부에 노출되어서는 안 되는 값**입니다.\ + 실제 구현에서 액세스 토큰 발급은 꼭 서버 사이드에서 해주세요. +
-

액세스 토큰 발급 받기

+

액세스 토큰 발급 받기

- 호출 + 호출 -import getTokenImage from "./_assets/v1auth/get-token.png"; - -
- - -포트원 REST API 서버는 **Google Public NTP**의 시간과 동기화되고 있습니다. - - +
- -하위 상점 연동을 할 경우 액세스 토큰을 발급받을 때 **Agent 계정**의 **API 키** 와 **API 시크릿**을 사용해야 합니다. + + 포트원 REST API 서버는 **Google Public NTP**의 시간과 동기화되고 있습니다. + -[Agency & Tier 란?](/docs/ko/tip/agency-and-tier) - - + + 하위 상점 연동을 할 경우 액세스 토큰을 발급받을 때 **Agent 계정**의 **API 키** 와 **API 시크릿**을 사용해야 합니다. + [Agency & Tier 란?](/docs/ko/tip/agency-and-tier) +
-

액세스 토큰 사용하기

- -발급받은 액세스 토큰은 다른 API를 호출할 때\ -`Authorization` 헤더에 `Bearer <액세스 토큰>` 형식의 값을 넣어주면 됩니다. - -자세한 내용은 [MDN - HTTP 인증 문서](https://developer.mozilla.org/ko/docs/Web/HTTP/Authentication)를 참고해주세요. +

액세스 토큰 사용하기

-import useImage from "./_assets/v1auth/use.png"; - -
+ 발급받은 액세스 토큰은 다른 API를 호출할 때\ + `Authorization` 헤더에 `Bearer <액세스 토큰>` 형식의 값을 넣어주면 됩니다. - -하위 상점 연동을 할 경우 포트원 API 호출시 `Tier` 헤더에 하위 상점 티어 코드를 입력해야 합니다. + 자세한 내용은 [MDN - HTTP 인증 문서](https://developer.mozilla.org/ko/docs/Web/HTTP/Authentication)를 참고해주세요. -[Agency & Tier 란?](/docs/ko/tip/agency-and-tier) - -import tierImage from "./_assets/v1auth/tier.png"; +
-
+ + 하위 상점 연동을 할 경우 포트원 API 호출시 `Tier` 헤더에 하위 상점 티어 코드를 입력해야 합니다. - + [Agency & Tier 란?](/docs/ko/tip/agency-and-tier) +
+
-

액세스 토큰 만료기한 연장

+

액세스 토큰 만료기한 연장

-만료된 액세스 토큰으로 API를 호출하면 `401 Unauthorized` 응답을 받습니다.\ -액세스 토큰의 만료기한은 발행시간부터 **30분**입니다. - -- 기존 액세스 토큰이 만료되기 전 를 다시 호출했을 경우 - - 기존 액세스 토큰이 반환됩니다.\ - **만료기한이 1분 안쪽으로 남았을 때** 요청했다면 기존 액세스 토큰의 만료시간이 **5분 연장**됩니다. -- 기존 액세스 토큰이 만료된 다음 를 다시 호출했을 경우 - - 새로운 액세스 토큰이 반환됩니다. - -import reuseImage from "./_assets/v1auth/reuse.svg"; + 만료된 액세스 토큰으로 API를 호출하면 `401 Unauthorized` 응답을 받습니다.\ + 액세스 토큰의 만료 기한은 발행시간부터 **30분**입니다. -
+ - 기존 액세스 토큰이 만료되기 전 를 다시 호출했을 경우 + - 기존 액세스 토큰이 반환됩니다.\ + **만료 기한이 1분 안쪽으로 남았을 때** 요청했다면 기존 액세스 토큰의 만료 기한이 **5분 연장**됩니다. - -액세스 토큰의 재사용과 만료기한 5분 연장 동작방식은 다음과 같은 상황을 고려해서 설계되었습니다. + - 기존 액세스 토큰이 만료된 다음 를 다시 호출했을 경우 + - 새로운 액세스 토큰이 반환됩니다. -- 한 고객사에서 여러 대의 웹서버가 동시에 경쟁적으로 REST API(`/users/getToken`)를 호출하는 상황 -- 한 고객사에서 여러 대의 웹서버가 시간 동기화 되어있지 않은 상황 +
- + + 액세스 토큰의 재사용과 만료기한 5분 연장 동작방식은 다음과 같은 상황을 고려해서 설계되었습니다. + - 한 고객사에서 여러 대의 웹서버가 동시에 경쟁적으로 REST API(`/users/getToken`)를 호출하는 상황 + - 한 고객사에서 여러 대의 웹서버가 시간 동기화 되어있지 않은 상황 +
diff --git a/src/content/blog/2024-02/v2-oom.mdx b/src/content/blog/2024-02/v2-oom.mdx index bbd107127..731d71661 100644 --- a/src/content/blog/2024-02/v2-oom.mdx +++ b/src/content/blog/2024-02/v2-oom.mdx @@ -8,6 +8,7 @@ thumbnail: ./_assets/v2-oom/0.png --- import Figure from "~/components/Figure.astro"; + import image0 from "./_assets/v2-oom/0.png"; import image1 from "./_assets/v2-oom/1.png"; import image2 from "./_assets/v2-oom/2.png"; diff --git a/src/content/blog/2024-02/v2-zio.mdx b/src/content/blog/2024-02/v2-zio.mdx index e89cc844f..12989e76e 100644 --- a/src/content/blog/2024-02/v2-zio.mdx +++ b/src/content/blog/2024-02/v2-zio.mdx @@ -519,12 +519,12 @@ ZIO는 그러한 조건에 잘 부합하는 Effect System이었고 현재까지 이러한 요구사항을 만족하기 위해 신중한 고민을 거쳐 의사결정을 했고, 그렇게 탄생한 포트원 V2 모듈은 수많은 디지털 커머스 회사들과 함께할 준비를 마쳤습니다. 포트원 V2에서는 커머스 회사들이 결제와 관련된 고민을 덜 수 있도록 멋진 기능들을 많이 출시할 예정이니, 앞으로 포트원 V2 모듈의 행보를 지켜봐주세요! -[scala]: \(https://scala-lang.org/\) +[scala]: https://scala-lang.org/ -[why-fp-matters]: \(https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf\) +[why-fp-matters]: https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf -[for-comprehension]: \(https://docs.scala-lang.org/tour/for-comprehensions.html\) +[for-comprehension]: https://docs.scala-lang.org/tour/for-comprehensions.html -[ast]: \(https://en.wikipedia.org/wiki/Abstract_syntax_tree\) +[ast]: https://en.wikipedia.org/wiki/Abstract_syntax_tree -[zio]: \(https://zio.dev/\) +[zio]: https://zio.dev/ diff --git a/src/content/blog/2024-03/tgs.mdx b/src/content/blog/2024-03/tgs.mdx index e181c5aaf..2b8d0ee23 100644 --- a/src/content/blog/2024-03/tgs.mdx +++ b/src/content/blog/2024-03/tgs.mdx @@ -35,45 +35,45 @@ V1을 완전히 버리고 V2로 넘어가는 것이 아니기 때문에 하나 - 카카오페이 결제 파라미터 -|Name |타입 |필수여부|설명 | +| Name | 타입 |필수여부| 설명 | |:----------------:|:--------:|:------:|:--------------------------------------------------------------------------------------------------------------------:| -|cid |String |O |가맹점 코드, 10자 | -|cid\_secret |String |X |가맹점 코드 인증키, 24자, 숫자와 영문 소문자 조합 | -|partner\_order\_id|String |O |가맹점 주문번호, 최대 100자 | -|partner\_user\_id |String |O |가맹점 회원 id, 최대 100자 | -|item\_name |String |O |상품명, 최대 100자 | -|item\_code |String |X |상품코드, 최대 100자 | -|quantity |Integer |O |상품 수량 | -|total\_amount |Integer |O |상품 총액 | -|tax\_free\_amount |Integer |O |상품 비과세 금액 | -|vat\_amount |Integer |X |상품 부가세 금액 값을 보내지 않을 경우 다음과 같이 VAT 자동 계산 (상품총액 - 상품 비과세 금액)/11 : 소숫점 이하 반올림| -|green\_deposit |Integer |X |컵 보증금 | -|approval\_url |String |O |결제 성공 시 redirect url, 최대 255자 | -|cancel\_url |String |O |결제 취소 시 redirect url, 최대 255자 | -|fail\_url |String |O |결제 실패 시 redirect url, 최대 255자 | -|available\_cards |JSON Array|X |결제 수단으로써 사용 허가할 카드사를 지정해야 하는 경우 사용 | +| cid | String | O | 가맹점 코드, 10자 | +| cid\_secret | String | X | 가맹점 코드 인증키, 24자, 숫자와 영문 소문자 조합 | +|partner\_order\_id| String | O | 가맹점 주문번호, 최대 100자 | +| partner\_user\_id| String | O | 가맹점 회원 id, 최대 100자 | +| item\_name | String | O | 상품명, 최대 100자 | +| item\_code | String | X | 상품코드, 최대 100자 | +| quantity | Integer | O | 상품 수량 | +| total\_amount | Integer | O | 상품 총액 | +| tax\_free\_amount| Integer | O | 상품 비과세 금액 | +| vat\_amount | Integer | X |상품 부가세 금액 값을 보내지 않을 경우 다음과 같이 VAT 자동 계산 (상품총액 - 상품 비과세 금액)/11 : 소숫점 이하 반올림| +| green\_deposit | Integer | X | 컵 보증금 | +| approval\_url | String | O | 결제 성공 시 redirect url, 최대 255자 | +| cancel\_url | String | O | 결제 취소 시 redirect url, 최대 255자 | +| fail\_url | String | O | 결제 실패 시 redirect url, 최대 255자 | +| available\_cards |JSON Array| X | 결제 수단으로써 사용 허가할 카드사를 지정해야 하는 경우 사용 | - 네이버페이 결제 파라미터 -|Name |타입 |필수여부|설명 | +| Name | 타입 |필수여부| 설명 | |:-----------------------:|:-----:|:------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -|merchantPayKey |String |O |가맹점 주문내역 확인 가능한 가맹점 결제번호 또는 주문번호를 전달해야 합니다 | -|merchantPayTransactionKey|String | |가맹점 주문내역 히스토리 확인이 가능한 가맹점 결제 트랜잭션 번호 또는 주문 트랜잭션 번호를 전달해야 합니다. | -|merchantUserKey |String | |가맹점의 사용자 키(개인 아이디와 같은 개인정보 데이터는 제외하여 전달해야 합니다) | -|productName |String |O |대표 상품명. 예: 장미의 이름 외 1건(X), 장미의 이름(O) | -|productCount |Number |O |상품 수량 예: A 상품 2개 + B 상품 1개의 경우 productCount 3으로 전달 | -|totalPayAmount |Number |O |총 결제 금액. 최소 결제금액은 10원 | -|taxScopeAmount |Number |O |과세 대상 금액. 과세 대상 금액 + 면세 대상 금액 + 컵 보증금 금액 (옵션) = 총 결제 금액 | -|taxExScopeAmount |Number |O |면세 대상 금액. 과세 대상 금액 + 면세 대상 금액 + 컵 보증금 금액 (옵션) = 총 결제 금액 | -|environmentDepositAmount |Number | |1회용 컵에 담은 상품의 결제건인 경우에만 필수값이며, 그 외에는 전달할 필요가 없습니다. 컵 보증금 금액. 과세 대상 금액 + 면세 대상 금액 + 컵 보증금 금액 (옵션) = 총 결제 금액 | -|returnUrl |String |O |결제 인증 결과 전달 URL, 결제 완료 후 이동할 URL(returnUrl + 가맹점 파라미터 전달이 가능합니다) 네이버페이는 결제 작업 완료 후, 고객사가 등록한 returnUrl로 리디렉션을 수행합니다 고객사는 이를 활용하여 내부 처리를 수행하거나 구매자에게 결제 결과 화면을 노출할 수 있습니다 | -|purchaserName |String | |구매자 성명. 결제 상품이 보험 및 위험 업종 등인 경우에만 필수 값입니다. 그 외에는 전달할 필요가 없습니다 | -|purchaserBirthday |String | |구매자 생년월일(yyyymmdd). 결제 상품이 보험 및 위험 업종 등인 경우에만 필수 값입니다. 그 외에는 전달할 필요가 없습니다 | -|extraDeduction |Boolean| |도서 / 공연 / 영화 소득공제 대상 여부. 문화체육관광부에서 인증한 소득공제 제공 사업자가 대상 상품을 판매하는 경우 필수 값입니다. 해당 파라미터를 사용하기 위해서는 별도 요청을 주셔야 합니다. true : 대상, false : 비 대상 | -|useCfmYmdt |String | |이용완료일(yyyymmdd) 가맹점 타입이 이용완료일 정산 또는 이용완료일 포인트 적립인 경우 필수 해당 값을 기준으로 이용완료일 정산의 경우 '정산기준일' 또는 이용완료일 포인트 적립인 경우 '포인트적립 기준일'이 지정됩니다. 이용완료일은 반드시 결제일과 같거나 결제일 이후여야 하며, 이용완료일이 결제일자 이전으로 적용될 경우 에러(InvalidUseCfmYmdt)가 발생됩니다. 이용완료일이 결제일자 기준으로 1년을 초과할 경우 별도 에러가 발생되지는 않으나 전달한 이용완료일(useCfmYmdt) 값이 결제일자 +365일로 조정 처리됩니다.| -|merchantExtraParameter |String | |가맹점 자체적으로 추가 구분값으로 활용 가능한 별도의 예비 필드 (개인 아이디와 같은 개인정보 데이터는 제외하여 전달해야 합니다) | -|productItems |Array |O |productItem 배열 | -|subMerchantInfo |Object | |하부가맹점 정보. PG 업종 가맹점인 경우에만 필수값입니다 | +| merchantPayKey | String| O | 가맹점 주문내역 확인 가능한 가맹점 결제번호 또는 주문번호를 전달해야 합니다 | +|merchantPayTransactionKey| String| | 가맹점 주문내역 히스토리 확인이 가능한 가맹점 결제 트랜잭션 번호 또는 주문 트랜잭션 번호를 전달해야 합니다. | +| merchantUserKey | String| | 가맹점의 사용자 키(개인 아이디와 같은 개인정보 데이터는 제외하여 전달해야 합니다) | +| productName | String| O | 대표 상품명. 예: 장미의 이름 외 1건(X), 장미의 이름(O) | +| productCount | Number| O | 상품 수량 예: A 상품 2개 + B 상품 1개의 경우 productCount 3으로 전달 | +| totalPayAmount | Number| O | 총 결제 금액. 최소 결제금액은 10원 | +| taxScopeAmount | Number| O | 과세 대상 금액. 과세 대상 금액 + 면세 대상 금액 + 컵 보증금 금액 (옵션) = 총 결제 금액 | +| taxExScopeAmount | Number| O | 면세 대상 금액. 과세 대상 금액 + 면세 대상 금액 + 컵 보증금 금액 (옵션) = 총 결제 금액 | +| environmentDepositAmount| Number| | 1회용 컵에 담은 상품의 결제건인 경우에만 필수값이며, 그 외에는 전달할 필요가 없습니다. 컵 보증금 금액. 과세 대상 금액 + 면세 대상 금액 + 컵 보증금 금액 (옵션) = 총 결제 금액 | +| returnUrl | String| O | 결제 인증 결과 전달 URL, 결제 완료 후 이동할 URL(returnUrl + 가맹점 파라미터 전달이 가능합니다) 네이버페이는 결제 작업 완료 후, 가맹점이 등록한 returnUrl로 리디렉션을 수행합니다 가맹점은 이를 활용하여 내부 처리를 수행하거나 구매자에게 결제 결과 화면을 노출할 수 있습니다 | +| purchaserName | String| | 구매자 성명. 결제 상품이 보험 및 위험 업종 등인 경우에만 필수 값입니다. 그 외에는 전달할 필요가 없습니다 | +| purchaserBirthday | String| | 구매자 생년월일(yyyymmdd). 결제 상품이 보험 및 위험 업종 등인 경우에만 필수 값입니다. 그 외에는 전달할 필요가 없습니다 | +| extraDeduction |Boolean| | 도서 / 공연 / 영화 소득공제 대상 여부. 문화체육관광부에서 인증한 소득공제 제공 사업자가 대상 상품을 판매하는 경우 필수 값입니다. 해당 파라미터를 사용하기 위해서는 별도 요청을 주셔야 합니다. true : 대상, false : 비 대상 | +| useCfmYmdt | String| |이용완료일(yyyymmdd) 가맹점 타입이 이용완료일 정산 또는 이용완료일 포인트 적립인 경우 필수 해당 값을 기준으로 이용완료일 정산의 경우 '정산기준일' 또는 이용완료일 포인트 적립인 경우 '포인트적립 기준일'이 지정됩니다. 이용완료일은 반드시 결제일과 같거나 결제일 이후여야 하며, 이용완료일이 결제일자 이전으로 적용될 경우 에러(InvalidUseCfmYmdt)가 발생됩니다. 이용완료일이 결제일자 기준으로 1년을 초과할 경우 별도 에러가 발생되지는 않으나 전달한 이용완료일(useCfmYmdt) 값이 결제일자 +365일로 조정 처리됩니다.| +| merchantExtraParameter | String| | 가맹점 자체적으로 추가 구분값으로 활용 가능한 별도의 예비 필드 (개인 아이디와 같은 개인정보 데이터는 제외하여 전달해야 합니다) | +| productItems | Array | O | productItem 배열 | +| subMerchantInfo | Object| | 하부가맹점 정보. PG 업종 가맹점인 경우에만 필수값입니다 | 위처럼 같은 기능을 하는 인터페이스임에도 PG사에 따라 파라미터 명과 파라미터 타입, 필수 파라미터 목록 모두 상이한 것을 볼 수 있습니다. 심지어 사용하는 통신 프로토콜마저 PG사마다 상이하죠. @@ -214,7 +214,7 @@ Typed error를 적용함으로써 예시 코드의 `pay()` 함수에선 `AmountT ```kotlin interface Example { fun pay(): Effect - + sealed interface PayError { data object AmountTooBig: PayError data object InvalidCardInfo: PayError diff --git a/src/content/docs/_redir.yaml b/src/content/docs/_redir.yaml index dd4f2222d..e8da2cd89 100644 --- a/src/content/docs/_redir.yaml +++ b/src/content/docs/_redir.yaml @@ -167,6 +167,13 @@ - old: /ko/api-v2/platform new: /ko/platform/api +- old: /ko/api-v2/billing_key + new: /ko/api-v2/billing-key +- old: /ko/api-v2/cash_receipt + new: /ko/api-v2/cash-receipt +- old: /ko/tip/portone_code + new: /ko/tip/portone-code + - old: /ko/ready/2-pg/payment-gateway/nice-v2 new: /ko/ready/2-pg/payment-gateway/nice diff --git a/src/content/docs/en/api/api/api.mdx b/src/content/docs/en/api/api/api.mdx index 8d3526591..13cdab12b 100644 --- a/src/content/docs/en/api/api/api.mdx +++ b/src/content/docs/en/api/api/api.mdx @@ -4,406 +4,386 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests a payment by billing key (customer\_uid). +## Requests a payment by billing key (customer\_uid). - -You can use the + + You can use the -**customer_uid** + **customer\_uid** - obtained via Get billing key API or PG payment window to request a non-authenticated payment. + obtained via Get billing key API or PG payment window to request a non-authenticated payment. + - + ### Parameters -### Parameters + #### Body -#### Body + + + **Billing key** + + - - + + + **Order ID** + + -**Billing key** + + **Currency** + - + + + **Payment amount** + + - - - + + **Tax free amount** + -**Order ID** + + + **Product name** + + - + + **Customer name** + - - -**Currency** + + **Customer email** + - - - + + **Customer phone** + -**Payment amount** + + **Customer address** + - + + **Customer zip code** + - - -**Tax free amount** + + **Number of installment months** + - - - + + **Whether or not there are interest-free installments paid by merchants** + -**Product name** + + **Option to use credit card points** + - + + **Custom data** + - - -**Customer name** + + **Webhook URL for success notification** + - - -**Customer email** + + **Customer's browser (PC) IP** + - - -**Customer phone** + ### Responses - - -**Customer address** + + + + **`code`** **\*** **integer** - - -**Customer zip code** + **Response code** - - -**Number of installment months** + 0: success, Not 0: check the message - + **`message`** **\*** **string** - - -**Whether or not there are interest-free installments paid by merchants** + **Response message** - - -**Option to use credit card points** + A non-zero code includes a message like 'Invalid payment info'. - - -**Custom data** + **`response`** **(PaymentAnnotation, optional)** + + - - -**Webhook URL for success notification** + + + **`code`** **\*** **integer** - + **`Response code`** - - -**Customer's browser (PC) IP** + 0: success, Not 0: check the message - + **`message`** **\*** **string** -### Responses + **Response message** - - - -**`code`** **\***** ****integer** + A non-zero code includes a message like 'Invalid payment info. -**Response code** + **`imp_uid`** \* **string** -0: success, Not 0: check the message + **i'mport payment transaction UID** -**`message`** **\***** ****string** + **`merchant_uid`** **\*** **string** -**Response message** + **Order ID** -A non-zero code includes a message like 'Invalid payment info'. + **`pay_method`** **\*** **string** -**`response`** **(PaymentAnnotation, optional)** + **Payment method code** - - + **`channel`** **\*** **string** - - -**`code`** **\***** ****integer** + **Payment environment code** -**`Response code`** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -0: success, Not 0: check the message + **`pg_provider`** **\*** **string** -**`message`** **\***** ****string** + **PG code** -**Response message** + --- -A non-zero code includes a message like 'Invalid payment info. + **`emb_pg_provider`** **\*** **string** -**`imp_uid`** \* **string** + **Hub-type PG code** -**i'mport payment transaction UID** + **`pg_tid`** **\*** **string** -**`merchant_uid`** **\***** ****string** + **PG transaction ID** -**Order ID** + **`pg_id`** **\*** **string** -**`pay_method`** **\***** ****string** + **PG MID** -**Payment method code** + **`escrow`** **boolean** -**`channel`** **\***** ****string** + **Indicates an escrow payment** -**Payment environment code** + **`apply_num`** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **Credit card approval number** -**`pg_provider`** **\***** ****string** + **`bank_code`** **string** -**PG code** + **Bank code** ---- + **`bank_name`** **string** -**`emb_pg_provider`** **\***** ****string** + **Bank name** -**Hub-type PG code** + --- -**`pg_tid`** **\*** **string** + **`card_code`** **string** -**PG transaction ID** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**`pg_id`** **\***** ****string** + **`card_name`** **string** -**PG MID** + **Credit card name** -**`escrow`** **boolean** + **`card_quota`** **integer** -**Indicates an escrow payment** + **Number of installments (0 means one-off)** -**`apply_num`** **string** + **`card_number`** **string** -**Credit card approval number** + **Masked credit card number** -**`bank_code`** **string** + --- -**Bank code** + **`card_type`** **string** -**`bank_name`** **string** + **Credit card type code** -**Bank name** + - 0: credit + - 1: check ---- + **`vbank_code`** **string** -**`card_code`** **string** + **Virtual account bank code (refer to image below)** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + --- -**`card_name`** **string** + **`vbank_name`** **string** -**Credit card name** + **Refund virtual account** -**`card_quota`** **integer** + **`vbank_holder`** **string** -**Number of installments (0 means one-off)** + **Refund virtual account holder** -**`card_number`** **string** + **`vbank_date`** **string** -**Masked credit card number** + **Refund virtual account expiration (UNIX timestamp)** ---- + **`vbank_issued_at`** **string** -**`card_type`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Credit card type code** + **`name`** **string** -- 0: credit -- 1: check + **Product name** -**`vbank_code`** **string** + **`amount`** **\*** **integer** -**Virtual account bank code (refer to image below)** + **Order (payment) amount** ---- + **`cancel_amount`** **integer** -**`vbank_name`** **string** + **Cancelled amount** -**Refund virtual account** + **`currency`** **string** -**`vbank_holder`** **string** + **Currency** -**Refund virtual account holder** + - USD + - KRW + - EUR -**`vbank_date`** **string** + --- -**Refund virtual account expiration (UNIX timestamp)** + **`buyer_name`** **string** -**`vbank_issued_at`** **string** + **Customer name** -**Refund virtual account created at (UNIX timestamp)** + **`buyer_email`** **string** -**`name`** **string** + **Customer email** -**Product name** + **`buyer_tel`** **string** -**`amount`** **\*** **integer** + **Customer phone** -**Order (payment) amount** - -**`cancel_amount`** **integer** - -**Cancelled amount** - -**`currency`** **string** - -**Currency** - -- USD -- KRW -- EUR - ---- + **`buyer_addr`** **string** -**`buyer_name`** **string** + **Customer address** -**Customer name** + **`buyer_postcode`** **string** -**`buyer_email`** **string** + **Customer zip code** -**Customer email**\ + **`custom_data`** **string** -**`buyer_tel`** **string** + **echo data as JSON string** -**Customer phone** + **`user_agent`** **string** -**`buyer_addr`** **string** + **UserAgent of the device where payment is initiated** -**Customer address** + **`status`** **\*** **string** -**`buyer_postcode`** **string** + **Payment status code** -**Customer zip code** + - ready + - paid + - cancelled + - failed -**`custom_data`** **string** + **`started_at`** **\*** **string** -**echo data as JSON string** + **Payment started at (UNIX timestamp)** -**`user_agent`** **string** + **`paid_at`** **\*** **string** -**UserAgent of the device where payment is initiated** + **Payment completed at (UNIX timestamp)** -**`status`** **\***** ****string** + **`failed_at`** **\*** **string** -**Payment status code** + **Payment failed at (UNIX timestamp)** -- ready -- paid -- cancelled -- failed + **`cancelled_at`** **\*** **string** -**`started_at`** **\*** **string** + **Payment cancelled at (UNIX timestamp)** -**Payment started at (UNIX timestamp)** + **`fail_reason`** **string** -**`paid_at`** **\***** ****string** + **Reason for failure** -**Payment completed at (UNIX timestamp)**\ + **`cancel_reason`** **string** -**`failed_at`** **\***** ****string** + **Reason for cancellation** -**Payment failed at (UNIX timestamp)** + **`receipt_url`** **string** -**`cancelled_at`** **\***** ****string** + **Credit card receipt URL** -**Payment cancelled at (UNIX timestamp)** + **`cash_receipt_issued`** **boolean** -**`fail_reason`** **string** + **Option to automatically issue cash receipt** -**Reason for failure** + **`customer_uid`** **string** -**`cancel_reason`** **string** + **customer\_uid related to the payment transaction** -**Reason for cancellation** + **`customer_uid_usage`** **string** -**`receipt_url`** **string** + **customer\_uid use code** -**Credit card receipt URL** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`cash_receipt_issued` ****boolean** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**Option to automatically issue cash receipt** + **`Cancellation/partial cancellation history`** + + -**`customer_uid`** **string** + + + **cancel\_history array \[]** -**customer\_uid related to the payment transaction** + **`pg_tid`** **\*** **string** -**`customer_uid_usage`** **string** + **PG cancellation transaction ID** -**customer\_uid use code** + **`amount`** **\*** **integer** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **Cancelled amount** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`cancelled_at`** **\*** **string** -**`Cancellation/partial cancellation history`** + **Cancelled at (UNIX timestamp)** - - + **`reason`** **\*** **string(256)** - - -**cancel\_history array \[]** + **Reason for cancellation** -**`pg_tid`** **\***** ****string** + **`receipt_url`** **\*** **string(300)** -**PG cancellation transaction ID** - -**`amount`** **\*** **integer** - -**Cancelled amount** - -**`cancelled_at`** **\*** **string** - -**Cancelled at (UNIX timestamp)** - -**`reason`** **\*** **string(256)** - -**Reason for cancellation** - -**`receipt_url`** **\***** ****string(300)** - -**Cancellation receipt URL. Availability varies by PG.** - - - - - - - -```javascript -{ - // Response -} -``` - - + **Cancellation receipt URL. Availability varies by PG.** + + + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -429,7 +409,7 @@ A non-zero code includes a message like 'Invalid payment info. > > Required for Paymentwall PG -> **`buyer_name` ****string** +> **`buyer_name`** **string** > > **Customer name** > @@ -442,79 +422,77 @@ A non-zero code includes a message like 'Invalid payment info. > Required for Paymentwall PG
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/again**](https://api.iamport.kr/#!/subscribe/again) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/again**](https://api.iamport.kr/#!/subscribe/again) diff --git a/src/content/docs/en/api/api/request-non-authenticated-payment-one-time-api.mdx b/src/content/docs/en/api/api/request-non-authenticated-payment-one-time-api.mdx index b23ca8f3d..6953d9f7f 100644 --- a/src/content/docs/en/api/api/request-non-authenticated-payment-one-time-api.mdx +++ b/src/content/docs/en/api/api/request-non-authenticated-payment-one-time-api.mdx @@ -4,440 +4,426 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; Requests payment with credit card information. - -If you pass + + If you pass -**customer_uid** + **customer\_uid** -, the billing key used for a successful payment will be saved for future payments. If customer_uid is not specified, it will not be saved. You cannot reuse the same + , the billing key used for a successful payment will be saved for future payments. If customer\_uid is not specified, it will not be saved. You cannot reuse the same -**merchant_uid** + **merchant\_uid** - for another request. + for another request. + - + ## Parameters -### Parameters + ### Body -#### Body + + + **Order ID** + + - - + + Currency code -**Order ID** + KRW, USD, VND ... + - + + + **Payment amount** + + - - -Currency code + + Tax-free amount + -KRW, USD, VND ... + + **Credit card number** - - - + **(dddd-dddd-dddd-dddd)** + -**Payment amount** + + **Credit card expiration** - + **(YYYY-MM)** + - - -Tax-free amount + + **6-digit DOB** **(yymmdd)** - - -**Credit card number** + (For corporate cards, specify 10-digit business registration number) + -**(dddd-dddd-dddd-dddd)** + + First 2-digits of credit card password + - - -**Credit card expiration** + + CVC code -**(YYYY-MM)** + (last 3 digits (4 digits for AMEX) of the code at the back of the card). Applicable to **Paymentwall only** + - - -**6-digit DOB**** (yymmdd)** + + Specify this value to save the card information as billing key and use it for future payments. + -(For corporate cards, specify 10-digit business registration number) + + + **PG code** + + - - -First 2-digits of credit card password + + Product name + - - -CVC code + + Customer name + -(last 3 digits (4 digits for AMEX) of the code at the back of the card). Applicable to **Paymentwall only** + + Customer email + - - -Specify this value to save the card information as billing key and use it for future payments. + + Customer phone + - - - + + Customer address + -**PG code** + + Customer zip code + - + + Number of installment months + - - -Product name + + Whether or not there are interest-free installments paid by merchants + - - -Customer name + + Custom data + - - -Customer email + + Webhook URL for success notification + - - -Customer phone + + Customer's browser (PC) IP + - - -Customer address + + (For overseas PG only) Payment ID issued by PG for another payment after 3D secure authentication + - - -Customer zip code + + (For overseas PG only) Token issued by PG for another payment after 3D secure authentication + - - -Number of installment months + ### Responses - - -Whether or not there are interest-free installments paid by merchants + + + + **`code`** **\*** **integer** - - -Custom data + **Response code** - - -Webhook URL for success notification + 0: success, Not 0: check the message - - -Customer's browser (PC) IP + **`message`** **\*** **string** - - -(For overseas PG only) Payment ID issued by PG for another payment after 3D secure authentication + **Response message** - - -(For overseas PG only) Token issued by PG for another payment after 3D secure authentication + A non-zero code includes a message like 'Invalid payment info'. - + **`response`** **(PaymentAnnotation, optional)** + + -### Responses + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **`Response code`** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***** ****string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info. -A non-zero code includes a message like 'Invalid payment info'. + **`imp_uid`** \* **string** -**`response`** **(PaymentAnnotation, optional)** + **i'mport payment transaction UID** - - + **`merchant_uid`** **\*** **string** - - -**`code`** **\***** ****integer** + **Order ID** -**`Response code`** + **`pay_method`** **\*** **string** -0: success, Not 0: check the message + **Payment method code** -**`message`** **\***** ****string** + **`channel`** **\*** **string** -**Response message** + **Payment environment code** -A non-zero code includes a message like 'Invalid payment info. + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**`imp_uid`** \* **string** + **`pg_provider`** **\*** **string** -**i'mport payment transaction UID** + **PG code** -**`merchant_uid`** **\***** ****string** + --- -**Order ID** + **`emb_pg_provider`** **\*** **string** -**`pay_method`** **\***** ****string** + **Hub-type PG code** -**Payment method code** + **`pg_tid`** **\*** **string** -**`channel`** **\***** ****string** + **PG transaction ID** -**Payment environment code** + **`pg_id`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **PG MID** -**`pg_provider`** **\***** ****string** + **`escrow`** **boolean** -**PG code** + **Indicates an escrow payment** ---- + **`apply_num`** **string** -**`emb_pg_provider`** **\***** ****string** + **Credit card approval number** -**Hub-type PG code** + **`bank_code`** **string** -**`pg_tid`** **\*** **string** + **Bank code** -**PG transaction ID** + **`bank_name`** **string** -**`pg_id`** **\***** ****string** + **Bank name** -**PG MID** + --- -**`escrow`** **boolean** + **`card_code`** **string** -**Indicates an escrow payment** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**`apply_num`** **string** + **`card_name`** **string** -**Credit card approval number** + **Credit card name** -**`bank_code`** **string** + **`card_quota`** **integer** -**Bank code** + **Number of installments (0 means one-off)** -**`bank_name`** **string** + **`card_number`** **string** -**Bank name** + **Masked credit card number** ---- + --- -**`card_code`** **string** + **`card_type`** **string** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **Credit card type code** -**`card_name`** **string** + - 0: credit + - 1: check -**Credit card name** + **`vbank_code`** **string** -**`card_quota`** **integer** + **Virtual account bank code (refer to image below)** -**Number of installments (0 means one-off)** + --- -**`card_number`** **string** + **`vbank_name`** **string** -**Masked credit card number** + **Refund virtual account** ---- + **`vbank_holder`** **string** -**`card_type`** **string** + **Refund virtual account holder** -**Credit card type code** + **`vbank_date`** **string** -- 0: credit -- 1: check + **Refund virtual account expiration (UNIX timestamp)** -**`vbank_code`** **string** + **`vbank_issued_at`** **string** -**Virtual account bank code (refer to image below)** + **Refund virtual account created at (UNIX timestamp)** ---- - -**`vbank_name`** **string** - -**Refund virtual account** + **`name`** **string** -**`vbank_holder`** **string** + **Product name** -**Refund virtual account holder** + **`amount`** **\*** **integer** -**`vbank_date`** **string** + **Order (payment) amount** -**Refund virtual account expiration (UNIX timestamp)** + **`cancel_amount`** **integer** -**`vbank_issued_at`** **string** + **Cancelled amount** -**Refund virtual account created at (UNIX timestamp)** + **`currency`** **string** -**`name`** **string** + **Currency** -**Product name** + - USD + - KRW + - EUR -**`amount`** **\*** **integer** + --- -**Order (payment) amount** + **`buyer_name`** **string** -**`cancel_amount`** **integer** + **Customer name** -**Cancelled amount** + **`buyer_email`** **string** -**`currency`** **string** + **Customer email** -**Currency** - -- USD -- KRW -- EUR - ---- + **`buyer_tel`** **string** -**`buyer_name`** **string** + **Customer phone** -**Customer name** + **`buyer_addr`** **string** -**`buyer_email`** **string** + **Customer address** -**Customer email**\ + **`buyer_postcode`** **string** -**`buyer_tel`** **string** + **Customer zip code** -**Customer phone** + **`custom_data`** **string** -**`buyer_addr`** **string** + **echo data as JSON string** -**Customer address** + **`user_agent`** **string** -**`buyer_postcode`** **string** + **UserAgent of the device where payment is initiated** -**Customer zip code** + **`status`** **\*** **string** -**`custom_data`** **string** + **Payment status code** -**echo data as JSON string** + - ready + - paid + - cancelled + - failed -**`user_agent`** **string** + **`started_at`** **\*** **string** -**UserAgent of the device where payment is initiated** + **Payment started at (UNIX timestamp)** -**`status`** **\***** ****string** + **`paid_at`** **\*** **string** -**Payment status code** + **Payment completed at (UNIX timestamp)**\\ -- ready -- paid -- cancelled -- failed + **`failed_at`** **\*** **string** -**`started_at`** **\*** **string** + **Payment failed at (UNIX timestamp)** -**Payment started at (UNIX timestamp)** + **`cancelled_at`** **\*** **string** -**`paid_at`** **\***** ****string** + **Payment cancelled at (UNIX timestamp)** -**Payment completed at (UNIX timestamp)**\ + **`fail_reason`** **string** -**`failed_at`** **\***** ****string** + **Reason for failure** -**Payment failed at (UNIX timestamp)** + **`cancel_reason`** **string** -**`cancelled_at`** **\***** ****string** + **Reason for cancellation** -**Payment cancelled at (UNIX timestamp)** + **`receipt_url`** **string** -**`fail_reason`** **string** + **Credit card receipt URL** -**Reason for failure** + **`cash_receipt_issued`** **boolean** -**`cancel_reason`** **string** + **Option to automatically issue cash receipt** -**Reason for cancellation** + **`customer_uid`** **string** -**`receipt_url`** **string** + **customer\_uid related to the payment transaction** -**Credit card receipt URL** + **`customer_uid_usage`** **string** -**`cash_receipt_issued` ****boolean** + **customer\_uid use code** -**Option to automatically issue cash receipt** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`customer_uid`** **string** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**customer\_uid related to the payment transaction** + **`Cancellation/partial cancellation history`** + + -**`customer_uid_usage`** **string** + + + **cancel\_history array \[]** -**customer\_uid use code** + **`pg_tid`** **\*** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **PG cancellation transaction ID** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`amount`** **\*** **integer** -**`Cancellation/partial cancellation history`** + **Cancelled amount** - - + **`cancelled_at`** **\*** **string** - - -**cancel\_history array \[]** + **Cancelled at (UNIX timestamp)** -**`pg_tid`** **\***** ****string** + **`reason`** **\*** **string(256)** -**PG cancellation transaction ID** + **Reason for cancellation** -**`amount`** **\*** **integer** + **`receipt_url`** **\*** **string(300)** -**Cancelled amount** - -**`cancelled_at`** **\*** **string** - -**Cancelled at (UNIX timestamp)** - -**`reason`** **\*** **string(256)** - -**Reason for cancellation** - -**`receipt_url`** **\***** ****string(300)** - -**Cancellation receipt URL. Availability varies by PG.** - - - - - - - -```javascript -{ - // Response -} -``` - - + **Cancellation receipt URL. Availability varies by PG.** + + + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -503,79 +489,77 @@ A non-zero code includes a message like 'Invalid payment info. > with this customer\_uid value in the future.
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/onetime**](https://api.iamport.kr/#!/subscribe/onetime) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/onetime**](https://api.iamport.kr/#!/subscribe/onetime) diff --git a/src/content/docs/en/api/billing-key-api/api-1.mdx b/src/content/docs/en/api/billing-key-api/api-1.mdx index e3e52e7f4..5aab51919 100644 --- a/src/content/docs/en/api/billing-key-api/api-1.mdx +++ b/src/content/docs/en/api/billing-key-api/api-1.mdx @@ -4,207 +4,194 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests a billing key with credit card information. +## Requests a billing key with credit card information. - - - - -### Parameters - -#### Path - - - - -**Billing key** - - + - + ### Parameters -#### Body + #### Path - -**PG code** + + + **Billing key** + + - - -**Credit card number** + #### Body -**XXXX-XXXX-XXXX-XXXX** + + **PG code** + - - -**Credit card expiration** + + **Credit card number** -**YYYY-MM** + **XXXX-XXXX-XXXX-XXXX** + - - -**6-digit DOB** + + **Credit card expiration** -**10-digit business registration number for corporate card** + **YYYY-MM** + - - -**First 2-digits of credit card password** + + **6-digit DOB** - - -**CVC code** + **10-digit business registration number for corporate card** + - - -**Card holder** + + **First 2-digits of credit card password** + - - -**Card holder's phone** + + **CVC code** + - - -**Card holder's email** + + **Card holder** + - - -**Card holder's address** + + **Card holder's phone** + - - -Card holder's zip code + + **Card holder's email** + - - -Customer ID ( + + **Card holder's address** + - + + Card holder's zip code + -**For Toss Payments only** + + Customer ID ( - + + **For Toss Payments only** + -) + ) + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***\*\* ****string\*\* + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`response`** **(CustomerAnnotation, optional)** + + -**`response`** **(CustomerAnnotation, optional)** + + + **`code`** **\*** **integer** - - + **Response code** - - -**`code`** **\*** **integer** + 0: success, Not 0: check the message -**Response code** + **`message`** **\*** **string** -0: success, Not 0: check the message + **Response message** -**`message`** **\***\*\* ****string\*\* + A non-zero code includes a message like 'Invalid payment info'. -**Response message** + **`customer_uid`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **`Customer ID`** -**`customer_uid`** **\*** **string** + **`pg_provider`** **\*** **string** -**`Customer ID`**\ + **PG code for billing key** -**`pg_provider`** **\***\*\* ****string\*\* + **`pg_id`** **\*** **string** -**PG code for billing key** + **PG merchant ID (MID) for billing key** -**`pg_id`** **\***\*\* ****string\*\* + **`card_name`** **\*** **string** -**PG merchant ID (MID) for billing key** + **`Credit card name`** -**`card_name`** **\*** **string** + **`card_code`** **\*** **string** -**`Credit card name`** + **`Credit card code`** -**`card_code`** **\***\*\* ****string\*\* + **`card_number`** **\*** **string** -**`Credit card code`** + **`Masked card number`** -**`card_number`** **\***\*\* ****string\*\* + **`card_type`** **\*** **string** -**`Masked card number`** + **`Credit card type`** -**`card_type`** **\***\*\* ****string\*\* + **Not supported in some PGs (returns null)** -**`Credit card type`** + **`customer_name`** **\*** **string** -**Not supported in some PGs (returns null)** + **`Customer name`** -**`customer_name`** **\***\*\* ****string\*\* + **`customer_tel`** **\*** **string** -**`Customer name`** + **`Customer phone`** -**`customer_tel`** **\*** **string** + **`customer_email`** **\*** **string** -**`Customer phone`** + **`Customer email`** -**`customer_email`** **\***\*\* ****string\*\* + **`customer_addr`** **\*** **string** -**`Customer email`** + **`Customer address`** -**`customer_addr`** **\***\*\* ****string\*\* + **`customer_postcode`** **\*** **string** -**`Customer address`** + **`Customer zip code`** -**`customer_postcode`** **\***\*\* ****string\*\* + **`inserted`** **\*** **integer** -**`Customer zip code`** + **`Billing key issued at`** (UNIX timestamp) -**`inserted`** **\***\*\* ****integer\*\* + **`updated`** **\*** **integer** -**`Billing key issued at`** (UNIX timestamp) - -**`updated`** **\***\*\* ****integer\*\* - -**`Billing key updated at`** (UNIX timestamp) - - - - - - - -```javascript -{ - // Response -} -``` - - + **`Billing key updated at`** (UNIX timestamp) + + + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -225,52 +212,49 @@ A non-zero code includes a message like 'Invalid payment info'. > > May be omitted for some PGs upon pre-agreement. -> **` customer_id`` `****`string`** +> **`customer_id`** **`string`** > > **`Customer ID`** > > **For Toss Payments only** -**Using this API requires a pre-agreement with the PG.** - -- You may modify the required card information upon agreement with the PG. -- Special attention to security is required due to using sensitive card information. -- The `customer_uid` must be unique and issued per **customer-card number** pair. + **Using this API requires a pre-agreement with the PG.** + - You may modify the required card information upon agreement with the PG. + - Special attention to security is required due to using sensitive card information. + - The `customer_uid` must be unique and issued per **customer-card number** pair.
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "customer_uid": "string", - "pg_provider": "string", - "pg_id": "string", - "card_name": "string", - "card_code": "string", - "card_number": "string", - "card_type": "null", - "customer_name": "string", - "customer_tel": "string", - "customer_email": "string", - "customer_addr": "string", - "customer_postcode": "string", - "inserted": 0, - "updated": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "customer_uid": "string", + "pg_provider": "string", + "pg_id": "string", + "card_name": "string", + "card_code": "string", + "card_number": "string", + "card_type": "null", + "customer_name": "string", + "customer_tel": "string", + "customer_email": "string", + "customer_addr": "string", + "customer_postcode": "string", + "inserted": 0, + "updated": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe.customer/customer_save**](https://api.iamport.kr/#!/subscribe.customer/customer_save) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe.customer/customer\_save**](https://api.iamport.kr/#!/subscribe.customer/customer_save) diff --git a/src/content/docs/en/api/billing-key-api/delete-billing-key-api.mdx b/src/content/docs/en/api/billing-key-api/delete-billing-key-api.mdx index 239fbb720..5fc894b9d 100644 --- a/src/content/docs/en/api/billing-key-api/delete-billing-key-api.mdx +++ b/src/content/docs/en/api/billing-key-api/delete-billing-key-api.mdx @@ -4,198 +4,185 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Deletes a billing key. You must check for any scheduled payments on the billing key. +## Deletes a billing key. You must check for any scheduled payments on the billing key. - -A deleted billing key cannot be restored. - - - -### Parameters - -#### Path - - - - -**Billing key** + + A deleted billing key cannot be restored. + - + ### Parameters - + #### Path -#### Query + + + **Billing key** + + - -**Reason for deletion** + #### Query - - -**Requester** + + **Reason for deletion** + -(for Naver Pay only) + + **Requester** - + (for Naver Pay only) + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***\*\* ****string\*\* + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`** **(CustomerAnnotation, optional)** + **`response`** **(CustomerAnnotation, optional)** + + - - + + + **`code`** **\*** **integer** - - -**`code`** **\*** **integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***\*\* ****string\*\* + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`customer_uid`** **\*** **string** -**`customer_uid`** **\*** **string** + **`Customer ID`** -**`Customer ID`**\ + **`pg_provider`** **\*** **string** -**`pg_provider`** **\***\*\* ****string\*\* + **PG code for billing key** -**PG code for billing key** + **`pg_id`** **\*** **string** -**`pg_id`** **\***\*\* ****string\*\* + **PG merchant ID (MID) for billing key** -**PG merchant ID (MID) for billing key** + **`card_name`** **\*** **string** -**`card_name`** **\*** **string** + **`Credit card name`** -**`Credit card name`** + **`card_code`** **\*** **string** -**`card_code`** **\***\*\* ****string\*\* + **`Credit card code`** -**`Credit card code`** + **`card_number`** **\*** **string** -**`card_number`** **\***\*\* ****string\*\* + **`Masked card number`** -**`Masked card number`** + **`card_type`** **\*** **string** -**`card_type`** **\***\*\* ****string\*\* + **`Credit card type`** -**`Credit card type`** + **Not supported in some PGs (returns null)** -**Not supported in some PGs (returns null)** + **`customer_name`** **\*** **string** -**`customer_name`** **\***\*\* ****string\*\* + **`Customer name`** -**`Customer name`** + **`customer_tel`** **\*** **string** -**`customer_tel`** **\*** **string** + **`Customer phone`** -**`Customer phone`** + **`customer_email`** **\*** **string** -**`customer_email`** **\***\*\* ****string\*\* + **`Customer email`** -**`Customer email`** + **`customer_addr`** **\*** **string** -**`customer_addr`** **\***\*\* ****string\*\* + **`Customer address`** -**`Customer address`** + **`customer_postcode`** **\*** **string** -**`customer_postcode`** **\***\*\* ****string\*\* + **`Customer zip code`** -**`Customer zip code`** + **`inserted`** **\*** **integer** -**`inserted`** **\***\*\* ****integer\*\* + **`Billing key issued at`** (UNIX timestamp) -**`Billing key issued at`** (UNIX timestamp) + **`updated`** **\*** **integer** -**`updated`** **\***\*\* ****integer\*\* + **`Billing key updated at`** (UNIX timestamp) + + + -**`Billing key updated at`** (UNIX timestamp) - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "customer_uid": "string", - "pg_provider": "string", - "pg_id": "string", - "card_name": "string", - "card_code": "string", - "card_number": "string", - "card_type": "null", - "customer_name": "string", - "customer_tel": "string", - "customer_email": "string", - "customer_addr": "string", - "customer_postcode": "string", - "inserted": 0, - "updated": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "customer_uid": "string", + "pg_provider": "string", + "pg_id": "string", + "card_name": "string", + "card_code": "string", + "card_number": "string", + "card_type": "null", + "customer_name": "string", + "customer_tel": "string", + "customer_email": "string", + "customer_addr": "string", + "customer_postcode": "string", + "inserted": 0, + "updated": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe.customer/customer_delete**](https://api.iamport.kr/#!/subscribe.customer/customer_delete) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe.customer/customer\_delete**](https://api.iamport.kr/#!/subscribe.customer/customer_delete) diff --git a/src/content/docs/en/api/billing-key-api/get-billing-key-api.mdx b/src/content/docs/en/api/billing-key-api/get-billing-key-api.mdx index 44c98eea2..88fa2a1eb 100644 --- a/src/content/docs/en/api/billing-key-api/get-billing-key-api.mdx +++ b/src/content/docs/en/api/billing-key-api/get-billing-key-api.mdx @@ -4,184 +4,171 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets details of a billing key. +## Gets details of a billing key. - - - - -### Parameters - -#### Path - - - + -**Billing key** + ### Parameters - + #### Path - + + + **Billing key** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***\*\* ****string\*\* + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`** **(CustomerAnnotation, optional)** + **`response`** **(CustomerAnnotation, optional)** + + - - + + + **`code`** **\*** **integer** - - -**`code`** **\*** **integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***\*\* ****string\*\* + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`customer_uid`** **\*** **string** -**`customer_uid`** **\*** **string** + **`Customer ID`** -**`Customer ID`**\ + **`pg_provider`** **\*** **string** -**`pg_provider`** **\***\*\* ****string\*\* + **PG code for billing key** -**PG code for billing key** + **`pg_id`** **\*** **string** -**`pg_id`** **\***\*\* ****string\*\* + **PG merchant ID (MID) for billing key** -**PG merchant ID (MID) for billing key** + **`card_name`** **\*** **string** -**`card_name`** **\*** **string** + **`Credit card name`** -**`Credit card name`** + **`card_code`** **\*** **string** -**`card_code`** **\***\*\* ****string\*\* + **`Credit card code`** -**`Credit card code`** + **`card_number`** **\*** **string** -**`card_number`** **\***\*\* ****string\*\* + **`Masked card number`** -**`Masked card number`** + **`card_type`** **\*** **string** -**`card_type`** **\***\*\* ****string\*\* + **`Credit card type`** -**`Credit card type`** + **Not supported in some PGs (returns null)** -**Not supported in some PGs (returns null)** + **`customer_name`** **\*** **string** -**`customer_name`** **\***\*\* ****string\*\* + **`Customer name`** -**`Customer name`** + **`customer_tel`** **\*** **string** -**`customer_tel`** **\*** **string** + **`Customer phone`** -**`Customer phone`** + **`customer_email`** **\*** **string** -**`customer_email`** **\***\*\* ****string\*\* + **`Customer email`** -**`Customer email`** + **`customer_addr`** **\*** **string** -**`customer_addr`** **\***\*\* ****string\*\* + **`Customer address`** -**`Customer address`** + **`customer_postcode`** **\*** **string** -**`customer_postcode`** **\***\*\* ****string\*\* + **`Customer zip code`** -**`Customer zip code`** + **`inserted`** **\*** **integer** -**`inserted`** **\***\*\* ****integer\*\* + **`Billing key issued at`** (UNIX timestamp) -**`Billing key issued at`** (UNIX timestamp) + **`updated`** **\*** **integer** -**`updated`** **\***\*\* ****integer\*\* + **`Billing key updated at`** (UNIX timestamp) + + + -**`Billing key updated at`** (UNIX timestamp) - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "customer_uid": "string", - "pg_provider": "string", - "pg_id": "string", - "card_name": "string", - "card_code": "string", - "card_number": "string", - "card_type": "null", - "customer_name": "string", - "customer_tel": "string", - "customer_email": "string", - "customer_addr": "string", - "customer_postcode": "string", - "inserted": 0, - "updated": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "customer_uid": "string", + "pg_provider": "string", + "pg_id": "string", + "card_name": "string", + "card_code": "string", + "card_number": "string", + "card_type": "null", + "customer_name": "string", + "customer_tel": "string", + "customer_email": "string", + "customer_addr": "string", + "customer_postcode": "string", + "inserted": 0, + "updated": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe.customer/customer_view**](https://api.iamport.kr/#!/subscribe.customer/customer_view) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe.customer/customer\_view**](https://api.iamport.kr/#!/subscribe.customer/customer_view) diff --git a/src/content/docs/en/api/billing-key-api/get-billing-keys-api.mdx b/src/content/docs/en/api/billing-key-api/get-billing-keys-api.mdx index 9ef6dd6d4..793df1119 100644 --- a/src/content/docs/en/api/billing-key-api/get-billing-keys-api.mdx +++ b/src/content/docs/en/api/billing-key-api/get-billing-keys-api.mdx @@ -4,195 +4,183 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets details of multiple billing keys. +## Gets details of multiple billing keys. - -Gets details (card info) of billing keys for the specified array of customer_uid - -_s._ - -Each card is mapped to a unique - -**customer_uid** - -. - - - -### Parameters - -#### Query - - - + + Gets details (card info) of billing keys for the specified array of customer\_uid -**Billing key** + _s._ - + Each card is mapped to a unique - + **customer\_uid** -### Responses + . + - - - -**`code`** **\***** ****integer** + ### Parameters -**Response code** + #### Query -0: success, Not 0: check the message + + + **Billing key** + + -**`message`** **\***\*\* ****string\*\* + ### Responses -**Response message** + + + + **`code`** **\*** **integer** -A non-zero code includes a message like 'Invalid payment info'. + **Response code** -**`response`** **(CustomerAnnotation, optional)** + 0: success, Not 0: check the message - - + **`message`** **\*** **string** - - -**`code`** **\*** **integer** + **Response message** -**Response code** + A non-zero code includes a message like 'Invalid payment info'. -0: success, Not 0: check the message + **`response`** **(CustomerAnnotation, optional)** + + -**`message`** **\***\*\* ****string\*\* + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info'. + 0: success, Not 0: check the message -**`customer_uid`** **\*** **string** + **`message`** **\*** **string** -**`Customer ID`**\ + **Response message** -**`pg_provider`** **\***\*\* ****string\*\* + A non-zero code includes a message like 'Invalid payment info'. -**PG code for billing key** + **`customer_uid`** **\*** **string** -**`pg_id`** **\***\*\* ****string\*\* + **`Customer ID`** -**PG merchant ID (MID) for billing key** + **`pg_provider`** **\*** **string** -**`card_name`** **\*** **string** + **PG code for billing key** -**`Credit card name`** + **`pg_id`** **\*** **string** -**`card_code`** **\***\*\* ****string\*\* + **PG merchant ID (MID) for billing key** -**`Credit card code`** + **`card_name`** **\*** **string** -**`card_number`** **\***\*\* ****string\*\* + **`Credit card name`** -**`Masked card number`** + **`card_code`** **\*** **string** -**`card_type`** **\***\*\* ****string\*\* + **`Credit card code`** -**`Credit card type`** + **`card_number`** **\*** **string** -**Not supported in some PGs (returns null)** + **`Masked card number`** -**`customer_name`** **\***\*\* ****string\*\* + **`card_type`** **\*** **string** -**`Customer name`** + **`Credit card type`** -**`customer_tel`** **\*** **string** + **Not supported in some PGs (returns null)** -**`Customer phone`** + **`customer_name`** **\*** **string** -**`customer_email`** **\***\*\* ****string\*\* + **`Customer name`** -**`Customer email`** + **`customer_tel`** **\*** **string** -**`customer_addr`** **\***\*\* ****string\*\* + **`Customer phone`** -**`Customer address`** + **`customer_email`** **\*** **string** -**`customer_postcode`** **\***\*\* ****string\*\* + **`Customer email`** -**`Customer zip code`** + **`customer_addr`** **\*** **string** -**`inserted`** **\***\*\* ****integer\*\* + **`Customer address`** -**`Billing key issued at`** (UNIX timestamp) + **`customer_postcode`** **\*** **string** -**`updated`** **\***\*\* ****integer\*\* + **`Customer zip code`** -**`Billing key updated at`** (UNIX timestamp) + **`inserted`** **\*** **integer** - - + **`Billing key issued at`** (UNIX timestamp) - + **`updated`** **\*** **integer** - -```javascript -{ - // Response -} -``` + **`Billing key updated at`** (UNIX timestamp) + + + - - - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "customer_uid": "string", - "pg_provider": "string", - "pg_id": "string", - "card_name": "string", - "card_code": "string", - "card_number": "string", - "card_type": "null", - "customer_name": "string", - "customer_tel": "string", - "customer_email": "string", - "customer_addr": "string", - "customer_postcode": "string", - "inserted": 0, - "updated": 0 + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "pg_provider": "string", + "pg_id": "string", + "card_name": "string", + "card_code": "string", + "card_number": "string", + "card_type": "null", + "customer_name": "string", + "customer_tel": "string", + "customer_email": "string", + "customer_addr": "string", + "customer_postcode": "string", + "inserted": 0, + "updated": 0 + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe.customer/customer_view_multiple**](https://api.iamport.kr/#!/subscribe.customer/customer_view_multiple) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe.customer/customer\_view\_multiple**](https://api.iamport.kr/#!/subscribe.customer/customer_view_multiple) diff --git a/src/content/docs/en/api/billing-key-api/get-scheduled-payments-api.mdx b/src/content/docs/en/api/billing-key-api/get-scheduled-payments-api.mdx index 632651f0a..01995d2ca 100644 --- a/src/content/docs/en/api/billing-key-api/get-scheduled-payments-api.mdx +++ b/src/content/docs/en/api/billing-key-api/get-scheduled-payments-api.mdx @@ -4,223 +4,210 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets scheduled payments by billing key. +## Gets scheduled payments by billing key. - -Returns scheduled payments using pagination (up to 3 months period). - - - -### Parameters - -#### Path - - - - -**Billing key** - - - - - -#### Query + + Returns scheduled payments using pagination (up to 3 months period). + - -**Search result paging** + ### Parameters -Starts at 1 (default: 1) + #### Path - - -**Search start time** + + + **Billing key** + + -UNIX timestamp + #### Query - - -**Search end time** + + **Search result paging** -UNIX timestamp + Starts at 1 (default: 1) + - - -**Schedule status** + + **Search start time** -If not specified, returns for all status + UNIX timestamp + -`scheduled` + + **Search end time** -`executed` + UNIX timestamp + -`revoked` + + **Schedule status** - + If not specified, returns for all status -### Responses + `scheduled` - - - -**`code`** **\***** ****integer** + `executed` -**Response code** + `revoked` + -0: success, Not 0: check the message + ### Responses -**`message`** **\***** ****string** + + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info'. + 0: success, Not 0: check the message -**`response`** **(CustomerAnnotation, optional)** + **`message`** **\*** **string** - - + **Response message** - - -**`code`** **\*** **integer** + A non-zero code includes a message like 'Invalid payment info'. -**Response code** + **`response`** **(CustomerAnnotation, optional)** + + -0: success, Not 0: check the message + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`customer_uid`** **\*** **string** + **Response message** -**`Customer ID`**\ + A non-zero code includes a message like 'Invalid payment info'. -**`pg_provider`** **\***** ****string** + **`customer_uid`** **\*** **string** -**PG code for billing key** + **`Customer ID`** -**`pg_id`** **\***** ****string** + **`pg_provider`** **\*** **string** -**PG merchant ID (MID) for billing key** + **PG code for billing key** -**`card_name`** **\*** **string** + **`pg_id`** **\*** **string** -**`Credit card name`** + **PG merchant ID (MID) for billing key** -**`card_code`** **\***** ****string** + **`card_name`** **\*** **string** -**`Credit card code`** + **`Credit card name`** -**`card_number`** **\***** ****string** + **`card_code`** **\*** **string** -**`Masked card number`** + **`Credit card code`** -**`card_type`** **\***** ****string** + **`card_number`** **\*** **string** -**`Credit card type`** + **`Masked card number`** -**Not supported in some PGs (returns null)** + **`card_type`** **\*** **string** -**`customer_name`** **\***** ****string** + **`Credit card type`** -**`Customer name`** + **Not supported in some PGs (returns null)** -**`customer_tel`** **\*** **string** + **`customer_name`** **\*** **string** -**`Customer phone`** + **`Customer name`** -**`customer_email`** **\***** ****string** + **`customer_tel`** **\*** **string** -**`Customer email`** + **`Customer phone`** -**`customer_addr`** **\***** ****string** + **`customer_email`** **\*** **string** -**`Customer address`** + **`Customer email`** -**`customer_postcode`** **\***** ****string** + **`customer_addr`** **\*** **string** -**`Customer zip code`** + **`Customer address`** -**`inserted`** **\***** ****integer** + **`customer_postcode`** **\*** **string** -**`Billing key issued at`** (UNIX timestamp) + **`Customer zip code`** -**`updated`** **\***** ****integer** + **`inserted`** **\*** **integer** -**`Billing key updated at`** (UNIX timestamp) + **`Billing key issued at`** (UNIX timestamp) - - + **`updated`** **\*** **integer** - + **`Billing key updated at`** (UNIX timestamp) + + + - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "customer_uid": "string", - "merchant_uid": "string", - "imp_uid": "string", - "schedule_at": "0", - "executed_at": "0", - "revoked_at": "0", - "amount": 0, - "name": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "schedule_status": "scheduled", - "payment_status": "paid", - "fail_reason": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "merchant_uid": "string", + "imp_uid": "string", + "schedule_at": "0", + "executed_at": "0", + "revoked_at": "0", + "amount": 0, + "name": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "schedule_status": "scheduled", + "payment_status": "paid", + "fail_reason": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe.customer/findSchedulesByCustomer**](https://api.iamport.kr/#!/subscribe.customer/findSchedulesByCustomer) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe.customer/findSchedulesByCustomer**](https://api.iamport.kr/#!/subscribe.customer/findSchedulesByCustomer) diff --git a/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-external-api.mdx b/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-external-api.mdx index 8227b0abb..7578eb771 100644 --- a/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-external-api.mdx +++ b/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-external-api.mdx @@ -4,185 +4,168 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Cancels a cash receipt issued for an external transaction. +## Cancels a cash receipt issued for an external transaction.
-

Supported PGs

- -- **KG INICIS** -- **NHN KCP** -- **Settle Bank** -- **NICE Payments** -- **PAYJOA (Daou)** -- **KICC** - +

Supported PGs

+ + - **KG INICIS** + - **NHN KCP** + - **Settle Bank** + - **NICE Payments** + - **PAYJOA (Daou)** + - **KICC**
- -This cancels the issuance of a cash receipt for a payment processed externally through an i'mport supported PG. Pass the - -**merchant_uid** - -, the unique order number for the cash transaction, that was used to request the issuance of cash receipt. - - - -### Parameters - -#### Path + + This cancels the issuance of a cash receipt for a payment processed externally through an i'mport supported PG. Pass the - - + **merchant\_uid** -**i'mport transaction ID** + , the unique order number for the cash transaction, that was used to request the issuance of cash receipt. + - + ### Parameters - + #### Path - + + + **i'mport transaction ID** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`****`(ExternalReceiptAnnotation, optional)`** + **`response`****`(ExternalReceiptAnnotation, optional)`** + + - - + + + **`imp_uid`` `****`*`****`string`** - - -**`imp_uid`` `****`*`****`string`** + **`i'mport transaction ID`** -**`i'mport transaction ID`** + **`receipt_tid`` `****`string`** -**`receipt_tid`` `****`string`** + **`Cash receipt ID issued by PG`** -**`Cash receipt ID issued by PG`** + **`apply_num`****`*`****`string`** -**`apply_num`****`*`****`string`** + **`Cash receipt ID issued by National Tax Service`** -**`Cash receipt ID issued by National Tax Service`** + **`type`` `****`*`****`string`** -**`type`` `****`*`****`string`** + **`Recipient type`** -**`Recipient type`** + - Personal use: `person` + - Business use: `company` -- Personal use: `person` -- Business use: `company` + **`amount`****`*`****`integer`** -**`amount`****`*`****`integer`** + **`Cash receipt Amount`** -**`Cash receipt Amount`** + **`vat`****`*`****`integer`** -**`vat`****`*`****`integer`** + **`VAT`** -**`VAT`** + **`receipt_url`` `****`string`** -**`receipt_url`` `****`string`** + **`Cash receipt URL`** -**`Cash receipt URL`** + **`applied_at`****`*`****`integer`** -**`applied_at`****`*`****`integer`** + **Issued at** `UNIX TIMESTAMP` -**Issued at** `UNIX TIMESTAMP` + **`cancelled_at`` `****`integer`** -**`cancelled_at`` `****`integer`** + **`Cancelled at`** `UNIX TIMESTAMP` + + + -**`Cancelled at`** `UNIX TIMESTAMP` + + ```ts + { + // Response + } + ``` + - - + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "merchant_uid": "string", - "receipt_tid": "string", - "apply_num": "string", - "type": "person", - "amount": 0, - "vat": 0, - "receipt_url": "string", - "applied_at": 0, - "cancelled_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "merchant_uid": "string", + "receipt_tid": "string", + "apply_num": "string", + "type": "person", + "amount": 0, + "vat": 0, + "receipt_url": "string", + "applied_at": 0, + "cancelled_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/receipts/revokeExternalReceipt**](https://api.iamport.kr/#!/receipts/revokeExternalReceipt) + **Swagger Test Link** + [**https://api.iamport.kr/#!/receipts/revokeExternalReceipt**](https://api.iamport.kr/#!/receipts/revokeExternalReceipt) diff --git a/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-transaction-api.mdx b/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-transaction-api.mdx index 4c89abbc0..8f115e025 100644 --- a/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-transaction-api.mdx +++ b/src/content/docs/en/api/cash-receipt-api/cancel-cash-receipt-transaction-api.mdx @@ -4,180 +4,164 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Cancels cash receipt transaction processed through i'mport. +## Cancels cash receipt transaction processed through i'mport.
-

Supported PGs

- -- **KG INICIS** -- **NHN KCP** -- **Settle Bank** -- **NICE Payments** -- **PAYJOA (Daou)** -- **KICC** - +

Supported PGs

+ + - **KG INICIS** + - **NHN KCP** + - **Settle Bank** + - **NICE Payments** + - **PAYJOA (Daou)** + - **KICC**
- -(To cancel cash receipt transactions not related to i'mport, refer to - -[**link**](http://localhost:5000/s/wWX2hlvRZLZrXeH1aacF/api/api-8/api-3) - - - -**.** - - - -) + + (To cancel cash receipt transactions not related to i'mport, refer to - + [**link**](http://localhost:5000/s/wWX2hlvRZLZrXeH1aacF/api/api-8/api-3) -### Parameters + + **.** + -#### Path + ) + - - + ### Parameters -**i'mport transaction ID** + #### Path - + + + **i'mport transaction ID** + + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***** ****string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`response`` `****`(ReceiptAnnotation, optional)`** + + -**`response`` `****`(ReceiptAnnotation, optional)`** + + + **`imp_uid`` `****`*`****`string`** - - + **`i'mport transaction ID`** - - -**`imp_uid`` `****`*`****`string`** + **`receipt_tid`` `****`string`** -**`i'mport transaction ID`** + **`Cash receipt ID issued by PG`** -**`receipt_tid`` `****`string`** + **`apply_num`****`*`****`string`** -**`Cash receipt ID issued by PG`** + **`Cash receipt ID issued by National Tax Service`** -**`apply_num`****`*`****`string`** + **`type`` `****`*`****`string`** -**`Cash receipt ID issued by National Tax Service`** + **`Recipient type`** -**`type`` `****`*`****`string`** + - Personal use: `person` + - Business use: `company` -**`Recipient type`** + **`amount`****`*`****`integer`** -- Personal use: `person` -- Business use: `company` + **`Cash receipt Amount`** -**`amount`****`*`****`integer`** + **`vat`****`*`****`integer`** -**`Cash receipt Amount`** + **`VAT`** -**`vat`****`*`****`integer`** + **`receipt_url`` `****`string`** -**`VAT`** + **`Cash receipt URL`** -**`receipt_url`` `****`string`** + **`applied_at`****`*`****`integer`** -**`Cash receipt URL`** + **Issued at** `UNIX TIMESTAMP` -**`applied_at`****`*`****`integer`** + **`cancelled_at`` `****`integer`** -**Issued at** `UNIX TIMESTAMP` + **`Cancelled at`** `UNIX TIMESTAMP` + + + -**`cancelled_at`` `****`integer`** + + ```ts + { + // Response + } + ``` + -**`Cancelled at`** `UNIX TIMESTAMP` - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "receipt_tid": "string", - "apply_num": "string", - "type": "person", - "amount": 0, - "vat": 0, - "receipt_url": "string", - "applied_at": 0, - "cancelled_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "receipt_tid": "string", + "apply_num": "string", + "type": "person", + "amount": 0, + "vat": 0, + "receipt_url": "string", + "applied_at": 0, + "cancelled_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/receipts/revokeReceipt**](https://api.iamport.kr/#!/receipts/revokeReceipt) + **Swagger Test Link** + [**https://api.iamport.kr/#!/receipts/revokeReceipt**](https://api.iamport.kr/#!/receipts/revokeReceipt) diff --git a/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-api.mdx b/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-api.mdx index 24ceea8b1..ca11302e3 100644 --- a/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-api.mdx +++ b/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-api.mdx @@ -4,148 +4,135 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets cash receipt information issued via i'mport. +## Gets cash receipt information issued via i'mport. - - - - -### Parameters - -#### Path - - - + -**i'mport transaction ID** + ### Parameters - + #### Path - + + + **i'mport transaction ID** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`` `****`(ReceiptAnnotation, optional)`** + **`response`` `****`(ReceiptAnnotation, optional)`** + + - - + + + **`imp_uid`` `****`*`****`string`** - - -**`imp_uid`` `****`*`****`string`** + **`i'mport transaction ID`** -**`i'mport transaction ID`** + **`receipt_tid`` `****`string`** -**`receipt_tid`` `****`string`** + **`Cash receipt ID issued by PG`** -**`Cash receipt ID issued by PG`** + **`apply_num`****`*`****`string`** -**`apply_num`****`*`****`string`** + **`Cash receipt ID issued by National Tax Service`** -**`Cash receipt ID issued by National Tax Service`** + **`type`` `****`*`****`string`** -**`type`` `****`*`****`string`** + **`Recipient type`** -**`Recipient type`** + - Personal use: `person` + - Business use: `company` -- Personal use: `person` -- Business use: `company` + **`amount`****`*`****`integer`** -**`amount`****`*`****`integer`** + **`Cash receipt Amount`** -**`Cash receipt Amount`** + **`vat`****`*`****`integer`** -**`vat`****`*`****`integer`** + **`VAT`** -**`VAT`** + **`receipt_url`` `****`string`** -**`receipt_url`` `****`string`** + **`Cash receipt URL`** -**`Cash receipt URL`** + **`applied_at`****`*`****`integer`** -**`applied_at`****`*`****`integer`** + **Issued at** `UNIX TIMESTAMP` -**Issued at** `UNIX TIMESTAMP` + **`cancelled_at`` `****`integer`** -**`cancelled_at`` `****`integer`** + **`Cancelled at`** `UNIX TIMESTAMP` + + + -**`Cancelled at`** `UNIX TIMESTAMP` - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "receipt_tid": "string", - "apply_num": "string", - "type": "person", - "amount": 0, - "vat": 0, - "receipt_url": "string", - "applied_at": 0, - "cancelled_at": 0 - } -} -``` - +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "receipt_tid": "string", + "apply_num": "string", + "type": "person", + "amount": 0, + "vat": 0, + "receipt_url": "string", + "applied_at": 0, + "cancelled_at": 0 + } + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/receipts/getReceipt**](https://api.iamport.kr/#!/receipts/getReceipt) + **Swagger Test Link** + [**https://api.iamport.kr/#!/receipts/getReceipt**](https://api.iamport.kr/#!/receipts/getReceipt) diff --git a/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-external-api.mdx b/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-external-api.mdx index b9222bc24..60fc276af 100644 --- a/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-external-api.mdx +++ b/src/content/docs/en/api/cash-receipt-api/get-cash-receipt-external-api.mdx @@ -4,148 +4,135 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets cash receipt information for an external transaction. +## Gets cash receipt information for an external transaction. - - - - -### Parameters - -#### Path - - - + -**i'mport transaction ID** + ### Parameters - + #### Path - + + + **i'mport transaction ID** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`****`(ExternalReceiptAnnotation, optional)`** + **`response`****`(ExternalReceiptAnnotation, optional)`** + + - - + + + **`imp_uid`` `****`*`****`string`** - - -**`imp_uid`` `****`*`****`string`** + **`i'mport transaction ID`** -**`i'mport transaction ID`** + **`receipt_tid`` `****`string`** -**`receipt_tid`` `****`string`** + **`Cash receipt ID issued by PG`** -**`Cash receipt ID issued by PG`** + **`apply_num`****`*`****`string`** -**`apply_num`****`*`****`string`** + **`Cash receipt ID issued by National Tax Service`** -**`Cash receipt ID issued by National Tax Service`** + **`type`` `****`*`****`string`** -**`type`` `****`*`****`string`** + **`Recipient type`** -**`Recipient type`** + - Personal use: `person` + - Business use: `company` -- Personal use: `person` -- Business use: `company` + **`amount`****`*`****`integer`** -**`amount`****`*`****`integer`** + **`Cash receipt Amount`** -**`Cash receipt Amount`** + **`vat`****`*`****`integer`** -**`vat`****`*`****`integer`** + **`VAT`** -**`VAT`** + **`receipt_url`` `****`string`** -**`receipt_url`` `****`string`** + **`Cash receipt URL`** -**`Cash receipt URL`** + **`applied_at`****`*`****`integer`** -**`applied_at`****`*`****`integer`** + **Issued at** `UNIX TIMESTAMP` -**Issued at** `UNIX TIMESTAMP` + **`cancelled_at`` `****`integer`** -**`cancelled_at`` `****`integer`** + **`Cancelled at`** `UNIX TIMESTAMP` + + + -**`Cancelled at`** `UNIX TIMESTAMP` - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "merchant_uid": "string", - "receipt_tid": "string", - "apply_num": "string", - "type": "person", - "amount": 0, - "vat": 0, - "receipt_url": "string", - "applied_at": 0, - "cancelled_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "merchant_uid": "string", + "receipt_tid": "string", + "apply_num": "string", + "type": "person", + "amount": 0, + "vat": 0, + "receipt_url": "string", + "applied_at": 0, + "cancelled_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/receipts/getExternalReceipt**](https://api.iamport.kr/#!/receipts/getExternalReceipt) + **Swagger Test Link** + [**https://api.iamport.kr/#!/receipts/getExternalReceipt**](https://api.iamport.kr/#!/receipts/getExternalReceipt) diff --git a/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-api.mdx b/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-api.mdx index 99982c3f7..a8127e483 100644 --- a/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-api.mdx +++ b/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-api.mdx @@ -4,210 +4,194 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests cash receipt for a cash transaction. +## Requests cash receipt for a cash transaction. A cash receipt is issued for the i'mport transaction number (**`imp_uid`**) of the cash transaction (**virtual account, account transfer**) processed through i'mport. The cash receipt amount is **automatically applied as cash transaction amount**. For a partially cancelled transaction, cash receipt is **issued for the remaining balance**.
-

Supported PGs

- -- **KG INICIS** -- **NHN KCP** -- **Settle Bank** -- **NICE Payments** -- **PAYJOA (Daou)** -- **KICC** - +

Supported PGs

+ + - **KG INICIS** + - **NHN KCP** + - **Settle Bank** + - **NICE Payments** + - **PAYJOA (Daou)** + - **KICC**
- - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** + - + ### Parameters - + #### Path -#### Body + + + **i'mport transaction ID** + + - - + #### Body -**Cash receipt code** + + + **Cash receipt code** + + - + + **Cash receipt code type** - - -**Cash receipt code type** + `person: social security number` -`person: social security number` + `business: business registration number` -`business: business registration number` + `phone: mobile phone number` -`phone: mobile phone number` + `taxcard: National Tax Service cash receipt card` + -`taxcard: National Tax Service cash receipt card` + + **Cash receipt type** - - -**Cash receipt type** + `For income deduction (personal) : person` -`For income deduction (personal) : person` + `For proof of expenses (business) : company` -`For proof of expenses (business) : company` + `Default: person` + -`Default: person` + + **Merchant's customer service phone** - - -**Merchant's customer service phone** + (Required for PayJoa only) + -(Required for PayJoa only) + + **Merchant's business name** - - -**Merchant's business name** + (Required for PayJoa only) + -(Required for PayJoa only) + + **Merchant's business registration number** - - -**Merchant's business registration number** + (Required for PayJoa only) + -(Required for PayJoa only) + + **Customer name** + - - -**Customer name** + + **Customer email** + - - -**Customer email** + + **Customer phone** + - - -**Customer phone** + + **Tax free amount** + - - -**Tax free amount** + ### Responses - + + + + **`code`** **\*** **integer** -### Responses + **Response code** - - - -**`code`** **\***** ****integer** + 0: success, Not 0: check the message -**Response code** + **`message`** **\*** **string** -0: success, Not 0: check the message + **Response message** -**`message`** **\***** ****string** + A non-zero code includes a message like 'Invalid payment info'. -**Response message** + **`response`` `****`(ReceiptAnnotation, optional)`** + + -A non-zero code includes a message like 'Invalid payment info'. + + + **`imp_uid`` `****`*`****`string`** -**`response`` `****`(ReceiptAnnotation, optional)`** + **`i'mport transaction ID`** - - + **`receipt_tid`` `****`string`** - - -**`imp_uid`` `****`*`****`string`** + **`Cash receipt ID issued by PG`** -**`i'mport transaction ID`** + **`apply_num`****`*`****`string`** -**`receipt_tid`` `****`string`** + **`Cash receipt ID issued by National Tax Service`** -**`Cash receipt ID issued by PG`** + **`type`` `****`*`****`string`** -**`apply_num`****`*`****`string`** + **`Recipient type`** -**`Cash receipt ID issued by National Tax Service`** + - Personal use: `person` + - Business use: `company` -**`type`` `****`*`****`string`** + **`amount`****`*`****`integer`** -**`Recipient type`** + **`Cash receipt Amount`** -- Personal use: `person` -- Business use: `company` + **`vat`****`*`****`integer`** -**`amount`****`*`****`integer`** + **`VAT`** -**`Cash receipt Amount`** + **`receipt_url`` `****`string`** -**`vat`****`*`****`integer`** + **`Cash receipt URL`** -**`VAT`** + **`applied_at`****`*`****`integer`** -**`receipt_url`` `****`string`** + **Issued at** `UNIX TIMESTAMP` -**`Cash receipt URL`** + **`cancelled_at`` `****`integer`** -**`applied_at`****`*`****`integer`** + **`Cancelled at`** `UNIX TIMESTAMP` + + + -**Issued at** `UNIX TIMESTAMP` + + ```ts + { + // Response + } + ``` + -**`cancelled_at`` `****`integer`** - -**`Cancelled at`** `UNIX TIMESTAMP` - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -223,37 +207,35 @@ A non-zero code includes a message like 'Invalid payment info'. > > **`Cash receipt code type`** > -> **Required for**** KICC and Settlebank only** +> **Required for** **KICC and Settlebank only** > > Request for KG INICIS/NHN KCP/Nice Payments/PayJoa is automatically processed with only the > **identifier.**
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "receipt_tid": "string", - "apply_num": "string", - "type": "person", - "amount": 0, - "vat": 0, - "receipt_url": "string", - "applied_at": 0, - "cancelled_at": 0 - } -} -``` - +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "receipt_tid": "string", + "apply_num": "string", + "type": "person", + "amount": 0, + "vat": 0, + "receipt_url": "string", + "applied_at": 0, + "cancelled_at": 0 + } + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/receipts/issueReceipt**](https://api.iamport.kr/#!/receipts/issueReceipt) + **Swagger Test Link** + [**https://api.iamport.kr/#!/receipts/issueReceipt**](https://api.iamport.kr/#!/receipts/issueReceipt) diff --git a/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-external-api.mdx b/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-external-api.mdx index f307ad6fa..cd18d94dc 100644 --- a/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-external-api.mdx +++ b/src/content/docs/en/api/cash-receipt-api/request-cash-receipt-external-api.mdx @@ -4,219 +4,202 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests a cash receipt for an external cash transaction. +## Requests a cash receipt for an external cash transaction.
-

Supported PGs

- -- **KG INICIS** -- **NHN KCP** -- **Settle Bank** -- **NICE Payments** -- **PAYJOA (Daou)** -- **KICC** - +

Supported PGs

+ + - **KG INICIS** + - **NHN KCP** + - **Settle Bank** + - **NICE Payments** + - **PAYJOA (Daou)** + - **KICC**
- -A cash receipt can be issued for a non-i'mport transaction. However, the order number must be the same as the cash transaction order number so that it can be replaced later. - -If the `pg` parameter is not specified, the request will be processed using the default PG. - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** + + A cash receipt can be issued for a non-i'mport transaction. However, the order number must be the same as the cash transaction order number so that it can be replaced later. - + If the `pg` parameter is not specified, the request will be processed using the default PG. + - + ### Parameters -#### Body + #### Path - - + + + **i'mport transaction ID** + + -**Order name** + #### Body - + + + **Order name** + + - - - + + + **Amount** + + -**Amount** + + **Cash receipt code** - + `National Tax Service cash receipt card` - - -**Cash receipt code** + `Mobile phone number` -`National Tax Service cash receipt card` + `Social security number` -`Mobile phone number` + `Business registration number` -`Social security number` + `Mobile phone number` + -`Business registration number` + + **Cash receipt code type** -`Mobile phone number` + `person: social security number` - - -**Cash receipt code type** + `business: business registration number` -`person: social security number` + `phone: mobile phone number` -`business: business registration number` + `taxcard: National Tax Service cash receipt card` + -`phone: mobile phone number` + + **Cash receipt type** -`taxcard: National Tax Service cash receipt card` + `For income deduction (personal) : person` - - -**Cash receipt type** + `For proof of expenses (business) : company` -`For income deduction (personal) : person` + `Default: person` + -`For proof of expenses (business) : company` + + **Customer name** + -`Default: person` + + **Customer email** + - - -**Customer name** + + **Customer phone** + - - -**Customer email** + + **Tax free amount** + - - -**Customer phone** + + **PG code** + - - -**Tax free amount** + ### Responses - - -**PG code** + + + + **`code`** **\*** **integer** - + **Response code** -### Responses + 0: success, Not 0: check the message - - - -**`code`** **\***** ****integer** + **`message`** **\*** **string** -**Response code** + **Response message** -0: success, Not 0: check the message + A non-zero code includes a message like 'Invalid payment info'. -**`message`** **\***** ****string** + **`response`****`(ExternalReceiptAnnotation, optional)`** + + -**Response message** + + + **`imp_uid`` `****`*`****`string`** -A non-zero code includes a message like 'Invalid payment info'. + **`i'mport transaction ID`** -**`response`****`(ExternalReceiptAnnotation, optional)`** + **`receipt_tid`` `****`string`** - - + **`Cash receipt ID issued by PG`** - - -**`imp_uid`` `****`*`****`string`** + **`apply_num`****`*`****`string`** -**`i'mport transaction ID`** + **`Cash receipt ID issued by National Tax Service`** -**`receipt_tid`` `****`string`** + **`type`` `****`*`****`string`** -**`Cash receipt ID issued by PG`** + **`Recipient type`** -**`apply_num`****`*`****`string`** + - Personal use: `person` + - Business use: `company` -**`Cash receipt ID issued by National Tax Service`** + **`amount`****`*`****`integer`** -**`type`` `****`*`****`string`** + **`Cash receipt Amount`** -**`Recipient type`** + **`vat`****`*`****`integer`** -- Personal use: `person` -- Business use: `company` + **`VAT`** -**`amount`****`*`****`integer`** + **`receipt_url`` `****`string`** -**`Cash receipt Amount`** + **`Cash receipt URL`** -**`vat`****`*`****`integer`** + **`applied_at`****`*`****`integer`** -**`VAT`** + **Issued at** `UNIX TIMESTAMP` -**`receipt_url`` `****`string`** + **`cancelled_at`` `****`integer`** -**`Cash receipt URL`** + **`Cancelled at`** `UNIX TIMESTAMP` + + + -**`applied_at`****`*`****`integer`** + + ```ts + { + // Response + } + ``` + -**Issued at** `UNIX TIMESTAMP` - -**`cancelled_at`` `****`integer`** - -**`Cancelled at`** `UNIX TIMESTAMP` - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -232,7 +215,7 @@ A non-zero code includes a message like 'Invalid payment info'. > > **`Cash receipt code type`** > -> **Required for**** KICC and Settlebank only** +> **Required for** **KICC and Settlebank only** > > Request for KG INICIS/NHN KCP/Nice Payments/PayJoa is automatically processed with only the > **identifier.** @@ -255,31 +238,29 @@ A non-zero code includes a message like 'Invalid payment info'. > - If you have multiple MIDs from NICE Payments, specify as **nice.MID1** or **nice.MID2**.
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "merchant_uid": "string", - "receipt_tid": "string", - "apply_num": "string", - "type": "person", - "amount": 0, - "vat": 0, - "receipt_url": "string", - "applied_at": 0, - "cancelled_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "merchant_uid": "string", + "receipt_tid": "string", + "apply_num": "string", + "type": "person", + "amount": 0, + "vat": 0, + "receipt_url": "string", + "applied_at": 0, + "cancelled_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/receipts/issueExternalReceipt**](https://api.iamport.kr/#!/receipts/issueExternalReceipt) + **Swagger Test Link** + [**https://api.iamport.kr/#!/receipts/issueExternalReceipt**](https://api.iamport.kr/#!/receipts/issueExternalReceipt) diff --git a/src/content/docs/en/api/escrow-api/add-delivery-info-api.mdx b/src/content/docs/en/api/escrow-api/add-delivery-info-api.mdx index 12c0ba476..b58ec7b39 100644 --- a/src/content/docs/en/api/escrow-api/add-delivery-info-api.mdx +++ b/src/content/docs/en/api/escrow-api/add-delivery-info-api.mdx @@ -4,172 +4,150 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Adds delivery info for an escrow transaction. +## Adds delivery info for an escrow transaction.
-

Supported PGs

- -- KG INICIS -- NHN KCP -- PAYJOA (Daou) +

Supported PGs

+ - KG INICIS + - NHN KCP + - PAYJOA (Daou)
- -The request body must be **2-depth JSON**. - -[**Courier codes**](../../tips/code) - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** - - - - - -#### Body - - - - -**Sender info** - - - - - - - -**Receiver info** - - - - - - - -**Delivery info** - - - - - -### Responses - - - - -**`code`** **\***** ****integer** - -**Response code** - -0: success, Not 0: check the message + + The request body must be **2-depth JSON**. -**`message`** **\***\*\* ****string\*\* + [**Courier codes**](../../tips/code) + -**Response message** + ### Parameters -A non-zero code includes a message like 'Invalid payment info'. + #### Path -**`response`****`(EscrowLogisAnnotation, optional)`** + + + **i'mport transaction ID** + + - - - - - -**`company`** **`*`****`string`** - -**`Courier code`** - -**`invoice`****`*`****`string`** - -**`Tracking number`** - -**`sent_at`****`*`****`integer`** - -**`Sent at`** _**UNIX TIMESTAMP**_ - -**`applied_at`**_**`*`**_**`integer`** - -**`Delivery info created at`** _**UNIX TIMESTAMP**_ - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + #### Body + + + **Sender info** + + + + + + **Receiver info** + + + + + + **Delivery info** + + + + ### Responses + + + + + **`code`** **\*** **integer** + + **Response code** + + 0: success, Not 0: check the message + + **`message`** **\*** **string** + + **Response message** + + A non-zero code includes a message like 'Invalid payment info'. + + **`response`****`(EscrowLogisAnnotation, optional)`** + + + + + + **`company`** **`*`****`string`** + + **`Courier code`** + + **`invoice`****`*`****`string`** + + **`Tracking number`** + + **`sent_at`****`*`****`integer`** + + **`Sent at`** _**UNIX TIMESTAMP**_ + + **`applied_at`**_**`*`**_**`integer`** + + **`Delivery info created at`** _**UNIX TIMESTAMP**_ + + + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -179,28 +157,27 @@ A non-zero code includes a message like 'Invalid payment info'. > **`Sender info`**
-

EscrowLogisSenderAnnotation

- -**`name (string, optional)`** +

EscrowLogisSenderAnnotation

-**`Sender's name (Required for: KG INICIS)`** + **`name (string, optional)`** -**`tel (string, optional)`** + **`Sender's name (Required for: KG INICIS)`** -**`Sender's phone (Required for: KG INICIS)`** + **`tel (string, optional)`** -**`addr (string, optional)`** + **`Sender's phone (Required for: KG INICIS)`** -**`Sender's address (Required for: KG INICIS)`** + **`addr (string, optional)`** -**`postcode (string, optional)`** + **`Sender's address (Required for: KG INICIS)`** -**`Sender's zip code (Required for: KG INICIS)`** + **`postcode (string, optional)`** -**`relationship (string, optional)`** + **`Sender's zip code (Required for: KG INICIS)`** -**`Relationship with sender (Required for: PAYJOA, Example: Self)`** + **`relationship (string, optional)`** + **`Relationship with sender (Required for: PAYJOA, Example: Self)`**
> **`receiver`****`*`****`Json`** @@ -208,24 +185,23 @@ A non-zero code includes a message like 'Invalid payment info'. > **`Receiver info`**
-

EscrowLogisReceiverAnnotation

- -**`name (string, optional)`** +

EscrowLogisReceiverAnnotation

-**`Receiver's name (Required for: KG INICIS)`** + **`name (string, optional)`** -**`tel (string, optional)`** + **`Receiver's name (Required for: KG INICIS)`** -**`Receiver's phone (Required for: KG INICIS)`** + **`tel (string, optional)`** -**`addr (string, optional)`** + **`Receiver's phone (Required for: KG INICIS)`** -**`Receiver's address (Required for: KG INICIS)`** + **`addr (string, optional)`** -**`postcode (string, optional)`** + **`Receiver's address (Required for: KG INICIS)`** -**`Receiver's zip code (Required for: KG INICIS)`** + **`postcode (string, optional)`** + **`Receiver's zip code (Required for: KG INICIS)`**
> **`logis`****`*`****`Json`** @@ -233,53 +209,50 @@ A non-zero code includes a message like 'Invalid payment info'. > **`Delivery info`**
-

EscrowLogisInfoAnnotation

+

EscrowLogisInfoAnnotation

-**`company (string)`** + **`company (string)`** -**`Courier code`** + **`Courier code`** -**`invoice (string)`** + **`invoice (string)`** -**`Tracking number`** + **`Tracking number`** -**`sent_at (integer)`** + **`sent_at (integer)`** -**`Sent at UNIX TIMESTAMP`** + **`Sent at UNIX TIMESTAMP`** -**`receiving_at (string, optional)`** + **`receiving_at (string, optional)`** -**`Received at (Required for: PAYJOA / Example: YYYYMMDD)`** + **`Received at (Required for: PAYJOA / Example: YYYYMMDD)`** -**`address (string, optional)`** - -**`Shipping address (Required for: PAYJOA)`** + **`address (string, optional)`** + **`Shipping address (Required for: PAYJOA)`**
### Response
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "company": "string", - "invoice": "string", - "sent_at": 0, - "applied_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "company": "string", + "invoice": "string", + "sent_at": 0, + "applied_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/escrow.logis/escrow_logis_save**](https://api.iamport.kr/#!/escrow.logis/escrow_logis_save) + **Swagger Test Link** + [**https://api.iamport.kr/#!/escrow.logis/escrow\_logis\_save**](https://api.iamport.kr/#!/escrow.logis/escrow_logis_save) diff --git a/src/content/docs/en/api/escrow-api/get-delivery-info-api.mdx b/src/content/docs/en/api/escrow-api/get-delivery-info-api.mdx index 42d4148a2..2a70182d2 100644 --- a/src/content/docs/en/api/escrow-api/get-delivery-info-api.mdx +++ b/src/content/docs/en/api/escrow-api/get-delivery-info-api.mdx @@ -4,147 +4,131 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets delivery information for an escrow payment transaction. +## Gets delivery information for an escrow payment transaction.
-

Supported PGs

- -- KG INICIS -- NHN KCP -- PAYJOA (Daou) +

Supported PGs

+ - KG INICIS + - NHN KCP + - PAYJOA (Daou)
- - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** + - + ### Parameters - + #### Path -### Responses + + + **i'mport transaction ID** + + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***\*\* ****string\*\* + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`response`****`(EscrowLogisAnnotation, optional)`** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`****`(EscrowLogisAnnotation, optional)`** + + - - -**`company`** **`*`****`string`** + + + **`company`** **`*`****`string`** -**`Courier code`** + **`Courier code`** -**`invoice`****`*`****`string`** + **`invoice`****`*`****`string`** -**`Tracking number`** + **`Tracking number`** -**`sent_at`****`*`****`integer`** + **`sent_at`****`*`****`integer`** -**`Sent at`** _**UNIX TIMESTAMP**_ + **`Sent at`** _**UNIX TIMESTAMP**_ -**`applied_at`**_**`*`**_**`integer`** + **`applied_at`**_**`*`**_**`integer`** -**`Delivery info created at`** _**UNIX TIMESTAMP**_ + **`Delivery info created at`** _**UNIX TIMESTAMP**_ + + + - - + + ```ts + { + // Response + } + ``` + - + + ```ts + { + // Response + } + ``` + - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "company": "string", - "invoice": "string", - "sent_at": 0, - "applied_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "company": "string", + "invoice": "string", + "sent_at": 0, + "applied_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/escrow.logis/escrow_logis_get**](https://api.iamport.kr/#!/escrow.logis/escrow_logis_get) + **Swagger Test Link** + [**https://api.iamport.kr/#!/escrow.logis/escrow\_logis\_get**](https://api.iamport.kr/#!/escrow.logis/escrow_logis_get) diff --git a/src/content/docs/en/api/escrow-api/readme.mdx b/src/content/docs/en/api/escrow-api/readme.mdx index 349fd1a2f..b5feb1f59 100644 --- a/src/content/docs/en/api/escrow-api/readme.mdx +++ b/src/content/docs/en/api/escrow-api/readme.mdx @@ -5,7 +5,7 @@ description: Learn about escrow service API. import ContentRef from "~/components/gitbook/ContentRef.astro"; -### Escrow API currently supports the following PGs: +## Escrow API currently supports the following PGs: - KG Inicis - NHN KCP diff --git a/src/content/docs/en/api/escrow-api/update-delivery-info-api.mdx b/src/content/docs/en/api/escrow-api/update-delivery-info-api.mdx index 03d1e4979..ac73acf55 100644 --- a/src/content/docs/en/api/escrow-api/update-delivery-info-api.mdx +++ b/src/content/docs/en/api/escrow-api/update-delivery-info-api.mdx @@ -4,138 +4,118 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; +import Hint from "~/components/Hint.astro"; -### Updates delivery info for an escrow transaction. +## Updates delivery info for an escrow transaction.
-

Supported PGs

- -- KG INICIS -- NHN KCP -- PAYJOA (Daou) +

Supported PGs

+ - KG INICIS + - NHN KCP + - PAYJOA (Daou)
- -The request body must be **2-depth JSON**. - -All parameters are required. Required properties for sender and receiver JSON objects vary by PG. - -All values, to be updated and maintained, must be specified. - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** - - - - - -#### Body - - - - -**Sender info** - - - - - - - -**Receiver info** - - - - - - - -**Delivery info** - - - - - -### Responses - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - + + The request body must be **2-depth JSON**. + + All parameters are required. Required properties for sender and receiver JSON objects vary by PG. + + All values, to be updated and maintained, must be specified. + + + ### Parameters + + #### Path + + + + **i'mport transaction ID** + + + + #### Body + + + + **Sender info** + + + + + + **Receiver info** + + + + + + **Delivery info** + + + + ### Responses + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -145,28 +125,27 @@ All values, to be updated and maintained, must be specified. > **`Sender info`**
-

EscrowLogisSenderAnnotation

- -**`name (string, optional)`** +

EscrowLogisSenderAnnotation

-**`Sender's name (Required for: KG INICIS)`** + **`name (string, optional)`** -**`tel (string, optional)`** + **`Sender's name (Required for: KG INICIS)`** -**`Sender's phone (Required for: KG INICIS)`** + **`tel (string, optional)`** -**`addr (string, optional)`** + **`Sender's phone (Required for: KG INICIS)`** -**`Sender's address (Required for: KG INICIS)`** + **`addr (string, optional)`** -**`postcode (string, optional)`** + **`Sender's address (Required for: KG INICIS)`** -**`Sender's zip code (Required for: KG INICIS)`** + **`postcode (string, optional)`** -**`relationship (string, optional)`** + **`Sender's zip code (Required for: KG INICIS)`** -**`Relationship with sender (Required for: PAYJOA, Example: Self)`** + **`relationship (string, optional)`** + **`Relationship with sender (Required for: PAYJOA, Example: Self)`**
> **`receiver`****`*`****`Json`** @@ -174,24 +153,23 @@ All values, to be updated and maintained, must be specified. > **`Receiver info`**
-

EscrowLogisReceiverAnnotation

+

EscrowLogisReceiverAnnotation

-**`name (string, optional)`** + **`name (string, optional)`** -**`Receiver's name (Required for: KG INICIS)`** + **`Receiver's name (Required for: KG INICIS)`** -**`tel (string, optional)`** + **`tel (string, optional)`** -**`Receiver's phone (Required for: KG INICIS)`** + **`Receiver's phone (Required for: KG INICIS)`** -**`addr (string, optional)`** + **`addr (string, optional)`** -**`Receiver's address (Required for: KG INICIS)`** + **`Receiver's address (Required for: KG INICIS)`** -**`postcode (string, optional)`** - -**`Receiver's zip code (Required for: KG INICIS)`** + **`postcode (string, optional)`** + **`Receiver's zip code (Required for: KG INICIS)`**
> **`logis`****`*`****`Json`** @@ -199,28 +177,27 @@ All values, to be updated and maintained, must be specified. > **`Delivery info`**
-

EscrowLogisInfoAnnotation

- -**`company (string)`** +

EscrowLogisInfoAnnotation

-**`Courier code`** + **`company (string)`** -**`invoice (string)`** + **`Courier code`** -**`Tracking number`** + **`invoice (string)`** -**`sent_at (integer)`** + **`Tracking number`** -**`Sent at UNIX TIMESTAMP`** + **`sent_at (integer)`** -**`receiving_at (string, optional)`** + **`Sent at UNIX TIMESTAMP`** -**`Received at (Required for: PAYJOA / Example: YYYYMMDD)`** + **`receiving_at (string, optional)`** -**`address (string, optional)`** + **`Received at (Required for: PAYJOA / Example: YYYYMMDD)`** -**`Shipping address (Required for: PAYJOA)`** + **`address (string, optional)`** + **`Shipping address (Required for: PAYJOA)`**
```json title="Request Body Sample" @@ -241,26 +218,24 @@ All values, to be updated and maintained, must be specified. ```
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "company": "string", - "invoice": "string", - "sent_at": 0, - "applied_at": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "company": "string", + "invoice": "string", + "sent_at": 0, + "applied_at": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/escrow.logis/escrow_logis_edit**](https://api.iamport.kr/#!/escrow.logis/escrow_logis_edit) + **Swagger Test Link** + [**https://api.iamport.kr/#!/escrow.logis/escrow\_logis\_edit**](https://api.iamport.kr/#!/escrow.logis/escrow_logis_edit) diff --git a/src/content/docs/en/api/identity-verification-api/confirm-identity-verification-api.mdx b/src/content/docs/en/api/identity-verification-api/confirm-identity-verification-api.mdx index 44e9d61d8..23499b6ce 100644 --- a/src/content/docs/en/api/identity-verification-api/confirm-identity-verification-api.mdx +++ b/src/content/docs/en/api/identity-verification-api/confirm-identity-verification-api.mdx @@ -4,239 +4,223 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Confirms the identity verification based on the submitted verification ID and OTP number. +## Confirms the identity verification based on the submitted verification ID and OTP number. - -If verification is successful, this return a response with the user's name, phone number, carrier, gender, foreigner status, date of birth, CI, and DI values. - -\ - - - -### Parameters - -#### Path - - - - -**i'mport verification ID** - - + + If verification is successful, this return a response with the user's name, phone number, carrier, gender, foreigner status, date of birth, CI, and DI values. + - + ### Parameters -#### Body + #### Path - - + + + **i'mport verification ID** + + -**OTP number received via SMS** + #### Body - + + + **OTP number received via SMS** + + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***** ****string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **response** **(CertificationAnnotation, optional)** + + -**response** **(CertificationAnnotation, optional)** + + + **`imp_uid`** \* **string** - - + **`verification ID`** - - -**`imp_uid`** \* **string** + **`merchant_uid`** **string** -**`verification ID`** + **`Order ID`** -**`merchant_uid`** **string** + **`pg_tid`** **string** -**`Order ID`** + **`PG verification ID`** -**`pg_tid`** **string** + **`pg_provider`** **\*** **string** -**`PG verification ID`** + **`PG provider`** -**`pg_provider`** **\***** ****string** + **`name`** **string** -**`PG provider`** + **`Name`** -**`name`** **string** + **`gender`** **string** -**`Name`** + **`Gender`** -**`gender`** **string** + - male + - female -**`Gender`** + **`birthday`** **string** -- male -- female + **`DOB`** -**`birthday` ****string** + ISO8601 date in string format. YYYY-MM-DD (10-digit) -**`DOB`** + **`foreigner`** **\*** **boolean** -ISO8601 date in string format. YYYY-MM-DD (10-digit) + **`Foreigner status`** -**`foreigner`** **\*** **boolean** + When signing a Danal identity verification service contract, + you must request to use foreigner identification service. -**`Foreigner status`** + - true : foreigner + - false : not foreigner -When signing a Danal identity verification service contract, you must request to use foreigner identification service. + **`phone`** **string** -- true : foreigner -- false : not foreigner + **`Mobile phone number`** -**`phone`** **string** + Returns mobile phone number with only numbers without special symbols. + This attribute is omitted unless pre-approved by the carrier. + For pre-approval from the carrier, send a request with your Danal CPID to **[cs@iamport.kr](mailto:cs@iamport.kr)**. -**`Mobile phone number`** + **`carrier`** **string** -Returns mobile phone number with only numbers without special symbols. This attribute is omitted unless pre-approved by the carrier. For pre-approval from the carrier, send a request with your Danal CPID to **cs@iamport.kr**. + **`Mobile carrier`** -**`carrier`** **string** + Requires pre-approval from the carrier (send a request with your Danal CPID to **[cs@iamport.kr](mailto:cs@iamport.kr)**). -**`Mobile carrier`** + - SKT + - KT + - LGT + - SKT\_MVNO + - KT\_MVNO + - LGT\_MVNO -Requires pre-approval from the carrier (send a request with your Danal CPID to **cs@iamport.kr**). + **`certified`** **\*** **boolean** -- SKT -- KT -- LGT -- SKT\_MVNO -- KT\_MVNO -- LGT\_MVNO + **`Whether verification is successful`** -**`certified`** **\*** **boolean** + **`certified_at`** **string** -**`Whether verification is successful`** + **`Verified at`** (UNIX timestamp) -**`certified_at`** **string** + **`unique_key`** **string** -**`Verified at`** (UNIX timestamp) + **`Personal Identification Key (CI)`** -**`unique_key` ****string** + **`unique_in_site`** **string** -**`Personal Identification Key (CI)`** + **`Merchant Personal Identification Key (DI)`** -**`unique_in_site`** **string** + **`origin`** **string** -**`Merchant Personal Identification Key (DI)`** + **URL of the web page where the identity verification process is processed** -**`origin`** **string** + **`foreigner_v2`** **boolean** -**URL of the web page where the identity verification process is processed** + **`Foreigner status (nullable)`** -**`foreigner_v2`** **boolean** + - true : foreigner + - false : not foreigner -**`Foreigner status (nullable)`** + Requires a separate request to use Danal identity verification service + + + -- true : foreigner -- false : not foreigner + + ```ts + { + // Response + } + ``` + -Requires a separate request to use Danal identity verification service + + ```ts + { + // Response + } + ``` + - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pg_tid": "string", - "pg_provider": "string", - "name": "string", - "gender": "string", - "birth": 0, - "birthday": "string", - "foreigner": true, - "phone": "string", - "carrier": "SKT", - "certified": true, - "certified_at": 0, - "unique_key": "string", - "unique_in_site": "string", - "origin": "string", - "foreigner_v2": true +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pg_tid": "string", + "pg_provider": "string", + "name": "string", + "gender": "string", + "birth": 0, + "birthday": "string", + "foreigner": true, + "phone": "string", + "carrier": "SKT", + "certified": true, + "certified_at": 0, + "unique_key": "string", + "unique_in_site": "string", + "origin": "string", + "foreigner_v2": true + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/certifications/confirmOTP**](https://api.iamport.kr/#!/certifications/confirmOTP) + **Swagger Test Link** + [**https://api.iamport.kr/#!/certifications/confirmOTP**](https://api.iamport.kr/#!/certifications/confirmOTP) diff --git a/src/content/docs/en/api/identity-verification-api/delete-identity-verification-api.mdx b/src/content/docs/en/api/identity-verification-api/delete-identity-verification-api.mdx index 39dab1b6d..a4f68ad9c 100644 --- a/src/content/docs/en/api/identity-verification-api/delete-identity-verification-api.mdx +++ b/src/content/docs/en/api/identity-verification-api/delete-identity-verification-api.mdx @@ -4,216 +4,204 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Permanently deletes identity verification info from i'mport server. +## Permanently deletes identity verification info from i'mport server. - - - - -### Parameters - -#### Path - - - - -**i'mport verification ID** + - + ### Parameters - + #### Path -### Responses + + + **i'mport verification ID** + + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**response** **(CertificationAnnotation, optional)** + A non-zero code includes a message like 'Invalid payment info'. - - + **response** **(CertificationAnnotation, optional)** + + - - -**`imp_uid`** \* **string** + + + **`imp_uid`** \* **string** -**`verification ID`** + **`verification ID`** -**`merchant_uid`** **string** + **`merchant_uid`** **string** -**`Order ID`** + **`Order ID`** -**`pg_tid`** **string** + **`pg_tid`** **string** -**`PG verification ID`** + **`PG verification ID`** -**`pg_provider`** **\***** ****string** + **`pg_provider`** **\*** **string** -**`PG provider`** + **`PG provider`** -**`name`** **string** + **`name`** **string** -**`Name`** + **`Name`** -**`gender`** **string** + **`gender`** **string** -**`Gender`** + **`Gender`** -- male -- female + - male + - female -**`birthday` ****string** + **`birthday`** **string** -**`DOB`** + **`DOB`** -ISO8601 date in string format. YYYY-MM-DD (10-digit) + ISO8601 date in string format. YYYY-MM-DD (10-digit) -**`foreigner`** **\*** **boolean** + **`foreigner`** **\*** **boolean** -**`Foreigner status`** + **`Foreigner status`** -When signing a Danal identity verification service contract, you must request to use foreigner identification service. + When signing a Danal identity verification service contract, you must request to use foreigner identification service. -- true : foreigner -- false : not foreigner + - true : foreigner + - false : not foreigner -**`phone`** **string** + **`phone`** **string** -**`Mobile phone number`** + **`Mobile phone number`** -Returns mobile phone number with only numbers without special symbols. This attribute is omitted unless pre-approved by the carrier. For pre-approval from the carrier, send a request with your Danal CPID to **cs@iamport.kr**. + Returns mobile phone number with only numbers without special symbols. + This attribute is omitted unless pre-approved by the carrier. + For pre-approval from the carrier, send a request with your Danal CPID to **[cs@iamport.kr](mailto:cs@iamport.kr)**. -**`carrier`** **string** + **`carrier`** **string** -**`Mobile carrier`** + **`Mobile carrier`** -Requires pre-approval from the carrier (send a request with your Danal CPID to **cs@iamport.kr**). + Requires pre-approval from the carrier (send a request with your Danal CPID to **[cs@iamport.kr](mailto:cs@iamport.kr)**). -- SKT -- KT -- LGT -- SKT\_MVNO -- KT\_MVNO -- LGT\_MVNO + - SKT + - KT + - LGT + - SKT\_MVNO + - KT\_MVNO + - LGT\_MVNO -**`certified`** **\*** **boolean** + **`certified`** **\*** **boolean** -**`Whether verification is successful`** + **`Whether verification is successful`** -**`certified_at`** **string** + **`certified_at`** **string** -**`Verified at`** (UNIX timestamp) + **`Verified at`** (UNIX timestamp) -**`unique_key` ****string** + **`unique_key`** **string** -**`Personal Identification Key (CI)`** + **`Personal Identification Key (CI)`** -**`unique_in_site`** **string** + **`unique_in_site`** **string** -**`Merchant Personal Identification Key (DI)`** + **`Merchant Personal Identification Key (DI)`** -**`origin`** **string** + **`origin`** **string** -**URL of the web page where the identity verification process is processed** + **URL of the web page where the identity verification process is processed** -**`foreigner_v2`** **boolean** + **`foreigner_v2`** **boolean** -**`Foreigner status (nullable)`** + **`Foreigner status (nullable)`** -- true : foreigner -- false : not foreigner + - true : foreigner + - false : not foreigner -Requires a separate request to use Danal identity verification service + Requires a separate request to use Danal identity verification service + + + - - + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pg_tid": "string", - "pg_provider": "string", - "name": "string", - "gender": "string", - "birth": 0, - "birthday": "string", - "foreigner": true, - "phone": "string", - "carrier": "SKT", - "certified": true, - "certified_at": 0, - "unique_key": "string", - "unique_in_site": "string", - "origin": "string", - "foreigner_v2": true +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pg_tid": "string", + "pg_provider": "string", + "name": "string", + "gender": "string", + "birth": 0, + "birthday": "string", + "foreigner": true, + "phone": "string", + "carrier": "SKT", + "certified": true, + "certified_at": 0, + "unique_key": "string", + "unique_in_site": "string", + "origin": "string", + "foreigner_v2": true + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/certifications/deleteCertification**](https://api.iamport.kr/#!/certifications/deleteCertification) + **Swagger Test Link** + [**https://api.iamport.kr/#!/certifications/deleteCertification**](https://api.iamport.kr/#!/certifications/deleteCertification) diff --git a/src/content/docs/en/api/identity-verification-api/get-identity-verification-result-api.mdx b/src/content/docs/en/api/identity-verification-api/get-identity-verification-result-api.mdx index 19306c6b0..ef63cc77b 100644 --- a/src/content/docs/en/api/identity-verification-api/get-identity-verification-result-api.mdx +++ b/src/content/docs/en/api/identity-verification-api/get-identity-verification-result-api.mdx @@ -4,207 +4,196 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets identity verification result. +## Gets identity verification result. - - - - -### Parameters - -#### Body - - - + -**i'mport verification ID** + ### Parameters - + #### Body - + + + **i'mport verification ID** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**response** **(CertificationAnnotation, optional)** + **response** **(CertificationAnnotation, optional)** + + - - + + + **`imp_uid`** \* **string** - - -**`imp_uid`** \* **string** + **`verification ID`** -**`verification ID`** + **`merchant_uid`** **string** -**`merchant_uid`** **string** + **`Order ID`** -**`Order ID`** + **`pg_tid`** **string** -**`pg_tid`** **string** + **`PG verification ID`** -**`PG verification ID`** + **`pg_provider`** **\*** **string** -**`pg_provider`** **\***** ****string** + **`PG provider`** -**`PG provider`** + **`name`** **string** -**`name`** **string** + **`Name`** -**`Name`** + **`gender`** **string** -**`gender`** **string** + **`Gender`** -**`Gender`** + - male + - female -- male -- female + **`birthday`** **string** -**`birthday` ****string** + **`DOB`** -**`DOB`** + ISO8601 date in string format. YYYY-MM-DD (10-digit) -ISO8601 date in string format. YYYY-MM-DD (10-digit) + **`foreigner`** **\*** **boolean** -**`foreigner`** **\*** **boolean** + **`Foreigner status`** -**`Foreigner status`** + When signing a Danal identity verification service contract, you must request to use foreigner identification service. -When signing a Danal identity verification service contract, you must request to use foreigner identification service. + - true : foreigner + - false : not foreigner -- true : foreigner -- false : not foreigner + **`phone`** **string** -**`phone`** **string** + **`Mobile phone number`** -**`Mobile phone number`** + Returns mobile phone number with only numbers without special symbols. + This attribute is omitted unless pre-approved by the carrier. + For pre-approval from the carrier, send a request with your Danal CPID to **[cs@iamport.kr](mailto:cs@iamport.kr)**. -Returns mobile phone number with only numbers without special symbols. This attribute is omitted unless pre-approved by the carrier. For pre-approval from the carrier, send a request with your Danal CPID to **cs@iamport.kr**. + **`carrier`** **string** -**`carrier`** **string** + **`Mobile carrier`** -**`Mobile carrier`** + Requires pre-approval from the carrier (send a request with your Danal CPID to **[cs@iamport.kr](mailto:cs@iamport.kr)**). -Requires pre-approval from the carrier (send a request with your Danal CPID to **cs@iamport.kr**). + - SKT + - KT + - LGT + - SKT\_MVNO + - KT\_MVNO + - LGT\_MVNO -- SKT -- KT -- LGT -- SKT\_MVNO -- KT\_MVNO -- LGT\_MVNO + **`certified`** **\*** **boolean** -**`certified`** **\*** **boolean** + **`Whether verification is successful`** -**`Whether verification is successful`** + **`certified_at`** **string** -**`certified_at`** **string** + **`Verified at`** (UNIX timestamp) -**`Verified at`** (UNIX timestamp) + **`unique_key`** **string** -**`unique_key` ****string** + **`Personal Identification Key (CI)`** -**`Personal Identification Key (CI)`** + **`unique_in_site`** **string** -**`unique_in_site`** **string** + **`Merchant Personal Identification Key (DI)`** -**`Merchant Personal Identification Key (DI)`** + **`origin`** **string** -**`origin`** **string** + **URL of the web page where the identity verification process is processed** -**URL of the web page where the identity verification process is processed** + **`foreigner_v2`** **boolean** -**`foreigner_v2`** **boolean** + **`Foreigner status (nullable)`** -**`Foreigner status (nullable)`** + - true : foreigner + - false : not foreigner -- true : foreigner -- false : not foreigner + Requires a separate request to use Danal identity verification service + + + -Requires a separate request to use Danal identity verification service - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pg_tid": "string", - "pg_provider": "string", - "name": "string", - "gender": "string", - "birth": 0, - "birthday": "string", - "foreigner": true, - "phone": "string", - "carrier": "SKT", - "certified": true, - "certified_at": 0, - "unique_key": "string", - "unique_in_site": "string", - "origin": "string", - "foreigner_v2": true +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pg_tid": "string", + "pg_provider": "string", + "name": "string", + "gender": "string", + "birth": 0, + "birthday": "string", + "foreigner": true, + "phone": "string", + "carrier": "SKT", + "certified": true, + "certified_at": 0, + "unique_key": "string", + "unique_in_site": "string", + "origin": "string", + "foreigner_v2": true + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/certifications/getCertification**](https://api.iamport.kr/#!/certifications/getCertification) + **Swagger Test Link** + [**https://api.iamport.kr/#!/certifications/getCertification**](https://api.iamport.kr/#!/certifications/getCertification) diff --git a/src/content/docs/en/api/identity-verification-api/request-identity-verification-api.mdx b/src/content/docs/en/api/identity-verification-api/request-identity-verification-api.mdx index 1b0c80010..82e0cca4c 100644 --- a/src/content/docs/en/api/identity-verification-api/request-identity-verification-api.mdx +++ b/src/content/docs/en/api/identity-verification-api/request-identity-verification-api.mdx @@ -4,145 +4,134 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Sends OTP number via SMS confirming the user's identity based on the submitted personal information. +## Sends OTP number via SMS confirming the user's identity based on the submitted personal information. - -If the user's personal information is passed to the API and verified by the carrier, an OTP (6-digit verification number) is sent to the user via SMS. This is only supported by some merchants who have been pre-approved by the carrier, and is currently only being serviced through **Danal**. - -You can call the API by directly entering the name, date of birth + 7th digit of social security number, mobile phone number, and carrier information from the merchant. If the transmitted personal information is correct, a verification code SMS is sent to the mobile phone. - -When you receive an HTTP Status 200 response, it contains the verification ID (`imp_uid`) in the response body. To complete the verification process, call the /certifications/otp/confirm/\{imp\_uid} API with the OTP number. - - - -### Parameters - -#### Body + + If the user's personal information is passed to the API and verified by the carrier, an OTP (6-digit verification number) is sent to the user via SMS. This is only supported by some merchants who have been pre-approved by the carrier, and is currently only being serviced through **Danal**. - - + You can call the API by directly entering the name, date of birth + 7th digit of social security number, mobile phone number, and carrier information from the merchant. If the transmitted personal information is correct, a verification code SMS is sent to the mobile phone. -**User name** + When you receive an HTTP Status 200 response, it contains the verification ID (`imp_uid`) in the response body. To complete the verification process, call the /certifications/otp/confirm/\{imp\_uid} API with the OTP number. + - + ### Parameters - - - **Mobile number** + #### Body -May contain special characters. + + + **User name** + + - - -**DOB** + + **Mobile number** -**`YYYYMMDD (6-digit)`** + May contain special characters. + -May contain special characters. + + **DOB** - - -**Gender code** + **`YYYYMMDD (6-digit)`** -7th digit of 13-digit social security number + May contain special characters. + - - -**Carrier code** + + **Gender code** -**`SKT`** + 7th digit of 13-digit social security number + -**`KT`** + + **Carrier code** -**`LGT`** + **`SKT`** - - -**Budget phone?** + **`KT`** - - -**Merchant service name** + **`LGT`** + - - -**Order ID** + + **Budget phone?** + - - -**PG code** + + **Merchant service name** + - + + **Order ID** + -### Responses + + **PG code** + - - - -**`code`** **\*** **integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\*** **string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**response ** **(CertificationOTPAnnotation, optional)** + A non-zero code includes a message like 'Invalid payment info'. - - + **response** **(CertificationOTPAnnotation, optional)** + + - - -**`imp_uid *`` `** **`String`** + + + **`imp_uid *`` `** **`String`** -**`i'mport verification ID`** + **`i'mport verification ID`** + + + - - + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -178,23 +167,21 @@ A non-zero code includes a message like 'Invalid payment info'. > **danal.\{Merchant ID}**
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/certifications/requestOTP**](https://api.iamport.kr/#!/certifications/requestOTP) + **Swagger Test Link** + [**https://api.iamport.kr/#!/certifications/requestOTP**](https://api.iamport.kr/#!/certifications/requestOTP) diff --git a/src/content/docs/en/api/import-api-overview.mdx b/src/content/docs/en/api/import-api-overview.mdx index 95be69fb4..934c4663f 100644 --- a/src/content/docs/en/api/import-api-overview.mdx +++ b/src/content/docs/en/api/import-api-overview.mdx @@ -6,41 +6,41 @@ description: Get an overview of the i'mport API. import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -### Learn how to configure HTTP header in i'mport API call. +## Learn how to configure HTTP header in i'mport API call. -1. Call [**/users/getToken**](rest-api-access-token) with **API Key** & **API secret** to get an **`access_token`**.\ +1. Call [**/users/getToken**](rest-api-access-token) with **API Key** & **API secret** + to get an **`access_token`**. -2. In the API call, include the **`access_token`** as **`Authorization:`****`access_token`** or **`X-ImpTokenHeader:`****`access_token`** in the HTTP header. +2. In the API call, include the **`access_token`** as **`Authorization:`****`access_token`** + or **`X-ImpTokenHeader:`****`access_token`** in the HTTP header. -**Content-Type** + **Content-Type** -API Content-Type supported in i'mport is: - -**Application.json;charset=UTF-8** + API Content-Type supported in i'mport is: + **Application.json;charset=UTF-8** -**Agency Merchant** - -Sub-merchants must specify the following in the **`HTTP Header`** and use the **Agent account's** **`API key`** and **`Secret`** to call the i'mport API. + **Agency Merchant** -- **`"Tier" : "`****`Tier code`**(Sub-merchant Tier Code)" + Sub-merchants must specify the following in the **`HTTP Header`** and use the **Agent account's** **`API key`** + and **`Secret`** to call the i'mport API. + - **`"Tier" : "`****`Tier code`**(Sub-merchant Tier Code)" ### API specification -To check the detailed specification for i'mport API response, select the **HTTP Status ****200** response as shown below. +To check the detailed specification for i'mport API response, select the **HTTP Status** **200** response as shown below.
-**API Swagger site** - -i'mport supports the Swagger API Specification. + **API Swagger site** -[**https://api.iamport.kr**](https://api.iamport.kr) + i'mport supports the Swagger API Specification. + [**https://api.iamport.kr**](https://api.iamport.kr) diff --git a/src/content/docs/en/api/miscellaneous-api/benepia-point/get-points-api.mdx b/src/content/docs/en/api/miscellaneous-api/benepia-point/get-points-api.mdx index df54def39..31433054b 100644 --- a/src/content/docs/en/api/miscellaneous-api/benepia-point/get-points-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/benepia-point/get-points-api.mdx @@ -4,120 +4,106 @@ description: 베네피아 포인트를 단건 조회 합니다. --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets Benepia points using user's Benepia account ID and password through KCP. +## Gets Benepia points using user's Benepia account ID and password through KCP. - -Requires KCP site code. - - - -### Parameters - -#### Body - - - - -**Benepia account ID** + + Requires KCP site code. + - + ### Parameters - - - + #### Body -**Benepia account password** + + + **Benepia account ID** + + - + + + **Benepia account password** + + - - -**PG code** + + **PG code** -If there are multiple KCP PG settings, specify as **kcp.\{KCP site code}**. If omitted, the KCP pg setting in Admin console is used. + If there are multiple KCP PG settings, specify as **kcp.\{KCP site code}**. If omitted, the KCP pg setting in Admin console is used. + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***** ****string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`response`` `****`(BenepiaPointAnnotation, optional)`** + + -**`response`` `****`(BenepiaPointAnnotation, optional)`** + + + **`point`****`*`****`integer`** - - + **`Benepia points`** + + + - - -**`point`****`*`****`integer`** - -**`Benepia points`** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "point": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "point": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/benepia/queryBenepiaPoint**](https://api.iamport.kr/#!/benepia/queryBenepiaPoint) + **Swagger Test Link** + [**https://api.iamport.kr/#!/benepia/queryBenepiaPoint**](https://api.iamport.kr/#!/benepia/queryBenepiaPoint) diff --git a/src/content/docs/en/api/miscellaneous-api/benepia-point/request-point-payment-api.mdx b/src/content/docs/en/api/miscellaneous-api/benepia-point/request-point-payment-api.mdx index f3cdbbfcb..ba84f40d3 100644 --- a/src/content/docs/en/api/miscellaneous-api/benepia-point/request-point-payment-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/benepia-point/request-point-payment-api.mdx @@ -4,469 +4,448 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests payment using Benepia (benefit) points. +## Requests payment using Benepia (benefit) points. - -Requests payment using Benepia points through KCP by passing user's Benepia account ID and password with the payment information. Requires KCP site code. - - - -### Parameters - -#### Body - - - - -**Benepia account ID** - - - - - - - -**Benepia account password** - - - - - - - -**Order ID** + + Requests payment using Benepia points through KCP by passing user's Benepia account ID and password with the payment information. Requires KCP site code. + - + ### Parameters - - - + #### Body -**Amount** + + + **Benepia account ID** + + - + + + **Benepia account password** + + - - - + + + **Order ID** + + -**Product name** + + + **Amount** + + - + + + **Product name** + + - - -**Customer name** + + **Customer name** + - - -**Customer email** + + **Customer email** + - - -**Customer phone** + + **Customer phone** + - - -**Customer address** + + **Customer address** + - - -**Customer zip code** + + **Customer zip code** + - - -**PG code** + + **PG code** + - - -**Notification URL (Webhook URL)** + + **Notification URL (Webhook URL)** + - - -**Custom data** + + **Custom data** + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***** ****string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`response`** **`(PaymentAnnotation, optional)`** + + -**`response`** **`(PaymentAnnotation, optional)`** + + + **`code`** **\*** **integer** - - + **`Response code`** - - -**`code`** **\***** ****integer** + 0: success, Not 0: check the message -**`Response code`** + **`message`** **\*** **string** -0: success, Not 0: check the message + **Response message** -**`message`** **\***** ****string** + A non-zero code includes a message like 'Invalid payment info. -**Response message** + **`imp_uid`** \* **string** -A non-zero code includes a message like 'Invalid payment info. + **i'mport payment transaction UID** -**`imp_uid`** \* **string** + **`merchant_uid`** **\*** **string** -**i'mport payment transaction UID** + **Order ID** -**`merchant_uid`** **\***** ****string** + **`pay_method`** **\*** **string** -**Order ID** + **Payment method code** -**`pay_method`** **\***** ****string** + **`channel`** **\*** **string** -**Payment method code** + **Payment environment code** -**`channel`** **\***** ****string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**Payment environment code** + **`pg_provider`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **PG code** -**`pg_provider`** **\***** ****string** + --- -**PG code** + **`emb_pg_provider`** **\*** **string** ---- - -**`emb_pg_provider`** **\***** ****string** - -**Hub-type PG code** - -**`pg_tid`** **\*** **string** + **Hub-type PG code** -**PG transaction ID** + **`pg_tid`** **\*** **string** -**`pg_id`** **\***** ****string** + **PG transaction ID** -**PG MID** + **`pg_id`** **\*** **string** -**`escrow`** **boolean** + **PG MID** -**Indicates an escrow payment** + **`escrow`** **boolean** -**`apply_num`** **string** + **Indicates an escrow payment** -**Credit card approval number** + **`apply_num`** **string** -**`bank_code`** **string** + **Credit card approval number** -**Bank code** + **`bank_code`** **string** -**`bank_name`** **string** + **Bank code** -**Bank name** + **`bank_name`** **string** ---- + **Bank name** -**`card_code`** **string** + --- -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`card_code`** **string** -**`card_name`** **string** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**Credit card name** + **`card_name`** **string** -**`card_quota`** **integer** + **Credit card name** -**Number of installments (0 means one-off)** + **`card_quota`** **integer** -**`card_number`** **string** + **Number of installments (0 means one-off)** -**Masked credit card number** + **`card_number`** **string** ---- + **Masked credit card number** -**`card_type`** **string** + --- -**Credit card type code** + **`card_type`** **string** -- 0: credit -- 1: check + **Credit card type code** -**`vbank_code`** **string** + - 0: credit + - 1: check -**Virtual account bank code (refer to image below)** + **`vbank_code`** **string** ---- + **Virtual account bank code (refer to image below)** -**`vbank_name`** **string** + --- -**Refund virtual account** + **`vbank_name`** **string** -**`vbank_holder`** **string** + **Refund virtual account** -**Refund virtual account holder** + **`vbank_holder`** **string** -**`vbank_date`** **string** + **Refund virtual account holder** -**Refund virtual account expiration (UNIX timestamp)** + **`vbank_date`** **string** -**`vbank_issued_at`** **string** + **Refund virtual account expiration (UNIX timestamp)** -**Refund virtual account created at (UNIX timestamp)** + **`vbank_issued_at`** **string** -**`name`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Product name** + **`name`** **string** -**`amount`** **\*** **integer** + **Product name** -**Order (payment) amount** + **`amount`** **\*** **integer** -**`cancel_amount`** **integer** + **Order (payment) amount** -**Cancelled amount** + **`cancel_amount`** **integer** -**`currency`** **string** + **Cancelled amount** -**Currency** + **`currency`** **string** -- USD -- KRW -- EUR + **Currency** ---- + - USD + - KRW + - EUR -**`buyer_name`** **string** + --- -**Customer name** + **`buyer_name`** **string** -**`buyer_email`** **string** + **Customer name** -**Customer email**\ + **`buyer_email`** **string** -**`buyer_tel`** **string** + **Customer email**\\ -**Customer phone** + **`buyer_tel`** **string** -**`buyer_addr`** **string** + **Customer phone** -**Customer address** + **`buyer_addr`** **string** -**`buyer_postcode`** **string** + **Customer address** -**Customer zip code** + **`buyer_postcode`** **string** -**`custom_data`** **string** + **Customer zip code** -**echo data as JSON string** + **`custom_data`** **string** -**`user_agent`** **string** + **echo data as JSON string** -**UserAgent of the device where payment is initiated** + **`user_agent`** **string** -**`status`** **\***** ****string** + **UserAgent of the device where payment is initiated** -**Payment status code** + **`status`** **\*** **string** -- ready -- paid -- cancelled -- failed + **Payment status code** -**`started_at`** **\*** **string** + - ready + - paid + - cancelled + - failed -**Payment started at (UNIX timestamp)** + **`started_at`** **\*** **string** -**`paid_at`** **\***** ****string** + **Payment started at (UNIX timestamp)** -**Payment completed at (UNIX timestamp)**\ + **`paid_at`** **\*** **string** -**`failed_at`** **\***** ****string** + **Payment completed at (UNIX timestamp)**\\ -**Payment failed at (UNIX timestamp)** + **`failed_at`** **\*** **string** -**`cancelled_at`** **\***** ****string** + **Payment failed at (UNIX timestamp)** -**Payment cancelled at (UNIX timestamp)** + **`cancelled_at`** **\*** **string** -**`fail_reason`** **string** + **Payment cancelled at (UNIX timestamp)** -**Reason for failure** + **`fail_reason`** **string** -**`cancel_reason`** **string** + **Reason for failure** -**Reason for cancellation** + **`cancel_reason`** **string** -**`receipt_url`** **string** + **Reason for cancellation** -**Credit card receipt URL** + **`receipt_url`** **string** -**`cash_receipt_issued` ****boolean** + **Credit card receipt URL** -**Option to automatically issue cash receipt** + **`cash_receipt_issued`** **boolean** -**`customer_uid`** **string** + **Option to automatically issue cash receipt** -**customer\_uid related to the payment transaction** + **`customer_uid`** **string** -**`customer_uid_usage`** **string** + **customer\_uid related to the payment transaction** -**customer\_uid use code** + **`customer_uid_usage`** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **customer\_uid use code** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`Cancellation/partial cancellation history`** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** - - + **`Cancellation/partial cancellation history`** + + - - -**`pg_tid`** **\***** ****string** + + + **`pg_tid`** **\*** **string** -**PG cancellation transaction ID** + **PG cancellation transaction ID** -**`amount`** **\*** **integer** + **`amount`** **\*** **integer** -**Cancelled amount** + **Cancelled amount** -**`cancelled_at`** **\*** **string** + **`cancelled_at`** **\*** **string** -**Cancelled at (UNIX timestamp)** + **Cancelled at (UNIX timestamp)** -**`reason`** **\*** **string(256)** + **`reason`** **\*** **string(256)** -**Reason for cancellation** + **Reason for cancellation** -**`receipt_url`** **\***** ****string(300)** + **`receipt_url`** **\*** **string(300)** -**Cancellation receipt URL. Availability varies by PG.** + **Cancellation receipt URL. Availability varies by PG.** + + + - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/benepia/payBenepiaPoint**](https://api.iamport.kr/#!/benepia/payBenepiaPoint) + **Swagger Test Link** + [**https://api.iamport.kr/#!/benepia/payBenepiaPoint**](https://api.iamport.kr/#!/benepia/payBenepiaPoint) diff --git a/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/cancel-barcode-api.mdx b/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/cancel-barcode-api.mdx index 0aeddc78a..b4c9ecad6 100644 --- a/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/cancel-barcode-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/cancel-barcode-api.mdx @@ -4,182 +4,172 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Cancels a convenience store barcode to block payment. +## Cancels a convenience store barcode to block payment. - -You can cancel a barcode with pending payment to block payment for orders that cannot be fulfilled due to out of stock items etc. - - - -### Parameters - -#### Path + + You can cancel a barcode with pending payment to block payment for orders that cannot be fulfilled due to out of stock items etc. + - -**i'mport transaction ID** + ### Parameters -For convenience store payment + #### Path - + + **i'mport transaction ID** -### Responses + For convenience store payment + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`response`** **`(PaymentAnnotation, optional)`** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`** **`(PaymentAnnotation, optional)`** + + - - -**Response code** + + + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. + + - - + + + **`pg_tid`** **\*** **string** - - -**`pg_tid`** **\***** ****string** + **PG cancellation transaction ID** -**PG cancellation transaction ID** + **`amount`** **\*** **integer** -**`amount`** **\*** **integer** + **Cancelled amount** -**Cancelled amount** + **`cancelled_at`** **\*** **string** -**`cancelled_at`** **\*** **string** + **Cancelled at (UNIX timestamp)** -**Cancelled at (UNIX timestamp)** + **`reason`** **\*** **string(256)** -**`reason`** **\*** **string(256)** + **Reason for cancellation** -**Reason for cancellation** + **`receipt_url`** **\*** **string(300)** -**`receipt_url`** **\***** ****string(300)** - -**Cancellation receipt URL. Availability varies by PG.** - - - - - - - -```javascript -{ - // Response -} -``` - - + **Cancellation receipt URL. Availability varies by PG.** + + + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/cvs/revokeCvsPayment**](https://api.iamport.kr/#!/cvs/revokeCvsPayment) + **Swagger Test Link** + [**https://api.iamport.kr/#!/cvs/revokeCvsPayment**](https://api.iamport.kr/#!/cvs/revokeCvsPayment) diff --git a/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/request-barcode-api.mdx b/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/request-barcode-api.mdx index ca5cd3fe3..d6f6eb421 100644 --- a/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/request-barcode-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/convenience-store-payment/request-barcode-api.mdx @@ -4,394 +4,380 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests issuance or registration of convenience store barcode. +## Requests issuance or registration of convenience store barcode. - -A customer can make payment by presenting the barcode image or number at a convenience store. - - - -### Parameters - -#### Body - - - - -**Order ID** - - - - - - - -**Amount** - - + + A customer can make payment by presenting the barcode image or number at a convenience store. + - - -**Barcode** + ### Parameters - - -**Convenience store payment deadline** + #### Body -Unix Timestamp + + + **Order ID** + + - - -**Product name** + + + **Amount** + + - - -**Customer name** + + **Barcode** + - - -**Customer email** + + **Convenience store payment deadline** - - -**Customer phone** + Unix Timestamp + - - -**Customer address** + + **Product name** + - - -**Customer zip code** + + **Customer name** + - - -**PG code** + + **Customer email** + - - -**URL for checking whether payment is acceptable** + + **Customer phone** + - - -**Notification URL for successful payment** + + **Customer address** + -If not specified, the Notification URL set in Admin console is used. + + **Customer zip code** + - - -**Custom data** + + **PG code** + - + + **URL for checking whether payment is acceptable** + - + + **Notification URL for successful payment** -### Responses + If not specified, the Notification URL set in Admin console is used. + - - - -**`code`** **\*** **integer** + + **Custom data** + -**Response code** + ### Responses -0: success, Not 0: check the message + + + + **`code`** **\*** **integer** -**`message`** **\*** **string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`response`** **`(PaymentAnnotation, optional)`** + **Response message** - - + A non-zero code includes a message like 'Invalid payment info'. - - -**`code`** **\*** **integer** + **`response`** **`(PaymentAnnotation, optional)`** + + -**`Response code`** + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **`Response code`** -**`message`** **\*** **string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info. + **Response message** -**`imp_uid`** \* **string** + A non-zero code includes a message like 'Invalid payment info. -**i'mport payment transaction UID** + **`imp_uid`** \* **string** -**`merchant_uid`** **\*** **string** + **i'mport payment transaction UID** -**Order ID** + **`merchant_uid`** **\*** **string** -**`pay_method`** **\*** **string** + **Order ID** -**Payment method code** + **`pay_method`** **\*** **string** -**`channel`** **\*** **string** + **Payment method code** -**Payment environment code** + **`channel`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **Payment environment code** -**`pg_provider`** **\*** **string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**PG code** + **`pg_provider`** **\*** **string** ---- + **PG code** -**`emb_pg_provider`** **\*** **string** + --- -**Hub-type PG code** + **`emb_pg_provider`** **\*** **string** -**`pg_tid`** **\*** **string** + **Hub-type PG code** -**PG transaction ID** + **`pg_tid`** **\*** **string** -**`pg_id`** **\*** **string** + **PG transaction ID** -**PG MID** + **`pg_id`** **\*** **string** -**`escrow`** **boolean** + **PG MID** -**Indicates an escrow payment** + **`escrow`** **boolean** -**`apply_num`** **string** + **Indicates an escrow payment** -**Credit card approval number** + **`apply_num`** **string** -**`bank_code`** **string** + **Credit card approval number** -**Bank code** + **`bank_code`** **string** -**`bank_name`** **string** + **Bank code** -**Bank name** + **`bank_name`** **string** ---- + **Bank name** -**`card_code`** **string** + --- -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`card_code`** **string** -**`card_name`** **string** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**Credit card name** + **`card_name`** **string** -**`card_quota`** **integer** + **Credit card name** -**Number of installments (0 means one-off)** + **`card_quota`** **integer** -**`card_number`** **string** + **Number of installments (0 means one-off)** -**Masked credit card number** + **`card_number`** **string** ---- + **Masked credit card number** -**`card_type`** **string** + --- -**Credit card type code** + **`card_type`** **string** -- 0: credit -- 1: check + **Credit card type code** -**`vbank_code`** **string** + - 0: credit + - 1: check -**Virtual account bank code (refer to image below)** + **`vbank_code`** **string** ---- + **Virtual account bank code (refer to image below)** -**`vbank_name`** **string** + --- -**Refund virtual account** + **`vbank_name`** **string** -**`vbank_holder`** **string** + **Refund virtual account** -**Refund virtual account holder** + **`vbank_holder`** **string** -**`vbank_date`** **string** + **Refund virtual account holder** -**Refund virtual account expiration (UNIX timestamp)** + **`vbank_date`** **string** -**`vbank_issued_at`** **string** + **Refund virtual account expiration (UNIX timestamp)** -**Refund virtual account created at (UNIX timestamp)** + **`vbank_issued_at`** **string** -**`name`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Product name** + **`name`** **string** -**`amount`** **\*** **integer** + **Product name** -**Order (payment) amount** + **`amount`** **\*** **integer** -**`cancel_amount`** **integer** + **Order (payment) amount** -**Cancelled amount** + **`cancel_amount`** **integer** -**`currency`** **string** + **Cancelled amount** -**Currency** - -- USD -- KRW -- EUR - ---- + **`currency`** **string** -**`buyer_name`** **string** + **Currency** -**Customer name** + - USD + - KRW + - EUR -**`buyer_email`** **string** + --- -**Customer email**\ + **`buyer_name`** **string** -**`buyer_tel`** **string** + **Customer name** -**Customer phone** + **`buyer_email`** **string** -**`buyer_addr`** **string** + **Customer email** -**Customer address** + **`buyer_tel`** **string** -**`buyer_postcode`** **string** + **Customer phone** -**Customer zip code** + **`buyer_addr`** **string** -**`custom_data`** **string** + **Customer address** -**echo data as JSON string** + **`buyer_postcode`** **string** -**`user_agent`** **string** + **Customer zip code** -**UserAgent of the device where payment is initiated** + **`custom_data`** **string** -**`status`** **\*** **string** + **echo data as JSON string** -**Payment status code** + **`user_agent`** **string** -- ready -- paid -- cancelled -- failed + **UserAgent of the device where payment is initiated** -**`started_at`** **\*** **string** + **`status`** **\*** **string** -**Payment started at (UNIX timestamp)** + **Payment status code** -**`paid_at`** **\*** **string** + - ready + - paid + - cancelled + - failed -**Payment completed at (UNIX timestamp)**\ + **`started_at`** **\*** **string** -**`failed_at`** **\*** **string** + **Payment started at (UNIX timestamp)** -**Payment failed at (UNIX timestamp)** + **`paid_at`** **\*** **string** -**`cancelled_at`** **\*** **string** + **Payment completed at (UNIX timestamp)** -**Payment cancelled at (UNIX timestamp)** + **`failed_at`** **\*** **string** -**`fail_reason`** **string** + **Payment failed at (UNIX timestamp)** -**Reason for failure** + **`cancelled_at`** **\*** **string** -**`cancel_reason`** **string** + **Payment cancelled at (UNIX timestamp)** -**Reason for cancellation** + **`fail_reason`** **string** -**`receipt_url`** **string** + **Reason for failure** -**Credit card receipt URL** + **`cancel_reason`** **string** -**`cash_receipt_issued` ****boolean** + **Reason for cancellation** -**Option to automatically issue cash receipt** + **`receipt_url`** **string** -**`customer_uid`** **string** + **Credit card receipt URL** -**customer\_uid related to the payment transaction** + **`cash_receipt_issued`** **boolean** -**`customer_uid_usage`** **string** + **Option to automatically issue cash receipt** -**customer\_uid use code** + **`customer_uid`** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **customer\_uid related to the payment transaction** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`customer_uid_usage`** **string** -**`Cancellation/partial cancellation history`** + **customer\_uid use code** - - + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance - - -**`pg_tid`** **\*** **string** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**PG cancellation transaction ID** + **`Cancellation/partial cancellation history`** + + -**`amount`** **\*** **integer** + + + **`pg_tid`** **\*** **string** -**Cancelled amount** + **PG cancellation transaction ID** -**`cancelled_at`** **\*** **string** + **`amount`** **\*** **integer** -**Cancelled at (UNIX timestamp)** + **Cancelled amount** -**`reason`** **\*** **string(256)** + **`cancelled_at`** **\*** **string** -**Reason for cancellation** + **Cancelled at (UNIX timestamp)** -**`receipt_url`** **\*** **string(300)** + **`reason`** **\*** **string(256)** -**Cancellation receipt URL. Availability varies by PG.** + **Reason for cancellation** - - + **`receipt_url`** **\*** **string(300)** - - - -```javascript -{ - // Response -} -``` - - + **Cancellation receipt URL. Availability varies by PG.** + + + + + ```ts + { + // Response + } + ``` + ### Key request parameter description -> **barcode ****string** +> **barcode** **string** > > **`Barcode number`** > > If there is a barcode number generated/managed by the merchant, you can use it instead of getting > one from GalaxiaMoneytree. -> **expired\_at ****integer** +> **expired\_at** **integer** > > **`Convenience store payment deadline`** > @@ -414,96 +400,91 @@ A non-zero code includes a message like 'Invalid payment info. > > **`200 response == acceptable / Other responses == Not acceptable`** > -> -> > ```json title="Webhook Body" > { -> event : 'Galaxia.Cvs.Confirm', -> imp_uid : 'imp_123412341234', -> merchant_uid : 'asdfasdfasdf', -> status : 'ready', -> extra : { -> barcode : '11222222', -> payType : 'card' //card or cash -> } +> "event": "Galaxia.Cvs.Confirm", +> "imp_uid": "imp_123412341234", +> "merchant_uid": "asdfasdfasdf", +> "status": "ready", +> "extra": { +> "barcode": "11222222", +> "payType": "card" //card or cash +> } > } > ``` ->
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/cvs/issueCvsPayment**](https://api.iamport.kr/#!/cvs/issueCvsPayment) + **Swagger Test Link** + [**https://api.iamport.kr/#!/cvs/issueCvsPayment**](https://api.iamport.kr/#!/cvs/issueCvsPayment) diff --git a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-codes-all-api.mdx b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-codes-all-api.mdx index ba4e7f205..7d3f05364 100644 --- a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-codes-all-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-codes-all-api.mdx @@ -4,99 +4,88 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; -import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets a list of standard codes and names for all banks (based on KFTC codes). +## Gets a list of standard codes and names for all banks (based on KFTC codes). - - - - -### Responses - - - - -**`code`** **\***** ****integer** - -**Response code** - -0: success, Not 0: check the message - -**`message`** **\***** ****string** + -**Response message** + ### Responses -A non-zero code includes a message like 'Invalid payment info'. + + + + **`code`** **\*** **integer** -**`response`****`(Array[StandardCodeAnnotation], optional)`** + **Response code** - - + 0: success, Not 0: check the message - - -**`code`****`*`****`string`** + **`message`** **\*** **string** -**`Institution code (from KFTC)`** + **Response message** -**`name`` `****`*`****`string`** + A non-zero code includes a message like 'Invalid payment info'. -**`Institution name (from KFTC)`** + **`response`****`(Array[StandardCodeAnnotation], optional)`** + + - - + + + **`code`****`*`****`string`** - + **`Institution code (from KFTC)`** - -```javascript -{ - // Response -} -``` + **`name`` `****`*`****`string`** - + **`Institution name (from KFTC)`** + + + - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -``` -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "code": "string", - "name": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "code": "string", + "name": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/codes/allBankCodes**](https://api.iamport.kr/#!/codes/allBankCodes) + **Swagger Test Link** + [**https://api.iamport.kr/#!/codes/allBankCodes**](https://api.iamport.kr/#!/codes/allBankCodes) diff --git a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-name-api.mdx b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-name-api.mdx index b36565b4e..485988d3b 100644 --- a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-name-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-bank-name-api.mdx @@ -4,110 +4,97 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the bank name for a bank code. +## Gets the bank name for a bank code. - - - - -### Parameters - -#### Path - - - + -**Bank code** + ### Parameters - + #### Path - + + + **Bank code** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`****`(Array[StandardCodeAnnotation], optional)`** + **`response`****`(Array[StandardCodeAnnotation], optional)`** + + - - + + + **`code`****`*`****`string`** - - -**`code`****`*`****`string`** + **`Institution code (from KFTC)`** -**`Institution code (from KFTC)`** + **`name`` `****`*`****`string`** -**`name`` `****`*`****`string`** + **`Institution name (from KFTC)`** + + + -**`Institution name (from KFTC)`** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "code": "string", - "name": "string" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "code": "string", + "name": "string" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/codes/bankCodes**](https://api.iamport.kr/#!/codes/bankCodes) + **Swagger Test Link** + [**https://api.iamport.kr/#!/codes/bankCodes**](https://api.iamport.kr/#!/codes/bankCodes) diff --git a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-codes-all-api.mdx b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-codes-all-api.mdx index 08a50c93b..34311da59 100644 --- a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-codes-all-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-codes-all-api.mdx @@ -4,99 +4,88 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; -import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets a list of standard codes and names for all credit card companies (based on KFTC codes). +## Gets a list of standard codes and names for all credit card companies (based on KFTC codes). - - - - -### Responses - - - - -**`code`** **\***** ****integer** - -**Response code** - -0: success, Not 0: check the message - -**`message`** **\***** ****string** + -**Response message** + ### Responses -A non-zero code includes a message like 'Invalid payment info'. + + + + **`code`** **\*** **integer** -**`response`****`(Array[StandardCodeAnnotation], optional)`** + **Response code** - - + 0: success, Not 0: check the message - - -**`code`****`*`****`string`** + **`message`** **\*** **string** -**`Institution code (from KFTC)`** + **Response message** -**`name`` `****`*`****`string`** + A non-zero code includes a message like 'Invalid payment info'. -**`Institution name (from KFTC)`** + **`response`****`(Array[StandardCodeAnnotation], optional)`** + + - - + + + **`code`****`*`****`string`** - + **`Institution code (from KFTC)`** - -```javascript -{ - // Response -} -``` + **`name`` `****`*`****`string`** - + **`Institution name (from KFTC)`** + + + - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -``` -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "code": "string", - "name": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "code": "string", + "name": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/codes/allCardCodes**](https://api.iamport.kr/#!/codes/allCardCodes) + **Swagger Test Link** + [**https://api.iamport.kr/#!/codes/allCardCodes**](https://api.iamport.kr/#!/codes/allCardCodes) diff --git a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-name-api.mdx b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-name-api.mdx index 8337dad2e..d10b684f1 100644 --- a/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-name-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/financial-institution-codes/get-credit-card-name-api.mdx @@ -4,110 +4,97 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the credit card name for a credit card code. +## Gets the credit card name for a credit card code. - - - - -### Parameters - -#### Path - - - + -**Credit card code** + ### Parameters - + #### Path - + + + **Credit card code** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***** ****string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`****`(Array[StandardCodeAnnotation], optional)`** + **`response`****`(Array[StandardCodeAnnotation], optional)`** + + - - + + + **`code`****`*`****`string`** - - -**`code`****`*`****`string`** + **`Institution code (from KFTC)`** -**`Institution code (from KFTC)`** + **`name`` `****`*`****`string`** -**`name`` `****`*`****`string`** + **`Institution name (from KFTC)`** + + + -**`Institution name (from KFTC)`** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "code": "string", - "name": "string" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "code": "string", + "name": "string" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/codes/cardCodes**](https://api.iamport.kr/#!/codes/cardCodes) + **Swagger Test Link** + [**https://api.iamport.kr/#!/codes/cardCodes**](https://api.iamport.kr/#!/codes/cardCodes) diff --git a/src/content/docs/en/api/miscellaneous-api/pg-information/get-pg-mids-api.mdx b/src/content/docs/en/api/miscellaneous-api/pg-information/get-pg-mids-api.mdx index 0a6236f7d..3d8b4559a 100644 --- a/src/content/docs/en/api/miscellaneous-api/pg-information/get-pg-mids-api.mdx +++ b/src/content/docs/en/api/miscellaneous-api/pg-information/get-pg-mids-api.mdx @@ -4,97 +4,88 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; -import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets a list of PG settings (MIDs) configured in the Admin console. +## Gets a list of PG settings (MIDs) configured in the Admin console. - - - - -### Responses + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***\*\* ****string\*\* + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`response`****`(Array[PgSettingAnnotation], optional)`** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`****`(Array[PgSettingAnnotation], optional)`** + + - - -**`pg_provider`****`*`****`string`** + + + **`pg_provider`****`*`****`string`** -**`PG code`** + **`PG code`** -[**PG codes**](../../../tips/pg-codes) + [**PG codes**](../../../tips/pg-codes) -**`pg_id`****`*`****`string`** + **`pg_id`****`*`****`string`** -**`PG MID`** + **`PG MID`** -**` sandbox`` `****`*`****`boolean`** + **`sandbox`** **`*`****`boolean`** -**`Test mode?`** + **`Test mode?`** -**` type`` `****`*`****`string`** + **`type`** **`*`****`string`** -**`PG setting type`** - -- `payment` : Authenticated payment (Admin console > PG settings \[general/subscription] tab) -- `api_payment` : API payment (Admin console > PG settings \[general/key-in] tab) -- `certification` : Identity verification (Admin console > identity verification tab) - - - - - + **`PG setting type`** + - `payment` : Authenticated payment (Admin console > PG settings \[general/subscription] tab) + - `api_payment` : API payment (Admin console > PG settings \[general/key-in] tab) + - `certification` : Identity verification (Admin console > identity verification tab) + + +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": [ - { - "pg_provider": "string", - "pg_id": "string", - "sandbox": true, - "type": "payment" - } - ] -} -``` - +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "pg_provider": "string", + "pg_id": "string", + "sandbox": true, + "type": "payment" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/users/getPgSettingList**](https://api.iamport.kr/#!/users/getPgSettingList) + **Swagger Test Link** + [**https://api.iamport.kr/#!/users/getPgSettingList**](https://api.iamport.kr/#!/users/getPgSettingList) diff --git a/src/content/docs/en/api/overseas-pg-api/paymentwall-delivery-api.mdx b/src/content/docs/en/api/overseas-pg-api/paymentwall-delivery-api.mdx index e7c5c9782..3395c3527 100644 --- a/src/content/docs/en/api/overseas-pg-api/paymentwall-delivery-api.mdx +++ b/src/content/docs/en/api/overseas-pg-api/paymentwall-delivery-api.mdx @@ -4,241 +4,226 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Registers delivery information. +## Registers delivery information. Registers delivery information required by Paymentwall for e-Commerce (physical goods) businesses. - -If omitted, you cannot receive settlement from Paymentwall. - - - -### Parameters - -#### Body - - - - -**i'mport transaction ID** - - + + If omitted, you cannot receive settlement from Paymentwall. + - - - + ### Parameters -**Order ID** + #### Body - + + + **i'mport transaction ID** + + - - -**Product code** + + + **Order ID** + + -**`physical`** + + **Product code** -**`digital`** + **`physical`** - - -**Delivery status code** + **`digital`** + -**`order_placed`** + + **Delivery status code** -**`order_shipped`** + **`order_placed`** -**`delivering`** + **`order_shipped`** -**`delivered`** + **`delivering`** - - -**Tracking number** + **`delivered`** + -Required for physical order + + **Tracking number** - - -**Courier name** + Required for physical order + -Required for physical order + + **Courier name** - - -**Estimated delivery date/time** + Required for physical order + -Unix timestamp + + **Estimated delivery date/time** -(May specify current time for digital order) + Unix timestamp - - -**Estimated status update date/time** + (May specify current time for digital order) + -Unix timestamp sec + + **Estimated status update date/time** -(May specify current time for digital order) + Unix timestamp sec - - -**Reason** + (May specify current time for digital order) + - - -**Refundable?** + + **Reason** + -`yes` + + **Refundable?** -`no` + `yes` - - -**Details** + `no` + - - - + + **Details** + -**Recipient's email** + + + **Recipient's email** + + - + + **Recipient's country** - - -**Recipient's country** + Required for physical order + -Required for physical order + + **Recipient's city** - - -**Recipient's city** + Required for physical order + -Required for physical order + + **Recipient's zip code** - - -**Recipient's zip code** + Required for physical order + -Required for physical order + + **Recipient's state** - - -**Recipient's state** + Set to 'N/A' if outside of USA -Set to 'N/A' if outside of USA + Required for physical order + -Required for physical order + + **Recipient's street name** - - -**Recipient's street name** + Required for physical order + -Required for physical order + + **Recipient's phone** - - -**Recipient's phone** + Required for physical order + -Required for physical order + + **Recipient's first name** - - -**Recipient's first name** + Required for physical order + -Required for physical order + + **Recipient's last name** - - -**Recipient's last name** + Required for physical order + -Required for physical order + ### Responses - + + + + **`code`** **\*** **integer** -### Responses + **Response code** - - - -**`code`** **\***** ****integer** + 0: success, Not 0: check the message -**Response code** + **`message`** **\*** **string** -0: success, Not 0: check the message + **Response message** -**`message`** **\***\*\* ****string\*\* + A non-zero code includes a message like 'Invalid payment info'. -**Response message** + **response** **(PaymentwallDeliveryDetailAnnotation, optional):** -A non-zero code includes a message like 'Invalid payment info'. + Includes multiple error messages or 'success: 1' message when successful. + + -**response** **(PaymentwallDeliveryDetailAnnotation, optional):** + + + **`error_code`****`integer`** -Includes multiple error messages or 'success: 1' message when successful. + Success if null. Otherwise, check notices for error message. - - + **`error`` `****`string`** - - -**`error_code`****`integer`** + **`Error message`** -Success if null. Otherwise, check notices for error message. + **`notices`` `****`Array[string]`** -**` error`` `****`string`** - -**`Error message`** - -**` notices`` `****`Array[string]`** - -**`Detailed error message`** - - - - - - - -```javascript -{ - // Response -} -``` - - + **`Detailed error message`** + + + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "error_code": 0, - "error": "string", - "notices": ["string"] +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "error_code": 0, + "error": "string", + "notices": ["string"] + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/paymentwall/paymentwall_delivery**](https://api.iamport.kr/#!/paymentwall/paymentwall_delivery) + **Swagger Test Link** + [**https://api.iamport.kr/#!/paymentwall/paymentwall\_delivery**](https://api.iamport.kr/#!/paymentwall/paymentwall_delivery) diff --git a/src/content/docs/en/api/payment-api/cancel-payment-api.mdx b/src/content/docs/en/api/payment-api/cancel-payment-api.mdx index c7d8a5632..ba74863fa 100644 --- a/src/content/docs/en/api/payment-api/cancel-payment-api.mdx +++ b/src/content/docs/en/api/payment-api/cancel-payment-api.mdx @@ -4,366 +4,353 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### C**ancels a payment in full or partially regardless of the payment method and PG.** +## Cancels a payment in full or partially regardless of the payment method and PG. - -Credit card/instant account transfer/mobile micropayment: cancellation is processed immediately. - -Virtual account: if you provide the refund account information, the refund information will be registered with PG and processed on the next business day. **(Requires virtual account special service contract)** - - - -### Parameters - -#### Body - - - - -**ChaiPort transaction ID** - - - - - -**Order ID (Required if imp_uid is null)** + + Credit card/instant account transfer/mobile micropayment: cancellation is processed immediately. - - -Amount to refund ( + Virtual account: if you provide the refund account information, the refund information will be registered with PG and processed on the next business day. **(Requires virtual account special service contract)** + -**Full refund if null** + ### Parameters -) + #### Body - - -Tax free amount out of + + + **ChaiPort transaction ID** + + -`amount` + + **Order ID (Required if imp\_uid is null)** + - ( + + Amount to refund ( -**0 if null** + **Full refund if null** -) + ) + - - -Refundable amount + + Tax free amount out of - - -**Reason for cancellation** + `amount` - - -**Refund account holder** + ( - (Required for + **0 if null** -**virtual account** + ) + - cancellation) + + Refundable amount + - - -Refund account bank code (Refer to bank codes list below, required for + + **Reason for cancellation** + -**virtual account** + + **Refund account holder** - cancellation) + (Required for - - -Refund account number (Required for + **virtual account** -**virtual account** + cancellation) + - cancellation) + + Refund account bank code (Refer to bank codes list below, required for - - -Refund account holder's phone number (Required for + **virtual account** -**virtual account** + cancellation) + - cancellation and + + Refund account number (Required for - + **virtual account** -**Smartro PG** + cancellation) + - + + Refund account holder's phone number (Required for -) + **virtual account** - + cancellation and -### Responses + + **Smartro PG** + - - - -**`code`** **\***** ****integer** + ) + -**Response code** + ### Responses -0: success, \ -Not 0: check the message + + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, \ + Not 0: check the message -A non-zero code includes a message like 'Invalid payment info. + **`message`** **\*** **string** -**`response`** **(PagedPaymentAnnotation, optional)** + **Response message** - - + A non-zero code includes a message like 'Invalid payment info. - - -**`imp_uid`** \* **string(32)** + **`response`** **(PagedPaymentAnnotation, optional)** + + -**i'mport payment transaction UID** + + + **`imp_uid`** \* **string(32)** -**`merchant_uid`** **\***** ****string(40)** + **i'mport payment transaction UID** -**Order ID** + **`merchant_uid`** **\*** **string(40)** -**`pay_method`** **\***** ****string(20)** + **Order ID** -**Payment method code** + **`pay_method`** **\*** **string(20)** -**`channel`** **\***** ****string(10)** + **Payment method code** -**Payment environment code** + **`channel`** **\*** **string(10)** -\['pc', 'mobile', 'api'] + **Payment environment code** -**`pg_provider`** **\***** ****string(16)** + \['pc', 'mobile', 'api'] -**PG code** + **`pg_provider`** **\*** **string(16)** ---- - -**`emb_pg_provider`** **\***** ****string(16)** - -**Hub-type PG code** + **PG code** -**`pg_tid`** **\*** **string(80)** + --- -**PG transaction ID** + **`emb_pg_provider`** **\*** **string(16)** -**`pg_id`** **\***** ****string(80)** + **Hub-type PG code** -**PG MID** + **`pg_tid`** **\*** **string(80)** -**`escrow`** **boolean** + **PG transaction ID** -**Indicates an escrow payment** + **`pg_id`** **\*** **string(80)** -**`apply_num`** **string(20)** + **PG MID** -**Credit card approval number** + **`escrow`** **boolean** -**`bank_code`** **string(4)** + **Indicates an escrow payment** -**Bank code** + **`apply_num`** **string(20)** -**`bank_name`** **string(20)** - -**Bank name** - ---- + **Credit card approval number** -**`card_code`** **string(3)** + **`bank_code`** **string(4)** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **Bank code** -**`card_name`** **string(20)** + **`bank_name`** **string(20)** -**Credit card name** + **Bank name** -**`card_quota`** **integer** + --- -**Number of installments (0 means one-off)** + **`card_code`** **string(3)** -**`card_number`** **string(20)** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**Masked credit card number** + **`card_name`** **string(20)** ---- + **Credit card name** -**`card_type`** **string(2)** + **`card_quota`** **integer** -**Card type code** + **Number of installments (0 means one-off)** -**`vbank_code`** **string(4)** + **`card_number`** **string(20)** -**Virtual account bank code (refer to image below)** + **Masked credit card number** ---- + --- -**`vbank_name`** **string(20)** + **`card_type`** **string(2)** -**Refund virtual account** + **Card type code** -**`vbank_holder`** **string(16)** + **`vbank_code`** **string(4)** -**Refund virtual account holder** + **Virtual account bank code (refer to image below)** -**`vbank_date`** **string** + --- -**Refund virtual account expiration (UNIX timestamp)** + **`vbank_name`** **string(20)** -**`vbank_issued_at`** **string** + **Refund virtual account** -**Refund virtual account created at (UNIX timestamp)** + **`vbank_holder`** **string(16)** -**`name`** **string(40)** + **Refund virtual account holder** -**Product name** + **`vbank_date`** **string** -**`amount`** **\*** **integer** + **Refund virtual account expiration (UNIX timestamp)** -**Order (payment) amount** + **`vbank_issued_at`** **string** -**`cancel_amount`** **integer** + **Refund virtual account created at (UNIX timestamp)** -**Cancelled amount** + **`name`** **string(40)** -**`currency`** **string(3)** + **Product name** -**Currency** + **`amount`** **\*** **integer** ---- + **Order (payment) amount** -**`buyer_name`** **string(16)** + **`cancel_amount`** **integer** -**Customer name** + **Cancelled amount** -**`buyer_email`** **string(64)** + **`currency`** **string(3)** -**Customer email**\ + **Currency** -**`buyer_tel`** **string(16)** + --- -**Customer phone** + **`buyer_name`** **string(16)** -**`buyer_addr`** **string(128)** + **Customer name** -**Customer address** + **`buyer_email`** **string(64)** -**`buyer_postcode`** **string(8)** + **Customer email**\\ -**Customer zip code** + **`buyer_tel`** **string(16)** -**`custom_data`** **string** + **Customer phone** -**echo data as JSON string** + **`buyer_addr`** **string(128)** -**`user_agent`** **string(256)** + **Customer address** -**UserAgent of the device where payment is initiated** + **`buyer_postcode`** **string(8)** -**`status`** **\***** ****string(20)** + **Customer zip code** -**Payment status code** + **`custom_data`** **string** -**`started_at`** **\*** **string** + **echo data as JSON string** -**Payment started at (UNIX timestamp)** + **`user_agent`** **string(256)** -**`paid_at`** **\***** ****string** + **UserAgent of the device where payment is initiated** -**Payment completed at (UNIX timestamp)**\ + **`status`** **\*** **string(20)** -**`failed_at`** **\***** ****string** + **Payment status code** -**Payment failed at (UNIX timestamp)** + **`started_at`** **\*** **string** -**`cancelled_at`** **\***** ****string** + **Payment started at (UNIX timestamp)** -**Payment cancelled at (UNIX timestamp)** + **`paid_at`** **\*** **string** -**`fail_reason`** **string(256)** + **Payment completed at (UNIX timestamp)**\\ -**Reason for failure** + **`failed_at`** **\*** **string** -**`cancel_reason`** **string(256)** + **Payment failed at (UNIX timestamp)** -**Reason for cancellation** + **`cancelled_at`** **\*** **string** -**`receipt_url`** **string(300)** + **Payment cancelled at (UNIX timestamp)** -**Credit card receipt URL** + **`fail_reason`** **string(256)** -**`cash_receipt_issued` ****boolean** + **Reason for failure** -**Option to automatically issue cash receipt** + **`cancel_reason`** **string(256)** -**`customer_uid`** **string(80)** + **Reason for cancellation** -**customer\_uid related to the payment transaction** + **`receipt_url`** **string(300)** -**`customer_uid_usage`** **string****(20)** + **Credit card receipt URL** -**customer\_uid use code** + **`cash_receipt_issued`** **boolean** -\['issue', 'payment', 'payment.scheduled'] + **Option to automatically issue cash receipt** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`customer_uid`** **string(80)** -**`Cancellation/partial cancellation history`** + **customer\_uid related to the payment transaction** - - + **`customer_uid_usage`** **string****(20)** - - -**cancel\_history array \[]** + **customer\_uid use code** -**`pg_tid`** **\***** ****string** + \['issue', 'payment', 'payment.scheduled'] -**PG cancellation transaction ID** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`amount`** **\*** **integer** + **`Cancellation/partial cancellation history`** + + -**Cancelled amount** + + + **cancel\_history array \[]** -**`cancelled_at`** **\*** **string** + **`pg_tid`** **\*** **string** -Cancelled at (UNIX timestamp) + **PG cancellation transaction ID** -**`reason`** **\*** **string(256)** + **`amount`** **\*** **integer** -**Reason for cancellation** + **Cancelled amount** -**`receipt_url`** **\***** ****string(300)** + **`cancelled_at`** **\*** **string** -**Cancellation receipt URL. Availability varies by PG.** + Cancelled at (UNIX timestamp) - - + **`reason`** **\*** **string(256)** - + **Reason for cancellation** - + **`receipt_url`** **\*** **string(300)** - + **Cancellation receipt URL. Availability varies by PG.** + + + + ### **Key parameters** @@ -378,89 +365,86 @@ Cancelled at (UNIX timestamp) > > The `checksum` is used to check whether the refundable amount is the same between the API > requester and the i'mport server. If they do not match, the refund request will fail. If the -> `checksum` is null, the verification is not performed.\ -> +> `checksum` is null, the verification is not performed.\\ -> **`amount`** **\***** ****integer** +> **`amount`** **\*** **integer** > > **Amount to cancel** > > If not specified, a full refund is requested.
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/cancelPayment**](https://api.iamport.kr/#!/payments/cancelPayment) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/cancelPayment**](https://api.iamport.kr/#!/payments/cancelPayment) diff --git a/src/content/docs/en/api/payment-api/get-balance-api-for-split-payment-transaction.mdx b/src/content/docs/en/api/payment-api/get-balance-api-for-split-payment-transaction.mdx index 2c8a911ae..1fe56de86 100644 --- a/src/content/docs/en/api/payment-api/get-balance-api-for-split-payment-transaction.mdx +++ b/src/content/docs/en/api/payment-api/get-balance-api-for-split-payment-transaction.mdx @@ -4,225 +4,211 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the balance of a transaction paid for using multiple payment methods. +## Gets the balance of a transaction paid for using multiple payment methods. - -This is currently supported only by PAYCO. - - - -### Parameters - -#### Path - - - - -**i'mport order ID** + + This is currently supported only by PAYCO. + - + ### Parameters - + #### Path -### Responses + + + **i'mport order ID** + + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`response`` `****`(PaymentBalanceResponseAnnotation, optional)`** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`` `****`(PaymentBalanceResponseAnnotation, optional)`** + + - - -**`amount`` `****`Integer`** + + + **`amount`` `****`Integer`** -**`Total amount`** + **`Total amount`** -**`cash_receipt`` `****`(PaymentBalanceAnnotation):`** + **`cash_receipt`` `****`(PaymentBalanceAnnotation):`** -**`Cash receipt amount`** + **`Cash receipt amount`** -**`primary`` `****`(PaymentBalanceAnnotation):`** + **`primary`` `****`(PaymentBalanceAnnotation):`** -**`Payment method 1`**(credit card, account transfer, virtual account, mobile micropayment) amount + **`Payment method 1`**(credit card, account transfer, virtual account, mobile micropayment) amount -**`secondary`` `****`(PaymentBalanceAnnotation):`** + **`secondary`` `****`(PaymentBalanceAnnotation):`** -**`Payment method 2`** PG/credit card points amount + **`Payment method 2`** PG/credit card points amount -**`discount`` `****`(PaymentBalanceAnnotation):`** + **`discount`` `****`(PaymentBalanceAnnotation):`** -**`PG/credit card discount amount`** + **`PG/credit card discount amount`** -**`histories`` `****`(Array[PaymentBalanceBaseAnnotation], optional)`** + **`histories`` `****`(Array[PaymentBalanceBaseAnnotation], optional)`** -**`PaymentBalance history`** + **`PaymentBalance history`** + + - - + + + **`tax_free`` `****`Integer`** - - -**`tax_free`` `****`Integer`** + **`Tax free amount`** (excludes any refunded amount) -**`Tax free amount`** (excludes any refunded amount) + **`supply`` `****`Integer`** -**`supply`` `****`Integer`** + **`Taxed amount`** (excludes any refunded amount) -**`Taxed amount`** (excludes any refunded amount) + **`vat`** **`Integer`** -**`vat`** **`Integer`** + **`Tax`** (excludes any refunded amount) -**`Tax`** (excludes any refunded amount) + **`service`` `****`Integer`** -**`service`` `****`Integer`** + **`Fee`** (excludes any refunded amount) + + -**`Fee`** (excludes any refunded amount) + + + **`cash_receipt`` `****`(PaymentBalanceAnnotation):`** - - + **`Cash receipt amount`** - - -**`cash_receipt`` `****`(PaymentBalanceAnnotation):`** + **`primary`` `****`(PaymentBalanceAnnotation):`** -**`Cash receipt amount`** + **`Payment method 1`**(credit card, account transfer, virtual account, mobile micropayment) amount -**`primary`` `****`(PaymentBalanceAnnotation):`** + **`secondary`` `****`(PaymentBalanceAnnotation):`** -**`Payment method 1`**(credit card, account transfer, virtual account, mobile micropayment) amount + **`Payment method 2`** PG/credit card points amount -**`secondary`` `****`(PaymentBalanceAnnotation):`** + **`discount`` `****`(PaymentBalanceAnnotation):`** -**`Payment method 2`** PG/credit card points amount + **`PG/credit card discount amount`** -**`discount`` `****`(PaymentBalanceAnnotation):`** + **`created *`` `****`integer`** -**`PG/credit card discount amount`** + **`Balance created at (UNIX timestamp)`** + + + -**`created *`` `****`integer`** - -**`Balance created at (UNIX timestamp)`** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "amount": 0, - "cash_receipt": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "primary": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "secondary": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "discount": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "histories": [ - { - "cash_receipt": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "primary": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "secondary": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "discount": { - "tax_free": 0, - "supply": 0, - "vat": 0, - "service": 0 - }, - "created": 0 - } - ] +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "amount": 0, + "cash_receipt": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "primary": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "secondary": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "discount": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "histories": [ + { + "cash_receipt": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "primary": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "secondary": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "discount": { + "tax_free": 0, + "supply": 0, + "vat": 0, + "service": 0 + }, + "created": 0 + } + ] + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/balanceByImpUid**](https://api.iamport.kr/#!/payments/balanceByImpUid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/balanceByImpUid**](https://api.iamport.kr/#!/payments/balanceByImpUid) diff --git a/src/content/docs/en/api/payment-api/get-payment-amount-api.mdx b/src/content/docs/en/api/payment-api/get-payment-amount-api.mdx index b4d9c228a..0482f730f 100644 --- a/src/content/docs/en/api/payment-api/get-payment-amount-api.mdx +++ b/src/content/docs/en/api/payment-api/get-payment-amount-api.mdx @@ -4,103 +4,91 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the amount saved via [**save payment amount API**](save-payment-amount-api). +## Gets the amount saved via [**save payment amount API**](save-payment-amount-api). - - - - -### Parameters - -#### Body - - - + -**Merchant order ID** + ### Parameters - + #### Body - + + + **Merchant order ID** + + -### Responses + ### Responses - - - -**`code`** **\***** ****integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\***\*\* ****string\*\* + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. - - **`response (PaymentPrepareAnnotation, optional)`** - + + **`response (PaymentPrepareAnnotation, optional)`** + + + - - + + + **`merchant_uid`` `****`*`****` `****`string`** - - -**`merchant_uid`` `****`*`****` `****`string`** + **`Merchant order ID`** -**`Merchant order ID`** + **`amount`****`*`****`number`** -**`amount`****`*`****`number`** - -**`Payment amount`** - - - - - - - -```javascript -{ - // Response -} -``` - - + **`Payment amount`** + + + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "merchant_uid": "string", - "amount": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "merchant_uid": "string", + "amount": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments.validation/getPaymentPrepareByMerchantUid**](https://api.iamport.kr/#!/payments.validation/getPaymentPrepareByMerchantUid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments.validation/getPaymentPrepareByMerchantUid**](https://api.iamport.kr/#!/payments.validation/getPaymentPrepareByMerchantUid) diff --git a/src/content/docs/en/api/payment-api/get-payment-api.mdx b/src/content/docs/en/api/payment-api/get-payment-api.mdx index d1b6dfe6b..970da4c6b 100644 --- a/src/content/docs/en/api/payment-api/get-payment-api.mdx +++ b/src/content/docs/en/api/payment-api/get-payment-api.mdx @@ -4,406 +4,392 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the details of a payment by imp\_uid. +## Gets the details of a payment by imp\_uid. - - - - -### Parameters - -#### Path - - - - -**Transaction ID** - - - - + -### Responses + ### Parameters - - - -**`code`** **\***** ****integer** + #### Path -**Response code** + + + **Transaction ID** + + -0: success, Not 0: check the message + ### Responses -**`message`** **\***** ****string** + + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info. + 0: success, Not 0: check the message -**`response`** **(PaymentAnnotation, optional)** + **`message`** **\*** **string** - - + **Response message** - - -**`code`** **\***** ****integer** + A non-zero code includes a message like 'Invalid payment info. -**`Response code`** + **`response`** **(PaymentAnnotation, optional)** + + -0: success, Not 0: check the message + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **`Response code`** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info. + **`message`** **\*** **string** -**`imp_uid`** \* **string** + **Response message** -**i'mport payment transaction UID** + A non-zero code includes a message like 'Invalid payment info. -**`merchant_uid`** **\***** ****string** + **`imp_uid`** \* **string** -**Order ID** + **i'mport payment transaction UID** -**`pay_method`** **\***** ****string** + **`merchant_uid`** **\*** **string** -**Payment method code** + **Order ID** -**`channel`** **\***** ****string** + **`pay_method`** **\*** **string** -**Payment environment code** + **Payment method code** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **`channel`** **\*** **string** -**`pg_provider`** **\***** ****string** + **Payment environment code** -**PG code** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated ---- - -**`emb_pg_provider`** **\***** ****string** + **`pg_provider`** **\*** **string** -**Hub-type PG code** + **PG code** -**`pg_tid`** **\*** **string** + --- -**PG transaction ID** + **`emb_pg_provider`** **\*** **string** -**`pg_id`** **\***** ****string** + **Hub-type PG code** -**PG MID** + **`pg_tid`** **\*** **string** -**`escrow`** **boolean** + **PG transaction ID** -**Indicates an escrow payment** + **`pg_id`** **\*** **string** -**`apply_num`** **string** + **PG MID** -**Credit card approval number** + **`escrow`** **boolean** -**`bank_code`** **string** + **Indicates an escrow payment** -**Bank code** + **`apply_num`** **string** -**`bank_name`** **string** + **Credit card approval number** -**Bank name** + **`bank_code`** **string** ---- + **Bank code** -**`card_code`** **string** + **`bank_name`** **string** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **Bank name** -**`card_name`** **string** + --- -**Credit card name** + **`card_code`** **string** -**`card_quota`** **integer** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**Number of installments (0 means one-off)** + **`card_name`** **string** -**`card_number`** **string** + **Credit card name** -**Masked credit card number** + **`card_quota`** **integer** ---- + **Number of installments (0 means one-off)** -**`card_type`** **string** + **`card_number`** **string** -**Credit card type code** + **Masked credit card number** -- 0: credit -- 1: check + --- -**`vbank_code`** **string** + **`card_type`** **string** -**Virtual account bank code (refer to image below)** + **Credit card type code** ---- + - 0: credit + - 1: check -**`vbank_name`** **string** + **`vbank_code`** **string** -**Refund virtual account** + **Virtual account bank code (refer to image below)** -**`vbank_holder`** **string** + --- -**Refund virtual account holder** + **`vbank_name`** **string** -**`vbank_date`** **string** + **Refund virtual account** -**Refund virtual account expiration (UNIX timestamp)** + **`vbank_holder`** **string** -**`vbank_issued_at`** **string** + **Refund virtual account holder** -**Refund virtual account created at (UNIX timestamp)** + **`vbank_date`** **string** -**`name`** **string** + **Refund virtual account expiration (UNIX timestamp)** -**Product name** + **`vbank_issued_at`** **string** -**`amount`** **\*** **integer** + **Refund virtual account created at (UNIX timestamp)** -**Order (payment) amount** + **`name`** **string** -**`cancel_amount`** **integer** + **Product name** -**Cancelled amount** + **`amount`** **\*** **integer** -**`currency`** **string** + **Order (payment) amount** -**Currency** + **`cancel_amount`** **integer** -- USD -- KRW -- EUR + **Cancelled amount** ---- + **`currency`** **string** -**`buyer_name`** **string** + **Currency** -**Customer name** + - USD + - KRW + - EUR -**`buyer_email`** **string** + --- -**Customer email**\ + **`buyer_name`** **string** -**`buyer_tel`** **string** + **Customer name** -**Customer phone** + **`buyer_email`** **string** -**`buyer_addr`** **string** + **Customer email**\\ -**Customer address** + **`buyer_tel`** **string** -**`buyer_postcode`** **string** + **Customer phone** -**Customer zip code** + **`buyer_addr`** **string** -**`custom_data`** **string** + **Customer address** -**echo data as JSON string** + **`buyer_postcode`** **string** -**`user_agent`** **string** + **Customer zip code** -**UserAgent of the device where payment is initiated** + **`custom_data`** **string** -**`status`** **\***** ****string** + **echo data as JSON string** -**Payment status code** + **`user_agent`** **string** -- ready -- paid -- cancelled -- failed + **UserAgent of the device where payment is initiated** -**`started_at`** **\*** **string** + **`status`** **\*** **string** -**Payment started at (UNIX timestamp)** + **Payment status code** -**`paid_at`** **\***** ****string** + - ready + - paid + - cancelled + - failed -**Payment completed at (UNIX timestamp)**\ + **`started_at`** **\*** **string** -**`failed_at`** **\***** ****string** + **Payment started at (UNIX timestamp)** -**Payment failed at (UNIX timestamp)** + **`paid_at`** **\*** **string** -**`cancelled_at`** **\***** ****string** + **Payment completed at (UNIX timestamp)**\\ -**Payment cancelled at (UNIX timestamp)** + **`failed_at`** **\*** **string** -**`fail_reason`** **string** + **Payment failed at (UNIX timestamp)** -**Reason for failure** + **`cancelled_at`** **\*** **string** -**`cancel_reason`** **string** + **Payment cancelled at (UNIX timestamp)** -**Reason for cancellation** + **`fail_reason`** **string** -**`receipt_url`** **string** + **Reason for failure** -**Credit card receipt URL** + **`cancel_reason`** **string** -**`cash_receipt_issued` ****boolean** + **Reason for cancellation** -**Option to automatically issue cash receipt** + **`receipt_url`** **string** -**`customer_uid`** **string** + **Credit card receipt URL** -**customer\_uid related to the payment transaction** + **`cash_receipt_issued`** **boolean** -**`customer_uid_usage`** **string** + **Option to automatically issue cash receipt** -**customer\_uid use code** + **`customer_uid`** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **customer\_uid related to the payment transaction** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`customer_uid_usage`** **string** -**`Cancellation/partial cancellation history`** + **customer\_uid use code** - - + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance - - -**cancel\_history array \[]** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`pg_tid`** **\***** ****string** + **`Cancellation/partial cancellation history`** + + -**PG cancellation transaction ID** + + + **cancel\_history array \[]** -**`amount`** **\*** **integer** + **`pg_tid`** **\*** **string** -**Cancelled amount** + **PG cancellation transaction ID** -**`cancelled_at`** **\*** **string** + **`amount`** **\*** **integer** -**Cancelled at (UNIX timestamp)** + **Cancelled amount** -**`reason`** **\*** **string(256)** + **`cancelled_at`** **\*** **string** -**Reason for cancellation** + **Cancelled at (UNIX timestamp)** -**`receipt_url`** **\***** ****string(300)** + **`reason`** **\*** **string(256)** -**Cancellation receipt URL. Availability varies by PG.** + **Reason for cancellation** - - + **`receipt_url`** **\*** **string(300)** - + **Cancellation receipt URL. Availability varies by PG.** + + + - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/getPaymentByImpUid**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/getPaymentByImpUid**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) diff --git a/src/content/docs/en/api/payment-api/get-payments-api.mdx b/src/content/docs/en/api/payment-api/get-payments-api.mdx index 57bcdd178..52f4765a4 100644 --- a/src/content/docs/en/api/payment-api/get-payments-api.mdx +++ b/src/content/docs/en/api/payment-api/get-payments-api.mdx @@ -4,415 +4,402 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the details of payments by multiple imp\_uids or merchant\_uids. +## Gets the details of payments by multiple imp\_uids or merchant\_uids. - -**Example call**\ -`/payments?imp_uid[]=imp_448280090638&imp_uid[]=imp_448280090639&merchant_uid[]=merchant_143434085216` - -Returns up to 100 - - - -### Parameters - -#### Query - - - - -**Transaction ID** - - - -Order ID - - - -### Responses - - - - -**`code`** **\***** ****integer** + + **Example call**\ + `/payments?imp_uid[]=imp_448280090638&imp_uid[]=imp_448280090639&merchant_uid[]=merchant_143434085216` -**Response code** + Returns up to 100 + -0: success, \ -Not 0: check the message + ### Parameters -**`message`** **\***** ****string** + #### Query -**Response message** + + **Transaction ID** + -A non-zero code includes a message like 'Invalid payment info. + + Order ID + -**`response`** **(Array\[PaymentAnnotation], optional)** + ### Responses - - + + + + **`code`** **\*** **integer** - - -**`code`** **\***** ****integer** + **Response code** -**`Response code`** + 0: success, \ + Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***** ****string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info. -A non-zero code includes a message like 'Invalid payment info. + **`response`** **(Array\[PaymentAnnotation], optional)** + + -**`imp_uid`** \* **string** + + + **`code`** **\*** **integer** -**i'mport payment transaction UID** + **`Response code`** -**`merchant_uid`** **\***** ****string** + 0: success, Not 0: check the message -**Order ID** + **`message`** **\*** **string** -**`pay_method`** **\***** ****string** + **Response message** -**Payment method code** + A non-zero code includes a message like 'Invalid payment info. -**`channel`** **\***** ****string** + **`imp_uid`** \* **string** -**Payment environment code** + **i'mport payment transaction UID** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **`merchant_uid`** **\*** **string** -**`pg_provider`** **\***** ****string** + **Order ID** -**PG code** + **`pay_method`** **\*** **string** ---- + **Payment method code** -**`emb_pg_provider`** **\***** ****string** + **`channel`** **\*** **string** -**Hub-type PG code** + **Payment environment code** -**`pg_tid`** **\*** **string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**PG transaction ID** + **`pg_provider`** **\*** **string** -**`pg_id`** **\***** ****string** + **PG code** -**PG MID** + --- -**`escrow`** **boolean** + **`emb_pg_provider`** **\*** **string** -**Indicates an escrow payment** + **Hub-type PG code** -**`apply_num`** **string** + **`pg_tid`** **\*** **string** -**Credit card approval number** + **PG transaction ID** -**`bank_code`** **string** + **`pg_id`** **\*** **string** -**Bank code** + **PG MID** -**`bank_name`** **string** + **`escrow`** **boolean** -**Bank name** + **Indicates an escrow payment** ---- + **`apply_num`** **string** -**`card_code`** **string** + **Credit card approval number** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`bank_code`** **string** -**`card_name`** **string** + **Bank code** -**Credit card name** + **`bank_name`** **string** -**`card_quota`** **integer** + **Bank name** -**Number of installments (0 means one-off)** + --- -**`card_number`** **string** + **`card_code`** **string** -**Masked credit card number** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) ---- + **`card_name`** **string** -**`card_type`** **string** + **Credit card name** -**Credit card type code** + **`card_quota`** **integer** -- 0: credit -- 1: check + **Number of installments (0 means one-off)** -**`vbank_code`** **string** + **`card_number`** **string** -**Virtual account bank code (refer to image below)** + **Masked credit card number** ---- + --- -**`vbank_name`** **string** + **`card_type`** **string** -**Refund virtual account** + **Credit card type code** -**`vbank_holder`** **string** + - 0: credit + - 1: check -**Refund virtual account holder** + **`vbank_code`** **string** -**`vbank_date`** **string** + **Virtual account bank code (refer to image below)** -**Refund virtual account expiration (UNIX timestamp)** + --- -**`vbank_issued_at`** **string** + **`vbank_name`** **string** -**Refund virtual account created at (UNIX timestamp)** + **Refund virtual account** -**`name`** **string** + **`vbank_holder`** **string** -**Product name** + **Refund virtual account holder** -**`amount`** **\*** **integer** + **`vbank_date`** **string** -**Order (payment) amount** + **Refund virtual account expiration (UNIX timestamp)** -**`cancel_amount`** **integer** + **`vbank_issued_at`** **string** -**Cancelled amount** + **Refund virtual account created at (UNIX timestamp)** -**`currency`** **string** + **`name`** **string** -**Currency** - -- USD -- KRW -- EUR - ---- + **Product name** -**`buyer_name`** **string** + **`amount`** **\*** **integer** -**Customer name** + **Order (payment) amount** -**`buyer_email`** **string** + **`cancel_amount`** **integer** -**Customer email**\ + **Cancelled amount** -**`buyer_tel`** **string** + **`currency`** **string** -**Customer phone** + **Currency** -**`buyer_addr`** **string** + - USD + - KRW + - EUR -**Customer address** + --- -**`buyer_postcode`** **string** + **`buyer_name`** **string** -**Customer zip code** + **Customer name** -**`custom_data`** **string** + **`buyer_email`** **string** -**echo data as JSON string** + **Customer email** -**`user_agent`** **string** + **`buyer_tel`** **string** -**UserAgent of the device where payment is initiated** + **Customer phone** -**`status`** **\***** ****string** + **`buyer_addr`** **string** -**Payment status code** + **Customer address** -- ready -- paid -- cancelled -- failed + **`buyer_postcode`** **string** -**`started_at`** **\*** **string** + **Customer zip code** -**Payment started at (UNIX timestamp)** + **`custom_data`** **string** -**`paid_at`** **\***** ****string** + **echo data as JSON string** -**Payment completed at (UNIX timestamp)**\ + **`user_agent`** **string** -**`failed_at`** **\***** ****string** + **UserAgent of the device where payment is initiated** -**Payment failed at (UNIX timestamp)** + **`status`** **\*** **string** -**`cancelled_at`** **\***** ****string** + **Payment status code** -**Payment cancelled at (UNIX timestamp)** + - ready + - paid + - cancelled + - failed -**`fail_reason`** **string** + **`started_at`** **\*** **string** -**Reason for failure** + **Payment started at (UNIX timestamp)** -**`cancel_reason`** **string** + **`paid_at`** **\*** **string** -**Reason for cancellation** + **Payment completed at (UNIX timestamp)** -**`receipt_url`** **string** + **`failed_at`** **\*** **string** -**Credit card receipt URL** + **Payment failed at (UNIX timestamp)** -**`cash_receipt_issued` ****boolean** + **`cancelled_at`** **\*** **string** -**Option to automatically issue cash receipt** + **Payment cancelled at (UNIX timestamp)** -**`customer_uid`** **string** + **`fail_reason`** **string** -**customer\_uid related to the payment transaction** + **Reason for failure** -**`customer_uid_usage`** **string** + **`cancel_reason`** **string** -**customer\_uid use code** + **Reason for cancellation** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **`receipt_url`** **string** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **Credit card receipt URL** -**`Cancellation/partial cancellation history`** + **`cash_receipt_issued`****boolean** - - + **Option to automatically issue cash receipt** - - -**cancel\_history array \[]** + **`customer_uid`** **string** -**`pg_tid`** **\***** ****string** + **customer\_uid related to the payment transaction** -**PG cancellation transaction ID** + **`customer_uid_usage`** **string** -**`amount`** **\*** **integer** + **customer\_uid use code** -**Cancelled amount** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`cancelled_at`** **\*** **string** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**Cancelled at (UNIX timestamp)** + **`Cancellation/partial cancellation history`** + + -**`reason`** **\*** **string** + + + **cancel\_history array \[]** -**Reason for cancellation** + **`pg_tid`** **\*** **string** -**`receipt_url`** **\***** ****string** + **PG cancellation transaction ID** -**Cancellation receipt URL. Availability varies by PG.** + **`amount`** **\*** **integer** - - + **Cancelled amount** - + **`cancelled_at`** **\*** **string** - -```javascript -{ - // Response -} -``` + **Cancelled at (UNIX timestamp)** - + **`reason`** **\*** **string** - -```javascript -{ - // Response -} -``` + **Reason for cancellation** - + **`receipt_url`** **\*** **string** - + **Cancellation receipt URL. Availability varies by PG.** + + + -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/getPaymentListByImpUid**](https://api.iamport.kr/#!/payments/getPaymentListByImpUid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/getPaymentListByImpUid**](https://api.iamport.kr/#!/payments/getPaymentListByImpUid) diff --git a/src/content/docs/en/api/payment-api/get-payments-by-billing-key-api.mdx b/src/content/docs/en/api/payment-api/get-payments-by-billing-key-api.mdx index 37f052741..4825d451d 100644 --- a/src/content/docs/en/api/payment-api/get-payments-by-billing-key-api.mdx +++ b/src/content/docs/en/api/payment-api/get-payments-by-billing-key-api.mdx @@ -4,408 +4,393 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets payments made with the specified billing key. +## Gets payments made with the specified billing key. - - - - -### Parameters + -#### Path + ### Parameters - - + #### Path -**Billing key** + + + **Billing key** + + - + #### Query - + + **Paging page** -#### Query + Start from 1 + - -**Paging page** + ### Responses -Start from 1 + + + + **`code`** **\*** **integer** - + **Response code** -### Responses + 0: success, Not 0: check the message - - - -**`code`** **\***** ****integer** + **`message`** **\*** **string** -**Response code** + **Response message** -0: success, Not 0: check the message + A non-zero code includes a message like 'Invalid payment info'. -**`message`** **\***\*\* ****string\*\* + **`response`** **(Array\[PaymentAnnotation], optional)** + + -**Response message** + + + **`imp_uid`** \* **string** -A non-zero code includes a message like 'Invalid payment info'. + **i'mport payment transaction UID** -**`response`** **(Array\[PaymentAnnotation], optional)** + **`merchant_uid`** **\*** **string** - - + **Order ID** - - -**`imp_uid`** \* **string** + **`pay_method`** **\*** **string** -**i'mport payment transaction UID** + **Payment method code** -**`merchant_uid`** **\***\*\* ****string\*\* + **`channel`** **\*** **string** -**Order ID** + **Payment environment code** -**`pay_method`** **\***\*\* ****string\*\* + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**Payment method code** + **`pg_provider`** **\*** **string** -**`channel`** **\***\*\* ****string\*\* + **PG code** -**Payment environment code** + --- -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **`emb_pg_provider`** **\*** **string** -**`pg_provider`** **\***\*\* ****string\*\* + **Hub-type PG code** -**PG code** + **`pg_tid`** **\*** **string** ---- - -**`emb_pg_provider`** **\***\*\* ****string\*\* + **PG transaction ID** -**Hub-type PG code** + **`pg_id`** **\*** **string** -**`pg_tid`** **\*** **string** + **PG MID** -**PG transaction ID** + **`escrow`** **boolean** -**`pg_id`** **\***\*\* ****string\*\* + **Indicates an escrow payment** -**PG MID** + **`apply_num`** **string** -**`escrow`** **boolean** + **Credit card approval number** -**Indicates an escrow payment** + **`bank_code`** **string** -**`apply_num`** **string** + **Bank code** -**Credit card approval number** + **`bank_name`** **string** -**`bank_code`** **string** + **Bank name** -**Bank code** + --- -**`bank_name`** **string** + **`card_code`** **string** -**Bank name** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) ---- + **`card_name`** **string** -**`card_code`** **string** + **Credit card name** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`card_quota`** **integer** -**`card_name`** **string** + **Number of installments (0 means one-off)** -**Credit card name** + **`card_number`** **string** -**`card_quota`** **integer** + **Masked credit card number** -**Number of installments (0 means one-off)** + --- -**`card_number`** **string** + **`card_type`** **string** -**Masked credit card number** + **Credit card type code** ---- + - 0: credit + - 1: check -**`card_type`** **string** + **`vbank_code`** **string** -**Credit card type code** + **Virtual account bank code (refer to image below)** -- 0: credit -- 1: check + --- -**`vbank_code`** **string** + **`vbank_name`** **string** -**Virtual account bank code (refer to image below)** + **Refund virtual account** ---- + **`vbank_holder`** **string** -**`vbank_name`** **string** + **Refund virtual account holder** -**Refund virtual account** + **`vbank_date`** **string** -**`vbank_holder`** **string** + **Refund virtual account expiration (UNIX timestamp)** -**Refund virtual account holder** + **`vbank_issued_at`** **string** -**`vbank_date`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Refund virtual account expiration (UNIX timestamp)** + **`name`** **string** -**`vbank_issued_at`** **string** + **Product name** -**Refund virtual account created at (UNIX timestamp)** + **`amount`** **\*** **integer** -**`name`** **string** + **Order (payment) amount** -**Product name** + **`cancel_amount`** **integer** -**`amount`** **\*** **integer** + **Cancelled amount** -**Order (payment) amount** + **`currency`** **string** -**`cancel_amount`** **integer** + **Currency** -**Cancelled amount** + - USD + - KRW + - EUR -**`currency`** **string** + --- -**Currency** + **`buyer_name`** **string** -- USD -- KRW -- EUR + **Customer name** ---- + **`buyer_email`** **string** -**`buyer_name`** **string** + **Customer email** -**Customer name** + **`buyer_tel`** **string** -**`buyer_email`** **string** + **Customer phone** -**Customer email**\ + **`buyer_addr`** **string** -**`buyer_tel`** **string** + **Customer address** -**Customer phone** + **`buyer_postcode`** **string** -**`buyer_addr`** **string** + **Customer zip code** -**Customer address** + **`custom_data`** **string** -**`buyer_postcode`** **string** + **echo data as JSON string** -**Customer zip code** + **`user_agent`** **string** -**`custom_data`** **string** + **UserAgent of the device where payment is initiated** -**echo data as JSON string** + **`status`** **\*** **string** -**`user_agent`** **string** + **Payment status code** -**UserAgent of the device where payment is initiated** + - ready + - paid + - cancelled + - failed -**`status`** **\***\*\* ****string\*\* + **`started_at`** **\*** **string** -**Payment status code** + **Payment started at (UNIX timestamp)** -- ready -- paid -- cancelled -- failed + **`paid_at`** **\*** **string** -**`started_at`** **\*** **string** + **Payment completed at (UNIX timestamp)** -**Payment started at (UNIX timestamp)** + **`failed_at`** **\*** **string** -**`paid_at`** **\***\*\* ****string\*\* + **Payment failed at (UNIX timestamp)** -**Payment completed at (UNIX timestamp)**\ + **`cancelled_at`** **\*** **string** -**`failed_at`** **\***\*\* ****string\*\* + **Payment cancelled at (UNIX timestamp)** -**Payment failed at (UNIX timestamp)** + **`fail_reason`** **string** -**`cancelled_at`** **\***\*\* ****string\*\* + **Reason for failure** -**Payment cancelled at (UNIX timestamp)** + **`cancel_reason`** **string** -**`fail_reason`** **string** + **Reason for cancellation** -**Reason for failure** + **`receipt_url`** **string** -**`cancel_reason`** **string** + **Credit card receipt URL** -**Reason for cancellation** + **`cash_receipt_issued`** **boolean** -**`receipt_url`** **string** + **Option to automatically issue cash receipt** -**Credit card receipt URL** + **`customer_uid`** **string** -**`cash_receipt_issued` ****boolean** + **customer\_uid related to the payment transaction** -**Option to automatically issue cash receipt** + **`customer_uid_usage`** **string** -**`customer_uid`** **string** + **customer\_uid use code** -**customer_uid related to the payment transaction** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`customer_uid_usage`** **string** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**customer_uid use code** + **`Cancellation/partial cancellation history`** + + -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + + + **cancel\_history array \[]** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`pg_tid`** **\*** **string** -**`Cancellation/partial cancellation history`** + **PG cancellation transaction ID** - - + **`amount`** **\*** **integer** - - -**cancel\_history array \[]** + **Cancelled amount** -**`pg_tid`** **\***\*\* ****string\*\* + **`cancelled_at`** **\*** **string** -**PG cancellation transaction ID** + **Cancelled at (UNIX timestamp)** -**`amount`** **\*** **integer** + **`reason`** **\*** **string(256)** -**Cancelled amount** + **Reason for cancellation** -**`cancelled_at`** **\*** **string** + **`receipt_url`** **\*** **string(300)** -**Cancelled at (UNIX timestamp)** + **Cancellation receipt URL. Availability varies by PG.** + + + -**`reason`** **\*** **string(256)** - -**Reason for cancellation** - -**`receipt_url`** **\***\*\* ****string(300)\*\* - -**Cancellation receipt URL. Availability varies by PG.** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "total": 0, - "previous": 0, - "next": 0, - "list": [ - { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": ["string"], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" - } - ] +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "total": 0, + "previous": 0, + "next": 0, + "list": [ + { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": ["string"], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } + ] + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe.customer/customer_payments**](https://api.iamport.kr/#!/subscribe.customer/customer_payments) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe.customer/customer\_payments**](https://api.iamport.kr/#!/subscribe.customer/customer_payments) diff --git a/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-all.mdx b/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-all.mdx index c3729e6e0..a9e86f365 100644 --- a/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-all.mdx +++ b/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-all.mdx @@ -4,381 +4,366 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -Gets details of payments by order ID, status. This returns all transactions with the ID (for all -duplicate IDs). +## Gets details of payments by order ID, status. This returns all transactions with the ID (for all duplicate IDs). - -Returns all transactions with the ID (for all duplicate IDs). - - - -### Parameters - -#### Path - - - - -**Order ID** - - - - - -**Status code** - -ready - -paid - -failed - -cancelled + + Returns all transactions with the ID (for all duplicate IDs). + - + ### Parameters -#### Query + #### Path - -**Page number** + + + **Order ID** + + - - -**Search results per page** + + **Status code** - - -**Sort by code** + ready - + paid -### Responses + failed - - - -**`code`** **\*** **integer** + cancelled + -**Response code** + #### Query -0: success, Not 0: check the message + + **Page number** + -**`message`** **\*** **string** + + **Search results per page** + -**Response message** + + **Sort by code** + -A non-zero code includes a message like 'Invalid payment info'. + ### Responses -**`response`** **(PagedPaymentAnnotation, optional)** + + + + **`code`** **\*** **integer** - - + **Response code** - - -**`total`** **`*`** **`integer`** + 0: success, Not 0: check the message -**`Total search results`** + **`message`** **\*** **string** -**`previous`** **`*`** **`integer`** + **Response message** -**`Previous page number`** + A non-zero code includes a message like 'Invalid payment info'. -If none, 0 + **`response`** **(PagedPaymentAnnotation, optional)** + + -**`next`** **`*`** **`integer`** + + + **`total`** **`*`** **`integer`** -**`Next page number`** + **`Total search results`** -If none, 0 + **`previous`** **`*`** **`integer`** -**list ** **(Array\[PaymentAnnotation], optional)** + **`Previous page number`** -Array of payment records (up to 20) + If none, 0 - - + **`next`** **`*`** **`integer`** - - -**`imp_uid`** \* **string** + **`Next page number`** -**i'mport payment transaction UID** + If none, 0 -**`merchant_uid`** **\*** **string** + **list** **(Array\[PaymentAnnotation], optional)** -**Order ID** + Array of payment records (up to 20) + + -**`pay_method`** **\*** **string** + + + **`imp_uid`** \* **string** -**Payment method code** + **i'mport payment transaction UID** -**`channel`** **\*** **string** + **`merchant_uid`** **\*** **string** -**Payment environment code** + **Order ID** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **`pay_method`** **\*** **string** -**`pg_provider`** **\*** **string** + **Payment method code** -**PG code** + **`channel`** **\*** **string** ---- - -**`emb_pg_provider`** **\*** **string** - -**Hub-type PG code** - -**`pg_tid`** **\*** **string** + **Payment environment code** -**PG transaction ID** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**`pg_id`** **\*** **string** + **`pg_provider`** **\*** **string** -**PG MID** + **PG code** -**`escrow`** **boolean** + --- -**Indicates an escrow payment** + **`emb_pg_provider`** **\*** **string** -**`apply_num`** **string** + **Hub-type PG code** -**Credit card approval number** + **`pg_tid`** **\*** **string** -**`bank_code`** **string** + **PG transaction ID** -**Bank code** + **`pg_id`** **\*** **string** -**`bank_name`** **string** + **PG MID** -**Bank name** + **`escrow`** **boolean** ---- + **Indicates an escrow payment** -**`card_code`** **string** + **`apply_num`** **string** -**Credit card code (KFTC Credit Card Codes:** [ **link** ](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **Credit card approval number** -**`card_name`** **string** + **`bank_code`** **string** -**Credit card name** + **Bank code** -**`card_quota`** **integer** + **`bank_name`** **string** -**Number of installments (0 means one-off)** + **Bank name** -**`card_number`** **string** + --- -**Masked credit card number** + **`card_code`** **string** ---- + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**`card_type`** **string** + **`card_name`** **string** -**Credit card type code** + **Credit card name** -- 0: credit -- 1: check + **`card_quota`** **integer** -**`vbank_code`** **string** + **Number of installments (0 means one-off)** -**Virtual account bank code (refer to image below)** + **`card_number`** **string** ---- + **Masked credit card number** -**`vbank_name`** **string** + --- -**Refund virtual account** + **`card_type`** **string** -**`vbank_holder`** **string** + **Credit card type code** -**Refund virtual account holder** + - 0: credit + - 1: check -**`vbank_date`** **string** + **`vbank_code`** **string** -**Refund virtual account expiration (UNIX timestamp)** + **Virtual account bank code (refer to image below)** -**`vbank_issued_at`** **string** + --- -**Refund virtual account created at (UNIX timestamp)** + **`vbank_name`** **string** -**`name`** **string** + **Refund virtual account** -**Product name** + **`vbank_holder`** **string** -**`amount`** **\*** **integer** + **Refund virtual account holder** -**Order (payment) amount** + **`vbank_date`** **string** -**`cancel_amount`** **integer** + **Refund virtual account expiration (UNIX timestamp)** -**Cancelled amount** + **`vbank_issued_at`** **string** -**`currency`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Currency** + **`name`** **string** -- USD -- KRW -- EUR + **Product name** ---- + **`amount`** **\*** **integer** -**`buyer_name`** **string** + **Order (payment) amount** -**Customer name** + **`cancel_amount`** **integer** -**`buyer_email`** **string** + **Cancelled amount** -**Customer email**\ + **`currency`** **string** -**`buyer_tel`** **string** + **Currency** -**Customer phone** + - USD + - KRW + - EUR -**`buyer_addr`** **string** + --- -**Customer address** + **`buyer_name`** **string** -**`buyer_postcode`** **string** + **Customer name** -**Customer zip code** + **`buyer_email`** **string** -**`custom_data`** **string** + **Customer email** -**echo data as JSON string** + **`buyer_tel`** **string** -**`user_agent`** **string** + **Customer phone** -**UserAgent of the device where payment is initiated** + **`buyer_addr`** **string** -**`status`** **\*** **string** + **Customer address** -**Payment status code** + **`buyer_postcode`** **string** -- ready -- paid -- cancelled -- failed + **Customer zip code** -**`started_at`** **\*** **string** + **`custom_data`** **string** -**Payment started at (UNIX timestamp)** + **echo data as JSON string** -**`paid_at`** **\*** **string** + **`user_agent`** **string** -**Payment completed at (UNIX timestamp)**\ + **UserAgent of the device where payment is initiated** -**`failed_at`** **\*** **string** + **`status`** **\*** **string** -**Payment failed at (UNIX timestamp)** + **Payment status code** -**`cancelled_at`** **\*** **string** + - ready + - paid + - cancelled + - failed -**Payment cancelled at (UNIX timestamp)** + **`started_at`** **\*** **string** -**`fail_reason`** **string** + **Payment started at (UNIX timestamp)** -**Reason for failure** + **`paid_at`** **\*** **string** -**`cancel_reason`** **string** + **Payment completed at (UNIX timestamp)** -**Reason for cancellation** + **`failed_at`** **\*** **string** -**`receipt_url`** **string** + **Payment failed at (UNIX timestamp)** -**Credit card receipt URL** + **`cancelled_at`** **\*** **string** -**`cash_receipt_issued`** **boolean** + **Payment cancelled at (UNIX timestamp)** -**Option to automatically issue cash receipt** + **`fail_reason`** **string** -**`customer_uid`** **string** + **Reason for failure** -**customer\_uid related to the payment transaction** + **`cancel_reason`** **string** -**`customer_uid_usage`** **string** + **Reason for cancellation** -**customer\_uid use code** + **`receipt_url`** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **Credit card receipt URL** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`cash_receipt_issued`** **boolean** -**`Cancellation/partial cancellation history`** + **Option to automatically issue cash receipt** - - + **`customer_uid`** **string** - - -**cancel\_history array \[]** + **customer\_uid related to the payment transaction** -**`pg_tid`** **\*** **string** + **`customer_uid_usage`** **string** -**PG cancellation transaction ID** + **customer\_uid use code** -**`amount`** **\*** **integer** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**Cancelled amount** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`cancelled_at`** **\*** **string** + **`Cancellation/partial cancellation history`** + + -**Cancelled at (UNIX timestamp)** + + + **cancel\_history array \[]** -**`reason`** **\*** **string(256)** + **`pg_tid`** **\*** **string** -**Reason for cancellation** + **PG cancellation transaction ID** -**`receipt_url`** **\*** **string(300)** + **`amount`** **\*** **integer** -**Cancellation receipt URL. Availability varies by PG.** + **Cancelled amount** - - + **`cancelled_at`** **\*** **string** - + **Cancelled at (UNIX timestamp)** - -```javascript -{ - // Response -} -``` + **`reason`** **\*** **string(256)** - + **Reason for cancellation** - -```javascript -{ - // Response -} -``` + **`receipt_url`** **\*** **string(300)** - + **Cancellation receipt URL. Availability varies by PG.** + + + - -```javascript -{ - // Response -} -``` + + ```ts + { + // Response + } + ``` + - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -389,94 +374,101 @@ Array of payment records (up to 20) > > A minus (-) indicates a descending sort order. > -> - \-started : Sort in descending order (DESC) based on payment start time (payment window open time) -> - started : Sort in ascending order (ASC) based on payment start time (payment window open time) -> - \-paid : Sort in descending order (DESC) based on payment completion time +> - -started : Sort in descending order (DESC) +> based on payment start time (payment window open time) +> +> - started : Sort in ascending order (ASC) +> based on payment start time (payment window open time) +> +> - -paid : Sort in descending order (DESC) based on payment completion time +> > - paid: Sort in ascending order (ASC) based on payment completion time -> - \-updated : Sort in descending order (DESC) based on the last modification time (the modification time is changed whenever payment status changes) -> - updated : Sort in ascending order (ASC) based on the last modification time (the modification time is changed whenever payment status changes) +> +> - -updated : Sort in descending order (DESC) based on the last modification time +> (the modification time is changed whenever payment status changes) +> +> - updated : Sort in ascending order (ASC) based on the last modification time +> (the modification time is changed whenever payment status changes)
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "total": 0, - "previous": 0, - "next": 0, - "list": [ - { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" - } - ] +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "total": 0, + "previous": 0, + "next": 0, + "list": [ + { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } + ] + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/getAllPaymentsByMerchantUid**](https://api.iamport.kr/#!/payments/getAllPaymentsByMerchantUid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/getAllPaymentsByMerchantUid**](https://api.iamport.kr/#!/payments/getAllPaymentsByMerchantUid) diff --git a/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-top-1.mdx b/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-top-1.mdx index 559444004..068cf5b94 100644 --- a/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-top-1.mdx +++ b/src/content/docs/en/api/payment-api/get-payments-by-order-id-status-top-1.mdx @@ -4,338 +4,326 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets details of payments by order ID, status. This returns top 1 transaction based on the sort order. +## Gets details of payments by order ID, status. This returns top 1 transaction based on the sort order. - -If you specify the payment_status, this returns the latest data for the status. - - - -### Parameters - -#### Path - - - - -**Order ID** - - - - - -**Status code** - -`ready` - -`paid` - -`failed` + + If you specify the payment\_status, this returns the latest data for the status. + -`cancelled` + ### Parameters - + #### Path -#### Query + + + **Order ID** + + - -`Sort by code` + + **Status code** - + `ready` -### Responses + `paid` - - - -**`code`** **\***** ****integer** + `failed` -**Response code** + `cancelled` + -0: success, Not 0: check the message + #### Query -**`message`** **\***** ****string** + + `Sort by code` + -**Response message** + ### Responses -A non-zero code includes a message like 'Invalid payment info'. + + + + **`code`** **\*** **integer** -**`response`** **(PagedPaymentAnnotation, optional)** + **Response code** - - + 0: success, Not 0: check the message - - -**`imp_uid`** \* **string** + **`message`** **\*** **string** -**i'mport payment transaction UID** + **Response message** -**`merchant_uid`** **\***** ****string** + A non-zero code includes a message like 'Invalid payment info'. -**Order ID** + **`response`** **(PagedPaymentAnnotation, optional)** + + -**`pay_method`** **\***** ****string** + + + **`imp_uid`** \* **string** -**Payment method code** + **i'mport payment transaction UID** -**`channel`** **\***** ****string** + **`merchant_uid`** **\*** **string** -**Payment environment code** + **Order ID** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **`pay_method`** **\*** **string** -**`pg_provider`** **\***** ****string** + **Payment method code** -**PG code** + **`channel`** **\*** **string** ---- + **Payment environment code** -**`emb_pg_provider`** **\***** ****string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**Hub-type PG code** + **`pg_provider`** **\*** **string** -**`pg_tid`** **\*** **string** + **PG code** -**PG transaction ID** + --- -**`pg_id`** **\***** ****string** + **`emb_pg_provider`** **\*** **string** -**PG MID** + **Hub-type PG code** -**`escrow`** **boolean** + **`pg_tid`** **\*** **string** -**Indicates an escrow payment** + **PG transaction ID** -**`apply_num`** **string** + **`pg_id`** **\*** **string** -**Credit card approval number** + **PG MID** -**`bank_code`** **string** + **`escrow`** **boolean** -**Bank code** + **Indicates an escrow payment** -**`bank_name`** **string** + **`apply_num`** **string** -**Bank name** + **Credit card approval number** ---- + **`bank_code`** **string** -**`card_code`** **string** + **Bank code** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`bank_name`** **string** -**`card_name`** **string** + **Bank name** -**Credit card name** + --- -**`card_quota`** **integer** + **`card_code`** **string** -**Number of installments (0 means one-off)** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**`card_number`** **string** + **`card_name`** **string** -**Masked credit card number** + **Credit card name** ---- + **`card_quota`** **integer** -**`card_type`** **string** + **Number of installments (0 means one-off)** -**Credit card type code** + **`card_number`** **string** -- 0: credit -- 1: check + **Masked credit card number** -**`vbank_code`** **string** + --- -**Virtual account bank code (refer to image below)** + **`card_type`** **string** ---- + **Credit card type code** -**`vbank_name`** **string** + - 0: credit + - 1: check -**Refund virtual account** + **`vbank_code`** **string** -**`vbank_holder`** **string** + **Virtual account bank code (refer to image below)** -**Refund virtual account holder** + --- -**`vbank_date`** **string** + **`vbank_name`** **string** -**Refund virtual account expiration (UNIX timestamp)** + **Refund virtual account** -**`vbank_issued_at`** **string** + **`vbank_holder`** **string** -**Refund virtual account created at (UNIX timestamp)** + **Refund virtual account holder** -**`name`** **string** + **`vbank_date`** **string** -**Product name** + **Refund virtual account expiration (UNIX timestamp)** -**`amount`** **\*** **integer** + **`vbank_issued_at`** **string** -**Order (payment) amount** + **Refund virtual account created at (UNIX timestamp)** -**`cancel_amount`** **integer** + **`name`** **string** -**Cancelled amount** + **Product name** -**`currency`** **string** + **`amount`** **\*** **integer** -**Currency** - -- USD -- KRW -- EUR - ---- + **Order (payment) amount** -**`buyer_name`** **string** + **`cancel_amount`** **integer** -**Customer name** + **Cancelled amount** -**`buyer_email`** **string** + **`currency`** **string** -**Customer email**\ + **Currency** -**`buyer_tel`** **string** + - USD + - KRW + - EUR -**Customer phone** + --- -**`buyer_addr`** **string** + **`buyer_name`** **string** -**Customer address** + **Customer name** -**`buyer_postcode`** **string** + **`buyer_email`** **string** -**Customer zip code** + **Customer email**\\ -**`custom_data`** **string** + **`buyer_tel`** **string** -**echo data as JSON string** + **Customer phone** -**`user_agent`** **string** + **`buyer_addr`** **string** -**UserAgent of the device where payment is initiated** + **Customer address** -**`status`** **\***** ****string** + **`buyer_postcode`** **string** -**Payment status code** + **Customer zip code** -- ready -- paid -- cancelled -- failed + **`custom_data`** **string** -**`started_at`** **\*** **string** + **echo data as JSON string** -**Payment started at (UNIX timestamp)** + **`user_agent`** **string** -**`paid_at`** **\***** ****string** + **UserAgent of the device where payment is initiated** -**Payment completed at (UNIX timestamp)**\ + **`status`** **\*** **string** -**`failed_at`** **\***** ****string** + **Payment status code** -**Payment failed at (UNIX timestamp)** + - ready + - paid + - cancelled + - failed -**`cancelled_at`** **\***** ****string** + **`started_at`** **\*** **string** -**Payment cancelled at (UNIX timestamp)** + **Payment started at (UNIX timestamp)** -**`fail_reason`** **string** + **`paid_at`** **\*** **string** -**Reason for failure** + **Payment completed at (UNIX timestamp)**\\ -**`cancel_reason`** **string** + **`failed_at`** **\*** **string** -**Reason for cancellation** + **Payment failed at (UNIX timestamp)** -**`receipt_url`** **string** + **`cancelled_at`** **\*** **string** -**Credit card receipt URL** + **Payment cancelled at (UNIX timestamp)** -**`cash_receipt_issued` ****boolean** + **`fail_reason`** **string** -**Option to automatically issue cash receipt** + **Reason for failure** -**`customer_uid`** **string** + **`cancel_reason`** **string** -**customer\_uid related to the payment transaction** + **Reason for cancellation** -**`customer_uid_usage`** **string** + **`receipt_url`** **string** -**customer\_uid use code** + **Credit card receipt URL** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **`cash_receipt_issued`** **boolean** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **Option to automatically issue cash receipt** -**`Cancellation/partial cancellation history`** + **`customer_uid`** **string** - - + **customer\_uid related to the payment transaction** - - -**cancel\_history array \[]** + **`customer_uid_usage`** **string** -**`pg_tid`** **\***** ****string** + **customer\_uid use code** -**PG cancellation transaction ID** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`amount`** **\*** **integer** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**Cancelled amount** + **`Cancellation/partial cancellation history`** + + -**`cancelled_at`** **\*** **string** + + + **cancel\_history array \[]** -**Cancelled at (UNIX timestamp)** + **`pg_tid`** **\*** **string** -**`reason`** **\*** **string(256)** + **PG cancellation transaction ID** -**Reason for cancellation** + **`amount`** **\*** **integer** -**`receipt_url`** **\***** ****string(300)** + **Cancelled amount** -**Cancellation receipt URL. Availability varies by PG.** + **`cancelled_at`** **\*** **string** - - + **Cancelled at (UNIX timestamp)** - + **`reason`** **\*** **string(256)** - -```javascript -{ - // Response -} -``` + **Reason for cancellation** - + **`receipt_url`** **\*** **string(300)** - -```javascript -{ - // Response -} -``` + **Cancellation receipt URL. Availability varies by PG.** + + + - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -346,87 +334,93 @@ A non-zero code includes a message like 'Invalid payment info'. > > A minus (-) indicates a descending sort order. > -> - \-started : Sort in descending order (DESC) based on payment start time (payment window open time) +> - -started : Sort in descending order (DESC) +> based on payment start time (payment window open time) +> > - started : Sort in ascending order (ASC) based on payment start time (payment window open time) -> - \-paid : Sort in descending order (DESC) based on payment completion time +> +> - -paid : Sort in descending order (DESC) based on payment completion time +> > - paid: Sort in ascending order (ASC) based on payment completion time -> - \-updated : Sort in descending order (DESC) based on the last modification time (the modification time is changed whenever payment status changes) -> - updated : Sort in ascending order (ASC) based on the last modification time (the modification time is changed whenever payment status changes +> +> - -updated : Sort in descending order (DESC) based on the last modification time +> (the modification time is changed whenever payment status changes) +> +> - updated : Sort in ascending order (ASC) based on the last modification time +> (the modification time is changed whenever payment status changes)
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/getPaymentByMerchantUid**](https://api.iamport.kr/#!/payments/getPaymentByMerchantUid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/getPaymentByMerchantUid**](https://api.iamport.kr/#!/payments/getPaymentByMerchantUid) diff --git a/src/content/docs/en/api/payment-api/get-payments-by-status-api.mdx b/src/content/docs/en/api/payment-api/get-payments-by-status-api.mdx index d286b02db..b505e0455 100644 --- a/src/content/docs/en/api/payment-api/get-payments-by-status-api.mdx +++ b/src/content/docs/en/api/payment-api/get-payments-by-status-api.mdx @@ -4,381 +4,370 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets details of payments by payment status. +## Gets details of payments by payment status. - -The search period is up to **90** days. The default value of the `to` parameter is the current date, and that of the `from` parameter is 90 days before the `to` parameter. - -If `from`/`to` parameters are not specified, this returns the data for the last 90 days from the current time. - - - -### Parameters + + The search period is up to **90** days. The default value of the `to` parameter is the current date, and that of the `from` parameter is 90 days before the `to` parameter. -#### Path + If `from`/`to` parameters are not specified, this returns the data for the last 90 days from the current time. + - -**Payment status code** + ### Parameters -**all**\ -**ready**\ -**paid**\ -**cancelled**\ -**failed** + #### Path - + + **Payment status code** -#### Query + **all**\ + **ready**\ + **paid**\ + **cancelled**\ + **failed** + - -**Page number** + #### Query -Starts from 1 + + **Page number** - - -**Search results per page** + Starts from 1 + -Up to 1000, default: 20 + + **Search results per page** - - -**Search start time** + Up to 1000, default: 20 + -Default: 90 days before `to` parameter (UNIX timestamp) + + **Search start time** - - -**Search end time** + Default: 90 days before `to` parameter (UNIX timestamp) + -Default: current time (UNIX timestamp) + + **Search end time** - - -**Sort by** + Default: current time (UNIX timestamp) + -Default: started (Refer to description below) + + **Sort by** - + Default: started (Refer to description below) + -### Responses + ### Responses - - - -**`code`** **\*** **integer** + + + + **`code`** **\*** **integer** -**Response code** + **Response code** -0: success, Not 0: check the message + 0: success, Not 0: check the message -**`message`** **\*** **string** + **`message`** **\*** **string** -**Response message** + **Response message** -A non-zero code includes a message like 'Invalid payment info'. + A non-zero code includes a message like 'Invalid payment info'. -**`response`** **(PagedPaymentAnnotation, optional)** + **`response`** **(PagedPaymentAnnotation, optional)** + + - - + + + **`total`` `** **`*`** **`integer`** - - -**`total`` `** **`*`** **`integer`** + **`Total search results`** -**`Total search results`** + **`previous`** **`*`** **`integer`** -**`previous`** **`*`** **`integer`** + **`Previous page number`** -**`Previous page number`** + If none, 0 -If none, 0 + **`next`** **`*`** **`integer`** -**`next`** **`*`** **`integer`** + **`Next page number`** -**`Next page number`** + If none, 0 -If none, 0 + list **(Array\[PaymentAnnotation], optional)** -**list ** **(Array\[PaymentAnnotation], optional)** + Array of payment records (up to 20) + + -Array of payment records (up to 20) + + + **`imp_uid`** \* **string** - - + **i'mport payment transaction UID** - - -**`imp_uid`** \* **string** + **`merchant_uid`** **\*** **string** -**i'mport payment transaction UID** + **Order ID** -**`merchant_uid`** **\*** **string** + **`pay_method`** **\*** **string** -**Order ID** + **Payment method code** -**`pay_method`** **\*** **string** + **`channel`** **\*** **string** -**Payment method code** + **Payment environment code** -**`channel`** **\*** **string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**Payment environment code** + **`pg_provider`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **PG code** -**`pg_provider`** **\*** **string** + --- -**PG code** + **`emb_pg_provider`** **\*** **string** ---- + **Hub-type PG code** -**`emb_pg_provider`** **\*** **string** + **`pg_tid`** **\*** **string** -**Hub-type PG code** + **PG transaction ID** -**`pg_tid`** **\*** **string** + **`pg_id`** **\*** **string** -**PG transaction ID** + **PG MID** -**`pg_id`** **\*** **string** + **`escrow`** **boolean** -**PG MID** + **Indicates an escrow payment** -**`escrow`** **boolean** + **`apply_num`** **string** -**Indicates an escrow payment** + **Credit card approval number** -**`apply_num`** **string** + **`bank_code`** **string** -**Credit card approval number** + **Bank code** -**`bank_code`** **string** + **`bank_name`** **string** -**Bank code** + **Bank name** -**`bank_name`** **string** + --- -**Bank name** + **`card_code`** **string** ---- + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**`card_code`** **string** + **`card_name`** **string** -**Credit card code (KFTC Credit Card Codes:** [ **link** ](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **Credit card name** -**`card_name`** **string** + **`card_quota`** **integer** -**Credit card name** + **Number of installments (0 means one-off)** -**`card_quota`** **integer** + **`card_number`** **string** -**Number of installments (0 means one-off)** + **Masked credit card number** -**`card_number`** **string** + --- -**Masked credit card number** + **`card_type`** **string** ---- + **Credit card type code** -**`card_type`** **string** + - 0: credit + - 1: check -**Credit card type code** + **`vbank_code`** **string** -- 0: credit -- 1: check + **Virtual account bank code (refer to image below)** -**`vbank_code`** **string** + --- -**Virtual account bank code (refer to image below)** + **`vbank_name`** **string** ---- + **Refund virtual account** -**`vbank_name`** **string** + **`vbank_holder`** **string** -**Refund virtual account** + **Refund virtual account holder** -**`vbank_holder`** **string** + **`vbank_date`** **string** -**Refund virtual account holder** + **Refund virtual account expiration (UNIX timestamp)** -**`vbank_date`** **string** + **`vbank_issued_at`** **string** -**Refund virtual account expiration (UNIX timestamp)** + **Refund virtual account created at (UNIX timestamp)** -**`vbank_issued_at`** **string** + **`name`** **string** -**Refund virtual account created at (UNIX timestamp)** + **Product name** -**`name`** **string** + **`amount`** **\*** **integer** -**Product name** + **Order (payment) amount** -**`amount`** **\*** **integer** + **`cancel_amount`** **integer** -**Order (payment) amount** + **Cancelled amount** -**`cancel_amount`** **integer** + **`currency`** **string** -**Cancelled amount** + **Currency** -**`currency`** **string** + - USD + - KRW + - EUR -**Currency** - -- USD -- KRW -- EUR - ---- + --- -**`buyer_name`** **string** + **`buyer_name`** **string** -**Customer name** + **Customer name** -**`buyer_email`** **string** + **`buyer_email`** **string** -**Customer email**\ + **Customer email** -**`buyer_tel`** **string** + **`buyer_tel`** **string** -**Customer phone** + **Customer phone** -**`buyer_addr`** **string** + **`buyer_addr`** **string** -**Customer address** + **Customer address** -**`buyer_postcode`** **string** + **`buyer_postcode`** **string** -**Customer zip code** + **Customer zip code** -**`custom_data`** **string** + **`custom_data`** **string** -**echo data as JSON string** + **echo data as JSON string** -**`user_agent`** **string** + **`user_agent`** **string** -**UserAgent of the device where payment is initiated** + **UserAgent of the device where payment is initiated** -**`status`** **\*** **string** + **`status`** **\*** **string** -**Payment status code** + **Payment status code** -- ready -- paid -- cancelled -- failed + - ready + - paid + - cancelled + - failed -**`started_at`** **\*** **string** + **`started_at`** **\*** **string** -**Payment started at (UNIX timestamp)** + **Payment started at (UNIX timestamp)** -**`paid_at`** **\*** **string** + **`paid_at`** **\*** **string** -**Payment completed at (UNIX timestamp)**\ + **Payment completed at (UNIX timestamp)** -**`failed_at`** **\*** **string** + **`failed_at`** **\*** **string** -**Payment failed at (UNIX timestamp)** + **Payment failed at (UNIX timestamp)** -**`cancelled_at`** **\*** **string** + **`cancelled_at`** **\*** **string** -**Payment cancelled at (UNIX timestamp)** + **Payment cancelled at (UNIX timestamp)** -**`fail_reason`** **string** + **`fail_reason`** **string** -**Reason for failure** + **Reason for failure** -**`cancel_reason`** **string** + **`cancel_reason`** **string** -**Reason for cancellation** + **Reason for cancellation** -**`receipt_url`** **string** + **`receipt_url`** **string** -**Credit card receipt URL** + **Credit card receipt URL** -**`cash_receipt_issued` ** **boolean** + **`cash_receipt_issued`** **boolean** -**Option to automatically issue cash receipt** + **Option to automatically issue cash receipt** -**`customer_uid`** **string** + **`customer_uid`** **string** -**customer\_uid related to the payment transaction** + **customer\_uid related to the payment transaction** -**`customer_uid_usage`** **string** + **`customer_uid_usage`** **string** -**customer\_uid use code** + **customer\_uid use code** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`Cancellation/partial cancellation history`** + **`Cancellation/partial cancellation history`** + + - - + + + **cancel\_history array \[]** - - -**cancel\_history array \[]** + **`pg_tid`** **\*** **string** -**`pg_tid`** **\*** **string** + **PG cancellation transaction ID** -**PG cancellation transaction ID** + **`amount`** **\*** **integer** -**`amount`** **\*** **integer** + **Cancelled amount** -**Cancelled amount** + **`cancelled_at`** **\*** **string** -**`cancelled_at`** **\*** **string** + **Cancelled at (UNIX timestamp)** -**Cancelled at (UNIX timestamp)** + **`reason`** **\*** **string(256)** -**`reason`** **\*** **string(256)** + **Reason for cancellation** -**Reason for cancellation** + **`receipt_url`** **\*** **string(300)** -**`receipt_url`** **\*** **string(300)** + **Cancellation receipt URL. Availability varies by PG.** + + + -**Cancellation receipt URL. Availability varies by PG.** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** @@ -389,94 +378,100 @@ Array of payment records (up to 20) > > A minus (-) indicates a descending sort order. > -> - \-started : Sort in descending order (DESC) based on payment start time (payment window open time) +> - -started : Sort in descending order (DESC) +> based on payment start time (payment window open time) +> > - started : Sort in ascending order (ASC) based on payment start time (payment window open time) -> - \-paid : Sort in descending order (DESC) based on payment completion time +> +> - -paid : Sort in descending order (DESC) based on payment completion time +> > - paid: Sort in ascending order (ASC) based on payment completion time -> - \-updated : Sort in descending order (DESC) based on the last modification time (the modification time is changed whenever payment status changes) -> - updated : Sort in ascending order (ASC) based on the last modification time (the modification time is changed whenever payment status changes) +> +> - -updated : Sort in descending order (DESC) based on the last modification time +> (the modification time is changed whenever payment status changes) +> +> - updated : Sort in ascending order (ASC) based on the last modification time +> (the modification time is changed whenever payment status changes)
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "total": 0, - "previous": 0, - "next": 0, - "list": [ - { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" - } - ] +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "total": 0, + "previous": 0, + "next": 0, + "list": [ + { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } + ] + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments/getPaymentsByStatus**](https://api.iamport.kr/#!/payments/getPaymentsByStatus) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments/getPaymentsByStatus**](https://api.iamport.kr/#!/payments/getPaymentsByStatus) diff --git a/src/content/docs/en/api/payment-api/save-payment-amount-api.mdx b/src/content/docs/en/api/payment-api/save-payment-amount-api.mdx index 5713d351b..2e8a6b80a 100644 --- a/src/content/docs/en/api/payment-api/save-payment-amount-api.mdx +++ b/src/content/docs/en/api/payment-api/save-payment-amount-api.mdx @@ -4,116 +4,101 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Saves the payment amount before calling the payment window to block the payment process in case of forgery or falsification of the payment amount when making an authenticated payment. +## Saves the payment amount before calling the payment window to block the payment process in case of forgery or falsification of the payment amount when making an authenticated payment. - -If the payment amount of the order saved on the merchant-side is different from the amount passed to IMP.requestpay() for the same merchant - ---- - -uid, the PG payment window call is blocked. - - - -### Parameters - -#### Body + + If the payment amount of the order saved on the merchant-side is different from the amount passed to IMP.requestpay() for the same merchant - - + --- -**Merchant order ID** + uid, the PG payment window call is blocked. + - + ### Parameters - - - + #### Body -**Payment amount** + + + **Merchant order ID** + + - + + + **Payment amount** + + - + ### Responses - + + + + **`code`** **\*** **integer** -### Responses + **Response code** - - - -**`code`** **\*** **integer** + 0: success, Not 0: check the message -**Response code** + **`message`** **\*** **string** -0: success, Not 0: check the message + **Response message** -**`message`** **\*** **string** + A non-zero code includes a message like 'Invalid payment info'. -**Response message** + **`response (PaymentPrepareAnnotation, optional)`** + + -A non-zero code includes a message like 'Invalid payment info'. + + + **merchant\_uid** **\*** **string** -**`response (PaymentPrepareAnnotation, optional)`** + **`Merchant order ID`** - - + **`amount`** **`*`** **`number`** - - -**merchant\_uid ** **\*** **string** - -**`Merchant order ID`** - -**`amount`** **`*`** **`number`** - -**`Payment amount`** - - - - - - - -```javascript -{ - // Response -} -``` - - + **`Payment amount`** + + + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "merchant_uid": "string", - "amount": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "merchant_uid": "string", + "amount": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments.validation/preparePayment**](https://api.iamport.kr/#!/payments.validation/preparePayment) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments.validation/preparePayment**](https://api.iamport.kr/#!/payments.validation/preparePayment) diff --git a/src/content/docs/en/api/payment-api/update-payment-amount-api.mdx b/src/content/docs/en/api/payment-api/update-payment-amount-api.mdx index f688fe159..3cc4faa47 100644 --- a/src/content/docs/en/api/payment-api/update-payment-amount-api.mdx +++ b/src/content/docs/en/api/payment-api/update-payment-amount-api.mdx @@ -4,120 +4,105 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Updates the amount saved via [**Save payment amount API**](save-payment-amount-api). +## Updates the amount saved via [**Save payment amount API**](save-payment-amount-api). - - - - -### Parameters - -#### Body - - - - -**Merchant order ID** + - + ### Parameters - - - + #### Body -**Payment amount** + + + **Merchant order ID** + + - + + + **Payment amount** + + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***\*\* ****string\*\* + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + + **`response (PaymentPrepareAnnotation, optional)`** + + + - - **`response (PaymentPrepareAnnotation, optional)`** - + + + **`merchant_uid`` `****`*`****` `****`string`** - - + **`Merchant order ID`** - - -**`merchant_uid`` `****`*`****` `****`string`** + **`amount`****`*`****`number`** -**`Merchant order ID`** + **`Payment amount`** + + + -**`amount`****`*`****`number`** - -**`Payment amount`** - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "merchant_uid": "string", - "amount": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "merchant_uid": "string", + "amount": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payments.validation/editPreparePayment**](https://api.iamport.kr/#!/payments.validation/editPreparePayment) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payments.validation/editPreparePayment**](https://api.iamport.kr/#!/payments.validation/editPreparePayment) diff --git a/src/content/docs/en/api/rest-api-access-token.mdx b/src/content/docs/en/api/rest-api-access-token.mdx index 7c9c5504d..9f8efc7ed 100644 --- a/src/content/docs/en/api/rest-api-access-token.mdx +++ b/src/content/docs/en/api/rest-api-access-token.mdx @@ -4,22 +4,24 @@ description: Learn how to get an access token. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Access token is required to make an i'mport REST API request. +## Access token is required to make an i'mport REST API request. To get access to private resources, such as payment information, you must obtain an access token and include it in the i'mport REST API request. -### Get an access token +### Get an access token -Request access token from server-side - -If you **request for access token from the client-side**, the **`REST API Key`****` ``and`** **`REST API Secret`** are **exposed to public creating a potential security vulnerability**. Therefore, you **must request for access token from the server-side.** + Request access token from server-side + If you **request for access token from the client-side**, + the **`REST API Key`** **and** **`REST API Secret`** + are **exposed to public creating a potential security vulnerability**. + Therefore, you **must request for access token from the server-side.** ### **STEP 01.** Request access code @@ -31,60 +33,58 @@ to get an access token as follows:
- -```python title="server-side" - curl -H "Content-Type: application/json" POST -d '{"imp_key": "REST API key", "imp_secret":"REST API Secret"}' https://api.iamport.kr/users/getToken -``` - - - - -```javascript title="server-side" -// Request access token - axios({ - url: "https://api.iamport.kr/users/getToken", - // POST method - method: "post", - // "Content-Type": "application/json" - headers: { "Content-Type": "application/json" }, - data: { - // REST API key - imp_key: "imp_apikey", - // REST API Secret - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" - } - }); -``` - - - - -```python -import requests -import json - -def getTokenApi(path): - API_HOST = "https://api.iamport.kr" - url = API_HOST + path - - headers = {'Content-Type': 'application/json', 'charset': 'UTF-8', 'Accept': '*/*'} - body = { - "imp_key": "", # REST API Key - "imp_secret": "" # REST API Secret - } - try: - response = requests.post(url, headers=headers, data=json.dumps(body, ensure_ascii=False, indent="\t")) - return response - except Exception as ex: - -res=getTokenApi("/users/getToken") # API call -json_object=json.loads(res.text) # Convert to JSON object -TokenVal = json_object['response']['access_token'] # Parse the token - -print(TokenVal) -``` - - + + ```sh title="server-side" + curl -H "Content-Type: application/json" POST -d '{"imp_key": "REST API key", "imp_secret":"REST API Secret"}' https://api.iamport.kr/users/getToken + ``` + + + + ```ts title="server-side" + // Request access token + axios({ + url: "https://api.iamport.kr/users/getToken", + // POST method + method: "post", + // "Content-Type": "application/json" + headers: { "Content-Type": "application/json" }, + data: { + // REST API key + imp_key: "imp_apikey", + // REST API Secret + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", + }, + }); + ``` + + + + ```python + import requests + import json + + def getTokenApi(path): + API_HOST = "https://api.iamport.kr" + url = API_HOST + path + + headers = {'Content-Type': 'application/json', 'charset': 'UTF-8', 'Accept': '*/*'} + body = { + "imp_key": "", # REST API Key + "imp_secret": "" # REST API Secret + } + try: + response = requests.post(url, headers=headers, data=json.dumps(body, ensure_ascii=False, indent="\t")) + return response + except Exception as ex: + + res=getTokenApi("/users/getToken") # API call + json_object=json.loads(res.text) # Convert to JSON object + TokenVal = json_object['response']['access_token'] # Parse the token + + print(TokenVal) + ``` + ### **STEP 02.** Get access token @@ -93,21 +93,20 @@ Get the access token from the response as follows: ```json title="Response" { - "code": 0, - "message": null, - "response":{ - "access_token": "a9ace025c90c0da2161075da6ddd3492a2fca776", // access token - "now": 1512446940, // i'mport REST API server's timestamp - "expired_at": 1512448740, // token's expiration (UNIX timestamp, KST) - }, + "code": 0, + "message": null, + "response":{ + "access_token": "a9ace025c90c0da2161075da6ddd3492a2fca776", // access token + "now": 1512446940, // i'mport REST API server's timestamp + "expired_at": 1512448740 // token's expiration (UNIX timestamp, KST) } +} ``` -**Standard NTP Server** - -The i'mport REST API server synchronizes with the standard time using **Google Public NTP**. + **Standard NTP Server** + The i'mport REST API server synchronizes with the standard time using **Google Public NTP**. ### **STEP 03.** Using access token @@ -119,36 +118,35 @@ format: > Authorization: **Bearer** a9ace025c90c0da2161075da6ddd3492a2fca776 - -Call the REST API to get the payment details by **including the access token in the request header** as follows: - -``` title="server-side" -curl -H "Content-Type: application/json" -H "Authorization: Bearer a9ace025c90c0da2161075da6ddd3492a2fca776" https://api.iamport.kr/payments/imp_448280090638 -``` - - - - -```json title="server-side" -axios({ - url: "https://api.iamport.kr/payments/imp_448280090638", - method: "get", // GET method - headers: { - // "Content-Type": "application/json" - "Content-Type": "application/json", - // Reissuing and Reusing Access Token -ssued access token - "Authorization": "Bearer a9ace025c90c0da2161075da6ddd3492a2fca776" - } - }); -``` - - + + Call the REST API to get the payment details by **including the access token in the request header** as follows: + + ```sh title="server-side" + curl -H "Content-Type: application/json" -H "Authorization: Bearer a9ace025c90c0da2161075da6ddd3492a2fca776" https://api.iamport.kr/payments/imp_448280090638 + ``` + + + + ```ts title="server-side" + axios({ + url: "https://api.iamport.kr/payments/imp_448280090638", + method: "get", // GET method + headers: { + // "Content-Type": "application/json" + "Content-Type": "application/json", + // Use issued access token + Authorization: "Bearer a9ace025c90c0da2161075da6ddd3492a2fca776", + }, + }); + ``` + -### Reissuing and Reusing Access Token +### Reissuing and Reusing Access Token -The expiration of the access token is **30 minutes** from the time of issuance. A token **cannot be used after its expiration**. An API call request with an expired token returns a **`401 Unauthorized`** response. +The expiration of the access token is **30 minutes** from the time of issuance. +A token **cannot be used after its expiration**. +An API call request with an expired token returns a **`401 Unauthorized`** response. > - Reissuance (after expiration): A new access token is issued. > (Expiration: 30 minutes after issuance) @@ -156,14 +154,13 @@ The expiration of the access token is **30 minutes** from the time of issuance. > - Reuse (before expiration): Existing access token is reused. (Expiration: same as before, > but extended by 5 minutes if requested within 1 minute from the original expiration) -![]() +![](/gitbook-assets/en/access_token_reuse.png) -**5 minute extension of expiration** - -The reuse and 5 minute lifetime extension of access token are provided for the following situations: + **5 minute extension of expiration** -- Multiple web servers of a single merchant are competing to call the REST API (`/users/getToken`) at the same time. -- Multiple web servers of a single merchant are not synchronized in time. + The reuse and 5 minute lifetime extension of access token are provided for the following situations: + - Multiple web servers of a single merchant are competing to call the REST API (`/users/getToken`) at the same time. + - Multiple web servers of a single merchant are not synchronized in time. diff --git a/src/content/docs/en/api/simple-payment-service-api/kakao-pay/get-order-api.mdx b/src/content/docs/en/api/simple-payment-service-api/kakao-pay/get-order-api.mdx index 966526582..1d72c206b 100644 --- a/src/content/docs/en/api/simple-payment-service-api/kakao-pay/get-order-api.mdx +++ b/src/content/docs/en/api/simple-payment-service-api/kakao-pay/get-order-api.mdx @@ -3,66 +3,58 @@ title: Get order API description: '' --- -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; +import Hint from "~/components/Hint.astro"; -### Gets order details (API that wraps [Kakao Pay's Get order details API](https://developers.kakao.com/docs/restapi/kakaopay-api#%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD%EC%A1%B0%ED%9A%8C)). +## Gets order details (API that wraps [Kakao Pay's Get order details API](https://developers.kakao.com/docs/restapi/kakaopay-api#%EC%A3%BC%EB%AC%B8%EB%82%B4%EC%97%AD%EC%A1%B0%ED%9A%8C)). - -Request is similar and response is identical with Kakao Pay API. - - - -### Parameters - -#### Query + + Request is similar and response is identical with Kakao Pay API. + - -**Request date** + ### Parameters -YYYYMMDD + #### Query - - -**Kakao Pay MID** + + **Request date** -Default: Kakao Pay CID set in i'mport + YYYYMMDD + - - -**Page number** + + **Kakao Pay MID** - + Default: Kakao Pay CID set in i'mport + - + + **Page number** + -### Responses - - -```javascript -{ - // Response -} -``` - - + ### Responses + + ```ts + { + // Response + } + ``` + -**Swagger Test Link** - -[**https://api.iamport.kr/#!/kakao/getOrders**](https://api.iamport.kr/#!/kakao/getOrders) + **Swagger Test Link** + [**https://api.iamport.kr/#!/kakao/getOrders**](https://api.iamport.kr/#!/kakao/getOrders) -### **Precaution** - -The support for this API will be terminated in**`2H of 2022`** due to Kakao Pay's policy change. + ### **Precaution** + The support for this API will be terminated in **`2H of 2022`** due to Kakao Pay's policy change. diff --git a/src/content/docs/en/api/simple-payment-service-api/kcp-quick-pay/delete-user-api.mdx b/src/content/docs/en/api/simple-payment-service-api/kcp-quick-pay/delete-user-api.mdx index e3c903a41..c6ac74312 100644 --- a/src/content/docs/en/api/simple-payment-service-api/kcp-quick-pay/delete-user-api.mdx +++ b/src/content/docs/en/api/simple-payment-service-api/kcp-quick-pay/delete-user-api.mdx @@ -4,142 +4,130 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Deletes a KCP Quick Pay user information. +## Deletes a KCP Quick Pay user information. -### Accept setting is required + ### Accept setting is required -You must specify the Accept setting in the HTTP header as follows: - -**Accept : application/json** + You must specify the Accept setting in the HTTP header as follows: + **Accept : application/json** - - - - -### Parameters - -#### Path + - -**Member ID** + ### Parameters - - -**KCP Quick Pay site code** + #### Path - - -**KCP Quick Pay partner type** + + **Member ID** + - - -**KCP Quick Pay partner subtype** + + **KCP Quick Pay site code** + - + + **KCP Quick Pay partner type** + -### Responses + + **KCP Quick Pay partner subtype** + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***\*\* ****string\*\* + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**` response`` `****`(KcpQuickMemberAnnotation, optional)`** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`` `****`(KcpQuickMemberAnnotation, optional)`** + + - - -**`member_id`****`*`****`string`** + + + **`member_id`****`*`****`string`** -**`Member ID`** + **`Member ID`** -**`pg_provider`****`*`****`string`** + **`pg_provider`****`*`****`string`** -**`PG code`** + **`PG code`** -**`pg_id`****`*`****`string`** + **`pg_id`****`*`****`string`** -**`PG Merchant ID`** + **`PG Merchant ID`** -**`inserted`****`*`****`integer`** + **`inserted`****`*`****`integer`** -**`User created at (UNIX timestamp)`** + **`User created at (UNIX timestamp)`** -**`updated`****`*`****`integer`** + **`updated`****`*`****`integer`** -**`User updated at (UNIX timestamp)`** + **`User updated at (UNIX timestamp)`** + + + - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "member_id": "string", - "pg_provider": "string", - "pg_id": "string", - "inserted": 0, - "updated": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "member_id": "string", + "pg_provider": "string", + "pg_id": "string", + "inserted": 0, + "updated": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/kcpquick/member_delete**](https://api.iamport.kr/#!/kcpquick/member_delete) + **Swagger Test Link** + [**https://api.iamport.kr/#!/kcpquick/member\_delete**](https://api.iamport.kr/#!/kcpquick/member_delete) diff --git a/src/content/docs/en/api/simple-payment-service-api/naver-pay/accrue-points-api.mdx b/src/content/docs/en/api/simple-payment-service-api/naver-pay/accrue-points-api.mdx index b3d6f054d..fb67a11e0 100644 --- a/src/content/docs/en/api/simple-payment-service-api/naver-pay/accrue-points-api.mdx +++ b/src/content/docs/en/api/simple-payment-service-api/naver-pay/accrue-points-api.mdx @@ -4,100 +4,87 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Accrues Naver Pay points. +## Accrues Naver Pay points. - - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** + - + ### Parameters - + #### Path -### Responses + + + **i'mport transaction ID** + + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** - - + A non-zero code includes a message like 'Invalid payment info'. + + + - + + ```ts + { + // Response + } + ``` + - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string" -} -``` - +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string" + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/naver/naverDepositPoint**](https://api.iamport.kr/#!/naver/naverDepositPoint) + **Swagger Test Link** + [**https://api.iamport.kr/#!/naver/naverDepositPoint**](https://api.iamport.kr/#!/naver/naverDepositPoint) diff --git a/src/content/docs/en/api/simple-payment-service-api/naver-pay/confirm-escrow-order-api.mdx b/src/content/docs/en/api/simple-payment-service-api/naver-pay/confirm-escrow-order-api.mdx index dcfc522b2..3f7709d3f 100644 --- a/src/content/docs/en/api/simple-payment-service-api/naver-pay/confirm-escrow-order-api.mdx +++ b/src/content/docs/en/api/simple-payment-service-api/naver-pay/confirm-escrow-order-api.mdx @@ -4,101 +4,89 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Confirms a Naver Pay escrow order. +## Confirms a Naver Pay escrow order. - -Naver Pay - Pay method at checkout - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** - - - - - -### Responses - - - - -**`code`** **\***** ****integer** - -**Response code** - -0: success, Not 0: check the message - -**`message`** **\***** ****string** - -**Response message** - -A non-zero code includes a message like 'Invalid payment info'. - - - - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - + + Naver Pay - Pay method at checkout + + + ### Parameters + + #### Path + + + + **i'mport transaction ID** + + + + ### Responses + + + + + **`code`** **\*** **integer** + + **Response code** + + 0: success, Not 0: check the message + + **`message`** **\*** **string** + + **Response message** + + A non-zero code includes a message like 'Invalid payment info'. + + + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` + + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string" -} -``` - +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string" + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/naver/naverConfirmPayment**](https://api.iamport.kr/#!/naver/naverConfirmPayment) + **Swagger Test Link** + [**https://api.iamport.kr/#!/naver/naverConfirmPayment**](https://api.iamport.kr/#!/naver/naverConfirmPayment) diff --git a/src/content/docs/en/api/simple-payment-service-api/naver-pay/get-cash-receipt-amount-api.mdx b/src/content/docs/en/api/simple-payment-service-api/naver-pay/get-cash-receipt-amount-api.mdx index e62e114e5..d69a47320 100644 --- a/src/content/docs/en/api/simple-payment-service-api/naver-pay/get-cash-receipt-amount-api.mdx +++ b/src/content/docs/en/api/simple-payment-service-api/naver-pay/get-cash-receipt-amount-api.mdx @@ -4,134 +4,120 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets Naver Pay amount subject to issuance of a cash receipt. +## Gets Naver Pay amount subject to issuance of a cash receipt. - - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** + - + ### Parameters - + #### Path -### Responses + + + **i'mport transaction ID** + + - - - -**`code`** **\***** ****integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`response`` `****`(NaverCashAmountAnnotation, optional)`** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`` `****`(NaverCashAmountAnnotation, optional)`** + + - - -**`amount_total`` `****`integer`** + + + **`amount_total`` `****`integer`** -**`Total amount subject to cash receipt issuance`** + **`Total amount subject to cash receipt issuance`** -**`amount_by_npoint`** **`integer`** + **`amount_by_npoint`** **`integer`** -**`Npoint amount out of the amount_total`** + **`Npoint amount out of the amount_total`** -**`amount_by_primary`** **`integer`** + **`amount_by_primary`** **`integer`** -**`Amount charged with the main payment method (credit card, account transfer etc.) out of the amount_total`** + **`Amount charged with the main payment method (credit card, account transfer etc.) out of the amount_total`** -**`amount_supply`** **`integer`** + **`amount_supply`** **`integer`** -**`List price amount out of the amount_total`** + **`List price amount out of the amount_total`** -**`amount_vat`** **`integer`** + **`amount_vat`** **`integer`** -**`VAT out of the amount_total`** + **`VAT out of the amount_total`** + + + - - + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "amount_total": 0, - "amount_by_npoint": 0, - "amount_by_primary": 0, - "amount_supply": 0, - "amount_vat": 0 +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "amount_total": 0, + "amount_by_npoint": 0, + "amount_by_primary": 0, + "amount_supply": 0, + "amount_vat": 0 + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/naver/queryCashAmount**](https://api.iamport.kr/#!/naver/queryCashAmount) + **Swagger Test Link** + [**https://api.iamport.kr/#!/naver/queryCashAmount**](https://api.iamport.kr/#!/naver/queryCashAmount) diff --git a/src/content/docs/en/api/simple-payment-service-api/payco/update-order-status-api.mdx b/src/content/docs/en/api/simple-payment-service-api/payco/update-order-status-api.mdx index bd263f7ca..5013f43b7 100644 --- a/src/content/docs/en/api/simple-payment-service-api/payco/update-order-status-api.mdx +++ b/src/content/docs/en/api/simple-payment-service-api/payco/update-order-status-api.mdx @@ -4,111 +4,98 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Updates the status of a PAYCO order. +## Updates the status of a PAYCO order. - - - - -### Parameters - -#### Path - - - + -**i'mport transaction ID** + ### Parameters - + #### Path - + + + **i'mport transaction ID** + + -#### Body + #### Body - - **Status code** + + **Status code** -`DELIVERY_START` + `DELIVERY_START` -`PURCHASE_DECISION` + `PURCHASE_DECISION` -`CANCELED` + `CANCELED` + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\*** **integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\*** **string** + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`response`** **(PaycoStatusAnnotation, optional)** + + -**`response` ** **(PaycoStatusAnnotation, optional)** + + + **`status`** **`*`** **`string`** - - + **`PAYCO updated order status`** - - -**`status`** **`*`** **`string`** - -**`PAYCO updated order status`** - -\['DELIVERY\_START', 'PURCHASE\_DECISION', 'CANCELED'] - - - - - - - -```javascript -{ - // Response -} -``` - - + \['DELIVERY\_START', 'PURCHASE\_DECISION', 'CANCELED'] + + + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -``` -{ - "code": 0, - "message": "string", - "response": { - "status": "DELIVERY_START" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "status": "DELIVERY_START" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/payco/changeOrderStatus**](https://api.iamport.kr/#!/payco/changeOrderStatus) + **Swagger Test Link** + [**https://api.iamport.kr/#!/payco/changeOrderStatus**](https://api.iamport.kr/#!/payco/changeOrderStatus) diff --git a/src/content/docs/en/api/subscription-payment-api/cancel-scheduled-payment-api.mdx b/src/content/docs/en/api/subscription-payment-api/cancel-scheduled-payment-api.mdx index 767a1e92a..2334c55b4 100644 --- a/src/content/docs/en/api/subscription-payment-api/cancel-scheduled-payment-api.mdx +++ b/src/content/docs/en/api/subscription-payment-api/cancel-scheduled-payment-api.mdx @@ -4,205 +4,193 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Cancels a scheduled payment before execution. +## Cancels a scheduled payment before execution. - - - - -### Parameters - -#### Body - - - - -**Billing key** - - + - - -**Order ID** + ### Parameters -If omitted, cancels all scheduled payments associated with customer\_uid. + #### Body - + + + **Billing key** + + -### Responses + + **Order ID** - - - -**`code`** **\***** ****integer** + If omitted, cancels all scheduled payments associated with customer\_uid. + -**Response code** + ### Responses -0: success, Not 0: check the message + + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`response`** **(Array\[ScheduleResultAnnotation], optional** + **Response message** - - + A non-zero code includes a message like 'Invalid payment info'. - - -**`code`** **\*** **integer** + **`response`** **(Array\[ScheduleResultAnnotation], optional** + + -**Response code** + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`customer_uid`** **\*** **string** + A non-zero code includes a message like 'Invalid payment info'. -**Billing key** + **`customer_uid`** **\*** **string** -**`merchant_uid` \* ****string** + **Billing key** -**Order ID** + **`merchant_uid`\*** **string** -**`imp_uid`** \* **string** + **Order ID** -**i'mport transaction UID** + **`imp_uid`** \* **string** -**`schedule_at`** **\*** **UNIX timestamp** + **i'mport transaction UID** -**Payment scheduled at** + **`schedule_at`** **\*** **UNIX timestamp** -**`executed_at`** **\*** **UNIX timestamp** + **Payment scheduled at** -**Payment started at** + **`executed_at`** **\*** **UNIX timestamp** -**`revoked_at`** **\*** **UNIX timestamp** + **Payment started at** -**Payment cancelled at** + **`revoked_at`** **\*** **UNIX timestamp** -**`amount`** **\*** **integer** + **Payment cancelled at** -**Payment amount** + **`amount`** **\*** **integer** -**`name`** **string** + **Payment amount** -**Product name** + **`name`** **string** -**`buyer_name`** **string** + **Product name** -**Customer name** + **`buyer_name`** **string** -**`buyer_email`** **string** + **Customer name** -**Customer email**\ + **`buyer_email`** **string** -**`buyer_tel`** **string** + **Customer email** -**Customer phone number** + **`buyer_tel`** **string** -**`buyer_addr`** **string** + **Customer phone number** -**Customer address** + **`buyer_addr`** **string** -**`buyer_postcode`** **string** + **Customer address** -**Customer zip code** + **`buyer_postcode`** **string** -**`custom_data`** **string** + **Customer zip code** -**Echo data as JSON string** + **`custom_data`** **string** -**`schedule_status`** **\***** ** **string** + **Echo data as JSON string** -**Status of scheduled payment** + **`schedule_status`** **\*** **string** -- `scheduled` (payment is scheduled for execution) -- `executed` (payment is completed) -- `revoked` (payment is cancelled) + **Status of scheduled payment** -**`payment_status`** **\***** ** **string** + - `scheduled` (payment is scheduled for execution) + - `executed` (payment is completed) + - `revoked` (payment is cancelled) -**Payment approval state** + **`payment_status`** **\*** **string** -- `null`: Scheduled payment has not executed yet (actual null value, not string) -- `paid`: Scheduled payment is approved -- `failed`: Scheduled payment approval failed -- `cancelled`: Scheduled payment is refunded (cancelled) after approval + **Payment approval state** -**`fail_reason`** **string** + - `null`: Scheduled payment has not executed yet (actual null value, not string) + - `paid`: Scheduled payment is approved + - `failed`: Scheduled payment approval failed + - `cancelled`: Scheduled payment is refunded (cancelled) after approval -**Reason for failure** + **`fail_reason`** **string** - - + **Reason for failure** + + + - - - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "customer_uid": "string", - "merchant_uid": "string", - "imp_uid": "string", - "schedule_at": "0", - "executed_at": "0", - "revoked_at": "0", - "amount": 0, - "name": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "schedule_status": "scheduled", - "payment_status": "paid", - "fail_reason": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "merchant_uid": "string", + "imp_uid": "string", + "schedule_at": "0", + "executed_at": "0", + "revoked_at": "0", + "amount": 0, + "name": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "schedule_status": "scheduled", + "payment_status": "paid", + "fail_reason": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/unschedule**](https://api.iamport.kr/#!/subscribe/unschedule) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/unschedule**](https://api.iamport.kr/#!/subscribe/unschedule) diff --git a/src/content/docs/en/api/subscription-payment-api/get-scheduled-payment-api.mdx b/src/content/docs/en/api/subscription-payment-api/get-scheduled-payment-api.mdx index df990fd25..0ab84d295 100644 --- a/src/content/docs/en/api/subscription-payment-api/get-scheduled-payment-api.mdx +++ b/src/content/docs/en/api/subscription-payment-api/get-scheduled-payment-api.mdx @@ -4,210 +4,197 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets scheduled payment data by order ID (merchant\_uid). +## Gets scheduled payment data by order ID (merchant\_uid). - - - - -### Parameters - -#### Path - - -Merchant - - - -**Order ID** - - - - + -### Responses + ### Parameters - - - -**`code`** **\***** ****integer** + #### Path -**Response code** + + Merchant -0: success, Not 0: check the message + + **Order ID** + + -**`message`** **\***** ****string** + ### Responses -**Response message** + + + + **`code`** **\*** **integer** -A non-zero code includes a message like 'Invalid payment info'. + **Response code** -**`response`** **(Array\[ScheduleResultAnnotation], optional** + 0: success, Not 0: check the message - - + **`message`** **\*** **string** - - -**`code`** **\*** **integer** + **Response message** -**Response code** + A non-zero code includes a message like 'Invalid payment info'. -0: success, Not 0: check the message + **`response`** **(Array\[ScheduleResultAnnotation], optional** + + -**`message`** **\***** ****string** + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info'. + 0: success, Not 0: check the message -**`customer_uid`** **\*** **string** + **`message`** **\*** **string** -**Billing key** + **Response message** -**`merchant_uid` \* ****string** + A non-zero code includes a message like 'Invalid payment info'. -**Order ID** + **`customer_uid`** **\*** **string** -**`imp_uid`** \* **string** + **Billing key** -**i'mport transaction UID** + **`merchant_uid`\*** **string** -**`schedule_at`** **\*** **UNIX timestamp** + **Order ID** -**Payment scheduled at** + **`imp_uid`** \* **string** -**`executed_at`** **\*** **UNIX timestamp** + **i'mport transaction UID** -**Payment started at** + **`schedule_at`** **\*** **UNIX timestamp** -**`revoked_at`** **\*** **UNIX timestamp** + **Payment scheduled at** -**Payment cancelled at** + **`executed_at`** **\*** **UNIX timestamp** -**`amount`** **\*** **integer** + **Payment started at** -**Payment amount** + **`revoked_at`** **\*** **UNIX timestamp** -**`name`** **string** + **Payment cancelled at** -**Product name** + **`amount`** **\*** **integer** -**`buyer_name`** **string** + **Payment amount** -**Customer name** + **`name`** **string** -**`buyer_email`** **string** + **Product name** -**Customer email**\ + **`buyer_name`** **string** -**`buyer_tel`** **string** + **Customer name** -**Customer phone number** + **`buyer_email`** **string** -**`buyer_addr`** **string** + **Customer email** -**Customer address** + **`buyer_tel`** **string** -**`buyer_postcode`** **string** + **Customer phone number** -**Customer zip code** + **`buyer_addr`** **string** -**`custom_data`** **string** + **Customer address** -**Echo data as JSON string** + **`buyer_postcode`** **string** -**`schedule_status`** **\***** ** **string** + **Customer zip code** -**Status of scheduled payment** + **`custom_data`** **string** -- `scheduled` (payment is scheduled for execution) -- `executed` (payment is completed) -- `revoked` (payment is cancelled) + **Echo data as JSON string** -**`payment_status`** **\***** ** **string** + **`schedule_status`** **\*** **string** -**Payment approval state** + **Status of scheduled payment** -- `null`: Scheduled payment has not executed yet (actual null value, not string) -- `paid`: Scheduled payment is approved -- `failed`: Scheduled payment approval failed -- `cancelled`: Scheduled payment is refunded (cancelled) after approval + - `scheduled` (payment is scheduled for execution) + - `executed` (payment is completed) + - `revoked` (payment is cancelled) -**`fail_reason`** **string** + **`payment_status`** **\*** **string** -**Reason for failure** + **Payment approval state** - - + - `null`: Scheduled payment has not executed yet (actual null value, not string) + - `paid`: Scheduled payment is approved + - `failed`: Scheduled payment approval failed + - `cancelled`: Scheduled payment is refunded (cancelled) after approval - + **`fail_reason`** **string** - -```javascript -{ - // Response -} -``` + **Reason for failure** + + + - - - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "customer_uid": "string", - "merchant_uid": "string", - "imp_uid": "string", - "schedule_at": "0", - "executed_at": "0", - "revoked_at": "0", - "amount": 0, - "name": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "schedule_status": "scheduled", - "payment_status": "paid", - "fail_reason": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "merchant_uid": "string", + "imp_uid": "string", + "schedule_at": "0", + "executed_at": "0", + "revoked_at": "0", + "amount": 0, + "name": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "schedule_status": "scheduled", + "payment_status": "paid", + "fail_reason": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/getScheduleByMid**](https://api.iamport.kr/#!/subscribe/getScheduleByMid) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/getScheduleByMid**](https://api.iamport.kr/#!/subscribe/getScheduleByMid) diff --git a/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-api.mdx b/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-api.mdx index ba91c8a4d..f64f5b5d2 100644 --- a/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-api.mdx +++ b/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-api.mdx @@ -4,255 +4,241 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets a list of scheduled payments by search period. +## Gets a list of scheduled payments by search period. - -Scheduled payments data is sorted by the latest scheduled time. To sort by the oldest scheduled time, set - -**sorting=scheduled** - -. - - - -### Parameters - -#### Query - - - - -**Start search time** - - - - (UNIX timestamp) + + Scheduled payments data is sorted by the latest scheduled time. To sort by the oldest scheduled time, set - - - + **sorting=scheduled** -**End search time** + . + - + ### Parameters - (UNIX timestamp) + #### Query - - -**Schedule status** + + + **Start search time** + -`scheduled` + (UNIX timestamp) + -`executed` + + + **End search time** + -`revoked` + (UNIX timestamp) + - - -**Result paging** + + **Schedule status** -Starts from 1, default: 1 + `scheduled` - - -**Results per page** + `executed` -Max 1000, default: 20 + `revoked` + - - -**Sort by** + + **Result paging** -Default: latest scheduled time + Starts from 1, default: 1 + -scheduled: oldest scheduled time + + **Results per page** - + Max 1000, default: 20 + -### Responses + + **Sort by** - - - -**`code`** **\***** ****integer** + Default: latest scheduled time -**Response code** + scheduled: oldest scheduled time + -0: success, Not 0: check the message + ### Responses -**`message`** **\***** ****string** + + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info'. + 0: success, Not 0: check the message -**`response`** **(Array\[ScheduleResultAnnotation], optional** + **`message`** **\*** **string** - - + **Response message** - - -**`code`** **\*** **integer** + A non-zero code includes a message like 'Invalid payment info'. -**Response code** + **`response`** **(Array\[ScheduleResultAnnotation], optional** + + -0: success, Not 0: check the message + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`customer_uid`** **\*** **string** + **Response message** -**Billing key** + A non-zero code includes a message like 'Invalid payment info'. -**`merchant_uid` \* ****string** + **`customer_uid`** **\*** **string** -**Order ID** + **Billing key** -**`imp_uid`** \* **string** + **`merchant_uid` \*** **string** -**i'mport transaction UID** + **Order ID** -**`schedule_at`** **\*** **UNIX timestamp** + **`imp_uid`** \* **string** -**Payment scheduled at** + **i'mport transaction UID** -**`executed_at`** **\*** **UNIX timestamp** + **`schedule_at`** **\*** **UNIX timestamp** -**Payment started at** + **Payment scheduled at** -**`revoked_at`** **\*** **UNIX timestamp** + **`executed_at`** **\*** **UNIX timestamp** -**Payment cancelled at** + **Payment started at** -**`amount`** **\*** **integer** + **`revoked_at`** **\*** **UNIX timestamp** -**Payment amount** + **Payment cancelled at** -**`name`** **string** + **`amount`** **\*** **integer** -**Product name** + **Payment amount** -**`buyer_name`** **string** + **`name`** **string** -**Customer name** + **Product name** -**`buyer_email`** **string** + **`buyer_name`** **string** -**Customer email**\ + **Customer name** -**`buyer_tel`** **string** + **`buyer_email`** **string** -**Customer phone number** + **Customer email** -**`buyer_addr`** **string** + **`buyer_tel`** **string** -**Customer address** + **Customer phone number** -**`buyer_postcode`** **string** + **`buyer_addr`** **string** -**Customer zip code** + **Customer address** -**`custom_data`** **string** + **`buyer_postcode`** **string** -**Echo data as JSON string** + **Customer zip code** -**`schedule_status`** **\***** ** **string** + **`custom_data`** **string** -**Status of scheduled payment** + **Echo data as JSON string** -- `scheduled` (payment is scheduled for execution) -- `executed` (payment is completed) -- `revoked` (payment is cancelled) + **`schedule_status`** **\*** **string** -**`payment_status`** **\***** ** **string** + **Status of scheduled payment** -**Payment approval state** + - `scheduled` (payment is scheduled for execution) + - `executed` (payment is completed) + - `revoked` (payment is cancelled) -- `null`: Scheduled payment has not executed yet (actual null value, not string) -- `paid`: Scheduled payment is approved -- `failed`: Scheduled payment approval failed -- `cancelled`: Scheduled payment is refunded (cancelled) after approval + **`payment_status`** **\*** **string** -**`fail_reason`** **string** + **Payment approval state** -**Reason for failure** + - `null`: Scheduled payment has not executed yet (actual null value, not string) + - `paid`: Scheduled payment is approved + - `failed`: Scheduled payment approval failed + - `cancelled`: Scheduled payment is refunded (cancelled) after approval - - + **`fail_reason`** **string** - + **Reason for failure** + + + - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "customer_uid": "string", - "merchant_uid": "string", - "imp_uid": "string", - "schedule_at": "0", - "executed_at": "0", - "revoked_at": "0", - "amount": 0, - "name": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "schedule_status": "scheduled", - "payment_status": "paid", - "fail_reason": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "merchant_uid": "string", + "imp_uid": "string", + "schedule_at": "0", + "executed_at": "0", + "revoked_at": "0", + "amount": 0, + "name": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "schedule_status": "scheduled", + "payment_status": "paid", + "fail_reason": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/findSchedulesByRange**](https://api.iamport.kr/#!/subscribe/findSchedulesByRange) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/findSchedulesByRange**](https://api.iamport.kr/#!/subscribe/findSchedulesByRange) diff --git a/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-by-billing-key-api.mdx b/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-by-billing-key-api.mdx index 45ac29238..5657fd767 100644 --- a/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-by-billing-key-api.mdx +++ b/src/content/docs/en/api/subscription-payment-api/get-scheduled-payments-by-billing-key-api.mdx @@ -4,242 +4,229 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets scheduled payments by billing key (customer\_uid). +## Gets scheduled payments by billing key (customer\_uid). - -Returns scheduled payments using pagination (up to 3 months period). - - - -### Parameters - -#### Path - - - - -**Billing key** - - - - - -#### Query + + Returns scheduled payments using pagination (up to 3 months period). + - -**Search result paging** + ### Parameters -Starts at 1 (default: 1) + #### Path - - -**Search start time** + + + **Billing key** + + -UNIX timestamp + #### Query - - -**Search end time** + + **Search result paging** -UNIX timestamp + Starts at 1 (default: 1) + - - -**Schedule status** + + **Search start time** -If not specified, returns for all status + UNIX timestamp + -`scheduled` + + **Search end time** -`executed` + UNIX timestamp + -`revoked` + + **Schedule status** - + If not specified, returns for all status -### Responses + `scheduled` - - - -**`code`** **\***** ****integer** + `executed` -**Response code** + `revoked` + -0: success, Not 0: check the message + ### Responses -**`message`** **\***** ****string** + + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info'. + 0: success, Not 0: check the message -**`response`** **(Array\[ScheduleResultAnnotation], optional** + **`message`** **\*** **string** - - + **Response message** - - -**`code`** **\*** **integer** + A non-zero code includes a message like 'Invalid payment info'. -**Response code** + **`response`** **(Array\[ScheduleResultAnnotation], optional** + + -0: success, Not 0: check the message + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`customer_uid`** **\*** **string** + **Response message** -**Billing key** + A non-zero code includes a message like 'Invalid payment info'. -**`merchant_uid` \* ****string** + **`customer_uid`** **\*** **string** -**Order ID** + **Billing key** -**`imp_uid`** \* **string** + **`merchant_uid` \*****string** -**i'mport transaction UID** + **Order ID** -**`schedule_at`** **\*** **UNIX timestamp** + **`imp_uid`** \* **string** -**Payment scheduled at** + **i'mport transaction UID** -**`executed_at`** **\*** **UNIX timestamp** + **`schedule_at`** **\*** **UNIX timestamp** -**Payment started at** + **Payment scheduled at** -**`revoked_at`** **\*** **UNIX timestamp** + **`executed_at`** **\*** **UNIX timestamp** -**Payment cancelled at** + **Payment started at** -**`amount`** **\*** **integer** + **`revoked_at`** **\*** **UNIX timestamp** -**Payment amount** + **Payment cancelled at** -**`name`** **string** + **`amount`** **\*** **integer** -**Product name** + **Payment amount** -**`buyer_name`** **string** + **`name`** **string** -**Customer name** + **Product name** -**`buyer_email`** **string** + **`buyer_name`** **string** -**Customer email**\ + **Customer name** -**`buyer_tel`** **string** + **`buyer_email`** **string** -**Customer phone number** + **Customer email** -**`buyer_addr`** **string** + **`buyer_tel`** **string** -**Customer address** + **Customer phone number** -**`buyer_postcode`** **string** + **`buyer_addr`** **string** -**Customer zip code** + **Customer address** -**`custom_data`** **string** + **`buyer_postcode`** **string** -**Echo data as JSON string** + **Customer zip code** -**`schedule_status`** **\***** ** **string** + **`custom_data`** **string** -**Status of scheduled payment** + **Echo data as JSON string** -- `scheduled` (payment is scheduled for execution) -- `executed` (payment is completed) -- `revoked` (payment is cancelled) + **`schedule_status`** **\*** **string** -**`payment_status`** **\***** ** **string** + **Status of scheduled payment** -**Payment approval state** + - `scheduled` (payment is scheduled for execution) + - `executed` (payment is completed) + - `revoked` (payment is cancelled) -- `null`: Scheduled payment has not executed yet (actual null value, not string) -- `paid`: Scheduled payment is approved -- `failed`: Scheduled payment approval failed -- `cancelled`: Scheduled payment is refunded (cancelled) after approval + **`payment_status`** **\*** **string** -**`fail_reason`** **string** + **Payment approval state** -**Reason for failure** + - `null`: Scheduled payment has not executed yet (actual null value, not string) + - `paid`: Scheduled payment is approved + - `failed`: Scheduled payment approval failed + - `cancelled`: Scheduled payment is refunded (cancelled) after approval - - + **`fail_reason`** **string** - + **Reason for failure** + + + - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - - -
-

Response Model Schema

+ + ```ts + { + // Response + } + ``` + -```json -{ - "code": 0, - "message": "string", - "response": [ + + ```ts { - "customer_uid": "string", - "merchant_uid": "string", - "imp_uid": "string", - "schedule_at": "0", - "executed_at": "0", - "revoked_at": "0", - "amount": 0, - "name": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "schedule_status": "scheduled", - "payment_status": "paid", - "fail_reason": "string" + // Response } - ] -} -``` + ``` + + +
+

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "merchant_uid": "string", + "imp_uid": "string", + "schedule_at": "0", + "executed_at": "0", + "revoked_at": "0", + "amount": 0, + "name": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "schedule_status": "scheduled", + "payment_status": "paid", + "fail_reason": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/findSchedulesByCustomer**](https://api.iamport.kr/#!/subscribe/findSchedulesByCustomer) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/findSchedulesByCustomer**](https://api.iamport.kr/#!/subscribe/findSchedulesByCustomer) diff --git a/src/content/docs/en/api/subscription-payment-api/schedule-payment-api.mdx b/src/content/docs/en/api/subscription-payment-api/schedule-payment-api.mdx index b7c56ddec..e7d2189df 100644 --- a/src/content/docs/en/api/subscription-payment-api/schedule-payment-api.mdx +++ b/src/content/docs/en/api/subscription-payment-api/schedule-payment-api.mdx @@ -4,283 +4,278 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Schedules a non-authenticated payment using customer\_uid. +## Schedules a non-authenticated payment using customer\_uid. -#### The result of the payment request can be received (POST request) through the endpoint URL set in notice\_url via webhook. +The result of the payment request can be received (POST request) +through the endpoint URL set in notice\_url via webhook. - -A payment is scheduled with the billing key associated with customer_uid - -_._ - - If you specify a new customer - ---- - -uid instead of using the existing customer_uid, you must also enter the credit card information. In this case, both a new billing key is issued and payment is scheduled. - - - -### Parameters - -#### Body - - - + + A payment is scheduled with the billing key associated with customer\_uid -**Billing key** + _._ - + If you specify a new customer - - -Test amount approved to check validity of the credit card (cancelled immediately) + --- - - -Credit card number ( + uid instead of using the existing customer\_uid, you must also enter the credit card information. In this case, both a new billing key is issued and payment is scheduled. + -**dddd-dddd-dddd-dddd** + ### Parameters -) + #### Body - - -Credit card expiration ( + + + **Billing key** + + -**YYYY-MM** + + Test amount approved to check validity of the credit card (cancelled immediately) + -) + + Credit card number ( - - -6-digit DOB (**YYMMDD**) + **dddd-dddd-dddd-dddd** -(10-digit business registration number for corporate card) + ) + - - -First 2 digits of credit card password + + Credit card expiration ( - - -Credit card CVC + **YYYY-MM** - - -PG code + ) + - - - + + 6-digit DOB (**YYMMDD**) -**Payment schedule** + (10-digit business registration number for corporate card) + - + + First 2 digits of credit card password + - + + Credit card CVC + -### Responses + + PG code + - - - -**`code`** **\***** ****integer** - -**Response code** + + + **Payment schedule** + + -0: success, Not 0: check the message + ### Responses -**`message`** **\***** ****string** + + + + **`code`** **\*** **integer** -**Response message** + **Response code** -A non-zero code includes a message like 'Invalid payment info'. + 0: success, Not 0: check the message -**`response`** **(Array\[ScheduleResultAnnotation], optional)** + **`message`** **\*** **string** - - + **Response message** - - -**`code`** **\*** **integer** + A non-zero code includes a message like 'Invalid payment info'. -**Response code** + **`response`** **(Array\[ScheduleResultAnnotation], optional)** + + -0: success, Not 0: check the message + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`customer_uid`** **\*** **string** + **Response message** -**Billing key** + A non-zero code includes a message like 'Invalid payment info'. -**`merchant_uid` \* ****string** + **`customer_uid`** **\*** **string** -**Order ID** + **Billing key** -**`imp_uid`** \* **string** + **`merchant_uid` \*****string** -**i'mport transaction UID** + **Order ID** -**`schedule_at`** **\*** **UNIX timestamp** + **`imp_uid`** \* **string** -**Payment scheduled at (UNIX timestamp in seconds)** + **i'mport transaction UID** -**`executed_at`** **\*** **UNIX timestamp** + **`schedule_at`** **\*** **UNIX timestamp** -**Payment started at (UNIX timestamp in seconds)** + **Payment scheduled at (UNIX timestamp in seconds)** -**`revoked_at`** **\*** **UNIX timestamp** + **`executed_at`** **\*** **UNIX timestamp** -**Payment cancelled at (UNIX timestamp in seconds)** + **Payment started at (UNIX timestamp in seconds)** -**`amount`** **\*** **integer** + **`revoked_at`** **\*** **UNIX timestamp** -**Payment amount** + **Payment cancelled at (UNIX timestamp in seconds)** -**`name`** **string** + **`amount`** **\*** **integer** -**Product name** + **Payment amount** -**`buyer_name`** **string** + **`name`** **string** -**Customer name** + **Product name** -**`buyer_email`** **string** + **`buyer_name`** **string** -**Customer email**\ + **Customer name** -**`buyer_tel`** **string** + **`buyer_email`** **string** -**Customer phone number** + **Customer email** -**`buyer_addr`** **string** + **`buyer_tel`** **string** -**Customer address** + **Customer phone number** -**`buyer_postcode`** **string** + **`buyer_addr`** **string** -**Customer zip code** + **Customer address** -**`custom_data`** **string** + **`buyer_postcode`** **string** -**Echo data as JSON string** + **Customer zip code** -**`schedule_status`** **\***** ** **string** + **`custom_data`** **string** -**Status of scheduled payment** + **Echo data as JSON string** -- `scheduled` (payment is scheduled for execution) -- `executed` (payment is completed) -- `revoked` (payment is cancelled) + **`schedule_status`** **\*** **string** -**`payment_status`** **\***** ** **string** + **Status of scheduled payment** -**Payment approval state** + - `scheduled` (payment is scheduled for execution) + - `executed` (payment is completed) + - `revoked` (payment is cancelled) -- `null`: Scheduled payment has not executed yet (actual null value, not string) -- `paid`: Scheduled payment is approved -- `failed`: Scheduled payment approval failed -- `cancelled`: Scheduled payment is refunded (cancelled) after approval + **`payment_status`** **\*** **string** -**`fail_reason`** **string** - -**Reason for failure** - - - + **Payment approval state** - + - `null`: Scheduled payment has not executed yet (actual null value, not string) + - `paid`: Scheduled payment is approved + - `failed`: Scheduled payment approval failed + - `cancelled`: Scheduled payment is refunded (cancelled) after approval - -```javascript -{ - // Response -} -``` + **`fail_reason`** **string** - + **Reason for failure** + + + + + ```ts + { + // Response + } + ``` + ### **Key request parameter description** -> **`schedules`** **\***** ****array** +> **`schedules`** **\*** **array** > > **Payment schedule** > -> -> > **\[ Required ]** > > - `merchant_uid` : Merchant order ID (Must be unique for each request) > - `schedule_at` : Scheduled time (UNIX timestamp in seconds) > - `currency` : Currency code (Example: KRW, USD, ... ) > - `amount` : Amount -> + > **\[ Optional ]** > > - `tax_free` : Tax free amount out of `amount` (Default: 0) +> > - `name` : Order name (If omitted, sets to i'mport default setting) +> > - `buyer_name` : Customer name +> > - `buyer_email` : Customer email +> > - `buyer_tel` : Customer phone number +> > - `buyer_addr` : Customer address +> > - `buyer_postcode` : Customer zip code +> > - `custom_data` : Custom data +> > - `notice_url` : Notification URL to receive payment result > -> (If omitted, sets to Notification URL setting in Admin console) +> (If omitted, sets to Notification URL setting in Admin console) > > - `extra.naverUseCfm` : Expiration date (string in yyyyMMdd format). > - Specify if contract between Naver Pay and merchant requires this value for recurring payment. - -```json title="Sample" -[ - { - "merchant_uid": "your_merchant_uid1", - "schedule_at": 1478150985, - "currency": "KRW", - "amount": 1004, - "name": "order name", - "buyer_name": "customer name", - "buyer_email": "customer email", - "buyer_tel": "customer phone number", - "buyer_addr": "customer address", - "buyer_postcode": "customer zip code" - }, - { - "merchant_uid": "your_merchant_uid2", - "schedule_at": 1478150985, - "amount": 1004, - "name": "order name", - "buyer_name": "customer name", - "buyer_email": "customer email", - "buyer_tel": "customer phone number", - "buyer_addr": "customer address", - "buyer_postcode": "customer zip code" - } -] -``` - - + + ```json title="Sample" + [ + { + "merchant_uid": "your_merchant_uid1", + "schedule_at": 1478150985, + "currency": "KRW", + "amount": 1004, + "name": "order name", + "buyer_name": "customer name", + "buyer_email": "customer email", + "buyer_tel": "customer phone number", + "buyer_addr": "customer address", + "buyer_postcode": "customer zip code" + }, + { + "merchant_uid": "your_merchant_uid2", + "schedule_at": 1478150985, + "amount": 1004, + "name": "order name", + "buyer_name": "customer name", + "buyer_email": "customer email", + "buyer_tel": "customer phone number", + "buyer_addr": "customer address", + "buyer_postcode": "customer zip code" + } + ] + ``` + > **`pg`** **\*** **string** @@ -301,67 +296,63 @@ A non-zero code includes a message like 'Invalid payment info'. > - If you have multiple MIDs from NICE Payments, specify as **nice.MID1** or **nice.MID2**. -`schedules` details - -**If buyer\_name, buyer\_email, buyer\_tel, buyer\_addr, or buyer\_postcode** is omitted, it is set to the corresponding value of **customer\_uid** (**customer\_name, customer\_email, customer\_tel, customer\_addr, customer\_postcode)**. + `schedules` details + **If buyer\_name, buyer\_email, buyer\_tel, buyer\_addr, or buyer\_postcode** is omitted, it is set to the corresponding value of **customer\_uid** (**customer\_name, customer\_email, customer\_tel, customer\_addr, customer\_postcode)**.
-

Request Sample Json

- -```json -{ - "customer_uid": "TEST0001", - "schedules": [ - { - "merchant_uid": "order_id001", - "schedule_at": 1658480415, - "amount": 1004, - "name": "carrot", - } - ] -} -``` - +

Request Sample Json

+ + ```json + { + "customer_uid": "TEST0001", + "schedules": [ + { + "merchant_uid": "order_id001", + "schedule_at": 1658480415, + "amount": 1004, + "name": "carrot", + } + ] + } + ```
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": [ - { - "customer_uid": "string", - "merchant_uid": "string", - "imp_uid": "string", - "schedule_at": 0, - "executed_at": 0, - "revoked_at": 0, - "amount": 0, - "name": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "schedule_status": "scheduled", - "payment_status": "paid", - "fail_reason": "string" - } - ] -} -``` - +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": [ + { + "customer_uid": "string", + "merchant_uid": "string", + "imp_uid": "string", + "schedule_at": 0, + "executed_at": 0, + "revoked_at": 0, + "amount": 0, + "name": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "schedule_status": "scheduled", + "payment_status": "paid", + "fail_reason": "string" + } + ] + } + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/subscribe/schedule**](https://api.iamport.kr/#!/subscribe/schedule) + **Swagger Test Link** + [**https://api.iamport.kr/#!/subscribe/schedule**](https://api.iamport.kr/#!/subscribe/schedule) diff --git a/src/content/docs/en/api/virtual-account-api/cancel-virtual-account-api.mdx b/src/content/docs/en/api/virtual-account-api/cancel-virtual-account-api.mdx index e9bb84a86..0af20b741 100644 --- a/src/content/docs/en/api/virtual-account-api/cancel-virtual-account-api.mdx +++ b/src/content/docs/en/api/virtual-account-api/cancel-virtual-account-api.mdx @@ -4,366 +4,352 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Cancels a virtual account before payment is deposited. +## Cancels a virtual account before payment is deposited.
-

Supported PGs

- -- **KG INCIS** -- **NHN KCP** -- **TOSS Payments** -- **Nice Payments** -- **KICC** -- **Settle Bank** -- **Smartro** - +

Supported PGs

+ + - **KG INCIS** + - **NHN KCP** + - **TOSS Payments** + - **Nice Payments** + - **KICC** + - **Settle Bank** + - **Smartro**
- -You can cancel a virtual account before deposit to prevent the buyer from depositing by mistake. - -**imp_uid** - - must be specified. (Since there can be multiple virtual accounts pending payment deposit for a single merchant_uid, you can only cancel a virtual account based on the imp_uid) - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** + + You can cancel a virtual account before deposit to prevent the buyer from depositing by mistake. - + **imp\_uid** - + must be specified. (Since there can be multiple virtual accounts pending payment deposit for a single merchant\_uid, you can only cancel a virtual account based on the imp\_uid) + -#### Query + ### Parameters - -**API Key** + #### Path -**(Required for KG INICIS Only)** + + + **i'mport transaction ID** + + - + #### Query -### Responses + + **API Key** - - - -**`code`** **\***** ****integer** + **(Required for KG INICIS Only)** + -**Response code** + ### Responses -0: success, Not 0: check the message + + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`response`** **(PaymentAnnotation, optional)** + **Response message** - - + A non-zero code includes a message like 'Invalid payment info'. - - -**`code`** **\***** ****integer** + **`response`** **(PaymentAnnotation, optional)** + + -**`Response code`** + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **`Response code`** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info. + **Response message** -**`imp_uid`** \* **string** + A non-zero code includes a message like 'Invalid payment info. -**i'mport payment transaction UID** + **`imp_uid`** \* **string** -**`merchant_uid`** **\***** ****string** + **i'mport payment transaction UID** -**Order ID** + **`merchant_uid`** **\*** **string** -**`pay_method`** **\***** ****string** + **Order ID** -**Payment method code** + **`pay_method`** **\*** **string** -**`channel`** **\***** ****string** + **Payment method code** -**Payment environment code** + **`channel`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **Payment environment code** -**`pg_provider`** **\***** ****string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**PG code** + **`pg_provider`** **\*** **string** ---- + **PG code** -**`emb_pg_provider`** **\***** ****string** + --- -**Hub-type PG code** + **`emb_pg_provider`** **\*** **string** -**`pg_tid`** **\*** **string** + **Hub-type PG code** -**PG transaction ID** + **`pg_tid`** **\*** **string** -**`pg_id`** **\***** ****string** + **PG transaction ID** -**PG MID** + **`pg_id`** **\*** **string** -**`escrow`** **boolean** + **PG MID** -**Indicates an escrow payment** + **`escrow`** **boolean** -**`apply_num`** **string** + **Indicates an escrow payment** -**Credit card approval number** + **`apply_num`** **string** -**`bank_code`** **string** + **Credit card approval number** -**Bank code** + **`bank_code`** **string** -**`bank_name`** **string** + **Bank code** -**Bank name** + **`bank_name`** **string** ---- + **Bank name** -**`card_code`** **string** + --- -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`card_code`** **string** -**`card_name`** **string** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**Credit card name** + **`card_name`** **string** -**`card_quota`** **integer** + **Credit card name** -**Number of installments (0 means one-off)** + **`card_quota`** **integer** -**`card_number`** **string** + **Number of installments (0 means one-off)** -**Masked credit card number** + **`card_number`** **string** ---- + **Masked credit card number** -**`card_type`** **string** + --- -**Credit card type code** + **`card_type`** **string** -- 0: credit -- 1: check + **Credit card type code** -**`vbank_code`** **string** + - 0: credit + - 1: check -**Virtual account bank code (refer to image below)** + **`vbank_code`** **string** ---- + **Virtual account bank code (refer to image below)** -**`vbank_name`** **string** + --- -**Refund virtual account** + **`vbank_name`** **string** -**`vbank_holder`** **string** + **Refund virtual account** -**Refund virtual account holder** + **`vbank_holder`** **string** -**`vbank_date`** **string** + **Refund virtual account holder** -**Refund virtual account expiration (UNIX timestamp)** + **`vbank_date`** **string** -**`vbank_issued_at`** **string** + **Refund virtual account expiration (UNIX timestamp)** -**Refund virtual account created at (UNIX timestamp)** + **`vbank_issued_at`** **string** -**`name`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Product name** + **`name`** **string** -**`amount`** **\*** **integer** + **Product name** -**Order (payment) amount** + **`amount`** **\*** **integer** -**`cancel_amount`** **integer** + **Order (payment) amount** -**Cancelled amount** + **`cancel_amount`** **integer** -**`currency`** **string** + **Cancelled amount** -**Currency** - -- USD -- KRW -- EUR - ---- + **`currency`** **string** -**`buyer_name`** **string** + **Currency** -**Customer name** + - USD + - KRW + - EUR -**`buyer_email`** **string** + --- -**Customer email**\ + **`buyer_name`** **string** -**`buyer_tel`** **string** + **Customer name** -**Customer phone** + **`buyer_email`** **string** -**`buyer_addr`** **string** + **Customer email** -**Customer address** + **`buyer_tel`** **string** -**`buyer_postcode`** **string** + **Customer phone** -**Customer zip code** + **`buyer_addr`** **string** -**`custom_data`** **string** + **Customer address** -**echo data as JSON string** + **`buyer_postcode`** **string** -**`user_agent`** **string** + **Customer zip code** -**UserAgent of the device where payment is initiated** + **`custom_data`** **string** -**`status`** **\***** ****string** + **echo data as JSON string** -**Payment status code** + **`user_agent`** **string** -- ready -- paid -- cancelled -- failed + **UserAgent of the device where payment is initiated** -**`started_at`** **\*** **string** + **`status`** **\*** **string** -**Payment started at (UNIX timestamp)** + **Payment status code** -**`paid_at`** **\***** ****string** + - ready + - paid + - cancelled + - failed -**Payment completed at (UNIX timestamp)**\ + **`started_at`** **\*** **string** -**`failed_at`** **\***** ****string** + **Payment started at (UNIX timestamp)** -**Payment failed at (UNIX timestamp)** + **`paid_at`** **\*** **string** -**`cancelled_at`** **\***** ****string** + **Payment completed at (UNIX timestamp)** -**Payment cancelled at (UNIX timestamp)** + **`failed_at`** **\*** **string** -**`fail_reason`** **string** + **Payment failed at (UNIX timestamp)** -**Reason for failure** + **`cancelled_at`** **\*** **string** -**`cancel_reason`** **string** + **Payment cancelled at (UNIX timestamp)** -**Reason for cancellation** + **`fail_reason`** **string** -**`receipt_url`** **string** + **Reason for failure** -**Credit card receipt URL** + **`cancel_reason`** **string** -**`cash_receipt_issued` ****boolean** + **Reason for cancellation** -**Option to automatically issue cash receipt** + **`receipt_url`** **string** -**`customer_uid`** **string** + **Credit card receipt URL** -**customer\_uid related to the payment transaction** + **`cash_receipt_issued`** **boolean** -**`customer_uid_usage`** **string** + **Option to automatically issue cash receipt** -**customer\_uid use code** + **`customer_uid`** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **customer\_uid related to the payment transaction** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`customer_uid_usage`** **string** -**`Cancellation/partial cancellation history`** + **customer\_uid use code** - - + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance - - -**cancel\_history array \[]** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`pg_tid`** **\***** ****string** + **`Cancellation/partial cancellation history`** + + -**PG cancellation transaction ID** + + + **cancel\_history array \[]** -**`amount`** **\*** **integer** + **`pg_tid`** **\*** **string** -**Cancelled amount** + **PG cancellation transaction ID** -**`cancelled_at`** **\*** **string** + **`amount`** **\*** **integer** -**Cancelled at (UNIX timestamp)** + **Cancelled amount** -**`reason`** **\*** **string(256)** + **`cancelled_at`** **\*** **string** -**Reason for cancellation** + **Cancelled at (UNIX timestamp)** -**`receipt_url`** **\***** ****string(300)** + **`reason`** **\*** **string(256)** -**Cancellation receipt URL. Availability varies by PG.** + **Reason for cancellation** - - + **`receipt_url`** **\*** **string(300)** - + **Cancellation receipt URL. Availability varies by PG.** + + + - -```javascript -{ - // Response -} -``` + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` + ### Key request parameter description @@ -378,79 +364,77 @@ A non-zero code includes a message like 'Invalid payment info. > (**Required for KG INICIS only**)
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/vbanks/revokeVbank**](https://api.iamport.kr/#!/vbanks/revokeVbank) + **Swagger Test Link** + [**https://api.iamport.kr/#!/vbanks/revokeVbank**](https://api.iamport.kr/#!/vbanks/revokeVbank) diff --git a/src/content/docs/en/api/virtual-account-api/get-account-holder-api.mdx b/src/content/docs/en/api/virtual-account-api/get-account-holder-api.mdx index 218417ba5..40090607e 100644 --- a/src/content/docs/en/api/virtual-account-api/get-account-holder-api.mdx +++ b/src/content/docs/en/api/virtual-account-api/get-account-holder-api.mdx @@ -4,120 +4,106 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Gets the account holder name for a bank account. +## Gets the account holder name for a bank account. - - - - -### Parameters - -#### Query - - - - -**Bank code** + - + ### Parameters - - -**Account number** + #### Query -`Numbers and special characters allowed` + + + **Bank code** + + - + + **Account number** -### Responses + `Numbers and special characters allowed` + - - - -**`code`** **\*** **integer** + ### Responses -**Response code** + + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **Response code** -**`message`** **\*** **string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info'. + **Response message** -**`response`** **(VbankHolderAnnotation, optional)** + A non-zero code includes a message like 'Invalid payment info'. - - + **`response`** **(VbankHolderAnnotation, optional)** + + - - -**`bank_holder`** **`*`** **`string`** + + + **`bank_holder`** **`*`** **`string`** -**`Account holder name`** + **`Account holder name`** + + + - - + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "bank_holder": "string" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "bank_holder": "string" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/vbanks/queryBankHolder**](https://api.iamport.kr/#!/vbanks/queryBankHolder) + **Swagger Test Link** + [**https://api.iamport.kr/#!/vbanks/queryBankHolder**](https://api.iamport.kr/#!/vbanks/queryBankHolder) diff --git a/src/content/docs/en/api/virtual-account-api/request-virtual-account-api.mdx b/src/content/docs/en/api/virtual-account-api/request-virtual-account-api.mdx index 5f0c1faf8..3a5c6e32d 100644 --- a/src/content/docs/en/api/virtual-account-api/request-virtual-account-api.mdx +++ b/src/content/docs/en/api/virtual-account-api/request-virtual-account-api.mdx @@ -4,15 +4,15 @@ description: "" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Requests a virtual account for payment collection from the customer. +## Requests a virtual account for payment collection from the customer. Supported PGs @@ -21,384 +21,367 @@ Supported PGs - KG INCIS - -You can create a virtual account for a desired bank and account holder name. (Requires a separate PG contract) - - - -### Parameters - -#### Body - - - - -**Order ID** - - - - - - - -**Amount** - - - - - - + + You can create a virtual account for a desired bank and account holder name. (Requires a separate PG contract) + -**Bank code** + ### Parameters - + #### Body - - -**Account expiration** + + + **Order ID** + + -**UNIX TIMESTAMP** + + + **Amount** + + - - - + + + **Bank code** + + -**Account holder** + + **Account expiration** - + **UNIX TIMESTAMP** + - - -**Order name** + + + **Account holder** + + - - -**Customer name** + + **Order name** + - - -**Customer email** + + **Customer name** + - - -**Customer phone** + + **Customer email** + - - -**Customer address** + + **Customer phone** + - - -**Customer zip code** + + **Customer address** + - - -**PG code** + + **Customer zip code** + - - -**Notification URL** + + **PG code** + - - -**Custom data** + + **Notification URL** + - + + **Custom data** + -#### Query + #### Query - -**API Key** + + **API Key** -**(Required for KG INICIS Only)** + **(Required for KG INICIS Only)** + - + ### Responses -### Responses + + + + **`code`** **\*** **integer** - - - -**`code`** **\***** ****integer** + **Response code** -**Response code** + 0: success, Not 0: check the message -0: success, Not 0: check the message + **`message`** **\*** **string** -**`message`** **\***\*\* ****string\*\* + **Response message** -**Response message** + A non-zero code includes a message like 'Invalid payment info'. -A non-zero code includes a message like 'Invalid payment info'. + **`response`** **(PaymentAnnotation, optional)** + + -**`response`** **(PaymentAnnotation, optional)** + + + **`code`** **\*** **integer** - - + **`Response code`** - - -**`code`** **\***** ****integer** + 0: success, Not 0: check the message -**`Response code`** + **`message`** **\*** **string** -0: success, Not 0: check the message + **Response message** -**`message`** **\***\*\* ****string\*\* + A non-zero code includes a message like 'Invalid payment info. -**Response message** + **`imp_uid`** \* **string** -A non-zero code includes a message like 'Invalid payment info. + **i'mport payment transaction UID** -**`imp_uid`** \* **string** + **`merchant_uid`** **\*** **string** -**i'mport payment transaction UID** + **Order ID** -**`merchant_uid`** **\***\*\* ****string\*\* + **`pay_method`** **\*** **string** -**Order ID** + **Payment method code** -**`pay_method`** **\***\*\* ****string\*\* + **`channel`** **\*** **string** -**Payment method code** + **Payment environment code** -**`channel`** **\***\*\* ****string\*\* + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**Payment environment code** + **`pg_provider`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **PG code** -**`pg_provider`** **\***\*\* ****string\*\* + --- -**PG code** + **`emb_pg_provider`** **\*** **string** ---- - -**`emb_pg_provider`** **\***\*\* ****string\*\* - -**Hub-type PG code** - -**`pg_tid`** **\*** **string** - -**PG transaction ID** - -**`pg_id`** **\***\*\* ****string\*\* - -**PG MID** + **Hub-type PG code** -**`escrow`** **boolean** + **`pg_tid`** **\*** **string** -**Indicates an escrow payment** + **PG transaction ID** -**`apply_num`** **string** + **`pg_id`** **\*** **string** -**Credit card approval number** + **PG MID** -**`bank_code`** **string** + **`escrow`** **boolean** -**Bank code** + **Indicates an escrow payment** -**`bank_name`** **string** + **`apply_num`** **string** -**Bank name** + **Credit card approval number** ---- + **`bank_code`** **string** -**`card_code`** **string** + **Bank code** -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`bank_name`** **string** -**`card_name`** **string** + **Bank name** -**Credit card name** + --- -**`card_quota`** **integer** + **`card_code`** **string** -**Number of installments (0 means one-off)** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**`card_number`** **string** + **`card_name`** **string** -**Masked credit card number** + **Credit card name** ---- + **`card_quota`** **integer** -**`card_type`** **string** + **Number of installments (0 means one-off)** -**Credit card type code** + **`card_number`** **string** -- 0: credit -- 1: check + **Masked credit card number** -**`vbank_code`** **string** + --- -**Virtual account bank code (refer to image below)** + **`card_type`** **string** ---- + **Credit card type code** -**`vbank_name`** **string** + - 0: credit + - 1: check -**Refund virtual account** + **`vbank_code`** **string** -**`vbank_holder`** **string** + **Virtual account bank code (refer to image below)** -**Refund virtual account holder** + --- -**`vbank_date`** **string** + **`vbank_name`** **string** -**Refund virtual account expiration (UNIX timestamp)** + **Refund virtual account** -**`vbank_issued_at`** **string** + **`vbank_holder`** **string** -**Refund virtual account created at (UNIX timestamp)** + **Refund virtual account holder** -**`name`** **string** + **`vbank_date`** **string** -**Product name** + **Refund virtual account expiration (UNIX timestamp)** -**`amount`** **\*** **integer** + **`vbank_issued_at`** **string** -**Order (payment) amount** + **Refund virtual account created at (UNIX timestamp)** -**`cancel_amount`** **integer** + **`name`** **string** -**Cancelled amount** + **Product name** -**`currency`** **string** + **`amount`** **\*** **integer** -**Currency** + **Order (payment) amount** -- USD -- KRW -- EUR + **`cancel_amount`** **integer** ---- + **Cancelled amount** -**`buyer_name`** **string** + **`currency`** **string** -**Customer name** + **Currency** -**`buyer_email`** **string** + - USD + - KRW + - EUR -**Customer email**\ + --- -**`buyer_tel`** **string** + **`buyer_name`** **string** -**Customer phone** + **Customer name** -**`buyer_addr`** **string** + **`buyer_email`** **string** -**Customer address** + **Customer email** -**`buyer_postcode`** **string** + **`buyer_tel`** **string** -**Customer zip code** + **Customer phone** -**`custom_data`** **string** + **`buyer_addr`** **string** -**echo data as JSON string** + **Customer address** -**`user_agent`** **string** + **`buyer_postcode`** **string** -**UserAgent of the device where payment is initiated** + **Customer zip code** -**`status`** **\***\*\* ****string\*\* + **`custom_data`** **string** -**Payment status code** + **echo data as JSON string** -- ready -- paid -- cancelled -- failed + **`user_agent`** **string** -**`started_at`** **\*** **string** + **UserAgent of the device where payment is initiated** -**Payment started at (UNIX timestamp)** + **`status`** **\*** **string** -**`paid_at`** **\***\*\* ****string\*\* + **Payment status code** -**Payment completed at (UNIX timestamp)**\ + - ready + - paid + - cancelled + - failed -**`failed_at`** **\***\*\* ****string\*\* + **`started_at`** **\*** **string** -**Payment failed at (UNIX timestamp)** + **Payment started at (UNIX timestamp)** -**`cancelled_at`** **\***\*\* ****string\*\* + **`paid_at`** **\*** **string** -**Payment cancelled at (UNIX timestamp)** + **Payment completed at (UNIX timestamp)** -**`fail_reason`** **string** + **`failed_at`** **\*** **string** -**Reason for failure** + **Payment failed at (UNIX timestamp)** -**`cancel_reason`** **string** + **`cancelled_at`** **\*** **string** -**Reason for cancellation** + **Payment cancelled at (UNIX timestamp)** -**`receipt_url`** **string** + **`fail_reason`** **string** -**Credit card receipt URL** + **Reason for failure** -**`cash_receipt_issued` ****boolean** + **`cancel_reason`** **string** -**Option to automatically issue cash receipt** + **Reason for cancellation** -**`customer_uid`** **string** + **`receipt_url`** **string** -**customer_uid related to the payment transaction** + **Credit card receipt URL** -**`customer_uid_usage`** **string** + **`cash_receipt_issued`** **boolean** -**customer_uid use code** + **Option to automatically issue cash receipt** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **`customer_uid`** **string** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **customer\_uid related to the payment transaction** -**`Cancellation/partial cancellation history`** + **`customer_uid_usage`** **string** - - + **customer\_uid use code** - - -**`pg_tid`** **\***** ****string** + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance -**PG cancellation transaction ID** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`amount`** **\*** **integer** + **`Cancellation/partial cancellation history`** + + -**Cancelled amount** + + + **`pg_tid`** **\*** **string** -**`cancelled_at`** **\*** **string** + **PG cancellation transaction ID** -**Cancelled at (UNIX timestamp)** + **`amount`** **\*** **integer** -**`reason`** **\*** **string(256)** + **Cancelled amount** -**Reason for cancellation** + **`cancelled_at`** **\*** **string** -**`receipt_url`** **\***\*\* ****string(300)\*\* + **Cancelled at (UNIX timestamp)** -**Cancellation receipt URL. Availability varies by PG.** + **`reason`** **\*** **string(256)** - - + **Reason for cancellation** - + **`receipt_url`** **\*** **string(300)** - -```javascript -{ - // Response -} -``` - - + **Cancellation receipt URL. Availability varies by PG.** + + + + + ```ts + { + // Response + } + ``` + ### Key request parameter description @@ -449,77 +432,75 @@ A non-zero code includes a message like 'Invalid payment info. > (**Required for KG INICIS only**)
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": ["string"], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": ["string"], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/vbanks/createVbank**](https://api.iamport.kr/#!/vbanks/createVbank) + **Swagger Test Link** + [**https://api.iamport.kr/#!/vbanks/createVbank**](https://api.iamport.kr/#!/vbanks/createVbank) diff --git a/src/content/docs/en/api/virtual-account-api/update-virtual-account-api.mdx b/src/content/docs/en/api/virtual-account-api/update-virtual-account-api.mdx index 0ded9738d..ba6f6f019 100644 --- a/src/content/docs/en/api/virtual-account-api/update-virtual-account-api.mdx +++ b/src/content/docs/en/api/virtual-account-api/update-virtual-account-api.mdx @@ -4,444 +4,428 @@ description: '' --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Updates the deposit expiration or amount for a virtual account that is pending deposit. +## Updates the deposit expiration or amount for a virtual account that is pending deposit.
-

Supported PGs

- -- **KG INCIS** -- **NHN KCP** -- **TOSS Payments** -- **Nice Payments** -- **KICC** -- **Settle Bank** -- **Smartro** - +

Supported PGs

+ + - **KG INCIS** + - **NHN KCP** + - **TOSS Payments** + - **Nice Payments** + - **KICC** + - **Settle Bank** + - **Smartro**
- -**imp_uid** - - must be specified. (Since there can be multiple virtual accounts pending payment deposit for a single merchant_uid, you can only update a virtual account based on the imp_uid) - - - -### Parameters - -#### Path - - - - -**i'mport transaction ID** - - + + **imp\_uid** - + must be specified. (Since there can be multiple virtual accounts pending payment deposit for a single merchant\_uid, you can only update a virtual account based on the imp\_uid) + -#### Body + ### Parameters - -**Amount** + #### Path - - -**Account expiration** + + + **i'mport transaction ID** + + -`UNIX TIMESTAMP` + #### Body - + + **Amount** + -### Responses + + **Account expiration** - - - -**`code`** **\***** ****integer** + `UNIX TIMESTAMP` + -**Response code** + ### Responses -0: success, Not 0: check the message + + + + **`code`** **\*** **integer** -**`message`** **\***** ****string** + **Response code** -**Response message** + 0: success, Not 0: check the message -A non-zero code includes a message like 'Invalid payment info'. + **`message`** **\*** **string** -**`response`** **(PaymentAnnotation, optional)** + **Response message** - - + A non-zero code includes a message like 'Invalid payment info'. - - -**`code`** **\***** ****integer** + **`response`** **(PaymentAnnotation, optional)** + + -**`Response code`** + + + **`code`** **\*** **integer** -0: success, Not 0: check the message + **`Response code`** -**`message`** **\***** ****string** + 0: success, Not 0: check the message -**Response message** + **`message`** **\*** **string** -A non-zero code includes a message like 'Invalid payment info. + **Response message** -**`imp_uid`** \* **string** + A non-zero code includes a message like 'Invalid payment info. -**i'mport payment transaction UID** + **`imp_uid`** \* **string** -**`merchant_uid`** **\***** ****string** + **i'mport payment transaction UID** -**Order ID** + **`merchant_uid`** **\*** **string** -**`pay_method`** **\***** ****string** + **Order ID** -**Payment method code** + **`pay_method`** **\*** **string** -**`channel`** **\***** ****string** + **Payment method code** -**Payment environment code** + **`channel`** **\*** **string** -- pc**:** (authenticated) PC -- mobile: (authenticated) mobile -- api: recurring or non-authenticated + **Payment environment code** -**`pg_provider`** **\***** ****string** + - pc: (authenticated) PC + - mobile: (authenticated) mobile + - api: recurring or non-authenticated -**PG code** + **`pg_provider`** **\*** **string** ---- + **PG code** -**`emb_pg_provider`** **\***** ****string** + --- -**Hub-type PG code** + **`emb_pg_provider`** **\*** **string** -**`pg_tid`** **\*** **string** + **Hub-type PG code** -**PG transaction ID** + **`pg_tid`** **\*** **string** -**`pg_id`** **\***** ****string** + **PG transaction ID** -**PG MID** + **`pg_id`** **\*** **string** -**`escrow`** **boolean** + **PG MID** -**Indicates an escrow payment** + **`escrow`** **boolean** -**`apply_num`** **string** + **Indicates an escrow payment** -**Credit card approval number** + **`apply_num`** **string** -**`bank_code`** **string** + **Credit card approval number** -**Bank code** + **`bank_code`** **string** -**`bank_name`** **string** + **Bank code** -**Bank name** + **`bank_name`** **string** ---- + **Bank name** -**`card_code`** **string** + --- -**Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) + **`card_code`** **string** -**`card_name`** **string** + **Credit card code (KFTC Credit Card Codes:** [**link**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) ) -**Credit card name** + **`card_name`** **string** -**`card_quota`** **integer** + **Credit card name** -**Number of installments (0 means one-off)** + **`card_quota`** **integer** -**`card_number`** **string** + **Number of installments (0 means one-off)** -**Masked credit card number** + **`card_number`** **string** ---- + **Masked credit card number** -**`card_type`** **string** + --- -**Credit card type code** + **`card_type`** **string** -- 0: credit -- 1: check + **Credit card type code** -**`vbank_code`** **string** + - 0: credit + - 1: check -**Virtual account bank code (refer to image below)** + **`vbank_code`** **string** ---- + **Virtual account bank code (refer to image below)** -**`vbank_name`** **string** + --- -**Refund virtual account** + **`vbank_name`** **string** -**`vbank_holder`** **string** + **Refund virtual account** -**Refund virtual account holder** + **`vbank_holder`** **string** -**`vbank_date`** **string** + **Refund virtual account holder** -**Refund virtual account expiration (UNIX timestamp)** + **`vbank_date`** **string** -**`vbank_issued_at`** **string** + **Refund virtual account expiration (UNIX timestamp)** -**Refund virtual account created at (UNIX timestamp)** + **`vbank_issued_at`** **string** -**`name`** **string** + **Refund virtual account created at (UNIX timestamp)** -**Product name** + **`name`** **string** -**`amount`** **\*** **integer** + **Product name** -**Order (payment) amount** + **`amount`** **\*** **integer** -**`cancel_amount`** **integer** + **Order (payment) amount** -**Cancelled amount** + **`cancel_amount`** **integer** -**`currency`** **string** + **Cancelled amount** -**Currency** - -- USD -- KRW -- EUR - ---- + **`currency`** **string** -**`buyer_name`** **string** + **Currency** -**Customer name** + - USD + - KRW + - EUR -**`buyer_email`** **string** + --- -**Customer email**\ + **`buyer_name`** **string** -**`buyer_tel`** **string** + **Customer name** -**Customer phone** + **`buyer_email`** **string** -**`buyer_addr`** **string** + **Customer email** -**Customer address** + **`buyer_tel`** **string** -**`buyer_postcode`** **string** + **Customer phone** -**Customer zip code** + **`buyer_addr`** **string** -**`custom_data`** **string** + **Customer address** -**echo data as JSON string** + **`buyer_postcode`** **string** -**`user_agent`** **string** + **Customer zip code** -**UserAgent of the device where payment is initiated** + **`custom_data`** **string** -**`status`** **\***** ****string** + **echo data as JSON string** -**Payment status code** + **`user_agent`** **string** -- ready -- paid -- cancelled -- failed + **UserAgent of the device where payment is initiated** -**`started_at`** **\*** **string** + **`status`** **\*** **string** -**Payment started at (UNIX timestamp)** + **Payment status code** -**`paid_at`** **\***** ****string** + - ready + - paid + - cancelled + - failed -**Payment completed at (UNIX timestamp)**\ + **`started_at`** **\*** **string** -**`failed_at`** **\***** ****string** + **Payment started at (UNIX timestamp)** -**Payment failed at (UNIX timestamp)** + **`paid_at`** **\*** **string** -**`cancelled_at`** **\***** ****string** + **Payment completed at (UNIX timestamp)** -**Payment cancelled at (UNIX timestamp)** + **`failed_at`** **\*** **string** -**`fail_reason`** **string** + **Payment failed at (UNIX timestamp)** -**Reason for failure** + **`cancelled_at`** **\*** **string** -**`cancel_reason`** **string** + **Payment cancelled at (UNIX timestamp)** -**Reason for cancellation** + **`fail_reason`** **string** -**`receipt_url`** **string** + **Reason for failure** -**Credit card receipt URL** + **`cancel_reason`** **string** -**`cash_receipt_issued` ****boolean** + **Reason for cancellation** -**Option to automatically issue cash receipt** + **`receipt_url`** **string** -**`customer_uid`** **string** + **Credit card receipt URL** -**customer\_uid related to the payment transaction** + **`cash_receipt_issued`** **boolean** -**`customer_uid_usage`** **string** + **Option to automatically issue cash receipt** -**customer\_uid use code** + **`customer_uid`** **string** -- payment.scheduled: scheduled payment -- payment: payment -- issue**: billing key issuance** + **customer\_uid related to the payment transaction** -**`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** + **`customer_uid_usage`** **string** -**`Cancellation/partial cancellation history`** + **customer\_uid use code** - - + - payment.scheduled: scheduled payment + - payment: payment + - issue: billing key issuance - - -**cancel\_history array \[]** + **`cancel_history`** **(Array\[PaymentCancelAnnotation], optional):** -**`pg_tid`** **\***** ****string** + **`Cancellation/partial cancellation history`** + + -**PG cancellation transaction ID** + + + **cancel\_history array \[]** -**`amount`** **\*** **integer** + **`pg_tid`** **\*** **string** -**Cancelled amount** + **PG cancellation transaction ID** -**`cancelled_at`** **\*** **string** + **`amount`** **\*** **integer** -**Cancelled at (UNIX timestamp)** + **Cancelled amount** -**`reason`** **\*** **string(256)** + **`cancelled_at`** **\*** **string** -**Reason for cancellation** + **Cancelled at (UNIX timestamp)** -**`receipt_url`** **\***** ****string(300)** + **`reason`** **\*** **string(256)** -**Cancellation receipt URL. Availability varies by PG.** + **Reason for cancellation** - - + **`receipt_url`** **\*** **string(300)** - + **Cancellation receipt URL. Availability varies by PG.** + + + - -```javascript -{ - // Response -} -``` + + ```ts + { + // Response + } + ``` + - - - -```javascript -{ - // Response -} -``` - - - - -```javascript -{ - // Response -} -``` - - + + ```ts + { + // Response + } + ``` + + + ```ts + { + // Response + } + ``` +
-

Response Model Schema

- -```json -{ - "code": 0, - "message": "string", - "response": { - "imp_uid": "string", - "merchant_uid": "string", - "pay_method": "string", - "channel": "pc", - "pg_provider": "string", - "emb_pg_provider": "string", - "pg_tid": "string", - "pg_id": "string", - "escrow": true, - "apply_num": "string", - "bank_code": "string", - "bank_name": "string", - "card_code": "string", - "card_name": "string", - "card_quota": 0, - "card_number": "string", - "card_type": "null", - "vbank_code": "string", - "vbank_name": "string", - "vbank_num": "string", - "vbank_holder": "string", - "vbank_date": 0, - "vbank_issued_at": 0, - "name": "string", - "amount": 0, - "cancel_amount": 0, - "currency": "string", - "buyer_name": "string", - "buyer_email": "string", - "buyer_tel": "string", - "buyer_addr": "string", - "buyer_postcode": "string", - "custom_data": "string", - "user_agent": "string", - "status": "ready", - "started_at": 0, - "paid_at": 0, - "failed_at": 0, - "cancelled_at": 0, - "fail_reason": "string", - "cancel_reason": "string", - "receipt_url": "string", - "cancel_history": [ - { - "pg_tid": "string", - "amount": 0, - "cancelled_at": 0, - "reason": "string", - "receipt_url": "string" - } - ], - "cancel_receipt_urls": [ - "string" - ], - "cash_receipt_issued": true, - "customer_uid": "string", - "customer_uid_usage": "issue" +

Response Model Schema

+ + ```json + { + "code": 0, + "message": "string", + "response": { + "imp_uid": "string", + "merchant_uid": "string", + "pay_method": "string", + "channel": "pc", + "pg_provider": "string", + "emb_pg_provider": "string", + "pg_tid": "string", + "pg_id": "string", + "escrow": true, + "apply_num": "string", + "bank_code": "string", + "bank_name": "string", + "card_code": "string", + "card_name": "string", + "card_quota": 0, + "card_number": "string", + "card_type": "null", + "vbank_code": "string", + "vbank_name": "string", + "vbank_num": "string", + "vbank_holder": "string", + "vbank_date": 0, + "vbank_issued_at": 0, + "name": "string", + "amount": 0, + "cancel_amount": 0, + "currency": "string", + "buyer_name": "string", + "buyer_email": "string", + "buyer_tel": "string", + "buyer_addr": "string", + "buyer_postcode": "string", + "custom_data": "string", + "user_agent": "string", + "status": "ready", + "started_at": 0, + "paid_at": 0, + "failed_at": 0, + "cancelled_at": 0, + "fail_reason": "string", + "cancel_reason": "string", + "receipt_url": "string", + "cancel_history": [ + { + "pg_tid": "string", + "amount": 0, + "cancelled_at": 0, + "reason": "string", + "receipt_url": "string" + } + ], + "cancel_receipt_urls": [ + "string" + ], + "cash_receipt_issued": true, + "customer_uid": "string", + "customer_uid_usage": "issue" + } } -} -``` - + ```
-**Swagger Test Link** - -[**https://api.iamport.kr/#!/vbanks/modifyVbank**](https://api.iamport.kr/#!/vbanks/modifyVbank) + **Swagger Test Link** + [**https://api.iamport.kr/#!/vbanks/modifyVbank**](https://api.iamport.kr/#!/vbanks/modifyVbank) diff --git a/src/content/docs/en/auth/guide-1/bill/pg-window.mdx b/src/content/docs/en/auth/guide-1/bill/pg-window.mdx index 0fb4394de..37030cff3 100644 --- a/src/content/docs/en/auth/guide-1/bill/pg-window.mdx +++ b/src/content/docs/en/auth/guide-1/bill/pg-window.mdx @@ -4,154 +4,170 @@ description: Get a billing key through the payment window provided by the PG. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -#### You can enter the card information through the PG's payment window to get a billing key. +You can enter the card information through the PG's payment window to get a billing key. -- **Pros**: **no need to establish additional security process** for transmitting card information because the data is transmitted directly to PG without going through the server or i'mport server. -- **Cons**: **cannot customize card registration form** since billing key is requested through the PG's payment window via web browser (cannot implement merchant site friendly UI/UX). +- **Pros**: **no need to establish additional security process** for transmitting card information + because the data is transmitted directly to PG without going through the server or i'mport server. -
+- **Cons**: **cannot customize card registration form** since billing key is requested + through the PG's payment window via web browser (cannot implement merchant site friendly UI/UX). -### **STEP 01.** Request billing key +
-As with authenticated payment, use the **JavaScript SDK** to call the PG's payment window. To get a billing key, specify the following additional parameters. +## **STEP 01.** Request billing key -> #### customer_uid: unique key that maps 1:1 with billing key +As with authenticated payment, use the **JavaScript SDK** to call the PG's payment window. +To get a billing key, specify the following additional parameters. + +> customer\_uid: unique key that maps 1:1 with billing key - -```javascript title="client-side" - IMP.request_pay({ // Refer to above mentioned PG specific guide for param settings - customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) - /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { - // Billing key request successful - } else { - // Billing key request failed - } - }); -``` - - -**What is a customer\_uid?** - -It is a unique value specified by the merchant that maps 1:1 with the billing key issued by PG. A unique `customer_uid` must be created for each card. - -Example: If a customer named **Hong Gildong** requests for a billing key from **A card**, the customer_uid must be issued for the **specified member's credit card number** + + ```ts title="client-side" + IMP.request_pay( + { + // Refer to above mentioned PG specific guide for param settings + customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // Billing key request successful + } else { + // Billing key request failed + } + }, + ); + ``` - + + **What is a customer\_uid?** - + It is a unique value specified by the merchant that maps 1:1 with the billing key issued by PG. A unique `customer_uid` must be created for each card. + + Example: If a customer named **Hong Gildong** requests for a billing key from **A card**, the customer\_uid must be issued for the **specified member's credit card number** + + ### **STEP 02.** Handle response - -```javascript title="client-side" - IMP.request_pay({ // param - /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { - // Billing key request successful - // jQuery HTTP request - jQuery.ajax({ - url: "{URL to receive customer-uid}", // Example: https://www.myservice.com/billings/ - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { - customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) + + ```ts title="client-side" + IMP.request_pay( + { + // param + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // Billing key request successful + // jQuery HTTP request + jQuery.ajax({ + url: "{URL to receive customer-uid}", // Example: https://www.myservice.com/billings/ + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { + customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) + }, + }); + } else { + // Billing key request failed } - }); - } else { - // Billing key request failed - } - }); -``` - -Once the billing key is issued successfully, the **customer_uid** is sent to the merchant server. The server creates an API endpoint that receives the **customer_uid** from the client. The server can use the **customer_uid** to request future payments.\ - -```javascript title="server-side" - app.post("/billings", async (req, res) => { - try { - const { customer_uid } = req.body; // Get customer_uid from req.body - - ... - } catch (e) { - res.status(400).send(e); - } - }); -``` - -Save the `customer_uid` in the merchant's database and use it to request future payments. - - + }, + ); + ``` + + Once the billing key is issued successfully, the **customer\_uid** is sent to the merchant server. The server creates an API endpoint that receives the **customer\_uid** from the client. The server can use the **customer\_uid** to request future payments.\\ + + ```ts title="server-side" + app.post("/billings", async (req, res) => { + try { + const { customer_uid } = req.body; // Get customer_uid from req.body + } catch (e) { + res.status(400).send(e); + } + }); + ``` + + Save the `customer_uid` in the merchant's database and use it to request future payments. + ### **STEP 03.** Request payment -Use the saved **customer_uid** and call the i'mport [**Non-authenticated payment (billing key) API**](../../../api/api/api) to request payment. +Use the saved **customer\_uid** and call the i'mport +[**Non-authenticated payment (billing key) API**](../../../api/api/api) to request payment. -**To use the i'mport REST API, you must first get an** [**access token**](../../../api/rest-api-access-token). - + **To use the i'mport REST API, you must first get an** [**access token**](../../../api/rest-api-access-token). - -```javascript title="server-side" -app.post("/billings", async (req, res) => { - try { - const { customer_uid } = req.body; // Get customer_uid from req.body - // Get billing key - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" - data: { - imp_key: "imp_apikey", // REST API key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret + + ```ts title="server-side" + app.post("/billings", async (req, res) => { + try { + const { customer_uid } = req.body; // Get customer_uid from req.body + // Get billing key + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" + data: { + imp_key: "imp_apikey", // REST API key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // Access token + // Request payment (for first or nth time) + const paymentResult = await axios({ + url: `https://api.iamport.kr/subscribe/payments/again`, + method: "post", + headers: { Authorization: access_token }, // Add access token to authorization header + data: { + customer_uid, + merchant_uid: "order_monthly_0001", // Order ID + amount: 8900, + name: "recurring payments for monthly subscription", + }, + }); + const { code, message } = paymentResult; + if (code === 0) { + // Successful communication with the card company (additional check is required to confirm whether the payment was successful) + if (paymentResult.status === "paid") { + // Payment approved + res.send({ + // ... + }); + } else { + // Payment not approved (Example: card limit exceeded, card suspended, insufficient balance) + // paymentResult.status: failed is returned + res.send({ + // ... + }); + } + res.send({ + // ... + }); + } else { + // Card company rejected payment (paymentResult is null) + res.send({ + // ... + }); } - }); - const { access_token } = getToken.data.response; // Access token - ... - // Request payment (for first or nth time) - const paymentResult = await axios({ - url: \`https://api.iamport.kr/subscribe/payments/again\`, - method: "post", - headers: { "Authorization": access_token }, // Add access token to authorization header - data: { - customer_uid, - merchant_uid: "order_monthly_0001", // Order ID - amount: 8900, - name: "recurring payments for monthly subscription" - } - }); - ... - const { code, message } = paymentResult; - if (code === 0) { // Successful communication with the card company (additional check is required to confirm whether the payment was successful) - if ( paymentResult.status === "paid" ) { // Payment approved - res.send({ ... }); - } else { // Payment not approved (Example: card limit exceeded, card suspended, insufficient balance) - // paymentResult.status: failed is returned - res.send({ ... }); - } - res.send({ ... }); - } else { // Card company rejected payment (paymentResult is null) - res.send({ ... }); + } catch (e) { + res.status(400).send(e); } - } catch (e) { - res.status(400).send(e); - } - }); -``` - - + }); + ``` + diff --git a/src/content/docs/en/auth/guide-1/bill/readme.mdx b/src/content/docs/en/auth/guide-1/bill/readme.mdx index e8c2711ca..a09efa01d 100644 --- a/src/content/docs/en/auth/guide-1/bill/readme.mdx +++ b/src/content/docs/en/auth/guide-1/bill/readme.mdx @@ -3,59 +3,56 @@ title: Request billing key payment description: Request a non-authenticated payment request with the credit card information. --- +import Figure from "~/components/Figure.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Non-authenticated payment using a billing key -**What is a billing key?** - -A billing key is an encryption key that can be used to make a payment at a desired time, such as subscriptions and Pay-As-You-Go payments. Since a merchant cannot store the customer's card information, it can get the card's billing key from the card company, store and use it to make payments. + **What is a billing key?** + A billing key is an encryption key that can be used to make a payment at a desired time, such as subscriptions and Pay-As-You-Go payments. Since a merchant cannot store the customer's card information, it can get the card's billing key from the card company, store and use it to make payments. Depending on the PG, the billing key can be issued using the following two methods: - -#### Use i'mport REST API to get a billing key and use it to make a payment request. - -- `NICE Payments` -- `JTNet` -- `KCP` -- `SettleBank` -- `INICIS` -- `DaouData` -- `Paymentwall` - - - - -#### Use a PG payment window to get a billing key. - -- `JTNet` -- `INICIS` -- `Danal (credit card, mobile)` -- `Mobilians` -- `Payco` -- `KICC` -- `KCP` -- `Kakao Pay` -- `Naver Pay` - - + + Use i'mport REST API to get a billing key and use it to make a payment request. + + - `NICE Payments` + - `JTNet` + - `KCP` + - `SettleBank` + - `INICIS` + - `DaouData` + - `Paymentwall` + + + + Use a PG payment window to get a billing key. + + - `JTNet` + - `INICIS` + - `Danal (credit card, mobile)` + - `Mobilians` + - `Payco` + - `KICC` + - `KCP` + - `Kakao Pay` + - `Naver Pay` + -## 2. Payment using card info (key-in payment) +## 2. Payment using card info (key-in payment) Upon pre-agreement with a PG, you can request a one-time payment using the credit card information. This method requests payment by submitting card information each time. It is usually used by some @@ -64,20 +61,18 @@ from customers via ARS to make a payment. Recently, as more merchants are using method for authenticated payments, the use of key-in method is declining due to the inconvenience of having to enter the card information every time. -
+
-**An agreement with the PG is required to use key-in payment.** - + **An agreement with the PG is required to use key-in payment.**
-

PGs that support key-in payment

- -- NICE Payments -- NHN KCP -- JTNET -- SettleBank -- DaouData +

PGs that support key-in payment

+ - NICE Payments + - NHN KCP + - JTNET + - SettleBank + - DaouData
diff --git a/src/content/docs/en/auth/guide-1/bill/rest-api.mdx b/src/content/docs/en/auth/guide-1/bill/rest-api.mdx index 4bdf7fc64..88b27602b 100644 --- a/src/content/docs/en/auth/guide-1/bill/rest-api.mdx +++ b/src/content/docs/en/auth/guide-1/bill/rest-api.mdx @@ -4,9 +4,9 @@ description: Easily get a billing key using the i'mport REST API. --- import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; You can use the i'mport REST API to request for a billing key to make a payment request. When you request for a billing key with the customer's credit card information, the i'mport server calls the @@ -19,137 +19,150 @@ has the following pros/cons: requirements are strict for this service, and must take precautions to protect personal information. -#### If you are planning to develop a merchant UI/UX-friendly payment environment, API integration is the right choice. +If you are planning to develop a merchant UI/UX-friendly payment environment, +API integration is the right choice. -### **STEP 01.** Accept credit card information +## **STEP 01.** Accept credit card information Add input fields for card information as shown below. Create a hidden field to store the -**customer_uid** to send to the server upon form submission. For corporate cards (excluding cards +**customer\_uid** to send to the server upon form submission. For corporate cards (excluding cards issued under an employee's name), enter a _10-digit business registration number_ for the `birth` parameter. The following example calls a `POST` request for `/subscription/issue-billing` with input -values and **customer_uid** when you click the **Pay** button. +values and **customer\_uid** when you click the **Pay** button. -**What is a customer\_uid?** + **What is a customer\_uid?** -It is a unique value specified by the merchant that maps 1:1 with the billing key issued by PG. A unique `customer_uid` must be created for each card. - -Example: If a customer named **Hong Gildong** requests for a billing key from **A card**, the customer_uid must be issued for the **specified member's credit card number**. + It is a unique value specified by the merchant that maps 1:1 with the billing key issued by PG. A unique `customer_uid` must be created for each card. + Example: If a customer named **Hong Gildong** requests for a billing key from **A card**, the customer\_uid must be issued for the **specified member's credit card number**. -If you reuse the customer\_uid used to get the existing billing key, the existing billing key will be replaced with the new billing key issued on the new card number. (**The billing key that maps to the existing card will be deleted.**) - + If you reuse the customer\_uid used to get the existing billing key, the existing billing key will be replaced with the new billing key issued on the new card number. (**The billing key that maps to the existing card will be deleted.**) -**Credit card information required for billing key** - -- **Credit card number** -- **Credit card expiration** -- **DOB** -- **First 2-digits of card password** + **Credit card information required for billing key** + - **Credit card number** + - **Credit card expiration** + - **DOB** + - **First 2-digits of card password** - -```html title="client-side" -
- -
- - -
-
- - -
-
- - -
-
- - -
- - -
-``` - -
- - -```jsx title="client-side" -// React.js - class CardForm extends React.Components { - constructor(props) { - super(props); - this.state = { - cardNumber: "", - expiry: "", - birth: "", - pwd2Digit: "", - customer_uid: "gildong_0001_1234", + + ```html title="client-side" +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ ``` +
+ + + ```tsx title="client-side" + // React.js + class CardForm extends React.Components { + constructor(props) { + super(props); + this.state = { + cardNumber: "", + expiry: "", + birth: "", + pwd2Digit: "", + customer_uid: "gildong_0001_1234", + }; + } + handleInputChange = (event) => { + const { value, name } = event.target; + this.setState({ + [name]: value, + }); }; + handleFormSubmit = (event) => { + event.preventDefault(); + const { cardNumber, expiry, birth, pwd2Digit, customer_uid } = this.state; + axios({ + // Example: https://www.myservice.com/subscription/issue-billing + url: "{service URL to receive billing key request}", + method: "post", + data: { + cardNumber, + expiry, + birth, + pwd2Digit, + customer_uid, + }, + }).then((rsp) => { + // Do something with the response + }); + }; + render() { + const { cardNumber, expiry, birth, pwd2Digit } = this.state; + return ( +
+ + + + + +
+ ); + } } - ... - handleInputChange = (event) => { - const { value, name } = event.target; - this.setState({ - [name]: value, - }); - }; - ... - handleFormSubmit = (event) => { - event.preventDefault(); - const { cardNumber, expiry, birth, pwd2Digit, customer_uid } = this.state; - axios({ - // Example: https://www.myservice.com/subscription/issue-billing - url: "{service URL to receive billing key request}", - method: "post", - data: { - cardNumber, - expiry, - birth, - pwd2Digit, - customer_uid, - } - }).then(rsp => { - ... - }); - }; - ... - render() { - const { cardNumber, expiry, birth, pwd2Digit } = this.state; - return ( -
- - - - - -
- ) - } - } -``` - -
+ ``` +
@@ -157,29 +170,27 @@ If you reuse the customer\_uid used to get the existing billing key, the existin ### **STEP 02.** Extract card information Create an API endpoint to extract the card information from the request body. The following is a -sample **API endpoint** that processes a `POST` request to `/subscription/issue-billing`.\ +sample **API endpoint** that processes a `POST` request to `/subscription/issue-billing`.\\ - -```javascript title="server-side" -// Process POST request to "/subscription/issue-billing" - app.post("/subscriptions/issue-billing", async (req, res) => { - try { - const { - card_number, // card number - expiry, // card expiration - birth, // DOB - pwd_2digit, // first 2-digits of card password - customer_uid, // value that maps 1:1 with card (billing key) - } = req.body; // extract card info from req.body - ... - } catch (e) { - res.status(400).send(e); - } - }); -``` - - + + ```ts title="server-side" + // Process POST request to "/subscription/issue-billing" + app.post("/subscriptions/issue-billing", async (req, res) => { + try { + const { + card_number, // card number + expiry, // card expiration + birth, // DOB + pwd_2digit, // first 2-digits of card password + customer_uid, // value that maps 1:1 with card (billing key) + } = req.body; // extract card info from req.body + } catch (e) { + res.status(400).send(e); + } + }); + ``` + ### **STEP 03.** Request billing key and handle response @@ -188,8 +199,8 @@ Request for a billing key by using the i'mport [**Get billing key REST API**](.. return a response based on the result code. - -```javascript title="server-side" + + ```ts title="server-side" // Process POST request to "/subscription/issue-billing" app.post("/subscriptions/issue-billing", async (req, res) => { try { @@ -200,7 +211,6 @@ return a response based on the result code. pwd_2digit, // First 2-digits of card password customer_uid, // Unique ID for each card (billing key) } = req.body; // Get card info from req.body - ... // Get billing key const getToken = await axios({ url: "https://api.iamport.kr/users/getToken", @@ -208,47 +218,48 @@ return a response based on the result code. headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" data: { imp_key: "imp_apikey", // REST API key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, }); const { access_token } = getToken.data.response; // Access token - ... // Get access token const issueBilling = await axios({ - url: \`https://api.iamport.kr/subscribe/customers/\${customer_uid}\`, + url: `https://api.iamport.kr/subscribe/customers/${customer_uid}`, method: "post", - headers: { "Authorization": access_token }, // Add access token to authorization header + headers: { Authorization: access_token }, // Add access token to authorization header data: { card_number, // Card number expiry, // Card expiration birth, // Date of birth pwd_2digit, // First 2-digits of card password - } + }, }); - ... const { code, message } = issueBilling.data; - if (code === 0) { // Billing key request successful - res.send({ status: "success", message: "Billing has successfully issued" }); - } else { // Billing key request failed + if (code === 0) { + // Billing key request successful + res.send({ + status: "success", + message: "Billing has successfully issued", + }); + } else { + // Billing key request failed res.send({ status: "failed", message }); } } catch (e) { res.status(400).send(e); } }); -``` - - + ``` + -**To use the i'mport REST API, you must first get an** [**access token**](../../../api/rest-api-access-token)**.** - + **To use the i'mport REST API, you must first get an** [**access token**](../../../api/rest-api-access-token)**.** -**Request billing key and make payment at once** - -By using the key-in payment REST API[**`/subscribe/payments/onetime`**](../../../api/api/), you can get the billing key and make a payment in a single API call. + **Request billing key and make payment at once** + By using the key-in payment REST API[**`/subscribe/payments/onetime`**](../../../api/api/), you can get the billing key and make a payment in a single API call. diff --git a/src/content/docs/en/auth/guide-1/page-1.mdx b/src/content/docs/en/auth/guide-1/page-1.mdx index 46ee2b182..b8ffdc138 100644 --- a/src/content/docs/en/auth/guide-1/page-1.mdx +++ b/src/content/docs/en/auth/guide-1/page-1.mdx @@ -3,31 +3,35 @@ title: Key-in payment using card info description: Request payments with only card information without authentication. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; -Upon pre-agreement with a PG, you can request a one-time payment using the credit card information. This method requests payment by submitting card information each time. It is usually used by some merchants to avoid the hassle of authenticated payments or call centers that obtain card information from customers via ARS to make a payment. Recently, as more merchants are using a simple payment method for authenticated payments, the use of key-in method is declining due to the inconvenience of having to enter the card information every time. +Upon pre-agreement with a PG, you can request a one-time payment using the credit card information. +This method requests payment by submitting card information each time. +It is usually used by some merchants to avoid the hassle of authenticated payments or call centers +that obtain card information from customers via ARS to make a payment. +Recently, as more merchants are using a simple payment method for authenticated payments, +the use of key-in method is declining due to the inconvenience of having +to enter the card information every time. -
+
-**An agreement with the PG is required to use key-in payment.** - + **An agreement with the PG is required to use key-in payment.**
-

PGs that support key-in payment

- -- NICE Payments -- NHN KCP -- JTNET -- SettleBank -- DaouData +

PGs that support key-in payment

+ - NICE Payments + - NHN KCP + - JTNET + - SettleBank + - DaouData
-You can request a key-in payment by using the [**Non-authenticated payment (one-time) API**](../../api/api/request-non-authenticated-payment-one-time-api) or the PG window. +You can request a key-in payment by using +the [**Non-authenticated payment (one-time) API**][one-time-api] or the PG window. + +[one-time-api]: ../../api/api/request-non-authenticated-payment-one-time-api diff --git a/src/content/docs/en/auth/guide-1/subscription-payment-using-billing-key.mdx b/src/content/docs/en/auth/guide-1/subscription-payment-using-billing-key.mdx index af270062a..dd19ef28e 100644 --- a/src/content/docs/en/auth/guide-1/subscription-payment-using-billing-key.mdx +++ b/src/content/docs/en/auth/guide-1/subscription-payment-using-billing-key.mdx @@ -7,37 +7,38 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Hint from "~/components/Hint.astro"; -#### subscriptionsubscriptionYou can use the customer\_uid obtained through the [Get billing key](../../api/billing-key-api/api-1) or [Non-authenticated payment (one-time)](../../api/api/request-non-authenticated-payment-one-time-api) API to request a subscription or scheduled payment. +You can use the customer\_uid obtained through the [Get billing key](../../api/billing-key-api/api-1) +or [Non-authenticated payment (one-time)](../../api/api/request-non-authenticated-payment-one-time-api) API +to request a subscription or scheduled payment. -### **STEP 01.** Request payment +## **STEP 01.** Request payment You can schedule a payment for a desired time in the future by using the ChaiPort **Schedule payment API**. - ```javascript title="Node.js" + ```ts title="Node.js" // Schedule payment - axios({ - url: \`https://api.iamport.kr/subscribe/payments/schedule\`, - method: "post", - headers: { "Authorization": access_token }, // Add access token to authorization header - data: { - customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) - schedules: [ - { - merchant_uid: "order_monthly_0001", // Order ID - schedule_at: 1519862400, // Schedule time in UNIX timestamp. - amount: 8900, - name: "Recurring payment for monthly subscription", - buyer_name: "Hong Gildong", - buyer_tel: "01012345678", - buyer_email: "gildong@gmail.com" - } - ] - } - }); - - ``` + axios({ + url: `https://api.iamport.kr/subscribe/payments/schedule`, + method: "post", + headers: { Authorization: access_token }, // Add access token to authorization header + data: { + customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) + schedules: [ + { + merchant_uid: "order_monthly_0001", // Order ID + schedule_at: 1519862400, // Schedule time in UNIX timestamp. + amount: 8900, + name: "Recurring payment for monthly subscription", + buyer_name: "Hong Gildong", + buyer_tel: "01012345678", + buyer_email: "gildong@gmail.com", + }, + ], + }, + }); +``` @@ -56,41 +57,42 @@ result. - ```javascript title="server-side" + ```ts title="server-side" // Process POST request to "/iamport-callback/schedule" - app.post("/iamport-callback/schedule", async (req, res) => { - try { - const { imp_uid, merchant_uid } = req.body; - // Get access token - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" - data: { - imp_key: "imp_apikey", // REST API key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // Access token - // Get payment info from i'mport server using imp_uid - const getPaymentData = await axios({ - url: \`https://api.iamport.kr/payments/\${imp_uid}\`, // Pass imp_uid - method: "get", // GET method - headers: { "Authorization": access_token } // Add access token to authorization header - }); - const paymentData = getPaymentData.data.response; // Save payment info - const { status } = paymentData; - if (status === "paid") { // If payment is successful - // Save payment info in DB - await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Mongoose - ... - } else { - // Retry payment - } - } catch (e) { - res.status(400).send(e); - } + app.post("/iamport-callback/schedule", async (req, res) => { + try { + const { imp_uid, merchant_uid } = req.body; + // Get access token + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" + data: { + imp_key: "imp_apikey", // REST API key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // Access token + // Get payment info from i'mport server using imp_uid + const getPaymentData = await axios({ + url: `https://api.iamport.kr/payments/${imp_uid}`, // Pass imp_uid + method: "get", // GET method + headers: { Authorization: access_token }, // Add access token to authorization header }); + const paymentData = getPaymentData.data.response; // Save payment info + const { status } = paymentData; + if (status === "paid") { + // If payment is successful + // Save payment info in DB + await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Mongoose + } else { + // Retry payment + } + } catch (e) { + res.status(400).send(e); + } + }); ``` @@ -105,48 +107,49 @@ URL. - ```javascript title="server-side" - // Process POST request to "/iamport-callback/schedule" - app.post("/iamport-callback/schedule", async (req, res) => { - try { - const { imp_uid, merchant_uid } = req.body; - // Get access token - /* ...Omitted ... */ - // Get payment info from i'mport server using imp_uid - /* ...Omitted ... */ - const paymentData = getPaymentData.data.response; // Save payment info - const { status } = paymentData; - if (status === "paid") { // If payment is successful - // Save payment info in DB - await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Mongoose - ... - // Schedule next payment - axios({ - url: "{URL to receive payment schedule}", // Example: https://api.iamport.kr/subscribe/payments/schedule - method: "post", - headers: { "Authorization": access_token }, // Add access token to authorization header - data: { - customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) - schedules: [ - { - merchant_uid: "order_monthly_0001", // Order ID - schedule_at: 1519516800, // Schedule time in UNIX timestamp. - amount: 8900, - name: "Recurring payment for monthly subscription", - ... - } - ] - } - }); - } else { - // Retry payment - } - } catch (e) { - res.status(400).send(e); - } - }); + ```ts title="server-side" + // Process POST request to "/iamport-callback/schedule" + app.post("/iamport-callback/schedule", async (req, res) => { + try { + const { imp_uid, merchant_uid } = req.body; + // Get access token + /* ...Omitted ... */ + // Get payment info from i'mport server using imp_uid + /* ...Omitted ... */ + const paymentData = getPaymentData.data.response; // Save payment info + const { status } = paymentData; + if (status === "paid") { + // If payment is successful + // Save payment info in DB + await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Mongoose + // Schedule next payment + axios({ + url: "{URL to receive payment schedule}", // Example: https://api.iamport.kr/subscribe/payments/schedule + method: "post", + headers: { Authorization: access_token }, // Add access token to authorization header + data: { + customer_uid: "gildong_0001_1234", // Unique ID for each card (billing key) + schedules: [ + { + merchant_uid: "order_monthly_0001", // Order ID + schedule_at: 1519516800, // Schedule time in UNIX timestamp. + amount: 8900, + name: "Recurring payment for monthly subscription", + }, + ], + }, + }); + } else { + // Retry payment + } + } catch (e) { + res.status(400).send(e); + } + }); ``` - The above example processes the webhook event that occurs when a scheduled payment is attempted. If the scheduled payment is completed successfully, the payment information is saved in the database and the next payment is scheduled. + The above example processes the webhook event that occurs when a scheduled payment is attempted. + If the scheduled payment is completed successfully, the payment information is saved + in the database and the next payment is scheduled. diff --git a/src/content/docs/en/auth/guide-2/readme.mdx b/src/content/docs/en/auth/guide-2/readme.mdx index f77979dbf..22a98ceb1 100644 --- a/src/content/docs/en/auth/guide-2/readme.mdx +++ b/src/content/docs/en/auth/guide-2/readme.mdx @@ -4,134 +4,125 @@ description: Learn how to cancel a payment using the i'mport payment cancel API. --- import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### **STEP 01.** Request cancellation +## **STEP 01.** Request cancellation Request a refund to the server with the required refund information. In the case of virtual account refund, you need to specify additional parameters for the refund deposit account information. The -following example requests a refund with the required refund information.\ +following example requests a refund with the required refund information.\\ - -```html title="client-side" - - - -``` - - - - - - -```jsx title="client-side" -class CancelPay extends React.Component { - cancelPay = () => { - axios({ - url: "{URL to receive refund request}", // Example: http://www.myservice.com/payments/cancel - method: "POST", - headers: { - "Content-Type": "application/json, - }, - data: { - merchant_uid: "mid_" + new Date().getTime(), // Order ID - cancel_request_amount: 2000, // Refund amount - reason: "Refund for test payment" // Reason for the refund - refund_holder: "Jone Doe", // [required for virtual account refund] refund account holder's name - refund_bank: "88" // [required for virtual account refund] refund account bank code (e.g. Shinhan Bank is 88 for KG Inicis) - refund_account: "56211105948400" // [required for virtual account refund] refund account number + + ```html title="client-side" + + + + ``` + + + - + + ```tsx title="client-side" + class CancelPay extends React.Component { + cancelPay = () => { + axios({ + url: "{URL to receive refund request}", // Example: http://www.myservice.com/payments/cancel + method: "POST", + headers: { + "Content-Type": "application/json", + }, + data: { + merchant_uid: "mid_" + new Date().getTime(), // Order ID + cancel_request_amount: 2000, // Refund amount + reason: "Refund for test payment", // Reason for the refund + refund_holder: "Jone Doe", // [required for virtual account refund] refund account holder's name + refund_bank: "88", // [required for virtual account refund] refund account bank code (e.g. Shinhan Bank is 88 for KG Inicis) + refund_account: "56211105948400", // [required for virtual account refund] refund account number + }, + }); + }; + render() { + return ; + } + } + ``` + ### **STEP 02.** Get payment information Assume that there is a **`Payments`** table that stores payment information as follows: -```javascript title="server-side" +```js title="server-side" /* ... model/payments.js ... */ - var mongoose = require('mongoose'); - var Schema = mongoose.Schema; - ... - var PaymentsSchema = new Schema({ - imp_uid: String, // i'mport unique ID (unique key for refund) - merchant_uid: String, // order ID (used to query payment information) - amount: { type: Number, default: 0 }, // Payment amount (for calculating refundable amount) - cancel_amount: { type: Number, default: 0 }, // Total amount refunded (for calculating refundable amount) - ... - }); - ... - module.exports = mongoose.model('Payments', PaymentsSchema); +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const PaymentsSchema = new Schema({ + imp_uid: String, // i'mport unique ID (unique key for refund) + merchant_uid: String, // order ID (used to query payment information) + amount: { type: Number, default: 0 }, // Payment amount (for calculating refundable amount) + cancel_amount: { type: Number, default: 0 }, // Total amount refunded (for calculating refundable amount) +}); +module.exports = mongoose.model("Payments", PaymentsSchema); ``` Query the payment information of the order from the **`Payments`** table using the order ID (**`merchant_uid`**) received from the client. -```javascript title="server-side" - /* ... Omitted ... */ - var Payments = require('./models/payments'); - app.post('/payments/cancel', async (req, res, next) => { - try { - /* Get access token */ - /* ... Omitted ... */ - /* Get payment information */ - const { body } = req; - const { merchant_uid } = body; // Order ID from the client - Payments.find({ merchant_uid }, async function(err, payment) { - if (err) { - return res.json(err); - } - const paymentData = payment[0]; // Save payment information - /* Call i'mport REST API to request refund */ - ... - }); - } catch (error) { - res.status(400).send(error); - } - }); - +```js title="server-side" +/* ... Omitted ... */ +const Payments = require("./models/payments"); +app.post("/payments/cancel", async (req, res, next) => { + try { + /* Get access token */ + /* ... Omitted ... */ + /* Get payment information */ + const { body } = req; + const { merchant_uid } = body; // Order ID from the client + Payments.find({ merchant_uid }, async function (err, payment) { + if (err) { + return res.json(err); + } + const paymentData = payment[0]; // Save payment information + /* Call i'mport REST API to request refund */ + }); + } catch (error) { + res.status(400).send(error); + } +}); ``` ### **STEP 03.** Request refund to i'mport server -To request a refund, you must first get a [**REST API access token**](../../api/rest-api-access-token). Use the **`access token`** to call the [**i'mport cancel ****API**](../../api/payment-api/cancel-payment-api) to request a refund. +To request a refund, you must first get a [**REST API access token**](../../api/rest-api-access-token). Use the **`access token`** to call the [**i'mport cancel** **API**](../../api/payment-api/cancel-payment-api) to request a refund. -**Note - Refunding mobile micropayments** - -- If a refund is **requested on a different month from when the payment is made, a full refund is not allowed**. For example, a payment made on January 31st is not refundable on February 1st. + **Note - Refunding mobile micropayments** + - If a refund is **requested on a different month from when the payment is made, a full refund is not allowed**. For example, a payment made on January 31st is not refundable on February 1st. **Setting parameters for refund request:** @@ -155,66 +146,66 @@ To request a refund, you must first get a [**REST API > refund request will fail. If the `checksum` is not specified, the verification is not performed. -**Reason for entering checksum** + **Reason for entering checksum** -`checksum` is not required, but it is recommended for **comparing the refundable amount between the merchant server and the i'mport server**. + `checksum` is not required, but it is recommended for **comparing the refundable amount between the merchant server and the i'mport server**. -For example, consider the case when a partial refund request of 1,000 won for a 10,000 won payment was completed on the i'mport server, but not on the merchant server due to a server or database error. In this case, the checksum of the i'mport server is changed to 9000, but that of the merchant server remains 10,000. - -If you attempt to make a refund request with `checksum(10000)`, the request will fail because the value does not match the `checksum(9000)` of the i'mport server. + For example, consider the case when a partial refund request of 1,000 won for a 10,000 won payment was completed on the i'mport server, but not on the merchant server due to a server or database error. In this case, the checksum of the i'mport server is changed to 9000, but that of the merchant server remains 10,000. + If you attempt to make a refund request with `checksum(10000)`, the request will fail because the value does not match the `checksum(9000)` of the i'mport server. #### The following example requests a refund. -```javascript title="Node.js" - /* ... Omitted ... */ - app.post('/payments/cancel', async (req, res, next) => { - try { - /* Get access token */ +```ts title="Node.js" +/* ... Omitted ... */ +app.post("/payments/cancel", async (req, res, next) => { + try { + /* Get access token */ + /* ... Omitted ... */ + /* Get payment information */ + const { body } = req; + const { merchant_uid, reason, cancel_request_amount } = body; // Order ID from the client, reason for refund, refund amount + Payments.find({ merchant_uid }, async function (err, payment) { /* ... Omitted ... */ - /* Get payment information */ - const { body } = req; - const { merchant_uid, reason, cancel_request_amount } = body; // Order ID from the client, reason for refund, refund amount - Payments.find({ merchant_uid }, async function(err, payment) { - /* ... Omitted ... */ - const paymentData = payment[0]; // Save payment information - const { imp_uid, amount, cancel_amount } = paymentData; // Get imp_uid, amount(paid amount), cancel_amount(total refund amount) from payment information - const cancelableAmount = amount - cancel_amount; // Refundable amount (= paid amount - total refund amount) - if (cancelableAmount <= 0) { // If refundable amount is 0 - return res.status(400).json({ message: "This order has already been fully refunded." }); - } - ... - /* Call i'mport REST API to request refund */ - const getCancelData = await axios({ - url: "{URL to receive refund request}", // Example: http://www.myservice.com/payments/cancel - method: "post", - headers: { - "Content-Type": "application/json", - "Authorization": access_token // Access token from i'mport server - }, - data: { - reason, // Reason for refund from client - imp_uid, // Unique key for refund - amount: cancel_request_amount, // Requested refund amount - checksum: cancelableAmount // [Recommended] refundable amount - } - }); - const { response } = getCancelData.data; // Refund result - /* Save refund result */ - ... + const paymentData = payment[0]; // Save payment information + const { imp_uid, amount, cancel_amount } = paymentData; // Get imp_uid, amount(paid amount), cancel_amount(total refund amount) from payment information + const cancelableAmount = amount - cancel_amount; // Refundable amount (= paid amount - total refund amount) + if (cancelableAmount <= 0) { + // If refundable amount is 0 + return res + .status(400) + .json({ message: "This order has already been fully refunded." }); + } + /* Call i'mport REST API to request refund */ + const getCancelData = await axios({ + url: "{URL to receive refund request}", // Example: http://www.myservice.com/payments/cancel + method: "post", + headers: { + "Content-Type": "application/json", + Authorization: access_token, // Access token from i'mport server + }, + data: { + reason, // Reason for refund from client + imp_uid, // Unique key for refund + amount: cancel_request_amount, // Requested refund amount + checksum: cancelableAmount, // [Recommended] refundable amount + }, }); - } catch (error) { - res.status(400).send(error); - } - }); + const { response } = getCancelData.data; // Refund result + /* Save refund result */ + }); + } catch (error) { + res.status(400).send(error); + } +}); ``` ### **STEP 04.** Save refund result -#### After the refund process is completed, save the result in the database as follows: +After the refund process is completed, save the result in the database as follows: -```javascript title="Node.js" +```ts title="Node.js" /* ... Omitted ... */ app.post("/payments/cancel", async (req, res, next) => { try { @@ -238,7 +229,7 @@ app.post("/payments/cancel", async (req, res, next) => { return res.json(err); } res.json(payment); // Return refund result to the client - } + }, ); }); } catch (error) { @@ -248,10 +239,9 @@ app.post("/payments/cancel", async (req, res, next) => { ``` -**Note - When cancelling a payment** - -Even if a **response code of 200 (OK)** is returned for the REST API ([**POST https://api.iamport.kr/payments/cancel**](https://api.iamport.kr/#!/payments/cancelPayment)) request, a non-zero code in the response body **means that the refund has failed**. You can check the reason for the failure in the message of the body. + **Note - When cancelling a payment** + Even if a **response code of 200 (OK)** is returned for the REST API ([**POST https://api.iamport.kr/payments/cancel**](https://api.iamport.kr/#!/payments/cancelPayment)) request, a non-zero code in the response body **means that the refund has failed**. You can check the reason for the failure in the message of the body. ### **STEP 04.** Handle response for refund request @@ -259,46 +249,47 @@ Even if a **response code of 200 (OK)** is returned for the REST API ([**POST ht Add the client-side logic to handle the response from the server as follows: - -```html title="client-side" - - - -``` - - - - -```jsx title="client-side" -class CancelPay extends React.Component { - cancelPay = () => { - axios({ - /* ... Omitted ... */ - }).then(response => { // If refund is successful - alert("Refund successful"); - }).catch(error => { // If refund fails - alert("Refund failed"); - }); - } - ... - render() { - return ; - } -} -``` - - + + ```html title="client-side" + + + + ``` + + + + ```tsx title="client-side" + class CancelPay extends React.Component { + cancelPay = () => { + axios({ + /* ... Omitted ... */ + }) + .then((response) => { + // If refund is successful + alert("Refund successful"); + }) + .catch((error) => { + // If refund fails + alert("Refund failed"); + }); + }; + render() { + return ; + } + } + ``` + diff --git a/src/content/docs/en/auth/guide-2/refund.mdx b/src/content/docs/en/auth/guide-2/refund.mdx index 871f8d3bd..6ace37b4a 100644 --- a/src/content/docs/en/auth/guide-2/refund.mdx +++ b/src/content/docs/en/auth/guide-2/refund.mdx @@ -6,84 +6,91 @@ description: Request a refund for a virtual account payment. import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -### For a virtual account refund, you must sign up for the v**irtual account special service** provided by each PG. +For a virtual account refund, you must sign up for the **virtual account special service** +provided by each PG. -**Why do you need to sign up for a virtual account special service?** + **Why do you need to sign up for a virtual account special service?** -Unlike credit cards, fees for payment/refund are not subject to refund for virtual account refund. For example, for a 10,000 won payment, the merchant: + Unlike credit cards, fees for payment/refund are not subject to refund for virtual account refund. For example, for a 10,000 won payment, the merchant: -- receives 9700 won (10,000 won - virtual account issuance fee of 300 won) from the PG at the time of payment. -- pays 10,300 won (10,000 won to be refunded + 300 won remittance fee for the refund account) to the PG company when the payment is refunded. - -To prevent confusion that may arise regarding fees for virtual account refund, PGs provide **virtual account refunds only to merchants who are signed up for the virtual account special service**. + - receives 9700 won (10,000 won - virtual account issuance fee of 300 won) from the PG at the time of payment. + - pays 10,300 won (10,000 won to be refunded + 300 won remittance fee for the refund account) to the PG company when the payment is refunded. + To prevent confusion that may arise regarding fees for virtual account refund, PGs provide **virtual account refunds only to merchants who are signed up for the virtual account special service**. -Since a virtual account transaction involves a one-way payment method, the target account for refund is unknown. Hence, you must specify the following refund account information in addition to the refund amount. +Since a virtual account transaction involves a one-way payment method, +the target account for refund is unknown. +Hence, you must specify the following refund account information in addition to the refund amount. - `refund_holder`: Refund account holder's name - `refund_account`: Refund account number - `refund_bank`: Refund account bank code -**Note - Virtual account bank codes by PG** - -Since the **virtual account bank code** varies by PG even for the same bank, be sure to check the [**Bank codes by PG**](../../tips/bank-codes-by-pg) list. + **Note - Virtual account bank codes by PG** + Since the **virtual account bank code** varies by PG even for the same bank, be sure to check the [**Bank codes by PG**](../../tips/bank-codes-by-pg) list. -#### The following example requests for a virtual account refund. - -```javascript title="Node.js" - /* ... Omitted ... */ - app.post('/payments/cancel', async (req, res, next) => { - try { - /* Get access token */ +The following example requests for a virtual account refund. + +```ts title="Node.js" +/* ... Omitted ... */ +app.post("/payments/cancel", async (req, res, next) => { + try { + /* Get access token */ + /* ... Omitted ... */ + /* Get payment information */ + const { body } = req; + const { + merchant_uid, + reason, + cancel_request_amount, + refund_holder, + refund_bank, + refund_account, + } = body; // Order ID from the client, reason for refund, refund amount, virtual accoun info (account holder, account number, bank code + Payments.find({ merchant_uid }, async function (err, payment) { /* ... Omitted ... */ - /* Get payment information */ - const { body } = req; - const { merchant_uid, reason, cancel_request_amount, refund_holder, refund_bank, refund_account } = body; // Order ID from the client, reason for refund, refund amount, virtual accoun info (account holder, account number, bank code - Payments.find({ merchant_uid }, async function(err, payment) { - /* ... Omitted ... */ - const paymentData = payment[0]; // Save payment information - const { imp_uid, amount, cancel_amount } = paymentData; // Get imp_uid, amount(paid amount), cancel_amount(total refund amount) from payment information - const cancelableAmount = amount - cancel_amount; // Refundable amount (= paid amount - total refund amount) - if (cancelableAmount <= 0) { // If refundable amount is 0 - return res.status(400).json({ message: "This order has already been fully refunded." }); - } - ... - /* Call i'mport REST API to request refund */ - const getCancelData = await axios({ - url: "https://api.iamport.kr/payments/cancel", - method: "post", - headers: { - "Content-Type": "application/json", - "Authorization": access_token // Access token from i'mport server - }, - data: { - reason, // Reason for refund from client - imp_uid, // Unique key for refund - amount: cancel_request_amount, // Requested refund amount - checksum: cancelableAmount, // [Recommended] refundable amount - refund_holder, // [required when refunding virtual account payment] refund account holder's name - refund_bank, // [required for virtual account refund] refund account bank code (e.g. Shinhan Bank is 88 for KG Inicis) - refund_account // [required for virtual account refund] refund account number - } - }); - const { response } = getCancelData.data; // Refund result - /* Save refund result */ - ... + const paymentData = payment[0]; // Save payment information + const { imp_uid, amount, cancel_amount } = paymentData; // Get imp_uid, amount(paid amount), cancel_amount(total refund amount) from payment information + const cancelableAmount = amount - cancel_amount; // Refundable amount (= paid amount - total refund amount) + if (cancelableAmount <= 0) { + // If refundable amount is 0 + return res + .status(400) + .json({ message: "This order has already been fully refunded." }); + } + /* Call i'mport REST API to request refund */ + const getCancelData = await axios({ + url: "https://api.iamport.kr/payments/cancel", + method: "post", + headers: { + "Content-Type": "application/json", + Authorization: access_token, // Access token from i'mport server + }, + data: { + reason, // Reason for refund from client + imp_uid, // Unique key for refund + amount: cancel_request_amount, // Requested refund amount + checksum: cancelableAmount, // [Recommended] refundable amount + refund_holder, // [required when refunding virtual account payment] refund account holder's name + refund_bank, // [required for virtual account refund] refund account bank code (e.g. Shinhan Bank is 88 for KG Inicis) + refund_account, // [required for virtual account refund] refund account number + }, }); - } catch (error) { - res.status(400).send(error); - } - }); + const { response } = getCancelData.data; // Refund result + /* Save refund result */ + }); + } catch (error) { + res.status(400).send(error); + } +}); ``` -If the virtual account refund request is successful, the refund amount will be deposited (from PG) into the specified refund account normally in about one working day. +If the virtual account refund request is successful, the refund amount will be deposited (from PG) +into the specified refund account normally in about one working day. -
+
diff --git a/src/content/docs/en/auth/guide/1.mdx b/src/content/docs/en/auth/guide/1.mdx index 5273dd300..e447baf7e 100644 --- a/src/content/docs/en/auth/guide/1.mdx +++ b/src/content/docs/en/auth/guide/1.mdx @@ -8,7 +8,7 @@ description: >- import Youtube from "~/components/gitbook/Youtube.astro"; import Hint from "~/components/Hint.astro"; -#### Add the following JS library to the client-side page for payment integration. +Add the following JS library to the client-side page for payment integration. You must first install **jQuery 1.0 or later version**. diff --git a/src/content/docs/en/auth/guide/2.mdx b/src/content/docs/en/auth/guide/2.mdx index 8fa2ce4f2..c01c5da6e 100644 --- a/src/content/docs/en/auth/guide/2.mdx +++ b/src/content/docs/en/auth/guide/2.mdx @@ -7,20 +7,20 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Hint from "~/components/Hint.astro"; -#### On the checkout page, initialize the IMP object using your [Merchant ID](../../ready/3.). +On the checkout page, initialize the IMP object using your [Merchant ID](../../ready/3.). - ```javascript title="Client-side" - var IMP = window.IMP; // Can be omitted - IMP.init("Merchant ID"); // Example: imp00000000 + ```ts title="Client-side" + const IMP = window.IMP; // Can be omitted + IMP.init("Merchant ID"); // Example: imp00000000 ``` - ```javascript title="Client-side" - const IMP = window.IMP; // Can be omitted - IMP.init("{Merchant ID}"); // Example: imp00000000a + ```ts title="Client-side" + const IMP = window.IMP; // Can be omitted + IMP.init("{Merchant ID}"); // Example: imp00000000a ``` diff --git a/src/content/docs/en/auth/guide/3.mdx b/src/content/docs/en/auth/guide/3.mdx index cf06e1972..aa2d46999 100644 --- a/src/content/docs/en/auth/guide/3.mdx +++ b/src/content/docs/en/auth/guide/3.mdx @@ -16,41 +16,39 @@ the first argument of the **request\_pay** function. - ```javascript - + }, + ); ``` - ```jsx - class RequestPay extends React.Component { - requestPay = () => { - IMP.request_pay({ // param + ```tsx + export class RequestPay extends React.Component { + requestPay = () => { + IMP.request_pay( + { + // param pg: "kcp", pay_method: "card", merchant_uid: "ORD20180131-0000011", @@ -60,54 +58,53 @@ the first argument of the **request\_pay** function. buyer_name: "Hong Gildong", buyer_tel: "010-4242-4242", buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "01181" - }, rsp => { // callback + buyer_postcode: "01181", + }, + (rsp) => { + // callback if (rsp.success) { - ..., // Payment is successful - ... } else { - ..., // Payment failed - ... } - }); - } + }, + ); + }; + } ``` - ```javascript - + ```ts + export default { + methods: { + requestPay: function () { + IMP.request_pay( + { + // param + pg: "kcp", + pay_method: "card", + merchant_uid: "ORD20180131-0000011", + name: "Norway swivel chair", + amount: 64900, + buyer_email: "gildong@gmail.com", + buyer_name: "Hong Gildong", + buyer_tel: "010-4242-4242", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "01181", + }, + (rsp) => { + // callback + if (rsp.success) { + // Payment is successful + } else { + // Payment failed + } + }, + ); + }, + }, + }; ``` @@ -115,11 +112,11 @@ the first argument of the **request\_pay** function. **Note - Creating an order ID (merchant\_uid)** - - The order number must always be assigned a **unique** **value** when the payment window is requested. + - The order number must always be assigned a **unique value** when the payment window is requested. - After the payment process is complete, the server uses the order ID to retrieve the order information for **payment fraud check**. Be sure to create a **unique ID** on the merchant server and **store it in the DB**. -#### The following is the above sample code with the Pay button added. +The following is the above sample code with the Pay button added. ```html title="sample.html" diff --git a/src/content/docs/en/auth/guide/4/iframe.mdx b/src/content/docs/en/auth/guide/4/iframe.mdx index caa36d444..dac52015e 100644 --- a/src/content/docs/en/auth/guide/4/iframe.mdx +++ b/src/content/docs/en/auth/guide/4/iframe.mdx @@ -15,7 +15,8 @@ import Hint from "~/components/Hint.astro";
-#### Most payments that are processed in the PC environment can receive payment results through the callback function, which is the second argument of the request\_pay() function. +Most payments that are processed in the PC environment can receive payment results +through the callback function, which is the second argument of the request\_pay() function. For **PayPal** payments, the payment window is loaded as a **pop-up (new window)** in a PC environment and you can also receive the payment result through **m\_redirect\_url**. @@ -26,36 +27,47 @@ import Hint from "~/components/Hint.astro"; - ```javascript title="client-side" - IMP.request_pay({ - /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { // payment successful: payment accepted or virtual account issued - // HTTP request with jQuery - jQuery.ajax({ - url: "{Merchant endpoint that receives server's payment info}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { - imp_uid: rsp.imp_uid, // Payment ID - merchant_uid: rsp.merchant_uid // Order ID - } - }).done(function (data) { - // Merchant server payment API call is successful + ```ts title="client-side" + IMP.request_pay( + { + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // payment successful: payment accepted or virtual account issued + // HTTP request with jQuery + jQuery + .ajax({ + url: "{Merchant endpoint that receives server's payment info}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { + imp_uid: rsp.imp_uid, // Payment ID + merchant_uid: rsp.merchant_uid, // Order ID + }, }) - } else { - alert("Payment failed. Error: " + rsp.error_msg); - } - }); + .done(function (data) { + // Merchant server payment API call is successful + console.log(data); + }); + } else { + alert("Payment failed. Error: " + rsp.error_msg); + } + }, + ); ``` - ```javascript title="client-side" - IMP.request_pay({ + ```ts title="client-side" + IMP.request_pay( + { /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { + }, + (rsp) => { + // callback + if (rsp.success) { // HTTP request with axios axios({ url: "{Endpoint that receives server's payment info}", @@ -63,15 +75,17 @@ import Hint from "~/components/Hint.astro"; headers: { "Content-Type": "application/json" }, data: { imp_uid: rsp.imp_uid, - merchant_uid: rsp.merchant_uid - } + merchant_uid: rsp.merchant_uid, + }, }).then((data) => { // Server payment API call is successful - }) + console.log(data); + }); } else { - alert(\`Payment failed. Error: \${rsp.error_msg}\`); + alert(`Payment failed. Error: ${rsp.error_msg}`); } - }); + }, + ); ``` @@ -85,5 +99,6 @@ above. > For information about the response parameter passed to the **callback** function, refer to [**rsp**](../../../sdk/javascript-sdk/undefined-1). - The final payment result logic processing must be handled stably by using a [**webhook**](../../../result/webhook). If you don't set up a webhook, you may fail to receive the payment result. + The final payment result logic processing must be handled stably by using a [**webhook**](../../../result/webhook). + If you don't set up a webhook, you may fail to receive the payment result. diff --git a/src/content/docs/en/auth/guide/4/redirect.mdx b/src/content/docs/en/auth/guide/4/redirect.mdx index 822f9876a..4e4d4c695 100644 --- a/src/content/docs/en/auth/guide/4/redirect.mdx +++ b/src/content/docs/en/auth/guide/4/redirect.mdx @@ -9,7 +9,6 @@ import ContentRef from "~/components/gitbook/ContentRef.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; -import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Hint from "~/components/Hint.astro"; @@ -22,25 +21,30 @@ import Hint from "~/components/Hint.astro"; - ```javascript title="client-side" - IMP.request_pay({ - /* ...Omitted... */, - m_redirect_url: "{redirect URL}" - }, /* callback */); // callback is not called + ```ts title="client-side" + IMP.request_pay( + { + /* ...Omitted... */ + m_redirect_url: "{redirect URL}", + } /* callback */, + ); // callback is not called ``` - ```javascript title="client-side" - IMP.request_pay({ - /* ...Omitted... */, - m_redirect_url: "{redirect URL}" - }, /* callback */); // callback is not called + ```ts title="client-side" + IMP.request_pay( + { + /* ...Omitted... */ + m_redirect_url: "{redirect URL}", + } /* callback */, + ); // callback is not called ``` -If **m\_redirect\_url** is specified as the **request\_pay** function parameter as above, the payment result is sent to the URL address in the form of a query string after **payment is completed**. +If **m\_redirect\_url** is specified as the **request\_pay** function parameter as above, +the payment result is sent to the URL address in the form of a query string after **payment is completed**. **What is a query string?** @@ -53,9 +57,9 @@ If **m\_redirect\_url** is specified as the **request\_pay** function parameter You can receive the following parameters through the specified URL as a query string. - ### Parameters + ## Parameters - #### Query + ### Query i'mport payment ID @@ -80,13 +84,13 @@ The following is an example of a redirecting URL based on the query string. - ```url + ```sh curl https://myservice.com/payments/complete?imp_uid=unique_iamport_paymentID&merchant_uid=unique_merchant_orderID&imp_success=true ``` - ``` + ```sh curl https://myservice.com/payments/complete?imp_uid=unique_iamport_paymentID&merchant_uid=unique_merchant_orderID&imp_success=false&error_code=error_code(none_defined_currently)&error_msg=error_message ``` @@ -105,16 +109,26 @@ The following is an example of a redirecting URL based on the query string. > The `payment process is complete` when: > > 1. **Payment is successful** (Status: `paid`, imp\_success: `true`) +> > 2. **Payment fails** (Status: `failed`, imp\_success: `false`) +> > 3. **Payment window fails to open** due to PG module setting error +> > 4. User **terminates the payment process** by clicking the X or Cancel button -> 5. **Payment is suspended** due to invalid card information, limit exceeded, insufficient balance, etc. +> +> 5. **Payment is suspended** due to invalid card information, +> limit exceeded, insufficient balance, etc. +> > 6. **Virtual account is issued** (status: `ready`, imp\_success: `true`) **Note - imp\_success parameter** - The `imp_success` parameter indicates **whether or not the payment process completed successfully**. However, since the payment page is opened by calling a JavaScript function from the client-side, **the payment amount can be forged** by a malicious user. Hence, **this value should not be used to determine the success of the payment**. Depending on the value of `imp_success`, determine the payment success as follows: + The `imp_success` parameter indicates **whether or not the payment process completed successfully**. + However, since the payment page is opened by calling a JavaScript function from the client-side, + **the payment amount can be forged** by a malicious user. + Hence, **this value should not be used to determine the success of the payment**. + Depending on the value of `imp_success`, determine the payment success as follows: - imp\_success = true: First send payment information (imp\_uid, merchant\_uid) to the server to verify the payment amount, and then finalize payment success. - imp\_success = false: Alert the user that the payment failed. diff --git a/src/content/docs/en/auth/guide/5.mdx b/src/content/docs/en/auth/guide/5.mdx index 7489452cb..d12d952e8 100644 --- a/src/content/docs/en/auth/guide/5.mdx +++ b/src/content/docs/en/auth/guide/5.mdx @@ -10,24 +10,27 @@ import Hint from "~/components/Hint.astro"; Based on the payment information from the client, the server verifies the **payment amount for fraud** and saves the payment information in the database if needed. The following are the steps for verifying the payment information. - Server receives the i'mport payment ID (**imp\_uid**) and order ID (**merchant\_uid**) + - Call the [**Get payment API**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) to get the payment details. + - Based on the response, compare the actual payment amount with the payment request amount (from merchant's database). -### **STEP 01** Server receives payment result +## **STEP 01** Server receives payment result Example of receiving a POST request to the merchant endpoint URL that receives the payment information - ```javascript title="server-side" + ```ts title="server-side" app.use(bodyParser.json()); // "{Merchant endpoint that receives server's payment info}" POST request receiver app.post("/payments/complete", async (req, res) => { try { // Get imp_uid, merchant_uid from req.body const { imp_uid, merchant_uid } = req.body; + console.log(imp_uid, merchant_uid); } catch (e) { res.status(400).send(e); } @@ -42,41 +45,40 @@ Based on the payment information from the client, the server verifies the Example of calling the [**Get payment**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) **API** with the i'mport **payment ID (imp\_uid)** to retrieve the payment info. - ```javascript title="server-side" + ```ts title="server-side" app.use(bodyParser.json()); - ... - app.post("/payments/complete", async (req, res) => { - try { - // Get imp_uid, merchant_uid from req.body - const { imp_uid, merchant_uid } = req.body; - ... - // Get access token - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, - data: { - imp_key: "imp_apikey", // REST API key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // access token - ... - // Get payment info from i'mport server using imp_uid - const getPaymentData = await axios({ - // Pass imp_uid - url: \`https://api.iamport.kr/payments/\${imp_uid}\`, - // GET method - method: "get", - // Add access toke to Authorization header - headers: { "Authorization": access_token } - }); - const paymentData = getPaymentData.data.response; // Payment info - ... - } catch (e) { - res.status(400).send(e); - } + app.post("/payments/complete", async (req, res) => { + try { + // Get imp_uid, merchant_uid from req.body + const { imp_uid, merchant_uid } = req.body; + console.log(imp_uid, merchant_uid); + // Get access token + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, + data: { + imp_key: "imp_apikey", // REST API key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // access token + // Get payment info from i'mport server using imp_uid + const getPaymentData = await axios({ + // Pass imp_uid + url: `https://api.iamport.kr/payments/${imp_uid}`, + // GET method + method: "get", + // Add access toke to Authorization header + headers: { Authorization: access_token }, }); + const paymentData = getPaymentData.data.response; // Payment info + console.log(paymentData); + } catch (e) { + res.status(400).send(e); + } + }); ``` @@ -99,49 +101,60 @@ Based on the payment information from the client, the server verifies the Example of comparing the actual payment amount with the payment request amount, performing fraud check on the payment amount, and saving the data in the DB. - ```javascript title="server-side" + ```ts title="server-side" app.use(bodyParser.json()); - ... - app.post("/payments/complete", async (req, res) => { - try { - // Get imp_uid, merchant_uid from req.body - const { imp_uid, merchant_uid } = req.body; - // Get access token - /* ...Omitted... */ - // Get payment info from iamport server using imp_uid - /* ...Omitted... */ - const paymentData = getPaymentData.data.response; // Payment info - ... - // Get the requested payment amount from the DB - const order = await Orders.findById(paymentData.merchant_uid); - const amountToBePaid = order.amount; // Requested payment amount - ... - // Verify payment - const { amount, status } = paymentData; - // If amount matches. Processed amount === Requested amount - if (amount === amountToBePaid) { - await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Save payment info to DB - ... - switch (status) { - case "ready": // Issue virtual account - // Save virtual account info in DB - const { vbank_num, vbank_date, vbank_name } = paymentData; - await Users.findByIdAndUpdate("/* customer id */", { $set: { vbank_num, vbank_date, vbank_name }}); - // Send virtual account issuance text message - SMS.send({ text: \`Virtual account issued successfully. Account info \${vbank_num} \${vbank_date} \${vbank_name}\`}); - res.send({ status: "vbankIssued", message: "Virtual account issued successfully" }); - break; - case "paid": // Payment complete - res.send({ status: "success", message: "General payment successful" }); - break; - } - } else { // Amount mismatch. Forged/falsified payment. - throw { status: "forgery", message: "Forged/falsified payment attempted" }; + app.post("/payments/complete", async (req, res) => { + try { + // Get imp_uid, merchant_uid from req.body + const { imp_uid, merchant_uid } = req.body; + console.log(imp_uid, merchant_uid); + // Get access token + /* ...Omitted... */ + // Get payment info from iamport server using imp_uid + /* ...Omitted... */ + const paymentData = getPaymentData.data.response; // Payment info + // Get the requested payment amount from the DB + const order = await Orders.findById(paymentData.merchant_uid); + const amountToBePaid = order.amount; // Requested payment amount + // Verify payment + const { amount, status } = paymentData; + // If amount matches. Processed amount === Requested amount + if (amount === amountToBePaid) { + await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Save payment info to DB + switch (status) { + case "ready": // Issue virtual account + // Save virtual account info in DB + const { vbank_num, vbank_date, vbank_name } = paymentData; + await Users.findByIdAndUpdate("/* customer id */", { + $set: { vbank_num, vbank_date, vbank_name }, + }); + // Send virtual account issuance text message + SMS.send({ + text: `Virtual account issued successfully. Account info ${vbank_num} ${vbank_date} ${vbank_name}`, + }); + res.send({ + status: "vbankIssued", + message: "Virtual account issued successfully", + }); + break; + case "paid": // Payment complete + res.send({ + status: "success", + message: "General payment successful", + }); + break; } - } catch (e) { - res.status(400).send(e); + } else { + // Amount mismatch. Forged/falsified payment. + throw { + status: "forgery", + message: "Forged/falsified payment attempted", + }; } - }); + } catch (e) { + res.status(400).send(e); + } + }); ``` diff --git a/src/content/docs/en/auth/guide/6.mdx b/src/content/docs/en/auth/guide/6.mdx index 9dd2dd4f6..b04751481 100644 --- a/src/content/docs/en/auth/guide/6.mdx +++ b/src/content/docs/en/auth/guide/6.mdx @@ -16,55 +16,69 @@ following example. - ```javascript title="client-side" - IMP.request_pay({ + ```ts title="client-side" + IMP.request_pay( + { /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { // payment successful: payment accepted or virtual account issued - // jQuery HTTP request - jQuery.ajax({ + }, + function (rsp) { + // callback + if (rsp.success) { + // payment successful: payment accepted or virtual account issued + // jQuery HTTP request + jQuery + .ajax({ /* ...Omitted... */ - }).done(function(data) { // response processing - switch(data.status) { - case: "vbankIssued": + }) + .done(function (data) { + // response processing + switch (data.status) { + case "vbankIssued": // Virtual account issued break; - case: "success": + case "success": // Payment successful break; } }); } else { - alert("Payment failed. Error message: " + rsp.error_msg); + alert("Payment failed. Error message: " + rsp.error_msg); } - }); + }, + ); ``` - ```javascript title="client-side" - IMP.request_pay({ + ```ts title="client-side" + IMP.request_pay( + { /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { // payment successful: payment accepted or virtual account issued + }, + (rsp) => { + // callback + if (rsp.success) { + // payment successful: payment accepted or virtual account issued // axios HTTP request axios({ /* ...Omitted... */ - }).then((data) => { // Response processing - switch(data.status) { - case: "vbankIssued": + }).then((data) => { + // Response processing + switch (data.status) { + case "vbankIssued": // Virtual account issued break; - case: "success": + case "success": // Payment successful break; } }); } else { - alert(\`Payment failed. Error message: \${rsp.error_msg}\`); + alert(`Payment failed. Error message: ${rsp.error_msg}`); } - }); + }, + ); ``` diff --git a/src/content/docs/en/auth/guide/def.mdx b/src/content/docs/en/auth/guide/def.mdx index e3deb6c30..c70a2726b 100644 --- a/src/content/docs/en/auth/guide/def.mdx +++ b/src/content/docs/en/auth/guide/def.mdx @@ -19,7 +19,8 @@ authentication result. Communication for a live payment request is made directly between the merchant server and the PG server, and card information is not used in the payment request process. -#### Authenticated payment is traditionally categorized into the following two types based on the authentication method. +Authenticated payment is traditionally categorized into the followingtwo types +based on the authentication method. - ISP: authenticates pre-registered card information through a public key-based digital certificate - MPI: authenticates card information by entering the card number, CVC, and secure click password. @@ -29,4 +30,4 @@ to pre-register a credit card and use the **6-digit payment password** to easily
-#### You can easily integrate authenticated payment through i'mport! +You can easily integrate authenticated payment through i'mport! diff --git a/src/content/docs/en/auth/guide/readme.mdx b/src/content/docs/en/auth/guide/readme.mdx index 8aae9ffd1..ed0c60b7f 100644 --- a/src/content/docs/en/auth/guide/readme.mdx +++ b/src/content/docs/en/auth/guide/readme.mdx @@ -23,7 +23,8 @@ authentication result. Communication for a live payment request is made directly between the merchant server and the PG server, and card information is not used in the payment request process. -#### Authenticated payment is traditionally categorized into the following two types based on the authentication method. +Authenticated payment is traditionally categorized into the following two types +based on the authentication method. - ISP: authenticates pre-registered card information through a public key-based digital certificate - MPI: authenticates card information by entering the card number, CVC, and secure click password. @@ -33,7 +34,7 @@ to pre-register a credit card and use the **6-digit payment password** to easily
-#### You can easily integrate authenticated payments through i'mport! +You can easily integrate authenticated payments through i'mport! ## 1. Add i'mport library @@ -58,20 +59,20 @@ Add the JS library to your checkout page. ## 2. Initialize IMP object -#### On the checkout page, initialize the IMP object using your [Merchant ID](../../ready/3.). +On the checkout page, initialize the IMP object using your [Merchant ID](../../ready/3.). - ```javascript title="Client-side" - var IMP = window.IMP; // Can be omitted - IMP.init("Merchant ID"); // Example: imp00000000 + ```ts title="Client-side" + const IMP = window.IMP; // Can be omitted + IMP.init("Merchant ID"); // Example: imp00000000 ``` - ```javascript title="Client-side" - const IMP = window.IMP; // Can be omitted - IMP.init("{Merchant ID}"); // Example: imp00000000a + ```ts title="Client-side" + const IMP = window.IMP; // Can be omitted + IMP.init("{Merchant ID}"); // Example: imp00000000a ``` @@ -89,41 +90,39 @@ the first argument of the **request\_pay** function. - ```javascript - + }, + ); ``` - ```jsx - class RequestPay extends React.Component { - requestPay = () => { - IMP.request_pay({ // param + ```tsx + export class RequestPay extends React.Component { + requestPay = () => { + IMP.request_pay( + { + // param pg: "kcp", pay_method: "card", merchant_uid: "ORD20180131-0000011", @@ -133,54 +132,53 @@ the first argument of the **request\_pay** function. buyer_name: "Hong Gildong", buyer_tel: "010-4242-4242", buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "01181" - }, rsp => { // callback + buyer_postcode: "01181", + }, + (rsp) => { + // callback if (rsp.success) { - ..., // Payment is successful - ... } else { - ..., // Payment failed - ... } - }); - } + }, + ); + }; + } ``` - ```javascript - + ```ts + export default { + methods: { + requestPay: function () { + IMP.request_pay( + { + // param + pg: "kcp", + pay_method: "card", + merchant_uid: "ORD20180131-0000011", + name: "Norway swivel chair", + amount: 64900, + buyer_email: "gildong@gmail.com", + buyer_name: "Hong Gildong", + buyer_tel: "010-4242-4242", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "01181", + }, + (rsp) => { + // callback + if (rsp.success) { + // Payment is successful + } else { + // Payment failed + } + }, + ); + }, + }, + }; ``` @@ -188,11 +186,11 @@ the first argument of the **request\_pay** function. **Note - Creating an order ID (merchant\_uid)** - - The order number must always be assigned a **unique** **value** each time the payment window is requested. + - The order number must always be assigned a **unique value** each time the payment window is requested. - After the payment process is complete, the server uses the order ID to retrieve the order information for **payment fraud check**. Be sure to create a **unique ID** on the merchant server and **store it in the DB**. -#### The following is the above sample code with the Pay button added. +The following is the above sample code with the Pay button added. ```html title="sample.html" @@ -263,7 +261,8 @@ the payment window type as follows:
-#### Most payments that are processed in the PC environment can receive payment results through the callback function, which is the second argument of the request\_pay() function. +Most payments that are processed in the PC environment can receive payment results +through the callback function, which is the second argument of the request\_pay() function. For **PayPal** payments, the payment window is loaded as a **pop-up (new window)** in a PC environment and you can also receive the payment result through **m\_redirect\_url**. @@ -274,36 +273,47 @@ the payment window type as follows: - ```javascript title="client-side" - IMP.request_pay({ - /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { // payment successful: payment accepted or virtual account issued - // HTTP request with jQuery - jQuery.ajax({ - url: "{Merchant endpoint that receives server's payment info}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { - imp_uid: rsp.imp_uid, // Payment ID - merchant_uid: rsp.merchant_uid // Order ID - } - }).done(function (data) { - // Merchant server payment API call is successful + ```ts title="client-side" + IMP.request_pay( + { + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // payment successful: payment accepted or virtual account issued + // HTTP request with jQuery + jQuery + .ajax({ + url: "{Merchant endpoint that receives server's payment info}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { + imp_uid: rsp.imp_uid, // Payment ID + merchant_uid: rsp.merchant_uid, // Order ID + }, }) - } else { - alert("Payment failed. Error: " + rsp.error_msg); - } - }); + .done(function (data) { + // Merchant server payment API call is successful + console.log(data); + }); + } else { + alert("Payment failed. Error: " + rsp.error_msg); + } + }, + ); ``` - ```javascript title="client-side" - IMP.request_pay({ + ```ts title="client-side" + IMP.request_pay( + { /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { + }, + (rsp) => { + // callback + if (rsp.success) { // HTTP request with axios axios({ url: "{Endpoint that receives server's payment info}", @@ -311,15 +321,17 @@ the payment window type as follows: headers: { "Content-Type": "application/json" }, data: { imp_uid: rsp.imp_uid, - merchant_uid: rsp.merchant_uid - } + merchant_uid: rsp.merchant_uid, + }, }).then((data) => { // Server payment API call is successful - }) + console.log(data); + }); } else { - alert(\`Payment failed. Error: \${rsp.error_msg}\`); + alert(`Payment failed. Error: ${rsp.error_msg}`); } - }); + }, + ); ``` @@ -344,20 +356,26 @@ above. - ```javascript title="client-side" - IMP.request_pay({ - /* ...Omitted... */, - m_redirect_url: "{redirect URL}" - }, /* callback */); // callback is not called + ```ts title="client-side" + IMP.request_pay( + { + /* ...Omitted... */ + m_redirect_url: "{redirect URL}", + }, + /* callback */ + ); // callback is not called ``` - ```javascript title="client-side" - IMP.request_pay({ - /* ...Omitted... */, - m_redirect_url: "{redirect URL}" - }, /* callback */); // callback is not called + ```ts title="client-side" + IMP.request_pay( + { + /* ...Omitted... */ + m_redirect_url: "{redirect URL}", + }, + /* callback */ + ); // callback is not called ``` @@ -369,13 +387,13 @@ The following is an example of redirecting URL based on the query string. - ```url + ```sh curl https://myservice.com/payments/complete?imp_uid=unique_iamport_paymentID&merchant_uid=unique_merchant_orderID&imp_success=true ``` - ``` + ```sh curl https://myservice.com/payments/complete?imp_uid=unique_iamport_paymentID&merchant_uid=unique_merchant_orderID&imp_success=false&error_code=error_code(none_defined_currently)&error_msg=error_message ``` @@ -398,19 +416,28 @@ The following is an example of redirecting URL based on the query string. > The `payment process is complete` when: > > 1. **Payment is successful** (Status: `paid`, imp\_success: `true`) +> > 2. **Payment fails** (Status: `failed`, imp\_success: `false`) +> > 3. **Payment window fails to open** due to PG module setting error +> > 4. User **terminates the payment process** by clicking the X or Cancel button -> 5. **Payment is suspended** due to invalid card information, limit exceeded, insufficient balance, etc. +> +> 5. **Payment is suspended** due to invalid card information, +> limit exceeded, insufficient balance, etc. +> > 6. **Virtual account is issued** (status: `ready`, imp\_success: `true`) - The final payment result logic processing must be handled stably by using a [**webhook**](../../result/webhook). If you don't set up a webhook, you may fail to receive the payment result. + The final payment result logic processing must be handled stably by using a [**webhook**](../../result/webhook). + If you don't set up a webhook, you may fail to receive the payment result. ## 5. Verify payment information -Based on the payment information from the client, the server verifies the **payment amount for fraud** and saves the payment information in the database if needed. The following are the steps for verifying the payment information. +Based on the payment information from the client, the server verifies the **payment amount for fraud** +and saves the payment information in the database if needed. +The following are the steps for verifying the payment information. - Server receives the i'mport payment ID (**imp\_uid**) and order ID (**merchant\_uid**) @@ -426,7 +453,7 @@ Based on the payment information from the client, the server verifies the Example of handling a POST request to the merchant endpoint URL that receives the payment information - ```javascript title="server-side" + ```ts title="server-side" app.use(bodyParser.json()); // "{Merchant endpoint that receives server's payment info}" POST request receiver app.post("/payments/complete", async (req, res) => { @@ -447,41 +474,38 @@ Based on the payment information from the client, the server verifies the Example of calling the [**Get payment**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) **API** with the i'mport **payment ID (imp\_uid)** to retrieve the payment info. - ```javascript title="server-side" + ```ts title="server-side" app.use(bodyParser.json()); - ... - app.post("/payments/complete", async (req, res) => { - try { - // Get imp_uid, merchant_uid from req.body - const { imp_uid, merchant_uid } = req.body; - ... - // Get access token - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, - data: { - imp_key: "imp_apikey", // REST API key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // access token - ... - // Get payment info from i'mport server using imp_uid - const getPaymentData = await axios({ - // Pass imp_uid - url: \`https://api.iamport.kr/payments/\${imp_uid}\`, - // GET method - method: "get", - // Add access toke to Authorization header - headers: { "Authorization": access_token } - }); - const paymentData = getPaymentData.data.response; // Payment info - ... - } catch (e) { - res.status(400).send(e); - } + app.post("/payments/complete", async (req, res) => { + try { + // Get imp_uid, merchant_uid from req.body + const { imp_uid, merchant_uid } = req.body; + // Get access token + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, + data: { + imp_key: "imp_apikey", // REST API key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // access token + // Get payment info from i'mport server using imp_uid + const getPaymentData = await axios({ + // Pass imp_uid + url: `https://api.iamport.kr/payments/${imp_uid}`, + // GET method + method: "get", + // Add access toke to Authorization header + headers: { Authorization: access_token }, }); + const paymentData = getPaymentData.data.response; // Payment info + } catch (e) { + res.status(400).send(e); + } + }); ``` @@ -504,56 +528,66 @@ Based on the payment information from the client, the server verifies the Example of comparing the actual payment amount and the payment request amount, performing fraud check on the payment amount, and saving the data in the DB. - ```javascript title="server-side" + ```ts title="server-side" app.use(bodyParser.json()); - ... - app.post("/payments/complete", async (req, res) => { - try { - // Get imp_uid, merchant_uid from req.body - const { imp_uid, merchant_uid } = req.body; - // Get access token - /* ...Omitted... */ - // Get payment info from iamport server using imp_uid - /* ...Omitted... */ - const paymentData = getPaymentData.data.response; // Payment info - ... - // Get the requested payment amount from the DB - const order = await Orders.findById(paymentData.merchant_uid); - const amountToBePaid = order.amount; // Requested payment amount - ... - // Verify payment - const { amount, status } = paymentData; - // If amount matches. Processed amount === Requested amount - if (amount === amountToBePaid) { - await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Save payment info to DB - ... - switch (status) { - case "ready": // Issue virtual account - // Save virtual account info in DB - const { vbank_num, vbank_date, vbank_name } = paymentData; - await Users.findByIdAndUpdate("/* customer id */", { $set: { vbank_num, vbank_date, vbank_name }}); - // Send virtual account issuance text message - SMS.send({ text: \`Virtual account issued successfully. Account info \${vbank_num} \${vbank_date} \${vbank_name}\`}); - res.send({ status: "vbankIssued", message: "Virtual account issued successfully" }); - break; - case "paid": // Payment complete - res.send({ status: "success", message: "General payment successful" }); - break; - } - } else { // Amount mismatch. Forged/falsified payment. - throw { status: "forgery", message: "Forged/falsified payment attempted" }; + app.post("/payments/complete", async (req, res) => { + try { + // Get imp_uid, merchant_uid from req.body + const { imp_uid, merchant_uid } = req.body; + // Get access token + /* ...Omitted... */ + // Get payment info from iamport server using imp_uid + /* ...Omitted... */ + const paymentData = getPaymentData.data.response; // Payment info + // Get the requested payment amount from the DB + const order = await Orders.findById(paymentData.merchant_uid); + const amountToBePaid = order.amount; // Requested payment amount + // Verify payment + const { amount, status } = paymentData; + // If amount matches. Processed amount === Requested amount + if (amount === amountToBePaid) { + await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Save payment info to DB + switch (status) { + case "ready": // Issue virtual account + // Save virtual account info in DB + const { vbank_num, vbank_date, vbank_name } = paymentData; + await Users.findByIdAndUpdate("/* customer id */", { + $set: { vbank_num, vbank_date, vbank_name }, + }); + // Send virtual account issuance text message + SMS.send({ + text: `Virtual account issued successfully. Account info ${vbank_num} ${vbank_date} ${vbank_name}`, + }); + res.send({ + status: "vbankIssued", + message: "Virtual account issued successfully", + }); + break; + case "paid": // Payment complete + res.send({ + status: "success", + message: "General payment successful", + }); + break; } - } catch (e) { - res.status(400).send(e); + } else { + // Amount mismatch. Forged/falsified payment. + throw { + status: "forgery", + message: "Forged/falsified payment attempted", + }; } - }); + } catch (e) { + res.status(400).send(e); + } + }); ``` The original requested amount is queried from the database with the **`merchant_uid`**, and the actual processed amount is retrieved from the i'mport server with the **`imp_uid`**. The **two -values ​​are compared** to verify that they match. **If the verification is successful, +values are compared** to verify that they match. **If the verification is successful, the payment information is saved in the database** and a response is returned based on the payment status (**`status`**). Otherwise, an error message is returned. @@ -570,57 +604,69 @@ example. - ```javascript title="client-side" - IMP.request_pay({ + ```ts title="client-side" + IMP.request_pay( + { /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { // payment successful: payment accepted or virtual account issued - // jQuery HTTP request - jQuery.ajax({ + }, + function (rsp) { + // callback + if (rsp.success) { + // payment successful: payment accepted or virtual account issued + // jQuery HTTP request + jQuery + .ajax({ /* ...Omitted... */ - }).done(function(data) { // response processing - switch(data.status) { - case: "vbankIssued": + }) + .done(function (data) { + // response processing + switch (data.status) { + case "vbankIssued": // Virtual account issued break; - case: "success": + case "success": // Payment successful break; } }); } else { - alert("Payment failed. Error message: " + rsp.error_msg); + alert("Payment failed. Error message: " + rsp.error_msg); } - }); + }, + ); ``` - ```javascript title="client-side" - IMP.request_pay({ + ```ts title="client-side" + IMP.request_pay( + { /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { // payment successful: payment accepted or virtual account issued + }, + (rsp) => { + // callback + if (rsp.success) { + // payment successful: payment accepted or virtual account issued // axios HTTP request axios({ /* ...Omitted... */ - }).then((data) => { // Response processing - switch(data.status) { - case: "vbankIssued": + }).then((data) => { + // Response processing + switch (data.status) { + case "vbankIssued": // Virtual account issued break; - case: "success": + case "success": // Payment successful break; } }); } else { - alert(\`Payment failed. Error message: \${rsp.error_msg}\`); + alert(`Payment failed. Error message: ${rsp.error_msg}`); } - - }); - + }, + ); ``` @@ -633,6 +679,3 @@ payment complete message from the merchant endpoint URL** set in the **m\_redire These parameters are returned as a response when the payment fails and they contains the same values returned from the PG without additional processing. Note that we don't yet provide definitions for the error codes and error messages that have accumulated in our system. - -``` -``` diff --git a/src/content/docs/en/console/guide/account.mdx b/src/content/docs/en/console/guide/account.mdx index 56131d136..a59155bb7 100644 --- a/src/content/docs/en/console/guide/account.mdx +++ b/src/content/docs/en/console/guide/account.mdx @@ -10,12 +10,28 @@ import Figure from "~/components/Figure.astro"; ## i'mport Admin console accounts -- Merchant Admin account (Admin): The Merchant Admin account that is created when a merchant signs up in the Admin console. This account has access to all features. -- Merchant Manager account (Manager): The Merchant Admin account can create and issue this account. This account only has read-only access to merchant/account management and integration, but has full access to any other features. -- Merchant Developer account (Dev): The Merchant Manager account can create and issue this account. This account has full access to the integration feature, only read-only access to merchant account management, and access to no other features. -- Merchant User account (Read Only): The Merchant Manager account can create and issue this account. This account has read-only access to all features. -- Sub-merchant Manager account (Manager): The Merchant Manager account or its Sub-merchant Manager account can create and issue this account. This account has access to all features of the sub-merchant, and read-only access to the Merchant Admin account and merchant's business information. -- Sub-merchant User account (Read Only): The Merchant Admin account or its Sub-merchant Manager account can create and issue this account. This account has read-only access to all features of the sub-merchant. +- Merchant Admin account (Admin): The Merchant Admin account that is created + when a merchant signs up in the Admin console. This account has access to all features. + +- Merchant Manager account (Manager): The Merchant Admin account can create and issue this account. + This account only has read-only access to merchant/account management and integration, + but has full access to any other features. + +- Merchant Developer account (Dev): The Merchant Manager account can create and issue this account. + This account has full access to the integration feature, + only read-only access to merchant account management, and access to no other features. + +- Merchant User account (Read Only): The Merchant Manager account can create and issue this account. + This account has read-only access to all features. + +- Sub-merchant Manager account (Manager): The Merchant Manager account + or its Sub-merchant Manager account can create and issue this account. + This account has access to all features of the sub-merchant, + and read-only access to the Merchant Admin account and merchant's business information. + +- Sub-merchant User account (Read Only): The Merchant Admin account + or its Sub-merchant Manager account can create and issue this account. + This account has read-only access to all features of the sub-merchant. ## Admin account management @@ -23,41 +39,50 @@ _Available menus/buttons are marked in blue._
-
+
+ +- The Admin account can create, issue, modify roles and information, + and delete accounts under the merchant. -- The Admin account can create, issue, modify roles and information, and delete accounts under the merchant. - Non-admin accounts can only view the accounts under the merchant. ![](/gitbook-assets/en/image.png)![]() ## Merchant and sub-merchant accounts -- Merchant: A business with a unique business registration number except for agencies that develop payment service for other merchants. -- Sub-merchant: Merchants can manage and integrate payments through the Admin console by dividing its business by service, product line, region, etc. Such a division is defined as a sub-merchant. - - Payment integration: The merchant can assign its payment methods and PGs to a specific sub-merchant from the Admin console. - - Sub-merchant account: Sub-merchant accounts are limited to read-only access to features and payments associated with the sub-merchant. +- Merchant: A business with a unique business registration number + except for agencies that develop payment service for other merchants. + +- Sub-merchant: Merchants can manage and integrate payments through the Admin console + by dividing its business by service, product line, region, etc. + Such a division is defined as a sub-merchant. + + - Payment integration: The merchant can assign its payment methods and PGs + to a specific sub-merchant from the Admin console. + + - Sub-merchant account: Sub-merchant accounts are limited to read-only access + to features and payments associated with the sub-merchant. ## Sub-merchant management ### Merchant Admin account view -
+
-- The Merchant Admin account can add and edit sub-merchants and create, edit, and delete accounts belonging to the sub-merchant. +- The Merchant Admin account can add and edit sub-merchants + and create, edit, and delete accounts belonging to the sub-merchant. #### Add/edit sub-merchant ![]()![]() -- To add a sub-merchant, enter the sub-merchant name, payment channel, service url, contact information, and tier code. - - The payment channel is assigned through the online payment application, and it can be assigned to a merchant in payment integration. +- To add a sub-merchant, enter the sub-merchant name, payment channel, + service url, contact information, and tier code. + - The payment channel is assigned through the online payment application, + and it can be assigned to a merchant in payment integration. + - A payment channel already assigned to another sub-merchant cannot be assigned. + - To call the i'mport Payment SDK from the sub-merchant's URL, use the tier code and call `import.agency (‘tier code’)`. #### Add sub-merchant account @@ -68,17 +93,8 @@ _Available menus/buttons are marked in blue._ ### Non-admin account view -
+
-
+
-
+
diff --git a/src/content/docs/en/console/guide/list.mdx b/src/content/docs/en/console/guide/list.mdx index a872384b0..3b559d11d 100644 --- a/src/content/docs/en/console/guide/list.mdx +++ b/src/content/docs/en/console/guide/list.mdx @@ -5,116 +5,169 @@ description: Check the details of each payment transaction. Payment activity page -* Filter payments by date range during which payment was attempted. -* Perform comprehensive search by specifying a search condition or for all data if no condition is specified. -* Filter payments by payment status, method, PG, type, and mode. -* Total search results by status. -* Payment activity list that shows payment status, customer information, payment method, PG, payment amount, mode, request time, and completion time. -* Click the right corner of a payment record in the list to copy MID, UID or cancel payment. -* Click on a payment to view its details. -* Click on a payment to cancel it. -* Click on a payment to resend a webhook. -* Total transaction amount of search results - Total sales by currency calculated based on the total refund amount. -* Excel download of basic payment details and selected additional data including customer, PG, credit card payment, and account transfer payment information. +- Filter payments by date range during which payment was attempted. + +- Perform comprehensive search by specifying a search condition + or for all data if no condition is specified. + +- Filter payments by payment status, method, PG, type, and mode. + +- Total search results by status. + +- Payment activity list that shows payment status, customer information, payment method, + PG, payment amount, mode, request time, and completion time. + +- Click the right corner of a payment record in the list to copy MID, UID or cancel payment. + +- Click on a payment to view its details. + +- Click on a payment to cancel it. + +- Click on a payment to resend a webhook. + +- Total transaction amount of search results - Total sales by currency + calculated based on the total refund amount. + +- Excel download of basic payment details and selected additional data + including customer, PG, credit card payment, and account transfer payment information. ## Calendar filter ![]() -* Specify the start and end date/time of the payment request to search for. - * A payment request occurs when a customer attempts to make a payment. - * Hence, the time of refund and completion may occur outside of the specified search period. -* You can specify the year, month, day, hour, and minute. -* For convenience, you can quickly set the dates using the buttons for today, yesterday, past 7 days, 30 days, or 90 days. -* You can also manually enter the dates. +- Specify the start and end date/time of the payment request to search for. + - A payment request occurs when a customer attempts to make a payment. + - Hence, the time of refund and completion may occur outside of the specified search period. + +- You can specify the year, month, day, hour, and minute. + +- For convenience, you can quickly set the dates using the buttons + for today, yesterday, past 7 days, 30 days, or 90 days. + +- You can also manually enter the dates. ## Comprehensive search ![]() -* Perform a search by specifying a filter or on all payment data. -* Comprehensive search filters: - * i'mport transaction number - * Merchant transaction number - * Credit card approval number - * Customer name - * Customer mobile number - * Customer email - * PG approval number - * Credit card number - * Merchant ID - * Payment environment - * Live account bank - * Virtual account bank - * Bank account number - * Name of depositor - * Cash receipt issuance number - * Customer address - * Reason for cancellation - * Payment environment details - * Order name -* The search logic is specified as 'like %value' that returns the values that start with the specified value. - * In the future, the order name and customer address will be changed to 'like %value%'. +- Perform a search by specifying a filter or on all payment data. + +- Comprehensive search filters: + - i'mport transaction number + - Merchant transaction number + - Credit card approval number + - Customer name + - Customer mobile number + - Customer email + - PG approval number + - Credit card number + - Merchant ID + - Payment environment + - Live account bank + - Virtual account bank + - Bank account number + - Name of depositor + - Cash receipt issuance number + - Customer address + - Reason for cancellation + - Payment environment details + - Order name + +- The search logic is specified as 'like %value' that returns the values + that start with the specified value. + - In the future, the order name and customer address will be changed to 'like %value%'. ## Filters ![]() -* You can search payments by filtering on payment status, payment method, PG, payment type, and payment mode. - * Payment status: All, Scheduled, Completed, Cancelled (full), Cancelled (partial), Failed - * Payment method: Payment method - * PG: PG - * Payment type: All, subscription, general - * Payment mode: All, live, test +- You can search payments by filtering on payment status, payment method, + PG, payment type, and payment mode. + - Payment status: All, Scheduled, Completed, Cancelled (full), Cancelled (partial), Failed + - Payment method: Payment method + - PG: PG + - Payment type: All, subscription, general + - Payment mode: All, live, test ## Total payments by status ![]() -* Shows payment totals by status (all, completed, scheduled, failed, and cancelled). - * Failed payments include partial and full cancellations. +- Shows payment totals by status (all, completed, scheduled, failed, and cancelled). + - Failed payments include partial and full cancellations. ## Payment activity list -
+
+ + +
+
+ +- Payment activity list shows results from a date range, comprehensive, or data filter search. + +- The default view shows all payment data for the last 6 months. -* Payment activity list shows results from a date range, comprehensive, or data filter search. -* The default view shows all payment data for the last 6 months. -* The list shows the payment status, customer information, payment method, PG, payment amount, payment type, request time, and approval time. - * Customer information includes the customer's name, email, and phone number (displayed in order) that are specified at payment request via SDK. - * Payment type is general, subscription, or test. -* Request and approval times are displayed in descending order, and you can click on either value to sort based the value. -* If you click on the the dots to the right of a payment row in the Payment activity list, you can copy the merchant transaction number (merchant\_uid) and i'mport transaction number (imp\_uid). You can also cancel a completed or cancelled (partial) payment. +- The list shows the payment status, customer information, payment method, PG, + payment amount, payment type, request time, and approval time. + + - Customer information includes the customer's name, email, and phone number (displayed in order) + that are specified at payment request via SDK. + + - Payment type is general, subscription, or test. + +- Request and approval times are displayed in descending order, + and you can click on either value to sort based the value. + +- If you click on the the dots to the right of a payment row in the Payment activity list, you can + copy the merchant transaction number (merchant\_uid) and i'mport transaction number (imp\_uid). + You can also cancel a completed or cancelled (partial) payment. ## Payment details ![]() -* The Payment details page consists of the customer and payment information sections. -* Customer information shows the customer's name, phone number, e-mail, and address submitted via SDK. -* Payment information shows: - * Payment status - * i'mport transaction number - * Each payment method shows: - * Credit card: acquirer and masked card number - * Virtual account: account bank, account holder, account number, and time of deposit - * Bank transfer: account bank - * Mobile micropayment: carrier - * Total payment amount - * Order amount - discount amount - * Order amount - * List price (VAT) - * Paid with points - * Paid with points refers to the points rewarded by simple payment companies and PGs. - * Discount amount - * Value retrieved from PG's message. Note that the availability of this data varies by PG. - * Credit card approval number - * Merchant ID - * PG - * PG approval number - * Payment ID assigned by the PG. - * Payment environment - * Parsed device and web/app environment information +- The Payment details page consists of the customer and payment information sections. + +- Customer information shows the customer's name, phone number, + e-mail, and address submitted via SDK. + +- Payment information shows: + + - Payment status + + - i'mport transaction number + + - Each payment method shows: + - Credit card: acquirer and masked card number + - Virtual account: account bank, account holder, account number, and time of deposit + - Bank transfer: account bank + - Mobile micropayment: carrier + + - Total payment amount + - Order amount - discount amount + + - Order amount + + - List price (VAT) + + - Paid with points + - Paid with points refers to the points rewarded by simple payment companies and PGs. + + - Discount amount + - Value retrieved from PG's message. Note that the availability of this data varies by PG. + + - Credit card approval number + + - Merchant ID + + - PG + + - PG approval number + - Payment ID assigned by the PG. + + - Payment environment + - Parsed device and web/app environment information ## Payment cancellation @@ -122,17 +175,26 @@ Payment activity page ![]() -* You can cancel a payment from the Payment details page of a completed or partially cancelled payment. -* The default setting is full refund. If you want a partial refund, you can directly edit the refund amount or click `Partial refund` to edit and then click `Cancel Payment` at the bottom to finish. -* When you cancel a payment, the reason for cancellation is saved and sent to i'mport and PG. -* If a payment to cancel includes tax-free amount, you can specify this amount in the provided input field. -* When you cancel from the Admin console, a webhook is sent to the merchant's database for status update. -* For virtual accounts, you can additionally enter the following refund account information: - * Refund account bank - * Refund bank account number - * Refund account holder +- You can cancel a payment from the Payment details page + of a completed or partially cancelled payment. + +- The default setting is full refund. If you want a partial refund, + you can directly edit the refund amount or click `Partial refund` + to edit and then click `Cancel Payment` at the bottom to finish. + +- When you cancel a payment, the reason for cancellation is saved and sent to i'mport and PG. + +- If a payment to cancel includes tax-free amount, + you can specify this amount in the provided input field. + +- When you cancel from the Admin console, a webhook is sent + to the merchant's database for status update. + +- For virtual accounts, you can additionally enter the following refund account information: + - Refund account bank + - Refund bank account number + - Refund account holder ## Resend webhook ![]() - diff --git a/src/content/docs/en/console/guide/readme.mdx b/src/content/docs/en/console/guide/readme.mdx index 5a137d559..c54850f51 100644 --- a/src/content/docs/en/console/guide/readme.mdx +++ b/src/content/docs/en/console/guide/readme.mdx @@ -10,11 +10,11 @@ i'mport Admin console: [https://admin.iamport.kr/](https://admin.iamport.kr/) ## Apply for online payment -### [Apply for online payment](reg) +### [Apply for online payment](reg) ## Merchant and account management -### [My ID & API Keys](my-id-and-api-keys) +### [My ID & API Keys](my-id-and-api-keys)
### [Manage admin & sub-merchant accounts](account) diff --git a/src/content/docs/en/console/pg.mdx b/src/content/docs/en/console/pg.mdx index b0057255d..9e135be80 100644 --- a/src/content/docs/en/console/pg.mdx +++ b/src/content/docs/en/console/pg.mdx @@ -4,56 +4,58 @@ description: Learn how to set up and use multiple PGs. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Set up multiple PGs in the i'mport **Admin console** and open a payment window for the desired payment method. +Set up multiple PGs in the i'mport **Admin console** +and open a payment window for the desired payment method. -### 1. Configure authenticated payment (general) +## 1. Configure authenticated payment (general) -Go to [**i'mport Admin Console > System Settings > PG Settings tab > Default PG tab**](https://admin.iamport.kr/settings#tab_pg) to set the `default PG` that is used as the default `param.pg` value when you call [`IMP.request_pay`](https://docs.iamport.kr/en-US/sdk/javascript-sdk#request_pay) to open the payment window. The default value is used when the `pg` value is missing or invalid. +Go to [**i'mport Admin Console > System Settings > PG Settings tab > Default PG tab**](https://admin.iamport.kr/settings#tab_pg) +to set the `default PG` that is used as the default `param.pg` value +when you call [`IMP.request_pay`](https://docs.iamport.kr/en-US/sdk/javascript-sdk#request_pay) +to open the payment window. The default value is used when the `pg` value is missing or invalid. -
+
-### 2. Add PG for subscription payment (for non-authenticated/**PG payment window)** +## 2. Add PG for subscription payment (for non-authenticated/**PG payment window)** -After acquiring a separate Merchant ID (MID) for subscription (non-authenticated) payment from the PG, use it to add the PG from the [**i'mport Admin Console > System Settings > PG Settings (general/subscription) tab**](https://admin.iamport.kr/settings#tab_pg). +After acquiring a separate Merchant ID (MID) for subscription (non-authenticated) payment +from the PG, use it to add the PG from the [**i'mport Admin Console > System Settings > PG Settings (general/subscription) tab**](https://admin.iamport.kr/settings#tab_pg).
-### 3. **Add PG for simple payment (Kakao Pay)** +## 3. **Add PG for simple payment (Kakao Pay)** Repeat step 2 to add PG setting for Kakao Pay. -
+
-## Open PG's payment window +## Open PG's payment window -To open a PG's payment window, call [**JavaScript SDK**](../sdk/javascript-sdk/) `IMP.request_pay` by specifying the PG that is already configured in **Admin console** in the `param.pg` property. +To open a PG's payment window, call [**JavaScript SDK**](../sdk/javascript-sdk/) `IMP.request_pay` +by specifying the PG that is already configured in **Admin console** in the `param.pg` property. -The [`pg` value](https://docs.iamport.kr/en-US/sdk/javascript-sdk#request_pay) can have the following format: +The [`pg` value](https://docs.iamport.kr/en-US/sdk/javascript-sdk#request_pay) +can have the following format: - **`{ PG code }`** - **`{ PG code }.{ PG Merchant ID }`** Assume that we have added **3 PG settings** as follows: -| PG | Merchant ID | Pay Type | Default PG | -| --------------- | ----------------- | ---------------- | ---------- | -| **`KG INICIS`** | `MID-a` (example) | **General** | O | -| **`KG INICIS`** | `MID-b` (example) | **Subscription** | X | -| `Kakao Pay` | `MID-c` (example) | Simple | X | +|PG |Merchant ID |Pay Type |Default PG| +|---------------|-----------------|----------------|----------| +|**`KG INICIS`**|`MID-a` (example)|**General** |O | +|**`KG INICIS`**|`MID-b` (example)|**Subscription**|X | +|`Kakao Pay` |`MID-c` (example)|Simple |X | -Of the previously added PG settings, `Kakao Pay` can be identified just with the `PG service code`. Set **`kakaopay`** in the `pg` property for the Kakao Pay payment request as follows: +Of the previously added PG settings, `Kakao Pay` can be identified just with the `PG service code`. +Set **`kakaopay`** in the `pg` property for the Kakao Pay payment request as follows: -```javascript title="client-side" +```ts title="client-side" IMP.request_pay({ pg: "kakaopay", //Open Kakao Pay payment page amount: 1000, @@ -63,39 +65,39 @@ IMP.request_pay({ }); ``` -Of the previously added PG settings, **`KG INICIS (general)`** and **`KG INICIS (subscription)`** have the **same PG service code**. Hence, you need to set `pg` to a value that combines the service code with the Merchant ID, **`{ PG Code }.{ PG Merchant ID }`**. +Of the previously added PG settings, **`KG INICIS (general)`** and **`KG INICIS (subscription)`** +have the **same PG service code**. +Hence, you need to set `pg` to a value that combines the service code with the Merchant ID, **`{ PG Code }.{ PG Merchant ID }`**. - -```javascript title="JavaScript" -IMP.request_pay({ - pg : "html5_inicis.MID-a", // Call KG INICIS general payment window (merchant ID: MID-a) - amount : 1000, - name : "Sample order", - buyer_name : "Buyer", - buyer_email : "buyer@iamport.kr" - }); -``` - - - - -```javascript title="JavaScript" -IMP.request_pay({ - pg : "html5_inicis.MID-b", // Call KG INICIS subscription payment window (merchant ID: MID-b) - amount : 1000, - name : "Sample order", - buyer_name : "Buyer", - buyer_email : "buyer@iamport.kr" - }); -``` - - + + ```ts title="JavaScript" + IMP.request_pay({ + pg: "html5_inicis.MID-a", // Call KG INICIS general payment window (merchant ID: MID-a) + amount: 1000, + name: "Sample order", + buyer_name: "Buyer", + buyer_email: "buyer@iamport.kr", + }); + ``` + + + + ```ts title="JavaScript" + IMP.request_pay({ + pg: "html5_inicis.MID-b", // Call KG INICIS subscription payment window (merchant ID: MID-b) + amount: 1000, + name: "Sample order", + buyer_name: "Buyer", + buyer_email: "buyer@iamport.kr", + }); + ``` + -**Matching priority for PG** - -[`IMP.request_pay`](https://docs.iamport.kr/en-US/sdk/javascript-sdk#request_pay) finds the setting that matches the `pg` value in the order the PG settings are shown in the **Admin console**. It opens the payment window for the first matching PG setting. + **Matching priority for PG** + [`IMP.request_pay`](https://docs.iamport.kr/en-US/sdk/javascript-sdk#request_pay) finds the setting that matches the `pg` value + in the order the PG settings are shown in the **Admin console**. It opens the payment window for the first matching PG setting. diff --git a/src/content/docs/en/etc/all/get-verification-info.mdx b/src/content/docs/en/etc/all/get-verification-info.mdx index b7be3f4e7..23fc50d9b 100644 --- a/src/content/docs/en/etc/all/get-verification-info.mdx +++ b/src/content/docs/en/etc/all/get-verification-info.mdx @@ -5,82 +5,80 @@ description: >- purposes. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; Use the **`imp_uid`** obtained through integrated identity verification to get the customer's verification information. -### **STEP 01.** Get verification ID (imp_uid) on the server-side +## **STEP 01.** Get verification ID (imp\_uid) on the server-side The following server-side code fetches the data returned from identity verification. - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - // Get imp_uid from req.body - const { imp_uid } = request.body; -}) -``` - - + + ```ts title="server-side" + app.use(bodyParser.json()); + // controller that handles POST request to "/certifications" + app.post("/certifications", async (request, response) => { + // Get imp_uid from req.body + const { imp_uid } = request.body; + }); + ``` + + + + ```ts title="server-side" + app.use(bodyParser.json()); + // controller that handles GET request to "/certifications/redirect" + app.get("/certifications/redirect", async (request, response) => { + const { imp_uid } = request.query; // Get imp_uid from req.query + }); + ``` + + - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // controller that handles GET request to "/certifications/redirect" - app.get("/certifications/redirect", async (request, response) => { - const { imp_uid } = request.query; // Get imp_uid from req.query -}) -``` +## **STEP 02.** Get verification information - - +To get verification information from the i'mport server, +you must first get a [**REST API access token**](../../api/rest-api-access-token). +Use the `access token` and `imp_uid` (verification ID) +to call the **Get identity verification info REST API** +that returns the verification information as follows: -### **STEP 02.** Get verification information - -To get verification information from the i'mport server, you must first get a [**REST API access token**](../../api/rest-api-access-token). Use the `access token` and `imp_uid` (verification ID) to call the **Get identity verification info REST API** that returns the verification information as follows: - -```javascript title="sever-side(Node.js)" - app.use(bodyParser.json()); - ... - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from request.body - try { - // Get access token - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" - data: { - imp_key: "imp_apikey", // REST API Key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // Access token - ... - // Get verification info from i'mport server using imp_uid - const getCertifications = await axios({ - url: \`https://api.iamport.kr/certifications/\${imp_uid}\`, // Pass imp_uid - method: "get", // GET method - headers: { "Authorization": access_token } // Add access token to Authorization header - }); - const certificationsInfo = getCertifications.data.response; // Save verification info - ... - } catch(e) { - console.error(e); - } - }); +```ts title="sever-side(Node.js)" +app.use(bodyParser.json()); +// controller that handles POST request to "/certifications" +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from request.body + try { + // Get access token + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" + data: { + imp_key: "imp_apikey", // REST API Key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // Access token + // Get verification info from i'mport server using imp_uid + const getCertifications = await axios({ + url: `https://api.iamport.kr/certifications/${imp_uid}`, // Pass imp_uid + method: "get", // GET method + headers: { Authorization: access_token }, // Add access token to Authorization header + }); + const certificationsInfo = getCertifications.data.response; // Save verification info + } catch (e) { + console.error(e); + } +}); ``` -### **STEP 03.** Using verification information +## **STEP 03.** Using verification information Retrieve the following user information from the verification information and add the necessary service logic. @@ -95,33 +93,32 @@ service logic. such as online social security number. -Besides what is listed above, other user information, such as foreigner status, is not provided. Kakao's policy prohibits the provision of the CI value when using the Kakao Certificate. - + Besides what is listed above, other user information, such as foreigner status, is not provided. + Kakao's policy prohibits the provision of the CI value when using the Kakao Certificate. Get the user information and use it as needed. For example, you can use it to check age restrictions as follows: -```javascript title="Node.js" - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from request.body - try { - // Get access token - /* ...Omitted... */ - // Get verification info using imp_uid - /* ...Omitted... */ - const certificationsInfo = getCertifications.data.response; // Save verification info - const { name, birth } = certificationsInfo; - ... - // Check age restrictions - if (new Date(birth).getFullYear() <= 1999) { - // Check successful - } else { - // Check failed - } - } catch(e) { - console.error(e); +```ts title="Node.js" +// controller that handles POST request to "/certifications" +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from request.body + try { + // Get access token + /* ...Omitted... */ + // Get verification info using imp_uid + /* ...Omitted... */ + const certificationsInfo = getCertifications.data.response; // Save verification info + const { name, birth } = certificationsInfo; + // Check age restrictions + if (new Date(birth).getFullYear() <= 1999) { + // Check successful + } else { + // Check failed } - }); + } catch (e) { + console.error(e); + } +}); ``` diff --git a/src/content/docs/en/etc/all/prepare-for-verification.mdx b/src/content/docs/en/etc/all/prepare-for-verification.mdx index 20e917d50..4b2a756c7 100644 --- a/src/content/docs/en/etc/all/prepare-for-verification.mdx +++ b/src/content/docs/en/etc/all/prepare-for-verification.mdx @@ -3,51 +3,43 @@ title: Prepare for verification description: Prepare for integrated identity verification integration. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Add the **i'mport library** to the target page. +## Add the **i'mport library** to the target page. -Integrated identity verification is supported in **i'mport JavaScript v1.1.8 or later** versions. - + Integrated identity verification is supported in **i'mport JavaScript v1.1.8 or later** versions. - -```html title="client-side" - - - - -``` - - + + ```html title="client-side" + + + + + ``` + -You **must install jQuery 1.0 or later version**. - + You **must install jQuery 1.0 or later version**. -### Initialize the `IMP` object using the **`Merchant ID`** on the identity verification page. +## Initialize the `IMP` object using the **`Merchant ID`** on the identity verification page. - -```javascript title="client-side" -var IMP = window.IMP; // Can be omitted -IMP.init("{Merchant ID}"); // Example: imp00000000 -``` - - - - -```javascript -client-side -const IMP = window.IMP; // Can be omitted -IMP.init("{Merchant ID}"); // Example: imp00000000 -``` - - + + ```ts title="client-side" + IMP.init("{Merchant ID}"); // Example: imp00000000 + ``` + + + + ```ts title="client-side" + IMP.init("{Merchant ID}"); // Example: imp00000000 + ``` + diff --git a/src/content/docs/en/etc/all/readme.mdx b/src/content/docs/en/etc/all/readme.mdx index 83400b300..ebabcc8a0 100644 --- a/src/content/docs/en/etc/all/readme.mdx +++ b/src/content/docs/en/etc/all/readme.mdx @@ -5,13 +5,15 @@ description: Learn how to integrate integrated identity verification service. import Figure from "~/components/Figure.astro"; -### What is an integrated identity verification service? +## What is an integrated identity verification service? -This is a service that verifies the identity of the person and the accuracy of the information entered during the verification process through a private certificate, such as KakaoTalk and Naver Certificate. Integrated identity verification is provided through **KG Inicis** and processed by using a private certificate or by sending a verification request through the user's registered simple identity verification service. +This is a service that verifies the identity of the person and the accuracy +of the information entered during the verification process through a private certificate, +such as KakaoTalk and Naver Certificate. +Integrated identity verification is provided through **KG Inicis** +and processed by using a private certificate or by sending a verification request +through the user's registered simple identity verification service. > **Supported providers: Naver / PASS / Payco / TOSS / Financial Certificate / Kakao** -
+
diff --git a/src/content/docs/en/etc/all/request-verification.mdx b/src/content/docs/en/etc/all/request-verification.mdx index 172ed832a..888f1ddcb 100644 --- a/src/content/docs/en/etc/all/request-verification.mdx +++ b/src/content/docs/en/etc/all/request-verification.mdx @@ -3,10 +3,10 @@ title: Request verification description: Call the integrated identity verification window. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### The integrated identity verification window can be invoked in the following two modes: +## The integrated identity verification window can be invoked in the following two modes: > **Popup** (Default) > @@ -28,25 +28,25 @@ The following example calls the JavaScript SDK to open the integrated identity verification window. - -```javascript title="client-side" - // Call IMP.certification(param, callback) - IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // Order ID - m_redirect_url : "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile - popup : false // Always set to true in PC - }, function (rsp) { // callback - if (rsp.success) { - ..., - // When verification is successful, - ... - } else { - ..., - // When verification fails, - ... - } - }); -``` - - + + ```ts title="client-side" + // Call IMP.certification(param, callback) + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // Order ID + m_redirect_url: "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile + popup: false, // Always set to true in PC + }, + function (rsp) { + // callback + if (rsp.success) { + // When verification is successful, + } else { + // When verification fails, + } + }, + ); + ``` + diff --git a/src/content/docs/en/etc/all/send-verification-result.mdx b/src/content/docs/en/etc/all/send-verification-result.mdx index a91e2264a..459bd3e3f 100644 --- a/src/content/docs/en/etc/all/send-verification-result.mdx +++ b/src/content/docs/en/etc/all/send-verification-result.mdx @@ -3,62 +3,70 @@ title: Send verification result description: Process the result obtained from integrated identity verification. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; Based on the the verification result in the response object (**`rsp`**) returned after the verification process is completed, add the post-verification processing logic in the **`callback`** function. When the verification is successful, add the logic to **send the verification ID (`imp_uid`) to the server** as in the following example. Check the **value returned** when the verification is successful. -### 1. Example of sending data via callback +## 1. Example of sending data via callback - -```javascript title="client-side" - IMP.certification({ - /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { // When verification is successful - // jQuery HTTP request - jQuery.ajax({ - url: "{server-side endpoint to receive verification info}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert("Verification failed. Error: " + rsp.error_msg); - } - });Example of sending data via redirection -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // When verification is successful + // jQuery HTTP request + jQuery.ajax({ + url: "{server-side endpoint to receive verification info}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert("Verification failed. Error: " + rsp.error_msg); + } + }, + ); + ``` + - -```javascript title="client-side" -IMP.certification({ - /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { // When verification is successful - // axios HTTP request - axios({ - url: "{server-side endpoint to receive verification info}", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert(\`Verification failed. Error: \${rsp.error_msg}\`); - } - }); -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...Omitted... */ + }, + (rsp) => { + // callback + if (rsp.success) { + // When verification is successful + // axios HTTP request + axios({ + url: "{server-side endpoint to receive verification info}", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert(`Verification failed. Error: ${rsp.error_msg}`); + } + }, + ); + ``` + ### 2. Example of sending data via redirection -The page is redirected to the URL specified in `param.`**`m_redirect_url`** of `IMP.`**`certification`** with the verification data as follows: +The page is redirected to the URL specified in `param.`**`m_redirect_url`** +of `IMP.`**`certification`** with the verification data as follows: -```uri title="Query String" +```http title="Query String" GET {m_redirect_url}?imp_uid={}&merchant_uid={merchant_uid for verification}&success={true or false} ``` - diff --git a/src/content/docs/en/etc/budget.mdx b/src/content/docs/en/etc/budget.mdx index e1cb65ca9..a76c09f52 100644 --- a/src/content/docs/en/etc/budget.mdx +++ b/src/content/docs/en/etc/budget.mdx @@ -3,4 +3,4 @@ title: Integrate budget handler description: Learn how to integrate credit card promotion service. --- -### Refer to the [**Budget handler guide**](http://localhost:5000/o/nad6nqI7LNE1TGdY19Od/s/zzqz39hKDV7YEtDAeA1v/). +###Refer to the [**Budget handler guide**](http://localhost:5000/o/nad6nqI7LNE1TGdY19Od/s/zzqz39hKDV7YEtDAeA1v/). diff --git a/src/content/docs/en/etc/credit-auth/1-prepare-for-verification.mdx b/src/content/docs/en/etc/credit-auth/1-prepare-for-verification.mdx index dabba663c..08923e011 100644 --- a/src/content/docs/en/etc/credit-auth/1-prepare-for-verification.mdx +++ b/src/content/docs/en/etc/credit-auth/1-prepare-for-verification.mdx @@ -3,42 +3,37 @@ title: 1. Prepare for verification description: Prepare for credit card verification integration. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### Add the **i'mport library** to the target page. +## Add the **i'mport library** to the target page. -Credit card identity verification is supported in **i'mport JavaScript v1.1.7 or later** versions. - + Credit card identity verification is supported in **i'mport JavaScript v1.1.7 or later** versions. - -```html title="client-side" - - - - -``` - - + + ```html title="client-side" + + + + + ``` + -You **must install jQuery 1.0 or later version.** - + You **must install jQuery 1.0 or later version.** ### Initialize the `IMP` object using the **`Merchant ID`** on the identity verification page. - -```javascript title="client-side" -var IMP = window.IMP; // Can be omitted -IMP.init("{Merchant ID}"); // Example: imp00000000 -``` - - + + ```ts title="client-side" + IMP.init("{Merchant ID}"); // Example: imp00000000 + ``` + diff --git a/src/content/docs/en/etc/credit-auth/2-request-verification.mdx b/src/content/docs/en/etc/credit-auth/2-request-verification.mdx index 5147713a9..cdec51491 100644 --- a/src/content/docs/en/etc/credit-auth/2-request-verification.mdx +++ b/src/content/docs/en/etc/credit-auth/2-request-verification.mdx @@ -3,10 +3,10 @@ title: 2. Request verification description: Call the credit card identity verification window. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### The credit card identity verification window can be invoked in the following two modes: +## The credit card identity verification window can be invoked in the following two modes: > **Popup** (Default) > @@ -28,47 +28,47 @@ The following example calls the JavaScript SDK to open the credit card identity verification window. - -```javascript title="client-side" -// Call IMP.certification(param, callback) -IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // Order ID - m_redirect_url : "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile - popup : false // Always set to true in PC - }, function (rsp) { // callback - if (rsp.success) { - ..., - // When verification is successful, - ... - } else { - ..., - // When verification fails, - ... - } - }); -``` - - - - -```javascript title="client-side" - // Call IMP.certification(param, callback) - IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // Order ID - m_redirect_url : "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile - popup : false // Always set to true in PC - }, rsp => { // callback - if (rsp.success) { - ..., - // When verification is successful, - ... - } else { - ..., - // When verification fails, - ... - } - }); -``` + + ```ts title="client-side" + // Call IMP.certification(param, callback) + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // Order ID + m_redirect_url: "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile + popup: false, // Always set to true in PC + }, + function (rsp) { + // callback + if (rsp.success) { + // When verification is successful, + } else { + // When verification fails, + } + }, + ); + ``` + - + + ```ts title="client-side" + // Call IMP.certification(param, callback) + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // Order ID + m_redirect_url: "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile + popup: false, // Always set to true in PC + }, + (rsp) => { + // callback + if (rsp.success) { + // When verification is successful, + } else { + // When verification fails, + } + }, + ); + ``` + diff --git a/src/content/docs/en/etc/credit-auth/3-send-verification-result.mdx b/src/content/docs/en/etc/credit-auth/3-send-verification-result.mdx index 68f1fab82..05ff06e16 100644 --- a/src/content/docs/en/etc/credit-auth/3-send-verification-result.mdx +++ b/src/content/docs/en/etc/credit-auth/3-send-verification-result.mdx @@ -3,64 +3,75 @@ title: 3. Send verification result description: Process the result obtained from credit card identity verification. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -Based on the the verification result in the response object ( **`rsp`** ) returned after the verification process is complete, add the post-verification processing logic in the **`callback`** function. When the verification is successful, add the logic to **send the verification ID (`imp_uid`) to the server** as in the following example. Check the **value returned** when the verification is successful. +Based on the the verification result in the response object (**`rsp`**) +returned after the verification process is complete, +add the post-verification processing logic in the **`callback`** function. +When the verification is successful, add the logic to **send the verification ID (`imp_uid`) +to the server** as in the following example. +Check the **value returned** when the verification is successful. -### 1. Example of sending data via callback +## 1. Example of sending data via callback - -```javascript - IMP.certification({ - /* ...Omitted... */ - }, function (rsp) { // callback - if (rsp.success) { // When verification is successful - // jQuery HTTP request - jQuery.ajax({ - url: "{server-side endpoint to receive verification info}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert("Verification failed. Error: " + rsp.error_msg); - } - }); -``` - - - - + + ```ts + IMP.certification( + { + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // When verification is successful + // jQuery HTTP request + jQuery.ajax({ + url: "{server-side endpoint to receive verification info}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert("Verification failed. Error: " + rsp.error_msg); + } + }, + ); + ``` + -```javascript title="client-side" - IMP.certification({ - /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { // When verification is successful - // axios HTTP request - axios({ - url: "{server-side endpoint to receive verification info}", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert(`Verification failed. Error: ${rsp.error_msg}`); - } - }); - -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...Omitted... */ + }, + (rsp) => { + // callback + if (rsp.success) { + // When verification is successful + // axios HTTP request + axios({ + url: "{server-side endpoint to receive verification info}", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert(`Verification failed. Error: ${rsp.error_msg}`); + } + }, + ); + ``` + -### 2. Example of sending data via redirection +## 2. Example of sending data via redirection -The page is redirected to the URL specified in `param.`**`m_redirect_url`** of `IMP.` **`certification`** with the verification data as follows: +The page is redirected to the URL specified in `param.`**`m_redirect_url`** +of `IMP.` **`certification`** with the verification data as follows: -```uri title="Query String" +```http title="Query String" GET {m_redirect_url}?imp_uid={}&merchant_uid={merchant_uid for verification}&success ``` - diff --git a/src/content/docs/en/etc/credit-auth/4-get-verification-info.mdx b/src/content/docs/en/etc/credit-auth/4-get-verification-info.mdx index 05a8d93ec..5e7838589 100644 --- a/src/content/docs/en/etc/credit-auth/4-get-verification-info.mdx +++ b/src/content/docs/en/etc/credit-auth/4-get-verification-info.mdx @@ -5,79 +5,73 @@ description: >- purposes. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; Use the **`imp_uid`** obtained through identity verification to get the customer's verification information. -### **STEP 01.** Get verification ID (imp_uid) on the server-side +## **STEP 01.** Get verification ID (imp\_uid) on the server-side The following server-side code fetches the data returned from identity verification. - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - // Get imp_uid from req.body - const { imp_uid } = request.body; -}) -``` - - - - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // controller that handles GET request to "/certifications/redirect" - app.get("/certifications/redirect", async (request, response) => { - const { imp_uid } = request.query; // Get imp_uid from req.query -}) -``` - - + + ```ts title="server-side" + app.use(bodyParser.json()); + // controller that handles POST request to "/certifications" + app.post("/certifications", async (request, response) => { + // Get imp_uid from req.body + const { imp_uid } = request.body; + }); + ``` + + + + ```ts title="server-side" + app.use(bodyParser.json()); + // controller that handles GET request to "/certifications/redirect" + app.get("/certifications/redirect", async (request, response) => { + const { imp_uid } = request.query; // Get imp_uid from req.query + }); + ``` + ### **STEP 02.** Get verification information To get verification information from the i'mport server, you must first get a [**REST API access token**](../../api/rest-api-access-token). Use the `access token` and `imp_uid` (verification ID) to call the **Get identity verification info REST API** that returns the verification information as follows: -```javascript title="sever-side" - app.use(bodyParser.json()); - ... - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from request.body - try { - // Get access token - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" - data: { - imp_key: "imp_apikey", // REST API Key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // Access token - ... - // Get verification info from i'mport server using imp_uid - const getCertifications = await axios({ - url: \`https://api.iamport.kr/certifications/\${imp_uid}\`, // Pass imp_uid - method: "get", // GET method - headers: { "Authorization": access_token } // Add access token to Authorization header - }); - const certificationsInfo = getCertifications.data.response; // Save verification info - ... - } catch(e) { - console.error(e); - } - }); +```ts title="sever-side" +app.use(bodyParser.json()); +// controller that handles POST request to "/certifications" +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from request.body + try { + // Get access token + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" + data: { + imp_key: "imp_apikey", // REST API Key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // Access token + // Get verification info from i'mport server using imp_uid + const getCertifications = await axios({ + url: `https://api.iamport.kr/certifications/${imp_uid}`, // Pass imp_uid + method: "get", // GET method + headers: { Authorization: access_token }, // Add access token to Authorization header + }); + const certificationsInfo = getCertifications.data.response; // Save verification info + } catch (e) { + console.error(e); + } +}); ``` ### **STEP 03.** Using verification information @@ -97,44 +91,43 @@ service logic. - `unique_in_site`: same as DI value - unique key to identify the user per Merchant ID (website). -**unique\_key and unique\_in\_site** - -Even if multiple credit cards are used to verify the same person, the same `unique_key` and `unique_in_site` values are returned for the cards under the same name.\ + **unique\_key and unique\_in\_site** + Even if multiple credit cards are used to verify the same person, + the same `unique_key` and `unique_in_site` values are returned + for the cards under the same name. -```javascript title="Node.js" - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from request.body - try { - // Get access token - /* ...Omitted... */ - // Get verification info using imp_uid - /* ...Omitted... */ - const certificationsInfo = getCertifications.data.response; // Save verification info - // unique_key: Unique key for user, unique_in_site: Unique key for user per site - const { unique_key, unique_in_site, name, gender, birth } = certificationsInfo; - ... - // Check age restrictions - if (new Date(birth).getFullYear() <= 1999) { - // Check successful +```ts title="Node.js" +// controller that handles POST request to "/certifications" +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from request.body + try { + // Get access token + /* ...Omitted... */ + // Get verification info using imp_uid + /* ...Omitted... */ + const certificationsInfo = getCertifications.data.response; // Save verification info + // unique_key: Unique key for user, unique_in_site: Unique key for user per site + const { unique_key, unique_in_site, name, gender, birth } = + certificationsInfo; + // Check age restrictions + if (new Date(birth).getFullYear() <= 1999) { + // Check successful + } else { + // Check failed + } + // one account per person check + // Query database with unique_key to check for existing account + Users.find({ certificationKey: unique_key }).then((user) => { + if (!user) { + // New user } else { - // Check failed + // Existing user } - ... - // one account per person check - // Query database with unique_key to check for existing account - Users.find({ certificationKey: unique_key }) - .then((user) => { - if (!user) { - // New user - } else { - // Existing user - } - }); - } catch(e) { - console.error(e); - } - }); + }); + } catch (e) { + console.error(e); + } +}); ``` diff --git a/src/content/docs/en/etc/credit-auth/readme.mdx b/src/content/docs/en/etc/credit-auth/readme.mdx index 7389f43fd..c60b7e77f 100644 --- a/src/content/docs/en/etc/credit-auth/readme.mdx +++ b/src/content/docs/en/etc/credit-auth/readme.mdx @@ -5,9 +5,8 @@ description: Learn how to integrate credit card identity verification service. import Figure from "~/components/Figure.astro"; -The **credit card identity verification service** is used to confirm the accuracy of the identity information (name, date of birth, gender, foreigner status, and KISA ID) of the credit card holder. +The **credit card identity verification service** is used to confirm +the accuracy of the identity information (name, date of birth, gender, +foreigner status, and KISA ID) of the credit card holder. -
+
diff --git a/src/content/docs/en/etc/native-mobile-sdks.mdx b/src/content/docs/en/etc/native-mobile-sdks.mdx index 8458ad551..25f5ee210 100644 --- a/src/content/docs/en/etc/native-mobile-sdks.mdx +++ b/src/content/docs/en/etc/native-mobile-sdks.mdx @@ -3,14 +3,14 @@ title: Native mobile SDKs description: You can integrate i'mport services through our native mobile SDKs (plugins). --- -### Refer to the SDK GitHub link for your development platform. +## Refer to the SDK GitHub link for your development platform. -#### iOS/Android +### iOS/Android - [iOS](https://github.com/iamport/iamport-ios) - [Android](https://github.com/iamport/iamport-android) -#### Cross-Platform Frameworks +### Cross-Platform Frameworks - [Flutter](https://github.com/iamport/iamport-flutter) - [Ionic](https://github.com/iamport/iamport-ionic) diff --git a/src/content/docs/en/etc/phone/1-prepare-for-verification.mdx b/src/content/docs/en/etc/phone/1-prepare-for-verification.mdx index 84815bc4f..fb26050de 100644 --- a/src/content/docs/en/etc/phone/1-prepare-for-verification.mdx +++ b/src/content/docs/en/etc/phone/1-prepare-for-verification.mdx @@ -3,25 +3,21 @@ title: 1. Prepare for verification description: Prepare for mobile identity verification integration. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; Initialize the `IMP` object using the **`Merchant ID`**. - -```javascript title="client-side" -var IMP = window.IMP; // Can be omitted -IMP.init("{Merchant ID}"); // Example: imp00000000 -``` - - - - -```javascript title="client-side" -const IMP = window.IMP; // Can be omitted -IMP.init("{Merchant ID}"); // Example: imp00000000 -``` + + ```ts title="client-side" + IMP.init("{Merchant ID}"); // Example: imp00000000 + ``` + - + + ```ts title="client-side" + IMP.init("{Merchant ID}"); // Example: imp00000000 + ``` + diff --git a/src/content/docs/en/etc/phone/2-request-verification.mdx b/src/content/docs/en/etc/phone/2-request-verification.mdx index f8de42cd2..d855354e8 100644 --- a/src/content/docs/en/etc/phone/2-request-verification.mdx +++ b/src/content/docs/en/etc/phone/2-request-verification.mdx @@ -3,9 +3,9 @@ title: 2. Request verification description: Call the mobile identity verification window. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; The mobile identity verification window can be invoked in the following two modes: @@ -26,58 +26,58 @@ The mobile identity verification window can be invoked in the following two mode > `false`. -**Redirection mode** - -Redirection is supported in i'mport JavaScript **SDK 1.1.7** or later versions. + **Redirection mode** + Redirection is supported in i'mport JavaScript **SDK 1.1.7** or later versions. The following example calls the mobile identity verification window. - -```javascript title="client-side" - // Call IMP.certification(param, callback) - IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // Order ID - m_redirect_url : "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile - popup : false // Always set to true in PC - }, function (rsp) { // callback - if (rsp.success) { - ..., - // When verification is successful, - ... - } else { - ..., - // When verification fails, - ... - } - }); -``` - -Check the [**parameters list**](../../sdk/javascript-sdk/identity-verification-request-parameters) for requesting the mobile identity verification window. - - + + ```ts title="client-side" + // Call IMP.certification(param, callback) + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // Order ID + m_redirect_url: "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile + popup: false, // Always set to true in PC + }, + function (rsp) { + // callback + if (rsp.success) { + // When verification is successful, + } else { + // When verification fails, + } + }, + ); + ``` - -```javascript title="client-side" - // Call IMP.certification(param, callback) - IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // Order ID - m_redirect_url : "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile - popup : false // Always set to true in PC - }, rsp => { // callback - if (rsp.success) { - ..., - // When verification is successful, - ... - } else { - ..., - // When verification fails, - ... - } - }); -``` + Check the [**parameters list**](../../sdk/javascript-sdk/identity-verification-request-parameters) + for requesting the mobile identity verification window. + - + + ```ts title="client-side" + // Call IMP.certification(param, callback) + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // Order ID + m_redirect_url: "{Redirect URL}", // Required when popup:false in mobile, Example: https://www.myservice.com/payments/complete/mobile + popup: false, // Always set to true in PC + }, + (rsp) => { + // callback + if (rsp.success) { + // When verification is successful, + } else { + // When verification fails, + } + }, + ); + ``` + diff --git a/src/content/docs/en/etc/phone/3-send-verification-result.mdx b/src/content/docs/en/etc/phone/3-send-verification-result.mdx index cf6431765..6401b6201 100644 --- a/src/content/docs/en/etc/phone/3-send-verification-result.mdx +++ b/src/content/docs/en/etc/phone/3-send-verification-result.mdx @@ -3,62 +3,75 @@ title: 3. Send verification result description: Process the result obtained from mobile identity verification. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -Based on the the verification result in the response object (**`rsp`**) returned after the verification process is complete, add the post-verification processing logic in the **`callback`** function. When the verification is successful, add the logic to **send the verification ID (`imp_uid`) to the server** as in the following example. Check the **value returned** when the verification is successful. \ +Based on the the verification result in the response object (**`rsp`**) +returned after the verification process is complete, +add the post-verification processing logic in the **`callback`** function. +When the verification is successful, add the logic to **send the verification ID (`imp_uid`) +to the server** as in the following example. +Check the **value returned** when the verification is successful. -### 1. Example of sending data via callback +## 1. Example of sending data via callback - -```javascript -IMP.certification({ - /* ...Omitted... */ -}, function (rsp) { // callback - if (rsp.success) { // When verification is successful - // jQuery HTTP request - jQuery.ajax({ - url: "{server-side endpoint to receive verification info}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert("Verification failed. Error: " + rsp.error_msg); - } - }); -``` - - + + ```ts + IMP.certification( + { + /* ...Omitted... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // When verification is successful + // jQuery HTTP request + jQuery.ajax({ + url: "{server-side endpoint to receive verification info}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert("Verification failed. Error: " + rsp.error_msg); + } + }, + ); + ``` + - -```javascript title="client-side" - IMP.certification({ - /* ...Omitted... */ - }, rsp => { // callback - if (rsp.success) { // When verification is successful - // axios HTTP request - axios({ - url: "{server-side endpoint to receive verification info}", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert(\`Verification failed. Error: \${rsp.error_msg}\`); - } - }); -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...Omitted... */ + }, + (rsp) => { + // callback + if (rsp.success) { + // When verification is successful + // axios HTTP request + axios({ + url: "{server-side endpoint to receive verification info}", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert(`Verification failed. Error: ${rsp.error_msg}`); + } + }, + ); + ``` + -### 2. Example of sending data via redirection +## 2. Example of sending data via redirection -The page is redirected to the URL specified in `param.`**`m_redirect_url`** of `IMP.`**`certification`** with the verification data as follows: +The page is redirected to the URL specified in `param.`**`m_redirect_url`** of +`IMP.`**`certification`** with the verification data as follows: -```uri title="Query String" +```http title="Query String" GET {m_redirect_url}?imp_uid={}&merchant_uid={merchant_uid for verification}&success={true or false} ``` - diff --git a/src/content/docs/en/etc/phone/4-get-verification-info.mdx b/src/content/docs/en/etc/phone/4-get-verification-info.mdx index 77c91a1ba..92ef79b89 100644 --- a/src/content/docs/en/etc/phone/4-get-verification-info.mdx +++ b/src/content/docs/en/etc/phone/4-get-verification-info.mdx @@ -5,83 +5,75 @@ description: >- purposes. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; Use the **`imp_uid`** obtained from mobile identity verification to get the customer's verification information. -### **STEP 01.** Get verification ID (imp_uid) on the server-side +## **STEP 01.** Get verification ID (imp\_uid) on the server-side The following server-side code fetches the data returned from mobile identity verification. - - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from req.body -}) - -``` - - - - -```javascript -app.use(bodyParser.json()); - ... - // controller that handles GET request to "/certifications/redirect" - app.get("/certifications/redirect", async (request, response) => { - const { imp_uid } = request.query; // Get imp_uid from req.query -}) -``` - - + + ```ts title="server-side" + app.use(bodyParser.json()); + // controller that handles POST request to "/certifications" + app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from req.body + }); + ``` + + + + ```ts + app.use(bodyParser.json()); + // controller that handles GET request to "/certifications/redirect" + app.get("/certifications/redirect", async (request, response) => { + const { imp_uid } = request.query; // Get imp_uid from req.query + }); + ``` + -### **STEP 02.** Get verification information +## **STEP 02.** Get verification information To get verification information from the i'mport server, you must first get a [**REST API access token**](../../api/rest-api-access-token). Use the `access token` and `imp_uid` (verification ID) to call the **Get identity verification info REST API** that returns the verification information as follows: -```javascript title="sever-side" +```ts title="sever-side" app.use(bodyParser.json()); - ... - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from request.body - try { - // Get access token - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" - data: { - imp_key: "imp_apikey", // REST API Key - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // Access token - ... - // Get verification info from i'mport server using imp_uid - const getCertifications = await axios({ - url: `https://api.iamport.kr/certifications/\${imp_uid}\`, // Pass imp_uid - method: "get", // GET method - headers: { "Authorization": access_token } // Add access token to Authorization header - }); - const certificationsInfo = getCertifications.data.response; // Save verification info - ... - } catch(e) { - console.error(e); - } - }); +// controller that handles POST request to "/certifications" +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from request.body + try { + // Get access token + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json" + data: { + imp_key: "imp_apikey", // REST API Key + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // Access token + // Get verification info from i'mport server using imp_uid + const getCertifications = await axios({ + url: `https://api.iamport.kr/certifications/${imp_uid}`, // Pass imp_uid + method: "get", // GET method + headers: { Authorization: access_token }, // Add access token to Authorization header + }); + const certificationsInfo = getCertifications.data.response; // Save verification info + } catch (e) { + console.error(e); + } +}); ``` -### **STEP 03.** Using verification information +## **STEP 03.** Using verification information Retrieve the following user information from the verification information and add the necessary service logic. @@ -98,55 +90,52 @@ service logic. - `unique_in_site`: same as DI value - unique key to identify the user per Merchant ID (website). -In addition to the above information, if you need access to a user's mobile phone number (**`phone`**) and carrier (**`carrier`**) or foreigner status (**`foreigner`**), you must post a **Consent to Provision of Personal Information on your website** and send a **request to ****cs@iamport.kr**. Note that this service is available once it is requested to Danal PG and approved after contracting with i'mport.\ - -**\** + In addition to the above information, if you need access to a user's mobile phone number (**`phone`**) and carrier (**`carrier`**) or foreigner status (**`foreigner`**), you must post a **Consent to Provision of Personal Information on your website** and send a **request to** **[cs@iamport.kr](mailto:cs@iamport.kr)**. Note that this service is available once it is requested to Danal PG and approved after contracting with i'mport.\\ -- Business name: -- Business registration number: -- Danal Merchant ID (CPID) for identity verification: -- Privacy Policy URL: If unable to provide the URL when using an app service, capture and send the 'Privacy Policy' path. + **\** -**\** + - Business name: + - Business registration number: + - Danal Merchant ID (CPID) for identity verification: + - Privacy Policy URL: If unable to provide the URL when using an app service, capture and send the 'Privacy Policy' path. -- `Marpple Co., Ltd.: https://marpple.shop/kr/@/privacy` -- `Brave Mobile Co., Ltd./Soomgo: https://soomgo.com/terms/privacy` -- `Marketit Co., Ltd.: https://static.marketit.asia/static/privacy-terms.pdf` + **\** + - `Marpple Co., Ltd.: https://marpple.shop/kr/@/privacy` + - `Brave Mobile Co., Ltd./Soomgo: https://soomgo.com/terms/privacy` + - `Marketit Co., Ltd.: https://static.marketit.asia/static/privacy-terms.pdf` -```javascript title="Node.js" - // controller that handles POST request to "/certifications" - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // Get imp_uid from request.body - try { - // Get access token - /* ...Omitted... */ - // Get verification info using imp_uid - /* ...Omitted... */ - const certificationsInfo = getCertifications.data.response; // Save verification info - // unique_key: Unique key for user, unique_in_site: Unique key for user per site - const { unique_key, unique_in_site, name, gender, birth } = certificationsInfo; - ... - // Check age restrictions - if (new Date(birth).getFullYear() <= 1999) { - // Check successful +```ts title="Node.js" +// controller that handles POST request to "/certifications" +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // Get imp_uid from request.body + try { + // Get access token + /* ...Omitted... */ + // Get verification info using imp_uid + /* ...Omitted... */ + const certificationsInfo = getCertifications.data.response; // Save verification info + // unique_key: Unique key for user, unique_in_site: Unique key for user per site + const { unique_key, unique_in_site, name, gender, birth } = + certificationsInfo; + // Check age restrictions + if (new Date(birth).getFullYear() <= 1999) { + // Check successful + } else { + // Check failed + } + // one account per person check + // Query database with unique_key to check for existing account + Users.find({ certificationKey: unique_key }).then((user) => { + if (!user) { + // New user } else { - // Check failed + // Existing user } - ... - // one account per person check - // Query database with unique_key to check for existing account - Users.find({ certificationKey: unique_key }) - .then((user) => { - if (!user) { - // New user - } else { - // Existing user - } - }); - } catch(e) { - console.error(e); - } - }); + }); + } catch (e) { + console.error(e); + } +}); ``` diff --git a/src/content/docs/en/etc/phone/readme.mdx b/src/content/docs/en/etc/phone/readme.mdx index 803861e90..738649875 100644 --- a/src/content/docs/en/etc/phone/readme.mdx +++ b/src/content/docs/en/etc/phone/readme.mdx @@ -5,13 +5,18 @@ description: Learn how to integrate mobile identity verification service using i import Figure from "~/components/Figure.astro"; -**Mobile phone identity verification service** is used to confirm the identity of the user and the accuracy of the user's identity information submitted through the mobile phone under the user's name. +**Mobile phone identity verification service** is used to confirm +the identity of the user and the accuracy of the user's identity information +submitted through the mobile phone under the user's name. -User's identity verification is needed to sign up for websites, make payments, or verify age. You can perform identity verification by using the identity verification app installed on a mobile device, or by submitting your identity information (**name, date of birth, mobile phone number**) through the verification request page and then confirming the verification number received via text message. +User's identity verification is needed to sign up for websites, make payments, or verify age. +You can perform identity verification by using the identity verification app +installed on a mobile device, or by submitting your identity information +(**name, date of birth, mobile phone number**) through the verification request page +and then confirming the verification number received via text message. -
+
-The flow of i'mport mobile identity verification involves performing verification using the JavaScript SDK and then the merchant server **retrieving the verification result** using the ChaiPort REST API. +The flow of i'mport mobile identity verification involves performing verification +using the JavaScript SDK and then the merchant server +**retrieving the verification result** using the ChaiPort REST API. diff --git a/src/content/docs/en/etc/url.mdx b/src/content/docs/en/etc/url.mdx index 2d2ae58bf..02dddc9f6 100644 --- a/src/content/docs/en/etc/url.mdx +++ b/src/content/docs/en/etc/url.mdx @@ -4,19 +4,20 @@ description: Learn about the payment URL generation API. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Overview +## 1. Overview -This document describes i'mport payment URL generation API specification. i'mport Merchants can use the service without any restrictions. +This document describes i'mport payment URL generation API specification. +i'mport Merchants can use the service without any restrictions. -### 2. API URI +## 2. API URI Payment API is exposed as REST web service. @@ -25,230 +26,203 @@ Payment API is exposed as REST web service. > **Content-Type : application/json;charset=UTF-8** - - -```url title="URI" -https://api.iamport-dev.co/api/supplements/v1/link/payment -``` - - - - - -```title="URI" -https://api.iamport.co/api/supplements/v1/link/payment -``` - - + + ```http title="URI" + POST https://api.iamport-dev.co/api/supplements/v1/link/payment + ``` + + + + ```http title="URI" + POST https://api.iamport.co/api/supplements/v1/link/payment + ``` + -### 3. Description +## 3. Description -Customers can access the generated payment URL to make a payment. It supports all payment methods supported by the PG. When the link expires, payment is no longer available. +Customers can access the generated payment URL to make a payment. +It supports all payment methods supported by the PG. +When the link expires, payment is no longer available. -### 4. Request message specification +## 4. Request message specification - -HTTP Method : POST - -Content-Type : Application.json;charset=UTF-8 - - - -### Parameters - -#### Body - - - - -Title of the bridge page - - - - - - - -Merchant ID - - + + HTTP Method : POST - - - + Content-Type : Application.json;charset=UTF-8 + -Amount + ### Parameters - + #### Body - - - + + + Title of the bridge page + + -Order ID + + + Merchant ID + + - + + + Amount + + - - - + + + Order ID + + -Product name + + + Product name + + - + + Tax free amount + - - -Tax free amount + + + Currency code + + - - - + + Payment window language -Currency code + -ko - + -en + - - -Payment window language + + Customer name + -\-ko + + + Customer phone + + -\-en + + Customer address + - - -Customer name + + Customer email + - - - + + Customer zip + -Customer phone + + Custom data + - + + Notification URL to receive payment result + - - -Customer address + + + Page expiration + + - - -Customer email + + Bridge page language - - -Customer zip + -ko : Korean - - -Custom data + -en : English + - - -Notification URL to receive payment result + + **pg** **\*** **string** - - - + PG code -Page expiration + [#undefined](../sdk/javascript-sdk/rps#undefined "mention") - + --- - - -Bridge page language + **pay\_method** **\*** **string** -\-ko : Korean + Payment method code -\-en : English + [#undefined](../sdk/javascript-sdk/rps#undefined "mention") - - -**pg** **\*** **string** + --- -PG code + **label** **\*** **string** -[#undefined](../sdk/javascript-sdk/rps#undefined "mention") + Payment method shown on bridge page + ---- - -**pay_method** **\*** **string** - -Payment method code - -[#undefined](../sdk/javascript-sdk/rps#undefined "mention") - ---- - -**label** **\*** **string** - -Payment method shown on bridge page - - - -### Responses - - -```json title="json" -{ - "shortenedUrl": "https://dev.impay.link/4bdf239e" //Create payment link -} -``` - - + ### Responses + + ```json title="json" + { + "shortenedUrl": "https://dev.impay.link/4bdf239e" //Create payment link + } + ``` + **#Sample JSON request message** -```title="json" +```json title="json" { - "payment_info": "{\"title\":\"Test merchant\",\"user_code\":\"imp68124833\",\"amount\":10000,\"merchant_uid\":\"merchant_1630665784552\",\"name\":\"payment link test\",\"tax_free\":\"tax free amount\",\"currency\":\"KRW\",\"language\":\"ko\",\"buyer_name\":\"\",\"buyer_tel\":\"\",\"buyer_addr\":\"\",\"buyer_email\":\"\",\"buyer_postcode\":\"\",\"custom_data\":\"json_object\",\"notice_url\":\"notification url\",\"pay_methods\":[{\"pg\":\"INIpayTest\",\"pay_method\":\"card\",\"label\":\"credit/check card\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"naverpay\",\"label\":\"Naver Pay\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"kakaopay\",\"label\":\"Kakao Pay\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"phone\",\"label\":\"mobile micropayment\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"trans\",\"label\":\"account transfer\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"vbank\",\"label\":\"virtual account\"}]}", - "expired_at": 1634324016 + "payment_info": "{\"title\":\"Test merchant\",\"user_code\":\"imp68124833\",\"amount\":10000,\"merchant_uid\":\"merchant_1630665784552\",\"name\":\"payment link test\",\"tax_free\":\"tax free amount\",\"currency\":\"KRW\",\"language\":\"ko\",\"buyer_name\":\"\",\"buyer_tel\":\"\",\"buyer_addr\":\"\",\"buyer_email\":\"\",\"buyer_postcode\":\"\",\"custom_data\":\"json_object\",\"notice_url\":\"notification url\",\"pay_methods\":[{\"pg\":\"INIpayTest\",\"pay_method\":\"card\",\"label\":\"credit/check card\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"naverpay\",\"label\":\"Naver Pay\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"kakaopay\",\"label\":\"Kakao Pay\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"phone\",\"label\":\"mobile micropayment\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"trans\",\"label\":\"account transfer\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"vbank\",\"label\":\"virtual account\"}]}", + "expired_at": 1634324016 } ``` **#Sample payment (bridge) page** - -**Sample response URL page displayed when payment URL API request is successful.** - -
- - + + **Sample response URL page displayed when payment URL API request is successful.** - -**Sample page displayed for an expired payment URL page (expire\_at exceeded).** +
+ -
+ + **Sample page displayed for an expired payment URL page (expire\_at exceeded).** - +
+ -### 5. Disabling payment URL +## 5. Disabling payment URL -**Append the last part of the response** (**shortenedUrl**) **URL to the payment URI API address and call it.** +**Append the last part of the response** (**shortenedUrl**) +**URL to the payment URI API address and call it.** > **HTTP Method :** **PUT** -**For the following API response** - -```json -{ "shortenedUrl": "https://dev.impay.link/4bdf239e" } -``` + **For the following API response** -[https://api.iamport.co/api/supplements/v1/link/payment/](https://api.iamport.co/api/supplements/v1/link/payment/%7BGUID%7D) **4bdf239e** + ```json + { "shortenedUrl": "https://dev.impay.link/4bdf239e" } + ``` -Call the above payment URL to disable it. + [https://api.iamport.co/api/supplements/v1/link/payment/](https://api.iamport.co/api/supplements/v1/link/payment/%7BGUID%7D) **4bdf239e** + Call the above payment URL to disable it. diff --git a/src/content/docs/en/faq/undefined.mdx b/src/content/docs/en/faq/undefined.mdx index 888aa616e..2235bba15 100644 --- a/src/content/docs/en/faq/undefined.mdx +++ b/src/content/docs/en/faq/undefined.mdx @@ -7,50 +7,50 @@ import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro";
-

Webhook call rules

+

Webhook call rules

-- Webhook is only sent once by default. -- You can set to resend (retry) the webhook up to 5 times in 1 minute increments. i'mport will stop sending the webhook once the merchant responds with HTTP STATUS 200. -- You can also manually resend the webhook from the Admin console. (Payment approvals -> Webhook log -> Resend) -- If you change the webhook address, webhooks for past transactions are sent to the previous webhook URL. + - Webhook is only sent once by default. + - You can set to resend (retry) the webhook up to 5 times in 1 minute increments. + i'mport will stop sending the webhook once the merchant responds with HTTP STATUS 200. + + - You can also manually resend the webhook from the Admin console. (Payment approvals -> Webhook log -> Resend) + + - If you change the webhook address, webhooks for past transactions are sent to the previous webhook URL.
-

Provision of comprehensive response code list

- -The error code and message in the payment response are the same as those sent by the source (PG). There is no comprehensive error code list because the response codes and messages differ by each PG linked with i'mport. +

Provision of comprehensive response code list

+ The error code and message in the payment response are the same as those sent by the source (PG). + There is no comprehensive error code list because the response codes and messages differ by each PG linked with i'mport.
-

How to distinguish between production account and developer account

+

How to distinguish between production account and developer account

-### **Single account for both production and test modes** + ## **Single account for both production and test modes** -Enter the merchant information for testing by clicking 'Add PG' from existing settings. + Enter the merchant information for testing by clicking 'Add PG' from existing settings. -- Pros: Can use the same Merchant ID and API key/secret for testing. -- Cons: Care needs to be taken in setting/saving PGs because the settings are shared with the production account. + - Pros: Can use the same Merchant ID and API key/secret for testing. + - Cons: Care needs to be taken in setting/saving PGs because the settings are shared with the production account. -**\[Checklist]** + **\[Checklist]** -To request payment with a specific Merchant ID for the same PG, you must specify the `pg` parameter as **PG. Merchant ID**. + To request payment with a specific Merchant ID for the same PG, + you must specify the `pg` parameter as **PG. Merchant ID**. -### **Create a separate test-only account** + ### **Create a separate test-only account** -You can create a developer account by signing up in the i'mport Admin page ([https://admin.iamport.kr/](https://admin.iamport.kr/)). - -- Pros: Enables stable testing by using separate accounts for production and development. -- Cons: Requires source code branching due to having different Merchant ID and API key/secret for each account. + You can create a developer account by signing up in the i'mport Admin page ([https://admin.iamport.kr/](https://admin.iamport.kr/)). + - Pros: Enables stable testing by using separate accounts for production and development. + - Cons: Requires source code branching due to having different Merchant ID and API key/secret for each account.
-**For additional FAQs, refer to:** - -[https://faq.iamport.kr/](https://faq.iamport.kr/) + **For additional FAQs, refer to:** + [https://faq.iamport.kr/](https://faq.iamport.kr/) - - diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/blue-walnut.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/blue-walnut.mdx index 4556ac1e0..dfbd0f08a 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/blue-walnut.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/blue-walnut.mdx @@ -5,88 +5,86 @@ description: Blue Walnut payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 1. Configure Blue Walnut PG settings +## 1. Configure Blue Walnut PG settings -Refer to the [**Blue Walnut settings**](../../ready/2.-pg/payment-gateway-settings/undefined-7) page to configure the PG settings. +Refer to the [**Blue Walnut settings**](../../ready/2.-pg/payment-gateway-settings/undefined-7) +page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'bluewalnut', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - buyer_email : 'iamport@siot.do', // required - buyer_name : 'Jack Son', // Must include a space between Firstname Lastname - buyer_tel : '010-1234-5678', - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* - -**PG code** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "bluewalnut", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", // required + buyer_name: "Jack Son", // Must include a space between Firstname Lastname + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`bluewalnut`**. + ### Key parameter description -**`pay_method`** **\***\*\* ****s****tring\*\* + **`pg`** **\*** **string** -**Payment method code** + **PG code** -
-

Payment method codes

+ - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`bluewalnut`**. -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) + **`pay_method`** **\*** **string** -
+ **Payment method code** -**`merchant_uid`** **\***\*\* ****s****tring\*\* +
+

Payment method codes

-**Order ID** + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) +
-Must be unique for each request. + **`merchant_uid`** **\*** **string** -**`amount`** **\***\*\* ****integer\*\* + **Order ID** -**Payment amount** + Must be unique for each request. -Must be an integer (not string) + **`amount`** **\*** **integer** - + **Payment amount** -
+ Must be an integer (not string) - -#### Not supported + + -
+ + Not supported +
diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/danal.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/danal.mdx index 0a8f1c2bc..1fe8c2857 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/danal.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/danal.mdx @@ -5,256 +5,254 @@ description: Danal payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Danal PG settings +## 1. Configure Danal PG settings -Refer to the [**Danal settings**](../../ready/2.-pg/payment-gateway-settings/undefined-2) page to configure the PG settings. +Refer to the [**Danal settings**](../../ready/2.-pg/payment-gateway-settings/undefined-2) page +to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the Danal TPay payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the Danal TPay payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). In both PC and mobile browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "danal_tpay", - pay_method: "card", - merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 - name: "Order name: Test payment request", - amount: 14000, - buyer_email: "iamport@siot.do", - buyer_name: "John Doe", - buyer_tel: "010-1234-5678", - buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "123-456", - }, - function (rsp) { - // callback logic - //* ...Omitted... *// - } -); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "danal_tpay", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -### Key parameter description + ### Key parameter description -**`pg`** **\*** **s** **tring** + **`pg`** **\*** **string** -**PG code** + **PG code** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`danal_tpay`**. + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`danal_tpay`**. -**`pay_method`** **\*** **s** **tring** + **`pay_method`** **\*** **string** -**Payment method code** + **Payment method code** -
-

Payment method codes

+
+

Payment method codes

-- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `cultureland`(Cultureland) -- `happymoney`(Happy Money) -- `booknlife` (Book n culture gift card) + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `cultureland`(Cultureland) + - `happymoney`(Happy Money) + - `booknlife` (Book n culture gift card) +
-
+ **`merchant_uid`** **\*** **string** -**`merchant_uid`** **\*** **s** **tring** + **Order ID** -**Order ID** + Must be unique for each request. -Must be unique for each request. + **`buyer_tel`** **\*** **`string`** -**`buyer_tel`** **`*`** **`string`** + **Customer phone number** -**Customer phone number** + Danal payment window may throw an error if omitted -Danal payment window may throw an error if omitted + **`amount`** **\*** **integer** -**`amount`** **\*** **integer** + **Payment amount** -**Payment amount** + Must be an integer (not string) -Must be an integer (not string) + + #### Virtual account payment requirement - -#### Virtual account payment requirement + - **`biz_num`**: 10-digit business registration number (required) + -- **`biz_num`**: 10-digit business registration number (required) + +
- + + To open non-authenticated payment window, specify the **customer\_uid** parameter. - - + + #### **amount** - -To open non-authenticated payment window, specify the **customer\_uid** parameter. + - If requesting **both billing key and initial payment**, specify the payment amount. - -#### **amount** - -- If requesting **both billing key and initial payment**, specify the payment amount. -- If only requesting for billing key, set to **0**.\ - (if amount is set to 0, Danal executes a test payment of 10 won which is automatically cancelled after 30 minutes.) - - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "danal_tpay", - pay_method: "card", // only 'card' supported. - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Order name: Billing key request test", - amount: 0, // For display purpose only (set actual amount to also request payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", - period: { - from: "20200101", //YYYYMMDD - to: "20201231", //YYYYMMDD - }, - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` + - If only requesting for billing key, set to **0**.\ + (if amount is set to 0, Danal executes a test payment of 10 won which is automatically cancelled after 30 minutes.) + -### Key parameter description + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "danal_tpay", + pay_method: "card", // only 'card' supported. + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Order name: Billing key request test", + amount: 0, // For display purpose only (set actual amount to also request payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + period: { + from: "20200101", //YYYYMMDD + to: "20201231", //YYYYMMDD + }, + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` -**`pg`** **\***\*\* ****s****tring\*\* + ### Key parameter description -**PG code** + **`pg`** **\*** **string** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`danal_tpay`**. + **PG code** -**`customer_uid`** **\*** **string** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`danal_tpay`**. -**Credit card billing key** + **`customer_uid`** **\*** **string** -Billing key to be mapped 1:1 with the user-entered credit card information. + **Credit card billing key** -**`amount`** **\*** **Integer** + Billing key to be mapped 1:1 with the user-entered credit card information. -**Payment amount** + **`amount`** **\*** **Integer** -0: only billing key, **> 0: billing key + initial payment** + **Payment amount** -**` period`` `****`array`** + 0: only billing key, **> 0: billing key + initial payment** -Product subscription payment for subscription payment. The date is displayed on the Danal payment window. + **`period`` `****`array`** -**`from`****`: YYYYMMDD`** + Product subscription payment for subscription payment. The date is displayed on the Danal payment window. -**`to`****`: YYYYMMDD`**\ + **`from`****`: YYYYMMDD`** -### Request payment with billing key (customer_uid) + **`to`****`: YYYYMMDD`**\\ -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + ### Request payment with billing key (customer\_uid) -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + After successfully getting the billing key, + the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: -
+ ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` +
-### 3. Additional functions +## 3. Additional functions - -```javascript title="javascript" -display: { - card_quota: [6] // Display up to 6 months installment plans -} -``` - -**Parameters** - -- **card_quota :** - - `[]`: Only immediate pay - - `3,6`: immediate, 3, 6 month installment plans - - -Installment plan option is available only for **KRW 50,000 or more**. - - - - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3, - usePoint : “Y” + + ```json title="javascript" + { + "display": { + "card_quota": [6] // Display up to 6 months installment plans + } } -} -``` - -**Parameters** - -- **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. (**integer**) -- **usePoint**: Option to use points (post applied) - - -**Danal setup required** - -- Direct module call requires pre-setup by Danal. - - - - - - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` + ``` + + **Parameters** + + - **card\_quota :** + - `[]`: Only immediate pay + - `3,6`: immediate, 3, 6 month installment plans + + + Installment plan option is available only for **KRW 50,000 or more**. + + + + + + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3, + "usePoint": "Y" + } + } + } + ``` + + **Parameters** + + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **quota**: Installment plan. For immediate, set to 0. (**integer**) + - **usePoint**: Option to use points (post applied) + + + **Danal setup required** + + - Direct module call requires pre-setup by Danal. + + + + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` -**Parameters** + **Parameters** -- **card_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** -- **enabled:** Option to enable the credit card (**boolean)** + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) + (**string)** - + - **enabled:** Option to enable the credit card (**boolean)** - + + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/precautions-for-using-payjoa.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/precautions-for-using-payjoa.mdx index be0c7aaf4..9a147afee 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/precautions-for-using-payjoa.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/precautions-for-using-payjoa.mdx @@ -8,171 +8,169 @@ import Details from "~/components/gitbook/Details.astro"; ## Things to note when integrating PAYJOA
-

Returns success in PC and imp_success in mobile

- -The payment window call (`IMP.request_pay`) and post-payment processing differs for PC and mobile. In PC, the call is made using iframe and the callback function (the second argument of IMP.request_pay) is called after the payment process is completed. In mobile, the page is redirected (302) to the specified URL (`m_redirect_url`_)._ At this time, the payment result (success/failure) is returned using the `success` parameter for PC and `imp_success` parameter for mobile. To summarize the flow: - -- \[PC] iframe → callback → result delivered in response.`success` returned via callback - - ```jsx - IMP.request_pay( - { - // Omitted - }, - function (response) { - const { success } = response; // payment successul or failed - if (success) { - // Success logic - } else { - // Failure logic - } - } - ); - ``` - -- \[Mobile] Redirect → redirct (302) to m_redirect_url → result delivered in `imp_success` query parameter - - ```jsx - /** - * Sample 302 redirect URL redirected to after payment process is completed - * when m_redirect_url is set to 'https://myservice.com/payments/complete' - */ - https://myservice.com/payments/complete?**imp_success=true**&imp_uid=imp1234567890&merchant_uid=mid_123467890 - ``` - -#### **`imp_success` and `success` are deprecated** - -Regardless you should not determine the success/failure of a payment based on either of these parameters. It only indicates the failure/success of payment at the time of the response from i'mport → merchant client, and its value can only be finalized when notification of the result is sent from PAYJOA → i'mport and then it is updated in the i'mport DB. - -Since the **payment result is sent asynchronously in \[PAYJOA → i'mport → i'mport DB update] and \[i'mport → merchant client]**, **the `imp_success` or `success` parameter received by the merchant client can be false (failed) for a successful transaction if it has not been updated in the database yet**. - -Hence, only the i'mport order ID (`imp_uid`) and the merchant order ID (`merchant_uid`) of the result are accurate. You must send these values to the merchant server and use them to call the i'mport Get payment API ([GET /payments/\{imp_uid}](https://api.iamport.kr/#!/payments/getPaymentByImpUid)) to accurately determine whether the payment is successful (`status`=`paid`) or failed (`status`=`failed`). - +

Returns success in PC and imp\_success in mobile

+ + The payment window call (`IMP.request_pay`) and post-payment processing differs for PC and mobile. + In PC, the call is made using iframe and the callback function + (the second argument of IMP.request\_pay) is called after the payment process is completed. + In mobile, the page is redirected (302) to the specified URL (`m_redirect_url`). + At this time, the payment result (success/failure) is returned using the `success` parameter for PC + and `imp_success` parameter for mobile. To summarize the flow: + + - \[PC] iframe → callback → result delivered in response.`success` returned via callback + + ```tsx + IMP.request_pay( + { + // Omitted + }, + function (response) { + const { success } = response; // payment successul or failed + if (success) { + // Success logic + } else { + // Failure logic + } + }, + ); + ``` + + - \[Mobile] Redirect → redirct (302) to m\_redirect\_url → result delivered in `imp_success` query parameter + + ```js + /** + * Sample 302 redirect URL redirected to after payment process is completed + * when m_redirect_url is set to 'https://myservice.com/payments/complete' + */ + "https://myservice.com/payments/complete?imp_success=true&imp_uid=imp1234567890&merchant_uid=mid_123467890"; + ``` + + ### **`imp_success` and `success` are deprecated** + + Regardless you should not determine the success/failure of a payment based on either of these parameters. + It only indicates the failure/success of payment at the time of the response from i'mport → merchant client, + and its value can only be finalized when notification of the result is sent from PAYJOA → i'mport + and then it is updated in the i'mport DB. + + Since the **payment result is sent asynchronously in \[PAYJOA → i'mport → i'mport DB update] + and \[i'mport → merchant client]**, **the `imp_success` or `success` parameter received + by the merchant client can be false (failed) for a successful transaction + if it has not been updated in the database yet**. + + Hence, only the i'mport order ID (`imp_uid`) and the merchant order ID + (`merchant_uid`) of the result are accurate. + You must send these values to the merchant server and use them + to call the i'mport Get payment API ([GET /payments/\{imp\_uid}](https://api.iamport.kr/#!/payments/getPaymentByImpUid)) + to accurately determine whether the payment is successful (`status`=`paid`) or failed (`status`=`failed`).
-

Session related issues when paying with Hana card/NH Apps Cache in Safari

- -When paying with Hana card/NH Apps Cache (account transfer) in Safari, the message below (the session has expired and the connection with the card company has been terminated) is displayed and payment cannot be processed. +

Session related issues when paying with Hana card/NH Apps Cache in Safari

-참고이미지 + When paying with Hana card/NH Apps Cache (account transfer) in Safari, + the message below (the session has expired and the connection with the card company has been terminated) + is displayed and payment cannot be processed. -If you are experiencing this, make sure that the `Prevent cross-site tracking` and `Block all cookies` options are not checked in Safari Preferences as shown below, and then try again. + 참고이미지 -참고이미지 + If you are experiencing this, make sure that the `Prevent cross-site tracking` and `Block all cookies` options + are not checked in Safari Preferences as shown below, and then try again. + 참고이미지
-

Issues when paying with BC card in Safari/Firefox

- -If you click the Next button after selecting BC Card in the credit card payment window, “Payment failed” alert message is displayed and you cannot proceed any further. In other browsers (Chrome, Opera, Edge, etc.) or when using other credit cards, the Facebook QR code for BC card payment is rendered without any problem. +

Issues when paying with BC card in Safari/Firefox

-참고이미지 + If you click the Next button after selecting BC Card in the credit card payment window, + “Payment failed” alert message is displayed and you cannot proceed any further. + In other browsers (Chrome, Opera, Edge, etc.) or when using other credit cards, + the Facebook QR code for BC card payment is rendered without any problem. -If you are experiencing this, make sure that pop-ups are allowed for the `*.payjoa.co.kr` domain in Safari Preferences as shown below, and then try again. + 참고이미지 -참고이미지 + If you are experiencing this, make sure that pop-ups are allowed for the `*.payjoa.co.kr` domain + in Safari Preferences as shown below, and then try again. + 참고이미지
-

Instant account transfer payment flow difference

+

Instant account transfer payment flow difference

-Since PAYJOA internally uses Toss Payments - account transfer, account transfer is available only through Toss Simple Payment, NH Apps Cache, and direct input of account information. Entering account information directly requires security card/OTP authentication → public certificate authentication. + Since PAYJOA internally uses Toss Payments - account transfer, account transfer is available + only through Toss Simple Payment, NH Apps Cache, and direct input of account information. + Entering account information directly requires security card/OTP authentication → public certificate authentication. -For mobile payment, account transfer payment is available only through Toss Simple Payment and NH Apps Cache. + For mobile payment, account transfer payment is available only through Toss Simple Payment and NH Apps Cache. -PC 결제 - -모바일 결제 + PC 결제 + 모바일 결제
-

Only depositor's name can be accessed after virtual account deposit

- -When deposit is made to the (issued) virtual account, PAYJOA only reveals the name among the depositor's information (bank name, account number, sender). Therefore, when you retrieve the i'mport payment details ([**GET /payments/\{imp_uid}**](../../../api/payment-api/get-payment-api)), the depositor's bank code (`bank_code`) and bank name (`bank_name`) are both NULL. To get the depositor's name, you must set the query parameter (`extension`) to `true` as follows: - -```jsx -GET http://api.iamport.kr/payments/{i'mport number}?extension=true - -{ - // ... Omitted - bank_code: null, // Depositor's bank code not provided - bank_name: null, // Depositor's bank name not provided - extension: { - // ... Omitted - **"REMITTER": "John Doe" // Depositor's name** - } -} -``` - +

Only depositor's name can be accessed after virtual account deposit

+ + When deposit is made to the (issued) virtual account, + PAYJOA only reveals the name among the depositor's information (bank name, account number, sender). + Therefore, when you retrieve the i'mport payment details ([**GET /payments/\{imp\_uid}**](../../../api/payment-api/get-payment-api)), + the depositor's bank code (`bank_code`) and bank name (`bank_name`) are both NULL. + To get the depositor's name, you must set the query parameter (`extension`) to `true` as follows: + + ```json + // GET http://api.iamport.kr/payments/{i'mport number}?extension=true + { + // ... Omitted + "bank_code": null, // Depositor's bank code not provided + "bank_name": null, // Depositor's bank name not provided + "extension": { + // ... Omitted + "REMITTER": "John Doe" // Depositor's name + } + } + ```
-

Special contract with PAYJOA is required to cancel virtual account payment

- -Cancellation (refund) of payment for completed virtual account deposit is available only through a special contract with PAYJOA due to virtual account issuance fee issues. Refunds for virtual account payments cannot be processed without this contract. +

Special contract with PAYJOA is required to cancel virtual account payment

+ Cancellation (refund) of payment for completed virtual account deposit is available + only through a special contract with PAYJOA due to virtual account issuance fee issues. + Refunds for virtual account payments cannot be processed without this contract.
-

Cancellation of virtual account payment takes more than 7 business days to process

- -Cancellation (refund) of PAYJOA virtual account payment is requested from the merchant → i'mport → PAYJOA. Since the refund is processed after a PAYJOA staff manually checks the request, it takes more than 7 business days for the refund amount to be deposited. +

Cancellation of virtual account payment takes more than 7 business days to process

+ Cancellation (refund) of PAYJOA virtual account payment is requested from the merchant → i'mport → PAYJOA. + Since the refund is processed after a PAYJOA staff manually checks the request, + it takes more than 7 business days for the refund amount to be deposited.
-

Only one taxable/tax-free/combination CPID is issued for each case

- -You need to request PAYJOA to issue the CPID on a `case-by-case` basis. In this way, all taxable/tax-free/combination transactions can be processed with one CPID. +

Only one taxable/tax-free/combination CPID is issued for each case

+ You need to request PAYJOA to issue the CPID on a `case-by-case` basis. + In this way, all taxable/tax-free/combination transactions can be processed with one CPID.
-

Tax-free amount can be set only for card payment

- -When calling the payment window (IMP.request_pay function), you can set the tax-free amount (`tax_free`) out of the total amount (`amount`). In the PAYJOA system, the tax-free amount is only available when paying by card (pay_method: `card`). Account transfer and virtual account payments are taxed in full. +

Tax-free amount can be set only for card payment

+ When calling the payment window (IMP.request\_pay function), + you can set the tax-free amount (`tax_free`) out of the total amount (`amount`). + In the PAYJOA system, the tax-free amount is only available when paying by card (pay\_method: `card`). + Account transfer and virtual account payments are taxed in full.
-

PAYJOA bug

- -#### Customer's phone number is not automatically filled in the escrow payment window +

PAYJOA bug

-참고이미지 + ### Customer's phone number is not automatically filled in the escrow payment window -- Unlike other payment windows, the customer's phone number (`buyer_tel`) passed into IMP.request_pay is not automatically filled in the escrow payment window. Note that PAYJOA does not support this function. + 참고이미지 + - Unlike other payment windows, the customer's phone number (`buyer_tel`) passed into IMP.request\_pay + is not automatically filled in the escrow payment window. Note that PAYJOA does not support this function.
diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/readme.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/readme.mdx index 9ecbf5181..e54c964d4 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/readme.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/daou-payjoa/readme.mdx @@ -5,232 +5,232 @@ description: Daou payment window integration guide import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Daou PG settings +## 1. Configure Daou PG settings Refer to the [**Daou settings**](../../../ready/2.-pg/payment-gateway-settings/daou) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. -**PAYJOA payment window integration requires ****JS SDK 1.2.0**** or later version.** - + **PAYJOA payment window integration requires ****JS SDK 1.2.0**** or later version.** - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'daou', - pay_method : 'card', - merchant_uid: 'mid_1234567890', - escrow: false, - amount: 1004, - name: 'NF long padding jacket M', - buyer_name: 'John Doe', - buyer_email: 'hello@world.com', - buyer_tel: '01012345678', - digital : false, // Set to true if contracted as digital - m_redirect_url: 'https://allerts.com/payments/complete', - bypass: { - // PAYJOA (DaouData) specific parameters - daou: { - PRODUCTCODE: 'iamport', - CASHRECEIPTFLAG: 2, - }, - }, - app_scheme: 'iamportappscheme', -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -### - -### Key parameter description - -**`pg`** **\*** **s** **tring** - -**PG code** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "daou", + pay_method: "card", + merchant_uid: "mid_1234567890", + escrow: false, + amount: 1004, + name: "NF long padding jacket M", + buyer_name: "John Doe", + buyer_email: "hello@world.com", + buyer_tel: "01012345678", + digital: false, // Set to true if contracted as digital + m_redirect_url: "https://allerts.com/payments/complete", + bypass: { + // PAYJOA (DaouData) specific parameters + daou: { + PRODUCTCODE: "iamport", + CASHRECEIPTFLAG: 2, + }, + }, + app_scheme: "iamportappscheme", + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`daou`**. + ### Key parameter description -**`pay_method`** **\*** **s** **tring** + **`pg`** **\*** **string** -**Payment method code** + **PG code** -
-

Payment method codes

+ - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`daou`**. -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) + **`pay_method`** **\*** **string** -
+ **Payment method code** -**`merchant_uid`** **\*** **s** **tring** +
+

Payment method codes

-**Order ID** + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) +
-Must be unique for each request. + **`merchant_uid`** **\*** **string** -**`digital`** **`*`** **`string`** + **Order ID** -**Digital contents option** + Must be unique for each request. -Must specify the value based on the contract between merchant and PAYJOA. Otherwise, request will fail. + **`digital`** **`*`** **`string`** -**`bypass.daou.PRODUCTCODE`** **`string`** + **Digital contents option** -**Product code** + Must specify the value based on the contract between merchant and PAYJOA. Otherwise, request will fail. -If there is no specification for the value and the value is not specified, i'mport sets it to the default value (iamport) and sends it to PAYJOA. + **`bypass.daou.PRODUCTCODE`** **`string`** -**`bypass.daou.CASHRECEIPTFLAG`** **``** **`integer`** + **Product code** -**Cash receipt issuance code** + If there is no specification for the value and the value is not specified, i'mport sets it to the default value (iamport) and sends it to PAYJOA. -Auto cash receipt issuance code for cash payments (account transfer, virtual account) + **`bypass.daou.CASHRECEIPTFLAG`** **\`\`** **`integer`** -**`1: Allow`** + **Cash receipt issuance code** -**`2: Block`** + Auto cash receipt issuance code for cash payments (account transfer, virtual account) -**`app_scheme`** **`string`** + **`1: Allow`** -**Mobile app URL scheme** + **`2: Block`** -Required in mobile app + **`app_scheme`** **`string`** -**`amount`** **\*** **integer** + **Mobile app URL scheme** -**Payment amount** + Required in mobile app -Must be an integer (not string) + **`amount`** **\*** **integer** -**`escrow`** **`boolean`** + **Payment amount** -**Escrow option** + Must be an integer (not string) -Only supports account transfer and virtual account payment. + **`escrow`** **`boolean`** -
+ **Escrow option** - -#### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** + Only supports account transfer and virtual account payment. + -### Request one-time payment + + **You can use i'mport REST API to request billing key, request payment, and schedule payment.** -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + ### Request one-time payment -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + To request a one-time payment, use the key-in REST[**API POST /subscribe/payments/onetime**](../../../api/api/request-non-authenticated-payment-one-time-api). + The card information is not saved during this process. -### + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -### Request billing key + ### Request billing key -To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer_uid}**](../../../api/billing-key-api/api-1). + To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer\_uid}**](../../../api/billing-key-api/api-1). -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -### Request billing key + initial payment + ### Request billing key + initial payment -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../../api/api/request-non-authenticated-payment-one-time-api). + To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../../api/api/request-non-authenticated-payment-one-time-api). -- **`customer_uid`** : required for saving the billing key. + - **`customer_uid`** : required for saving the billing key. -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -### Request payment with billing key + ### Request payment with billing key -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../../api/api/api)) with the `customer_uid` as follows: + After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../../api/api/api)) with the `customer_uid` as follows: -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -**For detailed information, refer to:** + **For detailed information, refer to:** - - - + +
-### 3. Additional functions +## 3. Additional functions - -```javascript title="javascript" -display: { - card_quota: [6] // Display up to 6 months installment plans -} -``` - -**Parameters** - -- **card_quota :** - - `[]`: Only immediate pay - - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\ + + ```json title="javascript" + { + "display": { + "card_quota": [6], // Display up to 6 months installment plans + } + } + ``` - -Installment plan option is available only for **KRW 50,000 or more**. + **Parameters** - + - **card\_quota :** + - `[]`: Only immediate pay + - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\\ - + + Installment plan option is available only for **KRW 50,000 or more**. + + - -For escrow payment, the **`escrow`** parameter must be set to **true** . When the escrow payment is completed, the merchant must register the shipping information for **settlement**. You can manage shipping information by using the [**Add delivery info**](../../../api/escrow-api/add-delivery-info-api) and [**Update delivery info**](../../../api/escrow-api/update-delivery-info-api) APIs. + + For escrow payment, the **`escrow`** parameter must be set to **true** . + When the escrow payment is completed, the merchant must register the shipping information for **settlement**. + You can manage shipping information by using the [**Add delivery info**](../../../api/escrow-api/add-delivery-info-api) + and [**Update delivery info**](../../../api/escrow-api/update-delivery-info-api) APIs. -```javascript title="API Body Example" -{ - "logis": { + ```json title="API Body Example" + { + "logis": { "invoice": "1728384716123", "company": "CJGLS", "receiving_at": "20220215", "address": "16, Seongsui-ro 20-gil" - }, - "receiver": { + }, + "receiver": { "name": "John DOe" - }, - "sender": { + }, + "sender": { "relationship": "self" + } } -} -``` - - -**Precaution** + ``` -- When adding/updating the escrow delivery information, PAYJOA does not validate the delivery information (tracking number, courier name, etc.) received from the merchant. - - + + **Precaution** - + - When adding/updating the escrow delivery information, PAYJOA does not validate the delivery information + (tracking number, courier name, etc.) received from the merchant. + + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/eximbay.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/eximbay.mdx index 7cad6f0e1..1f551a4d0 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/eximbay.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/eximbay.mdx @@ -4,143 +4,147 @@ description: Eximbay payment window integration guide --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Eximbay PG settings +## 1. Configure Eximbay PG settings Refer to the [**Eximbay settings**](../../ready/2.-pg/payment-gateway-settings/undefined-6) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). In PC and mobile browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'eximbay', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14.20, - currency : 'USD', - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', // Required - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456' -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "eximbay", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14.2, + currency: "USD", + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", // Required + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -#### + ### Key parameter description -### Key parameter description + **`pg`** **\*** **string** -**`pg`** **\***\*\* ****s****tring\*\* + **PG code** -**PG code** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`eximbay`**. -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`eximbay`**. + **`pay_method`** **\*** **string** -**`pay_method`** **\***\*\* ****s****tring\*\* + **Payment method code** -**Payment method code** +
+

Payment method codes

-
-

Payment method codes

- -- `card` (credit card) -- `wechat` -- `alipay` -- `card` (foreign credit card) -- `unionpay` -- `tenpay` -- `econtext` (payment via Japanese convenience store) - -
+ - `card` (credit card) + - `wechat` + - `alipay` + - `card` (foreign credit card) + - `unionpay` + - `tenpay` + - `econtext` (payment via Japanese convenience store) +
-**`merchant_uid`** **\***\*\* ****s****tring\*\* + **`merchant_uid`** **\*** **string** -**Order ID** + **Order ID** -Must be unique for each request.\ + Must be unique for each request. -**`buyer_tel`****`*`****`string`** + **`buyer_tel`****\*****`string`** -**`Customer phone`** + **`Customer phone`** -**`amount`** **\***\*\* ****integer\*\* + **`amount`** **\*** **integer** -**Payment amount** + **Payment amount** -Must be an integer (not string) + Must be an integer (not string) -**`currency`****`string`** + **`currency`****`string`** -**Currency** + **Currency** -- KRW -- USD -- EUR -- GBP -- JPY -- THB -- SGD -- RUB -- HKD -- CAD -- AUD + - KRW + - USD + - EUR + - GBP + - JPY + - THB + - SGD + - RUB + - HKD + - CAD + - AUD -**` language`` `****`string`** + **`language`` `****`string`** -- Korean : ko -- English : en -- Chinese : zh -- Japanese : jp - -
+ - Korean : ko + - English : en + - Chinese : zh + - Japanese : jp +
-### Note - -i'mport does not support Eximbay subscription payment. + ### Note + i'mport does not support Eximbay subscription payment.
-

How to test convenience store payment

+

How to test convenience store payment

+ + ### Convenience store payment method + + As with virtual accounts in Korea, payment is processed at the convenience store counter using the message sent to the customer by e-mail or text message after requesting payment via the payment window. + + - i'mport internally sets pay\_method : vbank + - Sends callback and webhook to notify that Econtext has been created (status: ready / vbank\_num is fixed as unknown) + - When Econtext confirms payment deposit, i'mport receives a response from Eximbay, changes status to `paid`, and sends a webhook for post-payment processing + + ### **Convenience store payment test procedure** + + As with the virtual account, you need to test the result of the customer's deposit and receive a notification upon deposit. -### Convenience store payment method + 1. Set Eximbay test mode to `ON` and proceed with the payment window. -As with virtual accounts in Korea, payment is processed at the convenience store counter using the message sent to the customer by e-mail or text message after requesting payment via the payment window. + 2. Write down the `pg_tid` value from the callback response (check the value from the PG approval number column in the i'mport Admin console) -- i'mport internally sets pay_method : vbank -- Sends callback and webhook to notify that Econtext has been created (status: ready / vbank_num is fixed as unknown) -- When Econtext confirms payment deposit, i'mport receives a response from Eximbay, changes status to `paid`, and sends a webhook for post-payment processing + 3. Log in from [http://test.econ.ne.jp/site/tuchi\_2/tuchi\_menu\_2.html](http://test.econ.ne.jp/site/tuchi_2/tuchi_menu_2.html) \ + (ID: ectest / password: #eg0810# ) -### **Convenience store payment test procedure** + 4. ShopID : 361301, orderID : `pg_tid` (from step 2) -As with the virtual account, you need to test the result of the customer's deposit and receive a notification upon deposit. + 5. Click **登録** button at the bottom -1. Set Eximbay test mode to `ON` and proceed with the payment window. -2. Write down the `pg_tid` value from the callback response (check the value from the PG approval number column in the i'mport Admin console) -3. Log in from [http://test.econ.ne.jp/site/tuchi_2/tuchi_menu_2.html](http://test.econ.ne.jp/site/tuchi_2/tuchi_menu_2.html) \ - (ID: ectest / password: #eg0810# ) -4. ShopID : 361301, orderID : `pg_tid` (from step 2) -5. Click **登録** button at the bottom -6. On the next page, click **登録** button -7. Wait 10 minutes and then check that the status is changed to **paid** (at this point, webhook is sent to notify of the deposit) + 6. On the next page, click **登録** button + 7. Wait 10 minutes and then check that the status is changed to **paid** (at this point, webhook is sent to notify of the deposit)
diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/inicis.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/inicis.mdx index f7eede393..48b9ce626 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/inicis.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/inicis.mdx @@ -6,294 +6,289 @@ description: KG INICIS payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure KG INICIS settings +## 1. Configure KG INICIS settings -Refer to the [**KG INICIS settings**](../../ready/2.-pg/payment-gateway-settings/nhn-kcp-1) page to configure the PG settings. +Refer to the [**KG INICIS settings**](../../ready/2.-pg/payment-gateway-settings/nhn-kcp-1) page +to configure the PG settings. ![](/gitbook-assets/en/7043_14679_1310.jpeg) -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url** . +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url** . - + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "html5_inicis", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` + + ### Key parameter description + + **`pg`** **\*** **string** -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "html5_inicis", - pay_method: "card", - merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 - name: "Order name: Test payment request", - amount: 14000, - buyer_email: "iamport@siot.do", - buyer_name: "John Doe", - buyer_tel: "010-1234-5678", - buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "123-456", - m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile - }, - function (rsp) { - // callback logic - //* ...Omitted... *// - } -); -``` - -#### - -### Key parameter description - -**`pg`** **\*** **s** **tring** - -**PG code** - -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`html5_inicis`**. - -**`pay_method`** **\*** **s** **tring** - -**Payment method code** - -
-

Payment method codes

- -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) -- `samsung`(Samsung Pay hub-type) -- `kakaopay`(Kakao Pay) -- `payco` ( PAYCO hub-type) -- `tosspay` (Toss Simple Pay hub-type) -- `ssgpay` (SSG Pay hub-type) -- `chai` (CHAI Pay) -- `lpay` (LPAY hub-type) -- `naverpay` (Naver Pay) -- `cultureland`(Cultureland) -- `smartculture`(Smart Culture) -- `happymoney`(Happy Money) - -
- -**`merchant_uid`** **\*** **s** **tring** - -**Order ID** - -Must be unique for each request. - -**`amount`** **\*** **integer** - -**Payment amount** - -Must be an integer (not string) - -**`buyer_tel`** **`*`** **`string`** - -**Customer phone number** - -Required - - - -
- - -### You can request for a billing key through the KG INICIS payment window. - -- To open non-authenticated payment window, specify the **customer_uid** parameter. -- After getting a billing key from the window, you can request payment using the billing key. -- **`amount`** parameter is for display purpose only. Actual payment approval is not processed. - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "html5_inicis", - pay_method: "card", // only 'card' supported. - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Initial billing key request", - amount: 0, // For display purpose only (no payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` + **PG code** -### Key parameter description + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`html5_inicis`**. -**`pg`** **\*** **s** **tring** + **`pay_method`** **\*** **string** -**PG code** + **Payment method code** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`html5_inicis`**. +
+

Payment method codes

-> If you have multiple merchant IDs (each for general and subscription) issued by KG INCIS, set to `html5_inicis.{Merchant ID}` or `inicis.{Merchant ID}`(for ActiveX). + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) + - `samsung`(Samsung Pay hub-type) + - `kakaopay`(Kakao Pay) + - `payco` ( PAYCO hub-type) + - `tosspay` (Toss Simple Pay hub-type) + - `ssgpay` (SSG Pay hub-type) + - `chai` (CHAI Pay) + - `lpay` (LPAY hub-type) + - `naverpay` (Naver Pay) + - `cultureland`(Cultureland) + - `smartculture`(Smart Culture) + - `happymoney`(Happy Money) +
-**`customer_uid`** **\*** **string** + **`merchant_uid`** **\*** **string** -**Credit card billing key** + **Order ID** + + Must be unique for each request. -Billing key to be mapped 1:1 with the user-entered credit card information. + **`amount`** **\*** **integer** -**`amount`** **\*** **Integer** + **Payment amount** -**Payment amount** + Must be an integer (not string) -Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer_uid**.)\ + **`buyer_tel`** **`*`** **`string`** -### Request payment with billing key (customer_uid) + **Customer phone number** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + Required -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + +
-
+ + ### You can request for a billing key through the KG INICIS payment window. - -#### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** + - To open non-authenticated payment window, specify the **customer\_uid** parameter. + - After getting a billing key from the window, you can request payment using the billing key. + - **`amount`** parameter is for display purpose only. Actual payment approval is not processed. -### Request one-time payment + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "html5_inicis", + pay_method: "card", // only 'card' supported. + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Initial billing key request", + amount: 0, // For display purpose only (no payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + ### Key parameter description -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + **`pg`** **\*** **string** -### + **PG code** -### Request billing key + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`html5_inicis`**. -To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/billing-key-api/api-1). + > If you have multiple merchant IDs (each for general and subscription) issued by KG INCIS, set to `html5_inicis.{Merchant ID}` or `inicis.{Merchant ID}`(for ActiveX). -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + **`customer_uid`** **\*** **string** -### Request billing key + initial payment + **Credit card billing key** -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + Billing key to be mapped 1:1 with the user-entered credit card information. -- **`customer_uid`** : required for saving the billing key. + **`amount`** **\*** **Integer** -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + **Payment amount** -### Request payment with billing key + Amount to display in the payment window, but actual payment approval is not processed. + (To request payment, use the **REST API with the customer\_uid**.) -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: + ### Request payment with billing key (customer\_uid) -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 + with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: -**For detailed information, refer to:** + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + - + + **You can use i'mport REST API to request billing key, request payment, and schedule payment.** - -
+ ### Request one-time payment -### 3. Additional functions + To request a one-time payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + The card information is not saved during this process. - - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -```javascript title="javascript" -display: { - card_quota: [6]; // Display up to 6 months installment plans -} -``` + ### Request billing key -**Parameters** + To request a billing key, use the billing key request [**REST API POST /subscribe/customers/\{customer\_uid}**](../../api/billing-key-api/api-1). -- **card_quota :** - - `[]`: Only immediate pay - - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\ + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` - -Installment plan option is available only for **KRW 50,000 or more**. + ### Request billing key + initial payment - + To request a billing key and initial payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). - + - **`customer_uid`** : required for saving the billing key. - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` - + ### Request payment with billing key -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - } -} -``` + After successfully getting the billing key and making the initial payment, + the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling the repeat pay + REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: -**Parameters** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -- **code**: [ **Credit card code** ](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. (**integer**) + **For detailed information, refer to:** - + + + - +## 3. Additional functions - + + + ```json title="javascript" + { + "display": { + "card_quota": [6] // Display up to 6 months installment plans + } + } + ``` + + **Parameters** + + - **card\_quota :** + - `[]`: Only immediate pay + - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\\ + + + Installment plan option is available only for **KRW 50,000 or more**. + + + + + + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` -```javascript title="javascript" -card: { - detail: [ - { card_code: "*", enabled: false }, // Disable all credit cards - { card_code: "366", enabled: true }, // Enable specific credit card - ]; -} -``` + **Parameters** -**Parameters** + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **quota**: Installment plan. For immediate, set to 0. (**integer**) + + + + + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` -- **card_code:** [ **Credit card code** ](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **enabled:** Option to enable the credit card (**boolean**) + **Parameters** - + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **enabled:** Option to enable the credit card (**boolean**) + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/jtnet.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/jtnet.mdx index b00d17780..2bf0cb160 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/jtnet.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/jtnet.mdx @@ -6,231 +6,233 @@ description: JTNet payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure JTNet settings +## 1. Configure JTNet settings Refer to the [**JTNET settings**](../../ready/2.-pg/payment-gateway-settings/jtnet) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "jtnet", - pay_method: "card", - merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 - name: "Order name: Test payment request", - amount: 14000, - buyer_email: "iamport@siot.do", - buyer_name: "John Doe", - buyer_tel: "010-1234-5678", - buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "123-456", - m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile - }, - function (rsp) { - // callback logic - //* ...Omitted... *// - } -); -``` - -#### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "jtnet", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`jtnet`**. + **`pg`** **\*** **string** -**`pay_method`** **\***\*\* ****s****tring\*\* + **PG code** -**Payment method code** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`jtnet`**. -
-

Payment method codes

+ **`pay_method`** **\*** **string** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) + **Payment method code** -
+
+

Payment method codes

-**`merchant_uid`** **\***\*\* ****s****tring\*\* + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) +
-**Order ID** + **`merchant_uid`** **\*** **string** -Must be unique for each request. + **Order ID** -**`amount`** **\***\*\* ****integer\*\* + Must be unique for each request. -**Payment amount** + **`amount`** **\*** **integer** -Must be an integer (not string) + **Payment amount** - + Must be an integer (not string) -
+ +
- -To open non-authenticated payment window, specify the **customer\_uid** parameter. + + To open non-authenticated payment window, specify the **customer\_uid** parameter. - -#### **amount** + + #### **amount** -- If requesting **both billing key and initial payment**, specify the payment amount. -- If only requesting for billing key, set to **0**. + - If requesting **both billing key and initial payment**, specify the payment amount. + - If only requesting for billing key, set to **0**. + - + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "jtnet", + pay_method: "card", // only 'card' supported. + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Initial billing key request", + amount: 0, // For display purpose only (no payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "jtnet", - pay_method: "card", // only 'card' supported. - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Initial billing key request", - amount: 0, // For display purpose only (no payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* - -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`jtnet`**. + **`pg`** **\*** **string** -> + **PG code** -**`customer_uid`** **\***\*\* ****string\*\* + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`jtnet`**. -**Credit card billing key** + > -Billing key to be mapped 1:1 with the user-entered credit card information. + **`customer_uid`** **\*** **string** -**`amount`** **\***\*\* ****Integer\*\* + **Credit card billing key** -**Payment amount** + Billing key to be mapped 1:1 with the user-entered credit card information. -0: only billing key, **> 0: billing key + initial payment**\ + **`amount`** **\*** **Integer** -### Request payment with billing key (customer_uid) + **Payment amount** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + 0: only billing key, **> 0: billing key + initial payment**\\ -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ### Request payment with billing key (customer\_uid) - + After successfully getting the billing key, the billing key is **stored on the i'mport server** + mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: - -#### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -### Request one-time payment + + **You can use i'mport REST API to request billing key, request payment, and schedule payment.** -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + ### Request one-time payment -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + To request a one-time payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. -### + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -### Request billing key + ### Request billing key -To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/billing-key-api/api-1). + To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/billing-key-api/api-1). -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -### Request billing key + initial payment + ### Request billing key + initial payment -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). -- **`customer_uid`** : required for saving the billing key. + - **`customer_uid`** : required for saving the billing key. -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -### Request payment with billing key + ### Request payment with billing key -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: + After successfully getting the billing key and making the initial payment, + the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) + with the `customer_uid` as follows: -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -**For detailed information, refer to:** + **For detailed information, refer to:** - - - + +
-### 3. Additional functions +## 3. Additional functions - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` - -**Parameters** - -- **card_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** -- **enabled:** Option to enable the credit card (**boolean)** - - + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` + + **Parameters** + + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** + - **enabled:** Option to enable the credit card (**boolean)** + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/kg-mobilians.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/kg-mobilians.mdx index a37496b30..9aac1b71d 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/kg-mobilians.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/kg-mobilians.mdx @@ -5,161 +5,168 @@ description: KG Mobilians payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure KG Mobilians PG Settings +## 1. Configure KG Mobilians PG Settings Refer to the [**KG Mobilians settings**](../../ready/2.-pg/payment-gateway-settings/kg) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'mobilians', - pay_method : 'phone', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', //required - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* - -**PG code** - -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`mobilians`**. + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "mobilians", + pay_method: "phone", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", //required + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**`pay_method`** **\***\*\* ****s****tring\*\* + ### Key parameter description -**Payment method code** + **`pg`** **\*** **string** -
-

Payment method codes

+ **PG code** -- `card` (credit card) -- `trans`(instant account transfer) -- `phone`(mobile micropayment) + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`mobilians`**. -
+ **`pay_method`** **\*** **string** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **Payment method code** -**Order ID** +
+

Payment method codes

-Must be unique for each request. + - `card` (credit card) + - `trans`(instant account transfer) + - `phone`(mobile micropayment) +
-**`buyer_tel`****`*`****`string`** + **`merchant_uid`** **\*** **string** -**Customer phone number** + **Order ID** -Required + Must be unique for each request. -**`amount`** **\***\*\* ****integer\*\* + **`buyer_tel`****`*`** **`string`** -**Payment amount** + **Customer phone number** -Must be an integer (not string) + Required - + **`amount`** **\*** **integer** -
+ **Payment amount** - -To open non-authenticated payment window, specify the **customer\_uid** parameter. After getting a billing key from this window, you can request payment using the billing key. + Must be an integer (not string) -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "mobilians", - pay_method: "phone", - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Initial billing key request", - amount: 0, // For display purpose only (no payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` + + -#### + + To open non-authenticated payment window, specify the **customer\_uid** parameter. + After getting a billing key from this window, you can request payment using the billing key. - -- To request non-authenticated payment, you must set the **MID info issued by KG Mobilians** in the Admin console. -- KG Mobilians **does not process the payment** when issuing the billing key even if you specify an amount. -- Subsequent payments using the billing key must be for the **same amount and on the same day** as the initial payment on monthly basis. + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "mobilians", + pay_method: "phone", + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Initial billing key request", + amount: 0, // For display purpose only (no payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` - + + - To request non-authenticated payment, you must set the **MID info issued by KG Mobilians** in the Admin console. -### Key parameter description + - KG Mobilians **does not process the payment** + when issuing the billing key even if you specify an amount. -**`pg`** **\***\*\* ****s****tring\*\* + - Subsequent payments using the billing key must be for + the **same amount and on the same day** + as the initial payment on monthly basis. + -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`mobilians.[MID]`**. + **`pg`** **\*** **string** -**`customer_uid`** **\***\*\* ****string\*\* + **PG code** -**Credit card billing key** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`mobilians.[MID]`**. -Billing key to be mapped 1:1 with the user-entered credit card information. + **`customer_uid`** **\*** **string** -**`amount`** **\***\*\* ****Integer\*\* + **Credit card billing key** -**Payment amount** + Billing key to be mapped 1:1 with the user-entered credit card information. -Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer_uid**.)\ + **`amount`** **\*** **Integer** -### Request payment with billing key (customer_uid) + **Payment amount** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + Amount to display in the payment window, but actual payment approval is not processed. + (To request payment, use the **REST API with the customer\_uid**.)\\ -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ### Request payment with billing key (customer\_uid) - + After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling the + [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: - -#### **Not supported.** + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -
+ + #### **Not supported.** +
diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/kicc.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/kicc.mdx index 1ad8bf70a..838b3ef6b 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/kicc.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/kicc.mdx @@ -5,265 +5,270 @@ description: KICC payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure KICC PG settings +## 1. Configure KICC PG settings Refer to the [**KICC settings**](../../ready/2.-pg/payment-gateway-settings/kicc) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url** . +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url** . - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kicc", - pay_method: "card", - merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 - name: "Order name: Test payment request", - amount: 14000, - buyer_email: "iamport@siot.do", - buyer_name: "John Doe", - buyer_tel: "010-1234-5678", - buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "123-456", - m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile - }, - function (rsp) { - // callback logic - //* ...Omitted... *// - } -); -``` - -### - -### Key parameter description - -**`pg`** **\*** **s** **tring** - -**PG code** - -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`kicc`**. + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kicc", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**`pay_method`** **\*** **s** **tring** + ### Key parameter description -**Payment method code** + **`pg`** **\*** **string** -
-

Payment method codes

+ **PG code** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`kicc`**. -
+ **`pay_method`** **\*** **string** -**`merchant_uid`** **\*** **s** **tring** + **Payment method code** -**Order ID** +
+

Payment method codes

-Must be unique for each request. + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) +
-**`buyer_tel`** **`*`** **`string`** + **`merchant_uid`** **\*** **string** -**Customer phone number** + **Order ID** -**`amount`** **\*** **integer** + Must be unique for each request. -**Payment amount** + **`buyer_tel`** **`*`** **`string`** -Must be an integer (not string) + **Customer phone number** -**`escrow`** **`boolean`** + **`amount`** **\*** **integer** -**Escrow option** + **Payment amount** -Only supports account transfer and virtual account payment. + Must be an integer (not string) - -
+ **`escrow`** **`boolean`** - -To open non-authenticated payment window, specify the **customer\_uid** parameter. After getting a billing key from this window, you can request payment using the billing key. + **Escrow option** -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kicc", - pay_method: "card", // only 'card' supported. - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Initial billing key request", - amount: 0, // For display purpose only (no payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` + Only supports account transfer and virtual account payment. -#### + + - -- To request non-authenticated payment, you must set the **MID info issued by KICC** in the Admin console. -- KICC **does not process the payment** when issuing the billing key even if you specify an amount. + + To open non-authenticated payment window, specify the **customer\_uid** parameter. After getting a billing key from this window, you can request payment using the billing key. - + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kicc", + pay_method: "card", // only 'card' supported. + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Initial billing key request", + amount: 0, // For display purpose only (no payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` -### Key parameter description + #### -**`pg`** **\*** \*\* ** **s** **tring\*\* + + - To request non-authenticated payment, you must set the **MID info issued by KICC** in the Admin console. + - KICC **does not process the payment** when issuing the billing key even if you specify an amount. + -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`kicc.[billing MID]`**. + **`pg`** **\*** **string** -**`customer_uid`** **\*** **string** + **PG code** -**Credit card billing key** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`kicc.[billing MID]`**. -Billing key to be mapped 1:1 with the user-entered credit card information. + **`customer_uid`** **\*** **string** -**`amount`** **\*** **Integer** + **Credit card billing key** -**Payment amount** + Billing key to be mapped 1:1 with the user-entered credit card information. -Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer_uid**.)\ + **`amount`** **\*** **Integer** -### Request payment with billing key (customer_uid) + **Payment amount** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer\_uid**.)\\ -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ### Request payment with billing key (customer\_uid) -
+ After successfully getting the billing key, the billing key is **stored on the i'mport server** + mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: - -#### **Not supported.** + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + - + + #### **Not supported.** +
### 3. Additional functions - -KICC supports escrow payments only for **cash payment methods** (instant account transfer or virtual bank account). - -> To enable escrow payment, first set the following parameters and then configure additional parameters below. -> -> - **escrow : true** - -### Additional parameters - -When making an escrow payment, you must enter the following required parameters: - -- `buyer_name` : Customer name -- `buyer_email` : Customer email -- `buyer_tel` : Customer phone number -- `kiccProducts` : An array of objects consisting of the following 4 required properties. The `amount` value has no relation to the payment amount (`param.amount`) value and is not used for comparison. - - `orderNumber` : Product order number - - `name` : Product name - - `quantity` : Quantity - - `amount` : Product price - -```javascript title="JavaScript SDK" -IMP.request_pay({ - ... - escrow : true, // Required for escrow payment - kiccProducts : [ - { - "orderNumber" : "xxxx", - "name" : "Product A", - "quantity" : 3, - "amount" : 1000 - }, - { - "orderNumber" : "yyyy", - "name" : "Product B", - "quantity" : 2, - "amount" : 3000 - } - ] - ... -}, function(rsp) { // callback logic - //* ...Omitted ... *// -}); -``` - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 + + KICC supports escrow payments only for **cash payment methods** (instant account transfer or virtual bank account). + + > To enable escrow payment, first set the following parameters and then configure additional parameters below. + > + > - **escrow : true** + + ### Additional parameters + + When making an escrow payment, you must enter the following required parameters: + + - `buyer_name` : Customer name + + - `buyer_email` : Customer email + + - `buyer_tel` : Customer phone number + + - `kiccProducts` : An array of objects consisting of the following 4 required properties. The `amount` value has no relation to the payment amount (`param.amount`) value and is not used for comparison. + - `orderNumber` : Product order number + - `name` : Product name + - `quantity` : Quantity + - `amount` : Product price + + ```ts title="JavaScript SDK" + IMP.request_pay( + { + escrow: true, // Required for escrow payment + kiccProducts: [ + { + orderNumber: "xxxx", + name: "Product A", + quantity: 3, + amount: 1000, + }, + { + orderNumber: "yyyy", + name: "Product B", + quantity: 2, + amount: 3000, + }, + ], + }, + function (rsp) { + // callback logic + //* ...Omitted ... *// + }, + ); + ``` + + + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } } -} -``` - -**Parameters** - -- **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. (**integer**) - - -**Precautions** - -- Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support. - - - - - - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` - -**Parameters** + ``` + + **Parameters** + + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **quota**: Installment plan. For immediate, set to 0. (**integer**) + + + **Precautions** + + - Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. + You must check your Merchant ID with each PG for direct call support. + + + + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` -- **card_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** -- **enabled:** Option to enable the credit card (**boolean)** + **Parameters** - + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** + - **enabled:** Option to enable the credit card (**boolean)** -**Example of enabling only ****Shinhan Card**** payment -window**" /> + - + **Example of enabling only ****Shinhan Card**** payment + window** + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/nhh-kcp.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/nhh-kcp.mdx index 0c50197fb..6ea521495 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/nhh-kcp.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/nhh-kcp.mdx @@ -6,486 +6,519 @@ description: NHN KCP payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure NHH KCP PG settings +## 1. Configure NHH KCP PG settings -Refer to the [**NHN KCP settings**](../../ready/2.-pg/payment-gateway-settings/nhn-kcp) page to configure the PG settings. +Refer to the [**NHN KCP settings**](../../ready/2.-pg/payment-gateway-settings/nhn-kcp) page +to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'kcp', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - language : 'ko', // default: ko (Korean) - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* - -**PG code** - -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to `kcp`. - -**`pay_method`** **\***\*\* ****s****tring\*\* - -**Payment method code** - -
-

Payment method codes

- -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) -- `samsung`(Samsung Pay) -- `kakaopay`(Kakao Pay) -- `payco` ( PAYCO hub-type) -- `lpay` (LPAY hub-type) -- `naverpay` (Naver Pay) -- `cultureland`(Cultureland) -- `smartculture`(Smart Culture) -- `happymoney`(Happy Money) -- `booknlife`(Book culture gift certificate) -- `point`(Benepia) - -
- -**`merchant_uid`** **\***\*\* ****s****tring\*\* - -**Order ID** - -Must be unique for each request. - -**`amount`** **\***\*\* ****integer\*\* - -**Payment amount** - -Must be an integer (not string). - - -**For Payco hub-type**, you must apply through KCP Admin page and configure the settings. - -How to apply: [https://sir.kr/main/service/p_payco_hub.php](https://sir.kr/main/service/p_payco_hub.php) - - - - -
- - -To open non-authenticated payment window, specify the **customer\_uid** parameter. After getting a billing key from this window, you can request payment using the billing key. - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kcp_billing", - pay_method: "card", // only 'card' supported. - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Initial billing key request", - amount: 0, // For display purpose only (no payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` - - -* To request non-authenticated payment, you must set the **site code issued by KCP** in the Admin console. -* KCP **does not process the payment** when issuing the billing key even if you specify an amount. - - + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kcp", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + language: "ko", // default: ko (Korean) + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` + + ### Key parameter description + + **`pg`** **\*** **string** + + **PG code** + + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to `kcp`. + + **`pay_method`** **\*** **string** + + **Payment method code** + +
+

Payment method codes

+ + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) + - `samsung`(Samsung Pay) + - `kakaopay`(Kakao Pay) + - `payco` ( PAYCO hub-type) + - `lpay` (LPAY hub-type) + - `naverpay` (Naver Pay) + - `cultureland`(Cultureland) + - `smartculture`(Smart Culture) + - `happymoney`(Happy Money) + - `booknlife`(Book culture gift certificate) + - `point`(Benepia) +
+ + **`merchant_uid`** **\*** **string** + + **Order ID** + + Must be unique for each request. + + **`amount`** **\*** **integer** + + **Payment amount** + + Must be an integer (not string). + + + **For Payco hub-type**, you must apply through KCP Admin page and configure the settings. + + How to apply: [https://sir.kr/main/service/p\_payco\_hub.php](https://sir.kr/main/service/p_payco_hub.php) + + + +
+ + + To open non-authenticated payment window, specify the **customer\_uid** parameter. + After getting a billing key from this window, you can request payment using the billing key. -### Key parameter description + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kcp_billing", + pay_method: "card", // only 'card' supported. + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Initial billing key request", + amount: 0, // For display purpose only (no payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` -**`pg`** **\***\*\* ****s****tring\*\* + + - To request non-authenticated payment, you must set the **site code issued by KCP** in the Admin console. -**PG code** + - KCP **does not process the payment** + when issuing the billing key even if you specify an amount. + -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to `kcp_billing`. + ### Key parameter description -**`customer_uid`** **\***\*\* ****string\*\* + **`pg`** **\*** **string** -**Credit card billing key** + **PG code** -Billing key to be mapped 1:1 with the user-entered credit card information. + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to `kcp_billing`. -**`amount`** **\***\*\* ****Integer\*\* + **`customer_uid`** **\*** **string** -**Payment amount** + **Credit card billing key** -Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer_uid**.)\ + Billing key to be mapped 1:1 with the user-entered credit card information. -### Request payment with billing key (customer_uid) + **`amount`** **\*** **Integer** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + **Payment amount** -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + Amount to display in the payment window, but actual payment approval is not processed. + (To request payment, use the **REST API with the customer\_uid**.)\\ - + ### Request payment with billing key (customer\_uid) - -#### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** + After successfully getting the billing key, the billing key is **stored on the i'mport server** + mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: -### Request one-time payment + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + + **You can use i'mport REST API to request billing key, request payment, and schedule payment.** -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + ### Request one-time payment -### + To request a one-time payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + The card information is not saved during this process. -### Request billing key + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/billing-key-api/api-1). + ### Request billing key -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/billing-key-api/api-1). -### Request billing key + initial payment + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + ### Request billing key + initial payment -- **`customer_uid`** : required for saving the billing key. + To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : required for saving the billing key. -### Request payment with billing key + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: + ### Request payment with billing key -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + After successfully getting the billing key and making the initial payment, + the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) + with the `customer_uid` as follows: -**For detailed information, refer to:** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + **For detailed information, refer to:** - + +
-### 3. Additional functions +## 3. Additional functions - -```javascript title="javascript" -display: { - card_quota: [6] // Display up to 6 months installment plans -} -``` - -**Parameters** - -- **card_quota :** - - `[]`: Only immediate pay - - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\ - - -Installment plan option is available only for **KRW 50,000 or more**. - - - - -Example of allowing up to **3 months**** -installment plans**" /> - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - // When want to use points of credit card - // quota: 80 = 80(Hyundai Card Point installment) + 0(pay all at once) - // quota: 93 = 80(Hyundai Card Point installment) + 13(number of installments) - // quota: 60 = 60(Other Card Point installment) + 0(pay all at once) - // quota: 63 = 60(Other Card Point installment) + 3(number of installments) + + ```json title="javascript" + { + "display": { + "card_quota": [6] // Display up to 6 months installment plans + } } -} -``` - -**Parameters** - -- **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. If you want to use points of credit card, you need to add the point installment per credit card[1] to number of installments (**integer**) -
- [1] point installment per credit card - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Point of Credit Card

-
-

Point Installment

-
-

Hyundai M

-
-

+80

-
-

Kookmin

-
-

+60

-
-

BC

-
-

+60

-
-

Samsung

-
-

+60

-
-

Hana/KEB

-
-

+60

-
-

Lotte

-
-

+60

-
-

Shinhan

-
-

+60

-
-

NongHyup

-
-

+60

-
-

Citi

-
-

+60

-
-

Woori

-
-

+60

-
-
- - -**Precautions** - -- Currently, direct call to the credit card company's payment window is only supported by 6 PGs: **KG Inicis, KCP, Toss Payments, Nice Payments, KICC, and Danal**. -- Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support. - - - - - -
- - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` - -**Parameters** - -- **card_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** -- **enabled:** Option to enable the credit card (**boolean)** - - - - - - -Set the following parameter to only expose app cards for authenticated payments. - -```javascript title="request_pay()" -... -appCard : true . // Set to true to only expose app cards. -... -``` - - -
+ ``` -### 4. Additional parameters + **Parameters** - - -To use the **gift certificate payment method**, set the merchant assigned user ID as follows: - -```javascript title="javascript SDK " -bypass : { - shop_user_id : ‘ABCD123’ // Merchant user ID (20 bytes) -} -``` - - -**This parameter is required for gift certificate providers' RM action.** - - - -**Example of paying with Cultureland gift certificate** - -```javascript -MP.request_pay({ - pg : 'kcp.{Site code for gift certificate use}', - pay_method : 'cultureland', //Gift certificate - merchant_uid: "A00021-TEST", - name : 'Carrots 10kg', - amount : 1004, - buyer_email : 'iamport@chai.finance', - buyer_name : 'iamport tech support', - buyer_tel : '010-1234-5678', - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - bypass : { - shop_user_id : 'abaddd' // Merchant user ID - } -} -``` + - **card\_quota :** + - `[]`: Only immediate pay + - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\\ - + + Installment plan option is available only for **KRW 50,000 or more**. + - -For escrow payment, set the **`escrow`** parameter to **true**. To bundle products in the shopping cart when making an escrow payment request, pass the item-related information as an additional parameter (**`kcpProducts`**). + -**`kcpProducts`** is an object array consisting of the following four required properties: + Example of allowing up to **3 months** + **installment plans** + -**`amount`** is not related or compared with the payment amount (`param.amount`). + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + // When want to use points of credit card + // quota: 80 = 80(Hyundai Card Point installment) + 0(pay all at once) + // quota: 93 = 80(Hyundai Card Point installment) + 13(number of installments) + // quota: 60 = 60(Other Card Point installment) + 0(pay all at once) + // quota: 63 = 60(Other Card Point installment) + 3(number of installments) + } + } + } + ``` + + **Parameters** + + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + + - **quota**: Installment plan. For immediate, set to 0. If you want to use points of credit card, you need to add the point installment per credit card\[1] to number of installments (**integer**) + +
+ \[1] point installment per credit card + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Point of Credit Card

+
+

Point Installment

+
+

Hyundai M

+
+

+80

+
+

Kookmin

+
+

+60

+
+

BC

+
+

+60

+
+

Samsung

+
+

+60

+
+

Hana/KEB

+
+

+60

+
+

Lotte

+
+

+60

+
+

Shinhan

+
+

+60

+
+

NongHyup

+
+

+60

+
+

Citi

+
+

+60

+
+

Woori

+
+

+60

+
+
+ + + **Precautions** + + - Currently, direct call to the credit card company's payment window is only supported by 6 PGs: + **KG Inicis, KCP, Toss Payments, Nice Payments, KICC, and Danal**. + + - Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. + You must check your Merchant ID with each PG for direct call support. + + + +
+ + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` + + **Parameters** -- orderNumber : Order ID -- name : Product name -- quantity : Product quantity -- amount : Product price + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** + - **enabled:** Option to enable the credit card (**boolean)** -```javascript title="JavaScript SDK" -IMP.request_pay({ - pg: "kcp", - escrow: true, // For escrow payment - kcpProducts: [ + + + + + Set the following parameter to only expose app cards for authenticated payments. + + ```json title="request_pay()" { - orderNumber: "xxxx", - name: "Product A", - quantity: 3, - amount: 1000, - }, + "appCard": true // Set to true to only expose app cards. + } + ``` + +
+ +## 4. Additional parameters + + + + To use the **gift certificate payment method**, set the merchant assigned user ID as follows: + + ```json title="javascript SDK" { - orderNumber: "yyyy", - name: "Product B", - quantity: 2, - amount: 3000, - }, - ], - //* ...Omitted... *// -}); -``` - - + "bypass": { + "shop_user_id": "ABCD123" // Merchant user ID (20 bytes) + } + } + ``` + + + **This parameter is required for gift certificate providers' RM action.** + + + **Example of paying with Cultureland gift certificate** + + ```ts + IMP.request_pay({ + pg: "kcp.{Site code for gift certificate use}", + pay_method: "cultureland", //Gift certificate + merchant_uid: "A00021-TEST", + name: "Carrots 10kg", + amount: 1004, + buyer_email: "iamport@chai.finance", + buyer_name: "iamport tech support", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + bypass: { + shop_user_id: "abaddd", // Merchant user ID + }, + }); + ``` + + + + For escrow payment, set the **`escrow`** parameter to **true**. + To bundle products in the shopping cart when making an escrow payment request, + pass the item-related information as an additional parameter (**`kcpProducts`**). + + **`kcpProducts`** is an object array consisting of the following four required properties: + + **`amount`** is not related or compared with the payment amount (`param.amount`). + + - orderNumber : Order ID + - name : Product name + - quantity : Product quantity + - amount : Product price + + ```ts title="JavaScript SDK" + IMP.request_pay({ + pg: "kcp", + escrow: true, // For escrow payment + kcpProducts: [ + { + orderNumber: "xxxx", + name: "Product A", + quantity: 3, + amount: 1000, + }, + { + orderNumber: "yyyy", + name: "Product B", + quantity: 2, + amount: 3000, + }, + ], + //* ...Omitted... *// + }); + ``` + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/nice.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/nice.mdx index 62178fb2d..a786c42e7 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/nice.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/nice.mdx @@ -5,243 +5,228 @@ description: NICE Payments payment window integration guideNICE import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure NICE Payments PG settings +## 1. Configure NICE Payments PG settings -Refer to the [**NICE Payments settings**](../../ready/2.-pg/payment-gateway-settings/nice-payments) page to configure the PG settings. +Refer to the [**NICE Payments settings**](../../ready/2.-pg/payment-gateway-settings/nice-payments) +page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url** . +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url** . - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "nice", - pay_method: "card", - merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 - name: "Order name: Test payment request", - amount: 14000, - buyer_email: "iamport@siot.do", - buyer_name: "John Doe", - buyer_tel: "010-1234-5678", - buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", - buyer_postcode: "123-456", - m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile - niceMobileV2: true, // Set to 'true' to enable new mobile version - }, - function (rsp) { - // callback logic - //* ...Omitted... *// - } -); -``` - -#### - -### Key parameter description + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "nice", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + niceMobileV2: true, // Set to 'true' to enable new mobile version + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**`pg`** **\*** **s** **tring** + ### Key parameter description -**PG code** + **`pg`** **\*** **string** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`nice`**. + **PG code** -**`pay_method`** **\*** **s** **tring** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`nice`**. -**Payment method code** + **`pay_method`** **\*** **string** -
-

Payment method codes

+ **Payment method code** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `samsung`(Samsung Pay) -- `phone`(mobile micropayment) -- `kakaopay`(Kakao Pay) -- `payco` ( PAYCO hub-type) -- `naverpay` (Naver Pay) +
+

Payment method codes

-
+ - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `samsung`(Samsung Pay) + - `phone`(mobile micropayment) + - `kakaopay`(Kakao Pay) + - `payco` ( PAYCO hub-type) + - `naverpay` (Naver Pay) +
-**`merchant_uid`** **\*** **s** **tring** + **`merchant_uid`** **\*** **string** -**Order ID** + **Order ID** -Must be unique for each request. + Must be unique for each request. -**`amount`** **\*** **integer** + **`amount`** **\*** **integer** -**Payment amount** + **Payment amount** -Must be an integer (not string). + Must be an integer (not string). -**`niceMobileV2`** **`boolean`** + **`niceMobileV2`** **`boolean`** -Option to enable new NICE mobile version (default: false) + Option to enable new NICE mobile version (default: false) -**`escrow`** **`boolean`** + **`escrow`** **`boolean`** -**Ecrow option** + **Ecrow option** - + +
-
+ + **You can use i'mport REST API to request billing key, request payment, and schedule payment.** - -#### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** + ### Request one-time payment -### Request one-time payment + To request a one-time payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + The card information is not saved during this process. -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + ### Request billing key -### + To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/billing-key-api/api-1). -### Request billing key + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/billing-key-api/api-1). + ### Request billing key + initial payment -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). -### Request billing key + initial payment + - **`customer_uid`** : required for saving the billing key. -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -- **`customer_uid`** : required for saving the billing key. + ### Request payment with billing key -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + After successfully getting the billing key and making the initial payment, + the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) + with the `customer_uid` as follows: -### Request payment with billing key + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: + + **NICE Payments supports non-authenticated payments only through the API method.** -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` - - -**NICE Payments supports non-authenticated payments only through the API method.** - -To integrate non-authenticated payments, you need to provide a UI for accepting user's card information. For more information, refer to the [**REST API**](../../auth/guide-1/bill/rest-api) page. - - - - + To integrate non-authenticated payments, you need to provide a UI for accepting user's card information. + For more information, refer to the [**REST API**](../../auth/guide-1/bill/rest-api) page. + +
-### 3. Additional functions +## 3. Additional functions - - -```javascript title="javascript" -display: { - card_quota: [6]; // Display up to 6 months installment plans -} -``` - -**Parameters** - -- **card_quota :** - - `[]`: Only immediate pay - - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans - - -Installment plan option is available only for **KRW 50,000 or more**. - - - - - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 + + ```json title="javascript" + { + "display": { + "card_quota": [6] // Display up to 6 months installment plans + } } -} -``` - -**Parameters** - -- **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. (**integer**) - - -**Precautions** + ``` + + **Parameters** + + - **card\_quota :** + - `[]`: Only immediate pay + - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans + + + Installment plan option is available only for **KRW 50,000 or more**. + + + + + + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` -- Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support. + **Parameters** - + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **quota**: Installment plan. For immediate, set to 0. (**integer**) - + + **Precautions** - + - Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. + You must check your Merchant ID with each PG for direct call support. + - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` + + -**Parameters** + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` -- **card_code:** [ **Credit card code** ](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **enabled:** Option to enable the credit card (**boolean**) + **Parameters** - + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **enabled:** Option to enable the credit card (**boolean**) - + + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/paymentwall.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/paymentwall.mdx index 3163f5cce..42f92d079 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/paymentwall.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/paymentwall.mdx @@ -3,106 +3,107 @@ title: Paymentwall description: Paymentwall payment window integration guide --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 1. Configure Paymentwall PG settings +## 1. Configure Paymentwall PG settings Refer to the [**Paymentwall settings**](../../ready/2.-pg/payment-gateway-settings/undefined-1) page to configure the PG settings. ![](/gitbook-assets/en/Paymentwall_logo_dark_latest.jpeg) -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'paymentwall', - pay_method : 'card', // In Paymentwall, the payment method is activated based on the country IP. (Can be omitted) - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - currency : 'KRW' // required - buyer_email : 'iamport@siot.do', // required - buyer_name : 'Jack Son', // Must include a space between Firstname Lastname - buyer_tel : '010-1234-5678', - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}', // Example: https://www.my-service.com/payments/complete/mobile - bypass: { - // Set this for Terminal 3 only, Defualt: general payment window opens - widget_code: "t3_1", - // Set to enable specific payment method, set to 'all'(default) to enable all methods supported by your country - ps : "all", - country_code:"DE" // Set this to enable all payment methods supported by the country - }, -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "paymentwall", + pay_method: "card", // In Paymentwall, the payment method is activated based on the country IP. (Can be omitted) + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + currency: "KRW", // required + buyer_email: "iamport@siot.do", // required + buyer_name: "Jack Son", // Must include a space between Firstname Lastname + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + bypass: { + // Set this for Terminal 3 only, Defualt: general payment window opens + widget_code: "t3_1", + // Set to enable specific payment method, set to 'all'(default) to enable all methods supported by your country + ps: "all", + country_code: "DE", // Set this to enable all payment methods supported by the country + }, + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`paymentwall`**. + **`pg`** **\*** **string** -**`pay_method`** **s****tring** + **PG code** -**Payment method code (Can be omitted)** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`paymentwall`**. -You can manage your payment methods by enabling Project from the [Paymentwall website](https://api.paymentwall.com/). + **`pay_method`** **string** -(Payment methods are enabled based on your country IP by default) + **Payment method code (Can be omitted)** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + You can manage your payment methods by enabling Project from the [Paymentwall website](https://api.paymentwall.com/). -**Order ID** + (Payment methods are enabled based on your country IP by default) -Must be unique for each request. + **`merchant_uid`** **\*** **string** -**`amount`** **\***\*\* ****integer\*\* + **Order ID** -**Payment amount** + Must be unique for each request. -Must be an integer (not string) + **`amount`** **\*** **integer** -**`buyer_name`****`*`****`string`** + **Payment amount** -**`Customer name`** + Must be an integer (not string) -**`buyer_email`****`*`****`string`** + **`buyer_name`****`*`****`string`** -**`Customer email address`** + **`Customer name`** -**`currency`****`*`****`string`** + **`buyer_email`****`*`****`string`** -**`Currency`** + **`Customer email address`** -**`bypass`** + **`currency`****`*`****`string`** -**`Paymentwall specific parameter`** + **`Currency`** -- **`widget_code` :** Set this to **t3_1** for Terminal 3 only, Defualt: general payment window -- **`ps` :** Set to enable specific payment method. For available codes, refer to [**Payment system short codes**](https://docs.paymentwall.com/reference/payment-system-shortcodes). Example: `kakaopaykr` = Kakao Pay -- **country_code** : Payment methods are shown based on this code. ([**Country codes**](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + **`bypass`** - + **`Paymentwall specific parameter`** - -**Preparing for service** + - **`widget_code` :** Set this to **t3\_1** for Terminal 3 only, Defualt: general payment window + - **`ps` :** Set to enable specific payment method. For available codes, refer to [**Payment system short codes**](https://docs.paymentwall.com/reference/payment-system-shortcodes). Example: `kakaopaykr` = Kakao Pay + - **country\_code** : Payment methods are shown based on this code. ([**Country codes**](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)) + - + + **Preparing for service** + diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/paypal.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/paypal.mdx index f19fd008e..ae507ae79 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/paypal.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/paypal.mdx @@ -4,97 +4,96 @@ description: PayPal payment window integration guide --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure PayPal PG settings +## 1. Configure PayPal PG settings Refer to the [**PayPal settings**](../../ready/2.-pg/payment-gateway-settings/undefined-5) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC and mobile browsers, the page is redirected to **m_redirect_url**. +In PC and mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'paypal', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14.20, - currency : 'USD' // default: USD (KRW not supported) - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', // Required - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456' - m_redirect_url : '{URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "paypal", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14.2, + currency: "USD", // default: USD (KRW not supported) + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", // Required + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -#### + ### Key parameter description -### Key parameter description + **`pg`** **\*** **string** -**`pg`** **\***\*\* ****s****tring\*\* + **PG code** -**PG code** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`paypal`**. -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`paypal`**. + **`pay_method`** **\*** **string** -**`pay_method`** **\***\*\* ****s****tring\*\* + **Payment method code** -**Payment method code** +
+

Payment method codes

-
-

Payment method codes

+ - `card` (credit card) +
-- `card` (credit card) + **`merchant_uid`** **\*** **string** -
+ **Order ID** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + Must be unique for each request. -**Order ID** + **`amount`** **\*** **integer** -Must be unique for each request. + **Payment amount** -**`amount`** **\***\*\* ****integer\*\* + Must be an integer (not string)\ + \ + **`currency`****`*`****`string`** -**Payment amount** + **Currency** -Must be an integer (not string)\ -\ -**`currency`****`*`****`string`** + For supported currencies, refer to [PayPal currency codes](https://developer.paypal.com/docs/api/reference/currency-codes/#paypal-account-payments). -**Currency** + **`m_redirect_url`****`*`****`string`** -For supported currencies, refer to [PayPal currency codes](https://developer.paypal.com/docs/api/reference/currency-codes/#paypal-account-payments). + **Redirect URL** -**`m_redirect_url`****`*`****`string`** - -**Redirect URL** - -Required in both PC and mobile to receive payment result. - -
+ Required in both PC and mobile to receive payment result. +
-### Note - -i'mport does not support PayPal subscription payment. + ### Note + i'mport does not support PayPal subscription payment. diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/readme.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/readme.mdx index 36434112e..53b797357 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/readme.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/readme.mdx @@ -3,4 +3,4 @@ title: Payment gateways description: Learn how to integrate with each PG. --- -### Learn how to integrate authenticated and non-authenticated payments by PG. +Learn how to integrate authenticated and non-authenticated payments by PG. diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/settlebank.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/settlebank.mdx index 72763a2f5..0bcc5b9e1 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/settlebank.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/settlebank.mdx @@ -6,148 +6,150 @@ description: Settlebank payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure **Settlebank** PG settings +## 1. Configure **Settlebank** PG settings -Refer to the [**Settlebank settings**](../../ready/2.-pg/payment-gateway-settings/undefined-3) page to configure the PG settings. +Refer to the [**Settlebank settings**](../../ready/2.-pg/payment-gateway-settings/undefined-3) page +to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'settle', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', // Required - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - company : 'iamport', // Recommended for virtual account payment - buyer_postcode : '123-456', - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* - -**PG code** - -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`settle`**. - -**`pay_method`** **\***\*\* ****s****tring\*\* + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "settle", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", // Required + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + company: "iamport", // Recommended for virtual account payment + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**Payment method code** + ### Key parameter description -
-

Payment method codes

+ **`pg`** **\*** **string** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) + **PG code** -
+ - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`settle`**. -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **`pay_method`** **\*** **string** -**Order ID** + **Payment method code** -Must be unique for each request. +
+

Payment method codes

-**`amount`** **\***\*\* ****integer\*\* + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) +
-**Payment amount** + **`merchant_uid`** **\*** **string** -Must be an integer (not string) + **Order ID** -**`buyer_tel`****`*`****`string`** + Must be unique for each request. -**Customer phone number** + **`amount`** **\*** **integer** -Required + **Payment amount** -**` company`` `****`string`** + Must be an integer (not string) -**`Company name`** + **`buyer_tel`****`*`****`string`** -Required for virtual account payment + **Customer phone number** - + Required -
+ **`company`` `****`string`** - -#### Not supported + **`Company name`** - + Required for virtual account payment - -#### **You can use i'mport REST API to request payment and schedule payment.** + + -### Request one-time payment + + #### Not supported + -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + + #### **You can use i'mport REST API to request payment and schedule payment.** -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + ### Request one-time payment -### Request billing key + initial payment + To request a one-time payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + The card information is not saved during this process. -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -- **`customer_uid`** : required for saving the billing key. + ### Request billing key + initial payment -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). -### Request payment with billing key + - **`customer_uid`** : required for saving the billing key. -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ### Request payment with billing key - -**Settlebank does not support** [**Request billing key API**](../../api/billing-key-api/api-1)**.** + After successfully getting the billing key and making the initial payment, + the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) + with the `customer_uid` as follows: - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -**For detailed information, refer to:** + + **Settlebank does not support** [**Request billing key API**](../../api/billing-key-api/api-1)**.** + - + **For detailed information, refer to:** - + +
diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/smartro.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/smartro.mdx index e7659d1c7..1ca6e100e 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/smartro.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/smartro.mdx @@ -4,78 +4,79 @@ description: Smartro payment window integration guide --- import Details from "~/components/gitbook/Details.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 1. Configure Smartro PG settings +## 1. Configure Smartro PG settings Refer to the [**Smartro settings**](../../ready/2.-pg/payment-gateway-settings/undefined-4) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'smartro', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', // Required - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "smartro", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", // Required + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`smartro`**. + **`pg`** **\*** **string** -**`pay_method`** **\***\*\* ****s****tring\*\* + **PG code** -**Payment method code** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`smartro`**. -
-

Payment method codes

+ **`pay_method`** **\*** **string** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) + **Payment method code** -
+
+

Payment method codes

-**`merchant_uid`** **\***\*\* ****s****tring\*\* + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) +
-**Order ID** + **`merchant_uid`** **\*** **string** -Must be unique for each request. + **Order ID** -**`amount`** **\***\*\* ****integer\*\* + Must be unique for each request. -**Payment amount** + **`amount`** **\*** **integer** -Must be an integer (not string) + **Payment amount** -
+ Must be an integer (not string) +
diff --git a/src/content/docs/en/payment-integration-by-pg/payment-gateways/toss.mdx b/src/content/docs/en/payment-integration-by-pg/payment-gateways/toss.mdx index 21df0a75e..0a6ea6bee 100644 --- a/src/content/docs/en/payment-integration-by-pg/payment-gateways/toss.mdx +++ b/src/content/docs/en/payment-integration-by-pg/payment-gateways/toss.mdx @@ -6,285 +6,294 @@ description: Toss Payments payment window integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Toss Payments PG settings +## 1. Configure Toss Payments PG settings -Refer to the [**Toss Payments settings**](../../ready/2.-pg/payment-gateway-settings/undefined) page to configure the PG settings. +Refer to the [**Toss Payments settings**](../../ready/2.-pg/payment-gateway-settings/undefined) page +to configure the PG settings. ![]() ### 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'uplus', - pay_method : 'card', - merchant_uid : '{Merchant created Order ID}', // Example: order_no_0001 - name : 'Order name: Test payment request', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'John Doe', - buyer_tel : '010-1234-5678', - buyer_addr : 'Shinsa-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : '{Mobile only - URL to redirect to after payment approval}' // Example: https://www.my-service.com/payments/complete/mobile -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "uplus", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 + name: "Order name: Test payment request", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "John Doe", + buyer_tel: "010-1234-5678", + buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`uplus`**. + **`pg`** **\*** **string** -**`pay_method`** **\***\*\* ****s****tring\*\* + **PG code** -**Payment method code** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`uplus`**. -
-

Payment method codes

+ **`pay_method`** **\*** **string** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) + **Payment method code** -
+
+

Payment method codes

-**`merchant_uid`** **\***\*\* ****s****tring\*\* + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) +
-**Order ID** + **`merchant_uid`** **\*** **string** -Must be unique for each request. + **Order ID** -**`amount`** **\***\*\* ****integer\*\* + Must be unique for each request. -**Payment amount** + **`amount`** **\*** **integer** -Must be an integer (not string). + **Payment amount** -**` escrow`` `****`boolean`** + Must be an integer (not string). -**Ecrow option** + **`escrow`` `****`boolean`** - + **Ecrow option** -
+ +
- -To open non-authenticated payment window, specify the **customer\_uid** parameter. After getting a billing key from this window, you can request payment using the billing key. + + To open non-authenticated payment window, specify the **customer\_uid** parameter. + After getting a billing key from this window, you can request payment using the billing key. -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "tosspayments", - pay_method: "card", // only 'card' supported. - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Initial billing key request", - amount: 0, // For display purpose only (no payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) - customer_id: "matthew", // Merchant user ID - }, - function (rsp) { - // callback - } -); -``` + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "tosspayments", + pay_method: "card", // only 'card' supported. + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Initial billing key request", + amount: 0, // For display purpose only (no payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{redirect URL}", // Example: https://www.my-service.com/payments/complete/mobile (for mobile only) + customer_id: "matthew", // Merchant user ID + }, + function (rsp) { + // callback + }, + ); + ``` - -* To request non-authenticated payment, you must set the **MID issued by Toss Payments** in the Admin console. -* Toss Payments **does not process the payment** when issuing the billing key even if you specify an amount. - - - -### Key parameter description + + - To request non-authenticated payment, you must set the **MID issued by Toss Payments** in the Admin console. -**`pg`** **\***\*\* ****s****tring\*\* + - Toss Payments **does not process the payment** + when issuing the billing key even if you specify an amount. + -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`tosspayments`**. + **`pg`** **\*** **string** -**`customer_uid`** **\***\*\* ****string\*\* + **PG code** -**Credit card billing key** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`tosspayments`**. -Billing key to be mapped 1:1 with the user-entered credit card information. + **`customer_uid`** **\*** **string** -**`amount`** **\***\*\* ****Integer\*\* + **Credit card billing key** -**Payment amount** + Billing key to be mapped 1:1 with the user-entered credit card information. -Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer_uid**.) + **`amount`** **\*** **Integer** -**`customer_id`** **\***\*\* ****string\*\* + **Payment amount** -**Customer ID** + Amount to display in the payment window, but actual payment approval is not processed. (To request payment, use the **REST API with the customer\_uid**.) -Customer user ID that maps to billing key. If not specified, this is generated by i'mport.\ + **`customer_id`** **\*** **string** -### Request payment with billing key (customer_uid) + **Customer ID** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + Customer user ID that maps to billing key. If not specified, this is generated by i'mport.\\ -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ### Request payment with billing key (customer\_uid) - + After successfully getting the billing key, the billing key is **stored on the i'mport server** + mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: - -#### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + - -**MID Issuance** - -When you get an MID from Toss Payments, the **API version** must be **1.4**. - - + + #### **You can use i'mport REST API to request billing key, request payment, and schedule payment.** -### Request one-time payment + + **MID Issuance** -To request a one-time payment, use the key-in REST[ **API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). The card information is not saved during this process. + When you get an MID from Toss Payments, the **API version** must be **1.4**. + -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + ### Request one-time payment -### + To request a one-time payment, use the key-in [**REST API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + The card information is not saved during this process. -### Request billing key + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/billing-key-api/api-1). + ### Request billing key -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + To request a billing key, use the billing key request REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/billing-key-api/api-1). -### Request billing key + initial payment + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). + ### Request billing key + initial payment -- **`customer_uid`** : required for saving the billing key. + To request a billing key and initial payment, use the key-in REST [**API POST /subscribe/payments/onetime**](../../api/api/request-non-authenticated-payment-one-time-api). -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : required for saving the billing key. -### Request payment with billing key + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) with the `customer_uid` as follows: + ### Request payment with billing key -``` -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + After successfully getting the billing key and making the initial payment, + the billing key is stored on the i'mport server mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the repeat pay REST API ([**POST /subscribe/payments/again**](../../api/api/api)) + with the `customer_uid` as follows: -**For detailed information, refer to:** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + **For detailed information, refer to:** - + +
### 3. Additional functions - -```javascript title="javascript" -display: { - card_quota: [6], // Display up to 6 months installment plans - only_installment: true // Disable immediate pay option -} -``` - -**Parameters** - -- **card_quota :** - - Enable only specified installment months - - `[]`: Only immediate pay - - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans -- If **only_installment: `true`**, only shows specified months in **`card_quota`**.\ - - -Installment plan option is available only for **KRW 50,000 or more**. - - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 + + ```json title="javascript" + { + "display": { + "card_quota": [6], // Display up to 6 months installment plans + "only_installment": true // Disable immediate pay option + } } -} -``` - -**Parameters** - -- **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. (**integer**) - - - - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` - -**Parameters** + ``` + + **Parameters** + + - **card\_quota :** + - Enable only specified installment months + - `[]`: Only immediate pay + - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans + + - If **only\_installment: `true`**, only shows specified months in **`card_quota`**.\\ + + + Installment plan option is available only for **KRW 50,000 or more**. + + + + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` + + **Parameters** + + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **quota**: Installment plan. For immediate, set to 0. (**integer**) + + + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true }, // Enable specific credit card + ] + } + } + ``` -- **card_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** -- **enabled:** Option to enable the credit card (**boolean)** + **Parameters** - + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) **(string)** + - **enabled:** Option to enable the credit card (**boolean)** + -**Hub-type simple payment** - -Simple payments (Kakao Pay, Naver Pay, etc.) are not supported in Toss Payments payment window. + **Hub-type simple payment** + Simple payments (Kakao Pay, Naver Pay, etc.) are not supported in Toss Payments payment window. diff --git a/src/content/docs/en/payment-integration-by-pg/simple/alipay.mdx b/src/content/docs/en/payment-integration-by-pg/simple/alipay.mdx index 1a3c3fb89..b7efa1598 100644 --- a/src/content/docs/en/payment-integration-by-pg/simple/alipay.mdx +++ b/src/content/docs/en/payment-integration-by-pg/simple/alipay.mdx @@ -3,71 +3,72 @@ title: Alipay description: Alipay simple payment integration guide --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 1. Configure Alipay simple payment PG settings +## 1. Configure Alipay simple payment PG settings Refer to the [**Alipay settings**](../../ready/2.-pg/pg/undefined-5) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -After calling `IMP.request_pay(param, callback)`, the page is redirected to **m_redirect_url**. +After calling `IMP.request_pay(param, callback)`, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'alipay', - merchant_uid: '{Merchant created Order ID}', //Example: order_no_0001 - name : 'Order name: Test payment', - amount : 1.20, // USD - currency : 'USD' // Default: USD - buyer_email : 'iamport@siot.do', - buyer_name : 'Customer name', - buyer_tel : '010-1234-5678', - buyer_addr : 'Samseong-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : "{URL to redirect to after payment approval}" //Example: http://yourservice.com/payments/complete -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### - -### Key parameter description + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "alipay", + merchant_uid: "{Merchant created Order ID}", //Example: order_no_0001 + name: "Order name: Test payment", + amount: 1.2, // USD + currency: "USD", // Default: USD + buyer_email: "iamport@siot.do", + buyer_name: "Customer name", + buyer_tel: "010-1234-5678", + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{URL to redirect to after payment approval}", //Example: http://yourservice.com/payments/complete + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**`pg`** **\***\*\* ****s****tring\*\* + ### Key parameter description -**PG code** + **`pg`** **\*** **string** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`alipay`**. + **PG code** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`alipay`**. -**Order ID** + **`merchant_uid`** **\*** **string** -Must be unique for each request. + **Order ID** -**` currency`` `****`string`** + Must be unique for each request. -**Currency code** + **`currency`` `****`string`** -Default: USD (KRW supported) + **Currency code** -**`amount`** **\***\*\* ****integer\*\* + Default: USD (KRW supported) -**Payment amount** + **`amount`** **\*** **integer** -Must be an integer (not string) + **Payment amount** - + Must be an integer (not string) + diff --git a/src/content/docs/en/payment-integration-by-pg/simple/kakao-pay.mdx b/src/content/docs/en/payment-integration-by-pg/simple/kakao-pay.mdx index b2314d5e1..3834f5774 100644 --- a/src/content/docs/en/payment-integration-by-pg/simple/kakao-pay.mdx +++ b/src/content/docs/en/payment-integration-by-pg/simple/kakao-pay.mdx @@ -4,150 +4,152 @@ description: Kakao Pay simple payment integration guide --- import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Kakao Pay simple payment PG settings +## 1. Configure Kakao Pay simple payment PG settings -Refer to the [**Kakao Pay settings**](../../ready/2.-pg/pg/undefined) page to configure the PG settings. +Refer to the [**Kakao Pay settings**](../../ready/2.-pg/pg/undefined) page +to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'kakaopay', - pay_method : 'card', // Can be omitted - merchant_uid: '{Merchant created Order ID}', //Example: order_no_0001 - name : 'Order name: Test payment', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'Customer name', - buyer_tel : '010-1234-5678', - buyer_addr : 'Samseong-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : "{URL to redirect to after payment approval}" //Example: http://yourservice.com/payments/complete -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kakaopay", + pay_method: "card", // Can be omitted + merchant_uid: "{Merchant created Order ID}", //Example: order_no_0001 + name: "Order name: Test payment", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "Customer name", + buyer_tel: "010-1234-5678", + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{URL to redirect to after payment approval}", //Example: http://yourservice.com/payments/complete + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -### Key parameter description + ### Key parameter description -**`pg`** **\***\*\* ****s****tring\*\* + **`pg`** **\*** **string** -**PG code** + **PG code** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`kakaopay`**. + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`kakaopay`**. -**`pay_method`** **s****tring** + **`pay_method`** **string** -**Payment method code** + **Payment method code** -Can be omitted + Can be omitted -(Overwritten by the option(credit card or Kakao money) selected in Kakao Pay app) + (Overwritten by the option(credit card or Kakao money) selected in Kakao Pay app) -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **`merchant_uid`** **\*** **string** -**Order ID** + **Order ID** -Must be unique for each request. + Must be unique for each request. -**`amount`** **\***\*\* ****integer\*\* + **`amount`** **\*** **integer** -**Payment amount** + **Payment amount** -Must be an integer (not string) + Must be an integer (not string) - + + - + + To open subscription payment window, specify the **customer\_uid** parameter. - -To open subscription payment window, specify the **customer\_uid** parameter. + + **amount** - -**amount** + - If requesting **both billing key and initial payment**, specify the payment amount. + - If only requesting for billing key, set to **0**. + -- If requesting **both billing key and initial payment**, specify the payment amount. -- If only requesting for billing key, set to **0**. + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kakaopay", + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Order name: Billing key request test", + amount: 0, // For display purpose only (set actual amount to also request payment approval). + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kakaopay", - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Order name: Billing key request test", - amount: 0, // For display purpose only (set actual amount to also request payment approval). - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` - -### Key parameter description + ### Key parameter description -**`pg`** **\***\*\* ****s****tring\*\* + **`pg`** **\*** **string** -**PG code** + **PG code** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`kakaopay`**. + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`kakaopay`**. -**`customer_uid`** **\***\*\* ****string\*\* + **`customer_uid`** **\*** **string** -**Credit card billing key** + **Credit card billing key** -Billing key to be mapped 1:1 with the user-entered credit card information. + Billing key to be mapped 1:1 with the user-entered credit card information. -**`amount`** **\***\*\* ****Integer\*\* + **`amount`** **\*** **Integer** -**Payment amount** + **Payment amount** -0: only billing key, **> 0: billing key + initial payment**\ + 0: only billing key, **> 0: billing key + initial payment**\\ -### Request payment with billing key (customer_uid) + ### Request payment with billing key (customer\_uid) -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + After successfully getting the billing key, the billing key is **stored on the i'mport server** + mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` - - + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -**Kakao Pay simple payment is processed in mobile Kakao App.** - + **Kakao Pay simple payment is processed in mobile Kakao App.** diff --git a/src/content/docs/en/payment-integration-by-pg/simple/naver-pay-standard.mdx b/src/content/docs/en/payment-integration-by-pg/simple/naver-pay-standard.mdx index 7d9a3ccf9..8ccd4437a 100644 --- a/src/content/docs/en/payment-integration-by-pg/simple/naver-pay-standard.mdx +++ b/src/content/docs/en/payment-integration-by-pg/simple/naver-pay-standard.mdx @@ -4,353 +4,376 @@ description: "\bNaver Pay simple payment integration guide" --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Naver Pay simple payment PG settings +## 1. Configure Naver Pay simple payment PG settings Refer to the [**Naver Pay settings**](../../ready/2.-pg/pg/undefined-2) page to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) -IMP.**request_pay**(param, callback). +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'naverpay', - merchant_uid: '{Merchant created Order ID}', //Example: order_no_0001 - name : 'Order name: Test payment', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'Customer name', - buyer_tel : '010-1234-5678', - buyer_addr : 'Samseong-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - naverUseCfm : '20201001', //Expiration date - naverPopupMode : true, //Enable popup mode - m_redirect_url : "{URL to redirect to after payment approval}", //Example: http://yourservice.com/payments/complete - naverPurchaserName: "Purchaser name", - naverPurchaserBirthday: "20151201", - naverProducts : [{ - "categoryType": "BOOK", - "categoryId": "GENERAL", - "uid": "107922211", - "name": "History of the World", - "payReferrer": "NAVER_BOOK", - "count": 10 - }, - { - "categoryType": "MUSIC", - "categoryId": "CD", - "uid": "299911002", - "name": "BTS", - "payReferrer": "NAVER_BOOK", - "count": 1 - }] -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "naverpay", + merchant_uid: "{Merchant created Order ID}", //Example: order_no_0001 + name: "Order name: Test payment", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "Customer name", + buyer_tel: "010-1234-5678", + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + naverUseCfm: "20201001", //Expiration date + naverPopupMode: true, //Enable popup mode + m_redirect_url: "{URL to redirect to after payment approval}", //Example: http://yourservice.com/payments/complete + naverPurchaserName: "Purchaser name", + naverPurchaserBirthday: "20151201", + naverProducts: [ + { + categoryType: "BOOK", + categoryId: "GENERAL", + uid: "107922211", + name: "History of the World", + payReferrer: "NAVER_BOOK", + count: 10, + }, + { + categoryType: "MUSIC", + categoryId: "CD", + uid: "299911002", + name: "BTS", + payReferrer: "NAVER_BOOK", + count: 1, + }, + ], + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` + + ### Key parameter description + + **`pg`** **\*** **string** + + **PG code** + + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`naverpay`**. + + **`merchant_uid`** **\*** **string** + + **Order ID** + + Must be unique for each request. + + **`amount`** **\*** **integer** + + **Payment amount** + + Must be an integer (not string) + + **`naverUseCfm`` `****`string`** + + **Expiration date** (string in yyyyMMdd format, **must be on or after the date of payment**). -#### + - Specify if contract between Naver Pay and merchant requires this value for the specified product type (such as music or performance tickets). -### Key parameter description + **`name`****`*`****`string`** -**`pg`** **\***\*\* ****s****tring\*\* + **`Product name`** -**PG code** + If multiple products are defined in the `naverProducts` parameter, Naver Pay automatically appends `and 2 others`. Hence, set this to the name of the first product (`naverProducts[0].name`) in the array. -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`naverpay`**. + **`naverPopupMode`` `****`boolean`** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **Option to proceed via popup window** -**Order ID** + - If `false`, payment process will proceed via page redirection and you must specify `m_redirect_url`. -Must be unique for each request. + **`m_redirect_url`****`string`** -**`amount`** **\***\*\* ****integer\*\* + **`Redirect URL`** -**Payment amount** + - URL to redirect to after payment approval when using redirection method (`naverPopupMode`: **false**). -Must be an integer (not string) + **`naverPurchaserName`****`string`** -**` naverUseCfm`` `****`string`** + **`Name of the purchaser`** -**Expiration date** (string in yyyyMMdd format, **must be on or after the date of payment**). + **Only required for merchants** who have been instructed + to enter this information at the time of the Naver Pay contract because the product + falls under a high-risk industry. -- Specify if contract between Naver Pay and merchant requires this value for the specified product type (such as music or performance tickets). + **`naverPurchaserBirthday`` `****`string`** -**`name`****`*`****`string`** + **`Purchaser's DOB (yyyyMMdd)`** -**`Product name`** + **Only required for merchants** who have been instructed + to enter this information at the time of the Naver Pay contract because the product + falls under a high-risk industry. -If multiple products are defined in the `naverProducts` parameter, Naver Pay automatically appends `and 2 others`. Hence, set this to the name of the first product (`naverProducts[0].name`) in the array. + **`naverChainId`** **`string`** -**` naverPopupMode`` `****`boolean`** + Enter the value received from Naver Pay only for group-type merchants that operate two or more services with the same partner ID. -**Option to proceed via popup window** + Non-target merchants are not entered. -- If `false`, payment process will proceed via page redirection and you must specify `m_redirect_url`. + **`naverProducts`****`*`****`array`** -**`m_redirect_url`****`string`** + **`Product information`** -**`Redirect URL`** + Same as the **`productItems`** parameter defined in Naver Pay manual. -- URL to redirect to after payment approval when using redirection method (`naverPopupMode`: **false**). + (If omitted, request will fail Naver Pay's inspection.) -**`naverPurchaserName`****`string`** + **`naverProducts`** is an array of objects consisting of the following 6 properties: -**`Name of the purchaser`** + - **`categoryType`** (Required): Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -**Only required for merchants** who have been instructed -to enter this information at the time of the Naver Pay contract because the product -falls under a high-risk industry. + - **`categoryId`** (Required): Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -**` naverPurchaserBirthday`` `****`string`** + - **`uid`** (Required) : Merchant created product ID in general. Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -**`Purchaser's DOB (yyyyMMdd)`** + - **`name`** (Required) : Product name -**Only required for merchants** who have been instructed -to enter this information at the time of the Naver Pay contract because the product -falls under a high-risk industry. + - **`count`** (Required) : Selected quantity -**`naverChainId`** **`string`** + - **`sellerId`** (Optional) : Unique ID used by merchants to identify sub-merchants (uppercase and lowercase letters and numbers allowed) + - Only required for mail order brokerage merchants who have been instructed to enter this information at the time of the Naver Pay contract. + - Not required for other merchants. -Enter the value received from Naver Pay only for group-type merchants that operate two or more services with the same partner ID. + - **`payReferrer`** (Optional) : Funnel path to Naver Pay. Enter only when in partnership agreement with other services on the Naver platform. + Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product_ref). + -Non-target merchants are not entered. + + ## Request billing key -\ -**`naverProducts`****`*`****`array`** + ```ts title="JavaScript SDK" + IMP.request_pay( + { + pg: "naverpay", + customer_uid: "gildong_0001_1234", //billing, required. + merchant_uid: "{Merchant created Order ID}", //Example: order_monthly_0001 + name: "Slim plan (montly)", + amount: 14000, // For display only, no payment approval + buyer_email: "iamport@siot.do", + buyer_name: "Customer name", + buyer_tel: "010-1234-5678", //Required + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + naverProductCode: "Recurring payment product code", + naverPopupMode: true, //Enable popup mode + m_redirect_url: "{URL to redirect to after registration}", //Example: http://yourservice.com/payments/complete + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**`Product information`** + ### Key parameter description -Same as the **`productItems`** parameter defined in Naver Pay manual. + **`pg`** **\*** **string** -(If omitted, request will fail Naver Pay's inspection.) + **PG code** -> **`naverProducts`** is an array of objects consisting of the following 6 properties: -> -> - **`categoryType`** (Required): Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -> - **`categoryId`** (Required): Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -> - **`uid`** (Required) : Merchant created product ID in general. Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -> - **`name`** (Required) : Product name -> - **`count`** (Required) : Selected quantity -> - **`sellerId`** (Optional) : Unique ID used by merchants to identify sub-merchants (uppercase and lowercase letters and numbers allowed) -> - Only required for mail order brokerage merchants who have been instructed to enter this information at the time of the Naver Pay contract. -> - Not required for other merchants. -> - **`payReferrer`** (Optional) : Funnel path to Naver Pay. Enter only when in partnership agreement with other services on the Naver platform. Refer to [NPay Developers](https://developer.pay.naver.com/docs/v2/api#etc-etc_product_ref). + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`naverpay`**. - + **`customer_uid`****`*`****`string`** - -## Request billing key + **`Billing key`** -```javascript title="JavaScript SDK" -IMP.request_pay( - { - pg: "naverpay", - customer_uid: "gildong_0001_1234", //billing, required. - merchant_uid: "{Merchant created Order ID}", //Example: order_monthly_0001 - name: "Slim plan (montly)", - amount: 14000, // For display only, no payment approval - buyer_email: "iamport@siot.do", - buyer_name: "Customer name", - buyer_tel: "010-1234-5678", //Required - buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", - buyer_postcode: "123-456", - naverProductCode: "Recurring payment product code", - naverPopupMode: true, //Enable popup mode - m_redirect_url: "{URL to redirect to after registration}", //Example: http://yourservice.com/payments/complete - }, - function (rsp) { - // callback logic - //* ...Omitted... *// - } -); -``` + - Must be specified for subscription/recurring payment registration. If omitted, processed as general payment. + - After registration, you can use the key to request recurring payment approval. -### + **`merchant_uid`** **\*** **string** -### Key parameter description + **Order ID** -**`pg`** **\***\*\* ****s****tring\*\* + Must be unique for each request. -**PG code** + **`amount`** **\*** **integer** -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`naverpay`**. + **Payment amount** -**`customer_uid`****`*`****`string`** + Must be an integer (not string) -**`Billing key`** + **Payment approval is not processed** **during + subscription/recurring payment registration**. -- Must be specified for subscription/recurring payment registration. If omitted, processed as general payment. -- After registration, you can use the key to request recurring payment approval. + **`naverProductCode`****`*`****`string`** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **Product code managed by the merchant** -**Order ID** + - Used to prevent the same customer from registering duplicate payments for the same product. + - The default value is a randomly generated value allowing for duplicate payment registration. To avoid this, specify a value. -Must be unique for each request. + **`name`****`*`****`string`** -**`amount`** **\***\*\* ****integer\*\* + **`Product name`** -**Payment amount** + If multiple products are defined in the `naverProducts` parameter, Naver Pay automatically appends `and 2 others`. + Hence, set this to the name of the first product (`naverProducts[0].name`) in the array. -Must be an integer (not string) + **`naverPopupMode`` `****`boolean`** -**Payment approval is not processed**** during -subscription/recurring payment registration**. + **Option to proceed via popup window** -**`naverProductCode`****`*`****`string`** + - If `false`, payment process will proceed via page redirection and you must specify `m_redirect_url`. -**Product code managed by the merchant** + **`m_redirect_url`****`string`** -- Used to prevent the same customer from registering duplicate payments for the same product. -- The default value is a randomly generated value allowing for duplicate payment registration. To avoid this, specify a value. + **`Redirect URL`** -**`name`****`*`****`string`** + - URL to redirect to after payment approval when using redirection method (`naverPopupMode`: **false**). -**`Product name`** + ## **Request payment** -If multiple products are defined in the `naverProducts` parameter, Naver Pay automatically appends `and 2 others`. Hence, set this to the name of the first product (`naverProducts[0].name`) in the array. + After getting a billing key, you can request the initial payment or schedule future payment + by calling the payment approval API using the registered **`customer_uid`**. -**` naverPopupMode`` `****`boolean`** + ### **How to request payment** -**Option to proceed via popup window** + To request a payment approval, call the REST API [**/subscribe/payments/again**](../../api/api/api). -- If `false`, payment process will proceed via page redirection and you must specify `m_redirect_url`. + - `customer_uid` : `customer_uid` specified for subscription/recurring payment registration. -**`m_redirect_url`****`string`** + - `merchant_uid` : Merchant managed order number. -**`Redirect URL`** + - `amount` : Payment amount (can be different from the amount specified for subscription/recurring payment registration). -- URL to redirect to after payment approval when using redirection method (`naverPopupMode`: **false**). + - `tax_free` : Tax-free amount (out of total `amount`). Default value is 0. -## **Request payment** + - `name` : Order name. -After getting a billing key, you can request the initial payment or schedule future payment by calling the payment approval API using the registered **`customer_uid`**. + - `extra.naverUseCfm` : Expiration date (string in yyyyMMdd format, must be same as the date of payment or later). + - Specify if contract between Naver Pay and merchant requires this value for the specified product type (such as music or performance tickets). -### **How to request payment** + ```json title="sample json" + { + "customer_uid": "gildong_0001_1234", + "merchant_uid": "order_monthly_0002", // Cannot be reused + "amount": 10000, + "name": "Slim plan (initial payment)", + "extra": { + "naverUseCfm": "20201001" + } + } + ``` -To request a payment approval, call the REST API [**/subscribe/payments/again**](../../api/api/api). + ```txt title="form-urlencoded" + customer_uid={Unique key to identify the customer}&merchant_uid={Order number}&amount=10000&name=Slim plan (initial payment)&extra[naverUseCfm]=20201001 + ``` -- `customer_uid` : `customer_uid` specified for subscription/recurring payment registration. -- `merchant_uid` : Merchant managed order number. -- `amount` : Payment amount (can be different from the amount specified for subscription/recurring payment registration). -- `tax_free` : Tax-free amount (out of total `amount`). Default value is 0. -- `name` : Order name. -- `extra.naverUseCfm` : Expiration date (string in yyyyMMdd format, must be same as the date of payment or later). - - Specify if contract between Naver Pay and merchant requires this value for the specified product type (such as music or performance tickets). + ### Schedule payments -```json title="sample json" -{ - "customer_uid": "gildong_0001_1234", - "merchant_uid": "order_monthly_0002", // Cannot be reused - "amount": 10000, - "name": "Slim plan (initial payment)", - "extra": { - "naverUseCfm": "20201001" - } -} -``` + To schedule payments, call the REST API [**/subscribe/payments/schedule**](../../api/subscription-payment-api/schedule-payment-api). -```title="form-urlencoded" -customer_uid={Unique key to identify the customer}&merchant_uid={Order number}&amount=10000&name=Slim plan (initial payment)&extra[naverUseCfm]=20201001 -``` + - `customer_uid` : `customer_uid` specified for subscription/recurring payment registration. -### + - `schedules` : Payment schedule object array (one or more schedules). + - `merchant_uid` : Merchant managed order number. -### Schedule payments + - `schedule_at` : Scheduled time of payment (UNIX timestamp) -To schedule payments, call the REST API[ **/subscribe/payments/schedule**](../../api/subscription-payment-api/schedule-payment-api). + - `amount` : Payment amount (can be different from the amount specified for subscription/recurring payment registration). -- `customer_uid` : `customer_uid` specified for subscription/recurring payment registration. -- `schedules` : Payment schedule object array (one or more schedules). - - `merchant_uid` : Merchant managed order number. - - `schedule_at` : Scheduled time of payment (UNIX timestamp) - - `amount` : Payment amount (can be different from the amount specified for subscription/recurring payment registration). - - `extra.naverUseCfm` : Expiration date (string in yyyyMMdd format, must be same as the date of payment or later). - - Specify if contract between Naver Pay and merchant requires this value for the specified product type (such as music or performance tickets). + - `extra.naverUseCfm` : Expiration date (string in yyyyMMdd format, must be same as the date of payment or later). + - Specify if contract between Naver Pay and merchant requires this value for the specified product type (such as music or performance tickets). -```json title="sample json" -{ - "customer_uid": "gildong_0001_1234", - "schedules": [ + ```json title="sample json" { - "merchant_uid": "order_monthly_0003", // Cannot be reused - "schedule_at": 1519862400, - "amount": 10000, - "extra": { - "naverUseCfm": "20201001" - } + "customer_uid": "gildong_0001_1234", + "schedules": [ + { + "merchant_uid": "order_monthly_0003", // Cannot be reused + "schedule_at": 1519862400, + "amount": 10000, + "extra": { + "naverUseCfm": "20201001" + } + } + ] } - ] -} -``` + ``` -```title="form-urlencoded" -customer_uid={Unique key to identify the customer}&schedules[0][merchant_uid]={Oder number}&schedules[0][schedule_at]={Scheduled time of payment UNIX timestamp}&schedules[0][amount]=10000&schedules[0][extra][naverUseCfm]=20201001 -``` - - + ```txt title="form-urlencoded" + customer_uid={Unique key to identify the customer}&schedules[0][merchant_uid]={Oder number}&schedules[0][schedule_at]={Scheduled time of payment UNIX timestamp}&schedules[0][amount]=10000&schedules[0][extra][naverUseCfm]=20201001 + ``` + -### Note - -#### Must return error message as-is + ### Note -After calling the payment window (IMP.request_pay), if the payment process is interrupted by clicking the “Cancel” button at the bottom of the payment window, or if payment fails due to reasons such as insufficient balance, exceeding the limit, or less than 100 won, the reason for failure (error_msg) is included in the payment result (response object/query parameter) returned via callback (popup mode) or m_redirect_url (redirect mode). This error message must be returned to the user as it is without processing. If you do not comply with this rule, Naver Pay will request for correction during inspection. + #### Must return error message as-is -Example: Assuming that error_msg is “Insufficient balance”, it should not be returned to the user as “Payment failed. Reason for failure:" + "Insufficient balance". + After calling the payment window (IMP.request\_pay), + if the payment process is interrupted by clicking the “Cancel” button at the bottom of the payment window, + or if payment fails due to reasons such as insufficient balance, exceeding the limit, + or less than 100 won, the reason for failure (error\_msg) is included in the payment result (response object/query parameter) + returned via callback (popup mode) or m\_redirect\_url (redirect mode). + This error message must be returned to the user as it is without processing. + If you do not comply with this rule, Naver Pay will request for correction during inspection. -**Must implement exception handling for payment amount under 100 won** + Example: Assuming that error\_msg is “Insufficient balance”, + it should not be returned to the user as “Payment failed. Reason for failure:" + "Insufficient balance". -You must implement exception handling for payment amount less than 100 won, the minimum amount for Naver Pay. + **Must implement exception handling for payment amount under 100 won** -Example: Must return a 'less than minimum amount (100 won)' error message to the user. + You must implement exception handling for payment amount less than 100 won, + the minimum amount for Naver Pay. + Example: Must return a 'less than minimum amount (100 won)' error message to the user.
-

Payment cancellation

+

Payment cancellation

-To call the i'mport cancel payment API `POST` [**`/payments/cancel`**](../../api/payment-api/cancel-payment-api) , you must specify the following parameters. (**If omitted, Naver Pay's inspection will fail**) + To call the i'mport cancel payment API `POST` [**`/payments/cancel`**](../../api/payment-api/cancel-payment-api) , you must specify the following parameters. (**If omitted, Naver Pay's inspection will fail**) -- **`extra.requester`** : API requestor - - **`customer`** - - **`admin`**(default) -- **`reason`**: reason for cancellation + - **`extra.requester`** : API requestor + - **`customer`** + - **`admin`**(default) -**Example (json)** + - **`reason`**: reason for cancellation -```javascript -{ - "imp_uid" : "imp_123412341234", // i'mport transaction ID - "amount" : 3000, // Refund amount - "reason": "Reson for cancellation", // Must be the actual reason - "extra" : { - "requester" : "customer" - } -} -``` + **Example (json)** -**Example (form-urlencoded)** + ```json + { + "imp_uid": "imp_123412341234", // i'mport transaction ID + "amount": 3000, // Refund amount + "reason": "Reson for cancellation", // Must be the actual reason + "extra": { + "requester": "customer" + } + } + ``` -``` -imp_uid=imp_123412341234&amount=3000&extra[requester]=customer -``` + **Example (form-urlencoded)** + ```txt + imp_uid=imp_123412341234&amount=3000&extra[requester]=customer + ```
diff --git a/src/content/docs/en/payment-integration-by-pg/simple/payco.mdx b/src/content/docs/en/payment-integration-by-pg/simple/payco.mdx index 715a9a48f..6ebd63241 100644 --- a/src/content/docs/en/payment-integration-by-pg/simple/payco.mdx +++ b/src/content/docs/en/payment-integration-by-pg/simple/payco.mdx @@ -5,157 +5,158 @@ description: PAYCO simple payment integration guide import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure PAYCO simple payment PG settings +## 1. Configure PAYCO simple payment PG settings -Refer to the [**PAYCO settings**](../../ready/2.-pg/pg/undefined-3) page to configure the PG settings. +Refer to the [**PAYCO settings**](../../ready/2.-pg/pg/undefined-3) page +to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'payco', - merchant_uid: '{Merchant created Order ID}', //Example: order_no_0001 - name : 'Order name: Test payment', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'Customer name', - buyer_tel : '010-1234-5678', - buyer_addr : 'Samseong-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456' -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` - -#### - -### Key parameter description - -**`pg`** **\***\*\* ****s****tring\*\* - -**PG code** - -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`payco`**. - -**`pay_method`** **s****tring** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "payco", + merchant_uid: "{Merchant created Order ID}", //Example: order_no_0001 + name: "Order name: Test payment", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "Customer name", + buyer_tel: "010-1234-5678", + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -**Payment method code** + ### Key parameter description -
-

Payment method codes

+ **`pg`** **\*** **string** -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) + **PG code** -
+ - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`payco`**. -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **`pay_method`** **string** -**Order ID** + **Payment method code** -Must be unique for each request. +
+

Payment method codes

-**`buyer_tel`****`*`****`string`** + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) +
-**Customer phone number** + **`merchant_uid`** **\*** **string** -Required + **Order ID** -**`amount`** **\***\*\* ****integer\*\* + Must be unique for each request. -**Payment amount** + **`buyer_tel`****`*`****`string`** -Must be an integer (not string) + **Customer phone number** - + Required -
+ **`amount`** **\*** **integer** - -To open subscription payment window, specify the **customer\_uid** parameter. + **Payment amount** - -**amount** + Must be an integer (not string) -- For display purpose only. No payment approval. + + - + + To open subscription payment window, specify the **customer\_uid** parameter. -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "payco", - merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 - name: "Order name: Billing key request test", - amount: 0, // For display purpose only - customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) - buyer_email: "johndoe@gmail.com", - buyer_name: "John Doe", - buyer_tel: "02-1234-1234", - }, - function (rsp) { - if (rsp.success) { - alert("Success"); - } else { - alert("Failed"); - } - } -); -``` + + **amount** -### Key parameter description + - For display purpose only. No payment approval. + -**`pg`** **\***\*\* ****s****tring\*\* + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "payco", + merchant_uid: "{Merchant created Order ID}", // Example: issue_billingkey_monthly_0001 + name: "Order name: Billing key request test", + amount: 0, // For display purpose only + customer_uid: "{Unique ID for the card (billing key)}", // Required (Example: gildong_0001_1234) + buyer_email: "johndoe@gmail.com", + buyer_name: "John Doe", + buyer_tel: "02-1234-1234", + }, + function (rsp) { + if (rsp.success) { + alert("Success"); + } else { + alert("Failed"); + } + }, + ); + ``` -**PG code** + ### Key parameter description -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`payco`**. + **`pg`** **\*** **string** -**`customer_uid`** **\***\*\* ****string\*\* + **PG code** -**Credit card billing key** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`payco`**. -Billing key to be mapped 1:1 with the user-entered credit card information. + **`customer_uid`** **\*** **string** -**`amount`** **\***\*\* ****Integer\*\* + **Credit card billing key** -**Payment amount** + Billing key to be mapped 1:1 with the user-entered credit card information. -For display purpose only. No payment approval. + **`amount`** **\*** **Integer** -### Request payment with billing key (customer_uid) + **Payment amount** -After successfully getting the billing key, the billing key is **stored on the i'mport server** mapped 1:1 with the specified `customer_uid`. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the [**non-authenticated payment request REST API**](../../api/api/api) with the `customer_uid` as follows: + For display purpose only. No payment approval. -```title="sever-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + ### Request payment with billing key (customer\_uid) - + After successfully getting the billing key, the billing key is **stored on the i'mport server** + mapped 1:1 with the specified `customer_uid`. + For security reasons, the server cannot directly access the billing key. + Subsequent payments can be requested by calling + the [**non-authenticated payment request REST API**](../../api/api/api) + with the `customer_uid` as follows: - -**Not supported.** + ```sh title="sever-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -
+ + **Not supported.** +
diff --git a/src/content/docs/en/payment-integration-by-pg/simple/readme.mdx b/src/content/docs/en/payment-integration-by-pg/simple/readme.mdx index 873d7591f..09cc87ea4 100644 --- a/src/content/docs/en/payment-integration-by-pg/simple/readme.mdx +++ b/src/content/docs/en/payment-integration-by-pg/simple/readme.mdx @@ -3,4 +3,4 @@ title: Simple payments description: Learn how to integrate simple payments. --- -### Learn how to integrate simple payments. +Learn how to integrate simple payments. diff --git a/src/content/docs/en/payment-integration-by-pg/simple/toss.mdx b/src/content/docs/en/payment-integration-by-pg/simple/toss.mdx index d12e0814d..61a94bd2f 100644 --- a/src/content/docs/en/payment-integration-by-pg/simple/toss.mdx +++ b/src/content/docs/en/payment-integration-by-pg/simple/toss.mdx @@ -4,86 +4,85 @@ description: Toss simple payment integration guide --- import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. Configure Toss simple payment PG settings +## 1. Configure Toss simple payment PG settings -Refer to the [**Toss simple pay settings**](../../ready/2.-pg/pg/undefined-1) page to configure the PG settings. +Refer to the [**Toss simple pay settings**](../../ready/2.-pg/pg/undefined-1) page +to configure the PG settings. ![]() -### 2. Request payment +## 2. Request payment -To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) IMP.**request_pay**(param, callback). +To open the payment window, call [JavaScript SDK](../../sdk/javascript-sdk/) +IMP.**request\_pay**(param, callback). -In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. In mobile browsers, the page is redirected to **m_redirect_url**. +In PC browsers, **callback** is invoked after calling `IMP.request_pay(param, callback)`. +In mobile browsers, the page is redirected to **m\_redirect\_url**. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'tosspay', - pay_method : 'card', - merchant_uid: '{Merchant created Order ID}', //Example: order_no_0001 - name : 'Order name: Test payment', - amount : 14000, - buyer_email : 'iamport@siot.do', - buyer_name : 'Customer name', - buyer_tel : '010-1234-5678', - buyer_addr : 'Samseong-dong, Gangnam-gu, Seoul', - buyer_postcode : '123-456', - m_redirect_url : "{URL to redirect to after payment approval}" //Example: http://yourservice.com/payments/complete -}, function(rsp) { // callback logic - //* ...Omitted... *// -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "tosspay", + pay_method: "card", + merchant_uid: "{Merchant created Order ID}", //Example: order_no_0001 + name: "Order name: Test payment", + amount: 14000, + buyer_email: "iamport@siot.do", + buyer_name: "Customer name", + buyer_tel: "010-1234-5678", + buyer_addr: "Samseong-dong, Gangnam-gu, Seoul", + buyer_postcode: "123-456", + m_redirect_url: "{URL to redirect to after payment approval}", //Example: http://yourservice.com/payments/complete + }, + function (rsp) { + // callback logic + //* ...Omitted... *// + }, + ); + ``` -#### + ### Key parameter description -### Key parameter description + **`pg`** **\*** **string** -**`pg`** **\***\*\* ****s****tring\*\* + **PG code** -**PG code** + - If not specified and this is the only PG setting that exists, `default PG` is automatically set. + - If there are multiple PG settings, set to **`tosspay`**. -- If not specified and this is the only PG setting that exists, `default PG` is automatically set. -- If there are multiple PG settings, set to **`tosspay`**. + **`pay_method`** **string** -**`pay_method`** **s****tring** + **Payment method code** -**Payment method code** + - `card` (credit card) + - `trans` (instant account transfer) -- `card` (credit card) -- `trans` (instant account transfer) + **`name`** **\*** **string** -**`name`** **\***\*\* ****s****tring\*\* + **Product name** -**Product name** + **`merchant_uid`** **\*** **string** -**`merchant_uid`** **\***\*\* ****s****tring\*\* + **Order ID** -**Order ID** + Must be unique for each request. -Must be unique for each request. + **`amount`** **\*** **integer** -**`amount`** **\***\*\* ****integer\*\* + **Payment amount** -**Payment amount** + Must be an integer (not string) -Must be an integer (not string) - - - - + + -**Toss simple payment is processed in mobile Toss App.** - + **Toss simple payment is processed in mobile Toss App.** diff --git a/src/content/docs/en/readme.mdx b/src/content/docs/en/readme.mdx index e0af29e95..d0c269c5f 100644 --- a/src/content/docs/en/readme.mdx +++ b/src/content/docs/en/readme.mdx @@ -14,7 +14,7 @@ import Hint from "~/components/Hint.astro"; Read the [Setup](ready/) guide for payment integration guide before proceeding with payment integration. -### Payment window integration +## Payment window integration You can easily integrate your payment window by following these guides. @@ -24,13 +24,13 @@ You can easily integrate your payment window by following these guides. -### Ensuring payment result notification +## Ensuring payment result notification Learn how to use i'mport webhook, a stable and reliable method for receiving payment results. -### Other service integrations +## Other service integrations Learn how to integrate other useful services to your site. @@ -44,7 +44,7 @@ Learn how to integrate other useful services to your site. -### Tips +## Tips Make sure to check these useful tips about payment integration. @@ -62,29 +62,29 @@ Make sure to check these useful tips about payment integration. -### Admin console +## Admin console Learn how to use the Admin console. -### API +## API i'mport API specification -### SDK +## SDK Payment integration JS SDK specification -### FAQ +## FAQ -### **Payment integration guides by PG** +## **Payment integration guides by PG** diff --git a/src/content/docs/en/readme/get-started.mdx b/src/content/docs/en/readme/get-started.mdx index dc0739b90..920dbe61b 100644 --- a/src/content/docs/en/readme/get-started.mdx +++ b/src/content/docs/en/readme/get-started.mdx @@ -5,20 +5,23 @@ description: Learn about i'mport online payments. import Figure from "~/components/Figure.astro"; -### i'mport provides payment window integration through JavaScript SDK so that anyone can easily implement complex PG payment integration specifications. +## i'mport provides payment window integration through JavaScript SDK so that anyone can easily implement complex PG payment integration specifications. - Simply add the library with 2 lines of code to complete the setup for payment window integration. -- Easily integrate the payment window using the JavaScript SDK that most developers are familiar with. + +- Easily integrate the payment window using the JavaScript SDK + that most developers are familiar with.
-### Changes to PGs and payment methods are also processed simply by changing the relevant parameter values. +## Changes to PGs and payment methods are also processed simply by changing the relevant parameter values. -- You can easily add and change payment methods and PGs by modifying the JavaScript input parameters. +- You can easily add and change payment methods and PGs + by modifying the JavaScript input parameters.
-### We provide all payment references and integration samples and guides for various programming languages in sync with the latest trends. +## We provide all payment references and integration samples and guides for various programming languages in sync with the latest trends. - JAVA - PHP @@ -28,12 +31,9 @@ import Figure from "~/components/Figure.astro"; - Golang - ... -
+
-### All payment data is protected in real time through monitoring so that you can use it with confidence. +## All payment data is protected in real time through monitoring so that you can use it with confidence. - Encryption of all payment data - Blocking of any attempts to forge/falsify payment data @@ -41,18 +41,22 @@ import Figure from "~/components/Figure.astro"; ![]() -### By storing payment progress cycles in real time, you can accurately analyze the reason and cause of payment failures. +## By storing payment progress cycles in real time, you can accurately analyze the reason and cause of payment failures. - When payment widow is active - When payment window is closed by the user - When payment is complete -### You can easily cancel payments for any PG payment method. +## You can easily cancel payments for any PG payment method. + +- Regardless of the payment method, you can use the same cancellation API + to cancel any PG payment transaction. -- Regardless of the payment method, you can use the same cancellation API to cancel any PG payment transaction. - We support full and partial cancellations. -- You no longer have to waste development resources for implementing specific cancellation integration for each payment method. -### i'mport offers three value propositions. +- You no longer have to waste development resources + for implementing specific cancellation integration for each payment method. + +## i'mport offers three value propositions. ![](/gitbook-assets/en/spaces_hTv8JEzyM5h4cYcL5StH_uploads_Lpr4komSQxZ7IYGwpmqG_image.png) diff --git a/src/content/docs/en/ready/1.mdx b/src/content/docs/en/ready/1.mdx index 87ed30712..24df062d2 100644 --- a/src/content/docs/en/ready/1.mdx +++ b/src/content/docs/en/ready/1.mdx @@ -7,19 +7,17 @@ import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; -For payment integration, you must first create an account from the i'mport Admin [**Sign Up**](https://admin.iamport.kr) page. - -You can sign up for **free without a contract**. + For payment integration, you must first create an account from the i'mport Admin [**Sign Up**](https://admin.iamport.kr) page. + You can sign up for **free without a contract**.
-

Create an i'mport account now

- -Just need to provide your "**email address"**. +

Create an i'mport account now

-Use a “**strong password**" to protect it from unauthorized access. + Just need to provide your "**email address"**. + Use a “**strong password**" to protect it from unauthorized access.
Click **Sign up** from the pages below to create an account. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/daou.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/daou.mdx index eede8a162..979e5d012 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/daou.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/daou.mdx @@ -4,141 +4,127 @@ description: Learn how to set up Daou. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Authenticated payment - -### **Test environment setup** + + ### **Test environment setup** -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**PAYJOA**) → **PAYJOA** -> **Add** -2. Check the auto-generated Merchant ID/Key/MID values and click **Save** + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**PAYJOA**) → **PAYJOA** -> **Add** + 2. Check the auto-generated Merchant ID/Key/MID values and click **Save** -
+
-
+
+ - + + ### Live environment setup - -### Live environment setup + 1. **Payment integration -> Live settings** + 2. Select PG (**PAYJOA**) → **PAYJOA** -> **Add** + 3. Enter merchant info issued by Daou upon contract signing. -1. **Payment integration -> Live settings** -2. Select PG (**PAYJOA**) → **PAYJOA** -> **Add** -3. Enter merchant info issued by Daou upon contract signing. +
-
+
-
+
-
+ + ### **Checklist** - -### **Checklist** + - Must request MID for the correct **product type** (physical/digital). + - **Payment integration key** is required for payment cancellation. + -- Must request MID for the correct **product type** (physical/digital). -- **Payment integration key** is required for payment cancellation. + ### \[PAYJOA Admin console settings] - + Configure the following settings to **successfully receive payment result**. -### + 1. Log in to the [PAYJOA Admin page](https://agent.kiwoompay.co.kr/) -### \[PAYJOA Admin console settings] + 2. At the top of the page, click **Customer support** > **Integration settings** -Configure the following settings to **successfully receive payment result**. + ![]() -1. Log in to the [PAYJOA Admin page](https://agent.kiwoompay.co.kr/) -2. At the top of the page, click **Customer support** > **Integration settings** + 3. In the integration settings page, select the **CPID** at the bottom and then click **Edit** -![]() +
-3\. In the integration settings page, select the **CPID** at the bottom and then click **Edit** + 4. For each contracted payment method, set the **Notification URL** -
+ > [https://service.iamport.kr/daou\_payments/result](https://service.iamport.kr/daou_payments/result) -4\. For each contracted payment method, set the **Notification URL** - -> [https://service.iamport.kr/daou_payments/result](https://service.iamport.kr/daou_payments/result) - -![]() - - + ![]() + ## Non-authenticated payment - -### Subscription test environment setup - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**PAYJOA**) → **PAYJOA API** -> **Add** -2. **Select 'Subscription** test CTS17266' **Edit -> Save** - -
- -
- -### - -### Key-in (one-time) test environment setup - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**PAYJOA**) → **PAYJOA API** -> **Add** -2. **Select 'Key-in** test CTS16629' **Edit -> Save** - -
- -
+ + ### Subscription test environment setup - -### **Test key-in payment with different required parameters** + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**PAYJOA**) → **PAYJOA API** -> **Add** + 2. **Select 'Subscription** test CTS17266' **Edit -> Save** -You can test by setting different required parameters by CPID. +
-- **Credit card number + password + expiration date + date of birth** +
- \- CPID : **CTS16629** + ### Key-in (one-time) test environment setup - \- Secret : 7f59ab6239259b191e2806111734c17c4650301ae0f241d2939c747176b4f6aa + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**PAYJOA**) → **PAYJOA API** -> **Add** + 2. **Select 'Key-in** test CTS16629' **Edit -> Save** -- **Credit card number + expiration date** +
- \- CPID : **CTS16628** +
- \- Secret : 9e810e78e4d8ac765f8f04f1f3132da0c4891a2c04f6ee5a142bc333070b68a9 + + ### **Test key-in payment with different required parameters** - + You can test by setting different required parameters by CPID. - -### **Checklist** + - **Credit card number + password + expiration date + date of birth** -- PAYJOA's subscription payment supports only the REST API method. -- In test mode, actual withdrawal occurs but is automatically cancelled daily between 23:00 and 23:50. -- Note that the test Merchant ID for **key-in** (one-time) and **subscription** payments are different. -- Must request MID for the correct **product type** (physical/digital). + - CPID : **CTS16629** + - Secret : 7f59ab6239259b191e2806111734c17c4650301ae0f241d2939c747176b4f6aa - + - **Credit card number + expiration date** -### + - CPID : **CTS16628** + - Secret : 9e810e78e4d8ac765f8f04f1f3132da0c4891a2c04f6ee5a142bc333070b68a9 + -### Subscription/key-in payment production environment setup + + ### **Checklist** -1. **Payment integration -> Live settings** -2. Select PG (**PAYJOA**) → **PAYJOA API** -> **Add** -3. Enter merchant info issued by Daou upon contract signing + - PAYJOA's subscription payment supports only the REST API method. + - In test mode, actual withdrawal occurs but is automatically cancelled daily between 23:00 and 23:50. + - Note that the test Merchant ID for **key-in** (one-time) and **subscription** payments are different. + - Must request MID for the correct **product type** (physical/digital). + -
+ ### Subscription/key-in payment production environment setup -
+ 1. **Payment integration -> Live settings** + 2. Select PG (**PAYJOA**) → **PAYJOA API** -> **Add** + 3. Enter merchant info issued by Daou upon contract signing -
+
- +
- -**Not supported** +
+ - + + **Not supported** + diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/jtnet.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/jtnet.mdx index 687e58788..a9572c2a5 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/jtnet.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/jtnet.mdx @@ -3,117 +3,108 @@ title: JTNET 설정 description: JTNET PG사 설정 방법을 확인합니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 JTNet(tPay) 선택 → 테스트모드 \[ON] → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 JTNet(tPay) 선택 → 테스트모드 \[ON] → \[전체 저장] 클릭 - -**테스트MID 정보** + + **테스트MID 정보** -- MID : tpaytest0m -- Secret 키 : VXFVMIZGqUJx29I/k52vMM8XG4hizkNfiapAkHHFxq0RwFzPit55D3J3sAeFSrLuOnLNVCIsXXkcBfYK1wv8kQ== -- 취소비밀번호 : 123456 + - MID : tpaytest0m + - Secret 키 : VXFVMIZGqUJx29I/k52vMM8XG4hizkNfiapAkHHFxq0RwFzPit55D3J3sAeFSrLuOnLNVCIsXXkcBfYK1wv8kQ== + - 취소비밀번호 : 123456 + - + ![]() + -![]() + + ### **실** 환경 구성방법 - + 카드사 심사 완료 후 JTNet에서 발급받은 실상점 정보를 \*\*테스트모드 \*\***OFF** 처리 이후 설정합니다. - -### **실** 환경 구성방법 - -카드사 심사 완료 후 JTNet에서 발급받은 실상점 정보를 **테스트모드 ****OFF** 처리 이후 설정합니다. - -![]() - - + ![]() + ## 비 인증 결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 JTNet(tPay) 선택 → **테스트모드 \[OFF]** → 아래의 상점정보 직접 입력 → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 JTNet(tPay) 선택 → **테스트모드 \[OFF]** → 아래의 상점정보 직접 입력 → \[전체 저장] 클릭 - -**테스트MID 정보** + + **테스트MID 정보** -- PG상점아이디(MID) : tpaytest2m -- PG상점 Secret : coqTx/Taxu9W6dlKPhFuciagoVXr/14ezgoK9+qJCf4bBuo23iRGGWHS4rHIuOSgZ6I/uizX39W/NygDplUYOA== -- 결제취소 비밀번호 : 1234 + - PG상점아이디(MID) : tpaytest2m + - PG상점 Secret : coqTx/Taxu9W6dlKPhFuciagoVXr/14ezgoK9+qJCf4bBuo23iRGGWHS4rHIuOSgZ6I/uizX39W/NygDplUYOA== + - 결제취소 비밀번호 : 1234 + - + ![]() -![]() + ### **실** 환경 구성방법 -### **실** 환경 구성방법 + 카드사 심사 완료 후 JTNet에서 발급받은 실상점 정보를 **설정합니다.** -카드사 심사 완료 후 JTNet에서 발급받은 실상점 정보를 **설정합니다.** + ![]() + -![]() + + ### 테스트 환경 구성방법(키인결제) - + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**정기결제 및 키인결제**) → PG사 JTNet(tPay) 선택 → **카드사 심사 전 개발용 계정 설정** 선택-> \[전체 저장] 클릭 - -### 테스트 환경 구성방법(키인결제) + + **테스트MID 정보(키인결제용도)** -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**정기결제 및 키인결제**) → PG사 JTNet(tPay) 선택 → **카드사 심사 전 개발용 계정 설정** 선택-> \[전체 저장] 클릭 + - MID : tpaytest1m + - Secret 키 : hgEY70BdDgoJYVOwj5CHsRDQt5a6IieQLQv+Q2rA6nnW+wXP57fH2ZkvUBJW0c9/eF1Rp5QRZ+qjzJ+Knc8r1A== + - 취소비밀번호 : 123456 + - -**테스트MID 정보(키인결제용도)** - -- MID : tpaytest1m -- Secret 키 : hgEY70BdDgoJYVOwj5CHsRDQt5a6IieQLQv+Q2rA6nnW+wXP57fH2ZkvUBJW0c9/eF1Rp5QRZ+qjzJ+Knc8r1A== -- 취소비밀번호 : 123456 - - - -![]() + ![]() -### 실 환경 구성방법(키인결제) + ### 실 환경 구성방법(키인결제) -카드사 심사 완료 후 JTNet 에서 발급받은 실상점 정보를 설정합니다. + 카드사 심사 완료 후 JTNet 에서 발급받은 실상점 정보를 설정합니다. -![]() + ![]() -### 테스트 환경 구성방법(**정기결제**) + ### 테스트 환경 구성방법(**정기결제**) -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**정기결제 및 키인결제**) → PG사 JTNet(tPay키인결제) 선택 → 아래의 상점정보 직접 입력 → \[저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**정기결제 및 키인결제**) → PG사 JTNet(tPay키인결제) 선택 → 아래의 상점정보 직접 입력 → \[저장] 클릭 - -**테스트MID 정보(정기결)** - -- PG상점아이디 : tpaytest2m -- PG상점 Secret : coqTx/Taxu9W6dlKPhFuciagoVXr/14ezgoK9+qJCf4bBuo23iRGGWHS4rHIuOSgZ6I/uizX39W/NygDplUYOA== -- 결제취소비밀번호 : 1234 + + **테스트MID 정보(정기결)** - + - PG상점아이디 : tpaytest2m + - PG상점 Secret : coqTx/Taxu9W6dlKPhFuciagoVXr/14ezgoK9+qJCf4bBuo23iRGGWHS4rHIuOSgZ6I/uizX39W/NygDplUYOA== + - 결제취소비밀번호 : 1234 + -![]() + ![]() -### 실 환경 구성방법(정기결제) + ### 실 환경 구성방법(정기결제) -카드사 심사 완료 후 JTNet 에서 발급받은 실상점 정보를 설정합니다. + 카드사 심사 완료 후 JTNet 에서 발급받은 실상점 정보를 설정합니다. -![]() - - + ![]() + -### **체크사항** - -JTNet 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다. + ### **체크사항** + JTNet 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/kg.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/kg.mdx index 4485d09ef..7d452bd4f 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/kg.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/kg.mdx @@ -4,30 +4,28 @@ description: KG모빌리언스 설정방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/) → 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 모빌리언스 선택 → **테스트모드 \[ON]** → **서비스 ID** 에 **170622040674** 입력 → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/) → 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 모빌리언스 선택 → **테스트모드 \[ON]** → **서비스 ID** 에 **170622040674** 입력 → \[전체 저장] 클릭 -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + PG사 심사 완료 후 KG모빌리언스에서 발급받은 실상점 정보를 **테스트모드 OFF** 이후 설정합니다. -PG사 심사 완료 후 KG모빌리언스에서 발급받은 실상점 정보를 **테스트모드 OFF** 이후 설정합니다. - -
- - +
+ ## 비 인증 결제 @@ -35,17 +33,15 @@ PG사 심사 완료 후 KG모빌리언스에서 발급받은 실상점 정보를 > **KG모빌리언스 비 인증 결제는 휴대폰 결제만 지원합니다.** - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 모빌리언스 선택 → **테스트모드 \[ON]** → **서비스 ID** 에 '**170622040674**' 입력 → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 모빌리언스 선택 → **테스트모드 \[ON]** → **서비스 ID** 에 '**170622040674**' 입력 → \[전체 저장] 클릭 -
- - +
+ -**KG모빌리언스 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다.** - + **KG모빌리언스 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다.** diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/kicc.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/kicc.mdx index aaa226e0f..78d156d69 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/kicc.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/kicc.mdx @@ -4,77 +4,72 @@ description: Learn how to set up KICC. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Authenticated payment - -### **Test environment setup** - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KICC**) → **KICC** -> **Add** -2. Check the auto-generated test MID value and click **Save** + + ### **Test environment setup** -
+ 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KICC**) → **KICC** -> **Add** + 2. Check the auto-generated test MID value and click **Save** -
+
- +
+ - -### Live environment setup + + ### Live environment setup -1. **Payment integration -> Live settings** -2. Select PG (**KICC**) → **KICC** -> **Add** -3. Enter merchant info issued by KICC upon approval by the credit card company. + 1. **Payment integration -> Live settings** + 2. Select PG (**KICC**) → **KICC** -> **Add** + 3. Enter merchant info issued by KICC upon approval by the credit card company. -
+
-
+
-
- - +
+ ## Non-authenticated payment - -### Test environment setup - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KICC**) → **KICC** -> **Add** -2. Check the auto-generated MID value and then click **Save**. + + ### Test environment setup -
+ 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KICC**) → **KICC** -> **Add** + 2. Check the auto-generated MID value and then click **Save**. -
+
-### Live environment setup +
-1. **Payment integration -> Live settings** -2. **KICC -> KICC -> Add** -3. Enter **MID** issued at contract signing -> **Save** + ### Live environment setup -
+ 1. **Payment integration -> Live settings** + 2. **KICC -> KICC -> Add** + 3. Enter **MID** issued at contract signing -> **Save** -
+
-
+
- +
+ - -**Not supported.** - - + + **Not supported.** + -**Note** - -In KICC test mode, no money is actually withdrawn. + **Note** + In KICC test mode, no money is actually withdrawn. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp-1.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp-1.mdx index 45a63ca2a..3cd706083 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp-1.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp-1.mdx @@ -4,101 +4,93 @@ description: Learn how to set up KG INICIS. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Authenticated payment - -### **Test environment setup** + + ### **Test environment setup** -1. [i'mport Admin console](https://admin.iamport.kr) → **Payment integration** → **Test settings** → Select PG (**KG INICIS**) → **KG INICIS** -> **Add** -2. Select **General payment test INIpayTest Settings** -> **Save** + 1. [i'mport Admin console](https://admin.iamport.kr) → **Payment integration** → **Test settings** → Select PG (**KG INICIS**) → **KG INICIS** -> **Add** + 2. Select **General payment test INIpayTest Settings** -> **Save** -> A payment is made on the i'mport test account. + > A payment is made on the i'mport test account. -
+
-
+
- -**KG INICIS PG Merchant ID (MID) : INIpayTest** - - + + **KG INICIS PG Merchant ID (MID) : INIpayTest** + + - + + ### Live environment setup - -### Live environment setup + 1. **Payment integration -> Live settings** + 2. **KG INICIS -> KG INICIS -> Add** + 3. Enter **MID** issued at contract signing. -1. **Payment integration -> Live settings** -2. **KG INICIS -> KG INICIS -> Add** -3. Enter **MID** issued at contract signing. +
-
+
-
- -
- - +
+ ## Non-authenticated payment -- To get a KG INICIS **API billing key**, you must first check service entry possibility through the PG. In most cases, **'payment window method'** is supported but '**API method**' service entry conditions are stringent due to PG's policy. -- **Foreign credit cards are not supported.** - + - To get a KG INICIS **API billing key**, you must first check service entry possibility through the PG. In most cases, **'payment window method'** is supported but '**API method**' service entry conditions are stringent due to PG's policy. + - **Foreign credit cards are not supported.** - -### Test environment setup - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KG INICIS**) → **KG INICIS** -> **Add** -2. **Subscription payment test `INIBillTst` Settings ->** **Save** - -
- -
+ + ### Test environment setup -### Live environment setup + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KG INICIS**) → **KG INICIS** -> **Add** + 2. **Subscription payment test `INIBillTst` Settings -> Save** -1. **Payment integration -> Live settings** -2. **KG INICIS -> KG INICIS -> Add** -3. Enter **MID** issued at contract signing. (**MID for billing is required)** +
-
+
-
+ ### Live environment setup -
+ 1. **Payment integration -> Live settings** + 2. **KG INICIS -> KG INICIS -> Add** + 3. Enter **MID** issued at contract signing. (**MID for billing is required)** - +
- -### Test environment setup +
-[i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KG INICIS**) → **KG INICIS API** -> **Add** +
+ -
+ + ### Test environment setup -### + [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**KG INICIS**) → **KG INICIS API** -> **Add** -### Live environment setup +
-1. **Payment integration -> Live settings** -2. **KG INICIS -> ****KG INICIS API**** -> Add** -3. Enter **MID** issued at contract signing. + ### Live environment setup -
+ 1. **Payment integration -> Live settings** + 2. **KG INICIS -> ****KG INICIS API**** -> Add** + 3. Enter **MID** issued at contract signing. -
+
-
+
- +
+ diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp.mdx index 91a7b17a7..022eb2cae 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/nhn-kcp.mdx @@ -4,35 +4,35 @@ description: Learn how to set up NHN KCP. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Authenticated payment - -### **Test environment setup** + + ### **Test environment setup** -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NHN KCP**) → **NHN KCP** -> **Add** -2. Select **General payment test T0000 Settings** -> **Save** + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NHN KCP**) → **NHN KCP** -> **Add** + 2. Select **General payment test T0000 Settings** -> **Save** -> A payment is made on the i'mport test account. + > A payment is made on the i'mport test account. -
+
-
+
+ - + + ### Live environment setup - -### Live environment setup + Enter the **Site Code** and **Site Key** issued by KCP using the **Add** button and then click **Save**. -Enter the **Site Code** and **Site Key** issued by KCP using the **Add** button and then click **Save**. +
-
- - +
+ ## Non-authenticated payment @@ -41,84 +41,78 @@ Since non-authenticated payment has more stringent conditions for service entry payment, you must first check service entry possibility with KCP. - -### Test environment setup + + ### Test environment setup -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NHN KCP**) → **NHN KCP (Subscription)** -> **Add** -2. Check the auto-generated MID value and then click **Save**. + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NHN KCP**) → **NHN KCP (Subscription)** -> **Add** + 2. Check the auto-generated MID value and then click **Save**. -
+
-
+
-### Live environment setup + ### Live environment setup -Enter the live **Site Code** issued by KCP at contract signing as follows: + Enter the live **Site Code** issued by KCP at contract signing as follows: -1. **Payment integration -> Live settings** -2. **NHN KCP -> NHN KCP(Subscription) -> Add** -3. **Enter Site Code, Site Key, and Batch Payment Group ID -> Save** + 1. **Payment integration -> Live settings** + 2. **NHN KCP -> NHN KCP(Subscription) -> Add** + 3. **Enter Site Code, Site Key, and Batch Payment Group ID -> Save** - -**How to get a Batch Payment Group ID** \ -Log in to the KCP merchant admin page with the **site code issued by KCP for subscription payments**, enter a desired user name and a password to get a private certificate.\ - \- To get a certificate: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with subscription payment ID > Customer service > Certificate issuance > KCP private certificate > Click Request NHN KCP certificate > Confirm Username (random input)\ - \- To get a group ID: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with subscription payment ID > Payments > **General payment > Credit card** **> Batch payment ID >** Get group ID + + **How to get a Batch Payment Group ID** \ + Log in to the KCP merchant admin page with the **site code issued by KCP for subscription payments**, enter a desired user name and a password to get a private certificate.\ + \- To get a certificate: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with subscription payment ID > Customer service > Certificate issuance > KCP private certificate > Click Request NHN KCP certificate > Confirm Username (random input)\ + \- To get a group ID: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with subscription payment ID > Payments > **General payment > Credit card > Batch payment ID >** Get group ID + - +
-
+
-
+
+ -
+ + ### Test environment setup - + 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NHN KCP**) → **NHN KCP API** -> **Add** + 2. Check the auto-generated MID value and then click **Save**. - -### Test environment setup +
-1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NHN KCP**) → **NHN KCP API** -> **Add** -2. Check the auto-generated MID value and then click **Save**. +
-
+ ### Live environment setup -
+ Enter the **Site Code** and **Site Key** issued by KCP at contract signing as follows: -### Live environment setup + 1. **Payment integration -> Live settings** + 2. **NHN KCP -> NHN KCP API -> Add** + 3. **Enter Site Code (PG Merchant ID) and Site Key (PG Merchant Secret), and then enter Batch Payment Group ID -> Save** -Enter the **Site Code** and **Site Key** issued by KCP at contract signing as follows: + + **How to get a Batch Payment Group ID** \ + Log in to the KCP merchant admin page with the **site code issued by KCP for recurring payments**, and then enter a desired user name and a password to get a private certificate.\ + \- To get a certificate: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with recurring payment ID > Customer service > Certificate issuance > KCP private certificate > Click Request NHN KCP certificate > Confirm Username (random input)\ + \- To get a group ID: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with recurring payment ID > Payments > **General payment > Credit card > Batch payment ID >** Get group ID + -1. **Payment integration -> Live settings** -2. **NHN KCP -> NHN KCP API -> Add** -3. **Enter Site Code (PG Merchant ID) and Site Key (PG Merchant Secret), and then enter Batch Payment Group ID -> Save** +
- -**How to get a Batch Payment Group ID** \ -Log in to the KCP merchant admin page with the **site code issued by KCP for recurring payments**, and then enter a desired user name and a password to get a private certificate.\ - \- To get a certificate: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with recurring payment ID > Customer service > Certificate issuance > KCP private certificate > Click Request NHN KCP certificate > Confirm Username (random input)\ - \- To get a group ID: [https://admin8.kcp.co.kr](https://admin8.kcp.co.kr/) > Log in with recurring payment ID > Payments > **General payment > Credit card** **> Batch payment ID >** Get group ID +
- - -
- -
- -
- - +
+ -**Since non-authenticated payment has more stringent conditions for service entry than general payment, you must first check service entry possibility with KCP.** - + **Since non-authenticated payment has more stringent conditions for service entry than general payment, you must first check service entry possibility with KCP.** -## Checklist - -- In test mode, no money withdrawl occurs for a payment. -- Hub-type Kakao Pay and Naver Pay do not support test mode. (Service is available after contract signing with KCP) + ## Checklist + - In test mode, no money withdrawl occurs for a payment. + - Hub-type Kakao Pay and Naver Pay do not support test mode. (Service is available after contract signing with KCP) diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/nice-payments.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/nice-payments.mdx index 9f97c19ae..92e33e997 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/nice-payments.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/nice-payments.mdx @@ -4,60 +4,56 @@ description: Learn how to set up NICE Payments. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Authenticated payment - -### **Test environment setup** - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NICE Payments**) → **NICE Payments** -> **Add** -2. Check the auto-generated test MID value and click **Save** - -> A payment is made on the i'mport test MID account. + + ### **Test environment setup** -
+ 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NICE Payments**) → **NICE Payments** -> **Add** + 2. Check the auto-generated test MID value and click **Save** -
+ > A payment is made on the i'mport test MID account. -In NICE Payments test mode, the following payment methods are **not supported**. +
-- Credit card: NH card, KB Kookmin card -- Mobile micropayments: KT +
- -**Payments made in NICE Payments test mode are cancelled daily between 23:00\~23:50.** + In NICE Payments test mode, the following payment methods are **not supported**. -Since cancelled transactions are not automatically reflected in i'mport, it is recommended that you submit a cancellation request after testing. + - Credit card: NH card, KB Kookmin card + - Mobile micropayments: KT - + + **Payments made in NICE Payments test mode are cancelled daily between 23:00\~23:50.** - + Since cancelled transactions are not automatically reflected in i'mport, it is recommended that you submit a cancellation request after testing. + + - -### Live environment setup + + ### Live environment setup -1. **Payment integration -> Live settings** -2. Select PG (**NICE Payments**) → **NICE Payments** -> **Add** -3. Enter merchant info issued by NICE Payments upon approval by the credit card company. + 1. **Payment integration -> Live settings** + 2. Select PG (**NICE Payments**) → **NICE Payments** -> **Add** + 3. Enter merchant info issued by NICE Payments upon approval by the credit card company. -
+
-
+
-
+
- -**Precautions when using virtual accounts** + + **Precautions when using virtual accounts** -You must log in to the NICE Payments Admin page and set the **virtual account deposit notification URL**. (If omitted, deposit will not be applied.) - - - - + You must log in to the NICE Payments Admin page and set the **virtual account deposit notification URL**. (If omitted, deposit will not be applied.) + + ## Non-authenticated payment @@ -65,30 +61,26 @@ You must log in to the NICE Payments Admin page and set the **virtual account de i'mport currently **only supports API method** for NICE Payments non-authenticated payments. - -### **Test environment setup** - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NICE Payments**) → **NICE Payments API** -> **Add** -2. Check the auto-generated test MID value and click **Save** + + ### **Test environment setup** -
+ 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**NICE Payments**) → **NICE Payments API** -> **Add** + 2. Check the auto-generated test MID value and click **Save** -
+
-### +
-### Live environment setup + ### Live environment setup -- **Payment integration -> Live settings** -- Select PG (**NICE Payments**) → **NICE Payments API** -> **Add** -- Enter merchant info issued by NICE Payments upon approval by the credit card company + - **Payment integration -> Live settings** + - Select PG (**NICE Payments**) → **NICE Payments API** -> **Add** + - Enter merchant info issued by NICE Payments upon approval by the credit card company -
+
-
+
-
- - +
+ - diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/readme.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/readme.mdx index 674272698..04babc744 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/readme.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/readme.mdx @@ -5,7 +5,7 @@ description: Learn how to configure settings for each PG supported by i'mport. import ContentRef from "~/components/gitbook/ContentRef.astro"; -### Use the following instructions to set up each PG for payment integration from the i'mport Admin page. +## Use the following instructions to set up each PG for payment integration from the i'mport Admin page. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-1.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-1.mdx index ff4a3663b..159881e02 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-1.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-1.mdx @@ -4,9 +4,9 @@ description: Learn how to set up Paymentwall. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; import image3 from "./_assets/paymentwall/paymentwall.pingback.country_code.png"; import image1 from "./_assets/paymentwall/paymentwall.tab.widget.png"; @@ -101,7 +101,7 @@ as a pingback parameter. You can check this result by adding the `extension=true` query parameter when querying payment. -```jsx +```http GET http://api.iamport.kr/payments/{imp_uid}?extension=true ``` @@ -111,8 +111,8 @@ GET http://api.iamport.kr/payments/{imp_uid}?extension=true "vbank_name": null, "vbank_num": null, "extension": { - "country_code": "KR", // User Country Code(alpha-2) - // ... + "country_code": "KR", // User Country Code(alpha-2) + // ... } } ``` diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-2.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-2.mdx index dc88c3621..ae278f08f 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-2.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-2.mdx @@ -4,217 +4,146 @@ description: 다날 PG사 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증**결제** - -**테스트 환경 구성방법** - -1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** 선택 → **추가** -2. 자동으로 기재되는 CPID 정보 확인 후 **저장** + + **테스트 환경 구성방법** -
+ 1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** 선택 → **추가** + 2. 자동으로 기재되는 CPID 정보 확인 후 **저장** -
+
- +
+ - -**실 환경 구성방법** + + **실 환경 구성방법** -1. [포트원 관리자 콘솔](https://admin.portone.io/)→ **결제 연동 → 실 연동 관리 선택** -2. **다날 → ****다날**** 선택 → 추가** -3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보 기재 후 저장 + 1. [포트원 관리자 콘솔](https://admin.portone.io/)→ **결제 연동 → 실 연동 관리 선택** + 2. **다날 → ****다날**** 선택 → 추가** + 3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보 기재 후 저장 -
+
-
+
-
- - +
+ ## 비 인증 결제 - -**테스트 환경 구성방법** - -1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** 선택 → **추가** -2. 자동으로 기재되는 CPID 정보 확인 후 **저장** + + **테스트 환경 구성방법** -
+ 1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** 선택 → **추가** + 2. 자동으로 기재되는 CPID 정보 확인 후 **저장** -
+
-**실 환경 구성방법** +
-1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동 → 실 연동 관리 선택** -2. **다날 → ****다날**** 선택 → 추가** -3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보 기재 후 저장 + **실 환경 구성방법** -
+ 1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동 → 실 연동 관리 선택** + 2. **다날 → ****다날**** 선택 → 추가** + 3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보 기재 후 저장 -
+
-
+
- +
+ - -**다날은 ****API**** 를 통한 비인증 결제를 지원하지 않습니다.** :cry: - - + + **다날은 ****API**** 를 통한 비인증 결제를 지원하지 않습니다.** :cry: + ## 휴대폰 소액결제 - -**테스트 환경 구성방법** - -- [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** **휴대폰결제** 선택 → **추가** -- 자동으로 기재되는 CPID 정보 확인 후 **저장** + + **테스트 환경 구성방법** - -**다날 휴대폰결제 테스트용 CPID : A010002002** + - [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** **휴대폰결제** 선택 → **추가** + - 자동으로 기재되는 CPID 정보 확인 후 **저장** - - -
- -
+ + **다날 휴대폰결제 테스트용 CPID : A010002002** + - +
- -**실 환경 구성방법** +
+ -1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동 → 실 연동 관리 선택** -2. **다날** → **다날** **휴대폰결제** 선택 → **추가** -3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보로 기재후 저장 + + **실 환경 구성방법** -
+ 1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동 → 실 연동 관리 선택** + 2. **다날** → **다날** **휴대폰결제** 선택 → **추가** + 3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보로 기재후 저장 -
+
-
+
- +
+ ## SMS 본인인증 - -**테스트 환경 구성방법** + + **테스트 환경 구성방법** -- [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** **SMS 본인인증** 선택 → **추가** -- 다날 계약 후 발급받은 CPID 정보를 기재 후 **저장** + - [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동** → **테스트 연동 관리** → **다날** → **다날** **SMS 본인인증** 선택 → **추가** + - 다날 계약 후 발급받은 CPID 정보를 기재 후 **저장** - -**다날 SMS 본인인증** + + **다날 SMS 본인인증** -휴대폰 SMS 본인인증은 테스트는 별도의 테스트 전용 CPID 정보를 제공하지 않습니다. + 휴대폰 SMS 본인인증은 테스트는 별도의 테스트 전용 CPID 정보를 제공하지 않습니다. -테스트 진행을 위해서는 다날 계약이후 발급받은 정보로만 가능합니다. + 테스트 진행을 위해서는 다날 계약이후 발급받은 정보로만 가능합니다. + - +
-
+
+ -
+ + **실 환경 구성방법** - + 1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동 → 실 연동 관리 선택** + 2. **다날** → **다날** **휴대폰결제** 선택 → **추가** + 3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보로 기재후 저장 - -**실 환경 구성방법** +
-1. [포트원 관리자 콘솔](https://admin.portone.io/) → **결제 연동 → 실 연동 관리 선택** -2. **다날** → **다날** **휴대폰결제** 선택 → **추가** -3. 카드사 심사 완료 후 다날에서 발급받은 실상점 정보로 기재후 저장 +
-
- -
- -
- - +
+ -**특이사항** - -- 다날은 하나의 상점ID(CPID)에 인증/비 인증 결제 셋팅이 가능합니다. -- 테스트 모드의 경우 실제로 결제승인이 이루어지지만, PG사에서 일괄적으로 매일 자정이전 자동 취소가 이루어집니다. -- 다날 정책상 계좌이체/가상계좌는 테스트 결제가 제공되지 않습니다. 계약 후 실제 상점아이디로 테스트를 해야 합니다 -- SMS 본인인증은 통신사 정책으로 인하여 테스트 모드 이용이 불가합니다. (실 계약 후 이용가능) -- 테스트 모드에서 부분취소 테스트는 불가합니다. + **특이사항** + - 다날은 하나의 상점ID(CPID)에 인증/비 인증 결제 셋팅이 가능합니다. + - 테스트 모드의 경우 실제로 결제승인이 이루어지지만, PG사에서 일괄적으로 매일 자정이전 자동 취소가 이루어집니다. + - 다날 정책상 계좌이체/가상계좌는 테스트 결제가 제공되지 않습니다. 계약 후 실제 상점아이디로 테스트를 해야 합니다 + - SMS 본인인증은 통신사 정책으로 인하여 테스트 모드 이용이 불가합니다. (실 계약 후 이용가능) + - 테스트 모드에서 부분취소 테스트는 불가합니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-3.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-3.mdx index 1ca542ff9..3d5947e70 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-3.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-3.mdx @@ -3,66 +3,61 @@ title: 세틀뱅크 설정 description: 세틀뱅크 설정방법을 안내합니다. --- -import ContentRef from "~/components/gitbook/ContentRef.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import ContentRef from "~/components/gitbook/ContentRef.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 세틀뱅크 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 세틀뱅크 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭 -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + 카드사 심사 완료 후 세틀뱅크에서 발급받은 실상점 정보를 **테스트모드 OFF** 처리 이후 설정합니다. -카드사 심사 완료 후 세틀뱅크에서 발급받은 실상점 정보를 **테스트모드 OFF** 처리 이후 설정합니다. - -
- - +
+ ## 비 인증 결제 - -#### **세틀뱅크의 정기결제는 ****REST API 방식****만 지원합니다.** - - + + 세틀뱅크의 정기결제는 **REST API 방식**만 지원합니다. + - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**정기결제 및 키인결제**) → PG사 세틀뱅크 선택 → \[**카드사 심사 전 개발용 계정 설정**] 클릭 → \[저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**정기결제 및 키인결제**) → PG사 세틀뱅크 선택 → \[**카드사 심사 전 개발용 계정 설정**] 클릭 → \[저장] 클릭 -
+
-### **실** 환경 구성방법 + ### **실** 환경 구성방법 -카드사 심사 완료 후 세틀뱅크에서 발급받은 실상점 정보를 설정합니다. + 카드사 심사 완료 후 세틀뱅크에서 발급받은 실상점 정보를 설정합니다. -### 가상계좌 연동 방법 + ### 가상계좌 연동 방법 -아래 링크를 참조하여 가상계좌 발급 및 취소 API 를 연동합니다. + 아래 링크를 참조하여 가상계좌 발급 및 취소 API 를 연동합니다. - - - + + -### **체크사항** - -- 세틀뱅크 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다. -- 세틀뱅크는 가상계좌 발급을 API방식으로 지원합니다. + ### **체크사항** + - 세틀뱅크 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다. + - 세틀뱅크는 가상계좌 발급을 API방식으로 지원합니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-4.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-4.mdx index 4789aa1d2..ed24baf62 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-4.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-4.mdx @@ -4,35 +4,32 @@ description: 스마트로 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 스마트로 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 스마트로 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭 -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + 카드사 심사 완료 후 스마트로에서 발급받은 실상점 정보를 설정 합니다. -카드사 심사 완료 후 스마트로에서 발급받은 실상점 정보를 설정 합니다. - -
- - +
+ -**비 인증 결제** - -아임포트는 스마트로 비 인증 결제를 지원하지 않습니다. + **비 인증 결제** + 아임포트는 스마트로 비 인증 결제를 지원하지 않습니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-5.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-5.mdx index e4b07129b..a7387af17 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-5.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-5.mdx @@ -4,98 +4,94 @@ description: 페이팔 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -> - 페이팔 테스트 환경 구성을 위해서는 **아임포트 관리자 페이지 설정**과 **페이팔 관리자페이지 설정**이 각각 적용되어야 합니다. -> - 페이팔은 별도의 계약없이 판매자 계정만 생성하면 바로 서비스 이용이 가능합니다. + > - 페이팔 테스트 환경 구성을 위해서는 **아임포트 관리자 페이지 설정**과 **페이팔 관리자페이지 설정**이 각각 적용되어야 합니다. + > - 페이팔은 별도의 계약없이 판매자 계정만 생성하면 바로 서비스 이용이 가능합니다. -### **아임포트 관리자 콘솔 설정** + ### **아임포트 관리자 콘솔 설정** -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 페이팔-Express Checkout 선택 → **테스트모드 \[ON]** → API 사용자 정보 입력 → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 페이팔-Express Checkout 선택 → **테스트모드 \[ON]** → API 사용자 정보 입력 → \[전체 저장] 클릭 -![]() + ![]() - -**Email 계정주소 설정시 주의사항** + + **Email 계정주소 설정시 주의사항** -자동완성된 Email 주소가 **실제 페이팔 계정 ID와 상이한 경우** **실 계정 ID 로 수정**하여 저장해야 합니다. + 자동완성된 Email 주소가 **실제 페이팔 계정 ID와 상이한 경우** **실 계정 ID 로 수정**하여 저장해야 합니다. + - + ### **페이팔 관리자 콘솔 설정** -### **페이팔 관리자 콘솔 설정** + #### **판매자 Sandbox 계정 설정** -#### **판매자 Sandbox 계정 설정** + 1. [https://developer.paypal.com/developer/accounts/](https://developer.paypal.com/developer/accounts/) 로그인 > **SANDBOX** > **Accounts** > DEFAULT Business 계정의 \[**View/edit account**] 클릭 -1. [https://developer.paypal.com/developer/accounts/](https://developer.paypal.com/developer/accounts/) 로그인 > **SANDBOX** > **Accounts** > DEFAULT Business 계정의 \[**View/edit account**] 클릭 +
-
+ **2. Account details 팝업창** -**2. Account details 팝업창** + API Credentials 탭의 Username, Password, 및 Signature 값을 아임포트 관리자 콘솔 페이팔 설정 항목에 아래와 같이 맵핑합니다. -API Credentials 탭의 Username, Password, 및 Signature 값을 아임포트 관리자 콘솔 페이팔 설정 항목에 아래와 같이 맵핑합니다. + - Username = API 사용자 이름 + - Password = API 암호 + - Signature = 서명 -- Username = API 사용자 이름 -- Password = API 암호 -- Signature = 서명 +
-
+ **구매자 Sandbox 계정 설정** -**구매자 Sandbox 계정 설정** + 1. [https://developer.paypal.com/developer/accounts/](https://developer.paypal.com/developer/accounts/) 로그인 > **SANDBOX** > **Accounts** > DEFAULT Personal 계정의 \[**View/edit account**] 클릭 -1. [https://developer.paypal.com/developer/accounts/](https://developer.paypal.com/developer/accounts/) 로그인 > **SANDBOX** > **Accounts** > DEFAULT Personal 계정의 \[**View/edit account**] 클릭 +
-
+ **2. Account details 팝업창** -**2. Account details 팝업창** + Profile 탭의 **Email ID** 및 **Password** 값을 페이팔 결제시 구매자 로그인 계정정보로 사용합니다. -Profile 탭의 **Email ID** 및 **Password** 값을 페이팔 결제시 구매자 로그인 계정정보로 사용합니다. + ![]() + -![]() + + ### **실** 환경 구성방법 - + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 페이팔-Express Checkout 선택 → **테스트모드 \[OFF]** → API 사용자 정보 입력 → \[전체 저장] 클릭 - -### **실** 환경 구성방법 + ![]() -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 페이팔-Express Checkout 선택 → **테스트모드 \[OFF]** → API 사용자 정보 입력 → \[전체 저장] 클릭 + > **각 항목별 실 운영 정보 값은 페이팔 관리자 페이지에서 아래 절차를 통해 확인합니다.** -![]() + 1. [https://www.paypal.com/](https://www.paypal.com/) 로그인 > 계정 클릭 > 계정 설정 클릭 > "계정 엑세스" 클릭 > "**API 엑세스**"의 업데이트 클릭 -> **각 항목별 실 운영 정보 값은 페이팔 관리자 페이지에서 아래 절차를 통해 확인합니다.** + ![]() -1. [https://www.paypal.com/](https://www.paypal.com/) 로그인 > 계정 클릭 > 계정 설정 클릭 > "계정 엑세스" 클릭 > "**API 엑세스**"의 업데이트 클릭 + **2) NVP/SOAP API 통합(클래식) 의 API 자격증명 관리 클릭** -![]() + \- 참고 : 휴대폰본인인증 절차 필요 -**2) NVP/SOAP API 통합(클래식) 의 API 자격증명 관리 클릭** + ![]() -\- 참고 : 휴대폰본인인증 절차 필요 + **3) API 서명보기 "표시" 클릭** -![]() - -**3) API 서명보기 "표시" 클릭** - -- API 사용자 이름 -- API 비밀번호 -- 서명 - - + - API 사용자 이름 + - API 비밀번호 + - 서명 + -### **참고사항** - -- Business 계정이 Sandbox이면 구매자 계정도 Sandbox Accounts 목록에 존재하는 Personal 계정으로 결제(사용)해야 합니다. -- Sandbox Accounts 의 Country 가 "US"인 Personal 계정으로 테스트해야 합니다. **판매자와 구매자 계정 국가가 "한국"인 경우 페이팔 정책상 결제가 불가**하며, **판매자는 한국이고 구매자가 미국인 경우는 가능**합니다. -- 판매자와 구매자 계정 국가가 "한국"인 경우 페이팔 정책상 결제가 불가합니다. 판매자와 구매자 중 최소 한사람의 국가가 해외여야 합니다 -- 아임포트는 페이팔 정기결제를 지원하지 않습니다. + ### **참고사항** + - Business 계정이 Sandbox이면 구매자 계정도 Sandbox Accounts 목록에 존재하는 Personal 계정으로 결제(사용)해야 합니다. + - Sandbox Accounts 의 Country 가 "US"인 Personal 계정으로 테스트해야 합니다. **판매자와 구매자 계정 국가가 "한국"인 경우 페이팔 정책상 결제가 불가**하며, **판매자는 한국이고 구매자가 미국인 경우는 가능**합니다. + - 판매자와 구매자 계정 국가가 "한국"인 경우 페이팔 정책상 결제가 불가합니다. 판매자와 구매자 중 최소 한사람의 국가가 해외여야 합니다 + - 아임포트는 페이팔 정기결제를 지원하지 않습니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-6.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-6.mdx index cdb092c0d..d84f82dee 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-6.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-6.mdx @@ -4,39 +4,36 @@ description: 엑심베이 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 엑심베이 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 엑심베이 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭 -> - 엑심베이 테스트 모드의 경우 결제시 실제 출금이 이루어지지 않습니다. -> - 테스트모드의 경우 테스트용 카드를 사용해주셔야 하며 해외에서 발급받으신 실제 카드를 사용하실 경우 오류가 발생됩니다. -> - [엑심베이에서 제공하는 해외결제용 테스트 카드 확인하기](https://support.eximbay.com/hc/ko/articles/360059014854-%EA%B2%B0%EC%A0%9C%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%A7%84%ED%96%89%ED%95%B4%EB%B3%B4%EA%B3%A0-%EC%8B%B6%EC%9D%80%EB%8D%B0-%ED%95%B4%EC%99%B8%EC%B9%B4%EB%93%9C%EA%B0%80-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%A0-%EC%88%98-%EC%9E%88%EB%82%98%EC%9A%94-) + > - 엑심베이 테스트 모드의 경우 결제시 실제 출금이 이루어지지 않습니다. + > - 테스트모드의 경우 테스트용 카드를 사용해주셔야 하며 해외에서 발급받으신 실제 카드를 사용하실 경우 오류가 발생됩니다. + > - [엑심베이에서 제공하는 해외결제용 테스트 카드 확인하기](https://support.eximbay.com/hc/ko/articles/360059014854-%EA%B2%B0%EC%A0%9C%ED%85%8C%EC%8A%A4%ED%8A%B8%EB%A5%BC-%EC%A7%84%ED%96%89%ED%95%B4%EB%B3%B4%EA%B3%A0-%EC%8B%B6%EC%9D%80%EB%8D%B0-%ED%95%B4%EC%99%B8%EC%B9%B4%EB%93%9C%EA%B0%80-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%96%B4%EB%96%BB%EA%B2%8C-%ED%95%A0-%EC%88%98-%EC%9E%88%EB%82%98%EC%9A%94-) -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + 카드사 심사 완료 후 엑심베이에서 발급받은 실 상점 정보를 **테스트 모드 OFF** 설정후 해당 값을 입력합니다. -카드사 심사 완료 후 엑심베이에서 발급받은 실 상점 정보를 **테스트 모드 OFF** 설정후 해당 값을 입력합니다. - -![]() - - + ![]() + -### **참고사항** - -아임포트는 엑심베이 비 인증 결제 방식을 지원하지 않습니다. + ### **참고사항** + 아임포트는 엑심베이 비 인증 결제 방식을 지원하지 않습니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-7.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-7.mdx index 493962b0d..ab61c3943 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-7.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined-7.mdx @@ -4,35 +4,32 @@ description: 블루월넛 설정방법을 확인합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 인증결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 블루월넛 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭\ + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 블루월넛 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭\\ -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + 카드사 심사 완료 후 블루월넛에서 발급받은 실 상점 정보를 **테스트 모드 OFF** 설정후 해당 값을 입력합니다. -카드사 심사 완료 후 블루월넛에서 발급받은 실 상점 정보를 **테스트 모드 OFF** 설정후 해당 값을 입력합니다. - -
- - +
+ -### 참고사항 - -아임포트는 블루월넛 비 인증 결제를 지원하지 않습니다. + ### 참고사항 + 아임포트는 블루월넛 비 인증 결제를 지원하지 않습니다. diff --git a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined.mdx b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined.mdx index c2548d2d1..6a89dd00d 100644 --- a/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined.mdx +++ b/src/content/docs/en/ready/2-pg/payment-gateway-settings/undefined.mdx @@ -4,58 +4,53 @@ description: Learn how to set up Toss Payments. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Authenticated payment - -### **Test environment setup** - -1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**Toss Payments**) → **(Prev) Toss Payments** -> **Add** -2. Check the auto-generated test MID value and click **Save** - -
+ + ### **Test environment setup** -
+ 1. [i'mport Admin console](https://admin.iamport.kr)→ **Payment integration** → **Test settings** → Select PG (**Toss Payments**) → **(Prev) Toss Payments** -> **Add** + 2. Check the auto-generated test MID value and click **Save** - -**Note - Authenticated payment module information** - -The Toss Payments authenticated payment method provided by i'mport uses the **previous module** integration method and is planned for upgrade to the new module. From merchants' perspective, there is no difference in terms of service between the old and new modules. - - +
- +
- -### Live environment setup + + **Note - Authenticated payment module information** -- **Payment integration -> Live settings** -- Select PG (**Toss Payments**) → **Toss Payments** -> **Add** -- Enter merchant info (MID/MertKey) issued by Toss Payments upon contract signing. + The Toss Payments authenticated payment method provided by i'mport uses the **previous module** integration method and is planned for upgrade to the new module. From merchants' perspective, there is no difference in terms of service between the old and new modules. + + - -Request MID for the previous module + + ### Live environment setup -For Toss Payments authenticated payment through i'mport, you must request for the **previous authenticated payment module method** when requesting for authenticated payment MID to obtain the correct MID. + - **Payment integration -> Live settings** + - Select PG (**Toss Payments**) → **Toss Payments** -> **Add** + - Enter merchant info (MID/MertKey) issued by Toss Payments upon contract signing. - + + Request MID for the previous module -
+ For Toss Payments authenticated payment through i'mport, you must request for the **previous authenticated payment module method** when requesting for authenticated payment MID to obtain the correct MID. + -
+
-
+
- +
+ -**Note - How to apply for non-authenticated payment** - -To use Toss Payments non-authenticated payment, [**sing up from the i'mport Admin**](https://admin.iamport.kr) and request for the service by sending your **account ID** (email address) to cs@iamport.kr. + **Note - How to apply for non-authenticated payment** + To use Toss Payments non-authenticated payment, [**sing up from the i'mport Admin**](https://admin.iamport.kr) and request for the service by sending your **account ID** (email address) to [cs@iamport.kr](mailto:cs@iamport.kr). diff --git a/src/content/docs/en/ready/2-pg/pg/undefined-1.mdx b/src/content/docs/en/ready/2-pg/pg/undefined-1.mdx index ba5b15edb..92920b448 100644 --- a/src/content/docs/en/ready/2-pg/pg/undefined-1.mdx +++ b/src/content/docs/en/ready/2-pg/pg/undefined-1.mdx @@ -4,36 +4,33 @@ description: 토스 간편결제 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 일반**결제** - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]토스 선택 → **테스트모드 \[ON]** → 테스트 apikey 입력 > \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]토스 선택 → **테스트모드 \[ON]** → 테스트 apikey 입력 > \[전체 저장] 클릭 -> - 테스트 상점아이디 : **tosstest** -> - 테스트 apiKey : **sk\_test\_w5lNQylNqa5lNQe013Nq** + > - 테스트 상점아이디 : **tosstest** + > - 테스트 apiKey : **sk\_test\_w5lNQylNqa5lNQe013Nq** -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + \*\*테스트모드 \*\***OFF** 처리 이후 카드사 심사 완료 후 토스페이에서 발급받은 실상점 정보로 설정 해야 합니다. -**테스트모드 ****OFF** 처리 이후 카드사 심사 완료 후 토스페이에서 발급받은 실상점 정보로 설정 해야 합니다. - -
- - +
+ -**아임포트는 토스 간편결제 정기결제를 지원하지 않습니다.** - + **아임포트는 토스 간편결제 정기결제를 지원하지 않습니다.** diff --git a/src/content/docs/en/ready/2-pg/pg/undefined-2.mdx b/src/content/docs/en/ready/2-pg/pg/undefined-2.mdx index fcab7667d..55f31d9be 100644 --- a/src/content/docs/en/ready/2-pg/pg/undefined-2.mdx +++ b/src/content/docs/en/ready/2-pg/pg/undefined-2.mdx @@ -4,37 +4,34 @@ description: 네이버페이(결제형) PG설정 방법을 안내합니다. --- import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -**네이버페이는 테스트 연동정보를 별도로 제공하지 않습니다. 가입신청 후 연동정보를 받아서 테스트 모드로 연동/개발 할 수 있습니다.** - + **네이버페이는 테스트 연동정보를 별도로 제공하지 않습니다. 가입신청 후 연동정보를 받아서 테스트 모드로 연동/개발 할 수 있습니다.** ## 일반**결제** - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제네이버페이(결제) 선택 → 테스트모드 \[ON] → **발급받은 상점정보 입력** → \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제네이버페이(결제) 선택 → 테스트모드 \[ON] → **발급받은 상점정보 입력** → \[전체 저장] 클릭 -- **파트너아이디** : 네이버페이 결제형 파트너ID 입력 -- **클라이언트 ID** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 -- **클라이언트 SECRET** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 + - **파트너아이디** : 네이버페이 결제형 파트너ID 입력 + - **클라이언트 ID** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 + - **클라이언트 SECRET** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 -![]() + ![]() + - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 - -**테스트모드 OFF** 설정(네이버페이 실 검수가 시작되면 OFF 설정) - - + **테스트모드 OFF** 설정(네이버페이 실 검수가 시작되면 OFF 설정) + ## 정기결제 @@ -42,71 +39,68 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ### 네이버페 정기결제는 결제창 방식만 지원합니다. - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제네이버페이(결제) 선택 → 테스트모드 \[ON] → **발급받은 상점정보 입력** → \[전체 저장] 클릭 + + ### 테스트 환경 구성방법 -- **파트너아이디** : 네이버페이 결제형 파트너ID 입력 -- **클라이언트 ID** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 -- **클라이언트 SECRET** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제네이버페이(결제) 선택 → 테스트모드 \[ON] → **발급받은 상점정보 입력** → \[전체 저장] 클릭 -![]() + - **파트너아이디** : 네이버페이 결제형 파트너ID 입력 + - **클라이언트 ID** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 + - **클라이언트 SECRET** : 네이버페이측에서 카드사 심사 완료시 고객사로 직접 안내됨 -### 실 환경 구성방법 + ![]() -**테스트모드 OFF** 설정(네이버페이 실 검수가 시작되면 OFF 설정) + ### 실 환경 구성방법 - + **테스트모드 OFF** 설정(네이버페이 실 검수가 시작되면 OFF 설정) + -#### **네이버페이 검수란?** - -네이버페이 결제형 오픈을 위해서는 네이버페이 검수팀으로 부터 기술검수 통과가 진행되어야 합니다. 해당 검수는 **필수**적으로 진행되어야 하며 해당 검수는 모든 연동이 완료된 이후 당사로 검수요청을 주시면 아임포트 1차 검토 이후 이상이 없는 경우 네이버페이로 실 검수 요청하는 프로세스로 진행됩니다. + #### **네이버페이 검수란?** + 네이버페이 결제형 오픈을 위해서는 네이버페이 검수팀으로 부터 기술검수 통과가 진행되어야 합니다. 해당 검수는 **필수**적으로 진행되어야 하며 해당 검수는 모든 연동이 완료된 이후 당사로 검수요청을 주시면 아임포트 1차 검토 이후 이상이 없는 경우 네이버페이로 실 검수 요청하는 프로세스로 진행됩니다.
-

네이버페이 기술검수 요청 방법

- -네이버페이 기술검수를 위해서는 아래 질문리스트를 작성하여 아래 이메일 주소로 검수요청을 주시면 됩니다. - -``` -<사업자 및 계약정보>   -    - 상호명 :  -    - 사업자번호 :  -    - 아임포트계정 :  -    - 네이버페이 결제형 파트너ID : 단건/반복(정기) 이용하실 방식 구분하여 전달 주시기 바랍니다. -    - 검수 진행가능한 URL :  -    - 테스트 가능한 로그인계정 : - - 네이버페이 결제형 연동 개발자 정보(이름/이메일/전화번호): +

네이버페이 기술검수 요청 방법

+ + 네이버페이 기술검수를 위해서는 아래 질문리스트를 작성하여 아래 이메일 주소로 검수요청을 주시면 됩니다. + + ```md + <사업자 및 계약정보> + - 상호명 : + - 사업자번호 : + - 아임포트계정 : + - 네이버페이 결제형 파트너ID : 단건/반복(정기) 이용하실 방식 구분하여 전달 주시기 바랍니다. + - 검수 진행가능한 URL : + - 테스트 가능한 로그인계정 : + - 네이버페이 결제형 연동 개발자 정보(이름/이메일/전화번호): - 네이버페이 결제형 연동 검수 담당자 정보(이름/이메일/전화번호): - - 판매상품 과/면세 여부: ​ - - 에스크로 사용여부: ​ - - 모바일앱 보유 여부: - - 부분취소 제공여부: ​ + - 판매상품 과/면세 여부: + - 에스크로 사용여부: + - 모바일앱 보유 여부: + - 부분취소 제공여부: - IMP.request_pay 함수 호출 시 naverProducts 파라미터 설정여부 및 셋팅 예시: -<질의사항> -1. 일반결제만 연동하는 경우 -    1) 지원하는 PC 웹 브라우저 종류와 최소 버전: -    2) 지원하는 모바일 웹 브라우저 종류와 최소 버전: -    (앱으로만 연동하시는 경우, 지원하는 모바일 OS 종류와 최소 버전: (ex. iOS 12.0.1, Android 8.0)) -    3) 네이버페이 계약 시, 현금영수증 발급을 누가 하도록 결정하셨나요? -    4) 네이버페이 계약 시, 포인트 적립 방식은 자동지급방식으로 계약하셨나요? 직접 건별로 지급하기로 계약하셨나요? - -2. 일반 + 정기결제 모두 연동하는 경우 -   1) 지원하는 PC 웹 브라우저 종류와 최소 버전: -   2) 지원하는 모바일 웹 브라우저 종류와 최소 버전: -  (앱으로만 연동하시는 경우, 지원하는 모바일 OS 종류와 최소 버전: (ex. iOS 12.0.1, Android 8.0)) -   3) 네이버페이 계약 시, 현금영수증 발급을 누가 하도록 결정하셨나요? -   4) 네이버페이 계약 시, 포인트 적립 방식은 자동지급방식으로 계약하셨나요? 직접 건별로 지급하기로 계약하셨나요? -   5) 정기결제 등록 내역 조회를 어떤 방식으로 구현하시고 계신가요? 예) 관리자페이지 반복결제내역 조회 시 / 자체주문 생성 시 정보조회 -   6) 결제 내역 조회를 어떤 방식으로 구현하시고 계신가요? 예) 관리자페이지 결제내역 조회 시 / 자체주문 생성 시 정보조회 / 정산 대사 작업 배치 -   7) 어떤 경우에 정기결제가 해제되나요? 예) 등록생성 실패 시 / 등록된 반복결제항목 해제 시 / 관리자 반복결제 등록항목 해제 -``` - -**email : support@iamport.kr** - + <질의사항> + 1. 일반결제만 연동하는 경우 + 1) 지원하는 PC 웹 브라우저 종류와 최소 버전: + 2) 지원하는 모바일 웹 브라우저 종류와 최소 버전: + (앱으로만 연동하시는 경우, 지원하는 모바일 OS 종류와 최소 버전: (ex. iOS 12.0.1, Android 8.0)) + 3) 네이버페이 계약 시, 현금영수증 발급을 누가 하도록 결정하셨나요? + 4) 네이버페이 계약 시, 포인트 적립 방식은 자동지급방식으로 계약하셨나요? 직접 건별로 지급하기로 계약하셨나요? + + 2. 일반 + 정기결제 모두 연동하는 경우 + 1) 지원하는 PC 웹 브라우저 종류와 최소 버전: + 2) 지원하는 모바일 웹 브라우저 종류와 최소 버전: + (앱으로만 연동하시는 경우, 지원하는 모바일 OS 종류와 최소 버전: (ex. iOS 12.0.1, Android 8.0)) + 3) 네이버페이 계약 시, 현금영수증 발급을 누가 하도록 결정하셨나요? + 4) 네이버페이 계약 시, 포인트 적립 방식은 자동지급방식으로 계약하셨나요? 직접 건별로 지급하기로 계약하셨나요? + 5) 정기결제 등록 내역 조회를 어떤 방식으로 구현하시고 계신가요? 예) 관리자페이지 반복결제내역 조회 시 / 자체주문 생성 시 정보조회 + 6) 결제 내역 조회를 어떤 방식으로 구현하시고 계신가요? 예) 관리자페이지 결제내역 조회 시 / 자체주문 생성 시 정보조회 / 정산 대사 작업 배치 + 7) 어떤 경우에 정기결제가 해제되나요? 예) 등록생성 실패 시 / 등록된 반복결제항목 해제 시 / 관리자 반복결제 등록항목 해제 + ``` + + **email : [support@iamport.kr](mailto:support@iamport.kr)**
diff --git a/src/content/docs/en/ready/2-pg/pg/undefined-3.mdx b/src/content/docs/en/ready/2-pg/pg/undefined-3.mdx index 6469daffc..7690ba2f3 100644 --- a/src/content/docs/en/ready/2-pg/pg/undefined-3.mdx +++ b/src/content/docs/en/ready/2-pg/pg/undefined-3.mdx @@ -4,11 +4,11 @@ description: 페이코 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -#### 페이코 결제 테스트를 위해서는 아래 애플리케이션을 다운로드 받으셔야 합니다. +**페이코 결제 테스트를 위해서는 아래 애플리케이션을 다운로드 받으셔야 합니다.** > - URL : [https://devcenter.payco.com](https://devcenter.payco.com/) > - 로그인(ID/PW) : payco / payco1234 @@ -17,54 +17,49 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 인증결제 - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]페이코 선택 → **테스트모드\[ON]** 클릭 → \[전체 저장] 클릭 + + ### 테스트 환경 구성방법 -
+ [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]페이코 선택 → **테스트모드\[ON]** 클릭 → \[전체 저장] 클릭 - +
+ - -### **실** 환경 구성방법 + + ### **실** 환경 구성방법 -카드사 심사 완료 후 페이코에서 발급받은 실상점 정보를 설정합니다. + 카드사 심사 완료 후 페이코에서 발급받은 실상점 정보를 설정합니다. -
- - +
+ ## 정기 결제 - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]페이코 선택 → 테스트모드 \[ON] → '**PAYCO정기결제(자동결제) 테스트용도인가요?**' 체크박스 선택 > \[전체 저장] 클릭 + + ### 테스트 환경 구성방법 -
+ [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]페이코 선택 → 테스트모드 \[ON] → '**PAYCO정기결제(자동결제) 테스트용도인가요?**' 체크박스 선택 > \[전체 저장] 클릭 -### **실** 환경 구성방법 +
-카드사 심사 완료 후 페이코에서 발급받은 실상점 정보를 **테스트모드 OFF** 처리후 설정합니다. + ### **실** 환경 구성방법 -
+ 카드사 심사 완료 후 페이코에서 발급받은 실상점 정보를 **테스트모드 OFF** 처리후 설정합니다. - +
+ - -#### **페이코 정기결제는 ****결제창 방식****만 지원합니다.** - - + + #### 페이코 정기결제는 **결제창 방식**만 지원합니다. + -### **확인사항** - -- 페이코 테스트 모드의 경우 실 결제가 이루어지지 않습니다. -- 테스트 환경에서는 결제한도 등의 테스트는 불가합니다. -- 페이코 테스트는 상용앱을 지운 후 테스트 앱으로 진행해야 합니다. + ### **확인사항** + - 페이코 테스트 모드의 경우 실 결제가 이루어지지 않습니다. + - 테스트 환경에서는 결제한도 등의 테스트는 불가합니다. + - 페이코 테스트는 상용앱을 지운 후 테스트 앱으로 진행해야 합니다. diff --git a/src/content/docs/en/ready/2-pg/pg/undefined-4.mdx b/src/content/docs/en/ready/2-pg/pg/undefined-4.mdx index ab2b64e7a..b031fbbf6 100644 --- a/src/content/docs/en/ready/2-pg/pg/undefined-4.mdx +++ b/src/content/docs/en/ready/2-pg/pg/undefined-4.mdx @@ -4,15 +4,15 @@ description: 차이 간편결제 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -#### 차이 결제 테스트를 위해서는 아래 애플리케이션을 다운로드 받으셔야 합니다. +차이 결제 테스트를 위해서는 아래 애플리케이션을 다운로드 받으셔야 합니다. > - Android : [https://appdistribution.firebase.dev/i/8fef29de1f667252](https://appdistribution.firebase.dev/i/8fef29de1f667252)◦ > -> \- **staging 앱**을 설치 +> \- **staging 앱**을 설치 > > - iOS : [https://testflight.apple.com/join/ZgQIFce5](https://testflight.apple.com/join/ZgQIFce5) > @@ -21,73 +21,67 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > \- 앱의 오른쪽 엣지에서 왼쪽으로 swipe 후 **staging 설정** -**테스트 계좌 안내** - -**정상 응답 계좌** + **테스트 계좌 안내** -- 국민은행 : 201602181111 -- 우리은행 : 201602182222 -- 경남은행 : 201602183333 + **정상 응답 계좌** -**잔액 부족 계좌** + - 국민은행 : 201602181111 + - 우리은행 : 201602182222 + - 경남은행 : 201602183333 -- 국민은행 : 772210258507 -- 신한은행 : 110438106449 -- 경남은행 : 629220095451 + **잔액 부족 계좌** + - 국민은행 : 772210258507 + - 신한은행 : 110438106449 + - 경남은행 : 629220095451 ## 일반 결제 - -### 테스트 환경 구성방법 + + ### 테스트 환경 구성방법 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[ON]** → public_api_key 및 private_api_key에 발급받은 키 정보 입력 > \[전체 저장] 클릭 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[ON]** → public\_api\_key 및 private\_api\_key에 발급받은 키 정보 입력 > \[전체 저장] 클릭 -> **차이간편결제 테스트를 진행하기 위해서는 차이 가입 이후 발급된 정보로만 테스트가 가능합니다.** + > **차이간편결제 테스트를 진행하기 위해서는 차이 가입 이후 발급된 정보로만 테스트가 가능합니다.** -
+
+ - + + ### **실** 환경 구성방법 - -### **실** 환경 구성방법 + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[OFF]** → public\_api\_key 및 private\_api\_key 에 발급받은 키 정보 입력 > \[전체 저장] 클릭 -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[OFF]** → public_api_key 및 private_api_key 에 발급받은 키 정보 입력 > \[전체 저장] 클릭 - -
- - +
+ ## 정기 결제 - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[ON]** → public_api_key 및 private_api_key 에 발급받은 키 정보 입력 > \[전체 저장] 클릭 + + ### 테스트 환경 구성방법 -
+ [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[ON]** → public\_api\_key 및 private\_api\_key 에 발급받은 키 정보 입력 > \[전체 저장] 클릭 -### **실** 환경 구성방법 +
-[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[OFF]** → public_api_key 및 private_api_key 에 발급받은 키 정보 입력 > \[전체 저장] 클릭 + ### **실** 환경 구성방법 -
+ [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제] 차이 선택 → **테스트모드 \[OFF]** → public\_api\_key 및 private\_api\_key 에 발급받은 키 정보 입력 > \[전체 저장] 클릭 - +
+ - -**차이 간편결제는 API 방식을 통한 정기결제는 지원하지 않습니다.** - - + + **차이 간편결제는 API 방식을 통한 정기결제는 지원하지 않습니다.** + -#### **확인사항** - -차이 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다. + #### **확인사항** + 차이 테스트 모드의 경우 실제 출금 되지만 매일 23:00\~23:50분 사이 자동 취소됩니다. diff --git a/src/content/docs/en/ready/2-pg/pg/undefined-5.mdx b/src/content/docs/en/ready/2-pg/pg/undefined-5.mdx index 7976b2f8b..639f8a229 100644 --- a/src/content/docs/en/ready/2-pg/pg/undefined-5.mdx +++ b/src/content/docs/en/ready/2-pg/pg/undefined-5.mdx @@ -4,27 +4,25 @@ description: 알리페이 설정 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 아임포트를 통한 알리페이 결제는 나이스페이먼츠 서비스를 이용합니다. +아임포트를 통한 알리페이 결제는 나이스페이먼츠 서비스를 이용합니다. - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 알리페이(Alipay) 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭\ - -
+ + ## 테스트 환경 구성방법 - + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 알리페이(Alipay) 선택 → **테스트모드 \[ON]** → \[전체 저장] 클릭\\ - -### **실** 환경 구성방법 +
+ -카드사 심사 완료 후 NICE페이먼츠 에서 발급받은 실상점 정보를 **테스트 모드 OFF** 이후 설정합니다. + + ## **실** 환경 구성방법 -
+ 카드사 심사 완료 후 NICE페이먼츠 에서 발급받은 실상점 정보를 **테스트 모드 OFF** 이후 설정합니다. - +
+ diff --git a/src/content/docs/en/ready/2-pg/pg/undefined.mdx b/src/content/docs/en/ready/2-pg/pg/undefined.mdx index e1354f2d6..4a411c5ca 100644 --- a/src/content/docs/en/ready/2-pg/pg/undefined.mdx +++ b/src/content/docs/en/ready/2-pg/pg/undefined.mdx @@ -3,29 +3,27 @@ title: 카카오페이 설정 description: 카카오페이 간편결제 설정 방법을 확인합니다. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## 일반**결제** - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]카카오페이 선택 → 테스트모드 \[ON] → 고객사코드(CID)에 **TC0ONETIME** 입력 > \[전체 저장] 클릭 + + ### 테스트 환경 구성방법 -![]() + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]카카오페이 선택 → 테스트모드 \[ON] → 고객사코드(CID)에 **TC0ONETIME** 입력 > \[전체 저장] 클릭 - + ![]() + - -### **실** 환경 구성방법 + + ### **실** 환경 구성방법 -**테스트모드 OFF** 처리 이후 카드사 심사 완료 후 카카오페이에서 발급받은 실상점 정보를 설정합니다. + **테스트모드 OFF** 처리 이후 카드사 심사 완료 후 카카오페이에서 발급받은 실상점 정보를 설정합니다. -![]() - - + ![]() + ## 정기결제 @@ -33,17 +31,15 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ### 카카오페이의 정기결제는 결제창 방식만 지원합니다. - -### 테스트 환경 구성방법 - -[아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]카카오페이 선택 → 테스트모드 \[ON] → 고객사코드(CID)에 '**TCSUBSCRIP**' 입력 > \[전체 저장] 클릭 + + ### 테스트 환경 구성방법 -![]() + [아임포트 관리자 콘솔](https://admin.iamport.kr/)→ 시스템설정 → PG설정(**일반결제 및 정기결제**) → PG사 \[간편결제]카카오페이 선택 → 테스트모드 \[ON] → 고객사코드(CID)에 '**TCSUBSCRIP**' 입력 > \[전체 저장] 클릭 -### 실 환경 구성방법 + ![]() -**테스트모드 OFF** 처리 이후 카드사 심사 완료 후 카카오페이에서 발급받은 실상점 정보를 설정합니다. + ### 실 환경 구성방법 - + **테스트모드 OFF** 처리 이후 카드사 심사 완료 후 카카오페이에서 발급받은 실상점 정보를 설정합니다. + - diff --git a/src/content/docs/en/ready/2-pg/readme.mdx b/src/content/docs/en/ready/2-pg/readme.mdx index 8ee2848fe..66f91702f 100644 --- a/src/content/docs/en/ready/2-pg/readme.mdx +++ b/src/content/docs/en/ready/2-pg/readme.mdx @@ -7,7 +7,7 @@ description: >- import Figure from "~/components/Figure.astro"; -After creating an i'mport account, go to the Admin page and click **Payment integration** **->** +After creating an i'mport account, go to the Admin page and click **Payment integration ->** **Test settings** tab and select the target PG. You can configure PG-specific test settings from the **Test settings** tab. diff --git a/src/content/docs/en/ready/3.mdx b/src/content/docs/en/ready/3.mdx index 0c0846de4..8219b24a7 100644 --- a/src/content/docs/en/ready/3.mdx +++ b/src/content/docs/en/ready/3.mdx @@ -4,9 +4,9 @@ description: Learn how to check information needed to integrate your payment win --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; Check information required for payment window integration and API call as follows: @@ -16,8 +16,7 @@ Check information required for payment window integration and API call as follow 2. Check your **Merchant ID/REST API Key/ REST API Secret** -Since this is **sensitive information** that can be used to **manipulate payment details**, take caution to protect it from unauthorized access. - + Since this is **sensitive information** that can be used to **manipulate payment details**, take caution to protect it from unauthorized access.
@@ -25,23 +24,20 @@ Since this is **sensitive information** that can be used to **manipulate payment
- -- A **unique value assigned to each ChaiPort admin console account**. -- A unique code used to **initialize the object** when calling the payment window. -- Provide this ID when making a **technical inquiry** for a faster response. - - - - -- A value required to request an **access token** for an API call. -- Take **special care to protect it from unauthorized access**. - - - - -- A value required to request an **access token** for an API call. -- The value can be reissued, and periodic reissuance is recommended for enhanced security. -- Take **special care to protect it from unauthorized access**. - - + + - A **unique value assigned to each ChaiPort admin console account**. + - A unique code used to **initialize the object** when calling the payment window. + - Provide this ID when making a **technical inquiry** for a faster response. + + + + - A value required to request an **access token** for an API call. + - Take **special care to protect it from unauthorized access**. + + + + - A value required to request an **access token** for an API call. + - The value can be reissued, and periodic reissuance is recommended for enhanced security. + - Take **special care to protect it from unauthorized access**. + diff --git a/src/content/docs/en/ready/readme.mdx b/src/content/docs/en/ready/readme.mdx index 125ecc0a3..f8bab3a5d 100644 --- a/src/content/docs/en/ready/readme.mdx +++ b/src/content/docs/en/ready/readme.mdx @@ -5,28 +5,26 @@ description: >- i'mport. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Details from "~/components/gitbook/Details.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. Create an i'mport account -For payment integration, you must first create an account from the i'mport Admin [**Sign Up**](https://admin.iamport.kr) page. - -You can sign up for **free without a contract**. + For payment integration, you must first create an account from the i'mport Admin [**Sign Up**](https://admin.iamport.kr) page. + You can sign up for **free without a contract**.
-

Create an i'mport account now

- -Just need to provide your "**email address"**. +

Create an i'mport account now

-Use a “**strong password**" to protect it from unauthorized access. + Just need to provide your "**email address"**. + Use a “**strong password**" to protect it from unauthorized access.
Click **Sign up** from the pages below to create an account. @@ -35,7 +33,7 @@ Click **Sign up** from the pages below to create an account. ## 2. Set up PG -After creating an i'mport account, go to the Admin page and click **Payment integration** **->** +After creating an i'mport account, go to the Admin page and click **Payment integration ->** **Test settings** tab and select the target PG. You can configure PG-specific test settings from the **Test settings** tab. @@ -43,8 +41,7 @@ You can configure PG-specific test settings from the **Test settings** tab.
-**Test settings and live account settings** for each PG are **different.** For detailed information about each PG settings, go to [**Set up PG**](2.-pg/). - + **Test settings and live account settings** for each PG are **different.** For detailed information about each PG settings, go to [**Set up PG**](2.-pg/). ## 3. Check integration settings @@ -52,13 +49,12 @@ You can configure PG-specific test settings from the **Test settings** tab. You can check the integration settings required for payment window integration and API calls. 1. Log in to [**i'mport Admin Console**](https://admin.iamport.kr) -> **Merchant account** - -> Select **My ID - API Keys** + -> Select **My ID - API Keys** 2. Check your **Merchant ID/REST API Key/REST API Secret**. -Since this is **sensitive data** that can be used to **manipulate payment details**, be sure to protect it from unauthorized access. - + Since this is **sensitive data** that can be used to **manipulate payment details**, be sure to protect it from unauthorized access.
@@ -66,23 +62,20 @@ Since this is **sensitive data** that can be used to **manipulate payment detail
- -- A **unique value assigned to each ChaiPort Admin console account**. -- A unique code used to **initialize the object** when calling the payment window. -- Provide this ID when making a **technical inquiry** for a faster response. - - - - -- A value required to request an **access token** for an API call. -- Take **special care to protect it from unauthorized access**. - - - - -- A value required to request an **access token** for an API call. -- The value can be reissued, and periodic reissuance is recommended for enhanced security. -- Take **special care to protect it from unauthorized access**. - - + + - A **unique value assigned to each ChaiPort Admin console account**. + - A unique code used to **initialize the object** when calling the payment window. + - Provide this ID when making a **technical inquiry** for a faster response. + + + + - A value required to request an **access token** for an API call. + - Take **special care to protect it from unauthorized access**. + + + + - A value required to request an **access token** for an API call. + - The value can be reissued, and periodic reissuance is recommended for enhanced security. + - Take **special care to protect it from unauthorized access**. + diff --git a/src/content/docs/en/result/webhook.mdx b/src/content/docs/en/result/webhook.mdx index 0843aa4bc..4988c82d7 100644 --- a/src/content/docs/en/result/webhook.mdx +++ b/src/content/docs/en/result/webhook.mdx @@ -3,32 +3,31 @@ title: Set up a webhook description: Set up a webhook to handle the payment result in a reliable way. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -#### Use the i'mport webhook to synchronize payment information on the i'mport server with the merchant server to compensate for data loss due to device or network instability. +**Use the i'mport webhook to synchronize payment information on the i'mport server +with the merchant server to compensate for data loss due to device or network instability.** -![]() +![](/gitbook-assets/en/webhook-service.png) -**What is a webhook?** - -A webhook is a mechanism for sending notifications to other services or applications when a specific event occurs. -The webhook provider sends event information to the callback URL (endpoint) by creating an `HTTP POST` request -when the event occurs. Webhooks are much more efficient in terms of resources and communication -as they can only receive information related to desired events without polling data periodically. -Using webhooks, you can extend functionality by integrating with custom functions or other applications. + **What is a webhook?** + A webhook is a mechanism for sending notifications to other services or applications when a specific event occurs. + The webhook provider sends event information to the callback URL (endpoint) by creating an `HTTP POST` request + when the event occurs. Webhooks are much more efficient in terms of resources and communication + as they can only receive information related to desired events without polling data periodically. + Using webhooks, you can extend functionality by integrating with custom functions or other applications. -**Is webhook integration required?** - -When the i'mport server sends a response to the client, the client may not receive the response -after the payment process is complete for reasons, such as Wi-Fi disconnection or automatic browser reload. -In this case, the i'mport server sends a webhook event to the server so that the payment information can be synchronized. + **Is webhook integration required?** + When the i'mport server sends a response to the client, the client may not receive the response + after the payment process is complete for reasons, such as Wi-Fi disconnection or automatic browser reload. + In this case, the i'mport server sends a webhook event to the server so that the payment information can be synchronized. i'mport webhook is called when: @@ -40,60 +39,60 @@ i'mport webhook is called when: > - **Refund is processed from Admin console** (status : `cancelled`) -**A webhook is not invoked when payment fails!** - + **A webhook is not invoked when payment fails!** Webhook URL can be set in the following two ways: - -![]() - -To set the webhook's notification URL to send the payment information to, log in to the **Admin console** and then go to [**Payments->Live Settings**](https://admin.iamport.kr/integration?tab=production) tab and set the URL in the **Endpoint URL** field to receive the webhook data. - -**Content-Type** can be specified as `application/json` or `application/x-www-form-urlencoded`. To test the URL, click the **Test Webhook** button to the right of the Notification URL field. - - - - -Set the **notice\_url** parameter when calling the JavaScript SDK **request\_pay** function to receive a webhook notification. Use this method to specify a different webhook URL for each payment request. - -(If this parameter is specified, the Admin console's **webhook setting is ignored**.) - -```javascript title="client-side" -function requestPay() { - // IMP.request_pay(param, callback) call payment window - IMP.request_pay({ - ... // Omitted - notice_url : 'https://Webhook URL', // Set Webhook URL - ... // Omitted - }, function (rsp) { // callback - if (rsp.success) { + + ![]() + + To set the webhook's notification URL to send the payment information to, log in to the **Admin console** and then go to [**Payments->Live Settings**](https://admin.iamport.kr/integration?tab=production) tab and set the URL in the **Endpoint URL** field to receive the webhook data. + + **Content-Type** can be specified as `application/json` or `application/x-www-form-urlencoded`. To test the URL, click the **Test Webhook** button to the right of the Notification URL field. + + + + Set the **notice\_url** parameter when calling the JavaScript SDK **request\_pay** function to receive a webhook notification. Use this method to specify a different webhook URL for each payment request. + + (If this parameter is specified, the Admin console's **webhook setting is ignored**.) + + ```ts title="client-side" + function requestPay() { + // IMP.request_pay(param, callback) call payment window + IMP.request_pay( + { + // ...Omitted + notice_url: "https://Webhook URL", // Set Webhook URL + // ...Omitted + }, + function (rsp) { + // callback + if (rsp.success) { console.log(rsp); - } else { + } else { console.log(rsp); - } - }); -} -``` - - + } + }, + ); + } + ``` + -**About webhooks** - -**You cannot set multiple webhook URLs.** + **About webhooks** -Webhooks can be sent via initial or resend, each with different timeouts. + **You cannot set multiple webhook URLs.** -1. For the initial webhook, the **Connection TimeOut is set to 10 seconds** and the **Read TimeOut waiting for the response is 30 seconds**. -2. For the Resend Webhook, the **Overall TimeOut for the request is 15 seconds**. + Webhooks can be sent via initial or resend, each with different timeouts. + 1. For the initial webhook, the **Connection TimeOut is set to 10 seconds** and the **Read TimeOut waiting for the response is 30 seconds**. + 2. For the Resend Webhook, the **Overall TimeOut for the request is 15 seconds**. -### Verify webhook request +## Verify webhook request When a Webhook event is triggered, a `POST` request is generated to the configured URL endpoint as follows. @@ -115,12 +114,11 @@ have set up the webhook retry feature. It is recommended to handle potential mul the same webhook content without issues. - -```url -curl -H "Content-Type: application/json" -X POST -d '{ "imp_uid": "imp_1234567890", "merchant_uid": "order_id_8237352", "status": "paid" }' { NotificationURL } -``` - - + + ```url + curl -H "Content-Type: application/json" -X POST -d '{ "imp_uid": "imp_1234567890", "merchant_uid": "order_id_8237352", "status": "paid" }' { NotificationURL } + ``` + > The body of the webhook `POST` request contains the following information. The server can get the @@ -134,65 +132,73 @@ curl -H "Content-Type: application/json" -X POST -d '{ "imp_uid": "imp_123456789 Sample code of receiving a POST request to webhook endpoint URL - -Create an endpoint to receive the webhook event's `POST` request as follows and then parse, verify, and save the payment information. - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // Route POST request to "/iamport-webhook" - app.post("/iamport-webhook", async (req, res) => { - try { + + Create an endpoint to receive the webhook event's `POST` request as follows and then parse, verify, and save the payment information. + + ```ts title="server-side" + app.use(bodyParser.json()); + // Route POST request to "/iamport-webhook" + app.post("/iamport-webhook", async (req, res) => { + try { const { imp_uid, merchant_uid } = req.body; // Get imp_uid and merchant_uid from req.body // Get access token /* ...Omitted... */ // Get payment info from i'mport server using imp_uid /* ...Omitted... */ const paymentData = getPaymentData.data.response; // Save payment info - ... + // ... // Query for original requested amount from the database const order = await Orders.findById(paymentData.merchant_uid); const amountToBePaid = order.amount; // Original requested amount - ... + // ... // Verify payment amount const { amount, status } = paymentData; - if (amount === amountToBePaid) { // Amounts match. Processed amount === Original requested amount + if (amount === amountToBePaid) { + // Amounts match. Processed amount === Original requested amount await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Save payment info in DB switch (status) { case "ready": // Issue virtual account // Save virtual account info in DB const { vbank_num, vbank_date, vbank_name } = paymentData; - await Users.findByIdAndUpdate("/* customer id */", { $set: { vbank_num, vbank_date, vbank_name }}); + await Users.findByIdAndUpdate("/* customer id */", { + $set: { vbank_num, vbank_date, vbank_name }, + }); // Send virtual account issuance text message - SMS.send({ text: \`Virtual account has been issued. Account information \${vbank_num} \${vbank_date} \${vbank_name}\`}); - res.send({ status: "vbankIssued", message: "Virtual account issued successfully" }); + SMS.send({ + text: `Virtual account has been issued. Account information ${vbank_num} ${vbank_date} ${vbank_name}`, + }); + res.send({ + status: "vbankIssued", + message: "Virtual account issued successfully", + }); break; case "paid": // Payment complete res.send({ status: "success", message: "Payment successful." }); break; } - } else { // Amount mismatch. Forged/falsified payment. - throw { status: "forgery", message: "Forged/falsified payment attempted" }; + } else { + // Amount mismatch. Forged/falsified payment. + throw { + status: "forgery", + message: "Forged/falsified payment attempted", + }; } - } catch (e) { - res.status(400).send(e); - } - }); -``` - - + } catch (e) { + res.status(400).send(e); + } + }); + ``` + -**i'mport does not guarantee the order of payment information delivery** - -In general, after i'mport server calls webhook, it does not guarantee the order in which the payment information arrives at the server. This is because i'mport sends a 302 redirect response to the client without waiting for a webhook response from the server. However, you can submit a special request to configure i'mport to wait for a webhook response before sending a 302 redirect or callback response to the client so that the server always receives payment information from i'mport first. To make a request to guarantee the prioritized delivery of webhooks, contact [support@iamport.kr](mailto:support@iamport.kr) with the merchant ID. + **i'mport does not guarantee the order of payment information delivery** + In general, after i'mport server calls webhook, it does not guarantee the order in which the payment information arrives at the server. This is because i'mport sends a 302 redirect response to the client without waiting for a webhook response from the server. However, you can submit a special request to configure i'mport to wait for a webhook response before sending a 302 redirect or callback response to the client so that the server always receives payment information from i'mport first. To make a request to guarantee the prioritized delivery of webhooks, contact [support@iamport.kr](mailto:support@iamport.kr) with the merchant ID. -**Can you re-send a webhook?** - -By default, a webhook can only be sent once. However, it can be re-sent up to 5 times as per merchant's request. Webhooks are re-sent every 1 minute until a successful response is received from the merchant (**up to 5 times**). + **Can you re-send a webhook?** + By default, a webhook can only be sent once. However, it can be re-sent up to 5 times as per merchant's request. Webhooks are re-sent every 1 minute until a successful response is received from the merchant (**up to 5 times**). diff --git a/src/content/docs/en/sdk/javascript-sdk/identity-verification-request-parameters.mdx b/src/content/docs/en/sdk/javascript-sdk/identity-verification-request-parameters.mdx index e62b6b4dd..6c09e5d7e 100644 --- a/src/content/docs/en/sdk/javascript-sdk/identity-verification-request-parameters.mdx +++ b/src/content/docs/en/sdk/javascript-sdk/identity-verification-request-parameters.mdx @@ -3,7 +3,7 @@ title: Identity verification request parameters description: '' --- -### certification(param, callback) +## certification(param, callback) > **`merchant_uid`** **\*** **string** > @@ -13,7 +13,7 @@ description: '' > **`min_age`** ******integer** > -> **Minimum age allowed** **for verification** +> **Minimum age allowed for verification** > > Only supported by Danal PG verification diff --git a/src/content/docs/en/sdk/javascript-sdk/identity-verification-response-parameters.mdx b/src/content/docs/en/sdk/javascript-sdk/identity-verification-response-parameters.mdx index c64ec29ea..28557edef 100644 --- a/src/content/docs/en/sdk/javascript-sdk/identity-verification-response-parameters.mdx +++ b/src/content/docs/en/sdk/javascript-sdk/identity-verification-response-parameters.mdx @@ -3,7 +3,7 @@ title: Identity verification response parameters description: '' --- -### rsp (Object) +## rsp (Object) > **`success`** **\*** **boolean** > diff --git a/src/content/docs/en/sdk/javascript-sdk/readme.mdx b/src/content/docs/en/sdk/javascript-sdk/readme.mdx index 5e11d96d5..b2c982f41 100644 --- a/src/content/docs/en/sdk/javascript-sdk/readme.mdx +++ b/src/content/docs/en/sdk/javascript-sdk/readme.mdx @@ -7,11 +7,11 @@ import Hint from "~/components/Hint.astro"; You can use the **i'mport JavaScript SDK** to open the payment or identity verification window from your website or app. For **version history** and notable changes in each version, refer to the -[**Release Notes**](sdk-release-note).\ +[**Release Notes**](sdk-release-note). -### Loading SDK Library +## Loading SDK Library -To use the **i'mport JavaScript SDK**, you must first load the library on the page as shown below. It is recommended to load it from the CDN (**https://cdn.iamport.kr/js/iamport.payment-{SDK-latest-version}.js**). When the library is loaded, you can call **IMP** functions by accessing the **IMP** global object as a property of the **window** object. +To use the **i'mport JavaScript SDK**, you must first load the library on the page as shown below. It is recommended to load it from the CDN (**[https://cdn.iamport.kr/js/iamport.payment-\{SDK-latest-version}.js](https://cdn.iamport.kr/js/iamport.payment-\{SDK-latest-version}.js)**). When the library is loaded, you can call **IMP** functions by accessing the **IMP** global object as a property of the **window** object. ```html title="HTML" @@ -27,8 +27,7 @@ To use the **i'mport JavaScript SDK**, you must first load the library on the pa ``` -You **must install jQuery 1.0 or later version**. - + You **must install jQuery 1.0 or later version**. -> #### **If you cannot use CDN**, use the following: [https://service.iamport.kr/js/iamport.payment-](https://service.iamport.kr/js/iamport.payment-1.2.0.js)\{SDK-latest-version}[.js](https://service.iamport.kr/js/iamport.payment-1.2.0.js) +> **If you cannot use CDN**, use the following: [https://service.iamport.kr/js/iamport.payment-](https://service.iamport.kr/js/iamport.payment-1.2.0.js)\{SDK-latest-version}[.js](https://service.iamport.kr/js/iamport.payment-1.2.0.js) diff --git a/src/content/docs/en/sdk/javascript-sdk/rps.mdx b/src/content/docs/en/sdk/javascript-sdk/rps.mdx index 4b38f190f..3aece5d8c 100644 --- a/src/content/docs/en/sdk/javascript-sdk/rps.mdx +++ b/src/content/docs/en/sdk/javascript-sdk/rps.mdx @@ -5,13 +5,13 @@ description: "" import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## Parameters -> **`pg`** **\***\*\* ****string\*\* +> **`pg`** **\*** **string** > > **PG code** > @@ -19,7 +19,7 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > > [**PG codes**](../../tips/pg-codes) -> **`pay_method`** **\***\*\* ****string\*\* +> **`pay_method`** **\*** **string** > > **Payment method code** > @@ -28,29 +28,28 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > [**Payment integration by PG**](../../payment-integration-by-pg/payment-gateways/readme)
-

Payment method codes

- -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) -- `samsung`(Samsung Pay) -- `kpay` (KPay app) -- `kakaopay`(Kakao Pay) -- `payco` ( PAYCO) -- `lpay` (LPAY) -- `ssgpay`(SSG Pay) -- `tosspay`(Toss simple pay) -- `cultureland`(Cultureland) -- `smartculture`(Smart Culture) -- `happymoney`(Happy Money) -- `booknlife`(Book culture gift certificate) -- `point`(points, e.g., Benepia) -- `wechat`(WeChat Pay) -- `alipay`(Alipay) -- `unionpay`(UnionPay) -- `tenpay`(TenPay) - +

Payment method codes

+ + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) + - `samsung`(Samsung Pay) + - `kpay` (KPay app) + - `kakaopay`(Kakao Pay) + - `payco` ( PAYCO) + - `lpay` (LPAY) + - `ssgpay`(SSG Pay) + - `tosspay`(Toss simple pay) + - `cultureland`(Cultureland) + - `smartculture`(Smart Culture) + - `happymoney`(Happy Money) + - `booknlife`(Book culture gift certificate) + - `point`(points, e.g., Benepia) + - `wechat`(WeChat Pay) + - `alipay`(Alipay) + - `unionpay`(UnionPay) + - `tenpay`(TenPay)
> **`escrow`** **boolean** @@ -61,7 +60,7 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > > - [x] Requires pre-approval from PG -> **`merchant_uid`** **\***\*\* ****string\*\* +> **`merchant_uid`** **\*** **string** > > **Merchant order ID** > @@ -75,7 +74,7 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > > - Max 16 bytes -> **`amount`** **\***\*\* ** **number\*\* +> **`amount`** **\*** **number** > > **Amount** > @@ -103,13 +102,12 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > - [PayPal Supported Currencies](https://developer.paypal.com/docs/reports/reference/paypal-supported-currencies/%20target=)
-

Currency codes

- -1. KRW -2. USD -3. EUR -4. JPY +

Currency codes

+ 1. KRW + 2. USD + 3. EUR + 4. JPY
> **`language`** **string** @@ -117,11 +115,10 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > **Language for payment window** (Supported by only some PGs.)
-

Language codes

- -- en (English) -- ko (Korean) +

Language codes

+ - en (English) + - ko (Korean)
> **`buyer_name`** **\*** **string** @@ -150,9 +147,9 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > **`confirm_url`** **string** > -> **Merchant endpoint url when using** [**confirm_process**](../../tips/confirm-process) +> **Merchant endpoint url when using** [**confirm\_process**](../../tips/confirm-process) > -> - Must request for use to support@iamport.kr. +> - Must request for use to [support@iamport.kr](mailto:support@iamport.kr). > **`notice_url`** **string** > @@ -208,78 +205,78 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## Additional functions - -```javascript title="javascript" -display: { - card_quota: [6] // Display up to 6 months installment plans -} -``` - -**Parameters** - -- **card_quota :** - - `[]`: Only immediate pay - - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans\ + + ```json title="javascript" + { + "display": { + "card_quota": [6] // Display up to 6 months installment plans + } + } + ``` - -Installment plan option is available only for **KRW 50,000 or more**. + **Parameters** - + - **card\_quota :** + - `[]`: Only immediate pay + - `2,3,4,5,6`: immediate, 2, 3, 4, 5, 6 month installment plans -Example of allowing up to **3 months**** installment plans** + + Installment plan option is available only for **KRW 50,000 or more**. + - + Example of allowing up to **3 months** installment plans - + + - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } } -} -``` - -**Parameters** + ``` -- **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) -- **quota**: Installment plan. For immediate, set to 0. (**integer**) + **Parameters** - -**Precautions** + - **code**: [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string**) + - **quota**: Installment plan. For immediate, set to 0. (**integer**) -- Currently, direct call to the credit card company's payment window is only supported by 6 PGs: **KG Inicis, KCP, Toss Payments, Nice Payments, KICC, and Danal**. -- Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support. + + **Precautions** - + - Currently, direct call to the credit card company's payment window is only supported by 6 PGs: **KG Inicis, KCP, Toss Payments, Nice Payments, KICC, and Danal**. + - Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support. + -\ -Example of direct call to **Hyundai Card** module + Example of direct call to **Hyundai Card** module - + + - - - -```javascript title="javascript" -card : { - detail : [ - {card_code:"*", enabled:false}, // Disable all credit cards - {card_code:'366', enabled:true} // Enable specific credit card - ] -} -``` - -**Parameters** + + ```json title="javascript" + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // Disable all credit cards + { "card_code": "366", "enabled": true } // Enable specific credit card + ] + } + } + ``` -- **card_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** -- **enabled:** Option to enable the credit card (**boolean)** + **Parameters** -**Example of enabling only ****Shinhan Card**** payment window** + - **card\_code:** [**Credit card code**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) (**string)** + - **enabled:** Option to enable the credit card (**boolean)** - + **Example of enabling only ****Shinhan Card**** payment window** - + + diff --git a/src/content/docs/en/sdk/javascript-sdk/sdk-release-note.mdx b/src/content/docs/en/sdk/javascript-sdk/sdk-release-note.mdx index f37723511..a994b18e1 100644 --- a/src/content/docs/en/sdk/javascript-sdk/sdk-release-note.mdx +++ b/src/content/docs/en/sdk/javascript-sdk/sdk-release-note.mdx @@ -7,240 +7,243 @@ description: >- import Details from "~/components/gitbook/Details.astro"; -### Version 1.2.0 +## Version 1.2.0
-

TBU

- +

TBU

-### Version 1.1.8 +## Version 1.1.8
-

Details

+

Details

-**Changed Kakao Pay mobile payment to use redirection mode** + **Changed Kakao Pay mobile payment to use redirection mode** -In compliance with the iframe non-support policy of Kakao Pay SDK, Kakao Pay mobile payment is processed now via page redirection instead of iframe.In the previous version, when the Kakao Pay mobile payment process is completed after calling `IMP.request_pay`, the specified callback is invoked as in PC web. In mobile, Kakao Pay is now processed via redirection mode.\ + In compliance with the iframe non-support policy of Kakao Pay SDK, Kakao Pay mobile payment is processed now via page redirection instead of iframe.In the previous version, when the Kakao Pay mobile payment process is completed after calling `IMP.request_pay`, the specified callback is invoked as in PC web. In mobile, Kakao Pay is now processed via redirection mode.\\ -**Added Naver Pay (Checkout) pop-up mode (redirection as default mode)** + **Added Naver Pay (Checkout) pop-up mode (redirection as default mode)** -To open the Naver Pay (Checkout) window as pop-up, set `popup: true` when calling `IMP.request_pay`. The callback mode is used by default.To avoid issues, such as browser pop-up blocking, Naver Pay recommends page redirection in both PC and mobile. + To open the Naver Pay (Checkout) window as pop-up, set `popup: true` when calling `IMP.request_pay`. The callback mode is used by default.To avoid issues, such as browser pop-up blocking, Naver Pay recommends page redirection in both PC and mobile. -- **1.1.8 and later versions** - - PC/mobile: redirection is default, set to `popup : true` to enable popup mode. -- **1.1.7 and earlier versions (`popup` not supported)** - - PC: pop-up (new tab) mode - - Mobile: redirection mode + - **1.1.8 and later versions** + - PC/mobile: redirection is default, set to `popup : true` to enable popup mode. -**Added redirection mode for Eximbay** + - **1.1.7 and earlier versions (`popup` not supported)** + - PC: pop-up (new tab) mode + - Mobile: redirection mode -To redirect to a page after payment process is completed, set `popup : false` when calling `IMP.request_pay`. To avoid pop-up blocking issues in mobile app WebView, use the redirection mode. + **Added redirection mode for Eximbay** -- **1.1.8 and later versions** - - PC/mobile: popup is default, set to `popup : false` to enable redirection mode. -- **1.1.7 and earlier versions (`popup` not supported)** - - PC/mobile: popup mode + To redirect to a page after payment process is completed, set `popup : false` when calling `IMP.request_pay`. To avoid pop-up blocking issues in mobile app WebView, use the redirection mode. -**Multiple PG support for identity verification** + - **1.1.8 and later versions** + - PC/mobile: popup is default, set to `popup : false` to enable redirection mode. -Added support for multiple PG modules in identity verification due to the addition of the `INICIS-Credit card identity verification` method to the existing `Danal-Mobile identity verification` method. You can also get multiple CPIDs, one for each website, for 'Danal-Mobile identity verification', and specify a module via `pg: danal.{Danal CPID}`. + - **1.1.7 and earlier versions (`popup` not supported)** + - PC/mobile: popup mode -```javascript title="Danal-mobile identity verification" - IMP.certification({ - pg: "danal", // danal or danal.{Danal CPID}, other parameters omitted - ... - ... - }, function(rsp) { - if ( rsp.success ) { - // Verification successful, return imp_uid, merchant_uid (rsp.imp_uid, rsp.merchant_uid) - } else { - // Verification failed, terminate - } - }); -``` + **Multiple PG support for identity verification** + + Added support for multiple PG modules in identity verification due to the addition of the `INICIS-Credit card identity verification` method to the existing `Danal-Mobile identity verification` method. You can also get multiple CPIDs, one for each website, for 'Danal-Mobile identity verification', and specify a module via `pg: danal.{Danal CPID}`. + + ```ts title="Danal-mobile identity verification" + IMP.certification( + { + pg: "danal", // danal or danal.{Danal CPID}, other parameters omitted + // ... + }, + function (rsp) { + if (rsp.success) { + // Verification successful, return imp_uid, merchant_uid (rsp.imp_uid, rsp.merchant_uid) + } else { + // Verification failed, terminate + } + }, + ); + ``` -```javascript title="Inicis-credit card identity verification" -// popup : true by default in both PC/mobile -// PC : applies popup mode regardless of popup parameter setting (INICIS policy) -// Mobile : for redirection mode, set popup : false and m_redirect_url is required -IMP.certification({ + ```ts title="Inicis-credit card identity verification" + // popup : true by default in both PC/mobile + // PC : applies popup mode regardless of popup parameter setting (INICIS policy) + // Mobile : for redirection mode, set popup : false and m_redirect_url is required + IMP.certification({ pg: "inicis", //inicis or inicis.{Inicis MID}, other parameters omitted m_redirect_url: "https://shop.yourservice.com/user-certificates/complete", - ... - ... -}); -``` - -#### Bug Fixes
+ // ... + }); + ``` -**The issue of white screen being displayed when the browser's Back button is pressed while processing payment in redirection mode in Safari on iPhone** + ### Bug Fixes -This is caused by the page being rendered by restoring the DOM element in the state before the page redirection when you return to the previous page with the Back button of the Safari browser (applicable to all PGs that use the redirection mode). The white screen issue is now resolved. + **The issue of white screen being displayed when the browser's Back button is pressed while processing payment in redirection mode in Safari on iPhone** + This is caused by the page being rendered by restoring the DOM element in the state before the page redirection when you return to the previous page with the Back button of the Safari browser (applicable to all PGs that use the redirection mode). The white screen issue is now resolved.
-### Version 1.1.7 +## Version 1.1.7
-

Details

+

Details

-**Added popup mode for PayPal** + **Added popup mode for PayPal** -To open the payment window as pop-up, set `popup: true` when calling `IMP.request_pay(param, callback)`. The `callback` function is called after the payment process is completed. Previous versions only support the page redirection mode. + To open the payment window as pop-up, set `popup: true` when calling `IMP.request_pay(param, callback)`. The `callback` function is called after the payment process is completed. Previous versions only support the page redirection mode. -```javascript title="javascript popup mode" + ```ts title="javascript popup mode" // Set popup : true and callback, other parameters omitted - IMP.request_pay({ - pg: "paypal", - popup: true, - ... - ... - }, function(rsp) { - if ( rsp.success ) { - //Paypal payment successful, execute validation logic - } else { - //Paypal payment terminated or failed - } - }); -``` - -```javascript title="javascript redirect mode" - // Set m_redirect_url (popup : false by default, not set explicitly) + IMP.request_pay( + { + pg: "paypal", + popup: true, + // ... + }, + function (rsp) { + if (rsp.success) { + //Paypal payment successful, execute validation logic + } else { + //Paypal payment terminated or failed + } + }, + ); + ``` + + ```ts title="javascript redirect mode" + // Set m_redirect_url (popup : false by default, not set explicitly) IMP.request_pay({ pg: "paypal", m_redirect_url: "https://shop.yourservice.com/payments/complete", - ... - ... + // ... }); -``` + ``` -**Added redirection mode for Danal identity verification** + **Added redirection mode for Danal identity verification** -To redirect to a page after identity verification, set the target page's URL in `m_redirect_url` when calling `IMP.certification`. Previous versions only support the callback mode. For more information about using the redirection mode, refer to the [Mobile identity verification](../../etc/phone/) page. + To redirect to a page after identity verification, set the target page's URL in `m_redirect_url` when calling `IMP.certification`. Previous versions only support the callback mode. For more information about using the redirection mode, refer to the [Mobile identity verification](../../etc/phone/) page. -```javascript title="javascript (popup mode)" + ```ts title="javascript (popup mode)" // Set popup : true - IMP.certification({ - merchant_uid : "verification transaction ID", - popup: true - }, function(rsp) { - if ( rsp.success ) { - // Verification successful - } else { - // Verification failed or terminated (popup closed or Cancel button clicked) - } - }); -``` - -```javascript title="javascript redirect mode" + IMP.certification( + { + merchant_uid: "verification transaction ID", + popup: true, + }, + function (rsp) { + if (rsp.success) { + // Verification successful + } else { + // Verification failed or terminated (popup closed or Cancel button clicked) + } + }, + ); + ``` + + ```ts title="javascript redirect mode" // Set m_redirect_url (popup : false by default, not set explicitly) IMP.certification({ - merchant_uid : "verification transaction ID" + merchant_uid: "verification transaction ID", m_redirect_url: "https://shop.yourservice.com/payments/complete", }); -``` + ``` -#### Bug Fixes
+ ### Bug Fixes -**The issue of callback not being invoked when you click the close button (X button) in the identity verification (Danal) pop-up** + **The issue of callback not being invoked when you click the close button (X button) in the identity verification (Danal) pop-up** -When you close the identity verification pop-up window or click the Cancel button on the page in the pop-up mode, the callback (handler) of `IMP.certification(param, handler)` is invoked. This fix implements the same behavior for when the X button is clicked. - - + When you close the identity verification pop-up window or click the Cancel button on the page in the pop-up mode, the callback (handler) of `IMP.certification(param, handler)` is invoked. This fix implements the same behavior for when the X button is clicked. +
-### Version 1.1.5 and earlier versions +## Version 1.1.5 and earlier versions
-

Details

- -#### iamport.payment-1.1.5.js
+

Details

-```html - -``` + ### iamport.payment-1.1.5.js -**Deployed on 2017-04-03** + ```html + + ``` -- Added function to redirect to `m_redirect_url` when error occurs before starting the payment process after calling `IMP.request_pay(param)` in mobile. + **Deployed on 2017-04-03** -**Reasons for failure before starting payment process** + - Added function to redirect to `m_redirect_url` when error occurs before starting the payment process after calling `IMP.request_pay(param)` in mobile. -- Reusing an already used `merchant_uid` (Order ID) for payment. -- Invalid payment request parameter. + **Reasons for failure before starting payment process** -**Reasons for failure after starting payment process** + - Reusing an already used `merchant_uid` (Order ID) for payment. + - Invalid payment request parameter. -- Credit card suspended or limit exceeded. -- Exceeded number of password errors. + **Reasons for failure after starting payment process** -#### iamport.payment-1.1.4.js + - Credit card suspended or limit exceeded. + - Exceeded number of password errors. -```html - -``` + ### iamport.payment-1.1.4.js -**Deployed on 2016-11-14** + ```html + + ``` -- Added Agency-tier feature: `IMP.agency(Merchant ID, Tier Code)` function -- Added SMS mobile identity verification feature: `IMP.certification()` function + **Deployed on 2016-11-14** -#### iamport.payment-1.1.3.js + - Added Agency-tier feature: `IMP.agency(Merchant ID, Tier Code)` function + - Added SMS mobile identity verification feature: `IMP.certification()` function -```html - -``` + ### iamport.payment-1.1.3.js -**Deployed on 2016-07-13** + ```html + + ``` -- Code refactored and performance enhanced version of 1.1.2 version. + **Deployed on 2016-07-13** -#### iamport.payment-1.1.2.js + - Code refactored and performance enhanced version of 1.1.2 version. -```html - -``` + ### iamport.payment-1.1.2.js -**Deployed on 2016-03-09** + ```html + + ``` -- Enhanced method of calling multiple PG settings. + **Deployed on 2016-03-09** -#### iamport.payment-1.1.1.js + - Enhanced method of calling multiple PG settings. -```html - -``` + ### iamport.payment-1.1.1.js -**Deployed on 2016-02-19** + ```html + + ``` -- Extended PG parameter value to allow for PG + MID combination (`pg : '{PG}.{MID}'`). + **Deployed on 2016-02-19** -#### iamport.payment-1.1.0.js + - Extended PG parameter value to allow for PG + MID combination (`pg : '{PG}.{MID}'`). -```html - -``` + ### iamport.payment-1.1.0.js -**Deployed on 2016-01-19** + ```html + + ``` -- Added `pg` parameter to allow an account to use multiple PG modules (`pg : '{PG}'`) + **Deployed on 2016-01-19** -#### iamport.payment-1.0.0.js + - Added `pg` parameter to allow an account to use multiple PG modules (`pg : '{PG}'`) -```html - -``` + ### iamport.payment-1.0.0.js -**Deployed on 2014-10-24** + ```html + + ``` -- Initial stable release (Unversioned release, same as iamport.payment-1.0.0.js) + **Deployed on 2014-10-24** -#### iamport.payment.js + - Initial stable release (Unversioned release, same as iamport.payment-1.0.0.js) -```html - -``` + ### iamport.payment.js + ```html + + ```
diff --git a/src/content/docs/en/sdk/javascript-sdk/undefined-1.mdx b/src/content/docs/en/sdk/javascript-sdk/undefined-1.mdx index 9c50589f5..54ee89ccc 100644 --- a/src/content/docs/en/sdk/javascript-sdk/undefined-1.mdx +++ b/src/content/docs/en/sdk/javascript-sdk/undefined-1.mdx @@ -9,8 +9,7 @@ import Hint from "~/components/Hint.astro"; ## Callback response data for payment request -Properties that are returned vary by PG or payment method. - + Properties that are returned vary by PG or payment method. > **`success`** **\*** **boolean** @@ -19,9 +18,7 @@ Properties that are returned vary by PG or payment method. > > True when payment is approved or virtual account is issued > -> -> (returned as`imp_success` for some PG/payment method) -> +> (returned as`imp_success` for some PG/payment method) > **`error_code`** **\*** **string** > @@ -50,29 +47,28 @@ Properties that are returned vary by PG or payment method. > **Payment method code**
-

Payment method codes

- -- `card` (credit card) -- `trans`(instant account transfer) -- `vbank`(virtual account) -- `phone`(mobile micropayment) -- `samsung`(Samsung Pay) -- `kpay` (KPay app) -- `kakaopay`(Kakao Pay) -- `payco` ( PAYCO) -- `lpay` (LPAY) -- `ssgpay`(SSG Pay) -- `tosspay`(Toss simple pay) -- `cultureland`(Cultureland) -- `smartculture`(Smart Culture) -- `happymoney`(Happy Money) -- `booknlife`(Book culture gift certificate) -- `point`(points, e.g., Benepia) -- `wechat`(WeChat Pay) -- `alipay`(Alipay) -- `unionpay`(UnionPay) -- `tenpay`(TenPay) - +

Payment method codes

+ + - `card` (credit card) + - `trans`(instant account transfer) + - `vbank`(virtual account) + - `phone`(mobile micropayment) + - `samsung`(Samsung Pay) + - `kpay` (KPay app) + - `kakaopay`(Kakao Pay) + - `payco` ( PAYCO) + - `lpay` (LPAY) + - `ssgpay`(SSG Pay) + - `tosspay`(Toss simple pay) + - `cultureland`(Cultureland) + - `smartculture`(Smart Culture) + - `happymoney`(Happy Money) + - `booknlife`(Book culture gift certificate) + - `point`(points, e.g., Benepia) + - `wechat`(WeChat Pay) + - `alipay`(Alipay) + - `unionpay`(UnionPay) + - `tenpay`(TenPay)
> **`paid_amount`** **\*** **number** @@ -84,8 +80,11 @@ Properties that are returned vary by PG or payment method. > **Status** > > - `ready` (payment in progress: payment window lost focus, virtual account issued) +> > - `paid` (payment complete) -> - `failed` (payment failed: credit card limit exceeded, insufficient check card balance, payment window closed or cancel button clicked) +> +> - `failed` (payment failed: credit card limit exceeded, insufficient check card balance, +> payment window closed or cancel button clicked) > **`name`** **\*** **string** > @@ -106,16 +105,15 @@ Properties that are returned vary by PG or payment method. > - [x] This is omitted for some PGs or when simple payment is not selected.
-

Simple pay codes

- -- naverpay -- kakopay -- payco -- samsungpay -- ssgpay -- lpay -- kpay - +

Simple pay codes

+ + - naverpay + - kakopay + - payco + - samsungpay + - ssgpay + - lpay + - kpay
> **`pg_tid`** **\*** **string** @@ -150,13 +148,12 @@ Properties that are returned vary by PG or payment method. > **`paid_at`** **\*** **string** > -> **Payment approved at** **(UNIX timestamp)** +> **Payment approved at (UNIX timestamp)** -**What is UNIX timestamp?** - -**Unix time** is a way of representing time. It is also called POSIX time or **Epoch time**. The time elapsed from 00:00:00 Coordinated Universal Time (UTC) on January 1, 1970 is converted into seconds and expressed as an integer. In Unix time, leap seconds are ignored. It is used by Unix-like operating systems and several other operating systems and file formats. Because of the leap second processing method, time cannot be expressed linearly, and leap seconds cannot be expressed in Coordinated Universal Time. + **What is UNIX timestamp?** + **Unix time** is a way of representing time. It is also called POSIX time or **Epoch time**. The time elapsed from 00:00:00 Coordinated Universal Time (UTC) on January 1, 1970 is converted into seconds and expressed as an integer. In Unix time, leap seconds are ignored. It is used by Unix-like operating systems and several other operating systems and file formats. Because of the leap second processing method, time cannot be expressed linearly, and leap seconds cannot be expressed in Coordinated Universal Time. > **`receipt_url`** **string** @@ -176,8 +173,7 @@ Properties that are returned vary by PG or payment method. > **Virtual account number** -As received from PG, may contain special characters (-). - + As received from PG, may contain special characters (-). > **`vbank_name`** **string** @@ -189,13 +185,12 @@ As received from PG, may contain special characters (-). > **Virtual account holder** -Shows business name on the contract. Some PGs may return null and requires additional processing. - + Shows business name on the contract. Some PGs may return null and requires additional processing. > **`vbank_date`** **string** > -> **Virtual account expiration** **(UNIX timestamp)** +> **Virtual account expiration (UNIX timestamp)** ```json title="Sample response object" { diff --git a/src/content/docs/en/tips/agency-and-tier.mdx b/src/content/docs/en/tips/agency-and-tier.mdx index c278e9aba..838c73ef1 100644 --- a/src/content/docs/en/tips/agency-and-tier.mdx +++ b/src/content/docs/en/tips/agency-and-tier.mdx @@ -6,7 +6,7 @@ description: Learn how to set up a main merchant and its sub-merchants. import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -### You can use the i'mport Agent service to set up PGs for sub-merchants (manage sub-merchants) with a single account. +## You can use the i'mport Agent service to set up PGs for sub-merchants (manage sub-merchants) with a single account. **If you apply for and register multiple sub-merchant codes (Tier codes) with the master account, you can register merchant information and view (cancel) payment details for each sub-merchant.** @@ -14,13 +14,12 @@ you can register merchant information and view (cancel) payment details for each (You can assign a 3-digit ID and a name for each sub-merchant) -To get access to this service, send your ChaiPort email account to the following: - -[**cs@iamport.kr**](mailto:cs@iamport.kr) + To get access to this service, send your ChaiPort email account to the following: + [**cs@iamport.kr**](mailto:cs@iamport.kr) -### Using Agent service +## Using Agent service Through i'mport Agent service, you can manage merchants more conveniently and efficiently. @@ -49,23 +48,21 @@ You can try out the sub-merchant settings and look up payment history with the d
-**Calling sub-merchant's payment window** - -When requesting payment for each sub-merchant, you can specify the target **Tier** with the **JavaScript SDK.** + **Calling sub-merchant's payment window** -**IMP.agency(Merchant ID, 3-digit Tier (unique) code)** + When requesting payment for each sub-merchant, you can specify the target **Tier** with the **JavaScript SDK.** -`Example: IMP.agency('imp12345678', '001')` + **IMP.agency(Merchant ID, 3-digit Tier (unique) code)** + `Example: IMP.agency('imp12345678', '001')` -**Calling REST API** - -When calling the REST API, you must include the Tier information in the header to request payment for the corresponding sub-merchant. + **Calling REST API** -Include the following parameter in the HTTP header. + When calling the REST API, you must include the Tier information in the header to request payment for the corresponding sub-merchant. -`"Tier" : "3-digit Tier code"` + Include the following parameter in the HTTP header. + `"Tier" : "3-digit Tier code"` diff --git a/src/content/docs/en/tips/bank-codes-by-pg.mdx b/src/content/docs/en/tips/bank-codes-by-pg.mdx index a777fc1bf..fcb95a853 100644 --- a/src/content/docs/en/tips/bank-codes-by-pg.mdx +++ b/src/content/docs/en/tips/bank-codes-by-pg.mdx @@ -6,118 +6,113 @@ description: '' import Details from "~/components/gitbook/Details.astro";
-

NHN KCP bank codes

- -- KB Kookmin Bank: BK04 -- SC First Bank: BK23 -- Kyongnam Bank: BK39 -- Gwangju Bank: BK34 -- Industrial Bank of Korea: BK03 -- Nonghyup: BK11 -- Daegu Bank: BK31 -- Busan Bank: BK32 -- Korea Development Bank: BK02 -- Saemaul Geumgo: BK45 -- Suhyup: BK07 -- Shinhan Bank: BK88 -- Credit union: BK48 -- Korea Exchange Bank: BK81 -- Woori Bank: BK20 -- Post Office: BK71 -- Jeonbuk Bank: BK37 -- Cooperative: BK12 -- Kakao Bank: BK90 -- K-Bank: BK89 -- Hana Bank: BK81 -- Citibank Korea: BK27 -- Toss Bank: BK92 +

NHN KCP bank codes

+ - KB Kookmin Bank: BK04 + - SC First Bank: BK23 + - Kyongnam Bank: BK39 + - Gwangju Bank: BK34 + - Industrial Bank of Korea: BK03 + - Nonghyup: BK11 + - Daegu Bank: BK31 + - Busan Bank: BK32 + - Korea Development Bank: BK02 + - Saemaul Geumgo: BK45 + - Suhyup: BK07 + - Shinhan Bank: BK88 + - Credit union: BK48 + - Korea Exchange Bank: BK81 + - Woori Bank: BK20 + - Post Office: BK71 + - Jeonbuk Bank: BK37 + - Cooperative: BK12 + - Kakao Bank: BK90 + - K-Bank: BK89 + - Hana Bank: BK81 + - Citibank Korea: BK27 + - Toss Bank: BK92
-

KG Inicis bank codes

- -- KB Kookmin Bank: 04 -- SC First Bank: 23 -- Kyongnam Bank: 39 -- Gwangju Bank: 34 -- Industrial Bank of Korea: 03 -- Nonghyup: 11 -- Daegu Bank: 31 -- Busan Bank: 32 -- Korea Development Bank: 02 -- Saemaul Geumgo: 45 -- Suhyup: 07 -- Shinhan Bank: 88 -- Credit union: 48 -- Korea Exchange Bank: 81 -- Woori Bank: 20 -- Post Office: 71 -- Jeonbuk Bank: 37 -- Cooperative: 12 -- Kakao Bank: 90 -- K-Bank: 89 -- Hana Bank: 81 -- Citibank Korea: 27 -- Toss Bank: 92 +

KG Inicis bank codes

+ - KB Kookmin Bank: 04 + - SC First Bank: 23 + - Kyongnam Bank: 39 + - Gwangju Bank: 34 + - Industrial Bank of Korea: 03 + - Nonghyup: 11 + - Daegu Bank: 31 + - Busan Bank: 32 + - Korea Development Bank: 02 + - Saemaul Geumgo: 45 + - Suhyup: 07 + - Shinhan Bank: 88 + - Credit union: 48 + - Korea Exchange Bank: 81 + - Woori Bank: 20 + - Post Office: 71 + - Jeonbuk Bank: 37 + - Cooperative: 12 + - Kakao Bank: 90 + - K-Bank: 89 + - Hana Bank: 81 + - Citibank Korea: 27 + - Toss Bank: 92
-

PAYJOA (Daou Data)

- -- KB Kookmin Bank: 04 -- SC Bank Korea: 11 -- Kyongnam Bank: - -- Gwangju Bank: - -- Industrial Bank of Korea: 03 -- Nonghyup: 08 -- Daegu Bank: - -- Busan Bank: 15 -- Korea Development Bank: - -- Saemaul Geumgo: - -- Suhyup: - -- Shinhan Bank: 10 -- Credit union: - -- Korea Exchange Bank: 05 -- Woori Bank: 09 -- Post Office: 31 -- Jeonbuk Bank: - -- Cooperative: - -- Kakao Bank: - -- K-Bank: - -- Hana Bank: 12 -- Citibank Korea: - -- Toss Bank: - +

PAYJOA (Daou Data)

+ - KB Kookmin Bank: 04 + - SC Bank Korea: 11 + - Kyongnam Bank: - + - Gwangju Bank: - + - Industrial Bank of Korea: 03 + - Nonghyup: 08 + - Daegu Bank: - + - Busan Bank: 15 + - Korea Development Bank: - + - Saemaul Geumgo: - + - Suhyup: - + - Shinhan Bank: 10 + - Credit union: - + - Korea Exchange Bank: 05 + - Woori Bank: 09 + - Post Office: 31 + - Jeonbuk Bank: - + - Cooperative: - + - Kakao Bank: - + - K-Bank: - + - Hana Bank: 12 + - Citibank Korea: - + - Toss Bank: -
-

Toss Payments/Danal/Nice Payments/JTNet/KICC/SMARTRO/Settlebank

- -- KB Kookmin Bank: 004 -- SC First Bank: 023 -- Kyongnam Bank: 039 -- Gwangju Bank: 034 -- Industrial Bank of Korea: 003 -- Nonghyup: 011 -- Daegu Bank: 031 -- Busan Bank: 032 -- Korea Development Bank: 002 -- Saemaul Geumgo: 045 -- Suhyup: 007 -- Shinhan Bank: 088 -- Credit union: 048 -- Korea Exchange Bank: 081 -- Woori Bank: 020 -- Post Office: 071 -- Jeonbuk Bank: 037 -- Cooperative: 012 -- Kakao Bank: 090 -- K-Bank: 089 -- Hana Bank: 081 -- Citibank Korea: 027 -- Toss Bank: 092 +

Toss Payments/Danal/Nice Payments/JTNet/KICC/SMARTRO/Settlebank

+ - KB Kookmin Bank: 004 + - SC First Bank: 023 + - Kyongnam Bank: 039 + - Gwangju Bank: 034 + - Industrial Bank of Korea: 003 + - Nonghyup: 011 + - Daegu Bank: 031 + - Busan Bank: 032 + - Korea Development Bank: 002 + - Saemaul Geumgo: 045 + - Suhyup: 007 + - Shinhan Bank: 088 + - Credit union: 048 + - Korea Exchange Bank: 081 + - Woori Bank: 020 + - Post Office: 071 + - Jeonbuk Bank: 037 + - Cooperative: 012 + - Kakao Bank: 090 + - K-Bank: 089 + - Hana Bank: 081 + - Citibank Korea: 027 + - Toss Bank: 092
- diff --git a/src/content/docs/en/tips/billing-key-issuance-by-pg.mdx b/src/content/docs/en/tips/billing-key-issuance-by-pg.mdx index 7eabd03ce..9cda9015f 100644 --- a/src/content/docs/en/tips/billing-key-issuance-by-pg.mdx +++ b/src/content/docs/en/tips/billing-key-issuance-by-pg.mdx @@ -3,19 +3,19 @@ title: Billing key issuance by PG description: '' --- -|PG |Payment window support|API support|Supports issuance + payment in a single request (payment window only)| +| PG |Payment window support|API support|Supports issuance + payment in a single request (payment window only)| |:-----------:|:--------------------:|:---------:|:-------------------------------------------------------------------:| -|KCP |O |O |X | -|KG Inicis |O |O |X | -|Danal |O |O |O | -|Danal Mobile |O |O |O | -|Kakao Pay |O |X |O | -|Naver Pay |O |X |X | -|NICE Payments|X |O |X | -|JTNET |O |O |O | -|Settlebank |X |O |X | -|CHAI |O |X |X | -|KICC |O |X |X | -|Daou Data |X |O |X | -|KG Mobilians |O |X |O | -|Payco |O |X |X | +| KCP | O | O | X | +| KG Inicis | O | O | X | +| Danal | O | O | O | +| Danal Mobile| O | O | O | +| Kakao Pay | O | X | O | +| Naver Pay | O | X | X | +|NICE Payments| X | O | X | +| JTNET | O | O | O | +| Settlebank | X | O | X | +| CHAI | O | X | X | +| KICC | O | X | X | +| Daou Data | X | O | X | +| KG Mobilians| O | X | O | +| Payco | O | X | X | diff --git a/src/content/docs/en/tips/chk.mdx b/src/content/docs/en/tips/chk.mdx index 741c43d9e..eb05f833a 100644 --- a/src/content/docs/en/tips/chk.mdx +++ b/src/content/docs/en/tips/chk.mdx @@ -77,11 +77,9 @@ production failures. ## 📱Mobile phone -- [ ] Pass all phone carrier reviews and complete approval and full/partial cancellation tests. +- [ ] Pass all phone carrier reviews and complete approval and full/partial cancellation tests. + (Partial cancellation is not supported except for Inicis and KCP (separate agreement required)) - ``` - (Partial cancellation is not supported except for Inicis and KCP (separate agreement required)) - ``` - [ ] Approved transactions can only be cancelled during the month when the transaction occurred. ## 🙋 Identity verification diff --git a/src/content/docs/en/tips/code.mdx b/src/content/docs/en/tips/code.mdx index e951a5aae..0528b9be7 100644 --- a/src/content/docs/en/tips/code.mdx +++ b/src/content/docs/en/tips/code.mdx @@ -3,7 +3,7 @@ title: Courier codes description: Courier codes required for escrow delivery registration. --- -### The following codes apply to all PGs. +## The following codes apply to all PGs. |Courier code|Courier name | |------------|---------------------------------------------------------| @@ -25,4 +25,3 @@ description: Courier codes required for escrow delivery registration. |HONAM |Woori Logis (Honam Logis) | |HDEXP |Hapdong Express | |ETC |Other (Code specified other than the above is set to ETC)| - diff --git a/src/content/docs/en/tips/confirm-process.mdx b/src/content/docs/en/tips/confirm-process.mdx index ad866b825..2ac3ce494 100644 --- a/src/content/docs/en/tips/confirm-process.mdx +++ b/src/content/docs/en/tips/confirm-process.mdx @@ -8,19 +8,18 @@ description: >- import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -### This service allows the merchant to confirm its intention to process a payment request before making the request. +## This service allows the merchant to confirm its intention to process a payment request before making the request. -![]() +![]()
-**A merchant must use this service:** - -- When there is a small quantity of the product in stock -- When payment is processed first-come-first-served -- When there is business logic that the merchant wants to execute just before making the payment request + **A merchant must use this service:** + - When there is a small quantity of the product in stock + - When payment is processed first-come-first-served + - When there is business logic that the merchant wants to execute just before making the payment request
@@ -33,7 +32,7 @@ on the inventory. If the confirm process is not configured, the purchased order scheduled due to lack of inventory or may be cancelled leading to poor customer satisfaction and experience. -![]() +![]() ### When payment is processed first-come-first-served @@ -42,20 +41,19 @@ marathon, ticketing for popular concerts, and special discount events such as OO a rush of concurrent payment requests at the scheduled time. In such a case, the merchant needs to perform a final inventory check on the server just before making the payment request. -![]() +![](/gitbook-assets/en/fcfs.png) ### When there is business logic that the merchant wants to execute just before making the payment request The service can also be used when the merchant needs to process some business logic just before payment for reasons, such as checking the health of the merchant server. -![]() +![](/gitbook-assets/en/server_health_check.png) -**How to request for Confirm Process** - -Send a technical support request email ([support@iamport.kr](mailto:support@iamport.kr)) with your **Merchant ID**. + **How to request for Confirm Process** + Send a technical support request email ([support@iamport.kr](mailto:support@iamport.kr)) with your **Merchant ID**.
@@ -65,10 +63,10 @@ Send a technical support request email ([support@iamport.kr](mailto:support@iamp To use Confirm Process, you must define the **confirm\_url** parameter and set it to the merchant endpoint URL when calling the request\_pay() function. -```jsx title="JavaScript SDK" -... -confirm_url : ‘Merchant EndPoint URL’, -... +```json title="JavaScript SDK" +{ + "confirm_url": "Merchant EndPoint URL", +} ``` If the confirm URL is set, the final confirm page before payment request is loaded via **HTTP** with diff --git a/src/content/docs/en/tips/flow.mdx b/src/content/docs/en/tips/flow.mdx index 1a029e8fe..937ddfcc6 100644 --- a/src/content/docs/en/tips/flow.mdx +++ b/src/content/docs/en/tips/flow.mdx @@ -9,23 +9,20 @@ import Figure from "~/components/Figure.astro"; ## 1. Direct PG integration payment flow -
+
> For direct PG integration, payment request processing generally involves **2 transactions**. > > 1. **Get authentication key** for payment request. > 2. **Request payment**. -> -> This requires covering several backend development points, and facing a **triple challenge** of complex integration modules and sample pages and comprehending complex and inconvenient integration manuals. + +> This requires covering several backend development points, +> and facing a **triple challenge** of complex integration modules +> and sample pages and comprehending complex and inconvenient integration manuals. ## 2. i'mport payment flow -
+
-> For i'mport payment integration, the complex PG integration module part is handled by i'mport so that you can easily process payment without additional effort. +> For i'mport payment integration, the complex PG integration module part is handled by i'mport +> so that you can easily process payment without additional effort. diff --git a/src/content/docs/en/tips/pg-codes.mdx b/src/content/docs/en/tips/pg-codes.mdx index ca107f243..f211f06f0 100644 --- a/src/content/docs/en/tips/pg-codes.mdx +++ b/src/content/docs/en/tips/pg-codes.mdx @@ -31,4 +31,3 @@ description: JavaScript SDK PG codes | Toss Simple Pay | `tosspay` | | Smartro | `smartro` | | Settlebank | `settle` | - diff --git a/src/content/docs/en/tips/redirect.mdx b/src/content/docs/en/tips/redirect.mdx index d5470f6a5..6fb5b9f36 100644 --- a/src/content/docs/en/tips/redirect.mdx +++ b/src/content/docs/en/tips/redirect.mdx @@ -3,22 +3,22 @@ title: What is redirection? description: Learn about page redirection. --- -### Redirecting the current page to a new page. +## Redirecting the current page to a new page. ![]() -### Why do you need redirection? +## Why do you need redirection? - To redirect to the new URL when a page's URL changes - To redirect an invalid subdomain to another domain - To redirect to another page for log-in or authentication purposes -### There are two types of redirections as follows: +## There are two types of redirections as follows: - **Redirection 301** - \- Redirect immediately without processing any server-side or client-side code + \- Redirect immediately without processing any server-side or client-side code - **Redirection 302** - \- Redirect temporarily using a script or html tag + \- Redirect temporarily using a script or html tag diff --git a/src/content/docs/en/tips/tax.mdx b/src/content/docs/en/tips/tax.mdx index 4ade80d7b..6f2e11c3d 100644 --- a/src/content/docs/en/tips/tax.mdx +++ b/src/content/docs/en/tips/tax.mdx @@ -5,13 +5,13 @@ description: Learn how to set the tax-free amount when requesting a payment. import Hint from "~/components/Hint.astro"; -This guide is intended for businesses who sell tax-free products and services as stipulated in [**Article 26 of the VAT Act (Supply of Tax-Free Goods or Services)**](https://txsi.hometax.go.kr/docs/customer/comment/comment_jomun_main_internet.jsp?node_id=null&lawid=001571&jomunkey=0026005&lawnm=%EB%B6%80%EA%B0%80%EA%B0%80%EC%B9%98%EC%84%B8%EB%B2%95&jomun_nm=%EC%A0%9C26%EC%A1%B0%E3%80%90%EC%9E%AC%ED%99%94%20%EB%98%90%EB%8A%94%20%EC%9A%A9%EC%97%AD%EC%9D%98%20%EA%B3%B5%EA%B8%89%EC%97%90%20%EB%8C%80%ED%95%9C%20%EB%A9%B4%EC%84%B8%E3%80%91&public_ilja=20161220&public_no=14387). +This guide is intended for businesses who sell tax-free products and services as stipulated in [**Article 26 of the VAT Act (Supply of Tax-Free Goods or Services)**](https://txsi.hometax.go.kr/docs/customer/comment/comment_jomun_main_internet.jsp?node_id=null\&lawid=001571\&jomunkey=0026005\&lawnm=%EB%B6%80%EA%B0%80%EA%B0%80%EC%B9%98%EC%84%B8%EB%B2%95\&jomun_nm=%EC%A0%9C26%EC%A1%B0%E3%80%90%EC%9E%AC%ED%99%94%20%EB%98%90%EB%8A%94%20%EC%9A%A9%EC%97%AD%EC%9D%98%20%EA%B3%B5%EA%B8%89%EC%97%90%20%EB%8C%80%ED%95%9C%20%EB%A9%B4%EC%84%B8%E3%80%91\&public_ilja=20161220\&public_no=14387). If you are a general business that does not sell the goods or services specified in this article, you may skip this guide. A 10% VAT is automatically applied through the PG or credit card company for such businesses. -### Getting Tax-free Merchant ID through PG Contract +## Getting Tax-free Merchant ID through PG Contract If you are a **tax-free business**, you can submit a business registration card to prove your tax-exempt status when signing a PG contract. You will receive a merchant ID that allows you to set the following tax-free related properties when requesting a payment using `IMP.`**`request_pay`**. @@ -23,13 +23,12 @@ and tax-free amounts. They set the `tax_free` property to indicate the tax-free order. -**Merchant ID** - -The name of the merchant ID issued after applying for and signing a PG contract varies by PG. For example, the merchant ID for KG INICIS is `Merchant ID (MID)`, Kakao Pay is `Member Code (CID)`, and Naver Pay is `Partner ID`. + **Merchant ID** + The name of the merchant ID issued after applying for and signing a PG contract varies by PG. For example, the merchant ID for KG INICIS is `Merchant ID (MID)`, Kakao Pay is `Member Code (CID)`, and Naver Pay is `Partner ID`. -#### Three types of merchant IDs can be issued according to your business's tax-exempt status. +### Three types of merchant IDs can be issued according to your business's tax-exempt status. > **Tax-free merchant ID** > @@ -54,15 +53,14 @@ The name of the merchant ID issued after applying for and signing a PG contract > property. -**`tax_free` is required** - -For transactions using combination merchant ID, you must set **both the `amount` and `tax_free` properties**. If the `tax_free` value is missing, an error may occur when you attempt to open the payment page for some PGs. + **`tax_free` is required** -Note that KG Inicis **processes all payments as tax-free**; if you change to a combination merchant ID while using a taxable merchant ID, all previous taxed payments are converted to tax-free payments. + For transactions using combination merchant ID, you must set **both the `amount` and `tax_free` properties**. If the `tax_free` value is missing, an error may occur when you attempt to open the payment page for some PGs. + Note that KG Inicis **processes all payments as tax-free**; if you change to a combination merchant ID while using a taxable merchant ID, all previous taxed payments are converted to tax-free payments. -### Applying tax_free setting +## Applying tax\_free setting The scenarios in this section show how to set the `amount` and `tax_free` properties when purchasing tax-free and/or taxable items. @@ -73,20 +71,22 @@ as follows: - Plant seedlings: **tax-free**, 11,000 won each - Vase: **subject to VAT**, 22,000 won each -### CASE 01. Purchasing only tax-free items +## CASE 01. Purchasing only tax-free items For a purchase of one seedling, set the total payment amount to 11,000 won, and the total tax-free amount to 11,000 won as follows: -```javascript title="JavaScript" - IMP.request_pay({ - amount: 11000, // total payment amount - tax_free: 11000, // total tax-free amount - ... - }, function (rsp) { - ... - }); - +```ts title="JavaScript" +IMP.request_pay( + { + amount: 11000, // total payment amount + tax_free: 11000, // total tax-free amount + // ... + }, + function (rsp) { + // ... + }, +); ``` In this case, the total amount of 11,000 won is tax-free, and the final payment is calculated as @@ -95,20 +95,22 @@ follows (terminology may vary by PG): - Total tax-free amount: 11,000 won - VAT: 0 won -### CASE 02. Purchasing only taxable items +## CASE 02. Purchasing only taxable items For a purchase of one vase, set the total payment amount to 22,000 won, and the total tax-free amount to 0 won as follows: -```javascript title="JavaScript" - IMP.request_pay({ - amount: 22000, // total payment amount - tax_free: 0, // total tax-free amount - ... - }, function (rsp) { - ... - }); - +```ts title="JavaScript" +IMP.request_pay( + { + amount: 22000, // total payment amount + tax_free: 0, // total tax-free amount + // ... + }, + function (rsp) { + // ... + }, +); ``` In this case, a 10% VAT is applied to the total amount of 22,000 won, and the final payment is @@ -117,19 +119,22 @@ calculated as follows: - Total item price: 20,000 won - VAT: 2,000 won -### CASE 03. Purchasing both tax-free and taxable items +## CASE 03. Purchasing both tax-free and taxable items For a purchase of 3 seedlings and 1 vase, set the total payment amount to 55,000 (33,000 + 22,000) won, and the total tax-free amount to 33,000 won (for seedlings) as follows: -```javascript title="JavaScript" - IMP.request_pay({ - amount: 55000, // total payment amount - tax_free: 33000, // total tax-free amount - ... - }, function (rsp) { - ... - }); +```ts title="JavaScript" +IMP.request_pay( + { + amount: 55000, // total payment amount + tax_free: 33000, // total tax-free amount + // ... + }, + function (rsp) { + // ... + }, +); ``` In this case, a 10% VAT is applied to the total taxable amount of 22,000 won, and the final payment diff --git a/src/content/docs/ko/api-v2/applications.mdx b/src/content/docs/ko/api-v2/applications.mdx index 7a420562c..b3a588ff1 100644 --- a/src/content/docs/ko/api-v2/applications.mdx +++ b/src/content/docs/ko/api-v2/applications.mdx @@ -8,1022 +8,952 @@ import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ 하위상점의 전자결제 신청 정보를 가져오기 (호스팅사 > 포트원) - -하위상점 등록 API를 통해서 호스팅사의 사업자 정보를 포트원에 전달하면 전자결제 신청을 위해 하위상점의 전자결제 신청 정보, 계약 진행 상태 정보를 가져옵니다. - - - -### Parameters - -#### Header - - -jwt 토큰 헤더 - - - -#### Path - - -store의 id - - - -### Responses - - - - -**`applications`** **\*** **Array\[ApplicationPublic]** - -전자결제 신청내역 - -
-

ApplicationPublic

- -**`id`** **\*** **string** - -전자결제 신청 id - ---- - -**`store_id`** **string** - -전자결제 신청한 store id - ---- - -**`pg_company`** **\*** **PgCompany** - -PG사 - -`"UNIDENTIFIED"`, `"NICE"`, `"KCP"`, `"KICC"`, `"DANAL"`, `"SETTLE"`, `"JTNET"`, `"INICIS"`, `"SMARTRO"`, `"BLUEWALNUT"`, `"TOSSPAYMENTS"`, `"DAOU"`, `"KSNET"`, `"MOBILIANS"`, `"ALIPAY"`, `"EXIMBAY"`, `"PAYPAL"`, `"PAYMENTWALL"`, `"NAVERPAY"`, `"NAVERCO"`, `"KAKAOPAY"`, `"TOSSPAY"`, `"CHAI"`, `"PAYCO"`, `"SMILEPAY"` + + 하위상점 등록 API를 통해서 호스팅사의 사업자 정보를 포트원에 전달하면 전자결제 신청을 위해 하위상점의 전자결제 신청 정보, 계약 진행 상태 정보를 가져옵니다. + ---- + ### Parameters -**`methods`** **\*** **Array\[MethodAndType]** + #### Header -해당 PG사로 신청한 결제수단 및 방식 + + jwt 토큰 헤더 + -`"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"CARD_KEYIN"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"PHONE_SUBSCRIBE"`, `"GIFT_CARD_GENERAL"`, `"ABROAD_GENERAL"`, `"MY_ACCOUNT_GENERAL"`, `"NAVERPAY_GENERAL"`, `"NAVERCO_GENERAL"`, `"KAKAOPAY_GENERAL"`, `"TOSSPAY_GENERAL"`, `"PAYCO_GENERAL"`, `"SMILEPAY_GENERAL"`, `"CERTIFICATION_PHONE"`, `"CERTIFICATION_UNIFIED"` + #### Path ---- + + store의 id + -**`status`** **\*** **ApplicationStatusClass** + ### Responses -신청 상태 대분류 + + + + **`applications`** **\*** **Array\[ApplicationPublic]** -`"RECEPTION_SCHEDULED"`, `"TRANSFER"`, `"RECEPTION_PENDING"`, `"RECEPTION_COMPLETED"`, `"APPLICATION_CANCELED"`, `"MERCHANT_REVIEWING"`, `"CONTRACT_PROCESSING"`, `"CONTRACT_COMPLETED"`, `"CONTRACT_CANCELED"`, `"CONTRACT_PENDING"`, `"CONTRACT_REJECTED"`, `"SERVICE_CLOSED"`, `"SERVICE_OPEN"` + 전자결제 신청내역 ---- +
+

ApplicationPublic

-**`pg_specific_info`** **\*** **PgSpecificInfo** + **`id`** **\*** **string** -PG사별 특수값 + 전자결제 신청 id ---- + --- -**`failed_reason`** **string** + **`store_id`** **string** -실패 사유 + 전자결제 신청한 store id ---- + --- -**`pg_credential`** **object** + **`pg_company`** **\*** **PgCompany** -결제 연동에 필요한 Credential + PG사 ---- + `"UNIDENTIFIED"`, `"NICE"`, `"KCP"`, `"KICC"`, `"DANAL"`, `"SETTLE"`, `"JTNET"`, `"INICIS"`, `"SMARTRO"`, `"BLUEWALNUT"`, `"TOSSPAYMENTS"`, `"DAOU"`, `"KSNET"`, `"MOBILIANS"`, `"ALIPAY"`, `"EXIMBAY"`, `"PAYPAL"`, `"PAYMENTWALL"`, `"NAVERPAY"`, `"NAVERCO"`, `"KAKAOPAY"`, `"TOSSPAY"`, `"CHAI"`, `"PAYCO"`, `"SMILEPAY"` -**`created`** **\*** **string** + --- -생성 시각 + **`methods`** **\*** **Array\[MethodAndType]** ---- + 해당 PG사로 신청한 결제수단 및 방식 -**`modified`** **\*** **string** + `"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"CARD_KEYIN"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"PHONE_SUBSCRIBE"`, `"GIFT_CARD_GENERAL"`, `"ABROAD_GENERAL"`, `"MY_ACCOUNT_GENERAL"`, `"NAVERPAY_GENERAL"`, `"NAVERCO_GENERAL"`, `"KAKAOPAY_GENERAL"`, `"TOSSPAY_GENERAL"`, `"PAYCO_GENERAL"`, `"SMILEPAY_GENERAL"`, `"CERTIFICATION_PHONE"`, `"CERTIFICATION_UNIFIED"` -수정 시각 + --- ---- + **`status`** **\*** **ApplicationStatusClass** -
+ 신청 상태 대분류 ---- + `"RECEPTION_SCHEDULED"`, `"TRANSFER"`, `"RECEPTION_PENDING"`, `"RECEPTION_COMPLETED"`, `"APPLICATION_CANCELED"`, `"MERCHANT_REVIEWING"`, `"CONTRACT_PROCESSING"`, `"CONTRACT_COMPLETED"`, `"CONTRACT_CANCELED"`, `"CONTRACT_PENDING"`, `"CONTRACT_REJECTED"`, `"SERVICE_CLOSED"`, `"SERVICE_OPEN"` -
+ --- - -**`mid`** **\*** **string** + **`pg_specific_info`** **\*** **PgSpecificInfo** -mid + PG사별 특수값 ---- + --- -**`api_key`** **\*** **string** + **`failed_reason`** **string** -api key + 실패 사유 ---- + --- -**`client_key`** **\*** **string** + **`pg_credential`** **object** -client key + 결제 연동에 필요한 Credential ---- + --- -**`mert_key`** **\*** **string** + **`created`** **\*** **string** -mert key + 생성 시각 ---- + --- - + **`modified`** **\*** **string** - -**`delivery_or_service_period`** **string** + 수정 시각 -배송 및 서비스 기간 + --- +
---- + --- +
-**`development_method`** **string** + + **`mid`** **\*** **string** -개발 방식 + mid -`"SELF_DEVELOPMENT"`, `"WORDPRESS"` + --- ---- + **`api_key`** **\*** **string** -**`supporting_countries`** **Array\[string]** + api key -결제 제공 국가 (ISO 3166-1 alpha-2) + --- ---- + **`client_key`** **\*** **string** -**`payco_id`** **string** + client key -페이코 ID + --- ---- + **`mert_key`** **\*** **string** -**`bank_name`** **BankName** + mert key -은행 + --- + -`"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` + + **`delivery_or_service_period`** **string** ---- + 배송 및 서비스 기간 -**`account_number`** **string** + --- -계좌번호 + **`development_method`** **string** ---- + 개발 방식 -**`account_holder_name`** **string** + `"SELF_DEVELOPMENT"`, `"WORDPRESS"` -예금주명 + --- ---- + **`supporting_countries`** **Array\[string]** -**`homepage_name`** **string** + 결제 제공 국가 (ISO 3166-1 alpha-2) -홈페이지 명 (서비스 명) + --- ---- + **`payco_id`** **string** -**`nicepay_terms_agreed`** **Array\[boolean]** + 페이코 ID -약관들 동의 여부 + --- ---- + **`bank_name`** **BankName** - -
+ 은행 -
+ `"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` - - - -**`code`** **\*** **string** + --- -에러 코드 + **`account_number`** **string** ---- + 계좌번호 -**`params`** **\*** **object** + --- -에러 세부사항 + **`account_holder_name`** **string** -
-

params

+ 예금주명 -**`message`** **string** + --- -에러 메시지 + **`homepage_name`** **string** ---- + 홈페이지 명 (서비스 명) -
+ --- ---- + **`nicepay_terms_agreed`** **Array\[boolean]** -
-
+ 약관들 동의 여부 -
+ --- + + + - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -에러 코드 + 에러 코드 ---- + --- -**`params`** **\*** **object** + **`params`** **\*** **object** -에러 세부사항 + 에러 세부사항 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- + --- +
-
+ --- +
+
+
---- + + + + **`code`** **\*** **string** - - + 에러 코드 - + --- - - - -**`code`** **\*** **string** + **`params`** **\*** **object** -에러 코드 + 에러 세부사항 ---- +
+

params

-**`params`** **\*** **object** + **`message`** **string** -에러 세부사항 + 에러 메시지 -
-

params

+ --- +
-**`message`** **string** + --- + + + -에러 메시지 + + + + **`code`** **\*** **string** ---- + 에러 코드 -
+ --- ---- + **`params`** **\*** **object** -
-
+ 에러 세부사항 -
+
+

params

- - - -**`code`** **\*** **string** + **`message`** **string** -에러 코드 + 에러 메시지 ---- + --- +
-**`params`** **\*** **object** + --- +
+
+
-에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
## ⌨ 온보딩 API 를 통해 전자결제 신청하기 (호스팅사 > 포트원 > 결제대행사) - -호스팅사 고객의 사업자 정보를 기반으로 생성된 스토어 식별코드로 전자 결제를 신청합니다. + + 호스팅사 고객의 사업자 정보를 기반으로 생성된 스토어 식별코드로 전자 결제를 신청합니다. + - + ### Parameters -### Parameters + #### Header -#### Header + + jwt 토큰 헤더 + - -jwt 토큰 헤더 + #### Path - + + store의 id + -#### Path + #### Body - -store의 id + + pg사 기준으로 묶은 application + - + + PG사별 특수값 + -#### Body + ### Responses - -pg사 기준으로 묶은 application + + + + **`applications`** **\*** **Array\[ApplicationPublic]** - - -PG사별 특수값 + 전자결제 신청내역 - +
+

ApplicationPublic

-### Responses + **`id`** **\*** **string** - - - -**`applications`** **\*** **Array\[ApplicationPublic]** + 전자결제 신청 id -전자결제 신청내역 + --- -
-

ApplicationPublic

+ **`store_id`** **string** -**`id`** **\*** **string** + 전자결제 신청한 store id -전자결제 신청 id + --- ---- + **`pg_company`** **\*** **PgCompany** -**`store_id`** **string** + PG사 -전자결제 신청한 store id + `"UNIDENTIFIED"`, `"NICE"`, `"KCP"`, `"KICC"`, `"DANAL"`, `"SETTLE"`, `"JTNET"`, `"INICIS"`, `"SMARTRO"`, `"BLUEWALNUT"`, `"TOSSPAYMENTS"`, `"DAOU"`, `"KSNET"`, `"MOBILIANS"`, `"ALIPAY"`, `"EXIMBAY"`, `"PAYPAL"`, `"PAYMENTWALL"`, `"NAVERPAY"`, `"NAVERCO"`, `"KAKAOPAY"`, `"TOSSPAY"`, `"CHAI"`, `"PAYCO"`, `"SMILEPAY"` ---- + --- -**`pg_company`** **\*** **PgCompany** + **`methods`** **\*** **Array\[MethodAndType]** -PG사 + 해당 PG사로 신청한 결제수단 및 방식 -`"UNIDENTIFIED"`, `"NICE"`, `"KCP"`, `"KICC"`, `"DANAL"`, `"SETTLE"`, `"JTNET"`, `"INICIS"`, `"SMARTRO"`, `"BLUEWALNUT"`, `"TOSSPAYMENTS"`, `"DAOU"`, `"KSNET"`, `"MOBILIANS"`, `"ALIPAY"`, `"EXIMBAY"`, `"PAYPAL"`, `"PAYMENTWALL"`, `"NAVERPAY"`, `"NAVERCO"`, `"KAKAOPAY"`, `"TOSSPAY"`, `"CHAI"`, `"PAYCO"`, `"SMILEPAY"` + `"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"CARD_KEYIN"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"PHONE_SUBSCRIBE"`, `"GIFT_CARD_GENERAL"`, `"ABROAD_GENERAL"`, `"MY_ACCOUNT_GENERAL"`, `"NAVERPAY_GENERAL"`, `"NAVERCO_GENERAL"`, `"KAKAOPAY_GENERAL"`, `"TOSSPAY_GENERAL"`, `"PAYCO_GENERAL"`, `"SMILEPAY_GENERAL"`, `"CERTIFICATION_PHONE"`, `"CERTIFICATION_UNIFIED"` ---- + --- -**`methods`** **\*** **Array\[MethodAndType]** + **`status`** **\*** **ApplicationStatusClass** -해당 PG사로 신청한 결제수단 및 방식 + 신청 상태 대분류 -`"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"CARD_KEYIN"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"PHONE_SUBSCRIBE"`, `"GIFT_CARD_GENERAL"`, `"ABROAD_GENERAL"`, `"MY_ACCOUNT_GENERAL"`, `"NAVERPAY_GENERAL"`, `"NAVERCO_GENERAL"`, `"KAKAOPAY_GENERAL"`, `"TOSSPAY_GENERAL"`, `"PAYCO_GENERAL"`, `"SMILEPAY_GENERAL"`, `"CERTIFICATION_PHONE"`, `"CERTIFICATION_UNIFIED"` + `"RECEPTION_SCHEDULED"`, `"TRANSFER"`, `"RECEPTION_PENDING"`, `"RECEPTION_COMPLETED"`, `"APPLICATION_CANCELED"`, `"MERCHANT_REVIEWING"`, `"CONTRACT_PROCESSING"`, `"CONTRACT_COMPLETED"`, `"CONTRACT_CANCELED"`, `"CONTRACT_PENDING"`, `"CONTRACT_REJECTED"`, `"SERVICE_CLOSED"`, `"SERVICE_OPEN"` ---- + --- -**`status`** **\*** **ApplicationStatusClass** + **`pg_specific_info`** **\*** **PgSpecificInfo** -신청 상태 대분류 + PG사별 특수값 -`"RECEPTION_SCHEDULED"`, `"TRANSFER"`, `"RECEPTION_PENDING"`, `"RECEPTION_COMPLETED"`, `"APPLICATION_CANCELED"`, `"MERCHANT_REVIEWING"`, `"CONTRACT_PROCESSING"`, `"CONTRACT_COMPLETED"`, `"CONTRACT_CANCELED"`, `"CONTRACT_PENDING"`, `"CONTRACT_REJECTED"`, `"SERVICE_CLOSED"`, `"SERVICE_OPEN"` + --- ---- + **`failed_reason`** **string** -**`pg_specific_info`** **\*** **PgSpecificInfo** + 실패 사유 -PG사별 특수값 + --- ---- + **`pg_credential`** **object** -**`failed_reason`** **string** + 결제 연동에 필요한 Credential -실패 사유 + --- ---- + **`created`** **\*** **string** -**`pg_credential`** **object** + 생성 시각 -결제 연동에 필요한 Credential + --- ---- + **`modified`** **\*** **string** -**`created`** **\*** **string** + 수정 시각 -생성 시각 + --- +
---- + --- +
-**`modified`** **\*** **string** + + **`mid`** **\*** **string** -수정 시각 + mid ---- + --- -
+ **`api_key`** **\*** **string** ---- + api key - + --- - -**`mid`** **\*** **string** + **`client_key`** **\*** **string** -mid + client key ---- + --- -**`api_key`** **\*** **string** + **`mert_key`** **\*** **string** -api key + mert key ---- + --- + -**`client_key`** **\*** **string** + + **`delivery_or_service_period`** **string** -client key + 배송 및 서비스 기간 ---- + --- -**`mert_key`** **\*** **string** + **`development_method`** **string** -mert key + 개발 방식 ---- + `"SELF_DEVELOPMENT"`, `"WORDPRESS"` - + --- - -**`delivery_or_service_period`** **string** + **`supporting_countries`** **Array\[string]** -배송 및 서비스 기간 + 결제 제공 국가 (ISO 3166-1 alpha-2) ---- + --- -**`development_method`** **string** + **`payco_id`** **string** -개발 방식 + 페이코 ID -`"SELF_DEVELOPMENT"`, `"WORDPRESS"` + --- ---- + **`bank_name`** **BankName** -**`supporting_countries`** **Array\[string]** + 은행 -결제 제공 국가 (ISO 3166-1 alpha-2) + `"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` ---- + --- -**`payco_id`** **string** + **`account_number`** **string** -페이코 ID + 계좌번호 ---- + --- -**`bank_name`** **BankName** + **`account_holder_name`** **string** -은행 + 예금주명 -`"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` + --- ---- + **`homepage_name`** **string** -**`account_number`** **string** + 홈페이지 명 (서비스 명) -계좌번호 + --- ---- + **`nicepay_terms_agreed`** **Array\[boolean]** -**`account_holder_name`** **string** + 약관들 동의 여부 -예금주명 + --- + + + ---- + + + + **`code`** **\*** **string** -**`homepage_name`** **string** + 에러 코드 -홈페이지 명 (서비스 명) + --- ---- + **`params`** **\*** **object** -**`nicepay_terms_agreed`** **Array\[boolean]** + 에러 세부사항 -약관들 동의 여부 +
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
- - - -**`code`** **\*** **string** + --- + + + -에러 코드 + + + + **`code`** **\*** **string** ---- + 에러 코드 -**`params`** **\*** **object** + --- -에러 세부사항 + **`params`** **\*** **object** -
-

params

+ 에러 세부사항 -**`message`** **string** +
+

params

-에러 메시지 + **`message`** **string** ---- + 에러 메시지 -
+ --- +
---- + --- +
+
+
-
-
+ + + + **`code`** **\*** **string** - + 에러 코드 - - - -**`code`** **\*** **string** + --- -에러 코드 + **`params`** **\*** **object** ---- + 에러 세부사항 -**`params`** **\*** **object** +
+

params

-에러 세부사항 + **`message`** **string** -
-

params

+ 에러 메시지 -**`message`** **string** + --- +
-에러 메시지 + --- + + + ---- + + + + **`code`** **\*** **string** -
+ 에러 코드 ---- + --- -
-
- -
- - - - -**`code`** **\*** **string** - -에러 코드 - ---- - -**`params`** **\*** **object** - -에러 세부사항 - -
-

params

- -**`message`** **string** - -에러 메시지 - ---- - -
- ---- - -
-
- -
- - - - -**`code`** **\*** **string** - -에러 코드 - ---- - -**`params`** **\*** **object** + **`params`** **\*** **object** -에러 세부사항 + 에러 세부사항 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- + --- +
-
+ --- +
+
+
---- + + + + **`code`** **\*** **string** - - + 에러 코드 - + --- - - - -**`code`** **\*** **string** - -에러 코드 - ---- + **`params`** **\*** **object** -**`params`** **\*** **object** - -에러 세부사항 - -
-

params

- -**`message`** **string** - -에러 메시지 - ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
- -**`pg_company`** **\*** **PublicPgCompany** + + **`pg_company`** **\*** **PublicPgCompany** -PG사 + PG사 -`"UNIDENTIFIED"`, `"TOSSPAYMENTS"` + `"UNIDENTIFIED"`, `"TOSSPAYMENTS"` ---- + --- -**`methods`** **\*** **Array\[PublicMethodAndType]** + **`methods`** **\*** **Array\[PublicMethodAndType]** -결제 수단 및 방식\ -`CARD_GENERAL`: 카드 일반결제\ -`CARD_SUBSCRIBE`: 카드 정기결제\ -`TRANS_GENERAL`: 계좌이체 일반결제\ -`VBANK_GENERAL`: 가상계좌 일반결제\ -`PHONE_GENERAL`: 휴대폰 일반결제\ -`GIFT_CARD_GENERAL`: 상품권 일반결제\ + 결제 수단 및 방식\ + `CARD_GENERAL`: 카드 일반결제\ + `CARD_SUBSCRIBE`: 카드 정기결제\ + `TRANS_GENERAL`: 계좌이체 일반결제\ + `VBANK_GENERAL`: 가상계좌 일반결제\ + `PHONE_GENERAL`: 휴대폰 일반결제\ + `GIFT_CARD_GENERAL`: 상품권 일반결제\\ -`"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"GIFT_CARD_GENERAL"` + `"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"GIFT_CARD_GENERAL"` ---- + --- + - + + 은행 - -은행 + `"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` + -`"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` + + **`delivery_or_service_period`** **string** - + 배송 및 서비스 기간 - -**`delivery_or_service_period`** **string** + --- -배송 및 서비스 기간 + **`development_method`** **string** ---- + 개발 방식 -**`development_method`** **string** + `"SELF_DEVELOPMENT"`, `"WORDPRESS"` -개발 방식 + --- -`"SELF_DEVELOPMENT"`, `"WORDPRESS"` + **`supporting_countries`** **Array\[string]** ---- + 결제 제공 국가 (ISO 3166-1 alpha-2) -**`supporting_countries`** **Array\[string]** + --- -결제 제공 국가 (ISO 3166-1 alpha-2) + **`payco_id`** **string** ---- + 페이코 ID -**`payco_id`** **string** + --- -페이코 ID + **`bank_name`** **BankName** ---- + 은행 -**`bank_name`** **BankName** + `"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` -은행 + --- -`"BANK_OF_KOREA"`, `"KDB"`, `"IBK"`, `"KB"`, `"HANA"`, `"SH"`, `"KOREA_EXIMBANK"`, `"NH"`, `"WOORI"`, `"SHINHAN"`, `"SC"`, `"CITY"`, `"DGB"`, `"BOOSAN_BANK"`, `"KJ_BANK"`, `"JEJU_BANK"`, `"JB_BANK"`, `"KN_BANK"`, `"MG"`, `"CU"`, `"SB"`, `"BOA"`, `"MORGAN_STANLEY"`, `"HSBC"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN"`, `"BNP_PARISBAS"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"SJ"`, `"CHINA_CONSTRUCTION_BANK"`, `"POST_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"` + **`account_number`** **string** ---- + 계좌번호 -**`account_number`** **string** + --- -계좌번호 + **`account_holder_name`** **string** ---- + 예금주명 -**`account_holder_name`** **string** + --- -예금주명 + **`homepage_name`** **string** ---- + 홈페이지 명 (서비스 명) -**`homepage_name`** **string** + --- -홈페이지 명 (서비스 명) + **`nicepay_terms_agreed`** **Array\[boolean]** ---- + 약관들 동의 여부 -**`nicepay_terms_agreed`** **Array\[boolean]** + --- + -약관들 동의 여부 + + 결제 수단 및 방식\ + `CARD_GENERAL`: 카드 일반결제\ + `CARD_SUBSCRIBE`: 카드 정기결제\ + `TRANS_GENERAL`: 계좌이체 일반결제\ + `VBANK_GENERAL`: 가상계좌 일반결제\ + `PHONE_GENERAL`: 휴대폰 일반결제\ + `GIFT_CARD_GENERAL`: 상품권 일반결제\\ ---- - - - - -결제 수단 및 방식\ -`CARD_GENERAL`: 카드 일반결제\ -`CARD_SUBSCRIBE`: 카드 정기결제\ -`TRANS_GENERAL`: 계좌이체 일반결제\ -`VBANK_GENERAL`: 가상계좌 일반결제\ -`PHONE_GENERAL`: 휴대폰 일반결제\ -`GIFT_CARD_GENERAL`: 상품권 일반결제\ - -`"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"GIFT_CARD_GENERAL"` - - + `"CARD_GENERAL"`, `"CARD_SUBSCRIBE"`, `"TRANS_GENERAL"`, `"VBANK_GENERAL"`, `"PHONE_GENERAL"`, `"GIFT_CARD_GENERAL"` + - -PG사 + + PG사 -`"UNIDENTIFIED"`, `"TOSSPAYMENTS"` - - + `"UNIDENTIFIED"`, `"TOSSPAYMENTS"` + ## ⌨ 가입 신청 URL 호출 & 상태값 조회하기 - -**1. 가입 신청 URL 호출 (호스팅사 > 포트원 > 결제대행사) - 토스페이먼츠 전용** + + **1. 가입 신청 URL 호출 (호스팅사 > 포트원 > 결제대행사) - 토스페이먼츠 전용** -**2. 상태값 조회하기 (결제대행사 > 포트원 > 호스팅사)** + **2. 상태값 조회하기 (결제대행사 > 포트원 > 호스팅사)** + - + ### Parameters -### Parameters + #### Header -#### Header + + jwt 토큰 헤더 + - -jwt 토큰 헤더 + #### Path - + + store의 id + -#### Path + ### Responses - -store의 id + + + + **`urls`** **Array\[TosspaymentsApplicationUrl]** - +
+

TosspaymentsApplicationUrl

-### Responses + **`application_id`** **\*** **string** - - - -**`urls`** **Array\[TosspaymentsApplicationUrl]** + 전자결제 신청 id -
-

TosspaymentsApplicationUrl

+ --- -**`application_id`** **\*** **string** + **`payment_type`** **\*** **string** -전자결제 신청 id + `GENERAL`: 일반결제\ + `SUBSCRIBE`: 정기결제\ + `EASY`: 간편결제\\ ---- + `"GENERAL"`, `"SUBSCRIBE"`, `"EASY"` -**`payment_type`** **\*** **string** + --- -`GENERAL`: 일반결제\ -`SUBSCRIBE`: 정기결제\ -`EASY`: 간편결제\ + **`onboarding_url`** **string** -`"GENERAL"`, `"SUBSCRIBE"`, `"EASY"` + 토스페이먼츠 온보딩페이지 url status가 `READY`, `IN_DRAFT`인 경우만 값이 담겨짐 ---- - -**`onboarding_url`** **string** - -토스페이먼츠 온보딩페이지 url status가 `READY`, `IN_DRAFT`인 경우만 값이 담겨짐 + --- ---- + **`status`** **\*** **string** -**`status`** **\*** **string** + 토스페이먼츠 계약 상태 (토스페이먼츠에서 내려주는 상태값)\ + `READY`: 신청서 작성 전\ + `IN_DRAFT`: 신청서 작성 중\ + `WAIT_FOR_REVIEW`: 신청서 제출 완료\ + `IN_REVIEW`: 심사 중\ + `DONE`: 계약 완료\ + `CANCELED`: 계약 취소\ + `TERMINATED`: 계약 해지\\ -토스페이먼츠 계약 상태 (토스페이먼츠에서 내려주는 상태값)\ -`READY`: 신청서 작성 전\ -`IN_DRAFT`: 신청서 작성 중\ -`WAIT_FOR_REVIEW`: 신청서 제출 완료\ -`IN_REVIEW`: 심사 중\ -`DONE`: 계약 완료\ -`CANCELED`: 계약 취소\ -`TERMINATED`: 계약 해지\ + `"READY"`, `"IN_DRAFT"`, `"WAIT_FOR_REVIEW"`, `"IN_REVIEW"`, `"DONE"`, `"CANCELED"`, `"TERMINATED"` -`"READY"`, `"IN_DRAFT"`, `"WAIT_FOR_REVIEW"`, `"IN_REVIEW"`, `"DONE"`, `"CANCELED"`, `"TERMINATED"` + --- +
---- + --- +
+
+
-
+ + + + **`code`** **\*** **string** ---- + 에러 코드 - - + --- - + **`params`** **\*** **object** - - - -**`code`** **\*** **string** + 에러 세부사항 -에러 코드 +
+

params

---- + **`message`** **string** -**`params`** **\*** **object** + 에러 메시지 -에러 세부사항 + --- +
-
-

params

+ --- + + + -**`message`** **string** + + + + **`code`** **\*** **string** -에러 메시지 + 에러 코드 ---- + --- -
+ **`params`** **\*** **object** ---- + 에러 세부사항 -
-
+
+

params

- + **`message`** **string** - - - -**`code`** **\*** **string** + 에러 메시지 -에러 코드 + --- +
---- + --- + + +
-**`params`** **\*** **object** + + + + **`code`** **\*** **string** -에러 세부사항 + 에러 코드 -
-

params

+ --- -**`message`** **string** + **`params`** **\*** **object** -에러 메시지 + 에러 세부사항 ---- +
+

params

-
+ **`message`** **string** ---- + 에러 메시지 - - + --- +
-
+ --- + + + - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -에러 코드 + 에러 코드 ---- + --- -**`params`** **\*** **object** + **`params`** **\*** **object** -에러 세부사항 + 에러 세부사항 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** -에러 메시지 - ---- - -
- ---- - - - - - - - - - -**`code`** **\*** **string** - -에러 코드 - ---- - -**`params`** **\*** **object** - -에러 세부사항 - -
-

params

- -**`message`** **string** - -에러 메시지 - ---- - -
- ---- - -
-
+ 에러 메시지 -
+ --- +
+ --- +
+
+
diff --git a/src/content/docs/ko/api-v2/authorization.mdx b/src/content/docs/ko/api-v2/authorization.mdx index a357d7cd2..472b17cc6 100644 --- a/src/content/docs/ko/api-v2/authorization.mdx +++ b/src/content/docs/ko/api-v2/authorization.mdx @@ -8,279 +8,259 @@ import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ API Key 방식으로 로그인 -API key 를 통해 API 인증에 사용할 토큰을 가져옵니다. - -### Parameters - -#### Body - - -사용자의 API Key - - + API key 를 통해 API 인증에 사용할 토큰을 가져옵니다. -### Responses + ### Parameters - - - -**`accessToken`** **\*** **string** + #### Body -인증에 사용하는 엑세스 토큰. 하루의 유효기간을 가지고 있습니다. + + 사용자의 API Key + ---- + ### Responses -**`refreshToken`** **\*** **string** + + + + **`accessToken`** **\*** **string** -토큰 재발급 및 유효기간 연장을 위해 사용하는 리프레시 토큰. 일주일의 유효기간을 가지고 있으며, 리프레시 토큰을 통해 유효기간이 연장된 새로운 엑세스 토큰을 발급받을 수 있습니다. + 인증에 사용하는 엑세스 토큰. 하루의 유효기간을 가지고 있습니다. ---- + --- - - + **`refreshToken`** **\*** **string** - + 토큰 재발급 및 유효기간 연장을 위해 사용하는 리프레시 토큰. 일주일의 유효기간을 가지고 있으며, 리프레시 토큰을 통해 유효기간이 연장된 새로운 엑세스 토큰을 발급받을 수 있습니다. - - - -**`type`** **\*** **string** + --- + + + -`"INVALID_REQUEST"` + + + + **`type`** **\*** **string** ---- + `"INVALID_REQUEST"` -**`message`** **string** + --- -에러 메시지 + **`message`** **string** ---- + 에러 메시지 - - - + --- + + + - - - -**`type`** **\*** **string** + + + + **`type`** **\*** **string** -`"UNAUTHORIZED"` + `"UNAUTHORIZED"` ---- + --- -**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- - - - - + --- + + + ## ⌨ 토큰 재발급 - -리프레시 토큰을 이용한 토큰 재발급 - - -### Parameters - -#### Body - - -새로운 token을 발급받기 위한 refresh token - - - -### Responses + + 리프레시 토큰을 이용한 토큰 재발급 + - - - -**`access_token`** **\*** **string** + ### Parameters -인증 서버에서 인증된 사용자의 access token + #### Body ---- - -**`refresh_token`** **\*** **string** - -인증 서버에서 인증된 사용자의 access token - ---- + + 새로운 token을 발급받기 위한 refresh token + - - + ### Responses - - - - -**`code`** **\*** **string** + + + + **`access_token`** **\*** **string** -에러 코드 + 인증 서버에서 인증된 사용자의 access token ---- + --- -**`params`** **\*** **object** + **`refresh_token`** **\*** **string** -에러 세부사항 + 인증 서버에서 인증된 사용자의 access token -
-

params

+ --- + + + -**`message`** **string** + + + + **`code`** **\*** **string** -에러 메시지 + 에러 코드 ---- + --- -
+ **`params`** **\*** **object** ---- + 에러 세부사항 -
-
+
+

params

- - - - -**`code`** **\*** **string** + **`message`** **string** -에러 코드 + 에러 메시지 ---- + --- +
-**`params`** **\*** **object** + --- +
+
+
-에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
## ⌨ API Key 방식으로 로그인 (Deprecated) - - -API Key 방식으로 로그인 - - -### Parameters - -#### Body - - -사용자의 API Key - - - -### Responses - - - -**`access_token`** **\*** **string** + + + API Key 방식으로 로그인 + -인증 서버에서 인증된 사용자의 access token + ### Parameters ---- + #### Body -**`refresh_token`** **\*** **string** + + 사용자의 API Key + -인증 서버에서 인증된 사용자의 access token + ### Responses ---- + + + + **`access_token`** **\*** **string** - - + 인증 서버에서 인증된 사용자의 access token - - - - -**`code`** **\*** **string** + --- -에러 코드 + **`refresh_token`** **\*** **string** ---- + 인증 서버에서 인증된 사용자의 access token -**`params`** **\*** **object** + --- + + + -에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - - - - -**`code`** **\*** **string** + --- +
-에러 코드 + --- +
+
+
---- - -**`params`** **\*** **object** + + + + **`code`** **\*** **string** -에러 세부사항 + 에러 코드 -
-

params

+ --- -**`message`** **string** + **`params`** **\*** **object** -에러 메시지 + 에러 세부사항 ---- +
+

params

-
- ---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
diff --git a/src/content/docs/ko/api-v2/billing-key.mdx b/src/content/docs/ko/api-v2/billing-key.mdx new file mode 100644 index 000000000..bb6021633 --- /dev/null +++ b/src/content/docs/ko/api-v2/billing-key.mdx @@ -0,0 +1,1479 @@ +--- +title: 빌링키 관련 API +description: 빌링키에 관련된 API 를 확인할 수 있습니다. +--- + +import Details from "~/components/gitbook/Details.astro"; +import Swagger from "~/components/gitbook/swagger/Swagger.astro"; +import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; +import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; +import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; +import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; + +## ⌨ 빌링키 다건 조회 + + + + + ### Parameters + + #### Query + + + 빌링키 + + + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + + ### Responses + + + + + **`billing_keys`** **\*** **Array\[BillingKey]** + + 빌링키 정보 + +
+

BillingKey

+ + **`billing_key`** **\*** **string** + + 빌링키 + + --- + + **`merchant_id`** **\*** **string** + + 고객사 ID + + --- + + **`store_id`** **\*** **string** + + 하위 상점 ID + + --- + + **`channel`** **\*** **Channel** + + 결제 채널 정보 + + --- + + **`origin`** **Origin** + + 결제를 요청한 근원에 대한 정보 + + --- + + **`customer`** **\*** **Customer** + + 구매자 정보 + + --- + + **`issued_at`** **string** + + 발급 일시 (`status`가 `ISSUED`인 경우 제공) + + --- + + **`custom_data`** **string** + + 커스텀 데이터 + + --- + + **`issue_id`** **string** + + 고객사가 채번 하는 빌링키 발급 건 고유 ID + + --- + + **`issue_name`** **string** + + 빌링키 발급 건 이름 + + --- + + **`payment_method_detail`** **\*** **BillingKeyPaymentMethod** + + 빌링키 결제수단 상세정보 + + --- +
+ + --- +
+ + + **`card`** **object** + + 카드 정보 + +
+

card

+ + **`detail`** **CardDetail** + + 카드 정보 + + --- + + **`number`** **string** + + 마스킹된 카드 번호 + + --- +
+ + --- + + **`mobile`** **Mobile** + + 모바일결제 정보 + +
+

Mobile

+ + **`carrier`** **Carrier** + + 통신사 + + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + + --- + + **`phone_number`** **string** + + 휴대전화번호 + + --- +
+ + --- + + **`easy_pay`** **object** + + 간편결제 정보 + +
+

easy\_pay

+ + **`provider`** **EasyPayProvider** + + 간편결제 PG사 + + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + + --- +
+ + --- +
+ + + **`publisher`** **string** + + 발행사 코드 + + --- + + **`issuer`** **string** + + 발급사 코드 + + --- + + **`brand`** **CardBrand** + + 카드 브랜드 + + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + + --- + + **`card_type`** **CardType** + + 카드 종류 + + `"CREDIT"`, `"DEBIT"`, `"GIFT"` + + --- + + **`card_owner_type`** **CardOwnerType** + + 카드 소유주 유형 + + `"PERSONAL"`, `"CORPORATE"` + + --- + + **`bin`** **string** + + 카드 빈넘버 + + --- + + **`name`** **string** + + 카드전표인자명 + + --- + + + + **`id`** **string** + + 채널 ID + + --- + + **`name`** **string** + + 채널 이름 + + --- + + **`key`** **string** + + 채널 키 + + --- + + **`type`** **\*** **ChannelType** + + 채널 유형 + + `"LIVE"`, `"TEST"` + + --- + + **`pg_provider`** **\*** **PgProvider** + + 결제대행사(PG사) + + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + + --- + + **`pg_merchant_id`** **\*** **string** + + PG사에 등록된 고객사 ID + + --- + +
+ + + + **`id`** **string** + + 구매자 ID + + --- + + **`name`** **string** + + 구매자 이름 + + --- + + **`birthYear`** **string** + + 구매자 생년 + + --- + + **`gender`** **Gender** + + `"MALE"`, `"FEMALE"`, `"OTHER"` + + --- + + **`email`** **string** + + 구매자 이메일 + + --- + + **`phone_number`** **string** + + 구매자 전화번호 + + --- + + **`one_line_address`** **string** + + 구매자 주소 (한 줄) + + --- + + **`separated_address`** **SeparatedAddress** + + 구매자 주소 (단위별) + +
+

SeparatedAddress

+ + **`country`** **Country** + + 국가 + + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + --- + + **`province`** **string** + + 시/도/구 + + --- + + **`city`** **string** + + 도시 + + --- + + **`address_line_1`** **\*** **string** + + 일반 주소 + + --- + + **`address_line_2`** **\*** **string** + + 상세 주소 + + --- +
+ + --- + + **`zipcode`** **string** + + 구매자 우편번호 + + --- +
+ + + **`platform_type`** **\*** **string** + + 결제를 요청한 단말의 플랫폼 분류 + + `"PC"`, `"MOBILE"`, `"API"` + + --- + + **`user_agent`** **string** + + 결제근원의 환경 정보 (Http 의 User-Agent header value) + + --- + + **`url`** **string** + + 결제근원의 페이지 url + + --- + + **`ip_address`** **\*** **string** + + 결제근원의 IP 주소 + + --- + +
+
+ + + + + **`code`** **\*** **string** + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + +
+ +## ⌨ 빌링키 발급 + + + + + ### Parameters + + #### Body + + + 하위 상점 ID + + + + 고객 정보 + + + + + + 결제 채널 키 + + + + 가능한 결제 수단: 카드, 휴대폰 소액 결제 선택한 결제 수단에 따라 + + `card` + + 와 + + `mobile_phone` + + 중 하나에만 값이 들어있어야 합니다. + + + ### Responses + + + + + **`billing_key`** **\*** **string** + + --- + + **`customer_id`** **\*** **string** + + --- + + **`requested_at`** **\*** **string** + + --- + + **`issued_at`** **\*** **string** + + --- + + + + + + + + **`code`** **\*** **string** + + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\\ + + `"INVALID_REQUEST"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ + + `"PERMISSION_DENIED"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ + `CHANNEL_NOT_FOUND`: 결제 채널을 찾을 수 없습니다.\\ + + `"STORE_NOT_FOUND"`, `"CHANNEL_NOT_FOUND"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`address_line_1`** **\*** **string** + + 주소1 + + --- + + **`address_line_2`** **\*** **string** + + 주소2 + + --- + + **`city`** **string** + + 도시 + + --- + + **`province`** **string** + + 주, 도, 시 + + --- + + **`country`** **Country** + + 국가 + + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + --- + + + + **`card_number`** **\*** **string** + + --- + + **`expiry_month`** **\*** **string** + + --- + + **`expiry_year`** **\*** **string** + + --- + + **`birth_or_business_registration_number`** **\*** **string** + + --- + + **`password_two_digits`** **\*** **string** + + --- + + + + 휴대폰 통신사 + + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + + + + 국가 + + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + + + + + **`customer_id`** **string** + + 고객사의 고객 고유 ID - 값을 넣지 않으면 PortOne에서 자체 채번합니다. + + --- + + **`phone_number`** **string** + + 휴대폰 번호 + + --- + + **`customer_name`** **CustomerName** + + 고객 이름 정보. full\_name만 채워져 있거나, first\_name & last\_name이 채워져 있어야 함 + +
+

CustomerName

+ + **`full_name`** **string** + + --- + + **`first_name`** **string** + + --- + + **`last_name`** **string** + + --- +
+ + --- + + **`email`** **string** + + 고객 이메일 + + --- + + **`zipcode`** **string** + + 우편번호 + + --- + + **`address`** **Address** + + 주소 형식 + +
+

Address

+ + **`address_line_1`** **\*** **string** + + 주소1 + + --- + + **`address_line_2`** **\*** **string** + + 주소2 + + --- + + **`city`** **string** + + 도시 + + --- + + **`province`** **string** + + 주, 도, 시 + + --- + + **`country`** **Country** + + 국가 + + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + --- +
+ + --- + + **`gender`** **Gender** + + 성별 + + `"MALE"`, `"FEMALE"`, `"OTHER"` + + --- + + **`birth_year`** **string** + + 출생연도 + + --- + + **`birth_month`** **string** + + 출생월 + + --- + + **`birth_day`** **string** + + 출생일 + + --- + + **`country`** **Country** + + 국가 + + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + --- +
+ + + **`full_name`** **string** + + --- + + **`first_name`** **string** + + --- + + **`last_name`** **string** + + --- + + + + 성별 + + `"MALE"`, `"FEMALE"`, `"OTHER"` + + + + **`card_credential`** **\*** **CardCredential** + + 카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 + +
+

CardCredential

+ + **`card_number`** **\*** **string** + + --- + + **`expiry_month`** **\*** **string** + + --- + + **`expiry_year`** **\*** **string** + + --- + + **`birth_or_business_registration_number`** **\*** **string** + + --- + + **`password_two_digits`** **\*** **string** + + --- +
+ + --- + + **`cvc`** **string** + + --- + + **`vbv`** **VBV** + + 3DS 인증 결과를 담는 객체 (Verified by Visa) + +
+

VBV

+ + **`cavv`** **\*** **string** + + --- + + **`xid`** **\*** **string** + + --- + + **`eci`** **\*** **string** + + --- +
+ + --- +
+
+ + + + **`card`** **InstantBillingKeyCardForm** + + 빌링키 발급 시에 필요한 카드 관련 정보 + +
+

InstantBillingKeyCardForm

+ + **`card_credential`** **\*** **CardCredential** + + 카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 + + --- + + **`cvc`** **string** + + --- + + **`vbv`** **VBV** + + 3DS 인증 결과를 담는 객체 (Verified by Visa) + + --- +
+ + --- + + **`mobile_phone`** **MobileForm** + + 휴대폰을 이용한 소액결제와 정기결제를 위한 빌링키 발급 시에 사용하는 휴대폰 관련 정보 + +
+

MobileForm

+ + **`carrier`** **Carrier** + + 휴대폰 통신사 + + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + + --- +
+ + --- +
+ + + **`carrier`** **Carrier** + + 휴대폰 통신사 + + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + + --- + + + + **`cavv`** **\*** **string** + + --- + + **`xid`** **\*** **string** + + --- + + **`eci`** **\*** **string** + + --- + +
+ +## ⌨ 빌링키 단건 조회 + + + + + ### Parameters + + #### Path + + + 빌링키 + + + #### Query + + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + + ### Responses + + + + + **`billing_key`** **\*** **BillingKey** + + 빌링키 정보 + +
+

BillingKey

+ + **`billing_key`** **\*** **string** + + 빌링키 + + --- + + **`merchant_id`** **\*** **string** + + 고객사 ID + + --- + + **`store_id`** **\*** **string** + + 하위 상점 ID + + --- + + **`channel`** **\*** **Channel** + + 결제 채널 정보 + + --- + + **`origin`** **Origin** + + 결제를 요청한 근원에 대한 정보 + + --- + + **`customer`** **\*** **Customer** + + 구매자 정보 + + --- + + **`issued_at`** **string** + + 발급 일시 (`status`가 `ISSUED`인 경우 제공) + + --- + + **`custom_data`** **string** + + 커스텀 데이터 + + --- + + **`issue_id`** **string** + + 고객사가 채번 하는 빌링키 발급 건 고유 ID + + --- + + **`issue_name`** **string** + + 빌링키 발급 건 이름 + + --- + + **`payment_method_detail`** **\*** **BillingKeyPaymentMethod** + + 빌링키 결제수단 상세정보 + + --- +
+ + --- +
+ + + **`card`** **object** + + 카드 정보 + +
+

card

+ + **`detail`** **CardDetail** + + 카드 정보 + + --- + + **`number`** **string** + + 마스킹된 카드 번호 + + --- +
+ + --- + + **`mobile`** **Mobile** + + 모바일결제 정보 + +
+

Mobile

+ + **`carrier`** **Carrier** + + 통신사 + + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + + --- + + **`phone_number`** **string** + + 휴대전화번호 + + --- +
+ + --- + + **`easy_pay`** **object** + + 간편결제 정보 + +
+

easy\_pay

+ + **`provider`** **EasyPayProvider** + + 간편결제 PG사 + + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + + --- +
+ + --- +
+ + + **`publisher`** **string** + + 발행사 코드 + + --- + + **`issuer`** **string** + + 발급사 코드 + + --- + + **`brand`** **CardBrand** + + 카드 브랜드 + + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + + --- + + **`card_type`** **CardType** + + 카드 종류 + + `"CREDIT"`, `"DEBIT"`, `"GIFT"` + + --- + + **`card_owner_type`** **CardOwnerType** + + 카드 소유주 유형 + + `"PERSONAL"`, `"CORPORATE"` + + --- + + **`bin`** **string** + + 카드 빈넘버 + + --- + + **`name`** **string** + + 카드전표인자명 + + --- + + + + **`id`** **string** + + 채널 ID + + --- + + **`name`** **string** + + 채널 이름 + + --- + + **`key`** **string** + + 채널 키 + + --- + + **`type`** **\*** **ChannelType** + + 채널 유형 + + `"LIVE"`, `"TEST"` + + --- + + **`pg_provider`** **\*** **pg\_provider\_PgProvider-2** + + 결제대행사(PG사) + + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + + --- + + **`pg_merchant_id`** **\*** **string** + + PG사에 등록된 고객사 ID + + --- + +
+ + + + **`id`** **string** + + 구매자 ID + + --- + + **`name`** **string** + + 구매자 이름 + + --- + + **`birthYear`** **string** + + 구매자 생년 + + --- + + **`gender`** **Gender** + + `"MALE"`, `"FEMALE"`, `"OTHER"` + + --- + + **`email`** **string** + + 구매자 이메일 + + --- + + **`phone_number`** **string** + + 구매자 전화번호 + + --- + + **`one_line_address`** **string** + + 구매자 주소 (한 줄) + + --- + + **`separated_address`** **SeparatedAddress** + + 구매자 주소 (단위별) + +
+

SeparatedAddress

+ + **`country`** **Country** + + 국가 코드 + + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + --- + + **`province`** **string** + + 시/도/구 + + --- + + **`city`** **string** + + 도시 + + --- + + **`address_line_1`** **\*** **string** + + 일반 주소 + + --- + + **`address_line_2`** **\*** **string** + + 상세 주소 + + --- +
+ + --- + + **`zipcode`** **string** + + 구매자 우편번호 + + --- +
+ + + **`platform_type`** **\*** **string** + + 결제를 요청한 단말의 플랫폼 분류 + + `"PC"`, `"MOBILE"`, `"API"` + + --- + + **`user_agent`** **string** + + 결제근원의 환경 정보 (Http 의 User-Agent header value) + + --- + + **`url`** **string** + + 결제근원의 페이지 url + + --- + + **`ip_address`** **\*** **string** + + 결제근원의 IP 주소 + + --- + +
+
+ + + + + **`code`** **\*** **string** + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"BILLING_KEY_NOT_FOUND"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + +
+ +## ⌨ 빌링키 삭제 + + + + + ### Parameters + + #### Path + + + 빌링키 + + + #### Query + + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + + ### Responses + + + + + **`deleted_at`** **\*** **string** + + 빌링키 삭제 시각 + + --- + + + + + + + + **`code`** **\*** **string** + + `"INVALID_REQUEST"`, `"BILLING_KEY_NOT_ISSUED"`, `"BILLING_KEY_ALREADY_DELETED"`, `"BOOKED_SCHEDULE_EXISTENCE"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"BILLING_KEY_NOT_FOUND"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + diff --git a/src/content/docs/ko/api-v2/billing_key.mdx b/src/content/docs/ko/api-v2/billing_key.mdx deleted file mode 100644 index 8a5fb64f3..000000000 --- a/src/content/docs/ko/api-v2/billing_key.mdx +++ /dev/null @@ -1,1571 +0,0 @@ ---- -title: 빌링키 관련 API -description: 빌링키에 관련된 API 를 확인할 수 있습니다. ---- - -import Details from "~/components/gitbook/Details.astro"; -import Swagger from "~/components/gitbook/swagger/Swagger.astro"; -import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; -import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; -import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; - -## ⌨ 빌링키 다건 조회 - - - - - - -### Parameters - -#### Query - - -빌링키 - - - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. - - - -### Responses - - - - -**`billing_keys`** **\*** **Array\[BillingKey]** - -빌링키 정보 - -
-

BillingKey

- -**`billing_key`** **\*** **string** - -빌링키 - ---- - -**`merchant_id`** **\*** **string** - -고객사 ID - ---- - -**`store_id`** **\*** **string** - -하위 상점 ID - ---- - -**`channel`** **\*** **Channel** - -결제 채널 정보 - ---- - -**`origin`** **Origin** - -결제를 요청한 근원에 대한 정보 - ---- - -**`customer`** **\*** **Customer** - -구매자 정보 - ---- - -**`issued_at`** **string** - -발급 일시 (`status`가 `ISSUED`인 경우 제공) - ---- - -**`custom_data`** **string** - -커스텀 데이터 - ---- - -**`issue_id`** **string** - -고객사가 채번 하는 빌링키 발급 건 고유 ID - ---- - -**`issue_name`** **string** - -빌링키 발급 건 이름 - ---- - -**`payment_method_detail`** **\*** **BillingKeyPaymentMethod** - -빌링키 결제수단 상세정보 - ---- - -
- ---- - -
- - -**`card`** **object** - -카드 정보 - -
-

card

- -**`detail`** **CardDetail** - -카드 정보 - ---- - -**`number`** **string** - -마스킹된 카드 번호 - ---- - -
- ---- - -**`mobile`** **Mobile** - -모바일결제 정보 - -
-

Mobile

- -**`carrier`** **Carrier** - -통신사 - -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` - ---- - -**`phone_number`** **string** - -휴대전화번호 - ---- - -
- ---- - -**`easy_pay`** **object** - -간편결제 정보 - -
-

easy_pay

- -**`provider`** **EasyPayProvider** - -간편결제 PG사 - -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` - ---- - -
- ---- - -
- - -**`publisher`** **string** - -발행사 코드 - ---- - -**`issuer`** **string** - -발급사 코드 - ---- - -**`brand`** **CardBrand** - -카드 브랜드 - -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` - ---- - -**`card_type`** **CardType** - -카드 종류 - -`"CREDIT"`, `"DEBIT"`, `"GIFT"` - ---- - -**`card_owner_type`** **CardOwnerType** - -카드 소유주 유형 - -`"PERSONAL"`, `"CORPORATE"` - ---- - -**`bin`** **string** - -카드 빈넘버 - ---- - -**`name`** **string** - -카드전표인자명 - ---- - - - - -**`id`** **string** - -채널 ID - ---- - -**`name`** **string** - -채널 이름 - ---- - -**`key`** **string** - -채널 키 - ---- - -**`type`** **\*** **ChannelType** - -채널 유형 - -`"LIVE"`, `"TEST"` - ---- - -**`pg_provider`** **\*** **PgProvider** - -결제대행사(PG사) - -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` - ---- - -**`pg_merchant_id`** **\*** **string** - -PG사에 등록된 고객사 ID - ---- - - -
- - - -**`id`** **string** - -구매자 ID - ---- - -**`name`** **string** - -구매자 이름 - ---- - -**`birthYear`** **string** - -구매자 생년 - ---- - -**`gender`** **Gender** - -`"MALE"`, `"FEMALE"`, `"OTHER"` - ---- - -**`email`** **string** - -구매자 이메일 - ---- - -**`phone_number`** **string** - -구매자 전화번호 - ---- - -**`one_line_address`** **string** - -구매자 주소 (한 줄) - ---- - -**`separated_address`** **SeparatedAddress** - -구매자 주소 (단위별) - -
-

SeparatedAddress

- -**`country`** **Country** - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - -**`province`** **string** - -시/도/구 - ---- - -**`city`** **string** - -도시 - ---- - -**`address_line_1`** **\*** **string** - -일반 주소 - ---- - -**`address_line_2`** **\*** **string** - -상세 주소 - ---- - -
- ---- - -**`zipcode`** **string** - -구매자 우편번호 - ---- - -
- - -**`platform_type`** **\*** **string** - -결제를 요청한 단말의 플랫폼 분류 - -`"PC"`, `"MOBILE"`, `"API"` - ---- - -**`user_agent`** **string** - -결제근원의 환경 정보 (Http 의 User-Agent header value) - ---- - -**`url`** **string** - -결제근원의 페이지 url - ---- - -**`ip_address`** **\*** **string** - -결제근원의 IP 주소 - ---- - - -
- -
- - - - -**`code`** **\*** **string** - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - -
- -## ⌨ 빌링키 발급 - - - - - - -### Parameters - -#### Body - - -하위 상점 ID - - - -고객 정보 - - - - - - -결제 채널 키 - - - -가능한 결제 수단: 카드, 휴대폰 소액 결제 선택한 결제 수단에 따라 - -`card` - -와 - -`mobile_phone` - -중 하나에만 값이 들어있어야 합니다. - - - -### Responses - - - - -**`billing_key`** **\*** **string** - ---- - -**`customer_id`** **\*** **string** - ---- - -**`requested_at`** **\*** **string** - ---- - -**`issued_at`** **\*** **string** - ---- - - - - - - - - - -**`code`** **\*** **string** - -`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ - -`"INVALID_REQUEST"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ - -`"PERMISSION_DENIED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ -`CHANNEL_NOT_FOUND`: 결제 채널을 찾을 수 없습니다.\ - -`"STORE_NOT_FOUND"`, `"CHANNEL_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - - -**`address_line_1`** **\*** **string** - -주소1 - ---- - -**`address_line_2`** **\*** **string** - -주소2 - ---- - -**`city`** **string** - -도시 - ---- - -**`province`** **string** - -주, 도, 시 - ---- - -**`country`** **Country** - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - - - - -**`card_number`** **\*** **string** - ---- - -**`expiry_month`** **\*** **string** - ---- - -**`expiry_year`** **\*** **string** - ---- - -**`birth_or_business_registration_number`** **\*** **string** - ---- - -**`password_two_digits`** **\*** **string** - ---- - - - - -휴대폰 통신사 - -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` - - - - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - - - - - - -**`customer_id`** **string** - -고객사의 고객 고유 ID - 값을 넣지 않으면 PortOne에서 자체 채번합니다. - ---- - -**`phone_number`** **string** - -휴대폰 번호 - ---- - -**`customer_name`** **CustomerName** - -고객 이름 정보. full_name만 채워져 있거나, first_name & last_name이 채워져 있어야 함 - -
-

CustomerName

- -**`full_name`** **string** - ---- - -**`first_name`** **string** - ---- - -**`last_name`** **string** - ---- - -
- ---- - -**`email`** **string** - -고객 이메일 - ---- - -**`zipcode`** **string** - -우편번호 - ---- - -**`address`** **Address** - -주소 형식 - -
-

Address

- -**`address_line_1`** **\*** **string** - -주소1 - ---- - -**`address_line_2`** **\*** **string** - -주소2 - ---- - -**`city`** **string** - -도시 - ---- - -**`province`** **string** - -주, 도, 시 - ---- - -**`country`** **Country** - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - -
- ---- - -**`gender`** **Gender** - -성별 - -`"MALE"`, `"FEMALE"`, `"OTHER"` - ---- - -**`birth_year`** **string** - -출생연도 - ---- - -**`birth_month`** **string** - -출생월 - ---- - -**`birth_day`** **string** - -출생일 - ---- - -**`country`** **Country** - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - -
- - -**`full_name`** **string** - ---- - -**`first_name`** **string** - ---- - -**`last_name`** **string** - ---- - - - - -성별 - -`"MALE"`, `"FEMALE"`, `"OTHER"` - - - - -**`card_credential`** **\*** **CardCredential** - -카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 - -
-

CardCredential

- -**`card_number`** **\*** **string** - ---- - -**`expiry_month`** **\*** **string** - ---- - -**`expiry_year`** **\*** **string** - ---- - -**`birth_or_business_registration_number`** **\*** **string** - ---- - -**`password_two_digits`** **\*** **string** - ---- - -
- ---- - -**`cvc`** **string** - ---- - -**`vbv`** **VBV** - -3DS 인증 결과를 담는 객체 (Verified by Visa) - -
-

VBV

- -**`cavv`** **\*** **string** - ---- - -**`xid`** **\*** **string** - ---- - -**`eci`** **\*** **string** - ---- - -
- ---- - -
-
- - - -**`card`** **InstantBillingKeyCardForm** - -빌링키 발급 시에 필요한 카드 관련 정보 - -
-

InstantBillingKeyCardForm

- -**`card_credential`** **\*** **CardCredential** - -카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 - ---- - -**`cvc`** **string** - ---- - -**`vbv`** **VBV** - -3DS 인증 결과를 담는 객체 (Verified by Visa) - ---- - -
- ---- - -**`mobile_phone`** **MobileForm** - -휴대폰을 이용한 소액결제와 정기결제를 위한 빌링키 발급 시에 사용하는 휴대폰 관련 정보 - -
-

MobileForm

- -**`carrier`** **Carrier** - -휴대폰 통신사 - -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` - ---- - -
- ---- - -
- - -**`carrier`** **Carrier** - -휴대폰 통신사 - -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` - ---- - - - - -**`cavv`** **\*** **string** - ---- - -**`xid`** **\*** **string** - ---- - -**`eci`** **\*** **string** - ---- - - -
- -## ⌨ 빌링키 단건 조회 - - - - - - -### Parameters - -#### Path - - -빌링키 - - - -#### Query - - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. - - - -### Responses - - - - -**`billing_key`** **\*** **BillingKey** - -빌링키 정보 - -
-

BillingKey

- -**`billing_key`** **\*** **string** - -빌링키 - ---- - -**`merchant_id`** **\*** **string** - -고객사 ID - ---- - -**`store_id`** **\*** **string** - -하위 상점 ID - ---- - -**`channel`** **\*** **Channel** - -결제 채널 정보 - ---- - -**`origin`** **Origin** - -결제를 요청한 근원에 대한 정보 - ---- - -**`customer`** **\*** **Customer** - -구매자 정보 - ---- - -**`issued_at`** **string** - -발급 일시 (`status`가 `ISSUED`인 경우 제공) - ---- - -**`custom_data`** **string** - -커스텀 데이터 - ---- - -**`issue_id`** **string** - -고객사가 채번 하는 빌링키 발급 건 고유 ID - ---- - -**`issue_name`** **string** - -빌링키 발급 건 이름 - ---- - -**`payment_method_detail`** **\*** **BillingKeyPaymentMethod** - -빌링키 결제수단 상세정보 - ---- - -
- ---- - -
- - -**`card`** **object** - -카드 정보 - -
-

card

- -**`detail`** **CardDetail** - -카드 정보 - ---- - -**`number`** **string** - -마스킹된 카드 번호 - ---- - -
- ---- - -**`mobile`** **Mobile** - -모바일결제 정보 - -
-

Mobile

- -**`carrier`** **Carrier** - -통신사 - -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` - ---- - -**`phone_number`** **string** - -휴대전화번호 - ---- - -
- ---- - -**`easy_pay`** **object** - -간편결제 정보 - -
-

easy_pay

- -**`provider`** **EasyPayProvider** - -간편결제 PG사 - -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` - ---- - -
- ---- - -
- - -**`publisher`** **string** - -발행사 코드 - ---- - -**`issuer`** **string** - -발급사 코드 - ---- - -**`brand`** **CardBrand** - -카드 브랜드 - -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` - ---- - -**`card_type`** **CardType** - -카드 종류 - -`"CREDIT"`, `"DEBIT"`, `"GIFT"` - ---- - -**`card_owner_type`** **CardOwnerType** - -카드 소유주 유형 - -`"PERSONAL"`, `"CORPORATE"` - ---- - -**`bin`** **string** - -카드 빈넘버 - ---- - -**`name`** **string** - -카드전표인자명 - ---- - - - - -**`id`** **string** - -채널 ID - ---- - -**`name`** **string** - -채널 이름 - ---- - -**`key`** **string** - -채널 키 - ---- - -**`type`** **\*** **ChannelType** - -채널 유형 - -`"LIVE"`, `"TEST"` - ---- - -**`pg_provider`** **\*** **pg_provider_PgProvider-2** - -결제대행사(PG사) - -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` - ---- - -**`pg_merchant_id`** **\*** **string** - -PG사에 등록된 고객사 ID - ---- - - -
- - - -**`id`** **string** - -구매자 ID - ---- - -**`name`** **string** - -구매자 이름 - ---- - -**`birthYear`** **string** - -구매자 생년 - ---- - -**`gender`** **Gender** - -`"MALE"`, `"FEMALE"`, `"OTHER"` - ---- - -**`email`** **string** - -구매자 이메일 - ---- - -**`phone_number`** **string** - -구매자 전화번호 - ---- - -**`one_line_address`** **string** - -구매자 주소 (한 줄) - ---- - -**`separated_address`** **SeparatedAddress** - -구매자 주소 (단위별) - -
-

SeparatedAddress

- -**`country`** **Country** - -국가 코드 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - -**`province`** **string** - -시/도/구 - ---- - -**`city`** **string** - -도시 - ---- - -**`address_line_1`** **\*** **string** - -일반 주소 - ---- - -**`address_line_2`** **\*** **string** - -상세 주소 - ---- - -
- ---- - -**`zipcode`** **string** - -구매자 우편번호 - ---- - -
- - -**`platform_type`** **\*** **string** - -결제를 요청한 단말의 플랫폼 분류 - -`"PC"`, `"MOBILE"`, `"API"` - ---- - -**`user_agent`** **string** - -결제근원의 환경 정보 (Http 의 User-Agent header value) - ---- - -**`url`** **string** - -결제근원의 페이지 url - ---- - -**`ip_address`** **\*** **string** - -결제근원의 IP 주소 - ---- - - -
- -
- - - - -**`code`** **\*** **string** - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"BILLING_KEY_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - -
- -## ⌨ 빌링키 삭제 - - - - - - -### Parameters - -#### Path - - -빌링키 - - - -#### Query - - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. - - - -### Responses - - - - -**`deleted_at`** **\*** **string** - -빌링키 삭제 시각 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"INVALID_REQUEST"`, `"BILLING_KEY_NOT_ISSUED"`, `"BILLING_KEY_ALREADY_DELETED"`, `"BOOKED_SCHEDULE_EXISTENCE"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"BILLING_KEY_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - diff --git a/src/content/docs/ko/api-v2/cash-receipt.mdx b/src/content/docs/ko/api-v2/cash-receipt.mdx new file mode 100644 index 000000000..a65578d2c --- /dev/null +++ b/src/content/docs/ko/api-v2/cash-receipt.mdx @@ -0,0 +1,556 @@ +--- +title: 현금영수증 관련 API +description: 현금영수증에 관련된 API 를 확인할 수 있습니다. +--- + +import Details from "~/components/gitbook/Details.astro"; +import Swagger from "~/components/gitbook/swagger/Swagger.astro"; +import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; +import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; +import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; +import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; + +## ⌨ 현금영수증 조회 + + + + + ### Parameters + + #### Path + + + 결제 ID + + + #### Query + + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + + ### Responses + + + + + **`receipt`** **\*** **object** + + 현금영수증 정보 + +
+

CashReceiptDetail

+ + **`pg_receipt_id`** **string** + + PG사 현금영수증 발급 ID + + --- + + **`issue_number`** **\*** **string** + + 현금영수증 승인번호 + + --- + + **`type`** **CashReceiptType** + + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + + --- + + **`amount`** **\*** **integer** + + 금액 + + --- + + **`tax_free_amount`** **integer** + + 면세금액 + + --- + + **`status`** **CashReceiptStatus** + + `"ISSUED"`, `"CANCELLED"` + + --- + + **`issued_at`** **\*** **string** + + 발급일시 + + --- + + **`cancelled_at`** **string** + + 취소일시 (`status`가 `CANCELLED`인 경우 제공) + + --- + + **`receipt_url`** **string** + + 영수증 url + + --- + + **`merchant_id`** **\*** **string** + + 고객사 ID + + --- + + **`store_id`** **\*** **string** + + 하위 상점 ID + + --- + + **`payment_id`** **\*** **string** + + 결제 ID + + --- + + **`order_name`** **\*** **string** + + 주문명 + + --- + + **`is_manual`** **\*** **boolean** + + 수동발급 여부 + + --- + + **`currency`** **Currency** + + 통화 + + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + + --- + + **`channel`** **Channel** + + 결제 채널 정보 + + --- +
+ + --- +
+ + + **`id`** **string** + + 채널 ID + + --- + + **`name`** **string** + + 채널 이름 + + --- + + **`key`** **string** + + 채널 키 + + --- + + **`type`** **\*** **ChannelType** + + 채널 유형 + + `"LIVE"`, `"TEST"` + + --- + + **`pg_provider`** **\*** **PgProvider** + + 결제대행사(PG사) + + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + + --- + + **`pg_merchant_id`** **\*** **string** + + PG사에 등록된 고객사 ID + + --- + +
+
+ + + + + **`code`** **\*** **string** + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PAYMENT_NOT_FOUND"`, `"CASH_RECEIPT_NOT_FOUND"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + +
+ +## ⌨ 현금영수증 발급 + + + + 결제 건에 대한 수동 현금영수증 발급 + + + ### Parameters + + #### Path + + + + #### Body + + + + + + + + + 현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 + + + + + + 화폐 + + + + + + 면세 금액 (기본값: + + `"0")` + + + + 상품 유형 + + + + 고객 성명 + + + + 고객 이메일 + + + ### Responses + + + + + **`receipt_id`** **\*** **string** + + 현금영수증 ID + + --- + + **`pg_tx_id`** **\*** **string** + + PG사 거래ID + + --- + + **`issue_number`** **\*** **string** + + --- + + **`receipt_url`** **\*** **string** + + --- + + + + + + + + **`code`** **\*** **string** + + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ + `CASH_RECEIPT_ALREADY_ISSUED`: 이미 발급된 현금영수증입니다.\\ + + `"INVALID_REQUEST"`, `"CASH_RECEIPT_ALREADY_ISSUED"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ + + `"PERMISSION_DENIED"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ + `CHANNEL_NOT_FOUND`: 결제 채널을 찾을 수 없습니다.\\ + + `"STORE_NOT_FOUND"`, `"CHANNEL_NOT_FOUND"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + + --- + + **`params`** **object** + + 에러 상세 정보를 담은 파라미터 모음 + + --- + + + + + + + + 현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 + + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + + + + 화폐 + + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + + + + 상품 유형 + + `"REAL"`, `"DIGITAL"` + + + +## ⌨ 현금영수증 발급 취소 + + + + + ### Parameters + + #### Path + + + 결제 ID + + + #### Query + + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + + ### Responses + + + + + **`cancelled_amount`** **\*** **integer** + + 현금영수증 취소 금액 + + --- + + **`cancelled_at`** **\*** **string** + + 현금영수증 취소 시각 + + --- + + + + + + + + **`code`** **\*** **string** + + `"INVALID_REQUEST"`, `"CASH_RECEIPT_NOT_ISSUED"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"UNAUTHORIZED"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PAYMENT_NOT_FOUND"`, `"CASH_RECEIPT_NOT_FOUND"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + + + + + **`code`** **\*** **string** + + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + + --- + + **`params`** **object** + + 에러 세부사항 + + --- + + + + diff --git a/src/content/docs/ko/api-v2/cash_receipt.mdx b/src/content/docs/ko/api-v2/cash_receipt.mdx deleted file mode 100644 index 321f8a28c..000000000 --- a/src/content/docs/ko/api-v2/cash_receipt.mdx +++ /dev/null @@ -1,611 +0,0 @@ ---- -title: 현금영수증 관련 API -description: 현금영수증에 관련된 API 를 확인할 수 있습니다. ---- - -import Details from "~/components/gitbook/Details.astro"; -import Swagger from "~/components/gitbook/swagger/Swagger.astro"; -import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; -import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; -import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; - -## ⌨ 현금영수증 조회 - - - - - - -### Parameters - -#### Path - - -결제 ID - - - -#### Query - - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. - - - -### Responses - - - - -**`receipt`** **\*** **object** - -현금영수증 정보 - -
-

CashReceiptDetail

- -**`pg_receipt_id`** **string** - -PG사 현금영수증 발급 ID - ---- - -**`issue_number`** **\*** **string** - -현금영수증 승인번호 - ---- - -**`type`** **CashReceiptType** - -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` - ---- - -**`amount`** **\*** **integer** - -금액 - ---- - -**`tax_free_amount`** **integer** - -면세금액 - ---- - -**`status`** **CashReceiptStatus** - -`"ISSUED"`, `"CANCELLED"` - ---- - -**`issued_at`** **\*** **string** - -발급일시 - ---- - -**`cancelled_at`** **string** - -취소일시 (`status`가 `CANCELLED`인 경우 제공) - ---- - -**`receipt_url`** **string** - -영수증 url - ---- - -**`merchant_id`** **\*** **string** - -고객사 ID - ---- - -**`store_id`** **\*** **string** - -하위 상점 ID - ---- - -**`payment_id`** **\*** **string** - -결제 ID - ---- - -**`order_name`** **\*** **string** - -주문명 - ---- - -**`is_manual`** **\*** **boolean** - -수동발급 여부 - ---- - -**`currency`** **Currency** - -통화 - -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` - ---- - -**`channel`** **Channel** - -결제 채널 정보 - ---- - -
- ---- - -
- - -**`id`** **string** - -채널 ID - ---- - -**`name`** **string** - -채널 이름 - ---- - -**`key`** **string** - -채널 키 - ---- - -**`type`** **\*** **ChannelType** - -채널 유형 - -`"LIVE"`, `"TEST"` - ---- - -**`pg_provider`** **\*** **PgProvider** - -결제대행사(PG사) - -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` - ---- - -**`pg_merchant_id`** **\*** **string** - -PG사에 등록된 고객사 ID - ---- - - -
- -
- - - - -**`code`** **\*** **string** - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PAYMENT_NOT_FOUND"`, `"CASH_RECEIPT_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - -
- -## ⌨ 현금영수증 발급 - - - -결제 건에 대한 수동 현금영수증 발급 - - - -### Parameters - -#### Path - - - - - -#### Body - - - - - - - - - - - -현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 - - - - - - -화폐 - - - - - - -면세 금액 (기본값: - -`"0")` - - - -상품 유형 - - - -고객 성명 - - - -고객 이메일 - - - -### Responses - - - - -**`receipt_id`** **\*** **string** - -현금영수증 ID - ---- - -**`pg_tx_id`** **\*** **string** - -PG사 거래ID - ---- - -**`issue_number`** **\*** **string** - ---- - -**`receipt_url`** **\*** **string** - ---- - - - - - - - - - -**`code`** **\*** **string** - -`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ -`CASH_RECEIPT_ALREADY_ISSUED`: 이미 발급된 현금영수증입니다.\ - -`"INVALID_REQUEST"`, `"CASH_RECEIPT_ALREADY_ISSUED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ - -`"PERMISSION_DENIED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ -`CHANNEL_NOT_FOUND`: 결제 채널을 찾을 수 없습니다.\ - -`"STORE_NOT_FOUND"`, `"CHANNEL_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - - -현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 - -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` - - - - -화폐 - -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` - - - - -상품 유형 - -`"REAL"`, `"DIGITAL"` - - - - -## ⌨ 현금영수증 발급 취소 - - - - - - -### Parameters - -#### Path - - -결제 ID - - - -#### Query - - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. - - - -### Responses - - - - -**`cancelled_amount`** **\*** **integer** - -현금영수증 취소 금액 - ---- - -**`cancelled_at`** **\*** **string** - -현금영수증 취소 시각 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"INVALID_REQUEST"`, `"CASH_RECEIPT_NOT_ISSUED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PAYMENT_NOT_FOUND"`, `"CASH_RECEIPT_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - - - diff --git a/src/content/docs/ko/api-v2/channel.mdx b/src/content/docs/ko/api-v2/channel.mdx index 7f31e5417..5354d4570 100644 --- a/src/content/docs/ko/api-v2/channel.mdx +++ b/src/content/docs/ko/api-v2/channel.mdx @@ -8,301 +8,277 @@ import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ 채널 불러오기 - + - + ### Parameters -### Parameters + #### Query -#### Query + + 하위상점 ID (Merchant 유저가 store\_id를 명시하지 않으면, Merchant 유저의 대표 상점 id가 입력됨) + - -하위상점 ID (Merchant 유저가 store_id를 명시하지 않으면, Merchant 유저의 대표 상점 id가 입력됨) + ### Responses - + + + + **`channels`** **Array\[Channel]** -### Responses + V2 결제를 지원하는 채널 - - - -**`channels`** **Array\[Channel]** +
+

Channel

-V2 결제를 지원하는 채널 + **`channel_id`** **\*** **string** -
-

Channel

+ 결제 채널 ID -**`channel_id`** **\*** **string** + --- -결제 채널 ID + **`channel_name`** **\*** **string** ---- + 결제 채널 이름 -**`channel_name`** **\*** **string** + --- -결제 채널 이름 + **`pg_provider`** **\*** **PgProvider** ---- + V2 결제가 가능한 PG사 -**`pg_provider`** **\*** **PgProvider** + `"TOSSPAYMENTS"`, `"KSNET"`, `"KAKAOPAY"`, `"SMARTRO_V2"`, `"NAVERPAY"`, `"DANAL"` -V2 결제가 가능한 PG사 + --- -`"TOSSPAYMENTS"`, `"KSNET"`, `"KAKAOPAY"`, `"SMARTRO_V2"`, `"NAVERPAY"`, `"DANAL"` + **`channel_type`** **\*** **ChannelType** ---- + 기본값: `"CHANNEL_TYPE_UNSPECIFIED"` -**`channel_type`** **\*** **ChannelType** + `"CHANNEL_TYPE_UNSPECIFIED"`, `"CHANNEL_TYPE_LIVE"`, `"CHANNEL_TYPE_MERCHANT_TEST"`, `"CHANNEL_TYPE_SHARED_TEST"` -기본값: `"CHANNEL_TYPE_UNSPECIFIED"` + --- -`"CHANNEL_TYPE_UNSPECIFIED"`, `"CHANNEL_TYPE_LIVE"`, `"CHANNEL_TYPE_MERCHANT_TEST"`, `"CHANNEL_TYPE_SHARED_TEST"` + **`pg_merchant_id`** **\*** **string** ---- + PG 상점 ID -**`pg_merchant_id`** **\*** **string** + --- -PG 상점 ID + **`is_for_payment`** **\*** **boolean** ---- + 결제용 채널 여부 -**`is_for_payment`** **\*** **boolean** + --- -결제용 채널 여부 + **`is_for_identification_verification`** **\*** **boolean** ---- + 본인인증용 채널 여부 -**`is_for_identification_verification`** **\*** **boolean** + --- -본인인증용 채널 여부 + **`channel_key`** **\*** **string** ---- + 채널 키 -**`channel_key`** **\*** **string** + --- -채널 키 + **`toss_payments_credential`** **TossPaymentsCredential** ---- + --- -**`toss_payments_credential`** **TossPaymentsCredential** + **`ksnet_credential`** **KsnetCredential** ---- + --- -**`ksnet_credential`** **KsnetCredential** + **`smartro_v2_credential`** **SmartroV2Credential** ---- + --- -**`smartro_v2_credential`** **SmartroV2Credential** + **`naverpay_credential`** **NaverpayCredential** ---- + --- -**`naverpay_credential`** **NaverpayCredential** + **`danal_credential`** **DanalCredential** ---- + --- +
-**`danal_credential`** **DanalCredential** + --- + ---- + + **`secret_key`** **string** -
+ --- ---- + **`client_key`** **string** -
+ --- +
- -**`secret_key`** **string** + + **`api_key`** **string** ---- + --- + -**`client_key`** **string** + + **`merchant_key`** **string** ---- + --- - + **`cancel_password`** **string** - -**`api_key`** **string** + --- ---- + **`ssp_mall_id`** **string** - + --- - -**`merchant_key`** **string** + **`api_key`** **string** ---- + --- + -**`cancel_password`** **string** + + **`client_id`** **string** ---- + --- -**`ssp_mall_id`** **string** + **`client_secret`** **string** ---- + --- -**`api_key`** **string** + **`chain_id`** **string** ---- + --- + - + + **`cp_pwd`** **string** - -**`client_id`** **string** + --- ---- + **`item_code`** **string** -**`client_secret`** **string** + --- + +
+
---- + + + + **`code`** **\*** **string** -**`chain_id`** **string** + `UNAUTHORIZED`: 인증되지 않은 요청입니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ ---- + `"UNAUTHORIZED"` - + --- - -**`cp_pwd`** **string** + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 -**`item_code`** **string** +
+

params

---- + **`message`** **string** - - + --- +
-
+ --- +
+
+
- - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -`UNAUTHORIZED`: 인증되지 않은 요청입니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ + `PERMISSION_DENIED`: 해당 하위상점에 접근할 권한이 없습니다.\\ -`"UNAUTHORIZED"` + `"PERMISSION_DENIED"` ---- + --- -**`params`** **object** + **`params`** **object** -에러 상세 정보를 담은 파라미터 모음 + 에러 상세 정보를 담은 파라미터 모음 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** ---- + --- +
-
+ --- +
+
+
---- + + + + **`code`** **\*** **string** - - + `CHANNEL_NOT_FOUND`: 채널을 찾을 수 없습니다.\\ - + `"CHANNEL_NOT_FOUND"` - - - -**`code`** **\*** **string** + --- -`PERMISSION_DENIED`: 해당 하위상점에 접근할 권한이 없습니다.\ + **`params`** **object** -`"PERMISSION_DENIED"` + 에러 상세 정보를 담은 파라미터 모음 ---- +
+

params

-**`params`** **object** + **`message`** **string** -에러 상세 정보를 담은 파라미터 모음 + --- +
-
-

params

+ --- + + + -**`message`** **string** + + + + **`code`** **\*** **string** ---- - -
- ---- - -
-
- -
- - - - -**`code`** **\*** **string** - -`CHANNEL_NOT_FOUND`: 채널을 찾을 수 없습니다.\ + `"PORTONE_ERROR"` -`"CHANNEL_NOT_FOUND"` + --- ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - -
-

params

+ **`params`** **object** -**`message`** **string** + 에러 상세 정보를 담은 파라미터 모음 ---- - -
- ---- - -
-
- -
- - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - -
-

params

- -**`message`** **string** - ---- - -
- ---- +
+

params

- - + **`message`** **string** - + --- +
+ --- +
+
+
diff --git a/src/content/docs/ko/api-v2/identity-verification.mdx b/src/content/docs/ko/api-v2/identity-verification.mdx index 54766b8b9..2875f86b3 100644 --- a/src/content/docs/ko/api-v2/identity-verification.mdx +++ b/src/content/docs/ko/api-v2/identity-verification.mdx @@ -14,1051 +14,1003 @@ import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ 본인인증 내역 단건조회 -주어진 아이디에 대응되는 본인인증 내역을 조회합니다. + 주어진 아이디에 대응되는 본인인증 내역을 조회합니다. -### Parameters + ### Parameters -#### Path + #### Path - - 본인인증 내역 아이디 - + + 본인인증 내역 아이디 + -#### Query + #### Query - - 상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 - 상점 아이디를 사용) - + + 상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 + 상점 아이디를 사용) + -### Responses + ### Responses - - - -**`status`** **\*** **string** + + + + **`status`** **\*** **string** -본인인증 상태 (`READY`, `VERIFIED`, `FAILED`) + 본인인증 상태 (`READY`, `VERIFIED`, `FAILED`) ---- + --- -**`id`** **\*** **string** + **`id`** **\*** **string** -본인인증 내역 아이디 + 본인인증 내역 아이디 ---- + --- -**`channel`** **SelectedChannel** + **`channel`** **SelectedChannel** -채널 정보 + 채널 정보 -
-

SelectedChannel

+
+

SelectedChannel

-**`type`** **\*** **string** + **`type`** **\*** **string** -채널 타입 (`LIVE`, `TEST`) + 채널 타입 (`LIVE`, `TEST`) ---- + --- -**`id`** **string** + **`id`** **string** -채널 아이디 + 채널 아이디 ---- + --- -**`key`** **string** + **`key`** **string** -채널 키 + 채널 키 ---- + --- -**`name`** **string** + **`name`** **string** -채널 명 + 채널 명 ---- + --- -**`pgProvider`** **\*** **string** + **`pgProvider`** **\*** **string** -PG사 (`DANAL`) + PG사 (`DANAL`) ---- + --- -**`pgMerchantId`** **\*** **string** + **`pgMerchantId`** **\*** **string** -PG사 고객사 식별 아이디 + PG사 고객사 식별 아이디 ---- + --- +
-
+ --- ---- + **`customData`** **string** -**`customData`** **string** + 사용자 지정 데이터 -사용자 지정 데이터 + --- ---- + **`requestedAt`** **\*** **string** -**`requestedAt`** **\*** **string** + 본인인증 요청 시각 -본인인증 요청 시각 + --- ---- + **`updatedAt`** **\*** **string** -**`updatedAt`** **\*** **string** + 업데이트 시각 -업데이트 시각 + --- ---- + **`statusChangedAt`** **\*** **string** -**`statusChangedAt`** **\*** **string** + 상태 업데이트 시각 -상태 업데이트 시각 + --- ---- + **`requestedCustomer`** **\*** **RequestedCustomer** -**`requestedCustomer`** **\*** **RequestedCustomer** + (status - `READY`, `FAILED` 일 때만 존재) -(status - `READY`, `FAILED` 일 때만 존재) + 요청 시 고객 정보 -요청 시 고객 정보 +
+

RequestedCustomer

-
-

RequestedCustomer

+ **`id`** **string** -**`id`** **string** + 식별 아이디 -식별 아이디 + --- ---- + **`name`** **string** -**`name`** **string** + 이름 -이름 + --- ---- + **`phoneNumber`** **string** -**`phoneNumber`** **string** + 핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 -핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 + --- +
---- + --- -
+ **`verifiedCustomer`** **\*** **VerifiedCustomer** ---- + (status - `VERIFIED` 일 때만 존재) -**`verifiedCustomer`** **\*** **VerifiedCustomer** + 인증된 고객 정보 -(status - `VERIFIED` 일 때만 존재) +
+

VerifiedCustomer

-인증된 고객 정보 + **`id`** **string** -
-

VerifiedCustomer

+ 식별 아이디 -**`id`** **string** + --- -식별 아이디 + **`name`** **\*** **string** ---- + 이름 -**`name`** **\*** **string** + --- -이름 + **`phoneNumber`** **string** ---- + 핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 -**`phoneNumber`** **string** + --- -핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 + **`birthDate`** **\*** **string** ---- + 생년월일 (yyyy-MM-dd) -**`birthDate`** **\*** **string** + --- -생년월일 (yyyy-MM-dd) + **`gender`** **\*** **string** ---- + 성별 -**`gender`** **\*** **string** + `MALE`, `FEMALE`, `OTHER` -성별 + --- -`MALE`, `FEMALE`, `OTHER` + **`isForeigner`** **boolean** ---- + 외국인 여부 (`true` - 외국인, `false` - 내국인) -**`isForeigner`** **boolean** + --- -외국인 여부 (`true` - 외국인, `false` - 내국인) + **`ci`** **\*** **string** ---- + 개인 고유 식별키 -**`ci`** **\*** **string** + --- -개인 고유 식별키 + **`di`** **\*** **string** ---- + 사이트별 개인 고유 식별키 -**`di`** **\*** **string** + --- +
-사이트별 개인 고유 식별키 + --- ---- + **`verifiedAt`** **\*** **string** -
+ (status - `VERIFIED` 일 때만 존재) ---- + 본인인증 완료 시각 -**`verifiedAt`** **\*** **string** + --- -(status - `VERIFIED` 일 때만 존재) + **`pgTxId`** **\*** **string** -본인인증 완료 시각 + (status - `VERIFIED` 일 때만 존재) ---- + 본인인증 건 PG사 아이디 -**`pgTxId`** **\*** **string** + --- -(status - `VERIFIED` 일 때만 존재) + **`pgRawResponse`** **\*** **string** -본인인증 건 PG사 아이디 + (status - `VERIFIED` 일 때만 존재) ---- + PG사 응답 데이터 -**`pgRawResponse`** **\*** **string** + --- +
+
+
-(status - `VERIFIED` 일 때만 존재) + + + + **`type`** **\*** **string** -PG사 응답 데이터 + 에러 타입 ---- + `INVALID_REQUEST` - - + --- - + **`message`** **string** - - - -**`type`** **\*** **string** + 에러 메시지 -에러 타입 + --- + + + -`INVALID_REQUEST` + + + + **`type`** **\*** **string** ---- + 에러 타입 -**`message`** **string** + `UNAUTHORIZED` -에러 메시지 + --- ---- + **`message`** **string** - - - + 에러 메시지 - - - -**`type`** **\*** **string** + --- + + + -에러 타입 + + + + **`type`** **\*** **string** -`UNAUTHORIZED` + 에러 타입 ---- + `FORBIDDEN` -**`message`** **string** + --- -에러 메시지 + **`message`** **string** ---- + 에러 메시지 - - - + --- +
+
+
- - - - -**`type`** **\*** **string** - -에러 타입 - -`FORBIDDEN` - ---- + + + + **`type`** **\*** **string** -**`message`** **string** + 에러 타입 -에러 메시지 + `IDENTITY_VERIFICATION_NOT_FOUND` ---- - - - - + --- - - - -**`type`** **\*** **string** - -에러 타입 + **`message`** **string** -`IDENTITY_VERIFICATION_NOT_FOUND` - ---- - -**`message`** **string** - -에러 메시지 - ---- - - - - + 에러 메시지 + --- + + +
## ⌨ 본인인증 요청 전송 - -본인인증 요청을 전송합니다. + + 본인인증 요청을 전송합니다. -SMS 방식을 이용할 경우 입력한 전화번호로 문자 메시지가 발송되며 APP 방식을 이용할 경우에는 PASS 앱으로 푸쉬 알람이 전송됩니다. + SMS 방식을 이용할 경우 입력한 전화번호로 문자 메시지가 발송되며 APP 방식을 이용할 경우에는 PASS 앱으로 푸쉬 알람이 전송됩니다. + - + ### Parameters -### Parameters + #### Path -#### Path + + 본인인증 내역 아이디 + - - 본인인증 내역 아이디 - + #### Body -#### Body + + 상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 상점 아이디를 사용) + - -상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 상점 아이디를 사용) + + 채널 키 + - - -채널 키 + + 고객 정보 + - - -고객 정보 + + 사용자 정의 데이터 + - - -사용자 정의 데이터 + + PG사 별 추가 데이터 ([특수 파라미터 안내](../../ko/v2-payment/pg/danal-identity-verification#다날-특수-파라미터-안내)) + - - -PG사 별 추가 데이터 ([특수 파라미터 안내](../../ko/v2-payment/pg/danal-identity-verification#다날-특수-파라미터-안내)) + + 통신사 - - -통신사 + `SKT`, `KT`, `LGU`, `SKT_MVNO`, `KT_MVNO`, `LGU_MVNO` + -`SKT`, `KT`, `LGU`, `SKT_MVNO`, `KT_MVNO`, `LGU_MVNO` + + 본인인증 수단 - - -본인인증 수단 + `SMS`, `APP` + -`SMS`, `APP` + ### Responses - + + + + + -### Responses + + + + **`type`** **\*** **string** - - - - - - - + 에러 타입 - - - -**`type`** **\*** **string** - -에러 타입 + `INVALID_REQUEST` -`INVALID_REQUEST` + --- ---- - -**`message`** **string** - -에러 메시지 - ---- - - - - - - - - -**`type`** **\*** **string** - -에러 타입 - -`UNAUTHORIZED` - ---- + **`message`** **string** -**`message`** **string** + 에러 메시지 -에러 메시지 + --- + + + ---- + + + + **`type`** **\*** **string** - - - + 에러 타입 - - - -**`type`** **\*** **string** + `UNAUTHORIZED` -에러 타입 + --- -`FORBIDDEN` + **`message`** **string** ---- + 에러 메시지 -**`message`** **string** + --- + + + -에러 메시지 + + + + **`type`** **\*** **string** ---- + 에러 타입 - - - + `FORBIDDEN` - - - -**`type`** **\*** **string** + --- -에러 타입 + **`message`** **string** -`CHANNEL_NOT_FOUND` + 에러 메시지 ---- + --- + + + -**`message`** **string** + + + + **`type`** **\*** **string** -에러 메시지 + 에러 타입 ---- + `CHANNEL_NOT_FOUND` - - - + --- - - - -**`type`** **\*** **string** + **`message`** **string** -에러 타입 + 에러 메시지 -`IDENTITY_VERIFICATION_ALREADY_VERIFIED`, `IDENTITY_VERIFICATION_ALREADY_SENT` + --- + + + ---- + + + + **`type`** **\*** **string** -**`message`** **string** + 에러 타입 -에러 메시지 + `IDENTITY_VERIFICATION_ALREADY_VERIFIED`, `IDENTITY_VERIFICATION_ALREADY_SENT` ---- + --- - - - + **`message`** **string** - - - -**`type`** **\*** **string** + 에러 메시지 -에러 타입 + --- + + + -`PG_PROVIDER` + + + + **`type`** **\*** **string** ---- + 에러 타입 -**`pgCode`** **\*** **string** + `PG_PROVIDER` -PG사 에러 코드 + --- ---- + **`pgCode`** **\*** **string** -**`pgMessage`** **\*** **string** + PG사 에러 코드 -PG사 에러 메시지 + --- ---- + **`pgMessage`** **\*** **string** - - - + PG사 에러 메시지 + --- + + + - -**`id`** **string** + + **`id`** **string** -식별 아이디 + 식별 아이디 ---- - -**`name`** **\*** **string** + --- -고객 성명 + **`name`** **\*** **string** ---- + 고객 성명 -**`phoneNumber`** **\*** **string** + --- -핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 + **`phoneNumber`** **\*** **string** ---- + 핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 -**`identityNumber`** **string** + --- -주민등록번호 앞 7자리 (SMS 방식의 경우 필수 입력) + **`identityNumber`** **string** ---- + 주민등록번호 앞 7자리 (SMS 방식의 경우 필수 입력) - + --- + ## ⌨ 본인인증 확인 - -요청된 본인인증에 대한 확인을 진행하여 성공한다면 인증을 완료합니다. - -SMS 방식의 경우에는 입력된 OTP가 실제 발송되었던 OTP와 일치하는지 확인하며, APP 방식의 경우 PASS 인증이 완료되었는지 여부를 검사합니다. + + 요청된 본인인증에 대한 확인을 진행하여 성공한다면 인증을 완료합니다. - + SMS 방식의 경우에는 입력된 OTP가 실제 발송되었던 OTP와 일치하는지 확인하며, APP 방식의 경우 PASS 인증이 완료되었는지 여부를 검사합니다. + -### Parameters + ### Parameters -#### Path + #### Path - - 본인인증 내역 아이디 - + + 본인인증 내역 아이디 + -#### Body + #### Body - -상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 상점 아이디를 사용) + + 상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 상점 아이디를 사용) + - - -OTP (SMS 방식일 때만 입력, APP 방식은 입력하지 않음) + + OTP (SMS 방식일 때만 입력, APP 방식은 입력하지 않음) + - + ### Responses -### Responses + + + + **`identityVerification`** **\*** **VerifiedIdentityVerification** - - - + 본인인증 완료 상태 건 -**`identityVerification`** **\*** **VerifiedIdentityVerification** +
+

VerifiedIdentityVerification

-본인인증 완료 상태 건 + **`id`** **\*** **string** -
-

VerifiedIdentityVerification

+ 본인인증 내역 아이디 -**`id`** **\*** **string** + --- -본인인증 내역 아이디 + **`channel`** **SelectedChannel** ---- + 채널 정보 -**`channel`** **SelectedChannel** +
+

Channel

-채널 정보 + **`type`** **\*** **string** -
-

Channel

+ 채널 타입 (`LIVE`, `TEST`) -**`type`** **\*** **string** + --- -채널 타입 (`LIVE`, `TEST`) + **`id`** **string** ---- + 채널 아이디 -**`id`** **string** + --- -채널 아이디 + **`key`** **string** ---- + 채널 키 -**`key`** **string** + --- -채널 키 + **`name`** **string** ---- + 채널 명 -**`name`** **string** + --- -채널 명 + **`pgProvider`** **\*** **string** ---- + PG사 (`DANAL`) -**`pgProvider`** **\*** **string** + --- -PG사 (`DANAL`) + **`pgMerchantId`** **\*** **string** ---- + PG사 고객사 식별 아이디 -**`pgMerchantId`** **\*** **string** + --- +
-PG사 고객사 식별 아이디 + --- ---- + **`customData`** **string** -
+ 사용자 지정 데이터 ---- + --- -**`customData`** **string** + **`requestedAt`** **\*** **string** -사용자 지정 데이터 + 본인인증 요청 시각 ---- + --- -**`requestedAt`** **\*** **string** + **`updatedAt`** **\*** **string** -본인인증 요청 시각 + 업데이트 시각 ---- + --- -**`updatedAt`** **\*** **string** + **`statusChangedAt`** **\*** **string** -업데이트 시각 + 상태 업데이트 시각 ---- + --- -**`statusChangedAt`** **\*** **string** + **`verifiedCustomer`** **\*** **VerifiedCustomer** -상태 업데이트 시각 + 인증된 고객 정보 ---- +
+

VerifiedCustomer

-**`verifiedCustomer`** **\*** **VerifiedCustomer** + **`id`** **string** -인증된 고객 정보 + 식별 아이디 -
-

VerifiedCustomer

+ --- -**`id`** **string** + **`name`** **\*** **string** -식별 아이디 + 이름 ---- + --- -**`name`** **\*** **string** + **`phoneNumber`** **string** -이름 + 핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 ---- + --- -**`phoneNumber`** **string** + **`birthDate`** **\*** **string** -핸드폰 번호. 특수 문자(-) 없이 숫자로만 이루어진 번호 형식 + 생년월일 (yyyy-MM-dd) ---- + --- -**`birthDate`** **\*** **string** + **`gender`** **\*** **string** -생년월일 (yyyy-MM-dd) + 성별 ---- + `MALE`, `FEMALE`, `OTHER` -**`gender`** **\*** **string** + --- -성별 + **`isForeigner`** **boolean** -`MALE`, `FEMALE`, `OTHER` + 외국인 여부 ---- + --- -**`isForeigner`** **boolean** + **`ci`** **\*** **string** -외국인 여부 + 개인 고유 식별키 ---- + --- -**`ci`** **\*** **string** + **`di`** **\*** **string** -개인 고유 식별키 + 사이트별 개인 고유 식별키 ---- + --- +
-**`di`** **\*** **string** + --- -사이트별 개인 고유 식별키 + **`verifiedAt`** **\*** **string** ---- + 본인인증 완료 시각 -
+ --- ---- + **`pgTxId`** **\*** **string** -**`verifiedAt`** **\*** **string** + 본인인증 건 PG사 아이디 -본인인증 완료 시각 + --- ---- + **`pgRawResponse`** **\*** **string** -**`pgTxId`** **\*** **string** + PG사 응답 데이터 -본인인증 건 PG사 아이디 + --- +
+ + + ---- + + + + **`type`** **\*** **string** -**`pgRawResponse`** **\*** **string** + 에러 타입 -PG사 응답 데이터 + `INVALID_REQUEST` ---- + --- -
+ **`message`** **string** -
-
+ 에러 메시지 -
+ --- +
+
+
- - - -**`type`** **\*** **string** + + + + **`type`** **\*** **string** -에러 타입 + 에러 타입 -`INVALID_REQUEST` + `UNAUTHORIZED` ---- + --- -**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- + --- + + + - - - + + + + **`type`** **\*** **string** - - - -**`type`** **\*** **string** + 에러 타입 -에러 타입 + `FORBIDDEN` -`UNAUTHORIZED` + --- ---- + **`message`** **string** -**`message`** **string** + 에러 메시지 -에러 메시지 + --- + + + ---- + + + + **`type`** **\*** **string** - - - + 에러 타입 - - - -**`type`** **\*** **string** + `IDENTITY_VERIFICATION_NOT_FOUND`, `IDENTITY_VERIFICATION_NOT_SENT` -에러 타입 + --- -`FORBIDDEN` + **`message`** **string** ---- + 에러 메시지 -**`message`** **string** + --- + + + -에러 메시지 + + + + **`type`** **\*** **string** ---- + 에러 타입 - - - + `IDENTITY_VERIFICATION_ALREADY_VERIFIED` - - - -**`type`** **\*** **string** + --- -에러 타입 + **`message`** **string** -`IDENTITY_VERIFICATION_NOT_FOUND`, `IDENTITY_VERIFICATION_NOT_SENT` + 에러 메시지 ---- - -**`message`** **string** - -에러 메시지 - ---- - - - - + --- + + + - - - -**`type`** **\*** **string** + + + + **`type`** **\*** **string** -에러 타입 + 에러 타입 -`IDENTITY_VERIFICATION_ALREADY_VERIFIED` + `PG_PROVIDER` ---- + --- -**`message`** **string** + **`pgCode`** **\*** **string** -에러 메시지 + PG사 에러 코드 ---- + --- - - - + **`pgMessage`** **\*** **string** - - - -**`type`** **\*** **string** - -에러 타입 - -`PG_PROVIDER` - ---- - -**`pgCode`** **\*** **string** - -PG사 에러 코드 - ---- - -**`pgMessage`** **\*** **string** - -PG사 에러 메시지 - ---- - - - - + PG사 에러 메시지 + --- + + +
## ⌨ 본인인증 요청 재전송 (SMS) - -본인인증 요청을 재전송합니다. - -SMS 방식일 때에만 사용 가능하며, 기존 OTP가 만료되고 새로운 OTP가 전송됩니다. - - - -### Parameters - -#### Path - - - 본인인증 내역 아이디 - - -#### Query - - - 상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 - 상점 아이디를 사용) - - -### Responses - - - - - - + + 본인인증 요청을 재전송합니다. - + SMS 방식일 때에만 사용 가능하며, 기존 OTP가 만료되고 새로운 OTP가 전송됩니다. + - - - -**`type`** **\*** **string** + ### Parameters -에러 타입 + #### Path -`INVALID_REQUEST` + + 본인인증 내역 아이디 + ---- + #### Query -**`message`** **string** + + 상점 아이디 (접근 권한이 있는 상점 아이디 입력 가능, 미 입력시 토큰에 담긴 + 상점 아이디를 사용) + -에러 메시지 + ### Responses ---- + + + + + - - - + + + + **`type`** **\*** **string** - - - -**`type`** **\*** **string** + 에러 타입 -에러 타입 + `INVALID_REQUEST` -`UNAUTHORIZED` + --- ---- + **`message`** **string** -**`message`** **string** + 에러 메시지 -에러 메시지 + --- + + + ---- + + + + **`type`** **\*** **string** - - - + 에러 타입 - - - -**`type`** **\*** **string** + `UNAUTHORIZED` -에러 타입 + --- -`FORBIDDEN` + **`message`** **string** ---- + 에러 메시지 -**`message`** **string** + --- + + + -에러 메시지 + + + + **`type`** **\*** **string** ---- + 에러 타입 - - - + `FORBIDDEN` - - - -**`type`** **\*** **string** + --- -에러 타입 + **`message`** **string** -`IDENTITY_VERIFICATION_NOT_FOUND`, `IDENTITY_VERIFICATION_NOT_SENT` + 에러 메시지 ---- + --- + + + -**`message`** **string** + + + + **`type`** **\*** **string** -에러 메시지 + 에러 타입 ---- + `IDENTITY_VERIFICATION_NOT_FOUND`, `IDENTITY_VERIFICATION_NOT_SENT` - - - + --- - - - -**`type`** **\*** **string** + **`message`** **string** -에러 타입 + 에러 메시지 -`IDENTITY_VERIFICATION_ALREADY_VERIFIED` + --- + + + ---- + + + + **`type`** **\*** **string** -**`message`** **string** + 에러 타입 -에러 메시지 + `IDENTITY_VERIFICATION_ALREADY_VERIFIED` ---- + --- - - - + **`message`** **string** - - - -**`type`** **\*** **string** + 에러 메시지 -에러 타입 + --- + + + -`PG_PROVIDER` + + + + **`type`** **\*** **string** ---- + 에러 타입 -**`pgCode`** **\*** **string** + `PG_PROVIDER` -PG사 에러 코드 + --- ---- + **`pgCode`** **\*** **string** -**`pgMessage`** **\*** **string** + PG사 에러 코드 -PG사 에러 메시지 + --- ---- + **`pgMessage`** **\*** **string** - - - + PG사 에러 메시지 + --- + + + diff --git a/src/content/docs/ko/api-v2/payment.mdx b/src/content/docs/ko/api-v2/payment.mdx index c09d12d76..44b79200d 100644 --- a/src/content/docs/ko/api-v2/payment.mdx +++ b/src/content/docs/ko/api-v2/payment.mdx @@ -8,10512 +8,10111 @@ import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ 결제내역 단건조회 - -결제가 발생한 이후 즉시 조회가 가능한 API입니다. + + 결제가 발생한 이후 즉시 조회가 가능한 API입니다. + - + ### Parameters -### Parameters + #### Path -#### Path + + 결제 ID + - -결제 ID + #### Query - + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + -#### Query + ### Responses - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + + + **`payment`** **\*** **Payment** - + 결제내역 -### Responses +
+

Payment

- - - -**`payment`** **\*** **Payment** + **`id`** **\*** **string** -결제내역 + 고객사에서 입력한 결제 ID -
-

Payment

+ --- -**`id`** **\*** **string** + **`merchant_id`** **\*** **string** -고객사에서 입력한 결제 ID + 고객사 ID ---- + --- -**`merchant_id`** **\*** **string** + **`store_id`** **\*** **string** -고객사 ID + 하위 상점 ID ---- + --- -**`store_id`** **\*** **string** + **`transactions`** **\*** **Array\[Transaction]** -하위 상점 ID + 동일한 `payment_id`로 결제시도된 결제내역들 ---- + --- +
-**`transactions`** **\*** **Array\[Transaction]** + --- +
-동일한 `payment_id`로 결제시도된 결제내역들 + + **`detail`** **CardDetail** ---- + 카드 정보 -
+
+

CardDetail

---- + **`publisher`** **string** - + 발행사 코드 - -**`detail`** **CardDetail** + --- -카드 정보 + **`issuer`** **string** -
-

CardDetail

+ 발급사 코드 -**`publisher`** **string** + --- -발행사 코드 + **`brand`** **CardBrand** ---- + 카드 브랜드 -**`issuer`** **string** + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -발급사 코드 + --- ---- + **`card_type`** **CardType** -**`brand`** **CardBrand** + 카드 종류 -카드 브랜드 + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + --- ---- + **`card_owner_type`** **CardOwnerType** -**`card_type`** **CardType** + 카드 소유주 유형 -카드 종류 + `"PERSONAL"`, `"CORPORATE"` -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + --- ---- + **`bin`** **string** -**`card_owner_type`** **CardOwnerType** + 카드 빈넘버 -카드 소유주 유형 + --- -`"PERSONAL"`, `"CORPORATE"` + **`name`** **string** ---- + 카드전표인자명 -**`bin`** **string** + --- +
-카드 빈넘버 + --- ---- + **`number`** **string** -**`name`** **string** + 마스킹된 카드 번호 -카드전표인자명 + --- ---- + **`approval_number`** **string** -
+ 승인 번호 ---- + --- -**`number`** **string** + **`installment`** **Installment** -마스킹된 카드 번호 + 할부 정보 ---- +
+

Installment

-**`approval_number`** **string** + **`month`** **\*** **integer** -승인 번호 + 할부 개월 수 ---- + --- -**`installment`** **Installment** + **`is_interest_free`** **\*** **boolean** -할부 정보 + 무이자할부 여부 -
-

Installment

+ --- +
-**`month`** **\*** **integer** + --- -할부 개월 수 + **`card_point_used`** **boolean** ---- + 카드 포인트 사용여부 -**`is_interest_free`** **\*** **boolean** + --- + -무이자할부 여부 + + **`publisher`** **string** ---- + 발행사 코드 -
+ --- ---- + **`issuer`** **string** -**`card_point_used`** **boolean** + 발급사 코드 -카드 포인트 사용여부 + --- ---- + **`brand`** **CardBrand** - + 카드 브랜드 - -**`publisher`** **string** + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -발행사 코드 + --- ---- + **`card_type`** **CardType** -**`issuer`** **string** + 카드 종류 -발급사 코드 + `"CREDIT"`, `"DEBIT"`, `"GIFT"` ---- + --- -**`brand`** **CardBrand** + **`card_owner_type`** **CardOwnerType** -카드 브랜드 + 카드 소유주 유형 -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + `"PERSONAL"`, `"CORPORATE"` ---- + --- -**`card_type`** **CardType** + **`bin`** **string** -카드 종류 + 카드 빈넘버 -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + --- ---- + **`name`** **string** -**`card_owner_type`** **CardOwnerType** + 카드전표인자명 -카드 소유주 유형 + --- + -`"PERSONAL"`, `"CORPORATE"` + + **`easy_pay_provider`** **\*** **EasyPayProvider** ---- + 간편결제 PG사 -**`bin`** **string** + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` -카드 빈넘버 + --- ---- + **`card`** **Card** -**`name`** **string** + 카드 결제 정보 -카드전표인자명 +
+

Card

---- + **`detail`** **CardDetail** - + 카드 정보 - -**`easy_pay_provider`** **\*** **EasyPayProvider** + --- -간편결제 PG사 + **`number`** **string** -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + 마스킹된 카드 번호 ---- + --- -**`card`** **Card** + **`approval_number`** **string** -카드 결제 정보 + 승인 번호 -
-

Card

+ --- -**`detail`** **CardDetail** + **`installment`** **Installment** -카드 정보 + 할부 정보 ---- + --- -**`number`** **string** + **`card_point_used`** **boolean** -마스킹된 카드 번호 + 카드 포인트 사용여부 ---- + --- +
-**`approval_number`** **string** + --- -승인 번호 + **`charge`** **Charge** ---- + 충전식 포인트 결제 정보 -**`installment`** **Installment** +
+

Charge

-할부 정보 + **`bank_code`** **string** ---- + 표준 은행 코드 (계좌 이체시 입력됨) -**`card_point_used`** **boolean** + --- +
-카드 포인트 사용여부 + --- ---- + **`transfer`** **Transfer** -
+ 계좌이체 정보 ---- +
+

Transfer

-**`charge`** **Charge** + **`bank_code`** **string** -충전식 포인트 결제 정보 + 표준 은행 코드 -
-

Charge

+ --- +
-**`bank_code`** **string** + --- + + -표준 은행 코드 (계좌 이체시 입력됨) + + + **`type`** **GiftCertificateType** ---- + `"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` -
+ --- ---- + **`approval_number`** **\*** **string** -**`transfer`** **Transfer** + 상품권 승인번호 -계좌이체 정보 + --- +
-
-

Transfer

+ + **`month`** **\*** **integer** -**`bank_code`** **string** + 할부 개월 수 -표준 은행 코드 + --- ---- + **`is_interest_free`** **\*** **boolean** -
+ 무이자할부 여부 ---- + --- + - - + + **`carrier`** **Carrier** - - -**`type`** **GiftCertificateType** + 통신사 -`"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` ---- + --- -**`approval_number`** **\*** **string** + **`phone_number`** **string** -상품권 승인번호 + 휴대전화번호 ---- + --- + - + + **`country`** **Country** - -**`month`** **\*** **integer** + 국가 코드 -할부 개월 수 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- -**`is_interest_free`** **\*** **boolean** + **`province`** **string** -무이자할부 여부 + 시/도/구 ---- + --- - + **`city`** **string** - -**`carrier`** **Carrier** + 도시 -통신사 + --- -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + **`address_line_1`** **\*** **string** ---- + 일반 주소 -**`phone_number`** **string** + --- -휴대전화번호 + **`address_line_2`** **\*** **string** ---- + 상세 주소 - + --- + + - -**`country`** **Country** + + + **`id`** **\*** **string** -국가 코드 + 포트원 채번 거래번호 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- ---- + **`is_primary`** **\*** **boolean** -**`province`** **string** + 대표 트랜잭션 여부 -시/도/구 + --- ---- + **`version`** **\*** **Version** -**`city`** **string** + 포트원 내부 결제시스템 버전 -도시 + `"V1"`, `"V2"` ---- + --- -**`address_line_1`** **\*** **string** + **`method`** **PaymentMethod** -일반 주소 + 결제수단 목록 ---- + `"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` -**`address_line_2`** **\*** **string** + --- -상세 주소 + **`channel`** **Channel** ---- + 결제 채널 정보 - - +
+

Channel

- - -**`id`** **\*** **string** + **`id`** **string** -포트원 채번 거래번호 + 채널 ID ---- + --- -**`is_primary`** **\*** **boolean** + **`name`** **string** -대표 트랜잭션 여부 + 채널 이름 ---- + --- -**`version`** **\*** **Version** + **`key`** **string** -포트원 내부 결제시스템 버전 + 채널 키 -`"V1"`, `"V2"` + --- ---- + **`type`** **\*** **ChannelType** -**`method`** **PaymentMethod** + 채널 유형 -결제수단 목록 + `"LIVE"`, `"TEST"` -`"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` + --- ---- + **`pg_provider`** **\*** **PgProvider** -**`channel`** **Channel** + 결제대행사(PG사) -결제 채널 정보 + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` -
-

Channel

+ --- -**`id`** **string** + **`pg_merchant_id`** **\*** **string** -채널 ID + PG사에 등록된 고객사 ID ---- + --- +
-**`name`** **string** + --- -채널 이름 + **`schedule_id`** **string** ---- + 예약결제 ID - 예약결제에만 해당됩니다. -**`key`** **string** + --- -채널 키 + **`billing_key`** **string** ---- + 결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. -**`type`** **\*** **ChannelType** + --- -채널 유형 + **`notifications`** **Array\[notification\_Notification]** -`"LIVE"`, `"TEST"` + 웹훅 발송 내역 ---- +
+

notification\_Notification

-**`pg_provider`** **\*** **PgProvider** + **`webhook`** **Webhook** -결제대행사(PG사) + 웹훅 정보 -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + --- +
---- + --- -**`pg_merchant_id`** **\*** **string** + **`status_updated_at`** **string** -PG사에 등록된 고객사 ID + 상태변경시각 ---- + --- -
+ **`updated_at`** **\*** **string** ---- + 수정 시각 -**`schedule_id`** **string** + --- -예약결제 ID - 예약결제에만 해당됩니다. + **`order_name`** **\*** **string** ---- + 주문명 -**`billing_key`** **string** + --- -결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. + **`status`** **\*** **TransactionStatus** ---- + 결제 건의 상태를 나타내는 enum string -**`notifications`** **Array\[notification_Notification]** + `"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` -웹훅 발송 내역 + --- -
-

notification_Notification

+ **`amount`** **\*** **TransactionAmount** -**`webhook`** **Webhook** + 결제 금액 및 통화 관련 세부 정보 -웹훅 정보 +
+

TransactionAmount

---- + **`currency`** **\*** **Currency** -
+ 통화 ---- + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -**`status_updated_at`** **string** + --- -상태변경시각 + **`total`** **\*** **integer** ---- + 결제 요청 금액 -**`updated_at`** **\*** **string** + --- -수정 시각 + **`tax_free`** **\*** **integer** ---- + 면세금액 -**`order_name`** **\*** **string** + --- -주문명 + **`vat`** **integer** ---- + 부가세 -**`status`** **\*** **TransactionStatus** + --- -결제 건의 상태를 나타내는 enum string + **`supply`** **integer** -`"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` + 공급가액 ---- + --- -**`amount`** **\*** **TransactionAmount** + **`discount`** **\*** **integer** -결제 금액 및 통화 관련 세부 정보 + 할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) -
-

TransactionAmount

+ --- -**`currency`** **\*** **Currency** + **`paid`** **\*** **integer** -통화 + 실제 결제 금액 -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + --- ---- + **`cancelled`** **\*** **integer** -**`total`** **\*** **integer** + 취소 금액 -결제 요청 금액 + --- ---- + **`cancelled_tax_free`** **\*** **integer** -**`tax_free`** **\*** **integer** + 취소 금액 중 면세 금액 -면세금액 + --- +
---- + --- -**`vat`** **integer** + **`customer`** **\*** **Customer** -부가세 + 구매자 정보 ---- +
+

Customer

-**`supply`** **integer** + **`id`** **string** -공급가액 + 구매자 ID ---- + --- -**`discount`** **\*** **integer** + **`name`** **string** -할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) + 구매자 이름 ---- + --- -**`paid`** **\*** **integer** + **`birthYear`** **string** -실제 결제 금액 + 구매자 생년 ---- + --- -**`cancelled`** **\*** **integer** + **`gender`** **Gender** -취소 금액 + `"MALE"`, `"FEMALE"`, `"OTHER"` ---- + --- -**`cancelled_tax_free`** **\*** **integer** + **`email`** **string** -취소 금액 중 면세 금액 + 구매자 이메일 ---- + --- -
+ **`phone_number`** **string** ---- + 구매자 전화번호 -**`customer`** **\*** **Customer** + --- -구매자 정보 + **`one_line_address`** **string** -
-

Customer

+ 구매자 주소 (한 줄) -**`id`** **string** + --- -구매자 ID + **`separated_address`** **SeparatedAddress** ---- + 구매자 주소 (단위별) -**`name`** **string** + --- -구매자 이름 + **`zipcode`** **string** ---- + 구매자 우편번호 -**`birthYear`** **string** + --- +
-구매자 생년 + --- ---- + **`origin`** **\*** **Origin** -**`gender`** **Gender** + 결제를 요청한 근원에 대한 정보 -`"MALE"`, `"FEMALE"`, `"OTHER"` +
+

Origin

---- + **`platform_type`** **\*** **string** -**`email`** **string** + 결제를 요청한 단말의 플랫폼 분류 -구매자 이메일 + `"PC"`, `"MOBILE"`, `"API"` ---- + --- -**`phone_number`** **string** + **`user_agent`** **string** -구매자 전화번호 + 결제근원의 환경 정보 (Http 의 User-Agent header value) ---- + --- -**`one_line_address`** **string** + **`url`** **string** -구매자 주소 (한 줄) + 결제근원의 페이지 url ---- + --- -**`separated_address`** **SeparatedAddress** + **`ip_address`** **\*** **string** -구매자 주소 (단위별) + 결제근원의 IP 주소 ---- + --- +
-**`zipcode`** **string** + --- -구매자 우편번호 + **`is_cultural_expense`** **boolean** ---- + 문화비 지출 여부 -
+ --- ---- + **`is_escrow`** **\*** **boolean** -**`origin`** **\*** **Origin** + 에스크로 여부 -결제를 요청한 근원에 대한 정보 + --- -
-

Origin

+ **`escrow_detail`** **EscrowDetail** -**`platform_type`** **\*** **string** + 에스크로 결제 정보 -결제를 요청한 단말의 플랫폼 분류 +
+

EscrowDetail

-`"PC"`, `"MOBILE"`, `"API"` + **`company`** **\*** **string** ---- + 택배사 -**`user_agent`** **string** + --- -결제근원의 환경 정보 (Http 의 User-Agent header value) + **`invoice_number`** **\*** **string** ---- + 송장번호 -**`url`** **string** + --- -결제근원의 페이지 url + **`status`** **EscrowStatus** ---- + 에스크로 상태 -**`ip_address`** **\*** **string** + `"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` -결제근원의 IP 주소 + --- ---- + **`sent_at`** **string** -
+ 발송 일시 (배송이 발송되었을 경우 제공) ---- + --- -**`is_cultural_expense`** **boolean** + **`applied_at`** **string** -문화비 지출 여부 + 배송등록 처리 일자 ---- + --- +
-**`is_escrow`** **\*** **boolean** + --- -에스크로 여부 + **`products`** **Array\[Product]** ---- + 상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. -**`escrow_detail`** **EscrowDetail** +
+

Product

-에스크로 결제 정보 + **`id`** **\*** **string** -
-

EscrowDetail

+ 상품 ID -**`company`** **\*** **string** + --- -택배사 + **`name`** **\*** **string** ---- + 상품명 -**`invoice_number`** **\*** **string** + --- -송장번호 + **`tag`** **string** ---- + 상품 태그(카테고리) -**`status`** **EscrowStatus** + --- -에스크로 상태 + **`code`** **string** -`"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` + 상품 코드 ---- + --- -**`sent_at`** **string** + **`amount`** **\*** **integer** -발송 일시 (배송이 발송되었을 경우 제공) + 상품 단위가격 ---- + --- -**`applied_at`** **string** + **`quantity`** **\*** **integer** -배송등록 처리 일자 + 주문 수량 ---- + --- +
-
+ --- ---- + **`product_count`** **integer** -**`products`** **Array\[Product]** + 상품 갯수 -상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. + --- -
-

Product

+ **`custom_data`** **string** -**`id`** **\*** **string** + 고객사의 결제 데이터 추가 정보 -상품 ID + --- ---- + **`requested_at`** **\*** **string** -**`name`** **\*** **string** + 결제요청시각 -상품명 + --- ---- + **`promotion_id`** **string** -**`tag`** **string** + 포트원 프로모션 아이디 -상품 태그(카테고리) + --- ---- + **`failure`** **PaymentFailure** -**`code`** **string** + 결제 실패 정보 -상품 코드 +
+

PaymentFailure

---- + **`reason`** **string** -**`amount`** **\*** **integer** + 실패 이유 -상품 단위가격 + --- ---- + **`pg_code`** **string** -**`quantity`** **\*** **integer** + PG사 전달 에러 코드 -주문 수량 + --- ---- + **`pg_message`** **string** -
+ PG사 전달 에러 메세지 ---- + --- +
-**`product_count`** **integer** + --- -상품 갯수 + **`failed_at`** **string** ---- + 결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. -**`custom_data`** **string** + --- -고객사의 결제 데이터 추가 정보 + **`country`** **Country** ---- + 국가 코드 -**`requested_at`** **\*** **string** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -결제요청시각 + --- ---- + **`paid_at`** **string** -**`promotion_id`** **string** + 결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -포트원 프로모션 아이디 + --- ---- + **`payment_method_detail`** **PaymentMethodDetail** -**`failure`** **PaymentFailure** + 결제 수단 정보 -결제 실패 정보 +
+

PaymentMethodDetail

-
-

PaymentFailure

+ **`card`** **Card** -**`reason`** **string** + 카드 결제 정보 -실패 이유 + --- ---- + **`transfer`** **Transfer** -**`pg_code`** **string** + 계좌이체 정보 -PG사 전달 에러 코드 + --- ---- + **`virtual_account`** **VirtualAccount** -**`pg_message`** **string** + 가상계좌 결제 정보 -PG사 전달 에러 메세지 + --- ---- + **`mobile`** **Mobile** -
+ 모바일결제 정보 ---- + --- -**`failed_at`** **string** + **`gift_certificate`** **GiftCertificate** -결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. + 상품권 결제 정보 ---- + --- -**`country`** **Country** + **`easy_pay`** **EasyPay** -국가 코드 + 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- +
---- + --- -**`paid_at`** **string** + **`pg_tx_id`** **string** -결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. ---- + --- -**`payment_method_detail`** **PaymentMethodDetail** + **`pg_response`** **string** -결제 수단 정보 + PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -
-

PaymentMethodDetail

+ --- -**`card`** **Card** + **`cash_receipt`** **CashReceiptDetail** -카드 결제 정보 + 현금영수증 정보 ---- +
+

CashReceiptDetail

-**`transfer`** **Transfer** + **`pg_receipt_id`** **string** -계좌이체 정보 + PG사 현금영수증 발급 ID ---- + --- -**`virtual_account`** **VirtualAccount** + **`issue_number`** **\*** **string** -가상계좌 결제 정보 + 현금영수증 승인번호 ---- + --- -**`mobile`** **Mobile** + **`type`** **CashReceiptType** -모바일결제 정보 + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` ---- + --- -**`gift_certificate`** **GiftCertificate** + **`amount`** **\*** **integer** -상품권 결제 정보 + 금액 ---- + --- -**`easy_pay`** **EasyPay** + **`tax_free_amount`** **integer** -간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) + 면세금액 ---- + --- -
+ **`status`** **CashReceiptStatus** ---- + `"ISSUED"`, `"CANCELLED"` -**`pg_tx_id`** **string** + --- -PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`issued_at`** **\*** **string** ---- + 발급일시 -**`pg_response`** **string** + --- -PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`cancelled_at`** **string** ---- + 취소일시 (`status`가 `CANCELLED`인 경우 제공) -**`cash_receipt`** **CashReceiptDetail** + --- -현금영수증 정보 + **`receipt_url`** **string** -
-

CashReceiptDetail

+ 영수증 url -**`pg_receipt_id`** **string** + --- +
-PG사 현금영수증 발급 ID + --- ---- + **`cancellations`** **Array\[Cancellation]** -**`issue_number`** **\*** **string** + 취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. -현금영수증 승인번호 +
+

Cancellation

---- + **`id`** **\*** **string** -**`type`** **CashReceiptType** + 취소 ID -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + --- ---- + **`pg_cancellation_id`** **\*** **string** -**`amount`** **\*** **integer** + PG사 취소 ID -금액 + --- ---- + **`cancel_amount`** **\*** **integer** -**`tax_free_amount`** **integer** + 취소 금액 -면세금액 + --- ---- + **`tax_free_amount`** **\*** **integer** -**`status`** **CashReceiptStatus** + 취소 면세 금액 -`"ISSUED"`, `"CANCELLED"` + --- ---- + **`easy_pay_discount_amount`** **integer** -**`issued_at`** **\*** **string** + 적립형 포인트의 환불 금액 -발급일시 + --- ---- + **`reason`** **\*** **string** -**`cancelled_at`** **string** + 취소 사유 -취소일시 (`status`가 `CANCELLED`인 경우 제공) + --- ---- + **`cancelled_at`** **string** -**`receipt_url`** **string** + 취소일시 -영수증 url + --- ---- + **`requested_at`** **\*** **string** -
+ 취소요청일시 ---- + --- -**`cancellations`** **Array\[Cancellation]** + **`status`** **\*** **CancellationStatus** -취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. + 취소 상태 -
-

Cancellation

+ `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` -**`id`** **\*** **string** + --- +
-취소 ID + --- ---- + **`cancelled_at`** **string** -**`pg_cancellation_id`** **\*** **string** + 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. -PG사 취소 ID + --- + ---- + + **`bank_code`** **string** -**`cancel_amount`** **\*** **integer** + 표준 은행 코드 -취소 금액 + --- + ---- + + **`bank_code`** **string** -**`tax_free_amount`** **\*** **integer** + 표준 은행 코드 -취소 면세 금액 + --- ---- + **`account_number`** **\*** **string** -**`easy_pay_discount_amount`** **integer** + 계좌번호 -적립형 포인트의 환불 금액 + --- ---- + **`account_type`** **VirtualAccountType** -**`reason`** **\*** **string** + 계좌 유형 -취소 사유 + `"FIXED"`, `"NORMAL"` ---- + --- -**`cancelled_at`** **string** + **`remittee_name`** **string** -취소일시 + 계좌주 ---- + --- -**`requested_at`** **\*** **string** + **`remitter_name`** **string** -취소요청일시 + 송금인 (입금자) ---- + --- -**`status`** **\*** **CancellationStatus** + **`expired_at`** **string** -취소 상태 + 입금만료시점 -`"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` + --- ---- + **`issued_at`** **string** -
+ 계좌발급시점 ---- + --- -**`cancelled_at`** **string** + **`refund_status`** **RefundStatus** -결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. + 가상계좌 결제가 환불 단계일 때의 환불 상태 ---- + `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` -
+ --- + - -**`bank_code`** **string** + + **`id`** **\*** **string** -표준 은행 코드 + 웹훅 ID ---- + --- - + **`status`** **WebhookStatus** - -**`bank_code`** **string** + 웹훅 전송 상태 -표준 은행 코드 + `"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` ---- + --- -**`account_number`** **\*** **string** + **`type`** **WebhookType** -계좌번호 + 웹훅 유형 ---- + `"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` -**`account_type`** **VirtualAccountType** + --- -계좌 유형 + **`url`** **\*** **string** -`"FIXED"`, `"NORMAL"` + 웹훅이 발송된 url ---- + --- -**`remittee_name`** **string** + **`is_async`** **boolean** -계좌주 + 비동기 웹훅 여부 ---- + --- -**`remitter_name`** **string** + **`current_execution`** **integer** -송금인 (입금자) + 현재 발송 횟수 ---- + --- -**`expired_at`** **string** + **`max_execution`** **integer** -입금만료시점 + 최대 발송 횟수 ---- + --- -**`issued_at`** **string** + **`webhook_trigger`** **WebhookTrigger** -계좌발급시점 + 웹훅 실행 주체 ---- + `"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` -**`refund_status`** **RefundStatus** + --- -가상계좌 결제가 환불 단계일 때의 환불 상태 + **`request`** **WebhookRequest** -`"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` + 웹훅 요청 정보 ---- +
+

WebhookRequest

- + **`header`** **object** - -**`id`** **\*** **string** + 요청 header -웹훅 ID + --- ---- + **`body`** **\*** **string** -**`status`** **WebhookStatus** + 요청 body -웹훅 전송 상태 + --- -`"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` + **`requested_at`** **string** ---- + 요청 시각 -**`type`** **WebhookType** + --- +
-웹훅 유형 + --- -`"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` + **`response`** **WebhookResponse** ---- + 웹훅 응답 정보 -**`url`** **\*** **string** +
+

WebhookResponse

-웹훅이 발송된 url + **`code`** **\*** **string** ---- + 웹훅 응답 http 코드 -**`is_async`** **boolean** + --- -비동기 웹훅 여부 + **`header`** **\*** **object** ---- + 응답 header -**`current_execution`** **integer** + --- -현재 발송 횟수 + **`body`** **\*** **string** ---- + 응답 body -**`max_execution`** **integer** + --- -최대 발송 횟수 + **`responded_at`** **\*** **string** ---- + 응답 시각 -**`webhook_trigger`** **WebhookTrigger** + --- +
-웹훅 실행 주체 + --- -`"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` + **`triggered_at`** **string** ---- + 웹훅 처리 시작 시각 -**`request`** **WebhookRequest** + --- +
+ + -웹훅 요청 정보 + + + + **`code`** **\*** **string** -
-

WebhookRequest

+ `"UNAUTHORIZED"` -**`header`** **object** + --- -요청 header + **`params`** **object** ---- + 에러 세부사항 -**`body`** **\*** **string** + --- + + + -요청 body + + + + **`code`** **\*** **string** ---- + `"PAYMENT_NOT_FOUND"` -**`requested_at`** **string** + --- -요청 시각 + **`params`** **object** ---- + 에러 세부사항 -
+ --- +
+
+
---- + + + + **`code`** **\*** **string** -**`response`** **WebhookResponse** + `"PORTONE_ERROR"` -웹훅 응답 정보 + --- -
-

WebhookResponse

+ **`params`** **object** -**`code`** **\*** **string** + 에러 세부사항 -웹훅 응답 http 코드 + --- + + + + ---- +## ⌨ 결제내역 다건조회 -**`header`** **\*** **object** + + + 결제내역들을 조회할 수 있는 API입니다. 실제 결제 발생 이후 조회되기까지 지연이 있으니 검증을 위해서는 -응답 header + [결제내역 단건조회](payment#getPayment) ---- + 를 이용해주세요. 현재 page \* limit이 50000 이상이 되는 쿼리를 허용하지 않는 제약을 갖고있습니다. 많은 양의 데이터를 받아올 경우 날짜범위를 좁혀서 사용해주세요. 추후 50000개 이상 대량의 데이터를 한번에 편리하게 쿼리할 수 있도록 하는 수정이 예정되어있습니다. + -**`body`** **\*** **string** + ### Parameters -응답 body + #### Query ---- + + 하위 상점 ID - Merchant 사용자만 사용가능하며, 지정되지 않은 경우 고객사 전체 결제건을 조회합니다. + -**`responded_at`** **\*** **string** + + 어떤 시각을 기준으로 조회를 할 것인지 선택합니다. -응답 시각 + - `REQUESTED_AT`: 결제 요청 시각을 기준으로 조회합니다. ---- + - `STATUS_UPDATED_AT`: 상태 승인 시각을 기준으로 조회합니다. 결제 건의 최종 상태에 따라 검색 기준이 다르게 적용됩니다. + - `ready` -> 결제 요청 시각 기준 + - `paid` -> 결제 완료 시각 기준 + - `cancelled` -> 결제 취소 시각 기준 + - `failed` -> 결제 실패 시각 기준 -
+ 값을 넣지 않으면 `STATUS_UPDATED_AT` 으로 자동 적용됩니다. + ---- + + 결제 요청/상태 승인 시각 범위의 시작 - 값을 넣지 않으면 `end`의 90일 전으로 설정됩니다. + -**`triggered_at`** **string** + + 결제 요청/상태 승인 시각 범위의 끝 - 값을 넣지 않으면 현재 시각으로 설정됩니다. + -웹훅 처리 시작 시각 + + 결제상태 리스트 - 값을 넣지 않으면 결제상태 필터링이 적용되지 않습니다. + ---- + + 결제수단 리스트 - 값을 넣지 않으면 결제수단 필터링이 적용되지 않습니다. + -
-
+ + 결제대행사 리스트 - 값을 넣지 않으면 결제대행사 필터링이 적용되지 않습니다. + -
+ + 테스트결제 필터링 + - - - -**`code`** **\*** **string** + + 정기결제 필터링 + -`"UNAUTHORIZED"` + + 통합검색 항목 + ---- + + 통합검색 입력값 + -**`params`** **object** + + 페이지 - 0부터 시작합니다. + -에러 세부사항 + + 페이지 크기 (최대 1000까지 허용) + ---- + + 정렬 기준 - - + `REQUESTED_AT` - + : 결제요청시각 - - - -**`code`** **\*** **string** + `STATUS_UPDATED_AT` -`"PAYMENT_NOT_FOUND"` + : 상태변경시각 + ---- + + 정렬 방향 -**`params`** **object** + `DESCENDING` -에러 세부사항 + : 내림차순 ---- + `ASCENDING` - - + : 오름차순 + - + ### Responses - - - -**`code`** **\*** **string** + + + + **`current_page`** **\*** **integer** -`"PORTONE_ERROR"` + --- ---- + **`total_page`** **\*** **integer** -**`params`** **object** + --- -에러 세부사항 + **`total_count`** **\*** **integer** ---- + --- - - + **`payments`** **\*** **Array\[Payment]** - + 결제내역 -
+
+

Payment

-## ⌨ 결제내역 다건조회 + **`id`** **\*** **string** - - -결제내역들을 조회할 수 있는 API입니다. 실제 결제 발생 이후 조회되기까지 지연이 있으니 검증을 위해서는 + 고객사에서 입력한 결제 ID -[결제내역 단건조회](payment#getPayment) + --- -를 이용해주세요. 현재 page \* limit이 50000 이상이 되는 쿼리를 허용하지 않는 제약을 갖고있습니다. 많은 양의 데이터를 받아올 경우 날짜범위를 좁혀서 사용해주세요. 추후 50000개 이상 대량의 데이터를 한번에 편리하게 쿼리할 수 있도록 하는 수정이 예정되어있습니다. + **`merchant_id`** **\*** **string** - + 고객사 ID -### Parameters + --- -#### Query + **`store_id`** **\*** **string** - -하위 상점 ID - Merchant 사용자만 사용가능하며, 지정되지 않은 경우 고객사 전체 결제건을 조회합니다. + 하위 상점 ID - - -어떤 시각을 기준으로 조회를 할 것인지 선택합니다. + --- -- `REQUESTED_AT`: 결제 요청 시각을 기준으로 조회합니다. -- `STATUS_UPDATED_AT`: 상태 승인 시각을 기준으로 조회합니다. 결제 건의 최종 상태에 따라 검색 기준이 다르게 적용됩니다. - - `ready` -> 결제 요청 시각 기준 - - `paid` -> 결제 완료 시각 기준 - - `cancelled` -> 결제 취소 시각 기준 - - `failed` -> 결제 실패 시각 기준 + **`transactions`** **\*** **Array\[Transaction]** -값을 넣지 않으면 `STATUS_UPDATED_AT` 으로 자동 적용됩니다. + 동일한 `payment_id`로 결제시도된 결제내역들 - - -결제 요청/상태 승인 시각 범위의 시작 - 값을 넣지 않으면 `end`의 90일 전으로 설정됩니다. + --- +
- - -결제 요청/상태 승인 시각 범위의 끝 - 값을 넣지 않으면 현재 시각으로 설정됩니다. + --- + - - -결제상태 리스트 - 값을 넣지 않으면 결제상태 필터링이 적용되지 않습니다. + + **`detail`** **CardDetail** - - -결제수단 리스트 - 값을 넣지 않으면 결제수단 필터링이 적용되지 않습니다. + 카드 정보 - - -결제대행사 리스트 - 값을 넣지 않으면 결제대행사 필터링이 적용되지 않습니다. +
+

CardDetail

- - -테스트결제 필터링 + **`publisher`** **string** - - -정기결제 필터링 + 발행사 코드 - - -통합검색 항목 + --- - - -통합검색 입력값 + **`issuer`** **string** - - -페이지 - 0부터 시작합니다. + 발급사 코드 - - -페이지 크기 (최대 1000까지 허용) + --- - - -정렬 기준 + **`brand`** **CardBrand** -`REQUESTED_AT` + 카드 브랜드 -: 결제요청시각 + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -`STATUS_UPDATED_AT` + --- -: 상태변경시각 + **`card_type`** **CardType** - - -정렬 방향 + 카드 종류 -`DESCENDING` + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -: 내림차순 + --- -`ASCENDING` + **`card_owner_type`** **CardOwnerType** -: 오름차순 + 카드 소유주 유형 - + `"PERSONAL"`, `"CORPORATE"` -### Responses + --- - - - -**`current_page`** **\*** **integer** + **`bin`** **string** ---- + 카드 빈넘버 -**`total_page`** **\*** **integer** + --- ---- + **`name`** **string** -**`total_count`** **\*** **integer** + 카드전표인자명 ---- + --- +
-**`payments`** **\*** **Array\[Payment]** + --- -결제내역 + **`number`** **string** -
-

Payment

+ 마스킹된 카드 번호 -**`id`** **\*** **string** + --- -고객사에서 입력한 결제 ID + **`approval_number`** **string** ---- + 승인 번호 -**`merchant_id`** **\*** **string** + --- -고객사 ID + **`installment`** **Installment** ---- + 할부 정보 -**`store_id`** **\*** **string** +
+

Installment

-하위 상점 ID + **`month`** **\*** **integer** ---- + 할부 개월 수 -**`transactions`** **\*** **Array\[Transaction]** + --- -동일한 `payment_id`로 결제시도된 결제내역들 + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 -
+ --- +
---- + --- - + **`card_point_used`** **boolean** - -**`detail`** **CardDetail** + 카드 포인트 사용여부 -카드 정보 + --- + -
-

CardDetail

+ + **`publisher`** **string** -**`publisher`** **string** + 발행사 코드 -발행사 코드 + --- ---- + **`issuer`** **string** -**`issuer`** **string** + 발급사 코드 -발급사 코드 + --- ---- + **`brand`** **CardBrand** -**`brand`** **CardBrand** + 카드 브랜드 -카드 브랜드 + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + --- ---- + **`card_type`** **CardType** -**`card_type`** **CardType** + 카드 종류 -카드 종류 + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + --- ---- + **`card_owner_type`** **CardOwnerType** -**`card_owner_type`** **CardOwnerType** + 카드 소유주 유형 -카드 소유주 유형 + `"PERSONAL"`, `"CORPORATE"` -`"PERSONAL"`, `"CORPORATE"` + --- ---- + **`bin`** **string** -**`bin`** **string** + 카드 빈넘버 -카드 빈넘버 + --- ---- + **`name`** **string** -**`name`** **string** + 카드전표인자명 -카드전표인자명 + --- + ---- + + **`easy_pay_provider`** **\*** **EasyPayProvider** -
+ 간편결제 PG사 ---- + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` -**`number`** **string** + --- -마스킹된 카드 번호 + **`card`** **Card** ---- + 카드 결제 정보 -**`approval_number`** **string** +
+

Card

-승인 번호 + **`detail`** **CardDetail** ---- + 카드 정보 -**`installment`** **Installment** + --- -할부 정보 + **`number`** **string** -
-

Installment

+ 마스킹된 카드 번호 -**`month`** **\*** **integer** + --- -할부 개월 수 + **`approval_number`** **string** ---- + 승인 번호 -**`is_interest_free`** **\*** **boolean** + --- -무이자할부 여부 + **`installment`** **Installment** ---- + 할부 정보 -
+ --- ---- + **`card_point_used`** **boolean** -**`card_point_used`** **boolean** + 카드 포인트 사용여부 -카드 포인트 사용여부 + --- +
---- + --- - + **`charge`** **Charge** - -**`publisher`** **string** + 충전식 포인트 결제 정보 -발행사 코드 +
+

Charge

---- + **`bank_code`** **string** -**`issuer`** **string** + 표준 은행 코드 (계좌 이체시 입력됨) -발급사 코드 + --- +
---- + --- -**`brand`** **CardBrand** + **`transfer`** **Transfer** -카드 브랜드 + 계좌이체 정보 -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` +
+

Transfer

---- + **`bank_code`** **string** -**`card_type`** **CardType** + 표준 은행 코드 -카드 종류 + --- +
-`"CREDIT"`, `"DEBIT"`, `"GIFT"` + --- +
+ ---- + + + **`type`** **GiftCertificateType** -**`card_owner_type`** **CardOwnerType** + `"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` -카드 소유주 유형 + --- -`"PERSONAL"`, `"CORPORATE"` + **`approval_number`** **\*** **string** ---- + 상품권 승인번호 -**`bin`** **string** + --- + -카드 빈넘버 + + **`month`** **\*** **integer** ---- + 할부 개월 수 -**`name`** **string** + --- -카드전표인자명 + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 - + --- + - -**`easy_pay_provider`** **\*** **EasyPayProvider** + + **`carrier`** **Carrier** -간편결제 PG사 + 통신사 -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` ---- + --- -**`card`** **Card** + **`phone_number`** **string** -카드 결제 정보 + 휴대전화번호 -
-

Card

+ --- + -**`detail`** **CardDetail** + + **`country`** **Country** -카드 정보 + 국가 코드 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`number`** **string** + --- -마스킹된 카드 번호 + **`province`** **string** ---- + 시/도/구 -**`approval_number`** **string** + --- -승인 번호 + **`city`** **string** ---- + 도시 -**`installment`** **Installment** + --- -할부 정보 + **`address_line_1`** **\*** **string** ---- + 일반 주소 -**`card_point_used`** **boolean** + --- -카드 포인트 사용여부 + **`address_line_2`** **\*** **string** ---- + 상세 주소 -
+ --- +
+
---- + + + **`id`** **\*** **string** -**`charge`** **Charge** + 포트원 채번 거래번호 -충전식 포인트 결제 정보 + --- -
-

Charge

+ **`is_primary`** **\*** **boolean** -**`bank_code`** **string** + 대표 트랜잭션 여부 -표준 은행 코드 (계좌 이체시 입력됨) + --- ---- + **`version`** **\*** **Version** -
+ 포트원 내부 결제시스템 버전 ---- + `"V1"`, `"V2"` -**`transfer`** **Transfer** + --- -계좌이체 정보 + **`method`** **PaymentMethod** -
-

Transfer

+ 결제수단 목록 -**`bank_code`** **string** + `"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` -표준 은행 코드 + --- ---- + **`channel`** **Channel** -
+ 결제 채널 정보 ---- +
+

Channel

- - + **`id`** **string** - - -**`type`** **GiftCertificateType** + 채널 ID -`"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` + --- ---- + **`name`** **string** -**`approval_number`** **\*** **string** + 채널 이름 -상품권 승인번호 + --- ---- + **`key`** **string** - + 채널 키 - -**`month`** **\*** **integer** + --- -할부 개월 수 + **`type`** **\*** **ChannelType** ---- + 채널 유형 -**`is_interest_free`** **\*** **boolean** + `"LIVE"`, `"TEST"` -무이자할부 여부 + --- ---- + **`pg_provider`** **\*** **PgProvider** - + 결제대행사(PG사) - -**`carrier`** **Carrier** + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` -통신사 + --- -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + **`pg_merchant_id`** **\*** **string** ---- + PG사에 등록된 고객사 ID -**`phone_number`** **string** + --- +
-휴대전화번호 + --- ---- + **`schedule_id`** **string** -
+ 예약결제 ID - 예약결제에만 해당됩니다. - -**`country`** **Country** + --- -국가 코드 + **`billing_key`** **string** -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + 결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. ---- + --- -**`province`** **string** + **`notifications`** **Array\[notification\_Notification]** -시/도/구 + 웹훅 발송 내역 ---- +
+

notification\_Notification

-**`city`** **string** + **`webhook`** **Webhook** -도시 + 웹훅 정보 ---- + --- +
-**`address_line_1`** **\*** **string** + --- -일반 주소 + **`status_updated_at`** **string** ---- + 상태변경시각 -**`address_line_2`** **\*** **string** + --- -상세 주소 + **`updated_at`** **\*** **string** ---- + 수정 시각 -
-
+ --- - - -**`id`** **\*** **string** + **`order_name`** **\*** **string** -포트원 채번 거래번호 + 주문명 ---- + --- -**`is_primary`** **\*** **boolean** + **`status`** **\*** **TransactionStatus** -대표 트랜잭션 여부 + 결제 건의 상태를 나타내는 enum string ---- + `"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` -**`version`** **\*** **Version** + --- -포트원 내부 결제시스템 버전 + **`amount`** **\*** **TransactionAmount** -`"V1"`, `"V2"` + 결제 금액 및 통화 관련 세부 정보 ---- +
+

TransactionAmount

-**`method`** **PaymentMethod** + **`currency`** **\*** **Currency** -결제수단 목록 + 통화 -`"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` ---- + --- -**`channel`** **Channel** + **`total`** **\*** **integer** -결제 채널 정보 + 결제 요청 금액 -
-

Channel

+ --- -**`id`** **string** + **`tax_free`** **\*** **integer** -채널 ID + 면세금액 ---- + --- -**`name`** **string** + **`vat`** **integer** -채널 이름 + 부가세 ---- + --- -**`key`** **string** + **`supply`** **integer** -채널 키 + 공급가액 ---- + --- -**`type`** **\*** **ChannelType** + **`discount`** **\*** **integer** -채널 유형 + 할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) -`"LIVE"`, `"TEST"` + --- ---- + **`paid`** **\*** **integer** -**`pg_provider`** **\*** **PgProvider** + 실제 결제 금액 -결제대행사(PG사) + --- -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + **`cancelled`** **\*** **integer** ---- + 취소 금액 -**`pg_merchant_id`** **\*** **string** + --- -PG사에 등록된 고객사 ID + **`cancelled_tax_free`** **\*** **integer** ---- + 취소 금액 중 면세 금액 -
+ --- +
---- + --- -**`schedule_id`** **string** + **`customer`** **\*** **Customer** -예약결제 ID - 예약결제에만 해당됩니다. + 구매자 정보 ---- +
+

Customer

-**`billing_key`** **string** + **`id`** **string** -결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. + 구매자 ID ---- + --- -**`notifications`** **Array\[notification_Notification]** + **`name`** **string** -웹훅 발송 내역 + 구매자 이름 -
-

notification_Notification

+ --- -**`webhook`** **Webhook** + **`birthYear`** **string** -웹훅 정보 + 구매자 생년 ---- + --- -
+ **`gender`** **Gender** ---- + `"MALE"`, `"FEMALE"`, `"OTHER"` -**`status_updated_at`** **string** + --- -상태변경시각 + **`email`** **string** ---- + 구매자 이메일 -**`updated_at`** **\*** **string** + --- -수정 시각 + **`phone_number`** **string** ---- + 구매자 전화번호 -**`order_name`** **\*** **string** + --- -주문명 + **`one_line_address`** **string** ---- + 구매자 주소 (한 줄) -**`status`** **\*** **TransactionStatus** + --- -결제 건의 상태를 나타내는 enum string + **`separated_address`** **SeparatedAddress** -`"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` + 구매자 주소 (단위별) ---- + --- -**`amount`** **\*** **TransactionAmount** + **`zipcode`** **string** -결제 금액 및 통화 관련 세부 정보 + 구매자 우편번호 -
-

TransactionAmount

+ --- +
-**`currency`** **\*** **Currency** + --- -통화 + **`origin`** **\*** **Origin** -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + 결제를 요청한 근원에 대한 정보 ---- +
+

Origin

-**`total`** **\*** **integer** + **`platform_type`** **\*** **string** -결제 요청 금액 + 결제를 요청한 단말의 플랫폼 분류 ---- + `"PC"`, `"MOBILE"`, `"API"` -**`tax_free`** **\*** **integer** + --- -면세금액 + **`user_agent`** **string** ---- + 결제근원의 환경 정보 (Http 의 User-Agent header value) -**`vat`** **integer** + --- -부가세 + **`url`** **string** ---- + 결제근원의 페이지 url -**`supply`** **integer** + --- -공급가액 + **`ip_address`** **\*** **string** ---- + 결제근원의 IP 주소 -**`discount`** **\*** **integer** + --- +
-할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) + --- ---- + **`is_cultural_expense`** **boolean** -**`paid`** **\*** **integer** + 문화비 지출 여부 -실제 결제 금액 + --- ---- + **`is_escrow`** **\*** **boolean** -**`cancelled`** **\*** **integer** + 에스크로 여부 -취소 금액 + --- ---- + **`escrow_detail`** **EscrowDetail** -**`cancelled_tax_free`** **\*** **integer** + 에스크로 결제 정보 -취소 금액 중 면세 금액 +
+

EscrowDetail

---- + **`company`** **\*** **string** -
+ 택배사 ---- + --- -**`customer`** **\*** **Customer** + **`invoice_number`** **\*** **string** -구매자 정보 + 송장번호 -
-

Customer

+ --- -**`id`** **string** + **`status`** **EscrowStatus** -구매자 ID + 에스크로 상태 ---- + `"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` -**`name`** **string** + --- -구매자 이름 + **`sent_at`** **string** ---- + 발송 일시 (배송이 발송되었을 경우 제공) -**`birthYear`** **string** + --- -구매자 생년 + **`applied_at`** **string** ---- + 배송등록 처리 일자 -**`gender`** **Gender** + --- +
-`"MALE"`, `"FEMALE"`, `"OTHER"` + --- ---- + **`products`** **Array\[Product]** -**`email`** **string** + 상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. -구매자 이메일 +
+

Product

---- + **`id`** **\*** **string** -**`phone_number`** **string** + 상품 ID -구매자 전화번호 + --- ---- + **`name`** **\*** **string** -**`one_line_address`** **string** + 상품명 -구매자 주소 (한 줄) + --- ---- + **`tag`** **string** -**`separated_address`** **SeparatedAddress** + 상품 태그(카테고리) -구매자 주소 (단위별) + --- ---- + **`code`** **string** -**`zipcode`** **string** + 상품 코드 -구매자 우편번호 + --- ---- + **`amount`** **\*** **integer** -
+ 상품 단위가격 ---- + --- -**`origin`** **\*** **Origin** + **`quantity`** **\*** **integer** -결제를 요청한 근원에 대한 정보 + 주문 수량 -
-

Origin

+ --- +
-**`platform_type`** **\*** **string** + --- -결제를 요청한 단말의 플랫폼 분류 + **`product_count`** **integer** -`"PC"`, `"MOBILE"`, `"API"` + 상품 갯수 ---- + --- -**`user_agent`** **string** + **`custom_data`** **string** -결제근원의 환경 정보 (Http 의 User-Agent header value) + 고객사의 결제 데이터 추가 정보 ---- + --- -**`url`** **string** + **`requested_at`** **\*** **string** -결제근원의 페이지 url + 결제요청시각 ---- + --- -**`ip_address`** **\*** **string** + **`promotion_id`** **string** -결제근원의 IP 주소 + 포트원 프로모션 아이디 ---- + --- -
+ **`failure`** **PaymentFailure** ---- + 결제 실패 정보 -**`is_cultural_expense`** **boolean** +
+

PaymentFailure

-문화비 지출 여부 + **`reason`** **string** ---- + 실패 이유 -**`is_escrow`** **\*** **boolean** + --- -에스크로 여부 + **`pg_code`** **string** ---- + PG사 전달 에러 코드 -**`escrow_detail`** **EscrowDetail** + --- -에스크로 결제 정보 + **`pg_message`** **string** -
-

EscrowDetail

+ PG사 전달 에러 메세지 -**`company`** **\*** **string** + --- +
-택배사 + --- ---- + **`failed_at`** **string** -**`invoice_number`** **\*** **string** + 결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. -송장번호 + --- ---- + **`country`** **Country** -**`status`** **EscrowStatus** + 국가 코드 -에스크로 상태 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -`"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` + --- ---- + **`paid_at`** **string** -**`sent_at`** **string** + 결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -발송 일시 (배송이 발송되었을 경우 제공) + --- ---- + **`payment_method_detail`** **PaymentMethodDetail** -**`applied_at`** **string** + 결제 수단 정보 -배송등록 처리 일자 +
+

PaymentMethodDetail

---- + **`card`** **Card** -
+ 카드 결제 정보 ---- + --- -**`products`** **Array\[Product]** + **`transfer`** **Transfer** -상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. + 계좌이체 정보 -
-

Product

+ --- -**`id`** **\*** **string** + **`virtual_account`** **VirtualAccount** -상품 ID + 가상계좌 결제 정보 ---- + --- -**`name`** **\*** **string** + **`mobile`** **Mobile** -상품명 + 모바일결제 정보 ---- + --- -**`tag`** **string** + **`gift_certificate`** **GiftCertificate** -상품 태그(카테고리) + 상품권 결제 정보 ---- + --- -**`code`** **string** + **`easy_pay`** **EasyPay** -상품 코드 + 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) ---- + --- +
-**`amount`** **\*** **integer** + --- -상품 단위가격 + **`pg_tx_id`** **string** ---- + PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -**`quantity`** **\*** **integer** + --- -주문 수량 + **`pg_response`** **string** ---- + PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -
+ --- ---- + **`cash_receipt`** **CashReceiptDetail** -**`product_count`** **integer** + 현금영수증 정보 -상품 갯수 +
+

CashReceiptDetail

---- + **`pg_receipt_id`** **string** -**`custom_data`** **string** + PG사 현금영수증 발급 ID -고객사의 결제 데이터 추가 정보 + --- ---- + **`issue_number`** **\*** **string** -**`requested_at`** **\*** **string** + 현금영수증 승인번호 -결제요청시각 + --- ---- + **`type`** **CashReceiptType** -**`promotion_id`** **string** + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` -포트원 프로모션 아이디 + --- ---- + **`amount`** **\*** **integer** -**`failure`** **PaymentFailure** + 금액 -결제 실패 정보 + --- -
-

PaymentFailure

+ **`tax_free_amount`** **integer** -**`reason`** **string** + 면세금액 -실패 이유 + --- ---- + **`status`** **CashReceiptStatus** -**`pg_code`** **string** + `"ISSUED"`, `"CANCELLED"` -PG사 전달 에러 코드 + --- ---- + **`issued_at`** **\*** **string** -**`pg_message`** **string** + 발급일시 -PG사 전달 에러 메세지 + --- ---- + **`cancelled_at`** **string** -
+ 취소일시 (`status`가 `CANCELLED`인 경우 제공) ---- + --- -**`failed_at`** **string** + **`receipt_url`** **string** -결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. + 영수증 url ---- + --- +
-**`country`** **Country** + --- -국가 코드 + **`cancellations`** **Array\[Cancellation]** -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + 취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. ---- +
+

Cancellation

-**`paid_at`** **string** + **`id`** **\*** **string** -결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + 취소 ID ---- + --- -**`payment_method_detail`** **PaymentMethodDetail** + **`pg_cancellation_id`** **\*** **string** -결제 수단 정보 + PG사 취소 ID -
-

PaymentMethodDetail

+ --- -**`card`** **Card** + **`cancel_amount`** **\*** **integer** -카드 결제 정보 + 취소 금액 ---- + --- -**`transfer`** **Transfer** + **`tax_free_amount`** **\*** **integer** -계좌이체 정보 + 취소 면세 금액 ---- + --- -**`virtual_account`** **VirtualAccount** + **`easy_pay_discount_amount`** **integer** -가상계좌 결제 정보 + 적립형 포인트의 환불 금액 ---- + --- -**`mobile`** **Mobile** + **`reason`** **\*** **string** -모바일결제 정보 + 취소 사유 ---- + --- -**`gift_certificate`** **GiftCertificate** + **`cancelled_at`** **string** -상품권 결제 정보 + 취소일시 ---- + --- -**`easy_pay`** **EasyPay** + **`requested_at`** **\*** **string** -간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) + 취소요청일시 ---- + --- -
+ **`status`** **\*** **CancellationStatus** ---- + 취소 상태 -**`pg_tx_id`** **string** + `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` -PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + --- +
---- + --- -**`pg_response`** **string** + **`cancelled_at`** **string** -PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. ---- + --- +
-**`cash_receipt`** **CashReceiptDetail** + + **`bank_code`** **string** -현금영수증 정보 + 표준 은행 코드 -
-

CashReceiptDetail

+ --- + -**`pg_receipt_id`** **string** + + **`bank_code`** **string** -PG사 현금영수증 발급 ID + 표준 은행 코드 ---- + --- -**`issue_number`** **\*** **string** + **`account_number`** **\*** **string** -현금영수증 승인번호 + 계좌번호 ---- + --- -**`type`** **CashReceiptType** + **`account_type`** **VirtualAccountType** -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + 계좌 유형 ---- + `"FIXED"`, `"NORMAL"` -**`amount`** **\*** **integer** + --- -금액 + **`remittee_name`** **string** ---- + 계좌주 -**`tax_free_amount`** **integer** + --- -면세금액 + **`remitter_name`** **string** ---- + 송금인 (입금자) -**`status`** **CashReceiptStatus** + --- -`"ISSUED"`, `"CANCELLED"` + **`expired_at`** **string** ---- + 입금만료시점 -**`issued_at`** **\*** **string** + --- -발급일시 + **`issued_at`** **string** ---- + 계좌발급시점 -**`cancelled_at`** **string** + --- -취소일시 (`status`가 `CANCELLED`인 경우 제공) + **`refund_status`** **RefundStatus** ---- + 가상계좌 결제가 환불 단계일 때의 환불 상태 -**`receipt_url`** **string** + `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` -영수증 url + --- + ---- + + **`id`** **\*** **string** -
+ 웹훅 ID ---- + --- -**`cancellations`** **Array\[Cancellation]** + **`status`** **WebhookStatus** -취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. + 웹훅 전송 상태 -
-

Cancellation

+ `"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` -**`id`** **\*** **string** + --- -취소 ID + **`type`** **WebhookType** ---- + 웹훅 유형 -**`pg_cancellation_id`** **\*** **string** + `"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` -PG사 취소 ID + --- ---- + **`url`** **\*** **string** -**`cancel_amount`** **\*** **integer** + 웹훅이 발송된 url -취소 금액 + --- ---- + **`is_async`** **boolean** -**`tax_free_amount`** **\*** **integer** + 비동기 웹훅 여부 -취소 면세 금액 + --- ---- + **`current_execution`** **integer** -**`easy_pay_discount_amount`** **integer** + 현재 발송 횟수 -적립형 포인트의 환불 금액 + --- ---- + **`max_execution`** **integer** -**`reason`** **\*** **string** + 최대 발송 횟수 -취소 사유 + --- ---- + **`webhook_trigger`** **WebhookTrigger** -**`cancelled_at`** **string** + 웹훅 실행 주체 -취소일시 + `"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` ---- + --- -**`requested_at`** **\*** **string** + **`request`** **WebhookRequest** -취소요청일시 + 웹훅 요청 정보 ---- +
+

WebhookRequest

-**`status`** **\*** **CancellationStatus** + **`header`** **object** -취소 상태 + 요청 header -`"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` + --- ---- + **`body`** **\*** **string** -
+ 요청 body ---- + --- -**`cancelled_at`** **string** + **`requested_at`** **string** -결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. + 요청 시각 ---- + --- +
-
+ --- - -**`bank_code`** **string** + **`response`** **WebhookResponse** -표준 은행 코드 + 웹훅 응답 정보 ---- +
+

WebhookResponse

- + **`code`** **\*** **string** - -**`bank_code`** **string** + 웹훅 응답 http 코드 -표준 은행 코드 + --- ---- + **`header`** **\*** **object** -**`account_number`** **\*** **string** + 응답 header -계좌번호 + --- ---- + **`body`** **\*** **string** -**`account_type`** **VirtualAccountType** + 응답 body -계좌 유형 + --- -`"FIXED"`, `"NORMAL"` + **`responded_at`** **\*** **string** ---- + 응답 시각 -**`remittee_name`** **string** + --- +
-계좌주 + --- ---- + **`triggered_at`** **string** -**`remitter_name`** **string** + 웹훅 처리 시작 시각 -송금인 (입금자) + --- +
+
+ ---- + + + + **`code`** **\*** **string** -**`expired_at`** **string** + `"UNAUTHORIZED"` -입금만료시점 + --- ---- + **`params`** **object** -**`issued_at`** **string** + 에러 세부사항 -계좌발급시점 + --- + + + ---- + + + + **`code`** **\*** **string** -**`refund_status`** **RefundStatus** + `"PORTONE_ERROR"` -가상계좌 결제가 환불 단계일 때의 환불 상태 + --- -`"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` + **`params`** **object** ---- + 에러 세부사항 - + --- + + + + - -**`id`** **\*** **string** +## ⌨ 결제내역 대용량 다건조회 -웹훅 ID + + + Payment의 생성일시를 기준으로 모든 결제내역들을 조회할 수 있는 결제내역 대용량 다건조회 API입니다. + ---- + ### Parameters -**`status`** **WebhookStatus** + #### Query -웹훅 전송 상태 + + 하위 상점 ID - Merchant 사용자만 사용가능하며, 지정되지 않은 경우 고객사 전체 결제건을 조회합니다. + -`"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` + + Payment 생성시각 범위의 시작 - 값을 넣지 않으면 ---- + `end` -**`type`** **WebhookType** + 의 90일 전으로 설정됩니다. + -웹훅 유형 + + Payment 생성시각 범위의 끝 - 값을 넣지 않으면 현재 시각으로 설정됩니다. + -`"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` + + 결제내역 리스트 중 어디서부터 읽어야 할지 가리키는 값입니다. 최초 요청일 경우 값을 입력하지 마시되, 두번째 요청 부터는 이전 요청 응답값의 cursor를 입력해주시면 됩니다. + ---- + + 페이지 크기 (최대 1000까지 허용) + -**`url`** **\*** **string** + ### Responses -웹훅이 발송된 url + + + + **`payments`** **\*** **Array\[Payment]** ---- + 결제내역 -**`is_async`** **boolean** +
+

Payment

-비동기 웹훅 여부 + **`id`** **\*** **string** ---- + 고객사에서 입력한 결제 ID -**`current_execution`** **integer** + --- -현재 발송 횟수 + **`merchant_id`** **\*** **string** ---- + 고객사 ID -**`max_execution`** **integer** + --- -최대 발송 횟수 + **`store_id`** **\*** **string** ---- + 하위 상점 ID -**`webhook_trigger`** **WebhookTrigger** + --- -웹훅 실행 주체 + **`transactions`** **\*** **Array\[Transaction]** -`"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` + 동일한 `payment_id`로 결제시도된 결제내역들 ---- + --- +
-**`request`** **WebhookRequest** + --- -웹훅 요청 정보 + **`cursor`** **string** -
-

WebhookRequest

+ 결제내역 리스트 중 어디까지 읽었는지를 나타냅니다. -**`header`** **object** + --- + -요청 header + + **`detail`** **CardDetail** ---- + 카드 정보 -**`body`** **\*** **string** +
+

CardDetail

-요청 body + **`publisher`** **string** ---- + 발행사 코드 -**`requested_at`** **string** + --- -요청 시각 + **`issuer`** **string** ---- + 발급사 코드 -
+ --- ---- + **`brand`** **CardBrand** -**`response`** **WebhookResponse** + 카드 브랜드 -웹훅 응답 정보 + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -
-

WebhookResponse

+ --- -**`code`** **\*** **string** + **`card_type`** **CardType** -웹훅 응답 http 코드 + 카드 종류 ---- + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -**`header`** **\*** **object** + --- -응답 header + **`card_owner_type`** **CardOwnerType** ---- + 카드 소유주 유형 -**`body`** **\*** **string** + `"PERSONAL"`, `"CORPORATE"` -응답 body + --- ---- + **`bin`** **string** -**`responded_at`** **\*** **string** + 카드 빈넘버 -응답 시각 + --- ---- + **`name`** **string** -
+ 카드전표인자명 ---- + --- +
-**`triggered_at`** **string** + --- -웹훅 처리 시작 시각 + **`number`** **string** ---- + 마스킹된 카드 번호 -
-
+ --- -
+ **`approval_number`** **string** - - - -**`code`** **\*** **string** + 승인 번호 -`"UNAUTHORIZED"` + --- ---- + **`installment`** **Installment** -**`params`** **object** + 할부 정보 -에러 세부사항 +
+

Installment

---- + **`month`** **\*** **integer** - - + 할부 개월 수 - + --- - - - -**`code`** **\*** **string** + **`is_interest_free`** **\*** **boolean** -`"PORTONE_ERROR"` + 무이자할부 여부 ---- + --- +
-**`params`** **object** + --- -에러 세부사항 + **`card_point_used`** **boolean** ---- + 카드 포인트 사용여부 -
-
+ --- +
- + + **`publisher`** **string** - + 발행사 코드 -## ⌨ 결제내역 대용량 다건조회 + --- - - -Payment의 생성일시를 기준으로 모든 결제내역들을 조회할 수 있는 결제내역 대용량 다건조회 API입니다. + **`issuer`** **string** - + 발급사 코드 -### Parameters + --- -#### Query + **`brand`** **CardBrand** - -하위 상점 ID - Merchant 사용자만 사용가능하며, 지정되지 않은 경우 고객사 전체 결제건을 조회합니다. + 카드 브랜드 - - -Payment 생성시각 범위의 시작 - 값을 넣지 않으면 + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -`end` + --- -의 90일 전으로 설정됩니다. + **`card_type`** **CardType** - - -Payment 생성시각 범위의 끝 - 값을 넣지 않으면 현재 시각으로 설정됩니다. + 카드 종류 - - -결제내역 리스트 중 어디서부터 읽어야 할지 가리키는 값입니다. 최초 요청일 경우 값을 입력하지 마시되, 두번째 요청 부터는 이전 요청 응답값의 cursor를 입력해주시면 됩니다. + `"CREDIT"`, `"DEBIT"`, `"GIFT"` - - -페이지 크기 (최대 1000까지 허용) + --- - + **`card_owner_type`** **CardOwnerType** -### Responses + 카드 소유주 유형 - - - -**`payments`** **\*** **Array\[Payment]** + `"PERSONAL"`, `"CORPORATE"` -결제내역 + --- -
-

Payment

+ **`bin`** **string** -**`id`** **\*** **string** + 카드 빈넘버 -고객사에서 입력한 결제 ID + --- ---- + **`name`** **string** -**`merchant_id`** **\*** **string** + 카드전표인자명 -고객사 ID + --- + ---- + + **`easy_pay_provider`** **\*** **EasyPayProvider** -**`store_id`** **\*** **string** + 간편결제 PG사 -하위 상점 ID + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` ---- + --- -**`transactions`** **\*** **Array\[Transaction]** + **`card`** **Card** -동일한 `payment_id`로 결제시도된 결제내역들 + 카드 결제 정보 ---- +
+

Card

-
+ **`detail`** **CardDetail** ---- + 카드 정보 -**`cursor`** **string** + --- -결제내역 리스트 중 어디까지 읽었는지를 나타냅니다. + **`number`** **string** ---- + 마스킹된 카드 번호 -
+ --- - -**`detail`** **CardDetail** + **`approval_number`** **string** -카드 정보 + 승인 번호 -
-

CardDetail

+ --- -**`publisher`** **string** + **`installment`** **Installment** -발행사 코드 + 할부 정보 ---- + --- -**`issuer`** **string** + **`card_point_used`** **boolean** -발급사 코드 + 카드 포인트 사용여부 ---- + --- +
-**`brand`** **CardBrand** + --- -카드 브랜드 + **`charge`** **Charge** -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + 충전식 포인트 결제 정보 ---- +
+

Charge

-**`card_type`** **CardType** + **`bank_code`** **string** -카드 종류 + 표준 은행 코드 (계좌 이체시 입력됨) -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + --- +
---- + --- -**`card_owner_type`** **CardOwnerType** + **`transfer`** **Transfer** -카드 소유주 유형 + 계좌이체 정보 -`"PERSONAL"`, `"CORPORATE"` +
+

Transfer

---- + **`bank_code`** **string** -**`bin`** **string** + 표준 은행 코드 -카드 빈넘버 + --- +
---- + --- +
+ -**`name`** **string** + + + **`type`** **GiftCertificateType** -카드전표인자명 + `"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` ---- + --- -
+ **`approval_number`** **\*** **string** ---- + 상품권 승인번호 -**`number`** **string** + --- +
-마스킹된 카드 번호 + + **`month`** **\*** **integer** ---- + 할부 개월 수 -**`approval_number`** **string** + --- -승인 번호 + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 -**`installment`** **Installment** + --- + -할부 정보 + + **`carrier`** **Carrier** -
-

Installment

+ 통신사 -**`month`** **\*** **integer** + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` -할부 개월 수 + --- ---- + **`phone_number`** **string** -**`is_interest_free`** **\*** **boolean** + 휴대전화번호 -무이자할부 여부 + --- + ---- + + **`country`** **Country** -
+ 국가 코드 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`card_point_used`** **boolean** + --- -카드 포인트 사용여부 + **`province`** **string** ---- + 시/도/구 -
+ --- - -**`publisher`** **string** + **`city`** **string** -발행사 코드 + 도시 ---- + --- -**`issuer`** **string** + **`address_line_1`** **\*** **string** -발급사 코드 + 일반 주소 ---- + --- -**`brand`** **CardBrand** + **`address_line_2`** **\*** **string** -카드 브랜드 + 상세 주소 -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + --- + +
---- + + + **`id`** **\*** **string** -**`card_type`** **CardType** + 포트원 채번 거래번호 -카드 종류 + --- -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + **`is_primary`** **\*** **boolean** ---- + 대표 트랜잭션 여부 -**`card_owner_type`** **CardOwnerType** + --- -카드 소유주 유형 + **`version`** **\*** **Version** -`"PERSONAL"`, `"CORPORATE"` + 포트원 내부 결제시스템 버전 ---- + `"V1"`, `"V2"` -**`bin`** **string** + --- -카드 빈넘버 + **`method`** **PaymentMethod** ---- + 결제수단 목록 -**`name`** **string** + `"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` -카드전표인자명 + --- ---- + **`channel`** **Channel** - + 결제 채널 정보 - -**`easy_pay_provider`** **\*** **EasyPayProvider** +
+

Channel

-간편결제 PG사 + **`id`** **string** -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + 채널 ID ---- + --- -**`card`** **Card** + **`name`** **string** -카드 결제 정보 + 채널 이름 -
-

Card

+ --- -**`detail`** **CardDetail** + **`key`** **string** -카드 정보 + 채널 키 ---- + --- -**`number`** **string** + **`type`** **\*** **ChannelType** -마스킹된 카드 번호 + 채널 유형 ---- + `"LIVE"`, `"TEST"` -**`approval_number`** **string** + --- -승인 번호 + **`pg_provider`** **\*** **PgProvider** ---- + 결제대행사(PG사) -**`installment`** **Installment** + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` -할부 정보 + --- ---- + **`pg_merchant_id`** **\*** **string** -**`card_point_used`** **boolean** + PG사에 등록된 고객사 ID -카드 포인트 사용여부 + --- +
---- + --- -
+ **`schedule_id`** **string** ---- + 예약결제 ID - 예약결제에만 해당됩니다. -**`charge`** **Charge** + --- -충전식 포인트 결제 정보 + **`billing_key`** **string** -
-

Charge

+ 결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. -**`bank_code`** **string** + --- -표준 은행 코드 (계좌 이체시 입력됨) + **`notifications`** **Array\[notification\_Notification]** ---- + 웹훅 발송 내역 -
+
+

notification\_Notification

---- + **`webhook`** **Webhook** -**`transfer`** **Transfer** + 웹훅 정보 -계좌이체 정보 + --- +
-
-

Transfer

+ --- -**`bank_code`** **string** + **`status_updated_at`** **string** -표준 은행 코드 + 상태변경시각 ---- + --- -
+ **`updated_at`** **\*** **string** ---- + 수정 시각 -
-
+ --- - - -**`type`** **GiftCertificateType** + **`order_name`** **\*** **string** -`"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` + 주문명 ---- + --- -**`approval_number`** **\*** **string** + **`status`** **\*** **TransactionStatus** -상품권 승인번호 + 결제 건의 상태를 나타내는 enum string ---- + `"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` - + --- - -**`month`** **\*** **integer** + **`amount`** **\*** **TransactionAmount** -할부 개월 수 + 결제 금액 및 통화 관련 세부 정보 ---- +
+

TransactionAmount

-**`is_interest_free`** **\*** **boolean** + **`currency`** **\*** **Currency** -무이자할부 여부 + 통화 ---- + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` - + --- - -**`carrier`** **Carrier** + **`total`** **\*** **integer** -통신사 + 결제 요청 금액 -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + --- ---- + **`tax_free`** **\*** **integer** -**`phone_number`** **string** + 면세금액 -휴대전화번호 + --- ---- + **`vat`** **integer** - + 부가세 - -**`country`** **Country** + --- -국가 코드 + **`supply`** **integer** -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + 공급가액 ---- + --- -**`province`** **string** + **`discount`** **\*** **integer** -시/도/구 + 할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) ---- + --- -**`city`** **string** + **`paid`** **\*** **integer** -도시 + 실제 결제 금액 ---- + --- -**`address_line_1`** **\*** **string** + **`cancelled`** **\*** **integer** -일반 주소 + 취소 금액 ---- + --- -**`address_line_2`** **\*** **string** + **`cancelled_tax_free`** **\*** **integer** -상세 주소 + 취소 금액 중 면세 금액 ---- + --- +
-
-
+ --- - - -**`id`** **\*** **string** + **`customer`** **\*** **Customer** -포트원 채번 거래번호 + 구매자 정보 ---- +
+

Customer

-**`is_primary`** **\*** **boolean** + **`id`** **string** -대표 트랜잭션 여부 + 구매자 ID ---- + --- -**`version`** **\*** **Version** + **`name`** **string** -포트원 내부 결제시스템 버전 + 구매자 이름 -`"V1"`, `"V2"` + --- ---- + **`birthYear`** **string** -**`method`** **PaymentMethod** + 구매자 생년 -결제수단 목록 + --- -`"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` + **`gender`** **Gender** ---- + `"MALE"`, `"FEMALE"`, `"OTHER"` -**`channel`** **Channel** + --- -결제 채널 정보 + **`email`** **string** -
-

Channel

+ 구매자 이메일 -**`id`** **string** + --- -채널 ID + **`phone_number`** **string** ---- + 구매자 전화번호 -**`name`** **string** + --- -채널 이름 + **`one_line_address`** **string** ---- + 구매자 주소 (한 줄) -**`key`** **string** + --- -채널 키 + **`separated_address`** **SeparatedAddress** ---- + 구매자 주소 (단위별) -**`type`** **\*** **ChannelType** + --- -채널 유형 + **`zipcode`** **string** -`"LIVE"`, `"TEST"` + 구매자 우편번호 ---- + --- +
-**`pg_provider`** **\*** **PgProvider** + --- -결제대행사(PG사) + **`origin`** **\*** **Origin** -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + 결제를 요청한 근원에 대한 정보 ---- +
+

Origin

-**`pg_merchant_id`** **\*** **string** + **`platform_type`** **\*** **string** -PG사에 등록된 고객사 ID + 결제를 요청한 단말의 플랫폼 분류 ---- + `"PC"`, `"MOBILE"`, `"API"` -
+ --- ---- + **`user_agent`** **string** -**`schedule_id`** **string** + 결제근원의 환경 정보 (Http 의 User-Agent header value) -예약결제 ID - 예약결제에만 해당됩니다. + --- ---- + **`url`** **string** -**`billing_key`** **string** + 결제근원의 페이지 url -결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. + --- ---- + **`ip_address`** **\*** **string** -**`notifications`** **Array\[notification_Notification]** + 결제근원의 IP 주소 -웹훅 발송 내역 + --- +
-
-

notification_Notification

+ --- -**`webhook`** **Webhook** + **`is_cultural_expense`** **boolean** -웹훅 정보 + 문화비 지출 여부 ---- + --- -
+ **`is_escrow`** **\*** **boolean** ---- + 에스크로 여부 -**`status_updated_at`** **string** + --- -상태변경시각 + **`escrow_detail`** **EscrowDetail** ---- + 에스크로 결제 정보 -**`updated_at`** **\*** **string** +
+

EscrowDetail

-수정 시각 + **`company`** **\*** **string** ---- + 택배사 -**`order_name`** **\*** **string** + --- -주문명 + **`invoice_number`** **\*** **string** ---- + 송장번호 -**`status`** **\*** **TransactionStatus** + --- -결제 건의 상태를 나타내는 enum string + **`status`** **EscrowStatus** -`"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` + 에스크로 상태 ---- + `"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` -**`amount`** **\*** **TransactionAmount** + --- -결제 금액 및 통화 관련 세부 정보 + **`sent_at`** **string** -
-

TransactionAmount

+ 발송 일시 (배송이 발송되었을 경우 제공) -**`currency`** **\*** **Currency** + --- -통화 + **`applied_at`** **string** -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + 배송등록 처리 일자 ---- + --- +
-**`total`** **\*** **integer** + --- -결제 요청 금액 + **`products`** **Array\[Product]** ---- + 상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. -**`tax_free`** **\*** **integer** +
+

Product

-면세금액 + **`id`** **\*** **string** ---- + 상품 ID -**`vat`** **integer** + --- -부가세 + **`name`** **\*** **string** ---- + 상품명 -**`supply`** **integer** + --- -공급가액 + **`tag`** **string** ---- + 상품 태그(카테고리) -**`discount`** **\*** **integer** + --- -할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) + **`code`** **string** ---- + 상품 코드 -**`paid`** **\*** **integer** + --- -실제 결제 금액 + **`amount`** **\*** **integer** ---- + 상품 단위가격 -**`cancelled`** **\*** **integer** + --- -취소 금액 + **`quantity`** **\*** **integer** ---- + 주문 수량 -**`cancelled_tax_free`** **\*** **integer** + --- +
-취소 금액 중 면세 금액 + --- ---- + **`product_count`** **integer** -
+ 상품 갯수 ---- + --- -**`customer`** **\*** **Customer** + **`custom_data`** **string** -구매자 정보 + 고객사의 결제 데이터 추가 정보 -
-

Customer

+ --- -**`id`** **string** + **`requested_at`** **\*** **string** -구매자 ID + 결제요청시각 ---- + --- -**`name`** **string** + **`promotion_id`** **string** -구매자 이름 + 포트원 프로모션 아이디 ---- + --- -**`birthYear`** **string** + **`failure`** **PaymentFailure** -구매자 생년 + 결제 실패 정보 ---- +
+

PaymentFailure

-**`gender`** **Gender** + **`reason`** **string** -`"MALE"`, `"FEMALE"`, `"OTHER"` + 실패 이유 ---- + --- -**`email`** **string** + **`pg_code`** **string** -구매자 이메일 + PG사 전달 에러 코드 ---- + --- -**`phone_number`** **string** + **`pg_message`** **string** -구매자 전화번호 + PG사 전달 에러 메세지 ---- + --- +
-**`one_line_address`** **string** + --- -구매자 주소 (한 줄) + **`failed_at`** **string** ---- + 결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. -**`separated_address`** **SeparatedAddress** + --- -구매자 주소 (단위별) + **`country`** **Country** ---- + 국가 코드 -**`zipcode`** **string** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -구매자 우편번호 + --- ---- + **`paid_at`** **string** -
+ 결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. ---- + --- -**`origin`** **\*** **Origin** + **`payment_method_detail`** **PaymentMethodDetail** -결제를 요청한 근원에 대한 정보 + 결제 수단 정보 -
-

Origin

+
+

PaymentMethodDetail

-**`platform_type`** **\*** **string** + **`card`** **Card** -결제를 요청한 단말의 플랫폼 분류 + 카드 결제 정보 -`"PC"`, `"MOBILE"`, `"API"` + --- ---- + **`transfer`** **Transfer** -**`user_agent`** **string** + 계좌이체 정보 -결제근원의 환경 정보 (Http 의 User-Agent header value) + --- ---- + **`virtual_account`** **VirtualAccount** -**`url`** **string** + 가상계좌 결제 정보 -결제근원의 페이지 url + --- ---- + **`mobile`** **Mobile** -**`ip_address`** **\*** **string** + 모바일결제 정보 -결제근원의 IP 주소 + --- ---- + **`gift_certificate`** **GiftCertificate** -
+ 상품권 결제 정보 ---- - -**`is_cultural_expense`** **boolean** - -문화비 지출 여부 - ---- + --- -**`is_escrow`** **\*** **boolean** + **`easy_pay`** **EasyPay** -에스크로 여부 + 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) ---- + --- +
-**`escrow_detail`** **EscrowDetail** + --- -에스크로 결제 정보 + **`pg_tx_id`** **string** -
-

EscrowDetail

+ PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -**`company`** **\*** **string** + --- -택배사 + **`pg_response`** **string** ---- + PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -**`invoice_number`** **\*** **string** + --- -송장번호 + **`cash_receipt`** **CashReceiptDetail** ---- + 현금영수증 정보 -**`status`** **EscrowStatus** +
+

CashReceiptDetail

-에스크로 상태 + **`pg_receipt_id`** **string** -`"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` + PG사 현금영수증 발급 ID ---- + --- -**`sent_at`** **string** + **`issue_number`** **\*** **string** -발송 일시 (배송이 발송되었을 경우 제공) + 현금영수증 승인번호 ---- + --- -**`applied_at`** **string** + **`type`** **CashReceiptType** -배송등록 처리 일자 + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` ---- + --- -
+ **`amount`** **\*** **integer** ---- + 금액 -**`products`** **Array\[Product]** + --- -상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. + **`tax_free_amount`** **integer** -
-

Product

+ 면세금액 -**`id`** **\*** **string** + --- -상품 ID + **`status`** **CashReceiptStatus** ---- + `"ISSUED"`, `"CANCELLED"` -**`name`** **\*** **string** + --- -상품명 + **`issued_at`** **\*** **string** ---- + 발급일시 -**`tag`** **string** + --- -상품 태그(카테고리) + **`cancelled_at`** **string** ---- + 취소일시 (`status`가 `CANCELLED`인 경우 제공) -**`code`** **string** + --- -상품 코드 + **`receipt_url`** **string** ---- + 영수증 url -**`amount`** **\*** **integer** + --- +
-상품 단위가격 + --- ---- + **`cancellations`** **Array\[Cancellation]** -**`quantity`** **\*** **integer** + 취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. -주문 수량 +
+

Cancellation

---- + **`id`** **\*** **string** -
+ 취소 ID ---- + --- -**`product_count`** **integer** + **`pg_cancellation_id`** **\*** **string** -상품 갯수 + PG사 취소 ID ---- + --- -**`custom_data`** **string** + **`cancel_amount`** **\*** **integer** -고객사의 결제 데이터 추가 정보 + 취소 금액 ---- + --- -**`requested_at`** **\*** **string** + **`tax_free_amount`** **\*** **integer** -결제요청시각 + 취소 면세 금액 ---- + --- -**`promotion_id`** **string** + **`easy_pay_discount_amount`** **integer** -포트원 프로모션 아이디 + 적립형 포인트의 환불 금액 ---- + --- -**`failure`** **PaymentFailure** + **`reason`** **\*** **string** -결제 실패 정보 + 취소 사유 -
-

PaymentFailure

+ --- -**`reason`** **string** + **`cancelled_at`** **string** -실패 이유 + 취소일시 ---- + --- -**`pg_code`** **string** + **`requested_at`** **\*** **string** -PG사 전달 에러 코드 + 취소요청일시 ---- + --- -**`pg_message`** **string** + **`status`** **\*** **CancellationStatus** -PG사 전달 에러 메세지 + 취소 상태 ---- + `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` -
+ --- +
---- + --- -**`failed_at`** **string** + **`cancelled_at`** **string** -결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. + 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. ---- + --- +
-**`country`** **Country** + + **`bank_code`** **string** -국가 코드 + 표준 은행 코드 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- + ---- + + **`bank_code`** **string** -**`paid_at`** **string** + 표준 은행 코드 -결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + --- ---- + **`account_number`** **\*** **string** -**`payment_method_detail`** **PaymentMethodDetail** + 계좌번호 -결제 수단 정보 + --- -
-

PaymentMethodDetail

+ **`account_type`** **VirtualAccountType** -**`card`** **Card** + 계좌 유형 -카드 결제 정보 + `"FIXED"`, `"NORMAL"` ---- + --- -**`transfer`** **Transfer** + **`remittee_name`** **string** -계좌이체 정보 + 계좌주 ---- + --- -**`virtual_account`** **VirtualAccount** + **`remitter_name`** **string** -가상계좌 결제 정보 + 송금인 (입금자) ---- + --- -**`mobile`** **Mobile** + **`expired_at`** **string** -모바일결제 정보 + 입금만료시점 ---- + --- -**`gift_certificate`** **GiftCertificate** + **`issued_at`** **string** -상품권 결제 정보 + 계좌발급시점 ---- + --- -**`easy_pay`** **EasyPay** + **`refund_status`** **RefundStatus** -간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) + 가상계좌 결제가 환불 단계일 때의 환불 상태 ---- + `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` -
+ --- +
---- + + **`id`** **\*** **string** -**`pg_tx_id`** **string** + 웹훅 ID -PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + --- ---- + **`status`** **WebhookStatus** -**`pg_response`** **string** + 웹훅 전송 상태 -PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + `"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` ---- + --- -**`cash_receipt`** **CashReceiptDetail** + **`type`** **WebhookType** -현금영수증 정보 + 웹훅 유형 -
-

CashReceiptDetail

+ `"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` -**`pg_receipt_id`** **string** + --- -PG사 현금영수증 발급 ID + **`url`** **\*** **string** ---- + 웹훅이 발송된 url -**`issue_number`** **\*** **string** + --- -현금영수증 승인번호 + **`is_async`** **boolean** ---- + 비동기 웹훅 여부 -**`type`** **CashReceiptType** + --- -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + **`current_execution`** **integer** ---- + 현재 발송 횟수 -**`amount`** **\*** **integer** + --- -금액 + **`max_execution`** **integer** ---- + 최대 발송 횟수 -**`tax_free_amount`** **integer** + --- -면세금액 + **`webhook_trigger`** **WebhookTrigger** ---- + 웹훅 실행 주체 -**`status`** **CashReceiptStatus** + `"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` -`"ISSUED"`, `"CANCELLED"` + --- ---- + **`request`** **WebhookRequest** -**`issued_at`** **\*** **string** + 웹훅 요청 정보 -발급일시 +
+

WebhookRequest

---- + **`header`** **object** -**`cancelled_at`** **string** + 요청 header -취소일시 (`status`가 `CANCELLED`인 경우 제공) + --- ---- + **`body`** **\*** **string** -**`receipt_url`** **string** + 요청 body -영수증 url + --- ---- + **`requested_at`** **string** -
+ 요청 시각 ---- + --- +
-**`cancellations`** **Array\[Cancellation]** + --- -취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. + **`response`** **WebhookResponse** -
-

Cancellation

+ 웹훅 응답 정보 -**`id`** **\*** **string** +
+

WebhookResponse

-취소 ID + **`code`** **\*** **string** ---- + 웹훅 응답 http 코드 -**`pg_cancellation_id`** **\*** **string** + --- -PG사 취소 ID + **`header`** **\*** **object** ---- + 응답 header -**`cancel_amount`** **\*** **integer** + --- -취소 금액 + **`body`** **\*** **string** ---- + 응답 body -**`tax_free_amount`** **\*** **integer** + --- -취소 면세 금액 + **`responded_at`** **\*** **string** ---- + 응답 시각 -**`easy_pay_discount_amount`** **integer** + --- +
-적립형 포인트의 환불 금액 + --- ---- + **`triggered_at`** **string** -**`reason`** **\*** **string** + 웹훅 처리 시작 시각 -취소 사유 + --- + + + ---- + + + + **`code`** **\*** **string** -**`cancelled_at`** **string** + `"UNAUTHORIZED"` -취소일시 + --- ---- + **`params`** **object** -**`requested_at`** **\*** **string** + 에러 세부사항 -취소요청일시 + --- + + + ---- + + + + **`code`** **\*** **string** -**`status`** **\*** **CancellationStatus** + `"PORTONE_ERROR"` -취소 상태 + --- -`"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` + **`params`** **object** ---- + 에러 세부사항 -
+ --- +
+
+
+
---- +## ⌨ 결제 취소 -**`cancelled_at`** **string** + + -결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. + ### Parameters ---- + #### Path -
+ + 결제 ID + - -**`bank_code`** **string** + #### Query -표준 은행 코드 + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + ---- + #### Body - + + 취소 사유 + - -**`bank_code`** **string** + + 취소 금액 - 값을 넣지 않으면 전액 취소됩니다. + -표준 은행 코드 + + 취소 금액 중 면세 금액 - 값을 넣지 않으면 전액 과세됩니다. + ---- + + 취소 금액 중 부가세 금액 (PG사 기본값: null). 결제 시 부가세를 지정했던 경우 필수 입력 바랍니다. 지원되는 PG사: 나이스페이먼츠(NICE), 이니시스(HTML5\_INICIS), 웰컴페이먼츠(WELCOME) + -**`account_number`** **\*** **string** + + 결제 건의 취소 가능 잔액 - 값을 넣지 않으면 별도의 검증 처리를 수행하지 않습니다. + -계좌번호 + + 환불 계좌 정보 - 가상계좌 결제인 경우에만 기입할 수 있습니다. + ---- + ### Responses -**`account_type`** **VirtualAccountType** + + + + **`cancelled_tx_id`** **\*** **string** -계좌 유형 + 취소 대상 거래 아이디 -`"FIXED"`, `"NORMAL"` + --- ---- + **`cancellation_id`** **\*** **string** -**`remittee_name`** **string** + 취소 아이디 -계좌주 + --- ---- + **`payment`** **\*** **Payment** -**`remitter_name`** **string** + 결제내역 -송금인 (입금자) +
+

Payment

---- + **`id`** **\*** **string** -**`expired_at`** **string** + 고객사에서 입력한 결제 ID -입금만료시점 + --- ---- + **`merchant_id`** **\*** **string** -**`issued_at`** **string** + 고객사 ID -계좌발급시점 + --- ---- + **`store_id`** **\*** **string** -**`refund_status`** **RefundStatus** + 하위 상점 ID -가상계좌 결제가 환불 단계일 때의 환불 상태 + --- -`"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` + **`transactions`** **\*** **Array\[Transaction]** ---- + 동일한 `payment_id`로 결제시도된 결제내역들 - + --- +
- -**`id`** **\*** **string** + --- + -웹훅 ID + + **`detail`** **CardDetail** ---- + 카드 정보 -**`status`** **WebhookStatus** +
+

CardDetail

-웹훅 전송 상태 + **`publisher`** **string** -`"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` + 발행사 코드 ---- + --- -**`type`** **WebhookType** + **`issuer`** **string** -웹훅 유형 + 발급사 코드 -`"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` + --- ---- + **`brand`** **CardBrand** -**`url`** **\*** **string** + 카드 브랜드 -웹훅이 발송된 url + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` ---- + --- -**`is_async`** **boolean** + **`card_type`** **CardType** -비동기 웹훅 여부 + 카드 종류 ---- + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -**`current_execution`** **integer** + --- -현재 발송 횟수 + **`card_owner_type`** **CardOwnerType** ---- + 카드 소유주 유형 -**`max_execution`** **integer** + `"PERSONAL"`, `"CORPORATE"` -최대 발송 횟수 + --- ---- + **`bin`** **string** -**`webhook_trigger`** **WebhookTrigger** + 카드 빈넘버 -웹훅 실행 주체 + --- -`"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` + **`name`** **string** ---- + 카드전표인자명 -**`request`** **WebhookRequest** + --- +
-웹훅 요청 정보 + --- -
-

WebhookRequest

+ **`number`** **string** -**`header`** **object** + 마스킹된 카드 번호 -요청 header + --- ---- + **`approval_number`** **string** -**`body`** **\*** **string** + 승인 번호 -요청 body + --- ---- + **`installment`** **Installment** -**`requested_at`** **string** + 할부 정보 -요청 시각 +
+

Installment

---- + **`month`** **\*** **integer** -
+ 할부 개월 수 ---- + --- -**`response`** **WebhookResponse** + **`is_interest_free`** **\*** **boolean** -웹훅 응답 정보 + 무이자할부 여부 -
-

WebhookResponse

+ --- +
-**`code`** **\*** **string** + --- -웹훅 응답 http 코드 + **`card_point_used`** **boolean** ---- + 카드 포인트 사용여부 -**`header`** **\*** **object** + --- + -응답 header + + **`publisher`** **string** ---- + 발행사 코드 -**`body`** **\*** **string** + --- -응답 body + **`issuer`** **string** ---- + 발급사 코드 -**`responded_at`** **\*** **string** + --- -응답 시각 + **`brand`** **CardBrand** ---- + 카드 브랜드 -
+ `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` ---- + --- -**`triggered_at`** **string** + **`card_type`** **CardType** -웹훅 처리 시작 시각 + 카드 종류 ---- + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -
-
+ --- -
+ **`card_owner_type`** **CardOwnerType** - - - -**`code`** **\*** **string** + 카드 소유주 유형 -`"UNAUTHORIZED"` + `"PERSONAL"`, `"CORPORATE"` ---- + --- -**`params`** **object** + **`bin`** **string** -에러 세부사항 + 카드 빈넘버 ---- + --- - - + **`name`** **string** - + 카드전표인자명 - - - -**`code`** **\*** **string** + --- + -`"PORTONE_ERROR"` + + **`easy_pay_provider`** **\*** **EasyPayProvider** ---- + 간편결제 PG사 -**`params`** **object** + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` -에러 세부사항 + --- ---- + **`card`** **Card** - - + 카드 결제 정보 - +
+

Card

- + **`detail`** **CardDetail** -## ⌨ 결제 취소 + 카드 정보 - - + --- - + **`number`** **string** -### Parameters + 마스킹된 카드 번호 -#### Path + --- - -결제 ID + **`approval_number`** **string** - + 승인 번호 -#### Query + --- - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + **`installment`** **Installment** - + 할부 정보 -#### Body + --- - -취소 사유 + **`card_point_used`** **boolean** - - -취소 금액 - 값을 넣지 않으면 전액 취소됩니다. + 카드 포인트 사용여부 - - -취소 금액 중 면세 금액 - 값을 넣지 않으면 전액 과세됩니다. + --- +
-
- -취소 금액 중 부가세 금액 (PG사 기본값: null). 결제 시 부가세를 지정했던 경우 필수 입력 바랍니다. 지원되는 PG사: 나이스페이먼츠(NICE), 이니시스(HTML5_INICIS), 웰컴페이먼츠(WELCOME) + --- - - -결제 건의 취소 가능 잔액 - 값을 넣지 않으면 별도의 검증 처리를 수행하지 않습니다. + **`charge`** **Charge** - - -환불 계좌 정보 - 가상계좌 결제인 경우에만 기입할 수 있습니다. + 충전식 포인트 결제 정보 - +
+

Charge

-### Responses + **`bank_code`** **string** - - - -**`cancelled_tx_id`** **\*** **string** + 표준 은행 코드 (계좌 이체시 입력됨) -취소 대상 거래 아이디 + --- +
---- + --- -**`cancellation_id`** **\*** **string** + **`transfer`** **Transfer** -취소 아이디 + 계좌이체 정보 ---- +
+

Transfer

-**`payment`** **\*** **Payment** + **`bank_code`** **string** -결제내역 + 표준 은행 코드 -
-

Payment

+ --- +
-**`id`** **\*** **string** + --- + + -고객사에서 입력한 결제 ID + + + **`type`** **GiftCertificateType** ---- + `"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` -**`merchant_id`** **\*** **string** + --- -고객사 ID + **`approval_number`** **\*** **string** ---- + 상품권 승인번호 -**`store_id`** **\*** **string** + --- + -하위 상점 ID + + **`month`** **\*** **integer** ---- + 할부 개월 수 -**`transactions`** **\*** **Array\[Transaction]** + --- -동일한 `payment_id`로 결제시도된 결제내역들 + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 -
+ --- + ---- + + **`carrier`** **Carrier** - + 통신사 - -**`detail`** **CardDetail** + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` -카드 정보 + --- -
-

CardDetail

+ **`phone_number`** **string** -**`publisher`** **string** + 휴대전화번호 -발행사 코드 + --- + ---- + + **`country`** **Country** -**`issuer`** **string** + 국가 코드 -발급사 코드 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- -**`brand`** **CardBrand** + **`province`** **string** -카드 브랜드 + 시/도/구 -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + --- ---- + **`city`** **string** -**`card_type`** **CardType** + 도시 -카드 종류 + --- -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + **`address_line_1`** **\*** **string** ---- + 일반 주소 -**`card_owner_type`** **CardOwnerType** + --- -카드 소유주 유형 + **`address_line_2`** **\*** **string** -`"PERSONAL"`, `"CORPORATE"` + 상세 주소 ---- + --- + + -**`bin`** **string** + + + **`id`** **\*** **string** -카드 빈넘버 + 포트원 채번 거래번호 ---- + --- -**`name`** **string** + **`is_primary`** **\*** **boolean** -카드전표인자명 + 대표 트랜잭션 여부 ---- + --- -
+ **`version`** **\*** **Version** ---- + 포트원 내부 결제시스템 버전 -**`number`** **string** + `"V1"`, `"V2"` -마스킹된 카드 번호 + --- ---- + **`method`** **PaymentMethod** -**`approval_number`** **string** + 결제수단 목록 -승인 번호 + `"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` ---- + --- -**`installment`** **Installment** + **`channel`** **Channel** -할부 정보 + 결제 채널 정보 -
-

Installment

+
+

Channel

-**`month`** **\*** **integer** + **`id`** **string** -할부 개월 수 + 채널 ID ---- + --- -**`is_interest_free`** **\*** **boolean** + **`name`** **string** -무이자할부 여부 + 채널 이름 ---- + --- -
+ **`key`** **string** ---- + 채널 키 -**`card_point_used`** **boolean** + --- -카드 포인트 사용여부 + **`type`** **\*** **ChannelType** ---- + 채널 유형 - + `"LIVE"`, `"TEST"` - -**`publisher`** **string** + --- -발행사 코드 + **`pg_provider`** **\*** **PgProvider** ---- + 결제대행사(PG사) -**`issuer`** **string** + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` -발급사 코드 + --- ---- + **`pg_merchant_id`** **\*** **string** -**`brand`** **CardBrand** + PG사에 등록된 고객사 ID -카드 브랜드 + --- +
-`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + --- ---- + **`schedule_id`** **string** -**`card_type`** **CardType** + 예약결제 ID - 예약결제에만 해당됩니다. -카드 종류 + --- -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + **`billing_key`** **string** ---- + 결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. -**`card_owner_type`** **CardOwnerType** + --- -카드 소유주 유형 + **`notifications`** **Array\[notification\_Notification]** -`"PERSONAL"`, `"CORPORATE"` + 웹훅 발송 내역 ---- +
+

notification\_Notification

-**`bin`** **string** + **`webhook`** **Webhook** -카드 빈넘버 + 웹훅 정보 ---- + --- +
-**`name`** **string** + --- -카드전표인자명 + **`status_updated_at`** **string** ---- + 상태변경시각 -
+ --- - -**`easy_pay_provider`** **\*** **EasyPayProvider** + **`updated_at`** **\*** **string** -간편결제 PG사 + 수정 시각 -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + --- ---- + **`order_name`** **\*** **string** -**`card`** **Card** + 주문명 -카드 결제 정보 + --- -
-

Card

+ **`status`** **\*** **TransactionStatus** -**`detail`** **CardDetail** + 결제 건의 상태를 나타내는 enum string -카드 정보 + `"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` ---- + --- -**`number`** **string** + **`amount`** **\*** **TransactionAmount** -마스킹된 카드 번호 + 결제 금액 및 통화 관련 세부 정보 ---- +
+

TransactionAmount

-**`approval_number`** **string** + **`currency`** **\*** **Currency** -승인 번호 + 통화 ---- + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -**`installment`** **Installment** + --- -할부 정보 + **`total`** **\*** **integer** ---- + 결제 요청 금액 -**`card_point_used`** **boolean** + --- -카드 포인트 사용여부 + **`tax_free`** **\*** **integer** ---- + 면세금액 -
+ --- ---- + **`vat`** **integer** -**`charge`** **Charge** + 부가세 -충전식 포인트 결제 정보 + --- -
-

Charge

+ **`supply`** **integer** -**`bank_code`** **string** + 공급가액 -표준 은행 코드 (계좌 이체시 입력됨) + --- ---- + **`discount`** **\*** **integer** -
+ 할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) ---- + --- -**`transfer`** **Transfer** + **`paid`** **\*** **integer** -계좌이체 정보 + 실제 결제 금액 -
-

Transfer

+ --- -**`bank_code`** **string** + **`cancelled`** **\*** **integer** -표준 은행 코드 + 취소 금액 ---- + --- -
+ **`cancelled_tax_free`** **\*** **integer** ---- + 취소 금액 중 면세 금액 - - + --- +
- - -**`type`** **GiftCertificateType** + --- -`"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` + **`customer`** **\*** **Customer** ---- + 구매자 정보 -**`approval_number`** **\*** **string** +
+

Customer

-상품권 승인번호 + **`id`** **string** ---- + 구매자 ID - + --- - -**`month`** **\*** **integer** + **`name`** **string** -할부 개월 수 + 구매자 이름 ---- + --- -**`is_interest_free`** **\*** **boolean** + **`birthYear`** **string** -무이자할부 여부 + 구매자 생년 ---- + --- - + **`gender`** **Gender** - -**`carrier`** **Carrier** + `"MALE"`, `"FEMALE"`, `"OTHER"` -통신사 + --- -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + **`email`** **string** ---- + 구매자 이메일 -**`phone_number`** **string** + --- -휴대전화번호 + **`phone_number`** **string** ---- + 구매자 전화번호 - + --- - -**`country`** **Country** + **`one_line_address`** **string** -국가 코드 + 구매자 주소 (한 줄) -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- ---- + **`separated_address`** **SeparatedAddress** -**`province`** **string** + 구매자 주소 (단위별) -시/도/구 + --- ---- + **`zipcode`** **string** -**`city`** **string** + 구매자 우편번호 -도시 + --- +
---- + --- -**`address_line_1`** **\*** **string** + **`origin`** **\*** **Origin** -일반 주소 + 결제를 요청한 근원에 대한 정보 ---- +
+

Origin

-**`address_line_2`** **\*** **string** + **`platform_type`** **\*** **string** -상세 주소 + 결제를 요청한 단말의 플랫폼 분류 ---- + `"PC"`, `"MOBILE"`, `"API"` - - + --- - - -**`id`** **\*** **string** + **`user_agent`** **string** -포트원 채번 거래번호 + 결제근원의 환경 정보 (Http 의 User-Agent header value) ---- + --- -**`is_primary`** **\*** **boolean** + **`url`** **string** -대표 트랜잭션 여부 + 결제근원의 페이지 url ---- + --- -**`version`** **\*** **Version** + **`ip_address`** **\*** **string** -포트원 내부 결제시스템 버전 + 결제근원의 IP 주소 -`"V1"`, `"V2"` + --- +
---- + --- -**`method`** **PaymentMethod** + **`is_cultural_expense`** **boolean** -결제수단 목록 + 문화비 지출 여부 -`"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` + --- ---- + **`is_escrow`** **\*** **boolean** -**`channel`** **Channel** + 에스크로 여부 -결제 채널 정보 + --- -
-

Channel

+ **`escrow_detail`** **EscrowDetail** -**`id`** **string** + 에스크로 결제 정보 -채널 ID +
+

EscrowDetail

---- + **`company`** **\*** **string** -**`name`** **string** + 택배사 -채널 이름 + --- ---- + **`invoice_number`** **\*** **string** -**`key`** **string** + 송장번호 -채널 키 + --- ---- + **`status`** **EscrowStatus** -**`type`** **\*** **ChannelType** + 에스크로 상태 -채널 유형 + `"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` -`"LIVE"`, `"TEST"` + --- ---- + **`sent_at`** **string** -**`pg_provider`** **\*** **PgProvider** + 발송 일시 (배송이 발송되었을 경우 제공) -결제대행사(PG사) + --- -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + **`applied_at`** **string** ---- + 배송등록 처리 일자 -**`pg_merchant_id`** **\*** **string** + --- +
-PG사에 등록된 고객사 ID + --- ---- + **`products`** **Array\[Product]** -
+ 상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. ---- +
+

Product

-**`schedule_id`** **string** + **`id`** **\*** **string** -예약결제 ID - 예약결제에만 해당됩니다. + 상품 ID ---- + --- -**`billing_key`** **string** + **`name`** **\*** **string** -결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. + 상품명 ---- + --- -**`notifications`** **Array\[notification_Notification]** + **`tag`** **string** -웹훅 발송 내역 + 상품 태그(카테고리) -
-

notification_Notification

+ --- -**`webhook`** **Webhook** + **`code`** **string** -웹훅 정보 + 상품 코드 ---- + --- -
+ **`amount`** **\*** **integer** ---- + 상품 단위가격 -**`status_updated_at`** **string** + --- -상태변경시각 + **`quantity`** **\*** **integer** ---- + 주문 수량 -**`updated_at`** **\*** **string** + --- +
-수정 시각 + --- ---- + **`product_count`** **integer** -**`order_name`** **\*** **string** + 상품 갯수 -주문명 + --- ---- + **`custom_data`** **string** -**`status`** **\*** **TransactionStatus** + 고객사의 결제 데이터 추가 정보 -결제 건의 상태를 나타내는 enum string + --- -`"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` + **`requested_at`** **\*** **string** ---- + 결제요청시각 -**`amount`** **\*** **TransactionAmount** + --- -결제 금액 및 통화 관련 세부 정보 + **`promotion_id`** **string** -
-

TransactionAmount

+ 포트원 프로모션 아이디 -**`currency`** **\*** **Currency** + --- -통화 + **`failure`** **PaymentFailure** -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + 결제 실패 정보 ---- +
+

PaymentFailure

-**`total`** **\*** **integer** + **`reason`** **string** -결제 요청 금액 + 실패 이유 ---- + --- -**`tax_free`** **\*** **integer** + **`pg_code`** **string** -면세금액 + PG사 전달 에러 코드 ---- + --- -**`vat`** **integer** + **`pg_message`** **string** -부가세 + PG사 전달 에러 메세지 ---- + --- +
-**`supply`** **integer** + --- -공급가액 + **`failed_at`** **string** ---- + 결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. -**`discount`** **\*** **integer** + --- -할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) + **`country`** **Country** ---- + 국가 코드 -**`paid`** **\*** **integer** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -실제 결제 금액 + --- ---- + **`paid_at`** **string** -**`cancelled`** **\*** **integer** + 결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -취소 금액 + --- ---- + **`payment_method_detail`** **PaymentMethodDetail** -**`cancelled_tax_free`** **\*** **integer** + 결제 수단 정보 -취소 금액 중 면세 금액 +
+

PaymentMethodDetail

---- + **`card`** **Card** -
+ 카드 결제 정보 ---- + --- -**`customer`** **\*** **Customer** + **`transfer`** **Transfer** -구매자 정보 + 계좌이체 정보 -
-

Customer

+ --- -**`id`** **string** + **`virtual_account`** **VirtualAccount** -구매자 ID + 가상계좌 결제 정보 ---- + --- -**`name`** **string** + **`mobile`** **Mobile** -구매자 이름 + 모바일결제 정보 ---- + --- -**`birthYear`** **string** + **`gift_certificate`** **GiftCertificate** -구매자 생년 + 상품권 결제 정보 ---- + --- -**`gender`** **Gender** + **`easy_pay`** **EasyPay** -`"MALE"`, `"FEMALE"`, `"OTHER"` + 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) ---- + --- +
-**`email`** **string** + --- -구매자 이메일 + **`pg_tx_id`** **string** ---- + PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -**`phone_number`** **string** + --- -구매자 전화번호 + **`pg_response`** **string** ---- + PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -**`one_line_address`** **string** + --- -구매자 주소 (한 줄) + **`cash_receipt`** **CashReceiptDetail** ---- + 현금영수증 정보 -**`separated_address`** **SeparatedAddress** +
+

CashReceiptDetail

-구매자 주소 (단위별) + **`pg_receipt_id`** **string** ---- + PG사 현금영수증 발급 ID -**`zipcode`** **string** + --- -구매자 우편번호 + **`issue_number`** **\*** **string** ---- + 현금영수증 승인번호 -
+ --- ---- + **`type`** **CashReceiptType** -**`origin`** **\*** **Origin** + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` -결제를 요청한 근원에 대한 정보 + --- -
-

Origin

+ **`amount`** **\*** **integer** -**`platform_type`** **\*** **string** + 금액 -결제를 요청한 단말의 플랫폼 분류 + --- -`"PC"`, `"MOBILE"`, `"API"` + **`tax_free_amount`** **integer** ---- + 면세금액 -**`user_agent`** **string** + --- -결제근원의 환경 정보 (Http 의 User-Agent header value) + **`status`** **CashReceiptStatus** ---- + `"ISSUED"`, `"CANCELLED"` -**`url`** **string** + --- -결제근원의 페이지 url + **`issued_at`** **\*** **string** ---- + 발급일시 -**`ip_address`** **\*** **string** + --- -결제근원의 IP 주소 + **`cancelled_at`** **string** ---- + 취소일시 (`status`가 `CANCELLED`인 경우 제공) -
+ --- ---- + **`receipt_url`** **string** -**`is_cultural_expense`** **boolean** + 영수증 url -문화비 지출 여부 + --- +
---- + --- -**`is_escrow`** **\*** **boolean** + **`cancellations`** **Array\[Cancellation]** -에스크로 여부 + 취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. ---- +
+

Cancellation

-**`escrow_detail`** **EscrowDetail** + **`id`** **\*** **string** -에스크로 결제 정보 + 취소 ID -
-

EscrowDetail

+ --- -**`company`** **\*** **string** + **`pg_cancellation_id`** **\*** **string** -택배사 + PG사 취소 ID ---- + --- -**`invoice_number`** **\*** **string** + **`cancel_amount`** **\*** **integer** -송장번호 + 취소 금액 ---- + --- -**`status`** **EscrowStatus** + **`tax_free_amount`** **\*** **integer** -에스크로 상태 + 취소 면세 금액 -`"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` + --- ---- + **`easy_pay_discount_amount`** **integer** -**`sent_at`** **string** + 적립형 포인트의 환불 금액 -발송 일시 (배송이 발송되었을 경우 제공) + --- ---- + **`reason`** **\*** **string** -**`applied_at`** **string** + 취소 사유 -배송등록 처리 일자 + --- ---- + **`cancelled_at`** **string** -
+ 취소일시 ---- + --- -**`products`** **Array\[Product]** + **`requested_at`** **\*** **string** -상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. + 취소요청일시 -
-

Product

+ --- -**`id`** **\*** **string** + **`status`** **\*** **CancellationStatus** -상품 ID + 취소 상태 ---- + `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` -**`name`** **\*** **string** + --- +
-상품명 + --- ---- + **`cancelled_at`** **string** -**`tag`** **string** + 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. -상품 태그(카테고리) + --- + ---- + + **`bank_code`** **string** -**`code`** **string** + 표준 은행 코드 -상품 코드 + --- + ---- + + **`bank_code`** **string** -**`amount`** **\*** **integer** + 표준 은행 코드 -상품 단위가격 + --- ---- + **`account_number`** **\*** **string** -**`quantity`** **\*** **integer** + 계좌번호 -주문 수량 + --- ---- + **`account_type`** **VirtualAccountType** -
+ 계좌 유형 ---- + `"FIXED"`, `"NORMAL"` -**`product_count`** **integer** + --- -상품 갯수 + **`remittee_name`** **string** ---- + 계좌주 -**`custom_data`** **string** + --- -고객사의 결제 데이터 추가 정보 + **`remitter_name`** **string** ---- + 송금인 (입금자) -**`requested_at`** **\*** **string** + --- -결제요청시각 + **`expired_at`** **string** ---- + 입금만료시점 -**`promotion_id`** **string** + --- -포트원 프로모션 아이디 + **`issued_at`** **string** ---- + 계좌발급시점 -**`failure`** **PaymentFailure** + --- -결제 실패 정보 + **`refund_status`** **RefundStatus** -
-

PaymentFailure

+ 가상계좌 결제가 환불 단계일 때의 환불 상태 -**`reason`** **string** + `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` -실패 이유 + --- + ---- + + **`id`** **\*** **string** -**`pg_code`** **string** + 웹훅 ID -PG사 전달 에러 코드 + --- ---- + **`status`** **WebhookStatus** -**`pg_message`** **string** + 웹훅 전송 상태 -PG사 전달 에러 메세지 + `"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` ---- + --- -
+ **`type`** **WebhookType** ---- + 웹훅 유형 -**`failed_at`** **string** + `"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` -결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. + --- ---- + **`url`** **\*** **string** -**`country`** **Country** + 웹훅이 발송된 url -국가 코드 + --- -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + **`is_async`** **boolean** ---- + 비동기 웹훅 여부 -**`paid_at`** **string** + --- -결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`current_execution`** **integer** ---- + 현재 발송 횟수 -**`payment_method_detail`** **PaymentMethodDetail** + --- -결제 수단 정보 + **`max_execution`** **integer** -
-

PaymentMethodDetail

+ 최대 발송 횟수 -**`card`** **Card** + --- -카드 결제 정보 + **`webhook_trigger`** **WebhookTrigger** ---- + 웹훅 실행 주체 -**`transfer`** **Transfer** + `"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` -계좌이체 정보 + --- ---- + **`request`** **WebhookRequest** -**`virtual_account`** **VirtualAccount** + 웹훅 요청 정보 -가상계좌 결제 정보 +
+

WebhookRequest

---- + **`header`** **object** -**`mobile`** **Mobile** + 요청 header -모바일결제 정보 + --- ---- + **`body`** **\*** **string** -**`gift_certificate`** **GiftCertificate** + 요청 body -상품권 결제 정보 + --- ---- + **`requested_at`** **string** -**`easy_pay`** **EasyPay** + 요청 시각 -간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) + --- +
---- + --- -
+ **`response`** **WebhookResponse** ---- + 웹훅 응답 정보 -**`pg_tx_id`** **string** +
+

WebhookResponse

-PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`code`** **\*** **string** ---- + 웹훅 응답 http 코드 -**`pg_response`** **string** + --- -PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`header`** **\*** **object** ---- + 응답 header -**`cash_receipt`** **CashReceiptDetail** + --- -현금영수증 정보 + **`body`** **\*** **string** -
-

CashReceiptDetail

+ 응답 body -**`pg_receipt_id`** **string** + --- -PG사 현금영수증 발급 ID + **`responded_at`** **\*** **string** ---- + 응답 시각 -**`issue_number`** **\*** **string** + --- +
-현금영수증 승인번호 + --- ---- + **`triggered_at`** **string** -**`type`** **CashReceiptType** + 웹훅 처리 시작 시각 -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + --- + + + ---- + + + + **`code`** **\*** **string** -**`amount`** **\*** **integer** + `"INVALID_REQUEST"`, `"NOT_PAID"`, `"PAYMENT_ALREADY_CANCELLED"`, `"REFUNDABLE_AMOUNT_CONSISTENCY_BROKEN"`, `"CANCEL_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCELLABLE_AMOUNT"`, `"CANCEL_TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCEL_AMOUNT"`, `"CANCEL_TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCELLABLE_TAX_FREE_AMOUNT"`, `"CANCEL_TAX_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCELLABLE_TAX_AMOUNT"` -금액 + --- ---- + **`params`** **object** -**`tax_free_amount`** **integer** + 에러 세부사항 -면세금액 + --- + + + ---- + + + + **`code`** **\*** **string** -**`status`** **CashReceiptStatus** + `"UNAUTHORIZED"` -`"ISSUED"`, `"CANCELLED"` + --- ---- + **`params`** **object** -**`issued_at`** **\*** **string** + 에러 세부사항 -발급일시 + --- + + + ---- + + + + **`code`** **\*** **string** -**`cancelled_at`** **string** + `"PAYMENT_NOT_FOUND"` -취소일시 (`status`가 `CANCELLED`인 경우 제공) + --- ---- + **`params`** **object** -**`receipt_url`** **string** + 에러 세부사항 -영수증 url + --- + + + ---- + + + + **`code`** **\*** **string** -
+ `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` ---- + --- -**`cancellations`** **Array\[Cancellation]** + **`params`** **object** -취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. + 에러 세부사항 -
-

Cancellation

+ --- + + + + -**`id`** **\*** **string** + + + **`bank`** **\*** **string** -취소 ID + 은행 ---- + --- -**`pg_cancellation_id`** **\*** **string** + **`account_holder`** **\*** **string** -PG사 취소 ID + 예금주 ---- + --- -**`cancel_amount`** **\*** **integer** + **`account_number`** **\*** **string** -취소 금액 + 계좌번호 ---- + --- -**`tax_free_amount`** **\*** **integer** + **`phone_number`** **string** -취소 면세 금액 + 예금주 연락처 - 스마트로 가상계좌 결제인 경우에 필요합니다. ---- + --- + + -**`easy_pay_discount_amount`** **integer** +## ⌨ 웹훅 재발송 -적립형 포인트의 환불 금액 + + + `tx_id` ---- + 와 -**`reason`** **\*** **string** + `webhook_id` -취소 사유 + 모두 값을 넣지 않으면 대표 트랜잭션의 가장 최근 웹훅 발송 이력을 기준으로 재전송됩니다. + ---- + ### Parameters -**`cancelled_at`** **string** + #### Path -취소일시 + + 결제 ID + ---- + #### Query -**`requested_at`** **\*** **string** + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + -취소요청일시 + #### Body ---- + + 재발송 대상 트랜잭션 아이디 - 값을 넣지 않으면 기본값은 대표 트랜잭션 아이디로 설정됩니다. + -**`status`** **\*** **CancellationStatus** + + 재발송 대상 웹훅 아이디 - 값을 넣지 않으면 기본값은 가장 최근의 웹훅 아이디로 설정됩니다. + -취소 상태 + ### Responses -`"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` + + + + **`tx_id`** **\*** **string** ---- + 재발송 대상 트랜잭션 아이디 -
+ --- ---- + **`webhook_id`** **string** -**`cancelled_at`** **string** + 재발송 대상 웹훅 아이디 (값을 넣지 않으면 가장 최근의 웹훅 아이디 기준으로 재전송) 비동기 웹훅이거나 웹훅 처리에 너무 오랜 시간이 걸리는 경우 값이 비어있을 수 있습니다. -결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. + --- ---- + **`payment`** **\*** **Payment** -
+ 결제내역 - -**`bank_code`** **string** +
+

Payment

-표준 은행 코드 + **`id`** **\*** **string** ---- + 고객사에서 입력한 결제 ID - + --- - -**`bank_code`** **string** + **`merchant_id`** **\*** **string** -표준 은행 코드 + 고객사 ID ---- + --- -**`account_number`** **\*** **string** + **`store_id`** **\*** **string** -계좌번호 + 하위 상점 ID ---- + --- -**`account_type`** **VirtualAccountType** + **`transactions`** **\*** **Array\[Transaction]** -계좌 유형 + 동일한 `payment_id`로 결제시도된 결제내역들 -`"FIXED"`, `"NORMAL"` + --- +
---- + --- +
-**`remittee_name`** **string** + + **`detail`** **CardDetail** -계좌주 + 카드 정보 ---- +
+

CardDetail

-**`remitter_name`** **string** + **`publisher`** **string** -송금인 (입금자) + 발행사 코드 ---- + --- -**`expired_at`** **string** + **`issuer`** **string** -입금만료시점 + 발급사 코드 ---- + --- -**`issued_at`** **string** + **`brand`** **CardBrand** -계좌발급시점 + 카드 브랜드 ---- + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -**`refund_status`** **RefundStatus** + --- -가상계좌 결제가 환불 단계일 때의 환불 상태 + **`card_type`** **CardType** -`"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` + 카드 종류 ---- + `"CREDIT"`, `"DEBIT"`, `"GIFT"` - + --- - -**`id`** **\*** **string** + **`card_owner_type`** **CardOwnerType** -웹훅 ID + 카드 소유주 유형 ---- + `"PERSONAL"`, `"CORPORATE"` -**`status`** **WebhookStatus** + --- -웹훅 전송 상태 + **`bin`** **string** -`"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` + 카드 빈넘버 ---- + --- -**`type`** **WebhookType** + **`name`** **string** -웹훅 유형 + 카드전표인자명 -`"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` + --- +
---- + --- -**`url`** **\*** **string** + **`number`** **string** -웹훅이 발송된 url + 마스킹된 카드 번호 ---- + --- -**`is_async`** **boolean** + **`approval_number`** **string** -비동기 웹훅 여부 + 승인 번호 ---- + --- -**`current_execution`** **integer** + **`installment`** **Installment** -현재 발송 횟수 + 할부 정보 ---- +
+

Installment

-**`max_execution`** **integer** + **`month`** **\*** **integer** -최대 발송 횟수 + 할부 개월 수 ---- + --- -**`webhook_trigger`** **WebhookTrigger** + **`is_interest_free`** **\*** **boolean** -웹훅 실행 주체 + 무이자할부 여부 -`"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` + --- +
---- + --- -**`request`** **WebhookRequest** + **`card_point_used`** **boolean** -웹훅 요청 정보 + 카드 포인트 사용여부 -
-

WebhookRequest

+ --- + -**`header`** **object** + + **`publisher`** **string** -요청 header + 발행사 코드 ---- + --- -**`body`** **\*** **string** + **`issuer`** **string** -요청 body + 발급사 코드 ---- + --- -**`requested_at`** **string** + **`brand`** **CardBrand** -요청 시각 + 카드 브랜드 ---- + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -
+ --- ---- + **`card_type`** **CardType** -**`response`** **WebhookResponse** + 카드 종류 -웹훅 응답 정보 + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -
-

WebhookResponse

+ --- -**`code`** **\*** **string** + **`card_owner_type`** **CardOwnerType** -웹훅 응답 http 코드 + 카드 소유주 유형 ---- + `"PERSONAL"`, `"CORPORATE"` -**`header`** **\*** **object** + --- -응답 header + **`bin`** **string** ---- + 카드 빈넘버 -**`body`** **\*** **string** + --- -응답 body + **`name`** **string** ---- + 카드전표인자명 -**`responded_at`** **\*** **string** + --- + -응답 시각 + + **`easy_pay_provider`** **\*** **EasyPayProvider** ---- + 간편결제 PG사 -
+ `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` ---- + --- -**`triggered_at`** **string** + **`card`** **Card** -웹훅 처리 시작 시각 + 카드 결제 정보 ---- +
+

Card

- - + **`detail`** **CardDetail** - + 카드 정보 - - - -**`code`** **\*** **string** + --- -`"INVALID_REQUEST"`, `"NOT_PAID"`, `"PAYMENT_ALREADY_CANCELLED"`, `"REFUNDABLE_AMOUNT_CONSISTENCY_BROKEN"`, `"CANCEL_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCELLABLE_AMOUNT"`, `"CANCEL_TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCEL_AMOUNT"`, `"CANCEL_TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCELLABLE_TAX_FREE_AMOUNT"`, `"CANCEL_TAX_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_CANCELLABLE_TAX_AMOUNT"` + **`number`** **string** ---- + 마스킹된 카드 번호 -**`params`** **object** + --- -에러 세부사항 + **`approval_number`** **string** ---- + 승인 번호 - - + --- - + **`installment`** **Installment** - - - -**`code`** **\*** **string** + 할부 정보 -`"UNAUTHORIZED"` + --- ---- + **`card_point_used`** **boolean** -**`params`** **object** + 카드 포인트 사용여부 -에러 세부사항 + --- +
---- + --- -
-
+ **`charge`** **Charge** - + 충전식 포인트 결제 정보 - - - -**`code`** **\*** **string** +
+

Charge

-`"PAYMENT_NOT_FOUND"` + **`bank_code`** **string** ---- + 표준 은행 코드 (계좌 이체시 입력됨) -**`params`** **object** + --- +
-에러 세부사항 + --- ---- + **`transfer`** **Transfer** -
-
+ 계좌이체 정보 -
+
+

Transfer

- - - -**`code`** **\*** **string** + **`bank_code`** **string** -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + 표준 은행 코드 ---- + --- +
-**`params`** **object** + --- +
+ -에러 세부사항 + + + **`type`** **GiftCertificateType** ---- + `"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` - - + --- - + **`approval_number`** **\*** **string** - + 상품권 승인번호 - - -**`bank`** **\*** **string** + --- + -은행 + + **`month`** **\*** **integer** ---- + 할부 개월 수 -**`account_holder`** **\*** **string** + --- -예금주 + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 -**`account_number`** **\*** **string** + --- + -계좌번호 + + **`carrier`** **Carrier** ---- + 통신사 -**`phone_number`** **string** + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` -예금주 연락처 - 스마트로 가상계좌 결제인 경우에 필요합니다. + --- ---- + **`phone_number`** **string** - - + 휴대전화번호 -## ⌨ 웹훅 재발송 + --- + - - -`tx_id` + + **`country`** **Country** -와 + 국가 코드 -`webhook_id` + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -모두 값을 넣지 않으면 대표 트랜잭션의 가장 최근 웹훅 발송 이력을 기준으로 재전송됩니다. + --- - + **`province`** **string** -### Parameters + 시/도/구 -#### Path + --- - -결제 ID + **`city`** **string** - + 도시 -#### Query + --- - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + **`address_line_1`** **\*** **string** - + 일반 주소 -#### Body + --- - -재발송 대상 트랜잭션 아이디 - 값을 넣지 않으면 기본값은 대표 트랜잭션 아이디로 설정됩니다. + **`address_line_2`** **\*** **string** - - -재발송 대상 웹훅 아이디 - 값을 넣지 않으면 기본값은 가장 최근의 웹훅 아이디로 설정됩니다. + 상세 주소 - + --- + + -### Responses + + + **`id`** **\*** **string** - - - -**`tx_id`** **\*** **string** + 포트원 채번 거래번호 -재발송 대상 트랜잭션 아이디 + --- ---- + **`is_primary`** **\*** **boolean** -**`webhook_id`** **string** + 대표 트랜잭션 여부 -재발송 대상 웹훅 아이디 (값을 넣지 않으면 가장 최근의 웹훅 아이디 기준으로 재전송) 비동기 웹훅이거나 웹훅 처리에 너무 오랜 시간이 걸리는 경우 값이 비어있을 수 있습니다. + --- ---- + **`version`** **\*** **Version** -**`payment`** **\*** **Payment** + 포트원 내부 결제시스템 버전 -결제내역 + `"V1"`, `"V2"` -
-

Payment

+ --- -**`id`** **\*** **string** + **`method`** **PaymentMethod** -고객사에서 입력한 결제 ID + 결제수단 목록 ---- + `"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` -**`merchant_id`** **\*** **string** + --- -고객사 ID + **`channel`** **Channel** ---- + 결제 채널 정보 -**`store_id`** **\*** **string** +
+

Channel

-하위 상점 ID + **`id`** **string** ---- + 채널 ID -**`transactions`** **\*** **Array\[Transaction]** + --- -동일한 `payment_id`로 결제시도된 결제내역들 + **`name`** **string** ---- + 채널 이름 -
+ --- ---- + **`key`** **string** - + 채널 키 - -**`detail`** **CardDetail** + --- -카드 정보 + **`type`** **\*** **ChannelType** -
-

CardDetail

+ 채널 유형 -**`publisher`** **string** + `"LIVE"`, `"TEST"` -발행사 코드 + --- ---- + **`pg_provider`** **\*** **PgProvider** -**`issuer`** **string** + 결제대행사(PG사) -발급사 코드 + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` ---- + --- -**`brand`** **CardBrand** + **`pg_merchant_id`** **\*** **string** -카드 브랜드 + PG사에 등록된 고객사 ID -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + --- +
---- + --- -**`card_type`** **CardType** + **`schedule_id`** **string** -카드 종류 + 예약결제 ID - 예약결제에만 해당됩니다. -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + --- ---- + **`billing_key`** **string** -**`card_owner_type`** **CardOwnerType** + 결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. -카드 소유주 유형 + --- -`"PERSONAL"`, `"CORPORATE"` + **`notifications`** **Array\[notification\_Notification]** ---- + 웹훅 발송 내역 -**`bin`** **string** +
+

notification\_Notification

-카드 빈넘버 + **`webhook`** **Webhook** ---- + 웹훅 정보 -**`name`** **string** + --- +
-카드전표인자명 + --- ---- + **`status_updated_at`** **string** -
+ 상태변경시각 ---- + --- -**`number`** **string** + **`updated_at`** **\*** **string** -마스킹된 카드 번호 + 수정 시각 ---- + --- -**`approval_number`** **string** + **`order_name`** **\*** **string** -승인 번호 + 주문명 ---- + --- -**`installment`** **Installment** + **`status`** **\*** **TransactionStatus** -할부 정보 + 결제 건의 상태를 나타내는 enum string -
-

Installment

+ `"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` -**`month`** **\*** **integer** + --- -할부 개월 수 + **`amount`** **\*** **TransactionAmount** ---- + 결제 금액 및 통화 관련 세부 정보 -**`is_interest_free`** **\*** **boolean** +
+

TransactionAmount

-무이자할부 여부 + **`currency`** **\*** **Currency** ---- + 통화 -
+ `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` ---- + --- -**`card_point_used`** **boolean** + **`total`** **\*** **integer** -카드 포인트 사용여부 + 결제 요청 금액 ---- + --- - + **`tax_free`** **\*** **integer** - -**`publisher`** **string** + 면세금액 -발행사 코드 + --- ---- + **`vat`** **integer** -**`issuer`** **string** + 부가세 -발급사 코드 + --- ---- + **`supply`** **integer** -**`brand`** **CardBrand** + 공급가액 -카드 브랜드 + --- -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + **`discount`** **\*** **integer** ---- + 할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) -**`card_type`** **CardType** + --- -카드 종류 + **`paid`** **\*** **integer** -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + 실제 결제 금액 ---- + --- -**`card_owner_type`** **CardOwnerType** + **`cancelled`** **\*** **integer** -카드 소유주 유형 + 취소 금액 -`"PERSONAL"`, `"CORPORATE"` + --- ---- + **`cancelled_tax_free`** **\*** **integer** -**`bin`** **string** + 취소 금액 중 면세 금액 -카드 빈넘버 + --- +
---- + --- -**`name`** **string** + **`customer`** **\*** **Customer** -카드전표인자명 + 구매자 정보 ---- +
+

Customer

- + **`id`** **string** - -**`easy_pay_provider`** **\*** **EasyPayProvider** + 구매자 ID -간편결제 PG사 + --- -`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + **`name`** **string** ---- + 구매자 이름 -**`card`** **Card** + --- -카드 결제 정보 + **`birthYear`** **string** -
-

Card

+ 구매자 생년 -**`detail`** **CardDetail** + --- -카드 정보 + **`gender`** **Gender** ---- + `"MALE"`, `"FEMALE"`, `"OTHER"` -**`number`** **string** + --- -마스킹된 카드 번호 + **`email`** **string** ---- + 구매자 이메일 -**`approval_number`** **string** + --- -승인 번호 + **`phone_number`** **string** ---- + 구매자 전화번호 -**`installment`** **Installment** + --- -할부 정보 + **`one_line_address`** **string** ---- + 구매자 주소 (한 줄) -**`card_point_used`** **boolean** + --- -카드 포인트 사용여부 + **`separated_address`** **SeparatedAddress** ---- + 구매자 주소 (단위별) -
+ --- ---- + **`zipcode`** **string** -**`charge`** **Charge** + 구매자 우편번호 -충전식 포인트 결제 정보 + --- +
-
-

Charge

+ --- -**`bank_code`** **string** + **`origin`** **\*** **Origin** -표준 은행 코드 (계좌 이체시 입력됨) + 결제를 요청한 근원에 대한 정보 ---- +
+

Origin

-
+ **`platform_type`** **\*** **string** ---- + 결제를 요청한 단말의 플랫폼 분류 -**`transfer`** **Transfer** + `"PC"`, `"MOBILE"`, `"API"` -계좌이체 정보 + --- -
-

Transfer

+ **`user_agent`** **string** -**`bank_code`** **string** + 결제근원의 환경 정보 (Http 의 User-Agent header value) -표준 은행 코드 + --- ---- + **`url`** **string** -
+ 결제근원의 페이지 url ---- + --- - - + **`ip_address`** **\*** **string** - - -**`type`** **GiftCertificateType** + 결제근원의 IP 주소 -`"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` + --- +
---- + --- -**`approval_number`** **\*** **string** + **`is_cultural_expense`** **boolean** -상품권 승인번호 + 문화비 지출 여부 ---- + --- -
+ **`is_escrow`** **\*** **boolean** - -**`month`** **\*** **integer** + 에스크로 여부 -할부 개월 수 + --- ---- + **`escrow_detail`** **EscrowDetail** -**`is_interest_free`** **\*** **boolean** + 에스크로 결제 정보 -무이자할부 여부 +
+

EscrowDetail

---- + **`company`** **\*** **string** - + 택배사 - -**`carrier`** **Carrier** + --- -통신사 + **`invoice_number`** **\*** **string** -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + 송장번호 ---- + --- -**`phone_number`** **string** + **`status`** **EscrowStatus** -휴대전화번호 + 에스크로 상태 ---- + `"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` - + --- - -**`country`** **Country** + **`sent_at`** **string** -국가 코드 + 발송 일시 (배송이 발송되었을 경우 제공) -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- ---- + **`applied_at`** **string** -**`province`** **string** + 배송등록 처리 일자 -시/도/구 + --- +
---- + --- -**`city`** **string** + **`products`** **Array\[Product]** -도시 + 상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. ---- +
+

Product

-**`address_line_1`** **\*** **string** + **`id`** **\*** **string** -일반 주소 + 상품 ID ---- + --- -**`address_line_2`** **\*** **string** + **`name`** **\*** **string** -상세 주소 + 상품명 ---- + --- - - + **`tag`** **string** - - -**`id`** **\*** **string** + 상품 태그(카테고리) -포트원 채번 거래번호 + --- ---- + **`code`** **string** -**`is_primary`** **\*** **boolean** + 상품 코드 -대표 트랜잭션 여부 + --- ---- + **`amount`** **\*** **integer** -**`version`** **\*** **Version** + 상품 단위가격 -포트원 내부 결제시스템 버전 + --- -`"V1"`, `"V2"` + **`quantity`** **\*** **integer** ---- + 주문 수량 -**`method`** **PaymentMethod** + --- +
-결제수단 목록 + --- -`"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` + **`product_count`** **integer** ---- + 상품 갯수 -**`channel`** **Channel** + --- -결제 채널 정보 + **`custom_data`** **string** -
-

Channel

+ 고객사의 결제 데이터 추가 정보 -**`id`** **string** + --- -채널 ID + **`requested_at`** **\*** **string** ---- + 결제요청시각 -**`name`** **string** + --- -채널 이름 + **`promotion_id`** **string** ---- + 포트원 프로모션 아이디 -**`key`** **string** + --- -채널 키 + **`failure`** **PaymentFailure** ---- + 결제 실패 정보 -**`type`** **\*** **ChannelType** +
+

PaymentFailure

-채널 유형 + **`reason`** **string** -`"LIVE"`, `"TEST"` + 실패 이유 ---- + --- -**`pg_provider`** **\*** **PgProvider** + **`pg_code`** **string** -결제대행사(PG사) + PG사 전달 에러 코드 -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + --- ---- + **`pg_message`** **string** -**`pg_merchant_id`** **\*** **string** + PG사 전달 에러 메세지 -PG사에 등록된 고객사 ID + --- +
---- + --- -
+ **`failed_at`** **string** ---- + 결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. -**`schedule_id`** **string** + --- -예약결제 ID - 예약결제에만 해당됩니다. + **`country`** **Country** ---- + 국가 코드 -**`billing_key`** **string** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. + --- ---- + **`paid_at`** **string** -**`notifications`** **Array\[notification_Notification]** + 결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -웹훅 발송 내역 + --- -
-

notification_Notification

+ **`payment_method_detail`** **PaymentMethodDetail** -**`webhook`** **Webhook** + 결제 수단 정보 -웹훅 정보 +
+

PaymentMethodDetail

---- + **`card`** **Card** -
+ 카드 결제 정보 ---- + --- -**`status_updated_at`** **string** + **`transfer`** **Transfer** -상태변경시각 + 계좌이체 정보 ---- + --- -**`updated_at`** **\*** **string** + **`virtual_account`** **VirtualAccount** -수정 시각 + 가상계좌 결제 정보 ---- + --- -**`order_name`** **\*** **string** + **`mobile`** **Mobile** -주문명 + 모바일결제 정보 ---- + --- -**`status`** **\*** **TransactionStatus** + **`gift_certificate`** **GiftCertificate** -결제 건의 상태를 나타내는 enum string + 상품권 결제 정보 -`"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` + --- ---- + **`easy_pay`** **EasyPay** -**`amount`** **\*** **TransactionAmount** + 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) -결제 금액 및 통화 관련 세부 정보 + --- +
-
-

TransactionAmount

+ --- -**`currency`** **\*** **Currency** + **`pg_tx_id`** **string** -통화 + PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + --- ---- + **`pg_response`** **string** -**`total`** **\*** **integer** + PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -결제 요청 금액 + --- ---- + **`cash_receipt`** **CashReceiptDetail** -**`tax_free`** **\*** **integer** + 현금영수증 정보 -면세금액 +
+

CashReceiptDetail

---- + **`pg_receipt_id`** **string** -**`vat`** **integer** + PG사 현금영수증 발급 ID -부가세 + --- ---- + **`issue_number`** **\*** **string** -**`supply`** **integer** + 현금영수증 승인번호 -공급가액 + --- ---- + **`type`** **CashReceiptType** -**`discount`** **\*** **integer** + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` -할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) + --- ---- + **`amount`** **\*** **integer** -**`paid`** **\*** **integer** + 금액 -실제 결제 금액 + --- ---- + **`tax_free_amount`** **integer** -**`cancelled`** **\*** **integer** + 면세금액 -취소 금액 + --- ---- + **`status`** **CashReceiptStatus** -**`cancelled_tax_free`** **\*** **integer** + `"ISSUED"`, `"CANCELLED"` -취소 금액 중 면세 금액 + --- ---- + **`issued_at`** **\*** **string** -
+ 발급일시 ---- + --- -**`customer`** **\*** **Customer** + **`cancelled_at`** **string** -구매자 정보 + 취소일시 (`status`가 `CANCELLED`인 경우 제공) -
-

Customer

+ --- -**`id`** **string** - -구매자 ID + **`receipt_url`** **string** ---- + 영수증 url -**`name`** **string** + --- +
-구매자 이름 + --- ---- + **`cancellations`** **Array\[Cancellation]** -**`birthYear`** **string** + 취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. -구매자 생년 +
+

Cancellation

---- + **`id`** **\*** **string** -**`gender`** **Gender** + 취소 ID -`"MALE"`, `"FEMALE"`, `"OTHER"` + --- ---- + **`pg_cancellation_id`** **\*** **string** -**`email`** **string** + PG사 취소 ID -구매자 이메일 + --- ---- + **`cancel_amount`** **\*** **integer** -**`phone_number`** **string** + 취소 금액 -구매자 전화번호 + --- ---- + **`tax_free_amount`** **\*** **integer** -**`one_line_address`** **string** + 취소 면세 금액 -구매자 주소 (한 줄) + --- ---- + **`easy_pay_discount_amount`** **integer** -**`separated_address`** **SeparatedAddress** + 적립형 포인트의 환불 금액 -구매자 주소 (단위별) + --- ---- + **`reason`** **\*** **string** -**`zipcode`** **string** + 취소 사유 -구매자 우편번호 + --- ---- + **`cancelled_at`** **string** -
+ 취소일시 ---- + --- -**`origin`** **\*** **Origin** + **`requested_at`** **\*** **string** -결제를 요청한 근원에 대한 정보 + 취소요청일시 -
-

Origin

+ --- -**`platform_type`** **\*** **string** + **`status`** **\*** **CancellationStatus** -결제를 요청한 단말의 플랫폼 분류 + 취소 상태 -`"PC"`, `"MOBILE"`, `"API"` + `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` ---- + --- +
-**`user_agent`** **string** + --- -결제근원의 환경 정보 (Http 의 User-Agent header value) + **`cancelled_at`** **string** ---- + 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. -**`url`** **string** + --- + -결제근원의 페이지 url + + **`bank_code`** **string** ---- + 표준 은행 코드 -**`ip_address`** **\*** **string** + --- + -결제근원의 IP 주소 + + **`bank_code`** **string** ---- + 표준 은행 코드 -
+ --- ---- + **`account_number`** **\*** **string** -**`is_cultural_expense`** **boolean** + 계좌번호 -문화비 지출 여부 + --- ---- + **`account_type`** **VirtualAccountType** -**`is_escrow`** **\*** **boolean** + 계좌 유형 -에스크로 여부 + `"FIXED"`, `"NORMAL"` ---- + --- -**`escrow_detail`** **EscrowDetail** + **`remittee_name`** **string** -에스크로 결제 정보 + 계좌주 -
-

EscrowDetail

+ --- -**`company`** **\*** **string** + **`remitter_name`** **string** -택배사 + 송금인 (입금자) ---- + --- -**`invoice_number`** **\*** **string** + **`expired_at`** **string** -송장번호 + 입금만료시점 ---- + --- -**`status`** **EscrowStatus** + **`issued_at`** **string** -에스크로 상태 + 계좌발급시점 -`"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` + --- ---- + **`refund_status`** **RefundStatus** -**`sent_at`** **string** + 가상계좌 결제가 환불 단계일 때의 환불 상태 -발송 일시 (배송이 발송되었을 경우 제공) + `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` ---- + --- + -**`applied_at`** **string** + + **`id`** **\*** **string** -배송등록 처리 일자 + 웹훅 ID ---- + --- -
+ **`status`** **WebhookStatus** ---- + 웹훅 전송 상태 -**`products`** **Array\[Product]** + `"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` -상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. + --- -
-

Product

+ **`type`** **WebhookType** -**`id`** **\*** **string** + 웹훅 유형 -상품 ID + `"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` ---- + --- -**`name`** **\*** **string** + **`url`** **\*** **string** -상품명 + 웹훅이 발송된 url ---- + --- -**`tag`** **string** + **`is_async`** **boolean** -상품 태그(카테고리) + 비동기 웹훅 여부 ---- + --- -**`code`** **string** + **`current_execution`** **integer** -상품 코드 + 현재 발송 횟수 ---- + --- -**`amount`** **\*** **integer** + **`max_execution`** **integer** -상품 단위가격 + 최대 발송 횟수 ---- + --- -**`quantity`** **\*** **integer** + **`webhook_trigger`** **WebhookTrigger** -주문 수량 + 웹훅 실행 주체 ---- + `"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` -
+ --- ---- + **`request`** **WebhookRequest** -**`product_count`** **integer** + 웹훅 요청 정보 -상품 갯수 +
+

WebhookRequest

---- + **`header`** **object** -**`custom_data`** **string** + 요청 header -고객사의 결제 데이터 추가 정보 + --- ---- + **`body`** **\*** **string** -**`requested_at`** **\*** **string** + 요청 body -결제요청시각 + --- ---- + **`requested_at`** **string** -**`promotion_id`** **string** + 요청 시각 -포트원 프로모션 아이디 + --- +
---- + --- -**`failure`** **PaymentFailure** + **`response`** **WebhookResponse** -결제 실패 정보 + 웹훅 응답 정보 -
-

PaymentFailure

+
+

WebhookResponse

-**`reason`** **string** + **`code`** **\*** **string** -실패 이유 + 웹훅 응답 http 코드 ---- + --- -**`pg_code`** **string** + **`header`** **\*** **object** -PG사 전달 에러 코드 + 응답 header ---- + --- -**`pg_message`** **string** + **`body`** **\*** **string** -PG사 전달 에러 메세지 + 응답 body ---- + --- -
+ **`responded_at`** **\*** **string** ---- + 응답 시각 -**`failed_at`** **string** + --- +
-결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. + --- ---- + **`triggered_at`** **string** -**`country`** **Country** + 웹훅 처리 시작 시각 -국가 코드 + --- +
+
+
-`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + + + **`code`** **\*** **string** ---- + `"UNAUTHORIZED"` -**`paid_at`** **string** + --- -결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`params`** **object** ---- + 에러 세부사항 -**`payment_method_detail`** **PaymentMethodDetail** + --- + + + -결제 수단 정보 + + + + **`code`** **\*** **string** -
-

PaymentMethodDetail

+ `"PAYMENT_NOT_FOUND"` -**`card`** **Card** + --- -카드 결제 정보 + **`params`** **object** ---- + 에러 세부사항 -**`transfer`** **Transfer** + --- + + + -계좌이체 정보 + + + + **`code`** **\*** **string** ---- + `"PORTONE_ERROR"`, `"WEBHOOK_ERROR"` -**`virtual_account`** **VirtualAccount** + --- -가상계좌 결제 정보 + **`params`** **object** ---- + 에러 세부사항 -**`mobile`** **Mobile** + --- + + + + -모바일결제 정보 +## ⌨ 가상계좌 테스트 웹훅 호출 ---- + + + 가상계좌 테스트 결제 건에 대한 입금 통보 웹훅을 호출합니다. + -**`gift_certificate`** **GiftCertificate** + ### Parameters -상품권 결제 정보 + #### Path ---- + + 결제 ID + -**`easy_pay`** **EasyPay** + #### Query -간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + ---- + ### Responses -
+ + + + **`tx_id`** **\*** **string** ---- + 웹훅 기준 트랜잭션 ID -**`pg_tx_id`** **string** + --- -PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`webhook_id`** **string** ---- + 재발송 대상 웹훅 아이디 (값을 넣지 않으면 가장 최근의 웹훅 아이디 기준으로 재전송) 비동기 웹훅이거나 웹훅 처리에 너무 오랜 시간이 걸리는 경우 값이 비어있을 수 있습니다. -**`pg_response`** **string** + --- -PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. + **`payment`** **\*** **Payment** ---- + 결제내역 -**`cash_receipt`** **CashReceiptDetail** +
+

Payment

-현금영수증 정보 + **`id`** **\*** **string** -
-

CashReceiptDetail

+ 고객사에서 입력한 결제 ID -**`pg_receipt_id`** **string** + --- -PG사 현금영수증 발급 ID + **`merchant_id`** **\*** **string** ---- + 고객사 ID -**`issue_number`** **\*** **string** + --- -현금영수증 승인번호 + **`store_id`** **\*** **string** ---- + 하위 상점 ID -**`type`** **CashReceiptType** + --- -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + **`transactions`** **\*** **Array\[Transaction]** ---- + 동일한 `payment_id`로 결제시도된 결제내역들 -**`amount`** **\*** **integer** + --- +
-금액 + --- + ---- + + **`detail`** **CardDetail** -**`tax_free_amount`** **integer** + 카드 정보 -면세금액 +
+

CardDetail

---- + **`publisher`** **string** -**`status`** **CashReceiptStatus** + 발행사 코드 -`"ISSUED"`, `"CANCELLED"` + --- ---- + **`issuer`** **string** -**`issued_at`** **\*** **string** + 발급사 코드 -발급일시 + --- ---- + **`brand`** **CardBrand** -**`cancelled_at`** **string** + 카드 브랜드 -취소일시 (`status`가 `CANCELLED`인 경우 제공) + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` ---- + --- -**`receipt_url`** **string** + **`card_type`** **CardType** -영수증 url + 카드 종류 ---- + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -
+ --- ---- + **`card_owner_type`** **CardOwnerType** -**`cancellations`** **Array\[Cancellation]** + 카드 소유주 유형 -취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. + `"PERSONAL"`, `"CORPORATE"` -
-

Cancellation

+ --- -**`id`** **\*** **string** + **`bin`** **string** -취소 ID + 카드 빈넘버 ---- + --- -**`pg_cancellation_id`** **\*** **string** + **`name`** **string** -PG사 취소 ID + 카드전표인자명 ---- + --- +
-**`cancel_amount`** **\*** **integer** + --- -취소 금액 + **`number`** **string** ---- + 마스킹된 카드 번호 -**`tax_free_amount`** **\*** **integer** + --- -취소 면세 금액 + **`approval_number`** **string** ---- + 승인 번호 -**`easy_pay_discount_amount`** **integer** + --- -적립형 포인트의 환불 금액 + **`installment`** **Installment** ---- + 할부 정보 -**`reason`** **\*** **string** +
+

Installment

-취소 사유 + **`month`** **\*** **integer** ---- + 할부 개월 수 -**`cancelled_at`** **string** + --- -취소일시 + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 -**`requested_at`** **\*** **string** + --- +
-취소요청일시 + --- ---- + **`card_point_used`** **boolean** -**`status`** **\*** **CancellationStatus** + 카드 포인트 사용여부 -취소 상태 + --- +
-`"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` + + **`publisher`** **string** ---- + 발행사 코드 -
+ --- ---- + **`issuer`** **string** -**`cancelled_at`** **string** + 발급사 코드 -결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. + --- ---- + **`brand`** **CardBrand** -
+ 카드 브랜드 - -**`bank_code`** **string** + `"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` -표준 은행 코드 + --- ---- + **`card_type`** **CardType** - + 카드 종류 - -**`bank_code`** **string** + `"CREDIT"`, `"DEBIT"`, `"GIFT"` -표준 은행 코드 + --- ---- + **`card_owner_type`** **CardOwnerType** -**`account_number`** **\*** **string** + 카드 소유주 유형 -계좌번호 + `"PERSONAL"`, `"CORPORATE"` ---- + --- -**`account_type`** **VirtualAccountType** + **`bin`** **string** -계좌 유형 + 카드 빈넘버 -`"FIXED"`, `"NORMAL"` + --- ---- + **`name`** **string** -**`remittee_name`** **string** + 카드전표인자명 -계좌주 + --- + ---- + + **`easy_pay_provider`** **\*** **EasyPayProvider** -**`remitter_name`** **string** + 간편결제 PG사 -송금인 (입금자) + `"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` ---- + --- -**`expired_at`** **string** + **`card`** **Card** -입금만료시점 + 카드 결제 정보 ---- +
+

Card

-**`issued_at`** **string** + **`detail`** **CardDetail** -계좌발급시점 + 카드 정보 ---- + --- -**`refund_status`** **RefundStatus** + **`number`** **string** -가상계좌 결제가 환불 단계일 때의 환불 상태 + 마스킹된 카드 번호 -`"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` + --- ---- + **`approval_number`** **string** - + 승인 번호 - -**`id`** **\*** **string** + --- -웹훅 ID + **`installment`** **Installment** ---- + 할부 정보 -**`status`** **WebhookStatus** + --- -웹훅 전송 상태 + **`card_point_used`** **boolean** -`"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` + 카드 포인트 사용여부 ---- + --- +
-**`type`** **WebhookType** + --- -웹훅 유형 + **`charge`** **Charge** -`"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` + 충전식 포인트 결제 정보 ---- +
+

Charge

-**`url`** **\*** **string** + **`bank_code`** **string** -웹훅이 발송된 url + 표준 은행 코드 (계좌 이체시 입력됨) ---- + --- +
-**`is_async`** **boolean** + --- -비동기 웹훅 여부 + **`transfer`** **Transfer** ---- + 계좌이체 정보 -**`current_execution`** **integer** +
+

Transfer

-현재 발송 횟수 + **`bank_code`** **string** ---- + 표준 은행 코드 -**`max_execution`** **integer** + --- +
-최대 발송 횟수 + --- +
+
---- + + + **`type`** **GiftCertificateType** -**`webhook_trigger`** **WebhookTrigger** + `"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` -웹훅 실행 주체 + --- -`"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` + **`approval_number`** **\*** **string** ---- + 상품권 승인번호 -**`request`** **WebhookRequest** + --- + -웹훅 요청 정보 + + **`month`** **\*** **integer** -
-

WebhookRequest

+ 할부 개월 수 -**`header`** **object** + --- -요청 header + **`is_interest_free`** **\*** **boolean** ---- + 무이자할부 여부 -**`body`** **\*** **string** + --- + -요청 body + + **`carrier`** **Carrier** ---- + 통신사 -**`requested_at`** **string** + `"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` -요청 시각 + --- ---- + **`phone_number`** **string** -
+ 휴대전화번호 ---- + --- +
-**`response`** **WebhookResponse** + + **`country`** **Country** -웹훅 응답 정보 + 국가 코드 -
-

WebhookResponse

+ `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`code`** **\*** **string** + --- -웹훅 응답 http 코드 + **`province`** **string** ---- + 시/도/구 -**`header`** **\*** **object** + --- -응답 header + **`city`** **string** ---- + 도시 -**`body`** **\*** **string** + --- -응답 body + **`address_line_1`** **\*** **string** ---- + 일반 주소 -**`responded_at`** **\*** **string** + --- -응답 시각 + **`address_line_2`** **\*** **string** ---- + 상세 주소 -
+ --- +
+
---- + + + **`id`** **\*** **string** -**`triggered_at`** **string** + 포트원 채번 거래번호 -웹훅 처리 시작 시각 + --- ---- + **`is_primary`** **\*** **boolean** - - + 대표 트랜잭션 여부 -
+ --- - - - -**`code`** **\*** **string** + **`version`** **\*** **Version** -`"UNAUTHORIZED"` + 포트원 내부 결제시스템 버전 ---- + `"V1"`, `"V2"` -**`params`** **object** + --- -에러 세부사항 + **`method`** **PaymentMethod** ---- + 결제수단 목록 - - + `"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` - + --- - - - -**`code`** **\*** **string** + **`channel`** **Channel** -`"PAYMENT_NOT_FOUND"` + 결제 채널 정보 ---- +
+

Channel

-**`params`** **object** + **`id`** **string** -에러 세부사항 + 채널 ID ---- + --- - - + **`name`** **string** - + 채널 이름 - - - -**`code`** **\*** **string** + --- -`"PORTONE_ERROR"`, `"WEBHOOK_ERROR"` + **`key`** **string** ---- + 채널 키 -**`params`** **object** + --- -에러 세부사항 + **`type`** **\*** **ChannelType** ---- + 채널 유형 - - + `"LIVE"`, `"TEST"` - + --- - + **`pg_provider`** **\*** **PgProvider** -## ⌨ 가상계좌 테스트 웹훅 호출 + 결제대행사(PG사) - - -가상계좌 테스트 결제 건에 대한 입금 통보 웹훅을 호출합니다. + `"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` - + --- -### Parameters + **`pg_merchant_id`** **\*** **string** -#### Path + PG사에 등록된 고객사 ID - -결제 ID + --- +
- + --- -#### Query + **`schedule_id`** **string** - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + 예약결제 ID - 예약결제에만 해당됩니다. - + --- -### Responses + **`billing_key`** **string** - - - -**`tx_id`** **\*** **string** + 결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. -웹훅 기준 트랜잭션 ID + --- ---- + **`notifications`** **Array\[notification\_Notification]** -**`webhook_id`** **string** + 웹훅 발송 내역 -재발송 대상 웹훅 아이디 (값을 넣지 않으면 가장 최근의 웹훅 아이디 기준으로 재전송) 비동기 웹훅이거나 웹훅 처리에 너무 오랜 시간이 걸리는 경우 값이 비어있을 수 있습니다. +
+

notification\_Notification

---- + **`webhook`** **Webhook** -**`payment`** **\*** **Payment** + 웹훅 정보 -결제내역 + --- +
-
-

Payment

+ --- -**`id`** **\*** **string** + **`status_updated_at`** **string** -고객사에서 입력한 결제 ID + 상태변경시각 ---- + --- -**`merchant_id`** **\*** **string** + **`updated_at`** **\*** **string** -고객사 ID + 수정 시각 ---- + --- -**`store_id`** **\*** **string** + **`order_name`** **\*** **string** -하위 상점 ID + 주문명 ---- + --- -**`transactions`** **\*** **Array\[Transaction]** + **`status`** **\*** **TransactionStatus** -동일한 `payment_id`로 결제시도된 결제내역들 + 결제 건의 상태를 나타내는 enum string ---- + `"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` -
+ --- ---- + **`amount`** **\*** **TransactionAmount** -
+ 결제 금액 및 통화 관련 세부 정보 - -**`detail`** **CardDetail** +
+

TransactionAmount

-카드 정보 + **`currency`** **\*** **Currency** -
-

CardDetail

+ 통화 -**`publisher`** **string** + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -발행사 코드 + --- ---- + **`total`** **\*** **integer** -**`issuer`** **string** + 결제 요청 금액 -발급사 코드 + --- ---- + **`tax_free`** **\*** **integer** -**`brand`** **CardBrand** + 면세금액 -카드 브랜드 + --- -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + **`vat`** **integer** ---- + 부가세 -**`card_type`** **CardType** + --- -카드 종류 + **`supply`** **integer** -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + 공급가액 ---- + --- -**`card_owner_type`** **CardOwnerType** + **`discount`** **\*** **integer** -카드 소유주 유형 + 할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) -`"PERSONAL"`, `"CORPORATE"` + --- ---- + **`paid`** **\*** **integer** -**`bin`** **string** + 실제 결제 금액 -카드 빈넘버 + --- ---- + **`cancelled`** **\*** **integer** -**`name`** **string** + 취소 금액 -카드전표인자명 + --- ---- + **`cancelled_tax_free`** **\*** **integer** -
+ 취소 금액 중 면세 금액 ---- + --- +
-**`number`** **string** + --- -마스킹된 카드 번호 + **`customer`** **\*** **Customer** ---- + 구매자 정보 -**`approval_number`** **string** +
+

Customer

-승인 번호 + **`id`** **string** ---- + 구매자 ID -**`installment`** **Installment** + --- -할부 정보 + **`name`** **string** -
-

Installment

+ 구매자 이름 -**`month`** **\*** **integer** + --- -할부 개월 수 + **`birthYear`** **string** ---- + 구매자 생년 -**`is_interest_free`** **\*** **boolean** + --- -무이자할부 여부 + **`gender`** **Gender** ---- + `"MALE"`, `"FEMALE"`, `"OTHER"` -
+ --- ---- + **`email`** **string** -**`card_point_used`** **boolean** + 구매자 이메일 -카드 포인트 사용여부 + --- ---- + **`phone_number`** **string** - + 구매자 전화번호 - -**`publisher`** **string** + --- -발행사 코드 + **`one_line_address`** **string** ---- + 구매자 주소 (한 줄) -**`issuer`** **string** + --- -발급사 코드 + **`separated_address`** **SeparatedAddress** ---- + 구매자 주소 (단위별) -**`brand`** **CardBrand** + --- -카드 브랜드 + **`zipcode`** **string** -`"LOCAL"`, `"MASTER"`, `"UNIONPAY"`, `"VISA"`, `"JCB"`, `"AMEX"`, `"DINERS"` + 구매자 우편번호 ---- + --- +
-**`card_type`** **CardType** + --- -카드 종류 + **`origin`** **\*** **Origin** -`"CREDIT"`, `"DEBIT"`, `"GIFT"` + 결제를 요청한 근원에 대한 정보 ---- +
+

Origin

-**`card_owner_type`** **CardOwnerType** + **`platform_type`** **\*** **string** -카드 소유주 유형 + 결제를 요청한 단말의 플랫폼 분류 -`"PERSONAL"`, `"CORPORATE"` + `"PC"`, `"MOBILE"`, `"API"` ---- + --- -**`bin`** **string** + **`user_agent`** **string** -카드 빈넘버 + 결제근원의 환경 정보 (Http 의 User-Agent header value) ---- + --- -**`name`** **string** + **`url`** **string** -카드전표인자명 + 결제근원의 페이지 url ---- + --- - + **`ip_address`** **\*** **string** - -**`easy_pay_provider`** **\*** **EasyPayProvider** + 결제근원의 IP 주소 -간편결제 PG사 + --- +
-`"PAYCO"`, `"SAMSUNGPAY"`, `"SSGPAY"`, `"KAKAOPAY"`, `"NAVERPAY"`, `"CHAI"`, `"LPAY"`, `"KPAY"`, `"TOSSPAY"`, `"LGPAY"`, `"PINPAY"`, `"APPLEPAY"` + --- ---- + **`is_cultural_expense`** **boolean** -**`card`** **Card** + 문화비 지출 여부 -카드 결제 정보 + --- -
-

Card

+ **`is_escrow`** **\*** **boolean** -**`detail`** **CardDetail** + 에스크로 여부 -카드 정보 + --- ---- + **`escrow_detail`** **EscrowDetail** -**`number`** **string** + 에스크로 결제 정보 -마스킹된 카드 번호 +
+

EscrowDetail

---- + **`company`** **\*** **string** -**`approval_number`** **string** + 택배사 -승인 번호 + --- ---- + **`invoice_number`** **\*** **string** -**`installment`** **Installment** + 송장번호 -할부 정보 + --- ---- + **`status`** **EscrowStatus** -**`card_point_used`** **boolean** + 에스크로 상태 -카드 포인트 사용여부 + `"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` ---- + --- -
+ **`sent_at`** **string** ---- + 발송 일시 (배송이 발송되었을 경우 제공) -**`charge`** **Charge** + --- -충전식 포인트 결제 정보 + **`applied_at`** **string** -
-

Charge

+ 배송등록 처리 일자 -**`bank_code`** **string** + --- +
-표준 은행 코드 (계좌 이체시 입력됨) + --- ---- + **`products`** **Array\[Product]** -
+ 상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. ---- +
+

Product

-**`transfer`** **Transfer** + **`id`** **\*** **string** -계좌이체 정보 + 상품 ID -
-

Transfer

+ --- -**`bank_code`** **string** + **`name`** **\*** **string** -표준 은행 코드 + 상품명 ---- + --- -
+ **`tag`** **string** ---- + 상품 태그(카테고리) - - + --- - - -**`type`** **GiftCertificateType** + **`code`** **string** -`"BOOKNLIFE"`, `"SMART_MUNSANG"`, `"CULTURELAND"`, `"HAPPYMONEY"` + 상품 코드 ---- + --- -**`approval_number`** **\*** **string** + **`amount`** **\*** **integer** -상품권 승인번호 + 상품 단위가격 ---- + --- - + **`quantity`** **\*** **integer** - -**`month`** **\*** **integer** + 주문 수량 -할부 개월 수 + --- +
---- + --- -**`is_interest_free`** **\*** **boolean** + **`product_count`** **integer** -무이자할부 여부 + 상품 갯수 ---- + --- -
+ **`custom_data`** **string** - -**`carrier`** **Carrier** + 고객사의 결제 데이터 추가 정보 -통신사 + --- -`"SKT"`, `"KT"`, `"LGU"`, `"HELLO"`, `"KCT"`, `"SK7"` + **`requested_at`** **\*** **string** ---- + 결제요청시각 -**`phone_number`** **string** + --- -휴대전화번호 + **`promotion_id`** **string** ---- + 포트원 프로모션 아이디 - + --- - -**`country`** **Country** + **`failure`** **PaymentFailure** -국가 코드 + 결제 실패 정보 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` +
+

PaymentFailure

---- + **`reason`** **string** -**`province`** **string** + 실패 이유 -시/도/구 + --- ---- + **`pg_code`** **string** -**`city`** **string** + PG사 전달 에러 코드 -도시 + --- ---- + **`pg_message`** **string** -**`address_line_1`** **\*** **string** + PG사 전달 에러 메세지 -일반 주소 + --- +
---- + --- -**`address_line_2`** **\*** **string** + **`failed_at`** **string** -상세 주소 + 결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. ---- + --- -
-
+ **`country`** **Country** - - -**`id`** **\*** **string** + 국가 코드 -포트원 채번 거래번호 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- -**`is_primary`** **\*** **boolean** + **`paid_at`** **string** -대표 트랜잭션 여부 + 결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. ---- + --- -**`version`** **\*** **Version** + **`payment_method_detail`** **PaymentMethodDetail** -포트원 내부 결제시스템 버전 + 결제 수단 정보 -`"V1"`, `"V2"` +
+

PaymentMethodDetail

---- + **`card`** **Card** -**`method`** **PaymentMethod** + 카드 결제 정보 -결제수단 목록 + --- -`"CARD"`, `"TRANSFER"`, `"VIRTUAL_ACCOUNT"`, `"MOBILE"`, `"GIFT_CERTIFICATE"`, `"EASY_PAY"` + **`transfer`** **Transfer** ---- + 계좌이체 정보 -**`channel`** **Channel** + --- -결제 채널 정보 + **`virtual_account`** **VirtualAccount** -
-

Channel

+ 가상계좌 결제 정보 -**`id`** **string** + --- -채널 ID + **`mobile`** **Mobile** ---- + 모바일결제 정보 -**`name`** **string** + --- -채널 이름 + **`gift_certificate`** **GiftCertificate** ---- + 상품권 결제 정보 -**`key`** **string** + --- -채널 키 + **`easy_pay`** **EasyPay** ---- + 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) -**`type`** **\*** **ChannelType** + --- +
-채널 유형 + --- -`"LIVE"`, `"TEST"` + **`pg_tx_id`** **string** ---- + PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. -**`pg_provider`** **\*** **PgProvider** + --- -결제대행사(PG사) + **`pg_response`** **string** -`"HTML5_INICIS"`, `"PAYPAL"`, `"PAYPAL_V2"`, `"INICIS"`, `"DANAL"`, `"NICE"`, `"DANAL_TPAY"`, `"JTNET"`, `"UPLUS"`, `"NAVERPAY"`, `"KAKAO"`, `"SETTLE"`, `"KCP"`, `"MOBILIANS"`, `"KAKAOPAY"`, `"NAVERCO"`, `"SYRUP"`, `"KICC"`, `"EXIMBAY"`, `"SMILEPAY"`, `"PAYCO"`, `"KCP_BILLING"`, `"ALIPAY"`, `"PAYPLE"`, `"CHAI"`, `"BLUEWALNUT"`, `"SMARTRO"`, `"SMARTRO_V2"`, `"PAYMENTWALL"`, `"TOSSPAYMENTS"`, `"KCP_QUICK"`, `"DAOU"`, `"GALAXIA"`, `"TOSSPAY"`, `"KCP_DIRECT"`, `"SETTLE_ACC"`, `"SETTLE_FIRM"`, `"INICIS_UNIFIED"`, `"KSNET"`, `"PINPAY"` + PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. ---- + --- -**`pg_merchant_id`** **\*** **string** + **`cash_receipt`** **CashReceiptDetail** -PG사에 등록된 고객사 ID + 현금영수증 정보 ---- +
+

CashReceiptDetail

-
+ **`pg_receipt_id`** **string** ---- + PG사 현금영수증 발급 ID -**`schedule_id`** **string** + --- -예약결제 ID - 예약결제에만 해당됩니다. + **`issue_number`** **\*** **string** ---- + 현금영수증 승인번호 -**`billing_key`** **string** + --- -결제를 발생시킨 빌링키 - 빌링키결제에만 해당됩니다. + **`type`** **CashReceiptType** ---- + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` -**`notifications`** **Array\[notification_Notification]** + --- -웹훅 발송 내역 + **`amount`** **\*** **integer** -
-

notification_Notification

+ 금액 -**`webhook`** **Webhook** + --- -웹훅 정보 + **`tax_free_amount`** **integer** ---- + 면세금액 -
+ --- ---- + **`status`** **CashReceiptStatus** -**`status_updated_at`** **string** + `"ISSUED"`, `"CANCELLED"` -상태변경시각 + --- ---- + **`issued_at`** **\*** **string** -**`updated_at`** **\*** **string** + 발급일시 -수정 시각 + --- ---- + **`cancelled_at`** **string** -**`order_name`** **\*** **string** + 취소일시 (`status`가 `CANCELLED`인 경우 제공) -주문명 + --- ---- + **`receipt_url`** **string** -**`status`** **\*** **TransactionStatus** + 영수증 url -결제 건의 상태를 나타내는 enum string + --- +
-`"READY"`, `"PENDING"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"PAID"`, `"FAILED"`, `"PARTIAL_CANCELLED"`, `"CANCELLED"` + --- ---- + **`cancellations`** **Array\[Cancellation]** -**`amount`** **\*** **TransactionAmount** + 취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. -결제 금액 및 통화 관련 세부 정보 +
+

Cancellation

-
-

TransactionAmount

+ **`id`** **\*** **string** -**`currency`** **\*** **Currency** + 취소 ID -통화 + --- -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + **`pg_cancellation_id`** **\*** **string** ---- + PG사 취소 ID -**`total`** **\*** **integer** + --- -결제 요청 금액 + **`cancel_amount`** **\*** **integer** ---- + 취소 금액 -**`tax_free`** **\*** **integer** + --- -면세금액 + **`tax_free_amount`** **\*** **integer** ---- + 취소 면세 금액 -**`vat`** **integer** + --- -부가세 + **`easy_pay_discount_amount`** **integer** ---- + 적립형 포인트의 환불 금액 -**`supply`** **integer** + --- -공급가액 + **`reason`** **\*** **string** ---- + 취소 사유 -**`discount`** **\*** **integer** + --- -할인금액 (카드사 프로모션, 아임포트 프로모션, 적립형 포인트 결제, 쿠폰 할인 등을 포함) + **`cancelled_at`** **string** ---- + 취소일시 -**`paid`** **\*** **integer** + --- -실제 결제 금액 + **`requested_at`** **\*** **string** ---- + 취소요청일시 -**`cancelled`** **\*** **integer** + --- -취소 금액 + **`status`** **\*** **CancellationStatus** ---- + 취소 상태 -**`cancelled_tax_free`** **\*** **integer** + `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` -취소 금액 중 면세 금액 + --- +
---- + --- -
+ **`cancelled_at`** **string** ---- + 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. -**`customer`** **\*** **Customer** + --- +
-구매자 정보 + + **`bank_code`** **string** -
-

Customer

+ 표준 은행 코드 -**`id`** **string** + --- + -구매자 ID + + **`bank_code`** **string** ---- + 표준 은행 코드 -**`name`** **string** + --- -구매자 이름 + **`account_number`** **\*** **string** ---- + 계좌번호 -**`birthYear`** **string** + --- -구매자 생년 + **`account_type`** **VirtualAccountType** ---- + 계좌 유형 -**`gender`** **Gender** + `"FIXED"`, `"NORMAL"` -`"MALE"`, `"FEMALE"`, `"OTHER"` + --- ---- + **`remittee_name`** **string** -**`email`** **string** + 계좌주 -구매자 이메일 + --- ---- + **`remitter_name`** **string** -**`phone_number`** **string** + 송금인 (입금자) -구매자 전화번호 + --- ---- + **`expired_at`** **string** -**`one_line_address`** **string** + 입금만료시점 -구매자 주소 (한 줄) + --- ---- + **`issued_at`** **string** -**`separated_address`** **SeparatedAddress** + 계좌발급시점 -구매자 주소 (단위별) + --- ---- + **`refund_status`** **RefundStatus** -**`zipcode`** **string** + 가상계좌 결제가 환불 단계일 때의 환불 상태 -구매자 우편번호 + `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` ---- + --- + -
+ + **`id`** **\*** **string** ---- + 웹훅 ID -**`origin`** **\*** **Origin** + --- -결제를 요청한 근원에 대한 정보 + **`status`** **WebhookStatus** -
-

Origin

+ 웹훅 전송 상태 -**`platform_type`** **\*** **string** + `"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` -결제를 요청한 단말의 플랫폼 분류 + --- -`"PC"`, `"MOBILE"`, `"API"` + **`type`** **WebhookType** ---- + 웹훅 유형 -**`user_agent`** **string** + `"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` -결제근원의 환경 정보 (Http 의 User-Agent header value) + --- ---- + **`url`** **\*** **string** -**`url`** **string** + 웹훅이 발송된 url -결제근원의 페이지 url + --- ---- + **`is_async`** **boolean** -**`ip_address`** **\*** **string** + 비동기 웹훅 여부 -결제근원의 IP 주소 + --- ---- + **`current_execution`** **integer** -
+ 현재 발송 횟수 ---- + --- -**`is_cultural_expense`** **boolean** + **`max_execution`** **integer** -문화비 지출 여부 + 최대 발송 횟수 ---- + --- -**`is_escrow`** **\*** **boolean** + **`webhook_trigger`** **WebhookTrigger** -에스크로 여부 + 웹훅 실행 주체 ---- + `"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` -**`escrow_detail`** **EscrowDetail** + --- -에스크로 결제 정보 + **`request`** **WebhookRequest** -
-

EscrowDetail

+ 웹훅 요청 정보 -**`company`** **\*** **string** +
+

WebhookRequest

-택배사 + **`header`** **object** ---- + 요청 header -**`invoice_number`** **\*** **string** + --- -송장번호 + **`body`** **\*** **string** ---- + 요청 body -**`status`** **EscrowStatus** + --- -에스크로 상태 + **`requested_at`** **string** -`"REGISTERED"`, `"COMPLETED"`, `"CONFIRMED"`, `"AUTO_CONFIRMED"`, `"REJECTED"`, `"CANCEL"`, `"REJECT_CONFIRMED"` + 요청 시각 ---- + --- +
-**`sent_at`** **string** + --- -발송 일시 (배송이 발송되었을 경우 제공) + **`response`** **WebhookResponse** ---- + 웹훅 응답 정보 -**`applied_at`** **string** +
+

WebhookResponse

-배송등록 처리 일자 + **`code`** **\*** **string** ---- + 웹훅 응답 http 코드 -
+ --- ---- - -**`products`** **Array\[Product]** - -상품 정보 - 에스크로 결제 시 에스크로 상품 정보로 활용됩니다. - -
-

Product

- -**`id`** **\*** **string** - -상품 ID - ---- - -**`name`** **\*** **string** - -상품명 - ---- - -**`tag`** **string** - -상품 태그(카테고리) - ---- - -**`code`** **string** - -상품 코드 - ---- - -**`amount`** **\*** **integer** - -상품 단위가격 - ---- - -**`quantity`** **\*** **integer** - -주문 수량 - ---- - -
- ---- - -**`product_count`** **integer** - -상품 갯수 - ---- - -**`custom_data`** **string** - -고객사의 결제 데이터 추가 정보 - ---- - -**`requested_at`** **\*** **string** - -결제요청시각 - ---- - -**`promotion_id`** **string** - -포트원 프로모션 아이디 - ---- - -**`failure`** **PaymentFailure** - -결제 실패 정보 - -
-

PaymentFailure

- -**`reason`** **string** - -실패 이유 - ---- - -**`pg_code`** **string** - -PG사 전달 에러 코드 - ---- - -**`pg_message`** **string** - -PG사 전달 에러 메세지 - ---- - -
- ---- - -**`failed_at`** **string** - -결제실패시각 - `status`가 `FAILED`인 경우 제공됩니다. - ---- - -**`country`** **Country** - -국가 코드 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - -**`paid_at`** **string** - -결제완료시각 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. - ---- - -**`payment_method_detail`** **PaymentMethodDetail** - -결제 수단 정보 - -
-

PaymentMethodDetail

- -**`card`** **Card** - -카드 결제 정보 - ---- - -**`transfer`** **Transfer** - -계좌이체 정보 - ---- - -**`virtual_account`** **VirtualAccount** - -가상계좌 결제 정보 - ---- - -**`mobile`** **Mobile** - -모바일결제 정보 - ---- - -**`gift_certificate`** **GiftCertificate** - -상품권 결제 정보 - ---- - -**`easy_pay`** **EasyPay** - -간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) - ---- - -
- ---- - -**`pg_tx_id`** **string** - -PG사 거래ID - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. - ---- - -**`pg_response`** **string** - -PG사 거래 응답 본문 - `status`가 `COMPLETED`로 되었을 경우 제공됩니다. - ---- - -**`cash_receipt`** **CashReceiptDetail** - -현금영수증 정보 - -
-

CashReceiptDetail

- -**`pg_receipt_id`** **string** - -PG사 현금영수증 발급 ID - ---- - -**`issue_number`** **\*** **string** - -현금영수증 승인번호 - ---- - -**`type`** **CashReceiptType** - -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` - ---- - -**`amount`** **\*** **integer** - -금액 - ---- - -**`tax_free_amount`** **integer** - -면세금액 - ---- - -**`status`** **CashReceiptStatus** - -`"ISSUED"`, `"CANCELLED"` - ---- - -**`issued_at`** **\*** **string** - -발급일시 - ---- - -**`cancelled_at`** **string** - -취소일시 (`status`가 `CANCELLED`인 경우 제공) - ---- - -**`receipt_url`** **string** - -영수증 url - ---- - -
- ---- - -**`cancellations`** **Array\[Cancellation]** - -취소내역 - `status`가 `CANCELLED`인 경우 제공됩니다. - -
-

Cancellation

- -**`id`** **\*** **string** - -취소 ID - ---- - -**`pg_cancellation_id`** **\*** **string** - -PG사 취소 ID - ---- - -**`cancel_amount`** **\*** **integer** - -취소 금액 - ---- - -**`tax_free_amount`** **\*** **integer** - -취소 면세 금액 - ---- - -**`easy_pay_discount_amount`** **integer** - -적립형 포인트의 환불 금액 - ---- - -**`reason`** **\*** **string** - -취소 사유 - ---- - -**`cancelled_at`** **string** - -취소일시 - ---- - -**`requested_at`** **\*** **string** - -취소요청일시 - ---- - -**`status`** **\*** **CancellationStatus** - -취소 상태 - -`"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` - ---- - -
- ---- - -**`cancelled_at`** **string** - -결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. - ---- - - - - -**`bank_code`** **string** - -표준 은행 코드 - ---- - - - - -**`bank_code`** **string** - -표준 은행 코드 - ---- - -**`account_number`** **\*** **string** - -계좌번호 - ---- - -**`account_type`** **VirtualAccountType** - -계좌 유형 - -`"FIXED"`, `"NORMAL"` - ---- - -**`remittee_name`** **string** - -계좌주 - ---- - -**`remitter_name`** **string** - -송금인 (입금자) - ---- - -**`expired_at`** **string** - -입금만료시점 - ---- - -**`issued_at`** **string** - -계좌발급시점 - ---- - -**`refund_status`** **RefundStatus** - -가상계좌 결제가 환불 단계일 때의 환불 상태 - -`"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` - ---- - - - - -**`id`** **\*** **string** - -웹훅 ID - ---- - -**`status`** **WebhookStatus** - -웹훅 전송 상태 - -`"SUCCEEDED"`, `"REQUEST_FAILED"`, `"CONNECT_FAILED"` - ---- - -**`type`** **WebhookType** - -웹훅 유형 - -`"READY"`, `"PAID"`, `"FAILED"`, `"CANCELLED"`, `"PARTIAL_CANCELLED"`, `"VIRTUAL_ACCOUNT_ISSUED"`, `"CANCEL_PENDING"` - ---- - -**`url`** **\*** **string** - -웹훅이 발송된 url - ---- - -**`is_async`** **boolean** - -비동기 웹훅 여부 - ---- - -**`current_execution`** **integer** - -현재 발송 횟수 - ---- - -**`max_execution`** **integer** - -최대 발송 횟수 - ---- - -**`webhook_trigger`** **WebhookTrigger** - -웹훅 실행 주체 - -`"NOTIFICATION_SETTING"`, `"MANUAL"`, `"VIRTUAL_ACCOUNT_DEPOSIT"`, `"ASYNC_CANCEL_APPROVED"` - ---- - -**`request`** **WebhookRequest** - -웹훅 요청 정보 - -
-

WebhookRequest

- -**`header`** **object** - -요청 header - ---- - -**`body`** **\*** **string** - -요청 body - ---- - -**`requested_at`** **string** - -요청 시각 - ---- - -
- ---- - -**`response`** **WebhookResponse** - -웹훅 응답 정보 - -
-

WebhookResponse

- -**`code`** **\*** **string** - -웹훅 응답 http 코드 - ---- - -**`header`** **\*** **object** - -응답 header - ---- - -**`body`** **\*** **string** - -응답 body - ---- - -**`responded_at`** **\*** **string** - -응답 시각 - ---- - -
- ---- - -**`triggered_at`** **string** - -웹훅 처리 시작 시각 + **`header`** **\*** **object** ---- + 응답 header -
- + --- - + **`body`** **\*** **string** - - - -**`code`** **\*** **string** + 응답 body -`"INVALID_REQUEST"` + --- ---- + **`responded_at`** **\*** **string** -**`params`** **object** + 응답 시각 -에러 세부사항 + --- +
---- + --- -
-
+ **`triggered_at`** **string** -
+ 웹훅 처리 시작 시각 - - - -**`code`** **\*** **string** + --- + + + -`"UNAUTHORIZED"` + + + + **`code`** **\*** **string** ---- + `"INVALID_REQUEST"` -**`params`** **object** + --- -에러 세부사항 + **`params`** **object** ---- + 에러 세부사항 - - + --- +
+
+
-
+ + + + **`code`** **\*** **string** - - - -**`code`** **\*** **string** + `"UNAUTHORIZED"` -`"PAYMENT_NOT_FOUND"` + --- ---- + **`params`** **object** -**`params`** **object** + 에러 세부사항 -에러 세부사항 + --- + + + ---- + + + + **`code`** **\*** **string** - - + `"PAYMENT_NOT_FOUND"` - + --- - - - -**`code`** **\*** **string** + **`params`** **object** -`"PORTONE_ERROR"` + 에러 세부사항 ---- + --- + + + -**`params`** **object** + + + + **`code`** **\*** **string** -에러 세부사항 + `"PORTONE_ERROR"` ---- + --- - - + **`params`** **object** - + 에러 세부사항 + --- + + +
## ⌨ 결제 예약 - - - - -### Parameters - -#### Body - - -빌링키 결제에 사용할 빌링키 - - - -빌링키 결제를 진행하는 상점의 id - - - -주문명 - - - -문화비 지출 여부 (기본값:`"false"`) - - - -에스크로 여부 (기본값:`"false"`) - - - -상품 정보 (에스크로 결제 상품 정보) - - - -고객 정보 - - - -고객사에서 추가로 저장할 데이터 - - - -결제 금액 - - - -면세 금액 (기본값: - -`"0")` - - - -국가 - - - -화폐 - - - -결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. - - - -할부 개월 수 - - - -무이자 할부 이자를 상점이 부담할지 여부 - - - -상품 유형 - - - -상품 개수 - - - -카드 포인트 사용 여부 - - - -각 PG사 별로 필요한 파라미터를 받습니다. - - - - - - - - - -### Responses - - - - -**`id`** **\*** **string** - ---- - -**`scheduled_at`** **\*** **string** - ---- - - - - - - - - - -**`code`** **\*** **string** - -`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ -`PAST_SCHEDULED`: 현재 시각보다 이전의 시각으로 예약을 요청하였습니다.\ -`PAYMENT_ALREADY_EXISTS`: 해당 payment는 이미 결제되었거나 가상계좌 입금 대기 상태입니다.\ -`PAYMENT_ALREADY_SCHEDULED`: 이미 존재하는 예약건입니다.\ -`BILLING_KEY_DELETED`: 삭제된\_빌링키로\_예약을\_시도했습니다.\ - -`"INVALID_REQUEST"`, `"PAST_SCHEDULED"`, `"PAYMENT_ALREADY_EXISTS"`, `"PAYMENT_ALREADY_SCHEDULED"`, `"BILLING_KEY_DELETED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - + - - - -**`code`** **\*** **string** - -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ - -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ - -`"PERMISSION_DENIED"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ -`BILLING_KEY_NOT_FOUND`: 빌링키를 찾을 수 없습니다.\ - -`"STORE_NOT_FOUND"`, `"BILLING_KEY_NOT_FOUND"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 상세 정보를 담은 파라미터 모음 - ---- - - - - - - - - - - -**`address_line_1`** **\*** **string** - -주소1 - ---- - -**`address_line_2`** **\*** **string** - -주소2 - ---- - -**`city`** **string** - -도시 - ---- - -**`province`** **string** - -주, 도, 시 - ---- - -**`country`** **Country** - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - ---- - - - - -국가 - -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - - - - -화폐 - -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` - - - - -**`phone_number`** **string** - -휴대폰 번호 - ---- - -**`customer_name`** **CustomerName** - -고객 이름 정보. full_name만 채워져 있거나, first_name & last_name이 채워져 있어야 함 - -
-

CustomerName

- -**`full_name`** **string** - ---- - -**`first_name`** **string** - ---- - -**`last_name`** **string** - ---- - -
- ---- - -**`email`** **string** - -고객 이메일 - ---- - -**`zipcode`** **string** - -우편번호 - ---- - -**`address`** **Address** - -주소 형식 - -
-

Address

- -**`address_line_1`** **\*** **string** + ### Parameters -주소1 + #### Body ---- - -**`address_line_2`** **\*** **string** - -주소2 - ---- - -**`city`** **string** + + 빌링키 결제에 사용할 빌링키 + -도시 + + 빌링키 결제를 진행하는 상점의 id + ---- + + 주문명 + -**`province`** **string** + + 문화비 지출 여부 (기본값:`"false"`) + -주, 도, 시 + + 에스크로 여부 (기본값:`"false"`) + ---- + + 상품 정보 (에스크로 결제 상품 정보) + -**`country`** **Country** + + 고객 정보 + -국가 + + 고객사에서 추가로 저장할 데이터 + -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + 결제 금액 + ---- + + 면세 금액 (기본값: -
+ `"0")` + ---- + + 국가 + -**`gender`** **Gender** + + 화폐 + -성별 + + 결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + -`"MALE"`, `"FEMALE"`, `"OTHER"` + + 할부 개월 수 + ---- + + 무이자 할부 이자를 상점이 부담할지 여부 + -**`birth_year`** **string** + + 상품 유형 + -출생연도 + + 상품 개수 + ---- + + 카드 포인트 사용 여부 + -**`country`** **Country** + + 각 PG사 별로 필요한 파라미터를 받습니다. + -국가 + -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + ---- + ### Responses -**`birth_month`** **string** + + + + **`id`** **\*** **string** -출생월 + --- ---- + **`scheduled_at`** **\*** **string** -**`birth_day`** **string** + --- + + + -출생일 + + + + **`code`** **\*** **string** ---- + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ + `PAST_SCHEDULED`: 현재 시각보다 이전의 시각으로 예약을 요청하였습니다.\ + `PAYMENT_ALREADY_EXISTS`: 해당 payment는 이미 결제되었거나 가상계좌 입금 대기 상태입니다.\ + `PAYMENT_ALREADY_SCHEDULED`: 이미 존재하는 예약건입니다.\ + `BILLING_KEY_DELETED`: 삭제된\_빌링키로\_예약을\_시도했습니다.\\ - - + `"INVALID_REQUEST"`, `"PAST_SCHEDULED"`, `"PAYMENT_ALREADY_EXISTS"`, `"PAYMENT_ALREADY_SCHEDULED"`, `"BILLING_KEY_DELETED"` - - -**`full_name`** **string** + --- ---- + **`params`** **object** -**`first_name`** **string** + 에러 상세 정보를 담은 파라미터 모음 ---- + --- + + + -**`last_name`** **string** + + + + **`code`** **\*** **string** ---- + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ - + `"UNAUTHORIZED"` - -성별 + --- -`"MALE"`, `"FEMALE"`, `"OTHER"` + **`params`** **object** - + 에러 상세 정보를 담은 파라미터 모음 - -**`id`** **\*** **string** + --- + + + ---- + + + + **`code`** **\*** **string** -**`name`** **\*** **string** + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ ---- + `"PERMISSION_DENIED"` -**`tag`** **string** + --- ---- + **`params`** **object** -**`code`** **string** + 에러 상세 정보를 담은 파라미터 모음 ---- + --- + + + -**`quantity`** **\*** **integer** + + + + **`code`** **\*** **string** ---- + `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ + `BILLING_KEY_NOT_FOUND`: 빌링키를 찾을 수 없습니다.\\ -**`amount`** **\*** **number** + `"STORE_NOT_FOUND"`, `"BILLING_KEY_NOT_FOUND"` ---- + --- -**`currency`** **\*** **Currency** + **`params`** **object** -화폐 + 에러 상세 정보를 담은 파라미터 모음 -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + --- + + + ---- + + + + **`code`** **\*** **string** - + `"PORTONE_ERROR"` - -상품 유형 + --- -`"REAL"`, `"DIGITAL"` + **`params`** **object** - - + 에러 상세 정보를 담은 파라미터 모음 -## ⌨ 빌링키 결제 + --- +
+
+ + - - + + + **`address_line_1`** **\*** **string** - + 주소1 -### Parameters + --- -#### Path + **`address_line_2`** **\*** **string** - -결제 ID + 주소2 - + --- -#### Body + **`city`** **string** - -빌링키 결제에 사용할 빌링키 + 도시 - - -빌링키 결제를 진행하는 상점의 id + --- - - -주문명 + **`province`** **string** - - -문화비 지출 여부 (기본값: `"false"`) + 주, 도, 시 - - -에스크로 여부 (기본값: `"false"`) + --- - - -상품 정보 (에스크로 결제 상품 정보) + **`country`** **Country** - - -고객 정보 + 국가 - - -고객사에서 추가로 저장할 데이터 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - - -결제 금액 + --- + - - -면세 금액 (기본값: `"0"`) + + 국가 - - -국가 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + - - -화폐 + + 화폐 - - -결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + - - -할부 개월 수 + + **`phone_number`** **string** - - -무이자 할부 이자를 상점이 부담할지 여부 + 휴대폰 번호 - - -상품 유형 + --- - - -상품 개수 + **`customer_name`** **CustomerName** - - -카드 포인트 사용 여부 + 고객 이름 정보. full\_name만 채워져 있거나, first\_name & last\_name이 채워져 있어야 함 - - -각 PG사 별로 필요한 파라미터를 받습니다. +
+

CustomerName

- + **`full_name`** **string** -### Responses + --- - - - -**`tx_id`** **\*** **string** + **`first_name`** **string** ---- + --- -**`customer_id`** **\*** **string** + **`last_name`** **string** ---- + --- +
-**`requested_at`** **\*** **string** + --- ---- + **`email`** **string** -**`paid_at`** **\*** **string** + 고객 이메일 ---- + --- -**`pg_tx_id`** **\*** **string** + **`zipcode`** **string** -PG사 거래ID + 우편번호 ---- + --- - - + **`address`** **Address** - + 주소 형식 - - - -**`code`** **\*** **string** +
+

Address

-`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ -`TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT`: 면세금액은 결제금액보다 작거나 같아야 합니다.\ -`BILLING_KEY_ALREADY_DELETED`: 삭제된 빌링키로 결제를 시도하셨습니다.\ -`PAYMENT_ALREADY_PAID`: 이미 결제되었습니다.\ + **`address_line_1`** **\*** **string** -`"INVALID_REQUEST"`, `"TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT"`, `"BILLING_KEY_ALREADY_DELETED"`, `"PAYMENT_ALREADY_PAID"` + 주소1 ---- + --- -**`params`** **object** + **`address_line_2`** **\*** **string** -에러 상세 정보를 담은 파라미터 모음 + 주소2 ---- + --- - - + **`city`** **string** - + 도시 - - - -**`code`** **\*** **string** + --- -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ + **`province`** **string** -`"UNAUTHORIZED"` + 주, 도, 시 ---- + --- -**`params`** **object** + **`country`** **Country** -에러 상세 정보를 담은 파라미터 모음 + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` - - + --- +
-
+ --- - - - -**`code`** **\*** **string** + **`gender`** **Gender** -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ + 성별 -`"PERMISSION_DENIED"` + `"MALE"`, `"FEMALE"`, `"OTHER"` ---- + --- -**`params`** **object** + **`birth_year`** **string** -에러 상세 정보를 담은 파라미터 모음 + 출생연도 ---- + --- - - + **`country`** **Country** - + 국가 - - - -**`code`** **\*** **string** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -`STORE_NOT_FOUND`: 하위\_상점을\_찾을\_수\_없습니다.\ -`BILLING_KEY_NOT_FOUND`: 빌링키를 찾을 수 없습니다.\ + --- -`"STORE_NOT_FOUND"`, `"BILLING_KEY_NOT_FOUND"` + **`birth_month`** **string** ---- + 출생월 -**`params`** **object** + --- -에러 상세 정보를 담은 파라미터 모음 + **`birth_day`** **string** ---- + 출생일 - + --- + - - - - -**`code`** **\*** **string** + + **`full_name`** **string** -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + --- ---- + **`first_name`** **string** -**`params`** **object** + --- -에러 상세 정보를 담은 파라미터 모음 + **`last_name`** **string** ---- + --- + - - + + 성별 - + `"MALE"`, `"FEMALE"`, `"OTHER"` + -
+ + **`id`** **\*** **string** - - -**`address_line_1`** **\*** **string** + --- -주소1 + **`name`** **\*** **string** ---- + --- -**`address_line_2`** **\*** **string** + **`tag`** **string** -주소2 + --- ---- + **`code`** **string** -**`city`** **string** + --- -도시 + **`quantity`** **\*** **integer** ---- + --- -**`province`** **string** + **`amount`** **\*** **number** -주, 도, 시 + --- ---- + **`currency`** **\*** **Currency** -**`country`** **country_Country** + 화폐 -국가 + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- + ---- + + 상품 유형 - + `"REAL"`, `"DIGITAL"` + + - -국가 +## ⌨ 빌링키 결제 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + - + ### Parameters - -화폐 + #### Path -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + + 결제 ID + - + #### Body - -**`phone_number`** **string** + + 빌링키 결제에 사용할 빌링키 + -휴대폰 번호 + + 빌링키 결제를 진행하는 상점의 id + ---- + + 주문명 + -**`customer_name`** **CustomerName** + + 문화비 지출 여부 (기본값: `"false"`) + -고객 이름 정보. full_name만 채워져 있거나, first_name & last_name이 채워져 있어야 함 + + 에스크로 여부 (기본값: `"false"`) + -
-

CustomerName

+ + 상품 정보 (에스크로 결제 상품 정보) + -**`full_name`** **string** + + 고객 정보 + ---- + + 고객사에서 추가로 저장할 데이터 + -**`first_name`** **string** + + 결제 금액 + ---- + + 면세 금액 (기본값: `"0"`) + -**`last_name`** **string** + + 국가 + ---- + + 화폐 + -
+ + 결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + ---- + + 할부 개월 수 + + + + 무이자 할부 이자를 상점이 부담할지 여부 + -**`email`** **string** + + 상품 유형 + -고객 이메일 + + 상품 개수 + ---- + + 카드 포인트 사용 여부 + -**`zipcode`** **string** + + 각 PG사 별로 필요한 파라미터를 받습니다. + -우편번호 + ### Responses ---- + + + + **`tx_id`** **\*** **string** -**`address`** **Address** + --- -주소 형식 + **`customer_id`** **\*** **string** -
-

Address

+ --- -**`address_line_1`** **\*** **string** + **`requested_at`** **\*** **string** -주소1 + --- ---- + **`paid_at`** **\*** **string** -**`address_line_2`** **\*** **string** + --- -주소2 + **`pg_tx_id`** **\*** **string** ---- + PG사 거래ID -**`city`** **string** + --- + + + -도시 + + + + **`code`** **\*** **string** ---- + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ + `TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT`: 면세금액은 결제금액보다 작거나 같아야 합니다.\ + `BILLING_KEY_ALREADY_DELETED`: 삭제된 빌링키로 결제를 시도하셨습니다.\ + `PAYMENT_ALREADY_PAID`: 이미 결제되었습니다.\\ -**`province`** **string** + `"INVALID_REQUEST"`, `"TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT"`, `"BILLING_KEY_ALREADY_DELETED"`, `"PAYMENT_ALREADY_PAID"` -주, 도, 시 + --- ---- + **`params`** **object** -**`country`** **country_Country** + 에러 상세 정보를 담은 파라미터 모음 -국가 + --- + + + -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + + + **`code`** **\*** **string** ---- + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ -
+ `"UNAUTHORIZED"` ---- + --- -**`gender`** **gender_Gender** + **`params`** **object** -성별 + 에러 상세 정보를 담은 파라미터 모음 -`"MALE"`, `"FEMALE"`, `"OTHER"` + --- +
+
+
---- + + + + **`code`** **\*** **string** -**`birth_year`** **string** + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ -출생연도 + `"PERMISSION_DENIED"` ---- + --- -**`country`** **country_Country** + **`params`** **object** -국가 + 에러 상세 정보를 담은 파라미터 모음 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- + + + ---- + + + + **`code`** **\*** **string** -**`birth_month`** **string** + `STORE_NOT_FOUND`: 하위\_상점을\_찾을\_수\_없습니다.\ + `BILLING_KEY_NOT_FOUND`: 빌링키를 찾을 수 없습니다.\\ -출생월 + `"STORE_NOT_FOUND"`, `"BILLING_KEY_NOT_FOUND"` ---- + --- -**`birth_day`** **string** + **`params`** **object** -출생일 + 에러 상세 정보를 담은 파라미터 모음 ---- + --- + + + -
- + + + + **`code`** **\*** **string** - - -**`full_name`** **string** + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` ---- + --- -**`first_name`** **string** + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 -**`last_name`** **string** + --- + + + + ---- + + + **`address_line_1`** **\*** **string** - + 주소1 - -성별 + --- -`"MALE"`, `"FEMALE"`, `"OTHER"` + **`address_line_2`** **\*** **string** - + 주소2 - -**`id`** **\*** **string** + --- ---- + **`city`** **string** -**`name`** **\*** **string** + 도시 ---- + --- -**`tag`** **string** + **`province`** **string** ---- + 주, 도, 시 -**`code`** **string** + --- ---- + **`country`** **country\_Country** -**`quantity`** **\*** **integer** + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`amount`** **\*** **number** + --- + ---- + + 국가 -**`currency`** **\*** **currency_Currency** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + -화폐 + + 화폐 -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + ---- + + **`phone_number`** **string** - + 휴대폰 번호 - -상품 유형 + --- -`"REAL"`, `"DIGITAL"` + **`customer_name`** **CustomerName** - - + 고객 이름 정보. full\_name만 채워져 있거나, first\_name & last\_name이 채워져 있어야 함 -## ⌨ 키인(수기) 결제 / 가상계좌 발급 +
+

CustomerName

- - + **`full_name`** **string** - + --- -### Parameters + **`first_name`** **string** -#### Path + --- - + **`last_name`** **string** - + --- +
-#### Body + --- - -하위 상점 ID + **`email`** **string** - - + 고객 이메일 - - -문화비 지출 여부 (기본값: `"false"`) + --- - - -에스크로 여부 (기본값: `"false"`) + **`zipcode`** **string** - - -상품 정보. 아래 두 가지 목적으로 사용함. + 우편번호 - - -고객 정보 + --- - - + **`address`** **Address** - - -결제 금액 + 주소 형식 - - -면세 금액 (기본값: `"0"`) +
+

Address

- - -국가 + **`address_line_1`** **\*** **string** - - -화폐 + 주소1 - - -결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + --- - - -결제 채널 키 + **`address_line_2`** **\*** **string** - - -상품 유형 + 주소2 - - -상품 개수 + --- - - -가능한 결제 수단: 카드, 가상계좌 선택한 결제 수단에 따라 + **`city`** **string** -`card` + 도시 -와 + --- -`virtual_account` + **`province`** **string** -중 하나에만 값이 들어있어야 합니다. + 주, 도, 시 - + --- -### Responses + **`country`** **country\_Country** - - - -**`tx_id`** **\*** **string** + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`customer_id`** **\*** **string** + --- +
---- + --- -**`requested_at`** **\*** **string** + **`gender`** **gender\_Gender** ---- + 성별 -**`paid_at`** **\*** **string** + `"MALE"`, `"FEMALE"`, `"OTHER"` ---- + --- -**`pg_tx_id`** **\*** **string** + **`birth_year`** **string** -PG사 거래ID + 출생연도 ---- + --- - - + **`country`** **country\_Country** - + 국가 - - - -**`code`** **\*** **string** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ -`TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT`: 면세금액은\_결제금액보다\_작거나\_같아야\_합니다.\ -`PAYMENT_ALREADY_PAID`: 이미 결제되었습니다.\ + --- -`"INVALID_REQUEST"`, `"TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT"`, `"PAYMENT_ALREADY_PAID"` + **`birth_month`** **string** ---- + 출생월 -**`params`** **object** + --- -에러 상세 정보를 담은 파라미터 모음 + **`birth_day`** **string** ---- + 출생일 - + --- + - - - - -**`code`** **\*** **string** + + **`full_name`** **string** -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ + --- -`"UNAUTHORIZED"` + **`first_name`** **string** ---- + --- -**`params`** **object** + **`last_name`** **string** -에러 상세 정보를 담은 파라미터 모음 + --- + ---- + + 성별 - - + `"MALE"`, `"FEMALE"`, `"OTHER"` + - + + **`id`** **\*** **string** - - - -**`code`** **\*** **string** + --- -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ + **`name`** **\*** **string** -`"PERMISSION_DENIED"` + --- ---- + **`tag`** **string** -**`params`** **object** + --- -에러 상세 정보를 담은 파라미터 모음 + **`code`** **string** ---- + --- - - + **`quantity`** **\*** **integer** - + --- - - - -**`code`** **\*** **string** + **`amount`** **\*** **number** -`STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ -`CHANNEL_NOT_FOUND`: 결제 채널을 찾을 수 없습니다.\ + --- -`"STORE_NOT_FOUND"`, `"CHANNEL_NOT_FOUND"` + **`currency`** **\*** **currency\_Currency** ---- + 화폐 -**`params`** **object** + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -에러 상세 정보를 담은 파라미터 모음 + --- + ---- + + 상품 유형 - + `"REAL"`, `"DIGITAL"` + - +## ⌨ 키인(수기) 결제 / 가상계좌 발급 - - - -**`code`** **\*** **string** + + -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + ### Parameters ---- + #### Path -**`params`** **object** + -에러 상세 정보를 담은 파라미터 모음 + #### Body ---- + + 하위 상점 ID + - - + - + + 문화비 지출 여부 (기본값: `"false"`) + - + + 에스크로 여부 (기본값: `"false"`) + - - -**`address_line_1`** **\*** **string** + + 상품 정보. 아래 두 가지 목적으로 사용함. + -주소1 + + 고객 정보 + ---- + -**`address_line_2`** **\*** **string** + + 결제 금액 + -주소2 + + 면세 금액 (기본값: `"0"`) + ---- + + 국가 + -**`city`** **string** + + 화폐 + -도시 + + 결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + ---- + + 결제 채널 키 + -**`province`** **string** + + 상품 유형 + -주, 도, 시 + + 상품 개수 + ---- + + 가능한 결제 수단: 카드, 가상계좌 선택한 결제 수단에 따라 -**`country`** **country_Country** + `card` -국가 + 와 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + `virtual_account` ---- + 중 하나에만 값이 들어있어야 합니다. + - + ### Responses - -은행 + + + + **`tx_id`** **\*** **string** -`"BANK_OF_KOREA"`, `"KOREA_DEVELOPMENT_BANK"`, `"INDUSTRIAL_BANK_OF_KOREA"`, `"KOOKMIN_BANK"`, `"SUHYUP_BANK"`, `"EXPORT_IMPORT_BANK_OF_KOREA"`, `"NH_NONGHYUP_BANK"`, `"LOCAL_NONGHYUP"`, `"WOORI_BANK"`, `"SC_BANK_KOREA"`, `"CITI_BANK_KOREA"`, `"DAEGU_BANK"`, `"BUSAN_BANK"`, `"GWANGJU_BANK"`, `"JEJU_BANK"`, `"JEONBUK_BANK"`, `"KYONGNAM_BANK"`, `"KFCC"`, `"SHINHYUP"`, `"SAVINGS_BANK_KOREA"`, `"MORGAN_STANLEY_BANK"`, `"HSBC_BANK"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN_CHASE_BANK"`, `"MIZUHO_BANK"`, `"MUFG_BANK"`, `"BANK_OF_AMERICA_BANK"`, `"BNP_PARIBAS_BANK"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"NATIONAL_FORESTRY_COOPERATIVE_FEDERATION"`, `"UNITED_OVERSEAS_BANK"`, `"BANK_OF_COMMUNICATIONS"`, `"CHINA_CONSTRUCTION_BANK"`, `"EPOST"`, `"KODIT"`, `"KIBO"`, `"HANA_BANK"`, `"SHINHAN_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"`, `"KCIS"`, `"DAISHIN_SAVINGS_BANK"`, `"SBI_SAVINGS_BANK"`, `"HK_SAVINGS_BANK"`, `"WELCOME_SAVINGS_BANK"`, `"SHINHAN_SAVINGS_BANK"`, `"KYOBO_SECURITIES"`, `"DAISHIN_SECURITIES"`, `"MERITZ_SECURITIES"`, `"MIRAE_ASSET_SECURITIES"`, `"BOOKOOK_SECURITIES"`, `"SAMSUNG_SECURITIES"`, `"SHINYOUNG_SECURITIES"`, `"SHINHAN_FINANCIAL_INVESTMENT"`, `"YUANTA_SECURITIES"`, `"EUGENE_INVESTMENT_SECURITIES"`, `"KAKAO_PAY_SECURITIES"`, `"TOSS_SECURITIES"`, `"KOREA_FOSS_SECURITIES"`, `"HANA_FINANCIAL_INVESTMENT"`, `"HI_INVESTMENT_SECURITIES"`, `"KOREA_INVESTMENT_SECURITIES"`, `"HANWHA_INVESTMENT_SECURITIES"`, `"HYUNDAI_MOTOR_SECURITIES"`, `"DB_FINANCIAL_INVESTMENT"`, `"KB_SECURITIES"`, `"KTB_INVESTMENT_SECURITIES"`, `"NH_INVESTMENT_SECURITIES"`, `"SK_SECURITIES"`, `"SGI"`, `"KIWOOM_SECURITIES"`, `"EBEST_INVESTMENT_SECURITIES"`, `"CAPE_INVESTMENT_CERTIFICATE"` + --- - + **`customer_id`** **\*** **string** - -**`card_number`** **\*** **string** + --- ---- + **`requested_at`** **\*** **string** -**`expiry_month`** **\*** **string** + --- ---- + **`paid_at`** **\*** **string** -**`expiry_year`** **\*** **string** + --- ---- + **`pg_tx_id`** **\*** **string** -**`birth_or_business_registration_number`** **\*** **string** + PG사 거래ID ---- + --- + + + -**`password_two_digits`** **\*** **string** + + + + **`code`** **\*** **string** ---- + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ + `TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT`: 면세금액은\_결제금액보다\_작거나\_같아야\_합니다.\ + `PAYMENT_ALREADY_PAID`: 이미 결제되었습니다.\\ - + `"INVALID_REQUEST"`, `"TAX_FREE_AMOUNT_MUST_BE_LESS_THAN_OR_EQUAL_TO_TOTAL_AMOUNT"`, `"PAYMENT_ALREADY_PAID"` - -현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 + --- -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + **`params`** **object** - - + 에러 상세 정보를 담은 파라미터 모음 - - -국가 + --- + + + -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + + + **`code`** **\*** **string** - + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ - -화폐 + `"UNAUTHORIZED"` -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + --- - + **`params`** **object** - -**`customer_id`** **string** + 에러 상세 정보를 담은 파라미터 모음 -고객사의 고객 고유 ID - 값을 넣지 않으면 PortOne에서 자체 채번합니다. + --- + + + ---- + + + + **`code`** **\*** **string** -**`phone_number`** **string** + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ -휴대폰 번호 + `"PERMISSION_DENIED"` ---- + --- -**`customer_name`** **CustomerName** + **`params`** **object** -고객 이름 정보. full_name만 채워져 있거나, first_name & last_name이 채워져 있어야 함 + 에러 상세 정보를 담은 파라미터 모음 -
-

CustomerName

+ --- + + + -**`full_name`** **string** + + + + **`code`** **\*** **string** ---- + `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ + `CHANNEL_NOT_FOUND`: 결제 채널을 찾을 수 없습니다.\\ -**`first_name`** **string** + `"STORE_NOT_FOUND"`, `"CHANNEL_NOT_FOUND"` ---- + --- -**`last_name`** **string** + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 -
+ --- +
+
+
---- + + + + **`code`** **\*** **string** -**`email`** **string** + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` -고객 이메일 + --- ---- + **`params`** **object** -**`zipcode`** **string** + 에러 상세 정보를 담은 파라미터 모음 -우편번호 + --- + + + + ---- + + + **`address_line_1`** **\*** **string** -**`address`** **Address** + 주소1 -주소 형식 + --- -
-

Address

+ **`address_line_2`** **\*** **string** -**`address_line_1`** **\*** **string** + 주소2 -주소1 + --- ---- + **`city`** **string** -**`address_line_2`** **\*** **string** + 도시 -주소2 + --- ---- + **`province`** **string** -**`city`** **string** + 주, 도, 시 -도시 + --- ---- + **`country`** **country\_Country** -**`province`** **string** + 국가 -주, 도, 시 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- + -**`country`** **country_Country** + + 은행 -국가 + `"BANK_OF_KOREA"`, `"KOREA_DEVELOPMENT_BANK"`, `"INDUSTRIAL_BANK_OF_KOREA"`, `"KOOKMIN_BANK"`, `"SUHYUP_BANK"`, `"EXPORT_IMPORT_BANK_OF_KOREA"`, `"NH_NONGHYUP_BANK"`, `"LOCAL_NONGHYUP"`, `"WOORI_BANK"`, `"SC_BANK_KOREA"`, `"CITI_BANK_KOREA"`, `"DAEGU_BANK"`, `"BUSAN_BANK"`, `"GWANGJU_BANK"`, `"JEJU_BANK"`, `"JEONBUK_BANK"`, `"KYONGNAM_BANK"`, `"KFCC"`, `"SHINHYUP"`, `"SAVINGS_BANK_KOREA"`, `"MORGAN_STANLEY_BANK"`, `"HSBC_BANK"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN_CHASE_BANK"`, `"MIZUHO_BANK"`, `"MUFG_BANK"`, `"BANK_OF_AMERICA_BANK"`, `"BNP_PARIBAS_BANK"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"NATIONAL_FORESTRY_COOPERATIVE_FEDERATION"`, `"UNITED_OVERSEAS_BANK"`, `"BANK_OF_COMMUNICATIONS"`, `"CHINA_CONSTRUCTION_BANK"`, `"EPOST"`, `"KODIT"`, `"KIBO"`, `"HANA_BANK"`, `"SHINHAN_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"`, `"KCIS"`, `"DAISHIN_SAVINGS_BANK"`, `"SBI_SAVINGS_BANK"`, `"HK_SAVINGS_BANK"`, `"WELCOME_SAVINGS_BANK"`, `"SHINHAN_SAVINGS_BANK"`, `"KYOBO_SECURITIES"`, `"DAISHIN_SECURITIES"`, `"MERITZ_SECURITIES"`, `"MIRAE_ASSET_SECURITIES"`, `"BOOKOOK_SECURITIES"`, `"SAMSUNG_SECURITIES"`, `"SHINYOUNG_SECURITIES"`, `"SHINHAN_FINANCIAL_INVESTMENT"`, `"YUANTA_SECURITIES"`, `"EUGENE_INVESTMENT_SECURITIES"`, `"KAKAO_PAY_SECURITIES"`, `"TOSS_SECURITIES"`, `"KOREA_FOSS_SECURITIES"`, `"HANA_FINANCIAL_INVESTMENT"`, `"HI_INVESTMENT_SECURITIES"`, `"KOREA_INVESTMENT_SECURITIES"`, `"HANWHA_INVESTMENT_SECURITIES"`, `"HYUNDAI_MOTOR_SECURITIES"`, `"DB_FINANCIAL_INVESTMENT"`, `"KB_SECURITIES"`, `"KTB_INVESTMENT_SECURITIES"`, `"NH_INVESTMENT_SECURITIES"`, `"SK_SECURITIES"`, `"SGI"`, `"KIWOOM_SECURITIES"`, `"EBEST_INVESTMENT_SECURITIES"`, `"CAPE_INVESTMENT_CERTIFICATE"` + -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + + **`card_number`** **\*** **string** ---- + --- -
+ **`expiry_month`** **\*** **string** ---- + --- -**`gender`** **gender_Gender** + **`expiry_year`** **\*** **string** -성별 + --- -`"MALE"`, `"FEMALE"`, `"OTHER"` + **`birth_or_business_registration_number`** **\*** **string** ---- + --- -**`birth_year`** **string** + **`password_two_digits`** **\*** **string** -출생연도 + --- +
---- + + 현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 -**`birth_month`** **string** + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + +
-출생월 + + + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + -**`birth_day`** **string** + + 화폐 -출생일 + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + ---- + + **`customer_id`** **string** -**`country`** **country_Country** + 고객사의 고객 고유 ID - 값을 넣지 않으면 PortOne에서 자체 채번합니다. -국가 + --- -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + **`phone_number`** **string** ---- + 휴대폰 번호 - + --- - -**`full_name`** **string** + **`customer_name`** **CustomerName** ---- + 고객 이름 정보. full\_name만 채워져 있거나, first\_name & last\_name이 채워져 있어야 함 -**`first_name`** **string** +
+

CustomerName

---- + **`full_name`** **string** -**`last_name`** **string** + --- ---- + **`first_name`** **string** - - + --- - - -성별 + **`last_name`** **string** -`"MALE"`, `"FEMALE"`, `"OTHER"` + --- +
-
+ --- - -**`card_credential`** **\*** **CardCredential** + **`email`** **string** -카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 + 고객 이메일 -
-

CardCredential

+ --- -**`card_number`** **\*** **string** + **`zipcode`** **string** ---- + 우편번호 -**`expiry_month`** **\*** **string** + --- ---- + **`address`** **Address** -**`expiry_year`** **\*** **string** + 주소 형식 ---- +
+

Address

-**`birth_or_business_registration_number`** **\*** **string** + **`address_line_1`** **\*** **string** ---- + 주소1 -**`password_two_digits`** **\*** **string** + --- ---- + **`address_line_2`** **\*** **string** -
+ 주소2 ---- + --- -**`cvc`** **string** + **`city`** **string** ---- + 도시 -**`vbv`** **VBV** + --- -3DS 인증 결과를 담는 객체 (Verified by Visa) + **`province`** **string** -
-

VBV

+ 주, 도, 시 -**`cavv`** **\*** **string** + --- ---- + **`country`** **country\_Country** -**`xid`** **\*** **string** + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`eci`** **\*** **string** + --- +
---- + --- -
+ **`gender`** **gender\_Gender** ---- + 성별 -**`card_installment_plan`** **integer** + `"MALE"`, `"FEMALE"`, `"OTHER"` -카드 할부 개월 수 + --- ---- + **`birth_year`** **string** -**`use_free_installment_plan`** **boolean** + 출생연도 -무이자 할부 적용 여부 + --- ---- + **`birth_month`** **string** -**`use_free_interest_from_mall`** **boolean** + 출생월 ---- + --- -
+ **`birth_day`** **string** - -**`card`** **InstantCardForm** + 출생일 -카드를 이용한 결제 & 빌링키 발급 시에 필요한 카드 관련 정보 + --- -
-

InstantCardForm

+ **`country`** **country\_Country** -**`card_credential`** **\*** **CardCredential** + 국가 -카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- + -**`cvc`** **string** + + **`full_name`** **string** ---- + --- -**`vbv`** **VBV** + **`first_name`** **string** -3DS 인증 결과를 담는 객체 (Verified by Visa) + --- ---- + **`last_name`** **string** -**`card_installment_plan`** **integer** + --- + + -카드 할부 개월 수 + + + 성별 ---- + `"MALE"`, `"FEMALE"`, `"OTHER"` + -**`use_free_installment_plan`** **boolean** + + **`card_credential`** **\*** **CardCredential** -무이자 할부 적용 여부 + 카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 ---- +
+

CardCredential

-**`use_free_interest_from_mall`** **boolean** + **`card_number`** **\*** **string** ---- + --- -
+ **`expiry_month`** **\*** **string** ---- + --- -**`virtual_account`** **InstantVirtualAccountForm** + **`expiry_year`** **\*** **string** -가상계좌 발급을 위해 필요한 가상계좌 발급 관련 정보 + --- -
-

InstantVirtualAccountForm

+ **`birth_or_business_registration_number`** **\*** **string** -**`bank`** **\*** **Bank** + --- -은행 + **`password_two_digits`** **\*** **string** -`"BANK_OF_KOREA"`, `"KOREA_DEVELOPMENT_BANK"`, `"INDUSTRIAL_BANK_OF_KOREA"`, `"KOOKMIN_BANK"`, `"SUHYUP_BANK"`, `"EXPORT_IMPORT_BANK_OF_KOREA"`, `"NH_NONGHYUP_BANK"`, `"LOCAL_NONGHYUP"`, `"WOORI_BANK"`, `"SC_BANK_KOREA"`, `"CITI_BANK_KOREA"`, `"DAEGU_BANK"`, `"BUSAN_BANK"`, `"GWANGJU_BANK"`, `"JEJU_BANK"`, `"JEONBUK_BANK"`, `"KYONGNAM_BANK"`, `"KFCC"`, `"SHINHYUP"`, `"SAVINGS_BANK_KOREA"`, `"MORGAN_STANLEY_BANK"`, `"HSBC_BANK"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN_CHASE_BANK"`, `"MIZUHO_BANK"`, `"MUFG_BANK"`, `"BANK_OF_AMERICA_BANK"`, `"BNP_PARIBAS_BANK"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"NATIONAL_FORESTRY_COOPERATIVE_FEDERATION"`, `"UNITED_OVERSEAS_BANK"`, `"BANK_OF_COMMUNICATIONS"`, `"CHINA_CONSTRUCTION_BANK"`, `"EPOST"`, `"KODIT"`, `"KIBO"`, `"HANA_BANK"`, `"SHINHAN_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"`, `"KCIS"`, `"DAISHIN_SAVINGS_BANK"`, `"SBI_SAVINGS_BANK"`, `"HK_SAVINGS_BANK"`, `"WELCOME_SAVINGS_BANK"`, `"SHINHAN_SAVINGS_BANK"`, `"KYOBO_SECURITIES"`, `"DAISHIN_SECURITIES"`, `"MERITZ_SECURITIES"`, `"MIRAE_ASSET_SECURITIES"`, `"BOOKOOK_SECURITIES"`, `"SAMSUNG_SECURITIES"`, `"SHINYOUNG_SECURITIES"`, `"SHINHAN_FINANCIAL_INVESTMENT"`, `"YUANTA_SECURITIES"`, `"EUGENE_INVESTMENT_SECURITIES"`, `"KAKAO_PAY_SECURITIES"`, `"TOSS_SECURITIES"`, `"KOREA_FOSS_SECURITIES"`, `"HANA_FINANCIAL_INVESTMENT"`, `"HI_INVESTMENT_SECURITIES"`, `"KOREA_INVESTMENT_SECURITIES"`, `"HANWHA_INVESTMENT_SECURITIES"`, `"HYUNDAI_MOTOR_SECURITIES"`, `"DB_FINANCIAL_INVESTMENT"`, `"KB_SECURITIES"`, `"KTB_INVESTMENT_SECURITIES"`, `"NH_INVESTMENT_SECURITIES"`, `"SK_SECURITIES"`, `"SGI"`, `"KIWOOM_SECURITIES"`, `"EBEST_INVESTMENT_SECURITIES"`, `"CAPE_INVESTMENT_CERTIFICATE"` + --- +
---- + --- -**`account_expiry`** **\*** **object** + **`cvc`** **string** -valid_hours와 due_date 둘 중 하나의 값만 채워야 함 + --- ---- + **`vbv`** **VBV** -**`account_type`** **\*** **virtual_account_type_VirtualAccountType** + 3DS 인증 결과를 담는 객체 (Verified by Visa) -가상계좌 유형(일반 or 고정) +
+

VBV

-`"NORMAL"`, `"FIXED"` + **`cavv`** **\*** **string** ---- + --- -**`pg_account_id`** **string** + **`xid`** **\*** **string** -고정식 가상계좌 방식에서, 고객사가 가상계좌 번호를 관리하지 않고 PG사가 pg_account_id에 매핑되는 가상계좌 번호를 내려줄 때 사용하는 필드입니다. 동일한 pg_account_id로 가상계좌 발급 요청시에는 항상 같은 가상계좌 번호가 내려옵니다. account_type이 FIXED일 때만 유효하며, account_number 필드와 함께 사용할 수 없습니다. + --- ---- + **`eci`** **\*** **string** -**`account_number`** **string** + --- +
-고정식 가상계좌 방식에서, PG사로부터 일정 갯수의 가상계좌 번호를 미리 전달받았을 때 사용하는 필드입니다. 고객사로부터 전달받은 가상계좌 번호를 직접 입력하면 됩니다. account_type이 FIXED일 때만 유효하며, pg_account_id 필드와 함께 사용할 수 없습니다. + --- ---- + **`card_installment_plan`** **integer** -**`cash_receipt_form`** **object** + 카드 할부 개월 수 -현금영수증 발급을 위해 필요한 정보 + --- ---- + **`use_free_installment_plan`** **boolean** -**`remittee_name`** **string** + 무이자 할부 적용 여부 -예금주명 + --- ---- + **`use_free_interest_from_mall`** **boolean** -
+ --- +
---- + + **`card`** **InstantCardForm** - + 카드를 이용한 결제 & 빌링키 발급 시에 필요한 카드 관련 정보 - -**`bank`** **\*** **Bank** +
+

InstantCardForm

-은행 + **`card_credential`** **\*** **CardCredential** -`"BANK_OF_KOREA"`, `"KOREA_DEVELOPMENT_BANK"`, `"INDUSTRIAL_BANK_OF_KOREA"`, `"KOOKMIN_BANK"`, `"SUHYUP_BANK"`, `"EXPORT_IMPORT_BANK_OF_KOREA"`, `"NH_NONGHYUP_BANK"`, `"LOCAL_NONGHYUP"`, `"WOORI_BANK"`, `"SC_BANK_KOREA"`, `"CITI_BANK_KOREA"`, `"DAEGU_BANK"`, `"BUSAN_BANK"`, `"GWANGJU_BANK"`, `"JEJU_BANK"`, `"JEONBUK_BANK"`, `"KYONGNAM_BANK"`, `"KFCC"`, `"SHINHYUP"`, `"SAVINGS_BANK_KOREA"`, `"MORGAN_STANLEY_BANK"`, `"HSBC_BANK"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN_CHASE_BANK"`, `"MIZUHO_BANK"`, `"MUFG_BANK"`, `"BANK_OF_AMERICA_BANK"`, `"BNP_PARIBAS_BANK"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"NATIONAL_FORESTRY_COOPERATIVE_FEDERATION"`, `"UNITED_OVERSEAS_BANK"`, `"BANK_OF_COMMUNICATIONS"`, `"CHINA_CONSTRUCTION_BANK"`, `"EPOST"`, `"KODIT"`, `"KIBO"`, `"HANA_BANK"`, `"SHINHAN_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"`, `"KCIS"`, `"DAISHIN_SAVINGS_BANK"`, `"SBI_SAVINGS_BANK"`, `"HK_SAVINGS_BANK"`, `"WELCOME_SAVINGS_BANK"`, `"SHINHAN_SAVINGS_BANK"`, `"KYOBO_SECURITIES"`, `"DAISHIN_SECURITIES"`, `"MERITZ_SECURITIES"`, `"MIRAE_ASSET_SECURITIES"`, `"BOOKOOK_SECURITIES"`, `"SAMSUNG_SECURITIES"`, `"SHINYOUNG_SECURITIES"`, `"SHINHAN_FINANCIAL_INVESTMENT"`, `"YUANTA_SECURITIES"`, `"EUGENE_INVESTMENT_SECURITIES"`, `"KAKAO_PAY_SECURITIES"`, `"TOSS_SECURITIES"`, `"KOREA_FOSS_SECURITIES"`, `"HANA_FINANCIAL_INVESTMENT"`, `"HI_INVESTMENT_SECURITIES"`, `"KOREA_INVESTMENT_SECURITIES"`, `"HANWHA_INVESTMENT_SECURITIES"`, `"HYUNDAI_MOTOR_SECURITIES"`, `"DB_FINANCIAL_INVESTMENT"`, `"KB_SECURITIES"`, `"KTB_INVESTMENT_SECURITIES"`, `"NH_INVESTMENT_SECURITIES"`, `"SK_SECURITIES"`, `"SGI"`, `"KIWOOM_SECURITIES"`, `"EBEST_INVESTMENT_SECURITIES"`, `"CAPE_INVESTMENT_CERTIFICATE"` + 카드를 이용한 결제 및 빌링키 발급에 필요한 인증 관련 정보 ---- + --- -**`account_expiry`** **\*** **object** + **`cvc`** **string** -valid_hours와 due_date 둘 중 하나의 값만 채워야 함 + --- -
-

account_expiry

+ **`vbv`** **VBV** -**`valid_hours`** **integer** + 3DS 인증 결과를 담는 객체 (Verified by Visa) ---- + --- -**`due_date`** **string** + **`card_installment_plan`** **integer** ---- + 카드 할부 개월 수 -
+ --- ---- + **`use_free_installment_plan`** **boolean** -**`account_type`** **\*** **virtual_account_type_VirtualAccountType** + 무이자 할부 적용 여부 -가상계좌 유형(일반 or 고정) + --- -`"NORMAL"`, `"FIXED"` + **`use_free_interest_from_mall`** **boolean** ---- + --- +
-**`pg_account_id`** **string** + --- -고정식 가상계좌 방식에서, 고객사가 가상계좌 번호를 관리하지 않고 PG사가 pg_account_id에 매핑되는 가상계좌 번호를 내려줄 때 사용하는 필드입니다. 동일한 pg_account_id로 가상계좌 발급 요청시에는 항상 같은 가상계좌 번호가 내려옵니다. account_type이 FIXED일 때만 유효하며, account_number 필드와 함께 사용할 수 없습니다. + **`virtual_account`** **InstantVirtualAccountForm** ---- + 가상계좌 발급을 위해 필요한 가상계좌 발급 관련 정보 -**`account_number`** **string** +
+

InstantVirtualAccountForm

-고정식 가상계좌 방식에서, PG사로부터 일정 갯수의 가상계좌 번호를 미리 전달받았을 때 사용하는 필드입니다. 고객사로부터 전달받은 가상계좌 번호를 직접 입력하면 됩니다. account_type이 FIXED일 때만 유효하며, pg_account_id 필드와 함께 사용할 수 없습니다. + **`bank`** **\*** **Bank** ---- + 은행 -**`cash_receipt_form`** **object** + `"BANK_OF_KOREA"`, `"KOREA_DEVELOPMENT_BANK"`, `"INDUSTRIAL_BANK_OF_KOREA"`, `"KOOKMIN_BANK"`, `"SUHYUP_BANK"`, `"EXPORT_IMPORT_BANK_OF_KOREA"`, `"NH_NONGHYUP_BANK"`, `"LOCAL_NONGHYUP"`, `"WOORI_BANK"`, `"SC_BANK_KOREA"`, `"CITI_BANK_KOREA"`, `"DAEGU_BANK"`, `"BUSAN_BANK"`, `"GWANGJU_BANK"`, `"JEJU_BANK"`, `"JEONBUK_BANK"`, `"KYONGNAM_BANK"`, `"KFCC"`, `"SHINHYUP"`, `"SAVINGS_BANK_KOREA"`, `"MORGAN_STANLEY_BANK"`, `"HSBC_BANK"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN_CHASE_BANK"`, `"MIZUHO_BANK"`, `"MUFG_BANK"`, `"BANK_OF_AMERICA_BANK"`, `"BNP_PARIBAS_BANK"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"NATIONAL_FORESTRY_COOPERATIVE_FEDERATION"`, `"UNITED_OVERSEAS_BANK"`, `"BANK_OF_COMMUNICATIONS"`, `"CHINA_CONSTRUCTION_BANK"`, `"EPOST"`, `"KODIT"`, `"KIBO"`, `"HANA_BANK"`, `"SHINHAN_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"`, `"KCIS"`, `"DAISHIN_SAVINGS_BANK"`, `"SBI_SAVINGS_BANK"`, `"HK_SAVINGS_BANK"`, `"WELCOME_SAVINGS_BANK"`, `"SHINHAN_SAVINGS_BANK"`, `"KYOBO_SECURITIES"`, `"DAISHIN_SECURITIES"`, `"MERITZ_SECURITIES"`, `"MIRAE_ASSET_SECURITIES"`, `"BOOKOOK_SECURITIES"`, `"SAMSUNG_SECURITIES"`, `"SHINYOUNG_SECURITIES"`, `"SHINHAN_FINANCIAL_INVESTMENT"`, `"YUANTA_SECURITIES"`, `"EUGENE_INVESTMENT_SECURITIES"`, `"KAKAO_PAY_SECURITIES"`, `"TOSS_SECURITIES"`, `"KOREA_FOSS_SECURITIES"`, `"HANA_FINANCIAL_INVESTMENT"`, `"HI_INVESTMENT_SECURITIES"`, `"KOREA_INVESTMENT_SECURITIES"`, `"HANWHA_INVESTMENT_SECURITIES"`, `"HYUNDAI_MOTOR_SECURITIES"`, `"DB_FINANCIAL_INVESTMENT"`, `"KB_SECURITIES"`, `"KTB_INVESTMENT_SECURITIES"`, `"NH_INVESTMENT_SECURITIES"`, `"SK_SECURITIES"`, `"SGI"`, `"KIWOOM_SECURITIES"`, `"EBEST_INVESTMENT_SECURITIES"`, `"CAPE_INVESTMENT_CERTIFICATE"` -현금영수증 발급을 위해 필요한 정보 + --- -
-

cash_receipt_form

+ **`account_expiry`** **\*** **object** -**`receipt_type`** **\*** **cash_receipt_type_CashReceiptType** + valid\_hours와 due\_date 둘 중 하나의 값만 채워야 함 -현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 + --- -`"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` + **`account_type`** **\*** **virtual\_account\_type\_VirtualAccountType** ---- + 가상계좌 유형(일반 or 고정) -**`registration_number`** **\*** **string** + `"NORMAL"`, `"FIXED"` -현금영수증 신청 번호 + --- ---- + **`pg_account_id`** **string** -**`business_number`** **string** + 고정식 가상계좌 방식에서, 고객사가 가상계좌 번호를 관리하지 않고 PG사가 pg\_account\_id에 매핑되는 가상계좌 번호를 내려줄 때 사용하는 필드입니다. 동일한 pg\_account\_id로 가상계좌 발급 요청시에는 항상 같은 가상계좌 번호가 내려옵니다. account\_type이 FIXED일 때만 유효하며, account\_number 필드와 함께 사용할 수 없습니다. -현금영수증을 발급할 사업자등록번호 + --- ---- + **`account_number`** **string** -
+ 고정식 가상계좌 방식에서, PG사로부터 일정 갯수의 가상계좌 번호를 미리 전달받았을 때 사용하는 필드입니다. 고객사로부터 전달받은 가상계좌 번호를 직접 입력하면 됩니다. account\_type이 FIXED일 때만 유효하며, pg\_account\_id 필드와 함께 사용할 수 없습니다. ---- + --- -**`remittee_name`** **string** + **`cash_receipt_form`** **object** -예금주명 + 현금영수증 발급을 위해 필요한 정보 ---- + --- - - + **`remittee_name`** **string** - - -**`id`** **\*** **string** + 예금주명 ---- + --- +
-**`name`** **\*** **string** + --- +
---- + + **`bank`** **\*** **Bank** -**`tag`** **string** + 은행 ---- + `"BANK_OF_KOREA"`, `"KOREA_DEVELOPMENT_BANK"`, `"INDUSTRIAL_BANK_OF_KOREA"`, `"KOOKMIN_BANK"`, `"SUHYUP_BANK"`, `"EXPORT_IMPORT_BANK_OF_KOREA"`, `"NH_NONGHYUP_BANK"`, `"LOCAL_NONGHYUP"`, `"WOORI_BANK"`, `"SC_BANK_KOREA"`, `"CITI_BANK_KOREA"`, `"DAEGU_BANK"`, `"BUSAN_BANK"`, `"GWANGJU_BANK"`, `"JEJU_BANK"`, `"JEONBUK_BANK"`, `"KYONGNAM_BANK"`, `"KFCC"`, `"SHINHYUP"`, `"SAVINGS_BANK_KOREA"`, `"MORGAN_STANLEY_BANK"`, `"HSBC_BANK"`, `"DEUTSCHE_BANK"`, `"JP_MORGAN_CHASE_BANK"`, `"MIZUHO_BANK"`, `"MUFG_BANK"`, `"BANK_OF_AMERICA_BANK"`, `"BNP_PARIBAS_BANK"`, `"ICBC"`, `"BANK_OF_CHINA"`, `"NATIONAL_FORESTRY_COOPERATIVE_FEDERATION"`, `"UNITED_OVERSEAS_BANK"`, `"BANK_OF_COMMUNICATIONS"`, `"CHINA_CONSTRUCTION_BANK"`, `"EPOST"`, `"KODIT"`, `"KIBO"`, `"HANA_BANK"`, `"SHINHAN_BANK"`, `"K_BANK"`, `"KAKAO_BANK"`, `"TOSS_BANK"`, `"KCIS"`, `"DAISHIN_SAVINGS_BANK"`, `"SBI_SAVINGS_BANK"`, `"HK_SAVINGS_BANK"`, `"WELCOME_SAVINGS_BANK"`, `"SHINHAN_SAVINGS_BANK"`, `"KYOBO_SECURITIES"`, `"DAISHIN_SECURITIES"`, `"MERITZ_SECURITIES"`, `"MIRAE_ASSET_SECURITIES"`, `"BOOKOOK_SECURITIES"`, `"SAMSUNG_SECURITIES"`, `"SHINYOUNG_SECURITIES"`, `"SHINHAN_FINANCIAL_INVESTMENT"`, `"YUANTA_SECURITIES"`, `"EUGENE_INVESTMENT_SECURITIES"`, `"KAKAO_PAY_SECURITIES"`, `"TOSS_SECURITIES"`, `"KOREA_FOSS_SECURITIES"`, `"HANA_FINANCIAL_INVESTMENT"`, `"HI_INVESTMENT_SECURITIES"`, `"KOREA_INVESTMENT_SECURITIES"`, `"HANWHA_INVESTMENT_SECURITIES"`, `"HYUNDAI_MOTOR_SECURITIES"`, `"DB_FINANCIAL_INVESTMENT"`, `"KB_SECURITIES"`, `"KTB_INVESTMENT_SECURITIES"`, `"NH_INVESTMENT_SECURITIES"`, `"SK_SECURITIES"`, `"SGI"`, `"KIWOOM_SECURITIES"`, `"EBEST_INVESTMENT_SECURITIES"`, `"CAPE_INVESTMENT_CERTIFICATE"` -**`code`** **string** + --- ---- + **`account_expiry`** **\*** **object** -**`quantity`** **\*** **integer** + valid\_hours와 due\_date 둘 중 하나의 값만 채워야 함 ---- +
+

account\_expiry

-**`amount`** **\*** **number** + **`valid_hours`** **integer** ---- + --- -**`currency`** **\*** **currency_Currency** + **`due_date`** **string** -화폐 + --- +
-`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + --- ---- + **`account_type`** **\*** **virtual\_account\_type\_VirtualAccountType** -
+ 가상계좌 유형(일반 or 고정) - -상품 유형 + `"NORMAL"`, `"FIXED"` -`"REAL"`, `"DIGITAL"` + --- - + **`pg_account_id`** **string** - -**`cavv`** **\*** **string** + 고정식 가상계좌 방식에서, 고객사가 가상계좌 번호를 관리하지 않고 PG사가 pg\_account\_id에 매핑되는 가상계좌 번호를 내려줄 때 사용하는 필드입니다. 동일한 pg\_account\_id로 가상계좌 발급 요청시에는 항상 같은 가상계좌 번호가 내려옵니다. account\_type이 FIXED일 때만 유효하며, account\_number 필드와 함께 사용할 수 없습니다. ---- + --- -**`xid`** **\*** **string** + **`account_number`** **string** ---- + 고정식 가상계좌 방식에서, PG사로부터 일정 갯수의 가상계좌 번호를 미리 전달받았을 때 사용하는 필드입니다. 고객사로부터 전달받은 가상계좌 번호를 직접 입력하면 됩니다. account\_type이 FIXED일 때만 유효하며, pg\_account\_id 필드와 함께 사용할 수 없습니다. -**`eci`** **\*** **string** + --- ---- + **`cash_receipt_form`** **object** - + 현금영수증 발급을 위해 필요한 정보 - -가상계좌 유형(일반 or 고정) +
+

cash\_receipt\_form

-`"NORMAL"`, `"FIXED"` + **`receipt_type`** **\*** **cash\_receipt\_type\_CashReceiptType** - - + 현금영수증 용도. personal = 소득공제용, corporate = 지출증빙용, anonymous = 국세청번호 자동발급 케이스 -## ⌨ 에스크로 배송정보 등록/변경 + `"PERSONAL"`, `"CORPORATE"`, `"ANONYMOUS"` - - + --- - + **`registration_number`** **\*** **string** -### Parameters + 현금영수증 신청 번호 -#### Path + --- - -결제 ID + **`business_number`** **string** - + 현금영수증을 발급할 사업자등록번호 -#### Body + --- +
- + --- - - + **`remittee_name`** **string** - - + 예금주명 - - + --- +
+
-
- -에스크로 구매 확정시 결제 창에 입력했던 이메일로 해당 사실을 전송할지 여부. -지원 PG: (신)나이스페이먼츠 - + + + **`id`** **\*** **string** -### Responses + --- - - - -**`company`** **\*** **string** + **`name`** **\*** **string** ---- + --- -**`invoice_number`** **\*** **string** + **`tag`** **string** ---- + --- -**`sent_at`** **\*** **string** + **`code`** **string** ---- + --- -**`applied_at`** **\*** **string** + **`quantity`** **\*** **integer** ---- + --- - - + **`amount`** **\*** **number** - + --- - - - -**`code`** **\*** **string** + **`currency`** **\*** **currency\_Currency** -`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ -`NOT_PAID`: 지불되지 않은 결제 건입니다.\ + 화폐 -`"INVALID_REQUEST"`, `"NOT_PAID"` + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` ---- + --- + -**`params`** **object** + + 상품 유형 -에러 상세 정보를 담은 파라미터 모음 + `"REAL"`, `"DIGITAL"` + ---- + + **`cavv`** **\*** **string** - - + --- - + **`xid`** **\*** **string** - - - -**`code`** **\*** **string** + --- -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ + **`eci`** **\*** **string** -`"UNAUTHORIZED"` + --- + ---- + + 가상계좌 유형(일반 or 고정) -**`params`** **object** + `"NORMAL"`, `"FIXED"` + + -에러 상세 정보를 담은 파라미터 모음 +## ⌨ 에스크로 배송정보 등록/변경 ---- + + - - + ### Parameters - + #### Path - - - -**`code`** **\*** **string** + + 결제 ID + -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ + #### Body -`"PERMISSION_DENIED"` + ---- + -**`params`** **object** + -에러 상세 정보를 담은 파라미터 모음 + ---- + + 에스크로 구매 확정시 결제 창에 입력했던 이메일로 해당 사실을 전송할지 여부. + 지원 PG: (신)나이스페이먼츠 + - - + ### Responses - + + + + **`company`** **\*** **string** - - - -**`code`** **\*** **string** + --- -`STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ -`PAYMENT_NOT_FOUND`: 해당하는 결제를 찾을 수 없습니다.\ + **`invoice_number`** **\*** **string** -`"STORE_NOT_FOUND"`, `"PAYMENT_NOT_FOUND"` + --- ---- + **`sent_at`** **\*** **string** -**`params`** **object** + --- -에러 상세 정보를 담은 파라미터 모음 + **`applied_at`** **\*** **string** ---- + --- + + + - - + + + + **`code`** **\*** **string** - + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ + `NOT_PAID`: 지불되지 않은 결제 건입니다.\\ - - - -**`code`** **\*** **string** + `"INVALID_REQUEST"`, `"NOT_PAID"` -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + --- ---- + **`params`** **object** -**`params`** **object** + 에러 상세 정보를 담은 파라미터 모음 -에러 상세 정보를 담은 파라미터 모음 + --- + + + ---- + + + + **`code`** **\*** **string** - - + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ - + `"UNAUTHORIZED"` - + --- - - -**`address_line_1`** **\*** **string** + **`params`** **object** -주소1 + 에러 상세 정보를 담은 파라미터 모음 ---- + --- + + + -**`address_line_2`** **\*** **string** + + + + **`code`** **\*** **string** -주소2 + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ ---- + `"PERMISSION_DENIED"` -**`city`** **string** + --- -도시 + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 -**`province`** **string** + --- + + + -주, 도, 시 + + + + **`code`** **\*** **string** ---- + `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ + `PAYMENT_NOT_FOUND`: 해당하는 결제를 찾을 수 없습니다.\\ -**`country`** **country_Country** + `"STORE_NOT_FOUND"`, `"PAYMENT_NOT_FOUND"` -국가 + --- -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 - + --- + + + - -국가 + + + + **`code`** **\*** **string** -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` - + --- - -**`name`** **string** + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 -**`phone_number`** **string** + --- + + + + ---- + + + **`address_line_1`** **\*** **string** -**`post_code`** **string** + 주소1 ---- + --- -**`address`** **\*** **Address** + **`address_line_2`** **\*** **string** -주소 형식 + 주소2 -
-

Address

+ --- -**`address_line_1`** **\*** **string** + **`city`** **string** -주소1 + 도시 ---- + --- -**`address_line_2`** **\*** **string** + **`province`** **string** -주소2 + 주, 도, 시 ---- + --- -**`city`** **string** + **`country`** **country\_Country** -도시 + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`province`** **string** + --- + -주, 도, 시 + + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + -**`country`** **country_Country** + + **`name`** **string** -국가 + --- -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + **`phone_number`** **string** ---- + --- -
+ **`post_code`** **string** ---- + --- -
+ **`address`** **\*** **Address** - -**`name`** **string** + 주소 형식 ---- +
+

Address

-**`phone_number`** **string** + **`address_line_1`** **\*** **string** ---- + 주소1 -**`post_code`** **string** + --- ---- + **`address_line_2`** **\*** **string** -**`relationship`** **string** + 주소2 ---- + --- -**`address`** **Address** + **`city`** **string** -주소 형식 + 도시 -
-

Address

+ --- -**`address_line_1`** **\*** **string** + **`province`** **string** -주소1 + 주, 도, 시 ---- + --- -**`address_line_2`** **\*** **string** + **`country`** **country\_Country** -주소2 + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`city`** **string** + --- +
-도시 + --- + ---- + + **`name`** **string** -**`province`** **string** + --- -주, 도, 시 + **`phone_number`** **string** ---- + --- -**`country`** **country_Country** + **`post_code`** **string** -국가 + --- -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + **`relationship`** **string** ---- + --- -
+ **`address`** **Address** ---- + 주소 형식 -
-
+
+

Address

- - -**`company`** **\*** **string** + **`address_line_1`** **\*** **string** -`"HYUNDAI"`, `"HANARO"`, `"SAGAWA"`, `"KGB"`, `"YELLOWCAP"`, `"DONGBU"`, `"EPOST"`, `"CJGLS"`, `"HANJIN"`, `"DAESIN"`, `"ETC"`, `"ILYANG"`, `"KYONGDONG"`, `"CHUNIL"` + 주소1 ---- + --- -**`invoice_number`** **\*** **string** + **`address_line_2`** **\*** **string** ---- + 주소2 -**`sent_at`** **\*** **string** + --- ---- + **`city`** **string** -**`received_at`** **string** + 도시 ---- + --- -**`address`** **Address** + **`province`** **string** -주소 형식 + 주, 도, 시 -
-

Address

+ --- -**`address_line_1`** **\*** **string** + **`country`** **country\_Country** -주소1 + 국가 ---- + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -**`address_line_2`** **\*** **string** + --- +
-주소2 + --- +
+
---- + + + **`company`** **\*** **string** -**`city`** **string** + `"HYUNDAI"`, `"HANARO"`, `"SAGAWA"`, `"KGB"`, `"YELLOWCAP"`, `"DONGBU"`, `"EPOST"`, `"CJGLS"`, `"HANJIN"`, `"DAESIN"`, `"ETC"`, `"ILYANG"`, `"KYONGDONG"`, `"CHUNIL"` -도시 + --- ---- + **`invoice_number`** **\*** **string** -**`province`** **string** + --- -주, 도, 시 + **`sent_at`** **\*** **string** ---- + --- -**`country`** **country_Country** + **`received_at`** **string** -국가 + --- -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + **`address`** **Address** ---- + 주소 형식 -
+
+

Address

---- + **`address_line_1`** **\*** **string** - - + 주소1 -## ⌨ 에스크로 구매완료 + --- - - + **`address_line_2`** **\*** **string** - + 주소2 -### Parameters + --- -#### Path + **`city`** **string** - -결제 ID + 도시 - + --- -#### Body + **`province`** **string** - + 주, 도, 시 - - + --- - + **`country`** **country\_Country** -### Responses + 국가 - - - -**`completed_at`** **\*** **string** + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- +
-
+ --- + - - - - - -**`code`** **\*** **string** +## ⌨ 에스크로 구매완료 -`INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ -`NOT_PAID`: 지불되지 않은 결제 건입니다.\ + + -`"INVALID_REQUEST"`, `"NOT_PAID"` + ### Parameters ---- + #### Path -**`params`** **object** + + 결제 ID + -에러 상세 정보를 담은 파라미터 모음 + #### Body ---- + - - + - + ### Responses - - - -**`code`** **\*** **string** + + + + **`completed_at`** **\*** **string** -`UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ + --- + + + -`"UNAUTHORIZED"` + + + + **`code`** **\*** **string** ---- + `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ + `NOT_PAID`: 지불되지 않은 결제 건입니다.\\ -**`params`** **object** + `"INVALID_REQUEST"`, `"NOT_PAID"` -에러 상세 정보를 담은 파라미터 모음 + --- ---- + **`params`** **object** - - + 에러 상세 정보를 담은 파라미터 모음 - + --- + + + - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -`PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ -`"PERMISSION_DENIED"` + `"UNAUTHORIZED"` ---- + --- -**`params`** **object** + **`params`** **object** -에러 상세 정보를 담은 파라미터 모음 + 에러 상세 정보를 담은 파라미터 모음 ---- + --- + + + - - + + + + **`code`** **\*** **string** - + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ - - - -**`code`** **\*** **string** + `"PERMISSION_DENIED"` -`STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ -`PAYMENT_NOT_FOUND`: 해당하는 결제를 찾을 수 없습니다.\ + --- -`"STORE_NOT_FOUND"`, `"PAYMENT_NOT_FOUND"` + **`params`** **object** ---- + 에러 상세 정보를 담은 파라미터 모음 -**`params`** **object** + --- + + + -에러 상세 정보를 담은 파라미터 모음 + + + + **`code`** **\*** **string** ---- + `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ + `PAYMENT_NOT_FOUND`: 해당하는 결제를 찾을 수 없습니다.\\ - - + `"STORE_NOT_FOUND"`, `"PAYMENT_NOT_FOUND"` - + --- - - - -**`code`** **\*** **string** + **`params`** **object** -`"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` + 에러 상세 정보를 담은 파라미터 모음 ---- + --- + + + -**`params`** **object** + + + + **`code`** **\*** **string** -에러 상세 정보를 담은 파라미터 모음 + `"PORTONE_ERROR"`, `"PG_PROVIDER_ERROR"` ---- + --- - - + **`params`** **object** - + 에러 상세 정보를 담은 파라미터 모음 + --- + + + ## - 가상계좌 말소 - - - + -### Parameters + ### Parameters -#### Path + #### Path 결제 ID - + #### Query -{" "} + {" "} - - 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 - 입력됩니다. - + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 + 입력됩니다. + @@ -10548,11 +10147,9 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 동일한 `payment_id`로 결제시도된 결제내역들 --- -
--- - @@ -10610,7 +10207,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 카드전표인자명 --- -
--- @@ -10645,7 +10241,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 무이자할부 여부 --- -
--- @@ -10655,7 +10250,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 카드 포인트 사용여부 --- - @@ -10706,7 +10300,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 카드전표인자명 --- - @@ -10754,7 +10347,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 카드 포인트 사용여부 --- -
--- @@ -10771,7 +10363,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 표준 은행 코드 (계좌 이체시 입력됨) --- -
--- @@ -10788,11 +10379,9 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 표준 은행 코드 --- -
--- - @@ -10809,7 +10398,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 상품권 승인번호 --- - @@ -10824,7 +10412,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 무이자할부 여부 --- - @@ -10841,7 +10428,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 휴대전화번호 --- - @@ -10876,7 +10462,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 상세 주소 --- - @@ -10956,7 +10541,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 PG사에 등록된 고객사 ID --- -
--- @@ -10973,19 +10557,18 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 --- - **`notifications`** **Array\[notification_Notification]** + **`notifications`** **Array\[notification\_Notification]** 웹훅 발송 내역
-

notification_Notification

+

notification\_Notification

**`webhook`** **Webhook** 웹훅 정보 --- -
--- @@ -11078,7 +10661,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 취소 금액 중 면세 금액 --- -
--- @@ -11143,7 +10725,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 구매자 우편번호 --- -
--- @@ -11180,7 +10761,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 결제근원의 IP 주소 --- - --- @@ -11235,7 +10815,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 배송등록 처리 일자 --- - --- @@ -11282,7 +10861,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 주문 수량 --- - --- @@ -11335,7 +10913,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 PG사 전달 에러 메세지 --- - --- @@ -11402,7 +10979,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 간편결제 정보 (충전식 간편결제일 경우 card와 transfer 값이 null임) --- - --- @@ -11479,7 +11055,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 영수증 url --- - --- @@ -11546,7 +11121,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 `"REQUESTED"`, `"FAILED"`, `"SUCCEEDED"` --- - --- @@ -11556,7 +11130,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 결제취소시각 - `status`가 `CANCELLED`인 경우 제공됩니다. --- - @@ -11565,7 +11138,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 표준 은행 코드 --- - @@ -11620,7 +11192,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 `"PENDING"`, `"PARTIAL_FAILED"`, `"FAILED"`, `"COMPLETED"` --- - @@ -11702,7 +11273,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 요청 시각 --- - --- @@ -11737,7 +11307,6 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 응답 시각 --- - --- @@ -11747,10 +11316,8 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 웹훅 처리 시작 시각 --- - - @@ -11759,7 +11326,7 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 **`code`** **\*** **string** `INVALID_REQUEST`: 파라미터를 포함한 요청을 처리하는 데에 실패했습니다. 올바른 형식의 파라미터를 전송했는지 확인해주세요.\ - `NOT_PAID`: 지불되지 않은 결제 건입니다.\ + `NOT_PAID`: 지불되지 않은 결제 건입니다.\\ `"INVALID_REQUEST"`, `"NOT_PAID"` @@ -11770,10 +11337,8 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 에러 상세 정보를 담은 파라미터 모음 --- - - @@ -11781,7 +11346,7 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 **`code`** **\*** **string** - `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\ + `UNAUTHORIZED`: 권한이 없습니다. 올바른 API Key를 헤더에 제공했는지 확인해주세요.\\ `"UNAUTHORIZED"` @@ -11792,10 +11357,8 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 에러 상세 정보를 담은 파라미터 모음 --- - - @@ -11803,7 +11366,7 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 **`code`** **\*** **string** - `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\ + `PERMISSION_DENIED`: 해당 요청을 수행하기 위한 권한이 없습니다.\\ `"PERMISSION_DENIED"` @@ -11814,10 +11377,8 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 에러 상세 정보를 담은 파라미터 모음 --- - - @@ -11826,7 +11387,7 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 **`code`** **\*** **string** `STORE_NOT_FOUND`: 하위 상점을 찾을 수 없습니다.\ - `PAYMENT_NOT_FOUND`: 해당하는 결제를 찾을 수 없습니다.\ + `PAYMENT_NOT_FOUND`: 해당하는 결제를 찾을 수 없습니다.\\ `"STORE_NOT_FOUND"`, `"PAYMENT_NOT_FOUND"` @@ -11837,10 +11398,8 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 에러 상세 정보를 담은 파라미터 모음 --- - - @@ -11857,9 +11416,7 @@ valid_hours와 due_date 둘 중 하나의 값만 채워야 함 에러 상세 정보를 담은 파라미터 모음 --- - - diff --git a/src/content/docs/ko/api-v2/schedule.mdx b/src/content/docs/ko/api-v2/schedule.mdx index de639f2dc..11130c12e 100644 --- a/src/content/docs/ko/api-v2/schedule.mdx +++ b/src/content/docs/ko/api-v2/schedule.mdx @@ -8,929 +8,885 @@ import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ 정기결제예약 다건 조회 - + - + ### Parameters -### Parameters + #### Query -#### Query + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + 결제예약시각( - - -결제예약시각( + `scheduled_at` -`scheduled_at` + ) 범위의 시작 - 값을 넣지 않으면 파라미터 end의 90일 전으로 설정됩니다. + -) 범위의 시작 - 값을 넣지 않으면 파라미터 end의 90일 전으로 설정됩니다. + + 결제예약시각( - - -결제예약시각( + `scheduled_at` -`scheduled_at` + ) 범위의 끝 - 값을 넣지 않으면 현재 시각으로 설정됩니다. + -) 범위의 끝 - 값을 넣지 않으면 현재 시각으로 설정됩니다. + + 결제예약 상태 리스트 + - - -결제예약 상태 리스트 + + 페이지 - 0부터 시작합니다. + - - -페이지 - 0부터 시작합니다. + + 페이지 크기 (최대 1000까지 허용) + - - -페이지 크기 (최대 1000까지 허용) + ### Responses - + + + + **`current_page`** **\*** **integer** -### Responses + --- - - - -**`current_page`** **\*** **integer** + **`total_page`** **\*** **integer** ---- + --- -**`total_page`** **\*** **integer** + **`total_count`** **\*** **integer** ---- + --- -**`total_count`** **\*** **integer** + **`schedules`** **\*** **Array\[Schedule]** ---- + 결제예약정보 -**`schedules`** **\*** **Array\[Schedule]** +
+

Schedule

-결제예약정보 + **`id`** **\*** **string** -
-

Schedule

+ 결제예약 ID -**`id`** **\*** **string** + --- -결제예약 ID + **`merchant_id`** **\*** **string** ---- + 고객사 ID -**`merchant_id`** **\*** **string** + --- -고객사 ID + **`store_id`** **\*** **string** ---- + 하위 상점 ID -**`store_id`** **\*** **string** + --- -하위 상점 ID + **`billing_key`** **\*** **string** ---- + 빌링키 -**`billing_key`** **\*** **string** + --- -빌링키 + **`payment_id`** **\*** **string** ---- + 결제 ID -**`payment_id`** **\*** **string** + --- -결제 ID + **`status`** **\*** **ScheduleStatus** ---- + 예약결제 상태\ + `SCHEDULED`: 결제 예약\ + `STARTED`: 결제 실행\ + `COMPLETED`: 실행 완료\ + `CANCELLED`: 예약 취소\\ -**`status`** **\*** **ScheduleStatus** + `"SCHEDULED"`, `"STARTED"`, `"COMPLETED"`, `"CANCELLED"` -예약결제 상태\ -`SCHEDULED`: 결제 예약\ -`STARTED`: 결제 실행\ -`COMPLETED`: 실행 완료\ -`CANCELLED`: 예약 취소\ + --- -`"SCHEDULED"`, `"STARTED"`, `"COMPLETED"`, `"CANCELLED"` + **`scheduled_at`** **\*** **string** ---- + 결제 예약 시각 -**`scheduled_at`** **\*** **string** + --- -결제 예약 시각 + **`started_at`** **string** ---- + 결제 실행 시각 (`status`가 `STARTED`로 되었을 경우 제공) -**`started_at`** **string** + --- -결제 실행 시각 (`status`가 `STARTED`로 되었을 경우 제공) + **`completed_at`** **string** ---- + 결제 완료 시각 (`status`가 `COMPLETED`인 경우 제공) -**`completed_at`** **string** + --- -결제 완료 시각 (`status`가 `COMPLETED`인 경우 제공) + **`cancelled_at`** **string** ---- + 결제 취소 시각 (`status`가 `CANCELLED`인 경우 제공) -**`cancelled_at`** **string** + --- -결제 취소 시각 (`status`가 `CANCELLED`인 경우 제공) + **`order_name`** **\*** **string** ---- + 주문명 -**`order_name`** **\*** **string** + --- -주문명 + **`is_cultural_expense`** **\*** **boolean** ---- + 문화비 지출 여부 -**`is_cultural_expense`** **\*** **boolean** + --- -문화비 지출 여부 + **`is_escrow`** **\*** **boolean** ---- + 에스크로 결제 여부 -**`is_escrow`** **\*** **boolean** + --- -에스크로 결제 여부 + **`products`** **Array\[Product]** ---- + 상품 정보 (에스크로 결제 시 에스크로 상품 정보로 활용됨) -**`products`** **Array\[Product]** + --- -상품 정보 (에스크로 결제 시 에스크로 상품 정보로 활용됨) + **`customer`** **\*** **Customer** ---- + 구매자 정보 -**`customer`** **\*** **Customer** + --- -구매자 정보 + **`custom_data`** **string** ---- + 커스텀 데이터 -**`custom_data`** **string** + --- -커스텀 데이터 + **`total_amount`** **\*** **integer** ---- + 결제 금액 -**`total_amount`** **\*** **integer** + --- -결제 금액 + **`tax_free_amount`** **integer** ---- + 면세 금액 -**`tax_free_amount`** **integer** + --- -면세 금액 + **`currency`** **\*** **Currency** ---- + 통화 -**`currency`** **\*** **Currency** + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -통화 + --- -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + **`origin`** **Origin** ---- + 결제를 요청한 근원에 대한 정보 -**`origin`** **Origin** + --- -결제를 요청한 근원에 대한 정보 + **`notice_urls`** **\*** **Array\[string]** ---- + 결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. -**`notice_urls`** **\*** **Array\[string]** + --- -결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + **`installment_month`** **integer** ---- + 할부개월 -**`installment_month`** **integer** + --- +
-할부개월 + --- + ---- + + **`id`** **string** -
+ 구매자 ID ---- + --- -
+ **`name`** **string** - -**`id`** **string** + 구매자 이름 -구매자 ID + --- ---- + **`birthYear`** **string** -**`name`** **string** + 구매자 생년 -구매자 이름 + --- ---- + **`gender`** **Gender** -**`birthYear`** **string** + `"MALE"`, `"FEMALE"`, `"OTHER"` -구매자 생년 + --- ---- + **`email`** **string** -**`gender`** **Gender** + 구매자 이메일 -`"MALE"`, `"FEMALE"`, `"OTHER"` + --- ---- + **`phone_number`** **string** -**`email`** **string** + 구매자 전화번호 -구매자 이메일 + --- ---- + **`one_line_address`** **string** -**`phone_number`** **string** + 구매자 주소 (한 줄) -구매자 전화번호 + --- ---- + **`separated_address`** **SeparatedAddress** -**`one_line_address`** **string** + 구매자 주소 (단위별) -구매자 주소 (한 줄) +
+

SeparatedAddress

---- + **`country`** **Country** -**`separated_address`** **SeparatedAddress** + 국가 -구매자 주소 (단위별) + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` -
-

SeparatedAddress

+ --- -**`country`** **Country** + **`province`** **string** -국가 + 시/도/구 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- ---- + **`city`** **string** -**`province`** **string** + 도시 -시/도/구 + --- ---- + **`address_line_1`** **\*** **string** -**`city`** **string** + 일반 주소 -도시 + --- ---- + **`address_line_2`** **\*** **string** -**`address_line_1`** **\*** **string** + 상세 주소 -일반 주소 + --- +
---- + --- -**`address_line_2`** **\*** **string** + **`zipcode`** **string** -상세 주소 + 구매자 우편번호 ---- + --- + -
+ + **`platform_type`** **\*** **string** ---- - -**`zipcode`** **string** - -구매자 우편번호 - ---- + 결제를 요청한 단말의 플랫폼 분류 - + `"PC"`, `"MOBILE"`, `"API"` - -**`platform_type`** **\*** **string** + --- -결제를 요청한 단말의 플랫폼 분류 + **`user_agent`** **string** -`"PC"`, `"MOBILE"`, `"API"` + 결제근원의 환경 정보 (Http 의 User-Agent header value) ---- - -**`user_agent`** **string** - -결제근원의 환경 정보 (Http 의 User-Agent header value) - ---- + --- -**`url`** **string** + **`url`** **string** -결제근원의 페이지 url + 결제근원의 페이지 url ---- + --- -**`ip_address`** **\*** **string** + **`ip_address`** **\*** **string** -결제근원의 IP 주소 + 결제근원의 IP 주소 ---- + --- + -
+ + **`id`** **\*** **string** - -**`id`** **\*** **string** + 상품 ID -상품 ID + --- ---- + **`name`** **\*** **string** -**`name`** **\*** **string** + 상품명 -상품명 + --- ---- + **`tag`** **string** -**`tag`** **string** + 상품 태그(카테고리) -상품 태그(카테고리) + --- ---- + **`code`** **string** -**`code`** **string** + 상품 코드 -상품 코드 + --- ---- + **`amount`** **\*** **integer** -**`amount`** **\*** **integer** + 상품 단위가격 -상품 단위가격 + --- ---- + **`quantity`** **\*** **integer** -**`quantity`** **\*** **integer** + 주문 수량 -주문 수량 + --- + +
+
---- + + + + **`code`** **\*** **string** - - + `"UNAUTHORIZED"` - + --- - - - -**`code`** **\*** **string** + **`params`** **object** -`"UNAUTHORIZED"` + 에러 세부사항 ---- + --- + + + -**`params`** **object** + + + + **`code`** **\*** **string** -에러 세부사항 + `"PORTONE_ERROR"` ---- + --- - - + **`params`** **object** - - - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - + 에러 세부사항 + --- +
+
+
## ⌨ 빌링키 정기결제예약 취소 - + - + ### Parameters -### Parameters + #### Query -#### Query + + 하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + - -하위 상점 ID - 값을 넣지 않으면 Merchant 유저의 기본값으로 설정된 상점의 id가 입력됩니다. + + 정기결제예약 빌링키 + - - -정기결제예약 빌링키 + + 삭제할 정기결제예약 아이디 목록, 비어있을 경우 빌링키로 예약한 모든 예약을 취소함 + - - -삭제할 정기결제예약 아이디 목록, 비어있을 경우 빌링키로 예약한 모든 예약을 취소함 + ### Responses - + + + + **`deleted_schedule_ids`** **\*** **Array\[string]** -### Responses + 삭제된 정기결제예약 아이디 목록 - - - -**`deleted_schedule_ids`** **\*** **Array\[string]** + --- + + + -삭제된 정기결제예약 아이디 목록 + + + + **`code`** **\*** **string** ---- + `"INVALID_REQUEST"`, `"SCHEDULE_ALREADY_PROCESSED"` - - + --- - + **`params`** **object** - - - -**`code`** **\*** **string** + 에러 세부사항 -`"INVALID_REQUEST"`, `"SCHEDULE_ALREADY_PROCESSED"` + --- + + + ---- + + + + **`code`** **\*** **string** -**`params`** **object** + `"UNAUTHORIZED"` -에러 세부사항 + --- ---- + **`params`** **object** - - + 에러 세부사항 - + --- + + + - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -`"UNAUTHORIZED"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- + `"PORTONE_ERROR"` - - + --- - + **`params`** **object** - - - -**`code`** **\*** **string** - -`"PORTONE_ERROR"` - ---- - -**`params`** **object** - -에러 세부사항 - ---- - - - - - + 에러 세부사항 + --- + + + ## ⌨ 정기결제예약 단건 조회 - - - + -### Parameters + ### Parameters -#### Path + #### Path - -정기결제예약 ID + + 정기결제예약 ID + - + ### Responses -### Responses + + + + **`schedule`** **\*** **Schedule** - - - -**`schedule`** **\*** **Schedule** + 결제예약정보 -결제예약정보 +
+

Schedule

-
-

Schedule

+ **`id`** **\*** **string** -**`id`** **\*** **string** + 결제예약 ID -결제예약 ID + --- ---- + **`merchant_id`** **\*** **string** -**`merchant_id`** **\*** **string** + 고객사 ID -고객사 ID + --- ---- + **`store_id`** **\*** **string** -**`store_id`** **\*** **string** + 하위 상점 ID -하위 상점 ID + --- ---- + **`billing_key`** **\*** **string** -**`billing_key`** **\*** **string** + 빌링키 -빌링키 - ---- + --- -**`payment_id`** **\*** **string** + **`payment_id`** **\*** **string** -결제 ID + 결제 ID ---- + --- -**`status`** **\*** **ScheduleStatus** + **`status`** **\*** **ScheduleStatus** -예약결제 상태\ -`SCHEDULED`: 결제 예약\ -`STARTED`: 결제 실행\ -`COMPLETED`: 실행 완료\ -`CANCELLED`: 예약 취소\ + 예약결제 상태\ + `SCHEDULED`: 결제 예약\ + `STARTED`: 결제 실행\ + `COMPLETED`: 실행 완료\ + `CANCELLED`: 예약 취소\\ -`"SCHEDULED"`, `"STARTED"`, `"COMPLETED"`, `"CANCELLED"` + `"SCHEDULED"`, `"STARTED"`, `"COMPLETED"`, `"CANCELLED"` ---- + --- -**`scheduled_at`** **\*** **string** + **`scheduled_at`** **\*** **string** -결제 예약 시각 + 결제 예약 시각 ---- + --- -**`started_at`** **string** + **`started_at`** **string** -결제 실행 시각 (`status`가 `STARTED`로 되었을 경우 제공) + 결제 실행 시각 (`status`가 `STARTED`로 되었을 경우 제공) ---- + --- -**`completed_at`** **string** + **`completed_at`** **string** -결제 완료 시각 (`status`가 `COMPLETED`인 경우 제공) + 결제 완료 시각 (`status`가 `COMPLETED`인 경우 제공) ---- + --- -**`cancelled_at`** **string** - -결제 취소 시각 (`status`가 `CANCELLED`인 경우 제공) - ---- - -**`order_name`** **\*** **string** - -주문명 - ---- - -**`is_cultural_expense`** **\*** **boolean** - -문화비 지출 여부 - ---- - -**`is_escrow`** **\*** **boolean** - -에스크로 결제 여부 - ---- - -**`products`** **Array\[Product]** - -상품 정보 (에스크로 결제 시 에스크로 상품 정보로 활용됨) - ---- + **`cancelled_at`** **string** -**`customer`** **\*** **Customer** + 결제 취소 시각 (`status`가 `CANCELLED`인 경우 제공) -구매자 정보 + --- ---- + **`order_name`** **\*** **string** -**`custom_data`** **string** + 주문명 -커스텀 데이터 + --- ---- + **`is_cultural_expense`** **\*** **boolean** -**`total_amount`** **\*** **integer** + 문화비 지출 여부 -결제 금액 + --- ---- + **`is_escrow`** **\*** **boolean** -**`tax_free_amount`** **integer** + 에스크로 결제 여부 -면세 금액 + --- ---- + **`products`** **Array\[Product]** -**`currency`** **\*** **Currency** + 상품 정보 (에스크로 결제 시 에스크로 상품 정보로 활용됨) -통화 + --- -`"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` + **`customer`** **\*** **Customer** ---- + 구매자 정보 -**`origin`** **Origin** + --- -결제를 요청한 근원에 대한 정보 + **`custom_data`** **string** ---- + 커스텀 데이터 -**`notice_urls`** **\*** **Array\[string]** + --- -결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. + **`total_amount`** **\*** **integer** ---- + 결제 금액 -**`installment_month`** **integer** + --- -할부개월 + **`tax_free_amount`** **integer** ---- + 면세 금액 -
+ --- ---- + **`currency`** **\*** **Currency** - + 통화 - -**`id`** **string** + `"KRW"`, `"USD"`, `"EUR"`, `"JPY"`, `"CNY"`, `"VND"`, `"THB"`, `"SGD"`, `"AUD"`, `"HKD"`, `"AED"`, `"AFN"`, `"ALL"`, `"AMD"`, `"ANG"`, `"AOA"`, `"ARS"`, `"AWG"`, `"AZN"`, `"BAM"`, `"BBD"`, `"BDT"`, `"BGN"`, `"BHD"`, `"BIF"`, `"BMD"`, `"BND"`, `"BOB"`, `"BOV"`, `"BRL"`, `"BSD"`, `"BTN"`, `"BWP"`, `"BYN"`, `"BZD"`, `"CAD"`, `"CDF"`, `"CHE"`, `"CHF"`, `"CHW"`, `"CLF"`, `"CLP"`, `"COP"`, `"COU"`, `"CRC"`, `"CUC"`, `"CUP"`, `"CVE"`, `"CZK"`, `"DJF"`, `"DKK"`, `"DOP"`, `"DZD"`, `"EGP"`, `"ERN"`, `"ETB"`, `"FJD"`, `"FKP"`, `"GBP"`, `"GEL"`, `"GHS"`, `"GIP"`, `"GMD"`, `"GNF"`, `"GTQ"`, `"GYD"`, `"HNL"`, `"HRK"`, `"HTG"`, `"HUF"`, `"IDR"`, `"ILS"`, `"INR"`, `"IQD"`, `"IRR"`, `"ISK"`, `"JMD"`, `"JOD"`, `"KES"`, `"KGS"`, `"KHR"`, `"KMF"`, `"KPW"`, `"KWD"`, `"KYD"`, `"KZT"`, `"LAK"`, `"LBP"`, `"LKR"`, `"LRD"`, `"LSL"`, `"LYD"`, `"MAD"`, `"MDL"`, `"MGA"`, `"MKD"`, `"MMK"`, `"MNT"`, `"MOP"`, `"MRU"`, `"MUR"`, `"MVR"`, `"MWK"`, `"MXN"`, `"MXV"`, `"MYR"`, `"MZN"`, `"NAD"`, `"NGN"`, `"NIO"`, `"NOK"`, `"NPR"`, `"NZD"`, `"OMR"`, `"PAB"`, `"PEN"`, `"PGK"`, `"PHP"`, `"PKR"`, `"PLN"`, `"PYG"`, `"QAR"`, `"RON"`, `"RSD"`, `"RUB"`, `"RWF"`, `"SAR"`, `"SBD"`, `"SCR"`, `"SDG"`, `"SEK"`, `"SHP"`, `"SLE"`, `"SLL"`, `"SOS"`, `"SRD"`, `"SSP"`, `"STN"`, `"SVC"`, `"SYP"`, `"SZL"`, `"TJS"`, `"TMT"`, `"TND"`, `"TOP"`, `"TRY"`, `"TTD"`, `"TWD"`, `"TZS"`, `"UAH"`, `"UGX"`, `"USN"`, `"UYI"`, `"UYU"`, `"UYW"`, `"UZS"`, `"VED"`, `"VES"`, `"VUV"`, `"WST"`, `"XAF"`, `"XAG"`, `"XAU"`, `"XBA"`, `"XBB"`, `"XBC"`, `"XBD"`, `"XCD"`, `"XDR"`, `"XOF"`, `"XPD"`, `"XPF"`, `"XPT"`, `"XSU"`, `"XTS"`, `"XUA"`, `"XXX"`, `"YER"`, `"ZAR"`, `"ZMW"`, `"ZWL"` -구매자 ID + --- ---- + **`origin`** **Origin** -**`name`** **string** + 결제를 요청한 근원에 대한 정보 -구매자 이름 + --- ---- + **`notice_urls`** **\*** **Array\[string]** -**`birthYear`** **string** + 결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. -구매자 생년 + --- ---- + **`installment_month`** **integer** -**`gender`** **Gender** + 할부개월 -`"MALE"`, `"FEMALE"`, `"OTHER"` + --- +
---- + --- +
-**`email`** **string** + + **`id`** **string** -구매자 이메일 + 구매자 ID ---- + --- -**`phone_number`** **string** + **`name`** **string** -구매자 전화번호 + 구매자 이름 ---- + --- -**`one_line_address`** **string** + **`birthYear`** **string** -구매자 주소 (한 줄) + 구매자 생년 ---- + --- -**`separated_address`** **SeparatedAddress** + **`gender`** **Gender** -구매자 주소 (단위별) + `"MALE"`, `"FEMALE"`, `"OTHER"` -
-

SeparatedAddress

+ --- -**`country`** **Country** + **`email`** **string** -국가 코드 + 구매자 이메일 -`"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` + --- ---- + **`phone_number`** **string** -**`province`** **string** + 구매자 전화번호 -시/도/구 + --- ---- + **`one_line_address`** **string** -**`city`** **string** + 구매자 주소 (한 줄) -도시 + --- ---- + **`separated_address`** **SeparatedAddress** -**`address_line_1`** **\*** **string** + 구매자 주소 (단위별) -일반 주소 +
+

SeparatedAddress

---- + **`country`** **Country** -**`address_line_2`** **\*** **string** + 국가 코드 -상세 주소 + `"AF"`, `"AX"`, `"AL"`, `"DZ"`, `"AS"`, `"AD"`, `"AO"`, `"AI"`, `"AQ"`, `"AG"`, `"AR"`, `"AM"`, `"AW"`, `"AU"`, `"AT"`, `"AZ"`, `"BH"`, `"BS"`, `"BD"`, `"BB"`, `"BY"`, `"BE"`, `"BZ"`, `"BJ"`, `"BM"`, `"BT"`, `"BO"`, `"BQ"`, `"BA"`, `"BW"`, `"BV"`, `"BR"`, `"IO"`, `"BN"`, `"BG"`, `"BF"`, `"BI"`, `"KH"`, `"CM"`, `"CA"`, `"CV"`, `"KY"`, `"CF"`, `"TD"`, `"CL"`, `"CN"`, `"CX"`, `"CC"`, `"CO"`, `"KM"`, `"CG"`, `"CD"`, `"CK"`, `"CR"`, `"CI"`, `"HR"`, `"CU"`, `"CW"`, `"CY"`, `"CZ"`, `"DK"`, `"DJ"`, `"DM"`, `"DO"`, `"EC"`, `"EG"`, `"SV"`, `"GQ"`, `"ER"`, `"EE"`, `"ET"`, `"FK"`, `"FO"`, `"FJ"`, `"FI"`, `"FR"`, `"GF"`, `"PF"`, `"TF"`, `"GA"`, `"GM"`, `"GE"`, `"DE"`, `"GH"`, `"GI"`, `"GR"`, `"GL"`, `"GD"`, `"GP"`, `"GU"`, `"GT"`, `"GG"`, `"GN"`, `"GW"`, `"GY"`, `"HT"`, `"HM"`, `"VA"`, `"HN"`, `"HK"`, `"HU"`, `"IS"`, `"IN"`, `"ID"`, `"IR"`, `"IQ"`, `"IE"`, `"IM"`, `"IL"`, `"IT"`, `"JM"`, `"JP"`, `"JE"`, `"JO"`, `"KZ"`, `"KE"`, `"KI"`, `"KP"`, `"KR"`, `"KW"`, `"KG"`, `"LA"`, `"LV"`, `"LB"`, `"LS"`, `"LR"`, `"LY"`, `"LI"`, `"LT"`, `"LU"`, `"MO"`, `"MK"`, `"MG"`, `"MW"`, `"MY"`, `"MV"`, `"ML"`, `"MT"`, `"MH"`, `"MQ"`, `"MR"`, `"MU"`, `"YT"`, `"MX"`, `"FM"`, `"MD"`, `"MC"`, `"MN"`, `"ME"`, `"MS"`, `"MA"`, `"MZ"`, `"MM"`, `"NA"`, `"NR"`, `"NP"`, `"NL"`, `"NC"`, `"NZ"`, `"NI"`, `"NE"`, `"NG"`, `"NU"`, `"NF"`, `"MP"`, `"NO"`, `"OM"`, `"PK"`, `"PW"`, `"PS"`, `"PA"`, `"PG"`, `"PY"`, `"PE"`, `"PH"`, `"PN"`, `"PL"`, `"PT"`, `"PR"`, `"QA"`, `"RE"`, `"RO"`, `"RU"`, `"RW"`, `"BL"`, `"SH"`, `"KN"`, `"LC"`, `"MF"`, `"PM"`, `"VC"`, `"WS"`, `"SM"`, `"ST"`, `"SA"`, `"SN"`, `"RS"`, `"SC"`, `"SL"`, `"SG"`, `"SX"`, `"SK"`, `"SI"`, `"SB"`, `"SO"`, `"ZA"`, `"GS"`, `"SS"`, `"ES"`, `"LK"`, `"SD"`, `"SR"`, `"SJ"`, `"SZ"`, `"SE"`, `"CH"`, `"SY"`, `"TW"`, `"TJ"`, `"TZ"`, `"TH"`, `"TL"`, `"TG"`, `"TK"`, `"TO"`, `"TT"`, `"TN"`, `"TR"`, `"TM"`, `"TC"`, `"TV"`, `"UG"`, `"UA"`, `"AE"`, `"GB"`, `"US"`, `"UM"`, `"UY"`, `"UZ"`, `"VU"`, `"VE"`, `"VN"`, `"VG"`, `"VI"`, `"WF"`, `"EH"`, `"YE"`, `"ZM"`, `"ZW"` ---- + --- -
+ **`province`** **string** ---- + 시/도/구 -**`zipcode`** **string** + --- -구매자 우편번호 + **`city`** **string** ---- + 도시 - + --- - -**`platform_type`** **\*** **string** + **`address_line_1`** **\*** **string** -결제를 요청한 단말의 플랫폼 분류 + 일반 주소 -`"PC"`, `"MOBILE"`, `"API"` + --- ---- + **`address_line_2`** **\*** **string** -**`user_agent`** **string** + 상세 주소 -결제근원의 환경 정보 (Http 의 User-Agent header value) + --- +
---- + --- -**`url`** **string** + **`zipcode`** **string** -결제근원의 페이지 url + 구매자 우편번호 ---- + --- +
-**`ip_address`** **\*** **string** + + **`platform_type`** **\*** **string** -결제근원의 IP 주소 + 결제를 요청한 단말의 플랫폼 분류 ---- + `"PC"`, `"MOBILE"`, `"API"` - + --- - -**`id`** **\*** **string** + **`user_agent`** **string** -상품 ID + 결제근원의 환경 정보 (Http 의 User-Agent header value) ---- + --- -**`name`** **\*** **string** + **`url`** **string** -상품명 + 결제근원의 페이지 url ---- + --- -**`tag`** **string** + **`ip_address`** **\*** **string** -상품 태그(카테고리) + 결제근원의 IP 주소 ---- + --- + -**`code`** **string** + + **`id`** **\*** **string** -상품 코드 + 상품 ID ---- + --- -**`amount`** **\*** **integer** + **`name`** **\*** **string** -상품 단위가격 + 상품명 ---- + --- -**`quantity`** **\*** **integer** + **`tag`** **string** -주문 수량 + 상품 태그(카테고리) ---- + --- - -
+ **`code`** **string** -
+ 상품 코드 - - - -**`code`** **\*** **string** + --- -`"UNAUTHORIZED"` + **`amount`** **\*** **integer** ---- + 상품 단위가격 -**`params`** **object** + --- -에러 세부사항 + **`quantity`** **\*** **integer** ---- + 주문 수량 - - + --- +
+
+
- + + + + **`code`** **\*** **string** - - - -**`code`** **\*** **string** + `"UNAUTHORIZED"` -`"SCHEDULE_NOT_FOUND"` + --- ---- + **`params`** **object** -**`params`** **object** + 에러 세부사항 -에러 세부사항 + --- + + + ---- + + + + **`code`** **\*** **string** - - + `"SCHEDULE_NOT_FOUND"` - + --- - - - -**`code`** **\*** **string** + **`params`** **object** -`"PORTONE_ERROR"` + 에러 세부사항 ---- + --- + + + -**`params`** **object** + + + + **`code`** **\*** **string** -에러 세부사항 + `"PORTONE_ERROR"` ---- + --- - - + **`params`** **object** - + 에러 세부사항 + --- + + +
diff --git a/src/content/docs/ko/api-v2/store.mdx b/src/content/docs/ko/api-v2/store.mdx index 4b205df1d..ffc15755a 100644 --- a/src/content/docs/ko/api-v2/store.mdx +++ b/src/content/docs/ko/api-v2/store.mdx @@ -8,1708 +8,1646 @@ import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## ⌨ 하위상점 다건 조회 - -하위상점 다건 조회 - + + 하위상점 다건 조회 + -### Parameters + ### Parameters -#### Header + #### Header - -jwt 토큰 헤더 + + jwt 토큰 헤더 + - + ### Responses -### Responses + + + + **`stores`** **\*** **Array\[PublicStoreResponse]** - - - -**`stores`** **\*** **Array\[PublicStoreResponse]** + store 목록 -store 목록 +
+

PublicStoreResponse

-
-

PublicStoreResponse

+ **`id`** **\*** **string** -**`id`** **\*** **string** + 상점 아이디 -상점 아이디 + --- ---- + **`name`** **\*** **string** -**`name`** **\*** **string** + 상점 이름 -상점 이름 + --- ---- + **`tier_code`** **\*** **string** -**`tier_code`** **\*** **string** + 상점 식별 코드 ex) ABC 영문, 숫자 3자리 -상점 식별 코드 ex) ABC 영문, 숫자 3자리 + --- ---- + **`service_urls`** **\*** **Array\[string]** -**`service_urls`** **\*** **Array\[string]** + 서비스 url 리스트 -서비스 url 리스트 + --- ---- + **`manager_name`** **string** -**`manager_name`** **string** + 담당자명 -담당자명 + --- ---- + **`manager_phone_number`** **string** -**`manager_phone_number`** **string** + 담당자 휴대폰번호 -담당자 휴대폰번호 + --- ---- + **`manager_email`** **string** -**`manager_email`** **string** + 담당자 이메일 -담당자 이메일 + --- ---- + **`representative`** **\*** **PublicStoreRepresentativeResponse** -**`representative`** **\*** **PublicStoreRepresentativeResponse** + 상점 대표자 정보 -상점 대표자 정보 + --- ---- + **`business_license`** **\*** **PublicStoreBusinessLicense** -**`business_license`** **\*** **PublicStoreBusinessLicense** + 사업자 정보 -사업자 정보 + --- +
---- + --- + -
+ + **`taxation_type`** **\*** **TaxationType** ---- + 사업자 구분 - - -**`taxation_type`** **\*** **TaxationType** + `"PERSON"`, `"CORPORATE"` -사업자 구분 + --- -`"PERSON"`, `"CORPORATE"` + **`company_name`** **\*** **string** ---- + 회사명 -**`company_name`** **\*** **string** + --- -회사명 + **`registration_number`** **\*** **string** ---- + 사업자번호 -**`registration_number`** **\*** **string** + --- -사업자번호 + **`business_location`** **\*** **string** ---- + 회사 주소 -**`business_location`** **\*** **string** + --- -회사 주소 + **`business_location_detail`** **\*** **string** ---- + 회사 상세 주소 -**`business_location_detail`** **\*** **string** + --- -회사 상세 주소 + **`postal_code`** **\*** **string** ---- + 우편번호 -**`postal_code`** **\*** **string** + --- -우편번호 + **`business_types`** **\*** **Array\[string]** ---- + 업태 -**`business_types`** **\*** **Array\[string]** + --- -업태 + **`business_items`** **\*** **Array\[string]** ---- + 종목 -**`business_items`** **\*** **Array\[string]** + --- -종목 + **`corporate_registration_number`** **string** ---- + 법인등록번호 - 법인 only -**`corporate_registration_number`** **string** + --- -법인등록번호 - 법인 only + **`headquarter_location`** **string** ---- + 본사 주소 - 법인 only -**`headquarter_location`** **string** + --- -본사 주소 - 법인 only + **`business_establishment_date`** **string** ---- + 개업 연월일 -**`business_establishment_date`** **string** + --- -개업 연월일 + **`issuance_date`** **string** ---- + 사업자등록증 발급일 -**`issuance_date`** **string** + --- -사업자등록증 발급일 + **`issuance_reason`** **string** ---- + 발급 사유 -**`issuance_reason`** **string** + --- + -발급 사유 + + **`name_ko`** **\*** **string** ---- + 대표자 이름 - - -**`name_ko`** **\*** **string** + --- -대표자 이름 + **`name_en`** **string** ---- + 대표자 영문 이름 -**`name_en`** **string** + --- -대표자 영문 이름 + **`email`** **\*** **string** ---- + 대표자 이메일 -**`email`** **\*** **string** + --- -대표자 이메일 + **`phone_number`** **\*** **string** ---- + 대표자 전화번호 -**`phone_number`** **\*** **string** + --- -대표자 전화번호 + **`birth_date`** **string** ---- + 대표자 생년월일 format: yyyy-MM-dd + ex) 2000-01-01 -**`birth_date`** **string** + --- + +
+
-대표자 생년월일 format: yyyy-MM-dd -ex) 2000-01-01 + + + + **`code`** **\*** **string** ---- + 에러 코드 - - + --- - - - - -**`code`** **\*** **string** + **`params`** **\*** **object** -에러 코드 + 에러 세부사항 ---- +
+

params

-**`params`** **\*** **object** + **`message`** **string** -에러 세부사항 + 에러 메시지 -
-

params

+ --- +
-**`message`** **string** + --- + + + -에러 메시지 + + + + **`code`** **\*** **string** ---- + 에러 코드 -
+ --- ---- + **`params`** **\*** **object** -
-
+ 에러 세부사항 -
- - - -**`code`** **\*** **string** +
+

params

-에러 코드 + **`message`** **string** ---- + 에러 메시지 -**`params`** **\*** **object** + --- +
-에러 세부사항 + --- +
+
+
-
-

params

+ + + + **`code`** **\*** **string** -**`message`** **string** + 에러 코드 -에러 메시지 + --- ---- + **`params`** **\*** **object** -
+ 에러 세부사항 ---- +
+

params

- - - - - - - -**`code`** **\*** **string** - -에러 코드 - ---- - -**`params`** **\*** **object** - -에러 세부사항 - -
-

params

- -**`message`** **string** - -에러 메시지 - ---- - -
- ---- - -
-
- -
- - - -**`code`** **\*** **string** + **`message`** **string** -에러 코드 + 에러 메시지 ---- + --- +
-**`params`** **\*** **object** + --- +
+
+
-에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
## ⌨ 하위상점 생성 - - -하위상점 생성 - - -### Parameters - -#### Header - - -jwt 토큰 헤더 - - - -#### Body - - -상점 이름 - - - -상점 식별 코드 ex) ABC 영문, 숫자 3자리 - - - -서비스 url 리스트 - - - -담당자명 - - - -담당자 휴대폰번호 - - - -담당자 이메일 - - - -상점 대표자 정보 - - - -사업자 정보 - - - -약관 동의 여부, 두 가지 필수 약관 모두 동의 필요 -첫번째 약관: 개인정보 수집 동의 -두번째 약관: 상위 고객사에게 상점 정보 제공 동의 -ex) 두 약관 모두 동의 [true, true] - - -### Responses + + + 하위상점 생성 + - - - -**`id`** **\*** **string** + ### Parameters -상점 아이디 + #### Header ---- + + jwt 토큰 헤더 + -**`name`** **\*** **string** + #### Body -상점 이름 - ---- + + 상점 이름 + -**`tier_code`** **\*** **string** + + 상점 식별 코드 ex) ABC 영문, 숫자 3자리 + -상점 식별 코드 ex) ABC 영문, 숫자 3자리 + + 서비스 url 리스트 + ---- + + 담당자명 + -**`service_urls`** **\*** **Array\[string]** + + 담당자 휴대폰번호 + -서비스 url 리스트 + + 담당자 이메일 + ---- + + 상점 대표자 정보 + -**`manager_name`** **string** + + 사업자 정보 + -담당자명 + + 약관 동의 여부, 두 가지 필수 약관 모두 동의 필요 + 첫번째 약관: 개인정보 수집 동의 + 두번째 약관: 상위 고객사에게 상점 정보 제공 동의 + ex) 두 약관 모두 동의 \[true, true] + ---- + ### Responses -**`manager_phone_number`** **string** + + + + **`id`** **\*** **string** -담당자 휴대폰번호 + 상점 아이디 ---- + --- -**`manager_email`** **string** + **`name`** **\*** **string** -담당자 이메일 + 상점 이름 ---- + --- -**`representative`** **\*** **PublicStoreRepresentativeResponse** + **`tier_code`** **\*** **string** -상점 대표자 정보 + 상점 식별 코드 ex) ABC 영문, 숫자 3자리 -
-

PublicStoreRepresentativeResponse

+ --- -**`name_ko`** **\*** **string** + **`service_urls`** **\*** **Array\[string]** -대표자 이름 + 서비스 url 리스트 ---- + --- -**`name_en`** **string** + **`manager_name`** **string** -대표자 영문 이름 + 담당자명 ---- + --- -**`email`** **\*** **string** + **`manager_phone_number`** **string** -대표자 이메일 + 담당자 휴대폰번호 ---- + --- -**`phone_number`** **\*** **string** + **`manager_email`** **string** -대표자 전화번호 + 담당자 이메일 ---- + --- -**`birth_date`** **string** + **`representative`** **\*** **PublicStoreRepresentativeResponse** -대표자 생년월일 format: yyyy-MM-dd -ex) 2000-01-01 + 상점 대표자 정보 ---- +
+

PublicStoreRepresentativeResponse

-
+ **`name_ko`** **\*** **string** ---- + 대표자 이름 -**`business_license`** **\*** **PublicStoreBusinessLicense** + --- -사업자 정보 + **`name_en`** **string** -
-

PublicStoreBusinessLicense

+ 대표자 영문 이름 -**`taxation_type`** **\*** **TaxationType** + --- -사업자 구분 + **`email`** **\*** **string** -`"PERSON"`, `"CORPORATE"` + 대표자 이메일 ---- + --- -**`company_name`** **\*** **string** + **`phone_number`** **\*** **string** -회사명 + 대표자 전화번호 ---- + --- -**`registration_number`** **\*** **string** + **`birth_date`** **string** -사업자번호 + 대표자 생년월일 format: yyyy-MM-dd + ex) 2000-01-01 ---- + --- +
-**`business_location`** **\*** **string** + --- -회사 주소 + **`business_license`** **\*** **PublicStoreBusinessLicense** ---- + 사업자 정보 -**`business_location_detail`** **\*** **string** +
+

PublicStoreBusinessLicense

-회사 상세 주소 + **`taxation_type`** **\*** **TaxationType** ---- + 사업자 구분 -**`postal_code`** **\*** **string** + `"PERSON"`, `"CORPORATE"` -우편번호 + --- ---- + **`company_name`** **\*** **string** -**`business_types`** **\*** **Array\[string]** + 회사명 -업태 + --- ---- + **`registration_number`** **\*** **string** -**`business_items`** **\*** **Array\[string]** + 사업자번호 -종목 + --- ---- + **`business_location`** **\*** **string** -**`corporate_registration_number`** **string** + 회사 주소 -법인등록번호 - 법인 only + --- ---- + **`business_location_detail`** **\*** **string** -**`headquarter_location`** **string** + 회사 상세 주소 -본사 주소 - 법인 only + --- ---- + **`postal_code`** **\*** **string** -**`business_establishment_date`** **string** + 우편번호 -개업 연월일 + --- ---- + **`business_types`** **\*** **Array\[string]** -**`issuance_date`** **string** + 업태 -사업자등록증 발급일 + --- ---- + **`business_items`** **\*** **Array\[string]** -**`issuance_reason`** **string** + 종목 -발급 사유 + --- ---- + **`corporate_registration_number`** **string** -
+ 법인등록번호 - 법인 only ---- + --- - - + **`headquarter_location`** **string** - - - - -**`code`** **\*** **string** + 본사 주소 - 법인 only -에러 코드 + --- ---- + **`business_establishment_date`** **string** -**`params`** **\*** **object** + 개업 연월일 -에러 세부사항 + --- -
-

params

+ **`issuance_date`** **string** -**`message`** **string** + 사업자등록증 발급일 -에러 메시지 + --- ---- + **`issuance_reason`** **string** -
+ 발급 사유 ---- + --- +
-
-
+ --- +
+
+
- - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -에러 코드 + 에러 코드 ---- + --- -**`params`** **\*** **object** + **`params`** **\*** **object** -에러 세부사항 + 에러 세부사항 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- + --- +
-
+ --- +
+
+
---- + + + + **`code`** **\*** **string** - - + 에러 코드 - - - - -**`code`** **\*** **string** + --- -에러 코드 + **`params`** **\*** **object** ---- + 에러 세부사항 -**`params`** **\*** **object** +
+

params

-에러 세부사항 + **`message`** **string** -
-

params

+ 에러 메시지 -**`message`** **string** + --- +
-에러 메시지 + --- + + + ---- + + + + **`code`** **\*** **string** -
+ 에러 코드 ---- + --- -
-
+ **`params`** **\*** **object** -
- - - -**`code`** **\*** **string** + 에러 세부사항 -에러 코드 +
+

params

---- + **`message`** **string** -**`params`** **\*** **object** + 에러 메시지 -에러 세부사항 + --- +
-
-

params

+ --- + + + -**`message`** **string** + + + + **`code`** **\*** **string** -에러 메시지 + 에러 코드 ---- + --- -
+ **`params`** **\*** **object** ---- + 에러 세부사항 -
-
+
+

params

- - - - -**`code`** **\*** **string** + **`message`** **string** -에러 코드 + 에러 메시지 ---- + --- +
-**`params`** **\*** **object** + --- +
+
+
-에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
+ - -**`taxation_type`** **\*** **TaxationType** + + **`taxation_type`** **\*** **TaxationType** -사업자 구분 + 사업자 구분 -`"PERSON"`, `"CORPORATE"` + `"PERSON"`, `"CORPORATE"` ---- + --- -**`company_name`** **\*** **string** + **`company_name`** **\*** **string** -회사명 - ---- + 회사명 -**`registration_number`** **\*** **string** + --- -사업자번호 + **`registration_number`** **\*** **string** ---- + 사업자번호 -**`business_location`** **\*** **string** + --- -회사 주소 + **`business_location`** **\*** **string** ---- + 회사 주소 -**`business_location_detail`** **\*** **string** + --- -회사 상세 주소 + **`business_location_detail`** **\*** **string** ---- + 회사 상세 주소 -**`postal_code`** **\*** **string** + --- -우편번호 + **`postal_code`** **\*** **string** ---- + 우편번호 -**`business_types`** **\*** **Array\[string]** + --- -업태 + **`business_types`** **\*** **Array\[string]** ---- + 업태 -**`business_items`** **\*** **Array\[string]** + --- -종목 + **`business_items`** **\*** **Array\[string]** ---- + 종목 -**`corporate_registration_number`** **string** + --- -법인등록번호 - 법인 only + **`corporate_registration_number`** **string** ---- + 법인등록번호 - 법인 only -**`headquarter_location`** **string** + --- -본사 주소 - 법인 only + **`headquarter_location`** **string** ---- + 본사 주소 - 법인 only -**`business_establishment_date`** **string** + --- -개업 연월일 + **`business_establishment_date`** **string** ---- + 개업 연월일 -**`issuance_date`** **string** + --- -사업자등록증 발급일 + **`issuance_date`** **string** ---- + 사업자등록증 발급일 -**`issuance_reason`** **string** + --- -발급 사유 + **`issuance_reason`** **string** ---- + 발급 사유 - - -**`name_ko`** **\*** **string** + --- + -대표자 이름 + + **`name_ko`** **\*** **string** ---- + 대표자 이름 -**`name_en`** **\*** **string** + --- -대표자 영문 이름 + **`name_en`** **\*** **string** ---- + 대표자 영문 이름 -**`email`** **\*** **string** + --- -대표자 이메일 + **`email`** **\*** **string** ---- + 대표자 이메일 -**`phone_number`** **\*** **string** + --- -대표자 전화번호 + **`phone_number`** **\*** **string** ---- + 대표자 전화번호 -**`birth_date`** **\*** **string** + --- -대표자 생년월일 format: yyyy-MM-dd -ex) 2000-01-01 + **`birth_date`** **\*** **string** ---- + 대표자 생년월일 format: yyyy-MM-dd + ex) 2000-01-01 - - -사업자 구분 + --- + -`"PERSON"`, `"CORPORATE"` + + 사업자 구분 - + `"PERSON"`, `"CORPORATE"` + ## ⌨ 하위상점 단건 조회 - - -하위상점 단건 조회 - - -### Parameters - -#### Header - - -jwt 토큰 헤더 - - -#### Path - - -store의 id - - - -### Responses - - - - -**`id`** **\*** **string** - -상점 아이디 - ---- - -**`name`** **\*** **string** - -상점 이름 - ---- - -**`tier_code`** **\*** **string** - -상점 식별 코드 ex) ABC 영문, 숫자 3자리 + + + 하위상점 단건 조회 + ---- + ### Parameters -**`service_urls`** **\*** **Array\[string]** + #### Header -서비스 url 리스트 + + jwt 토큰 헤더 + ---- + #### Path -**`manager_name`** **string** + + store의 id + -담당자명 - ---- + ### Responses -**`manager_phone_number`** **string** + + + + **`id`** **\*** **string** -담당자 휴대폰번호 + 상점 아이디 ---- + --- -**`manager_email`** **string** + **`name`** **\*** **string** -담당자 이메일 + 상점 이름 ---- + --- -**`representative`** **\*** **PublicStoreRepresentativeResponse** + **`tier_code`** **\*** **string** -상점 대표자 정보 + 상점 식별 코드 ex) ABC 영문, 숫자 3자리 -
-

PublicStoreRepresentativeResponse

+ --- -**`name_ko`** **\*** **string** + **`service_urls`** **\*** **Array\[string]** -대표자 이름 + 서비스 url 리스트 ---- + --- -**`name_en`** **string** + **`manager_name`** **string** -대표자 영문 이름 + 담당자명 ---- + --- -**`email`** **\*** **string** + **`manager_phone_number`** **string** -대표자 이메일 + 담당자 휴대폰번호 ---- + --- -**`phone_number`** **\*** **string** + **`manager_email`** **string** -대표자 전화번호 + 담당자 이메일 ---- + --- -**`birth_date`** **string** + **`representative`** **\*** **PublicStoreRepresentativeResponse** -대표자 생년월일 format: yyyy-MM-dd -ex) 2000-01-01 + 상점 대표자 정보 ---- +
+

PublicStoreRepresentativeResponse

-
+ **`name_ko`** **\*** **string** ---- + 대표자 이름 -**`business_license`** **\*** **PublicStoreBusinessLicense** + --- -사업자 정보 + **`name_en`** **string** -
-

PublicStoreBusinessLicense

+ 대표자 영문 이름 -**`taxation_type`** **\*** **TaxationType** + --- -사업자 구분 + **`email`** **\*** **string** -`"PERSON"`, `"CORPORATE"` + 대표자 이메일 ---- + --- -**`company_name`** **\*** **string** + **`phone_number`** **\*** **string** -회사명 + 대표자 전화번호 ---- + --- -**`registration_number`** **\*** **string** + **`birth_date`** **string** -사업자번호 + 대표자 생년월일 format: yyyy-MM-dd + ex) 2000-01-01 ---- + --- +
-**`business_location`** **\*** **string** + --- -회사 주소 + **`business_license`** **\*** **PublicStoreBusinessLicense** ---- + 사업자 정보 -**`business_location_detail`** **\*** **string** +
+

PublicStoreBusinessLicense

-회사 상세 주소 + **`taxation_type`** **\*** **TaxationType** ---- + 사업자 구분 -**`postal_code`** **\*** **string** + `"PERSON"`, `"CORPORATE"` -우편번호 + --- ---- + **`company_name`** **\*** **string** -**`business_types`** **\*** **Array\[string]** + 회사명 -업태 + --- ---- + **`registration_number`** **\*** **string** -**`business_items`** **\*** **Array\[string]** + 사업자번호 -종목 + --- ---- + **`business_location`** **\*** **string** -**`corporate_registration_number`** **string** + 회사 주소 -법인등록번호 - 법인 only + --- ---- + **`business_location_detail`** **\*** **string** -**`headquarter_location`** **string** + 회사 상세 주소 -본사 주소 - 법인 only + --- ---- + **`postal_code`** **\*** **string** -**`business_establishment_date`** **string** + 우편번호 -개업 연월일 + --- ---- + **`business_types`** **\*** **Array\[string]** -**`issuance_date`** **string** + 업태 -사업자등록증 발급일 + --- ---- + **`business_items`** **\*** **Array\[string]** -**`issuance_reason`** **string** + 종목 -발급 사유 + --- ---- + **`corporate_registration_number`** **string** -
+ 법인등록번호 - 법인 only ---- + --- - - + **`headquarter_location`** **string** - - - - -**`code`** **\*** **string** + 본사 주소 - 법인 only -에러 코드 + --- ---- + **`business_establishment_date`** **string** -**`params`** **\*** **object** + 개업 연월일 -에러 세부사항 + --- -
-

params

+ **`issuance_date`** **string** -**`message`** **string** + 사업자등록증 발급일 -에러 메시지 + --- ---- + **`issuance_reason`** **string** -
+ 발급 사유 ---- + --- +
-
-
+ --- +
+
+
- - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -에러 코드 + 에러 코드 ---- + --- -**`params`** **\*** **object** + **`params`** **\*** **object** -에러 세부사항 + 에러 세부사항 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- + --- +
-
+ --- +
+
+
---- + + + + **`code`** **\*** **string** - - + 에러 코드 - - - - -**`code`** **\*** **string** + --- -에러 코드 + **`params`** **\*** **object** ---- + 에러 세부사항 -**`params`** **\*** **object** +
+

params

-에러 세부사항 + **`message`** **string** -
-

params

+ 에러 메시지 -**`message`** **string** + --- +
-에러 메시지 + --- + + + ---- + + + + **`code`** **\*** **string** -
+ 에러 코드 ---- + --- -
-
+ **`params`** **\*** **object** -
- - - -**`code`** **\*** **string** + 에러 세부사항 -에러 코드 +
+

params

---- + **`message`** **string** -**`params`** **\*** **object** + 에러 메시지 -에러 세부사항 + --- +
-
-

params

+ --- + + + -**`message`** **string** + + + + **`code`** **\*** **string** -에러 메시지 + 에러 코드 ---- + --- -
+ **`params`** **\*** **object** ---- + 에러 세부사항 -
-
+
+

params

- - - - -**`code`** **\*** **string** + **`message`** **string** -에러 코드 + 에러 메시지 ---- + --- +
-**`params`** **\*** **object** + --- +
+
+
-에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
## ⌨ 하위상점 수정 - - -하위상점 수정 - - -### Parameters - -#### Header - - -jwt 토큰 헤더 - - - -#### Path - - -store의 id - - - -#### Body - - -상점 이름 - - - -서비스 url 리스트 - - - -담당자명 - - -담당자 휴대폰번호 - - - -담당자 이메일 - - - -상점 대표자 정보 - - - -사업자 정보 - - - -### Responses + + + 하위상점 수정 + - - - -**`id`** **\*** **string** + ### Parameters -상점 아이디 + #### Header ---- + + jwt 토큰 헤더 + -**`name`** **\*** **string** + #### Path -상점 이름 - ---- + + store의 id + -**`tier_code`** **\*** **string** + #### Body -상점 식별 코드 ex) ABC 영문, 숫자 3자리 + + 상점 이름 + ---- + + 서비스 url 리스트 + -**`service_urls`** **\*** **Array\[string]** + + 담당자명 + -서비스 url 리스트 + + 담당자 휴대폰번호 + ---- + + 담당자 이메일 + -**`manager_name`** **string** + + 상점 대표자 정보 + -담당자명 + + 사업자 정보 + ---- + ### Responses -**`manager_phone_number`** **string** + + + + **`id`** **\*** **string** -담당자 휴대폰번호 + 상점 아이디 ---- + --- -**`manager_email`** **string** + **`name`** **\*** **string** -담당자 이메일 + 상점 이름 ---- + --- -**`representative`** **\*** **PublicStoreRepresentativeResponse** + **`tier_code`** **\*** **string** -상점 대표자 정보 + 상점 식별 코드 ex) ABC 영문, 숫자 3자리 -
-

PublicStoreRepresentativeResponse

+ --- -**`name_ko`** **\*** **string** + **`service_urls`** **\*** **Array\[string]** -대표자 이름 + 서비스 url 리스트 ---- + --- -**`name_en`** **string** + **`manager_name`** **string** -대표자 영문 이름 + 담당자명 ---- + --- -**`email`** **\*** **string** + **`manager_phone_number`** **string** -대표자 이메일 + 담당자 휴대폰번호 ---- + --- -**`phone_number`** **\*** **string** + **`manager_email`** **string** -대표자 전화번호 + 담당자 이메일 ---- + --- -**`birth_date`** **string** + **`representative`** **\*** **PublicStoreRepresentativeResponse** -대표자 생년월일 format: yyyy-MM-dd -ex) 2000-01-01 + 상점 대표자 정보 ---- +
+

PublicStoreRepresentativeResponse

-
+ **`name_ko`** **\*** **string** ---- + 대표자 이름 -**`business_license`** **\*** **PublicStoreBusinessLicense** + --- -사업자 정보 + **`name_en`** **string** -
-

PublicStoreBusinessLicense

+ 대표자 영문 이름 -**`taxation_type`** **\*** **TaxationType** + --- -사업자 구분 + **`email`** **\*** **string** -`"PERSON"`, `"CORPORATE"` + 대표자 이메일 ---- + --- -**`company_name`** **\*** **string** + **`phone_number`** **\*** **string** -회사명 + 대표자 전화번호 ---- + --- -**`registration_number`** **\*** **string** + **`birth_date`** **string** -사업자번호 + 대표자 생년월일 format: yyyy-MM-dd + ex) 2000-01-01 ---- + --- +
-**`business_location`** **\*** **string** + --- -회사 주소 + **`business_license`** **\*** **PublicStoreBusinessLicense** ---- + 사업자 정보 -**`business_location_detail`** **\*** **string** +
+

PublicStoreBusinessLicense

-회사 상세 주소 + **`taxation_type`** **\*** **TaxationType** ---- + 사업자 구분 -**`postal_code`** **\*** **string** + `"PERSON"`, `"CORPORATE"` -우편번호 + --- ---- + **`company_name`** **\*** **string** -**`business_types`** **\*** **Array\[string]** + 회사명 -업태 + --- ---- + **`registration_number`** **\*** **string** -**`business_items`** **\*** **Array\[string]** + 사업자번호 -종목 + --- ---- + **`business_location`** **\*** **string** -**`corporate_registration_number`** **string** + 회사 주소 -법인등록번호 - 법인 only + --- ---- + **`business_location_detail`** **\*** **string** -**`headquarter_location`** **string** + 회사 상세 주소 -본사 주소 - 법인 only + --- ---- + **`postal_code`** **\*** **string** -**`business_establishment_date`** **string** + 우편번호 -개업 연월일 + --- ---- + **`business_types`** **\*** **Array\[string]** -**`issuance_date`** **string** + 업태 -사업자등록증 발급일 + --- ---- + **`business_items`** **\*** **Array\[string]** -**`issuance_reason`** **string** + 종목 -발급 사유 + --- ---- + **`corporate_registration_number`** **string** -
+ 법인등록번호 - 법인 only ---- + --- - - + **`headquarter_location`** **string** - - - - -**`code`** **\*** **string** + 본사 주소 - 법인 only -에러 코드 + --- ---- + **`business_establishment_date`** **string** -**`params`** **\*** **object** + 개업 연월일 -에러 세부사항 + --- -
-

params

+ **`issuance_date`** **string** -**`message`** **string** + 사업자등록증 발급일 -에러 메시지 + --- ---- + **`issuance_reason`** **string** -
+ 발급 사유 ---- + --- +
-
-
+ --- +
+
+
- - - - -**`code`** **\*** **string** + + + + **`code`** **\*** **string** -에러 코드 + 에러 코드 ---- + --- -**`params`** **\*** **object** + **`params`** **\*** **object** -에러 세부사항 + 에러 세부사항 -
-

params

+
+

params

-**`message`** **string** + **`message`** **string** -에러 메시지 + 에러 메시지 ---- + --- +
-
+ --- +
+
+
---- + + + + **`code`** **\*** **string** - - + 에러 코드 - - - - -**`code`** **\*** **string** + --- -에러 코드 + **`params`** **\*** **object** ---- + 에러 세부사항 -**`params`** **\*** **object** +
+

params

-에러 세부사항 + **`message`** **string** -
-

params

+ 에러 메시지 -**`message`** **string** + --- +
-에러 메시지 + --- + + + ---- + + + + **`code`** **\*** **string** -
+ 에러 코드 ---- + --- -
-
+ **`params`** **\*** **object** -
- - - -**`code`** **\*** **string** + 에러 세부사항 -에러 코드 +
+

params

---- + **`message`** **string** -**`params`** **\*** **object** + 에러 메시지 -에러 세부사항 + --- +
-
-

params

+ --- + + + -**`message`** **string** + + + + **`code`** **\*** **string** -에러 메시지 + 에러 코드 ---- + --- -
+ **`params`** **\*** **object** ---- + 에러 세부사항 -
-
+
+

params

- - - - -**`code`** **\*** **string** + **`message`** **string** -에러 코드 + 에러 메시지 ---- + --- +
-**`params`** **\*** **object** + --- +
+
+
-에러 세부사항 + + + + **`code`** **\*** **string** -
-

params

+ 에러 코드 -**`message`** **string** + --- -에러 메시지 + **`params`** **\*** **object** ---- + 에러 세부사항 -
+
+

params

---- + **`message`** **string** - - + 에러 메시지 - + --- +
+ --- +
+
+
+ - -**`name_ko`** **\*** **string** + + **`name_ko`** **\*** **string** -대표자 이름 + 대표자 이름 ---- + --- -**`name_en`** **\*** **string** + **`name_en`** **\*** **string** -대표자 영문 이름 - ---- + 대표자 영문 이름 -**`email`** **\*** **string** + --- -대표자 이메일 + **`email`** **\*** **string** ---- + 대표자 이메일 -**`phone_number`** **\*** **string** + --- -대표자 전화번호 + **`phone_number`** **\*** **string** ---- + 대표자 전화번호 -**`birth_date`** **\*** **string** + --- -대표자 생년월일 format: yyyy-MM-dd -ex) 2000-01-01 + **`birth_date`** **\*** **string** ---- + 대표자 생년월일 format: yyyy-MM-dd + ex) 2000-01-01 - - -**`company_name`** **\*** **string** + --- + -회사명 + + **`company_name`** **\*** **string** ---- + 회사명 -**`registration_number`** **\*** **string** + --- -사업자번호 + **`registration_number`** **\*** **string** ---- + 사업자번호 -**`business_location`** **\*** **string** + --- -회사 주소 + **`business_location`** **\*** **string** ---- + 회사 주소 -**`business_location_detail`** **\*** **string** + --- -회사 상세 주소 + **`business_location_detail`** **\*** **string** ---- + 회사 상세 주소 -**`postal_code`** **\*** **string** + --- -우편번호 + **`postal_code`** **\*** **string** ---- + 우편번호 -**`business_types`** **\*** **Array\[string]** + --- -업태 + **`business_types`** **\*** **Array\[string]** ---- + 업태 -**`business_items`** **\*** **Array\[string]** + --- -종목 + **`business_items`** **\*** **Array\[string]** ---- + 종목 -**`corporate_registration_number`** **string** + --- -법인등록번호 - 법인 only + **`corporate_registration_number`** **string** ---- + 법인등록번호 - 법인 only -**`headquarter_location`** **string** + --- -본사 주소 - 법인 only + **`headquarter_location`** **string** ---- + 본사 주소 - 법인 only -**`business_establishment_date`** **string** + --- -개업 연월일 + **`business_establishment_date`** **string** ---- + 개업 연월일 -**`issuance_date`** **string** + --- -사업자등록증 발급일 + **`issuance_date`** **string** ---- + 사업자등록증 발급일 -**`issuance_reason`** **string** + --- -발급 사유 + **`issuance_reason`** **string** ---- + 발급 사유 - + --- + diff --git a/src/content/docs/ko/api-v2/v2-api.mdx b/src/content/docs/ko/api-v2/v2-api.mdx index b758ffd78..00967633c 100644 --- a/src/content/docs/ko/api-v2/v2-api.mdx +++ b/src/content/docs/ko/api-v2/v2-api.mdx @@ -6,11 +6,10 @@ description: '' import Hint from "~/components/Hint.astro"; -V2 API 사용 시 필요한 Key는 관리자콘솔의 REST API Key와 다르며,\ -기술지원 이메일을 통한 요청 시 직접 발급을 진행해드리고 있습니다. + V2 API 사용 시 필요한 Key는 관리자콘솔의 REST API Key와 다르며,\ + 기술지원 이메일을 통한 요청 시 직접 발급을 진행해드리고 있습니다. -V2 API Key 요청 또는 추가적으로 궁금하신 사항은 아래 이메일로 문의주시기 바랍니다. + V2 API Key 요청 또는 추가적으로 궁금하신 사항은 아래 이메일로 문의주시기 바랍니다. -- V2 기술지원 이메일: tech.support@portone.io - - \ No newline at end of file + - V2 기술지원 이메일: [tech.support@portone.io](mailto:tech.support@portone.io) + diff --git a/src/content/docs/ko/auth/guide-1/bill/pg.mdx b/src/content/docs/ko/auth/guide-1/bill/pg.mdx index a44821b9c..647771beb 100644 --- a/src/content/docs/ko/auth/guide-1/bill/pg.mdx +++ b/src/content/docs/ko/auth/guide-1/bill/pg.mdx @@ -5,157 +5,157 @@ description: PG사에서 제공하는 결제창을 이용하여 빌링키를 획 import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; -#### PG사가 제공하는 일반 결제창에 고객이 카드정보를 입력하여 빌링키를 발급 받을수 있습니다. +**PG사가 제공하는 일반 결제창에 고객이 카드 정보를 입력하여 빌링키를 발급받을 수 있습니다.** -- **장점**: 카드정보가 서버 또는 포트원의 서버를 거치지 않고 직접 PG사로 전달되기 때문에 데이터 및 통신구간 암호화 등의 **추가 보안 프로세스가 없다**. -- **단점**: PG사의 일반결제창을 통해 카드정보를 입력받기 때문에 웹브라우저를 통해서만 빌링키 발급이 이루어지며, **카드정보 입력란을 커스터마이징 할 수 없다.**(고객사 사이트 친화적인 UI/UX 구성불가) +- **장점**: 카드 정보가 고객사의 서버 또는 포트원의 서버를 거치지 않고 직접 PG사로 전달되기 때문에 + 데이터 및 통신구간 암호화 등의 **추가 보안 프로세스가 없다**. -
+- **단점**: PG사의 일반결제창을 통해 카드 정보를 입력받기 때문에 웹브라우저를 통해서만 빌링키 발급이 이루어지며, + **카드 정보 입력란을 커스터마이징할 수 없다.** (고객사 사이트 친화적인 UI/UX 구성불가) -### **STEP 01.** 발급 요청하기 +
-인증결제와 동일하게 **JavaScript SDK** 를 이용하여 PG사 결제창을 호출합니다. 빌링키를 획득하기 위해 아래 파라미터를 추가적으로 설정하면 모든 준비가 완료됩니다. +## **STEP 01.** 발급 요청하기 -> #### customer_uid : 빌링키와 1:1로 매칭될 고유키 +인증결제와 동일하게 **JavaScript SDK**를 이용하여 PG사 결제창을 호출합니다. +빌링키를 획득하기 위해 아래 파라미터를 추가적으로 설정하면 모든 준비가 완료됩니다. - - -```javascript title="client-side" - IMP.request_pay({ +> **`customer_uid`: 빌링키와 1:1로 매칭될 고유 키** + +```ts title="client-side" +IMP.request_pay( + { customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값 /* ...생략... */ - }, function (rsp) { // callback + }, + function (rsp) { + // callback if (rsp.success) { // 빌링키 발급 성공 } else { // 빌링키 발급 실패 } - }); + }, +); ``` -**customer\_uid 란?** - -PG사가 발급한 빌링키와 1:1로 맵핑되는 고객사가 지정한 고유값입니다. customer_uid 는 카드번호 단위로 구분되서 저장되어야 합니다. + **`customer_uid` 란?** -예) **홍길동** 고객이 **A카드** 빌링키를 요청하는 경우 customer_uid는 **회원 별 카드번호 단위**로 고유하게 발급되어야 합니다. + PG사가 발급한 빌링키와 1:1로 맵핑되는, 고객사가 지정한 고유한 값입니다. + `customer_uid`는 카드 번호 단위로 구분하여 저장되어야 합니다. + 예) **홍길동** 고객이 **A 카드** 빌링키를 요청하는 경우 + `customer_uid`는 **회원별 카드 번호 단위**로 고유하게 발급되어야 합니다. -이전 빌링키 발급에 사용된 customer\_uid 를 재 사용하는 경우 가장 마지막 빌링키 발급에 사용된 카드번호의 빌링키로 대체됩니다.(**기존에 발급된 빌링키는 자동으로 해지되지 않습니다.**) + 이전 빌링키 발급에 사용된 `customer_uid`를 재사용하는 경우 가장 마지막 빌링키 발급에 사용된 + 카드번호의 빌링키로 대체됩니다. (**기존에 발급된 빌링키는 자동으로 해지되지 않습니다.**) - - +## **STEP 02.** 발급 응답 처리하기 -### **STEP 02.** 발급 응답 처리하기 - - - -```javascript title="client-side" - IMP.request_pay({ +```ts title="client-side" +IMP.request_pay( + { /* ...중략... */ - }, function (rsp) { // callback + }, + function (rsp) { + // callback if (rsp.success) { // 빌링키 발급 성공 // jQuery로 HTTP 요청 jQuery.ajax({ - url: "{customer_uid를 받을 서비스 URL}", + url: "{customer_uid를 받을 서비스 URL}", method: "POST", headers: { "Content-Type": "application/json" }, data: { customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값 - } + }, }); } else { // 빌링키 발급 실패 } - }); + }, +); ``` -빌링키가 성공적으로 발급되면 고객사 서버로 **customer_uid** 를 전달합니다. 서버에서는 클라이언트로부터 **customer_uid**를 전달받는 API endpoint를 생성합니다. 서버에서 해당 **customer_uid** 를 사용하여 차후에 결제를 요청할 수 있습니다. +빌링키가 성공적으로 발급되면 고객사 서버로 `customer_uid`를 전달합니다. +서버에서는 클라이언트로부터 `customer_uid`를 전달받는 API endpoint를 생성합니다. +서버에서 해당 `customer_uid`를 사용하여 차후에 결제를 요청할 수 있습니다. -```javascript title="server-side" - app.post("/billings", async (req, res) => { - try { - const { customer_uid } = req.body; // req body에서 customer_uid 추출 - ... - } catch (e) { - res.status(400).send(e); - } - }); +```ts title="server-side" +app.post("/billings", async (req, res) => { + try { + const { customer_uid } = req.body; // req body에서 customer_uid 추출 + // ... + } catch (e) { + res.status(400).send(e); + } +}); ``` -전달받은 customer_uid 를 고객사 내부서버 DB에 저장 후 추후 해당 정보를 이용하여 결제를 요청 합니다. - - - +전달받은 `customer_uid` 를 고객사 내부 서버 DB에 저장 후 추후 해당 정보를 이용하여 결제를 요청합니다. -### **STEP 03.** 결제 요청하기 +## **STEP 03.** 결제 요청하기 -위에서 저장된 **customer_uid** 를 이용하여 [**비 인증 결제(빌링키)API**](../../../api/api-4/api)를 호출하여 결제를 요청합니다. +위에서 저장된 `customer_uid`를 이용하여 [**비 인증 결제(빌링키)API**](../../../api/api-4/api)를 호출하여 결제를 요청합니다. -**REST API 를 이용하기 위해서는** [**Access Token**](../../../api/rest-api-access-token) **획득이 선행되어야 하는점 잊지 마세요** - + **REST API 를 이용하기 위해서는** [**Access Token**](../../../api/rest-api-access-token) **획득이 선행되어야 하는 점 잊지 마세요** - - -```javascript title="server-side" +```ts title="Node.js" app.post("/billings", async (req, res) => { - try { - const { customer_uid } = req.body; // req의 body에서 customer_uid 추출 - // 인증 토큰 발급 받기 - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, - data: { - imp_key: "imp_apikey", // REST API 키 - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data; // 인증 토큰 - ... - // 결제(재결제) 요청 - const paymentResult = await axios({ - url: \`https://api.iamport.kr/subscribe/payments/again\`, - method: "post", - // 인증 토큰을 Authorization header에 추가 - headers: { "Authorization": access_token }, - data: { - customer_uid, - merchant_uid: "order_monthly_0001", // 새로 생성한 결제(재결제)용 주문 번호 - amount: 8900, - name: "월간 이용권 정기결제" - } - }); - ... - const { code, message } = paymentResult; - if (code === 0) { // 카드사 통신에 성공(실제 승인 성공 여부는 추가 판단이 필요함) - if ( paymentResult.status === "paid" ) { //카드 정상 승인 - res.send({ ... }); - } else { //카드 승인 실패 (예: 고객 카드 한도초과, 거래정지카드, 잔액부족 등) - //paymentResult.status : failed 로 수신됨 - res.send({ ... }); - } - res.send({ ... }); - } else { // 카드사 요청에 실패 (paymentResult is null) - res.send({ ... }); + try { + const { customer_uid } = req.body; // req의 body에서 customer_uid 추출 + // 인증 토큰 발급 받기 + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + method: "post", // POST method + headers: { "Content-Type": "application/json" }, + data: { + imp_key: "imp_apikey", // REST API 키 + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data; // 인증 토큰 + // ... + // 결제(재결제) 요청 + const paymentResult = await axios({ + url: `https://api.iamport.kr/subscribe/payments/again`, + method: "post", + // 인증 토큰을 Authorization header에 추가 + headers: { Authorization: access_token }, + data: { + customer_uid, + merchant_uid: "order_monthly_0001", // 새로 생성한 결제(재결제)용 주문 번호 + amount: 8900, + name: "월간 이용권 정기결제", + }, + }); + // ... + const { code, message } = paymentResult; + if (code === 0) { + // 카드사 통신에 성공(실제 승인 성공 여부는 추가 판단이 필요함) + if (paymentResult.status === "paid") { + //카드 정상 승인 + res.send(/* ... */); + } else { + //카드 승인 실패 (예: 고객 카드 한도초과, 거래정지카드, 잔액부족 등) + //paymentResult.status : failed 로 수신됨 + res.send(/* ... */); } - } catch (e) { - res.status(400).send(e); + res.send(/* ... */); + } else { + // 카드사 요청에 실패 (paymentResult is null) + res.send(/* ... */); } - }); + } catch (e) { + res.status(400).send(e); + } +}); ``` - - - diff --git a/src/content/docs/ko/auth/guide-1/bill/readme.mdx b/src/content/docs/ko/auth/guide-1/bill/readme.mdx index d59c0bea4..236a62e19 100644 --- a/src/content/docs/ko/auth/guide-1/bill/readme.mdx +++ b/src/content/docs/ko/auth/guide-1/bill/readme.mdx @@ -3,80 +3,80 @@ title: 빌링키 결제 요청하기 description: 카드정보를 이용하여 비 인증 결제를 요청하는 방법을 안내합니다. --- -import ContentRef from "~/components/gitbook/ContentRef.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import ContentRef from "~/components/gitbook/ContentRef.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 빌링키(Billing key)를 이용한 비 인증 결제 -**빌링키란?** - -구독형 정기결제, 종량제 과금결제 등 원하는 시점에 재 결제를 진행할 수 있는 결제용 암호화 키 입니다. 고객사가 고객의 카드정보를 소유할 수 없기 때문에 카드사로부터 해당 카드에 대응하는 빌링키 발급 받아 저장하고 원하는 시점에 해당 빌링키로 결제를 청구할 수 있습니다. + **빌링키란?** + 구독형 정기결제, 종량제 과금결제 등 구현 시 원하는 시점에 재 결제를 진행할 수 있는 결제용 암호화 키 입니다. + 고객사가 고객의 카드 정보를 소유할 수 없기 때문에 카드사로부터 해당 카드에 대응하는 빌링키를 + 발급받아 저장하고, 이후 원하는 시점에 해당 빌링키로 결제를 청구하기 위해 사용합니다. -빌링키는 PG사에 따라 다음 두 가지 방식을 활용하여 발급 받을 수 있습니다. +빌링키는 PG사에 따라 다음 두 가지 방식을 활용하여 발급받을 수 있습니다. - -**포트원 REST API를 이용하여 빌링키를 획득할 수 있습니다.** - -- `(구) 나이스페이먼츠` -- `(신) 나이스페이먼츠` -- `KCP` -- `KSNET` -- `(신) 토스페이먼츠` -- `세틀뱅크` -- `이니시스` -- `키움페이(구 다우, 페이조아)` -- `웰컴페이먼츠` - - - - -**PG 결제창을 이용하여 빌링키를 획득할 수 있습니다.** - -- `이니시스` -- `다날(신용카드,휴대폰)` -- `모빌리언스` -- `페이코` -- `KICC` -- `KCP` -- `카카오페이` -- `네이버페이` -- `(신) 토스페이먼츠` -- `웰컴페이먼츠` -- `(신) 스마트로` -- `(신) 페이팔` -- `페이먼트월` -- `세틀뱅크 내통장결제` -- `(신) 토스페이` - - + + **포트원 REST API를 이용하여 빌링키를 획득할 수 있습니다.** + + - `(구) 나이스페이먼츠` + - `(신) 나이스페이먼츠` + - `KCP` + - `KSNET` + - `(신) 토스페이먼츠` + - `세틀뱅크` + - `이니시스` + - `키움페이(구 다우, 페이조아)` + - `웰컴페이먼츠` + + + + **PG 결제창을 이용하여 빌링키를 획득할 수 있습니다.** + + - `이니시스` + - `다날(신용카드,휴대폰)` + - `모빌리언스` + - `페이코` + - `KICC` + - `KCP` + - `카카오페이` + - `네이버페이` + - `(신) 토스페이먼츠` + - `웰컴페이먼츠` + - `(신) 스마트로` + - `(신) 페이팔` + - `페이먼트월` + - `세틀뱅크 내통장결제` + - `(신) 토스페이` + - + - + -## 2. 카드정보를 이용한 결제(키인결제) +## 2. 카드정보를 이용한 결제(키인결제) -PG사와 협의가 된 경우 카드정보를 이용하여 빌링키 없이 매번 1회성으로 결제요청이 가능합니다. 해당방식은 매번 카드정보를 기입하여 결제를 요청하는 방식으로 주로 ARS를 통해 고객분께 카드 정보를 획득하여 결제를 요청하는 콜센타 또는 인증결제의 번거로움을 회피하기 위해 일부 고객사에서 사용하는 방식입니다. 최근에는 인증결제가 간편결제방식으로 전환되면서 매번 카드정보를 기입해야 하는 번거로움 때문에 많이 사용되지 않은 방식입니다. +PG사와 협의가 된 경우 카드 정보를 이용하여 빌링키 없이 매번 1회성으로 결제 요청이 가능합니다. +해당 방식은 매번 카드 정보를 기입하여 결제를 요청하는 방식으로 +주로 ARS를 통해 고객분께 카드 정보를 획득하여 결제를 요청하는 콜센타 +또는 인증결제의 번거로움을 회피하기 위해 일부 고객사에서 사용하는 방식입니다. +최근에는 인증결제가 간편결제 방식으로 전환되면서 +매번 카드정보를 기입해야 하는 번거로움 때문에 많이 사용되지 않는 방식입니다. -
+
-**키인결제를 이용하기 위해서는 PG사와 협의가 필요합니다.** - + **키인결제를 이용하기 위해서는 PG사와 협의가 필요합니다.** -#### 키인결제 지원 PG사 +### 키인결제 지원 PG사 - NHN KCP - 나이스페이 diff --git a/src/content/docs/ko/auth/guide-1/bill/rest-api.mdx b/src/content/docs/ko/auth/guide-1/bill/rest-api.mdx index 08198ff49..b4074ad32 100644 --- a/src/content/docs/ko/auth/guide-1/bill/rest-api.mdx +++ b/src/content/docs/ko/auth/guide-1/bill/rest-api.mdx @@ -4,147 +4,162 @@ description: 포트원 REST API 를 이용하여 손쉽게 빌링키를 획득 --- import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; 포트원 REST API 를 이용하여 빌링키를 획득하여 결제를 요청할 수 있습니다. 고객 카드정보를 이용하여 빌링키 발급을 요청하면 포트원 서버가 PG사의 API를 호출하여 빌링키를 발급받습니다. 이 과정에서 -카드정보는 기록되지 않습니다.이 방식은 다음과 같은 특징이 있습니다. +카드정보는 기록되지 않습니다. 이 방식은 다음과 같은 특징이 있습니다. - **장점**: 고객사가 원하는 형태의 화면으로 **카드정보 입력란을 커스터마이징**할 수 있다. - **단점**: **개인정보 이용약관**을 명시해야 하며 PG사 및 카드사 심사가 까다롭고 개인정보 유출에 유의해야 합니다. -#### 고객사 UI/UX 친화적인 결제 환경을 계획하고 계시다면 API 연동 개발을 선택하시면 됩니다. +**고객사 UI/UX 친화적인 결제 환경을 계획하고 계시다면 API 연동 개발을 선택하시면 됩니다.** -### **STEP 01.** 카드 정보 입력받기 +## **STEP 01.** 카드 정보 입력받기 -카드 정보를 입력하는 필드들을 다음과 같이 작성합니다. 요청 시 **customer_uid**를 저장 할 히든필드를 -작성합니다. 법인카드(개인명의로 발급된 _기명카드_ 제외)의 경우 `birth` 파라미터에 \_사업자번호 -10자리\_를 입력하시면 됩니다. 결제하기 버튼 클릭 시 입력 값들과 customer_uid로 -`/subscription/issue-billing`에 대해`POST`요청이 호출되는 예제입니다. +카드 정보를 입력하는 필드들을 다음과 같이 작성합니다. 요청 시 **customer\_uid**를 저장 할 히든필드를 +작성합니다. 법인카드(개인명의로 발급된 _기명카드_ 제외)의 경우 `birth` 파라미터에 _사업자번호 +10자리_ 를 입력하시면 됩니다. 결제하기 버튼 클릭 시 입력 값들과 customer\_uid로 +`/subscription/issue-billing`에 대해 `POST`요청이 호출되는 예제입니다. -**customer\_uid 란?** + **`customer_uid` 란?** -PG사가 발급한 빌링키와 1:1로 맵핑되는 고객사가 지정한 고유값입니다. customer_uid 는 카드번호 단위로구분되서 저장되어야 합니다. - -예) **홍길동** 고객이 **A카드** 빌링키를 요청하는 경우 customer_uid는 **회원별 카드번호 단위**로 고유하게 발급되어야 합니다. + PG사가 발급한 빌링키와 1:1로 맵핑되는, 고객사가 지정한 고유한 값입니다. + `customer_uid`는 카드 번호 단위로 구분하여 저장되어야 합니다. + 예) **홍길동** 고객이 **A 카드** 빌링키를 요청하는 경우 + `customer_uid`는 **회원별 카드 번호 단위**로 고유하게 발급되어야 합니다. -이전 빌링키 발급에 사용된 customer\_uid 를 재 사용하는 경우 가장 마지막 빌링키 발급에 사용된 카드번호의 빌링키로 대체됩니다.(**기존에 발급된 빌링키는 자동으로 해지되지 않습니다.**) - + 이전 빌링키 발급에 사용된 `customer_uid`를 재사용하는 경우 가장 마지막 빌링키 발급에 사용된 + 카드번호의 빌링키로 대체됩니다. (**기존에 발급된 빌링키는 자동으로 해지되지 않습니다.**) -**빌링키 발급을 위한 카드정보** - -- **카드번호** -- **유효기간** -- **생년월일** -- **비밀번호 앞 두자리** + **빌링키 발급을 위한 카드정보** + - **카드번호** + - **유효기간** + - **생년월일** + - **비밀번호 앞 두자리** - -```html title="client-side" -
- -
- - -
-
- - -
-
- - -
-
- - -
- - -
-``` - -
- - -```jsx title="client-side" -// React.js - class CardForm extends React.Components { - constructor(props) { - super(props); - this.state = { - cardNumber: "", - expiry: "", - birth: "", - pwd2Digit: "", - customer_uid: "gildong_0001_1234", + + ```html title="client-side" +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ + +
+ ``` +
+ + + ```tsx title="client-side" + // React.js + class CardForm extends React.Components { + constructor(props) { + super(props); + this.state = { + cardNumber: "", + expiry: "", + birth: "", + pwd2Digit: "", + customer_uid: "gildong_0001_1234", + }; + } + handleInputChange = (event) => { + const { value, name } = event.target; + this.setState({ + [name]: value, + }); }; + handleFormSubmit = (event) => { + event.preventDefault(); + const { cardNumber, expiry, birth, pwd2Digit, customer_uid } = this.state; + axios({ + // 예: https://www.myservice.com/subscription/issue-billing + url: "{빌링키 발급 요청을 받을 서비스 URL}", + method: "post", + data: { + cardNumber, + expiry, + birth, + pwd2Digit, + customer_uid, + }, + }).then((rsp) => { + // ... + }); + }; + render() { + const { cardNumber, expiry, birth, pwd2Digit } = this.state; + return ( +
+ + + + + +
+ ); + } } - ... - handleInputChange = (event) => { - const { value, name } = event.target; - this.setState({ - [name]: value, - }); - }; - ... - handleFormSubmit = (event) => { - event.preventDefault(); - const { cardNumber, expiry, birth, pwd2Digit, customer_uid } = this.state; - axios({ - // 예: https://www.myservice.com/subscription/issue-billing - url: "{빌링키 발급 요청을 받을 서비스 URL}", - method: "post", - data: { - cardNumber, - expiry, - birth, - pwd2Digit, - customer_uid, - } - }).then(rsp => { - ... - }); - }; - ... - render() { - const { cardNumber, expiry, birth, pwd2Digit } = this.state; - return ( -
- - - - - -
- ) - } - } -``` - -
+ ``` +
@@ -155,96 +170,95 @@ PG사가 발급한 빌링키와 1:1로 맵핑되는 고객사가 지정한 고 추출합니다.`/subscription/issue-billing`에 대한 `POST`요청을 처리하는 **API endpoint**의 예제입니다. - -```javascript title="server-side" -// "/subscription/issue-billing"에 대한 POST 요청을 처리 - app.post("/subscriptions/issue-billing", async (req, res) => { - try { - const { - card_number, // 카드 번호 - expiry, // 카드 유효기간 - birth, // 생년월일 - pwd_2digit, // 카드 비밀번호 앞 두자리, - customer_uid, // 카드(빌링키)와 1:1로 대응하는 값 - } = req.body; // req의 body에서 카드정보 추출 - ... - } catch (e) { - res.status(400).send(e); - } - }); -``` - - + + ```ts title="server-side" + // "/subscription/issue-billing"에 대한 POST 요청을 처리 + app.post("/subscriptions/issue-billing", async (req, res) => { + try { + const { + card_number, // 카드 번호 + expiry, // 카드 유효기간 + birth, // 생년월일 + pwd_2digit, // 카드 비밀번호 앞 두자리, + customer_uid, // 카드(빌링키)와 1:1로 대응하는 값 + } = req.body; // req의 body에서 카드정보 추출 + // ... + } catch (e) { + res.status(400).send(e); + } + }); + ``` + ### **STEP 03.** 빌링키 발급 요청 및 응답 처리하기 -당사가 제공하는 [**빌링키 발급 REST API** ](../../../api/api-4/)를 통해 빌링키 발급을 요청하고 결과값에 따라 응답을 반환하는 예제입니다. +당사가 제공하는 [**빌링키 발급 REST API**](../../../api/api-4/)를 통해 빌링키 발급을 요청하고 결과값에 따라 응답을 반환하는 예제입니다. - -```javascript title="server-side" -// "/subscription/issue-billing"에 대한 POST 요청을 처리 + + ```ts title="server-side" + // "/subscription/issue-billing"에 대한 POST 요청을 처리 app.post("/subscriptions/issue-billing", async (req, res) => { try { const { - card_number, // 카드 번호 - expiry, // 카드 유효기간 - birth, // 생년월일 - pwd_2digit, // 카드 비밀번호 앞 두자리 + card_number, // 카드 번호 + expiry, // 카드 유효기간 + birth, // 생년월일 + pwd_2digit, // 카드 비밀번호 앞 두자리 customer_uid, // 카드(빌링키)와 1:1로 대응하는 값 - } = req.body; // req의 body에서 카드정보 추출 - ... + } = req.body; // req의 body에서 카드정보 추출 // 인증 토큰 발급 받기 const getToken = await axios({ url: "https://api.iamport.kr/users/getToken", - method: "post", // POST method - headers: { "Content-Type": "application/json" }, + method: "post", // POST method + headers: { "Content-Type": "application/json" }, data: { imp_key: "imp_apikey", // REST API 키 - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" - } + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", + }, }); const { access_token } = getToken.data; // 인증 토큰 - ... // 빌링키 발급 요청 const issueBilling = await axios({ url: `https://api.iamport.kr/subscribe/customers/${customer_uid}`, method: "post", // 인증 토큰 Authorization header에 추가 - headers: { "Authorization": access_token }, + headers: { Authorization: access_token }, data: { card_number, // 카드 번호 - expiry, // 카드 유효기간 - birth, // 생년월일 - pwd_2digit, // 카드 비밀번호 앞 두자리 + expiry, // 카드 유효기간 + birth, // 생년월일 + pwd_2digit, // 카드 비밀번호 앞 두자리 pg: YOUR_PG_HERE, // 빌링키 발급에 사용할 PG - } + }, }); - ... const { code, message } = issueBilling.data; - if (code === 0) { // 빌링키 발급 성공 - res.send({ status: "success", message: "Billing has successfully issued" }); - } else { // 빌링키 발급 실패 + if (code === 0) { + // 빌링키 발급 성공 + res.send({ + status: "success", + message: "Billing has successfully issued", + }); + } else { + // 빌링키 발급 실패 res.send({ status: "failed", message }); } } catch (e) { res.status(400).send(e); } }); -``` - - + ``` + -**REST API 를 이용하기 위해서는** [**Access Token**](../../../api/rest-api-access-token) **획득이 선행되어야 하는점 잊지 마세요** - + **REST API 를 이용하기 위해서는** [**Access Token**](../../../api/rest-api-access-token) **획득이 선행되어야 하는점 잊지 마세요** -**빌링키 발급과 결제 요청을 한번에 하기** - -예약결제 REST API [**`/subscribe/payments/schedule`**](../../../api/rest-v1/nonAuthPayment.subscribe#post%20%2Fsubscribe%2Fpayments%2Fschedule)를 사용하면 등록된 customer_uid가 없는 경우 빌링키 신규 발급을 먼저 진행한 후 schedule정보를 예약합니다.(카드정보 필수사항) + **빌링키 발급과 결제 요청을 한번에 하기** + 예약결제 REST API [**`/subscribe/payments/schedule`**](../../../api/rest-v1/nonAuthPayment.subscribe#post%20%2Fsubscribe%2Fpayments%2Fschedule)를 사용하면 등록된 customer\_uid가 없는 경우 빌링키 신규 발급을 먼저 진행한 후 schedule정보를 예약합니다.(카드정보 필수사항) diff --git a/src/content/docs/ko/auth/guide-1/page-1.mdx b/src/content/docs/ko/auth/guide-1/page-1.mdx index 8547f8e76..8d8d3b67a 100644 --- a/src/content/docs/ko/auth/guide-1/page-1.mdx +++ b/src/content/docs/ko/auth/guide-1/page-1.mdx @@ -3,32 +3,32 @@ title: 카드정보를 이용한 키인결제 description: 구매자 인증 없이 카드번호 입력만으로 결제가 가능합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; -PG사와 협의가 된 경우 카드정보를 이용하여 1회성 결제요청이 가능합니다. 해당방식은 매번 카드정보를 기입하여 결제를 요청하는 방식으로 주로 ARS를 통해 고객분께 카드 정보를 획득하여 결제를 요청하는 콜센타 또는 인증결제의 번거로움을 회피하기 위해 일부 고객사에서 사용하는 방식입니다. 최근에는 인증결제가 간편결제방식으로 전환되면서 매번 카드정보를 기입해야 하는 번거로움 때문에 많이 사용되지 않은 방식입니다. +PG사와 협의가 된 경우 카드정보를 이용하여 1회성 결제요청이 가능합니다. +해당방식은 매번 카드정보를 기입하여 결제를 요청하는 방식으로 +주로 ARS를 통해 고객분께 카드 정보를 획득하여 결제를 요청하는 콜센타 또는 +인증결제의 번거로움을 회피하기 위해 일부 고객사에서 사용하는 방식입니다. +최근에는 인증결제가 간편결제방식으로 전환되면서 +매번 카드정보를 기입해야 하는 번거로움 때문에 많이 사용되지 않은 방식입니다. -
+
-**키인결제를 이용하기 위해서는 PG사와 협의가 필요합니다.** - + **키인결제를 이용하기 위해서는 PG사와 협의가 필요합니다.**
-

키인결제 지원 PG사 확인하기

- -- 나이스페이 -- NHN KCP -- 세틀뱅크 -- 키움페이(구 다우, 페이조아) -- KSNET -- 토스페이먼츠 (신 모듈) - +

키인결제 지원 PG사 확인하기

+ + - 나이스페이 + - NHN KCP + - 세틀뱅크 + - 키움페이(구 다우, 페이조아) + - KSNET + - 토스페이먼츠 (신 모듈)
키인결제는 [**비인증 결제(1회성) API**](../../api/api-4/api-1) 또는 PG창을 이용하여 결제를 요청할 수 있습니다. diff --git a/src/content/docs/ko/auth/guide-1/undefined.mdx b/src/content/docs/ko/auth/guide-1/undefined.mdx index 976971db0..71e776693 100644 --- a/src/content/docs/ko/auth/guide-1/undefined.mdx +++ b/src/content/docs/ko/auth/guide-1/undefined.mdx @@ -3,61 +3,62 @@ title: 빌링키를 이용한 정기결제 description: customer_uid 로 정기(예약)결제 구현방법을 안내합니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -#### [빌링키 발급](../../api/api-2/api-1) 또는 [비 인증 결제(일회성)](../../api/api-4/api-1) API를 이용하여 customer_uid 를 획득했다면 원하는 형태의 정기 또는 예약결제를 이용할 수 있습니다. +**[빌링키 발급](../../api/api-2/api-1) 또는 [비 인증 결제(일회성)](../../api/api-4/api-1) API를 이용하여 +customer\_uid를 획득했다면, 원하는 형태의 정기 또는 예약결제를 이용할 수 있습니다.** -### **STEP 01.** 결제 예약하기 +## **STEP 01.** 결제 예약하기 -미래 특정 시점에 결제가 진행되도록 결제를 예약할 수 있습니다. 포트원 **결제 예약 API**를 이용하여 원하시는 시점에 결제 예약을 손쉽게 등록 할 수 있습니다. +미래 특정 시점에 결제가 진행되도록 결제를 예약할 수 있습니다. +포트원 **결제 예약 API**를 이용하여 +원하시는 시점에 결제 예약을 손쉽게 등록 할 수 있습니다. - -```javascript title="Node.js" -// 결제 예약 - axios({ - url: `https://api.iamport.kr/subscribe/payments/schedule`, - method: "post", - headers: { "Authorization": access_token }, - data: { - customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값 - schedules: [ - { - merchant_uid: "order_monthly_0001", // 주문 번호 - schedule_at: 1519862400, // 결제 시도 시각 in Unix Time Stamp. 예: 다음 달 1일 - amount: 8900, - name: "월간 이용권 정기결제", - buyer_name: "홍길동", - buyer_tel: "01012345678", - buyer_email: "gildong@gmail.com" - } - ] - } - }); -``` - - + + ```ts title="Node.js" + // 결제 예약 + axios({ + url: `https://api.iamport.kr/subscribe/payments/schedule`, + method: "post", + headers: { Authorization: access_token }, + data: { + customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값 + schedules: [ + { + merchant_uid: "order_monthly_0001", // 주문 번호 + schedule_at: 1519862400, // 결제 시도 시각 in Unix Time Stamp. 예: 다음 달 1일 + amount: 8900, + name: "월간 이용권 정기결제", + buyer_name: "홍길동", + buyer_tel: "01012345678", + buyer_email: "gildong@gmail.com", + }, + ], + }, + }); + ``` + -### **STEP 02.** 결제 결과 수신받기 +## **STEP 02.** 결제 결과 수신받기 예약한 시간에 결제가 시도되면 Webhook 이벤트가 발생하여 지정한 서버의 callback URL로 결제 번호(`imp_uid`)와 주문 번호(`merchant_uid`)가 전달됩니다. 웹훅으로 예약결제에 대한 결과를 수신으면 결제결과 완료 로직 처리를 진행하시면 됩니다. -**포트원 Webhook** - -포트원 Webhook의 개념과 URL 설정 방법은 [**포트원 Webhook**](../../result/webhook) 문서를 참고하세요. + **포트원 Webhook** + 포트원 Webhook의 개념과 URL 설정 방법은 [**포트원 Webhook**](../../result/webhook) 문서를 참고하세요. - -```javascript title="server-side" -// "/iamport-callback/schedule"에 대한 POST 요청을 처리 + + ```ts title="server-side" + // "/iamport-callback/schedule"에 대한 POST 요청을 처리 app.post("/iamport-callback/schedule", async (req, res) => { try { const { imp_uid, merchant_uid } = req.body; @@ -65,25 +66,27 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; const getToken = await axios({ url: "https://api.iamport.kr/users/getToken", method: "post", // POST method - headers: { "Content-Type": "application/json" }, + headers: { "Content-Type": "application/json" }, data: { imp_key: "imp_apikey", // REST API 키 - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" - } + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", + }, }); const { access_token } = getToken.data; // 인증 토큰 // imp_uid로 포트원 서버에서 결제 정보 조회 const getPaymentData = await axios({ url: `https://api.iamport.kr/payments/${imp_uid}`, // imp_uid 전달 method: "get", // GET method - headers: { "Authorization": access_token } + headers: { Authorization: access_token }, }); const paymentData = getPaymentData.data; // 조회한 결제 정보 const { status } = paymentData; - if (status === "paid") { // 결제 성공적으로 완료 + if (status === "paid") { + // 결제 성공적으로 완료 // DB에 결제 정보 저장 await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // Mongoose - ... + // ... } else { // 재결제 시도 } @@ -91,21 +94,21 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; res.status(400).send(e); } }); -``` - - + ``` + ### 반복결제 구현하기 -포트원 서버에 결제 예약 요청을 하고 예약한 시간에 결제가 시도되면 지정된 웹훅 URL을 통해서 서버에 알리는 과정을 반복적으로 수행하여 반복 결제를 구현할 수 있습니다. +포트원 서버에 결제 예약 요청을 하고 예약한 시간에 결제가 시도되면 지정된 웹훅 URL을 통해서 +서버에 알리는 과정을 반복적으로 수행하여 반복 결제를 구현할 수 있습니다. ![]() - -```javascript title="server-side" -// "/iamport-callback/schedule"에 대한 POST 요청을 처리 + + ```ts title="server-side" + // "/iamport-callback/schedule"에 대한 POST 요청을 처리 app.post("/iamport-callback/schedule", async (req, res) => { try { const { imp_uid, merchant_uid } = req.body; @@ -115,30 +118,31 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; /* ...중략 ... */ const paymentData = getPaymentData.data; // 조회한 결제 정보 const { status } = paymentData; - if (status === "paid") { // 결제 성공적으로 완료 + if (status === "paid") { + // 결제 성공적으로 완료 // DB에 결제 정보 저장 - await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); - ... + await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); + // ... // 새로운 결제 예약 axios({ - url: "{결제예약을 받을 서비스 URL}", + url: "{결제예약을 받을 서비스 URL}", method: "post", // 인증 토큰 Authorization header에 추가 - headers: { "Authorization": access_token }, + headers: { Authorization: access_token }, data: { customer_uid: "gildong_0001_1234", // 카드(빌링키)와 1:1로 대응하는 값 schedules: [ { // 주문 번호 - merchant_uid: "order_monthly_0001", + merchant_uid: "order_monthly_0001", // 결제 시도 시각 in Unix Time Stamp. 예: 다음 달 1일 - schedule_at: 1519516800, + schedule_at: 1519516800, amount: 8900, name: "월간 이용권 정기결제", - ... - } - ] - } + // ... + }, + ], + }, }); } else { // 재결제 시도 @@ -147,9 +151,8 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; res.status(400).send(e); } }); -``` - -예약된 결제가 시도되었을 때 발생하는 webhook 이벤트를 처리하는 로직에서 예약된 결제가 정상적으로 완료되고 결제 내역이 저장되면 다음 결제를 예약하는 예제입니다. + ``` - + 예약된 결제가 시도되었을 때 발생하는 webhook 이벤트를 처리하는 로직에서 예약된 결제가 정상적으로 완료되고 결제 내역이 저장되면 다음 결제를 예약하는 예제입니다. + diff --git a/src/content/docs/ko/auth/guide-2/readme.mdx b/src/content/docs/ko/auth/guide-2/readme.mdx index 79a95ecb1..5b486087e 100644 --- a/src/content/docs/ko/auth/guide-2/readme.mdx +++ b/src/content/docs/ko/auth/guide-2/readme.mdx @@ -4,141 +4,135 @@ description: 포트원 결제취소 API를 이용한 결제취소 방법을 안 --- import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### **STEP 01.** 취소 요청하기 +## **STEP 01.** 취소 요청하기 필요한 취소 정보를 서버로 전달하여 취소 요청을 진행합니다. 가상계좌 환불의 경우 환불수령 계좌 정보를 추가 파라미터로 전달해야 합니다. 다음은 환불요청을 하기 위해 서버로 해당 정보를 전달하는 예제입니다. - -```html title="client-side" - - - -``` - - - - - - -```jsx title="client-side" -class CancelPay extends React.Component { - cancelPay = () => { - axios({ - url: "{환불요청을 받을 서비스 URL}", // 예: http://www.myservice.com/payments/cancel - method: "POST", - headers: { - "Content-Type": "application/json, - }, - data: { - merchant_uid: "{결제건의 주문번호}", // 주문번호 - cancel_request_amount: 2000, // 환불금액 - reason: "테스트 결제 환불" // 환불사유 - refund_holder: "홍길동", // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주 - refund_bank: "88" // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(예: KG이니시스의 경우 신한은행은 88번) - refund_account: "56211105948400" // [가상계좌 환불시 필수입력] 환불 수령계좌 번호 + + ```html title="client-side" + + + + ``` + + + + + + ```tsx title="client-side" + class CancelPay extends React.Component { + cancelPay = () => { + axios({ + url: "{환불요청을 받을 서비스 URL}", // 예: http://www.myservice.com/payments/cancel + method: "POST", + headers: { + "Content-Type": "application/json", + }, + data: { + merchant_uid: "{결제건의 주문번호}", // 주문번호 + cancel_request_amount: 2000, // 환불금액 + reason: "테스트 결제 환불", // 환불사유 + refund_holder: "홍길동", // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주 + refund_bank: "88", // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(예: KG이니시스의 경우 신한은행은 88번) + refund_account: "56211105948400", // [가상계좌 환불시 필수입력] 환불 수령계좌 번호 + }, + }); + }; + render() { + return ; + } + } + ``` + -### **STEP 02.** 결제정보 조회하기 +## **STEP 02.** 결제정보 조회하기 -아래와 같이 결제정보를 저장하는 **`Payments`**라는 테이블을 생성했다고 가정합니다. +아래와 같이 결제정보를 저장하는 \*\*`Payments`\*\*라는 테이블을 생성했다고 가정합니다. -```javascript title="server-side" +```js title="server-side" /* ... model/payments.js ... */ - var mongoose = require('mongoose'); - var Schema = mongoose.Schema; - ... - var PaymentsSchema = new Schema({ - imp_uid: String, // 포트원 `unique key`(환불 요청시 `unique key`로 사용) - merchant_uid: String, // 주문번호(결제정보 조회시 사용) - amount: { type: Number, default: 0 }, // 결제 금액(환불 가능 금액 계산시 사용) - // 환불 된 총 금액(환불 가능 금액 계산시 사용) - cancel_amount: { type: Number, default: 0 }, - ... - }); - ... - module.exports = mongoose.model('Payments', PaymentsSchema); +const mongoose = require("mongoose"); +const Schema = mongoose.Schema; +const PaymentsSchema = new Schema({ + imp_uid: String, // 포트원 `unique key`(환불 요청시 `unique key`로 사용) + merchant_uid: String, // 주문번호(결제정보 조회시 사용) + amount: { type: Number, default: 0 }, // 결제 금액(환불 가능 금액 계산시 사용) + // 환불 된 총 금액(환불 가능 금액 계산시 사용) + cancel_amount: { type: Number, default: 0 }, +}); +module.exports = mongoose.model("Payments", PaymentsSchema); ``` 클라이언트에서 받은 주문번호(**`merchant_uid`**)를 사용해서 해당 주문의 결제정보를 **`Payments`** 테이블에서 조회합니다. -```javascript title="server-side" +```js title="server-side" /* ... 중략 ... */ - var Payments = require('./models/payments'); - app.post('/payments/cancel', async (req, res, next) => { - try { - /* 액세스 토큰(access token) 발급 */ - /* ... 중략 ... */ - /* 결제정보 조회 */ - const { body } = req; - const { merchant_uid } = body; // 클라이언트로부터 전달받은 주문번호 - Payments.find({ merchant_uid }, async function(err, payment) { - if (err) { - return res.json(err); - } - const paymentData = payment[0]; // 조회된 결제정보 - /* 포트원 REST API로 결제환불 요청 */ - ... - }); - } catch (error) { - res.status(400).send(error); - } - }); - +const Payments = require("./models/payments"); +app.post("/payments/cancel", async (req, res, next) => { + try { + /* 액세스 토큰(access token) 발급 */ + /* ... 중략 ... */ + /* 결제정보 조회 */ + const { body } = req; + const { merchant_uid } = body; // 클라이언트로부터 전달받은 주문번호 + Payments.find({ merchant_uid }, async function (err, payment) { + if (err) { + return res.json(err); + } + const paymentData = payment[0]; // 조회된 결제정보 + /* 포트원 REST API로 결제환불 요청 */ + // ... + }); + } catch (error) { + res.status(400).send(error); + } +}); ``` -### **STEP 03.** 아임**포트 서버에 취소 요청하기** +## **STEP 03.** 아임**포트 서버에 취소 요청하기** -취소 요청을 하기 위해서 먼저 [**REST API access token**](../../api/rest-api-access-token) 을 발급받습니다. 발급받은 액세스 토큰(**`access token`**)을 이용하여[ **아임****포트 취소 API**](../../api/api-1/api) 를 호출하여 결제 취소를 요청합니다. +취소 요청을 하기 위해서 먼저 [**REST API access token**](../../api/rest-api-access-token)을 +발급받습니다. 발급받은 액세스 토큰(**`access token`**)을 이용하여 +[**포트원 취소 API**](../../api/api-1/api)를 호출하여 결제 취소를 요청합니다. -**휴대폰 소액결제 환불 시 유의사항** - -- **결제가 이루어진 월과 환불을 요청하는 월이 다를 경우, 전액환불도 불가능**합니다. 예를 들어, 1월 31일 결제건은 2월 1일에 환불할 수 없습니다. + **휴대폰 소액결제 환불 시 유의사항** + - **결제가 이루어진 월과 환불을 요청하는 월이 다를 경우, 전액환불도 불가능**합니다. 예를 들어, 1월 31일 결제건은 2월 1일에 환불할 수 없습니다. -#### 아래는 환불요청 시 유의해야 하는 파라미터들입니다. +아래는 환불요청 시 유의해야 하는 파라미터들입니다. > **환불 `unique key`** > @@ -152,75 +146,74 @@ class CancelPay extends React.Component { > **환불 가능 금액**(`checksum`) > -> 환불이 가능한 금액을 입력합니다. 예를 들어, 10**,**000원짜리 제품의 `checksum`은 10,000입니다. +> 환불이 가능한 금액을 입력합니다. 예를 들어, 10\*\*,\*\*000원짜리 제품의 `checksum`은 10,000입니다. > 만약 10,000원짜리 제품이 과거 1,000원 부분환불 되었다면, 이후 환불시 `checksum`은 > 9,000입니다.입력된 `checksum`을 사용해서 서버와 포트원 서버간에 환불 가능 금액이 일치하는지 > 확인합니다. 만약 일치하지 않으면 환불 요청은 실패하며 미 입력시 검증은 실행되지 않습니다. -**checksum을 입력해야 하는 이유** + **checksum을 입력해야 하는 이유** -`checksum`은 필수입력은 아니지만 **서버와 포트원 서버간에 환불 가능 금액을 검증하기** 위해서 입력을 권장합니다. + `checksum`은 필수입력은 아니지만 **서버와 포트원 서버간에 환불 가능 금액을 검증하기** 위해서 입력을 권장합니다. -예를 들어, 10**,**000원짜리 제품에 대한 1,000원 부분환불 요청이 포트원 서버에서 완료하였으나 고객사가 서버 혹은 DB오류로 이를 반영하지 못했다면? 포트원 서버의 checksum은 9,000이 되고, 고객사 서버의 checksum은 그대로 10,000이 됩니다. - -이후 남은 금액을 환불하려고 할때 `checksum(10,000)`을 입력하면, 해당 값이 포트원 서버의 `checksum(9,000)`과 일치하지 않으므로 요청은 실패합니다. + 예를 들어, 10,000원짜리 제품에 대한 1,000원 부분환불 요청이 포트원 서버에서 완료하였으나 고객사가 서버 혹은 DB오류로 이를 반영하지 못했다면? 포트원 서버의 checksum은 9,000이 되고, 고객사 서버의 checksum은 그대로 10,000이 됩니다. + 이후 남은 금액을 환불하려고 할때 `checksum(10,000)`을 입력하면, 해당 값이 포트원 서버의 `checksum(9,000)`과 일치하지 않으므로 요청은 실패합니다. -#### 아래는 환불 요청을 하는 예제입니다. +아래는 환불 요청을 하는 예제입니다. -```javascript title="Node.js" +```ts title="Node.js" /* ... 중략 ... */ - app.post('/payments/cancel', async (req, res, next) => { - try { - /* 액세스 토큰(access token) 발급 */ +app.post("/payments/cancel", async (req, res, next) => { + try { + /* 액세스 토큰(access token) 발급 */ + /* ... 중략 ... */ + /* 결제정보 조회 */ + const { body } = req; + // 클라이언트로부터 전달받은 주문번호, 환불사유, 환불금액 + const { merchant_uid, reason, cancel_request_amount } = body; + Payments.find({ merchant_uid }, async function (err, payment) { /* ... 중략 ... */ - /* 결제정보 조회 */ - const { body } = req; - // 클라이언트로부터 전달받은 주문번호, 환불사유, 환불금액 - const { merchant_uid, reason, cancel_request_amount } = body; - Payments.find({ merchant_uid }, async function(err, payment) { - /* ... 중략 ... */ - const paymentData = payment[0]; // 조회된 결제정보 - // 조회한 결제정보로부터 imp_uid, amount(결제금액), cancel_amount(환불된 총 금액) 추출 - const { imp_uid, amount, cancel_amount } = paymentData; - // 환불 가능 금액(= 결제금액 - 환불 된 총 금액) 계산 - const cancelableAmount = amount - cancel_amount; - if (cancelableAmount <= 0) { // 이미 전액 환불된 경우 - return res.status(400).json({ message: "이미 전액환불된 주문입니다." }); - } - ... - /* 포트원 REST API로 결제환불 요청 */ - const getCancelData = await axios({ - url: "https://api.iamport.kr/payments/cancel", - method: "post", - headers: { - "Content-Type": "application/json", - "Authorization": access_token // 포트원 서버로부터 발급받은 엑세스 토큰 - }, - data: { - reason, // 고객사 클라이언트로부터 받은 환불사유 - imp_uid, // imp_uid를 환불 `unique key`로 입력 - amount: cancel_request_amount, // 고객사 클라이언트로부터 받은 환불금액 - checksum: cancelableAmount // [권장] 환불 가능 금액 입력 - } - }); - const { response } = getCancelData.data; // 환불 결과 - /* 환불 결과 동기화 */ - ... + const paymentData = payment[0]; // 조회된 결제정보 + // 조회한 결제정보로부터 imp_uid, amount(결제금액), cancel_amount(환불된 총 금액) 추출 + const { imp_uid, amount, cancel_amount } = paymentData; + // 환불 가능 금액(= 결제금액 - 환불 된 총 금액) 계산 + const cancelableAmount = amount - cancel_amount; + if (cancelableAmount <= 0) { + // 이미 전액 환불된 경우 + return res.status(400).json({ message: "이미 전액환불된 주문입니다." }); + } + /* 포트원 REST API로 결제환불 요청 */ + const getCancelData = await axios({ + url: "https://api.iamport.kr/payments/cancel", + method: "post", + headers: { + "Content-Type": "application/json", + Authorization: access_token, // 포트원 서버로부터 발급받은 엑세스 토큰 + }, + data: { + reason, // 고객사 클라이언트로부터 받은 환불사유 + imp_uid, // imp_uid를 환불 `unique key`로 입력 + amount: cancel_request_amount, // 고객사 클라이언트로부터 받은 환불금액 + checksum: cancelableAmount, // [권장] 환불 가능 금액 입력 + }, }); - } catch (error) { - res.status(400).send(error); - } - }) + const { response } = getCancelData.data; // 환불 결과 + /* 환불 결과 동기화 */ + // ... + }); + } catch (error) { + res.status(400).send(error); + } +}); ``` ### **STEP 04.** 환불 결과 저장하기 #### 결제 취소가 완료되면 그 결과를 데이터베이스에 다음과 같이 저장합니다. -```javascript title="Node.js" +```ts title="Node.js" /* ... 중략 ... */ app.post("/payments/cancel", async (req, res, next) => { try { @@ -244,7 +237,7 @@ app.post("/payments/cancel", async (req, res, next) => { return res.json(err); } res.json(payment); // 고객사 클라이언트로 환불 결과 반환 - } + }, ); }); } catch (error) { @@ -254,10 +247,9 @@ app.post("/payments/cancel", async (req, res, next) => { ``` -**취소 시 유의할 점** - -REST API[**(POST https://api.iamport.kr/payments/cancel)**](../../api/api-1/api) 요청에 대한 **응답 코드가 200**이라도 응답 body의 code가 0이 아니면 **환불에 실패했다는 의미**입니다. 실패 사유는 body의 message를 통해 확인하셔야 합니다. + **취소 시 유의할 점** + REST API[**(POST https://api.iamport.kr/payments/cancel)**](../../api/api-1/api) 요청에 대한 **응답 코드가 200**이라도 응답 body의 code가 0이 아니면 **환불에 실패했다는 의미**입니다. 실패 사유는 body의 message를 통해 확인하셔야 합니다. ### **STEP 04.** 환불 응답 처리하기 @@ -265,46 +257,45 @@ REST API[**(POST https://api.iamport.kr/payments/cancel)**](../../api/api-1/api) 취소요청에 대한 응답을 클라이언트에게 처리하는 로직을 아래와 같이 작성합니다. - -```html title="client-side" - - - -``` - - - - -```jsx title="client-side" -class CancelPay extends React.Component { - cancelPay = () => { - axios({ - /* ... 중략 ... */ - }).then(response => { // 환불 성공시 로직 - alert("환불 성공"); - }).catch(error => { // 환불 실패시 로직 - alert("환불 실패"); - }); - } - ... - render() { - return ; - } -} -``` - - + + ```html title="client-side" + + + + ``` + + + + ```tsx title="client-side" + class CancelPay extends React.Component { + cancelPay = () => { + axios(/* ... 중략 ... */) + .then((response) => { + // 환불 성공시 로직 + alert("환불 성공"); + }) + .catch((error) => { + // 환불 실패시 로직 + alert("환불 실패"); + }); + }; + render() { + return ; + } + } + ``` + diff --git a/src/content/docs/ko/auth/guide-2/refund.mdx b/src/content/docs/ko/auth/guide-2/refund.mdx index 9c1d8baf1..eb9743aea 100644 --- a/src/content/docs/ko/auth/guide-2/refund.mdx +++ b/src/content/docs/ko/auth/guide-2/refund.mdx @@ -6,18 +6,17 @@ description: 가상계좌 입금내역을 환불하는 방법을 확인합니다 import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -### 가상계좌 환불을 위해서는 PG사 **가상계좌 특약서비스**에 가입되어 있어야 합니다. +**가상계좌 환불을 위해서는 PG사 **가상계좌 특약서비스**에 가입되어 있어야 합니다.** -**가상계좌 특약서비스에 가입해야 하는 이유** + **가상계좌 특약서비스에 가입해야 하는 이유** -신용카드와는 달리 가상계좌의 경우 결제/환불에 대한 수수료는 환불대상에서 제외됩니다.예를 들어 10,000원 결제건에 대해서 고객사는 + 신용카드와는 달리 가상계좌의 경우 결제/환불에 대한 수수료는 환불대상에서 제외됩니다.예를 들어 10,000원 결제건에 대해서 고객사는 -- 결제 시, 9,700원(10,000원 - 가상계좌 발행 수수료 300원)을 PG사로부터 정산받습니다. -- 환불 시, 10,300원(환불되어야할 10,000원 + 환불 계좌로의 송금 수수료 300원)을 PG사로 지불합니다. - -PG사는 이런 과정에서 발생할 수 있는 혼란을 미연에 방지하고자 **가상계좌 특약서비스에 가입한 고객사에 한해서만 가상계좌 환불을 제공**하고 있습니다. + - 결제 시, 9,700원(10,000원 - 가상계좌 발행 수수료 300원)을 PG사로부터 정산받습니다. + - 환불 시, 10,300원(환불되어야할 10,000원 + 환불 계좌로의 송금 수수료 300원)을 PG사로 지불합니다. + PG사는 이런 과정에서 발생할 수 있는 혼란을 미연에 방지하고자 **가상계좌 특약서비스에 가입한 고객사에 한해서만 가상계좌 환불을 제공**하고 있습니다. 가상계좌의 경우 단방향 결제수단이여서 환불 대상을 알 수 없으므로 환불 금액 외에 다음의 환불 수령계좌 정보를 입력해야 합니다. @@ -27,66 +26,69 @@ PG사는 이런 과정에서 발생할 수 있는 혼란을 미연에 방지하 - `refund_bank`: 환불 수령계좌 은행코드 -**가상계좌 은행코드는 PG사에 따라 다릅니다** - -`은행코드는`같은 은행이더라도 PG사에 따라 상이하므로 [**은행코드**](../../tip/pg-1)표에서 은행코드를 확인해 주세요 + **가상계좌 은행코드는 PG사에 따라 다릅니다** + `은행코드는`같은 은행이더라도 PG사에 따라 상이하므로 [**은행코드**](../../tip/pg-1)표에서 은행코드를 확인해 주세요 -#### 아래는 가상계좌 환불을 요청하는 예제입니다. +아래는 가상계좌 환불을 요청하는 예제입니다. -```javascript title="Node.js" +```ts title="Node.js" /* ... 중략 ... */ - app.post('/payments/cancel', async (req, res, next) => { - try { - /* 액세스 토큰(access token) 발급 */ +app.post("/payments/cancel", async (req, res, next) => { + try { + /* 액세스 토큰(access token) 발급 */ + /* ... 중략 ... */ + /* 결제정보 조회 */ + const { body } = req; + // 클라이언트로부터 전달받은 주문번호, 환불사유, 환불금액, 가상계좌 정보(예금주, 계좌번호, 은행코드) + const { + merchant_uid, + reason, + cancel_request_amount, + refund_holder, + refund_bank, + refund_account, + } = body; + Payments.find({ merchant_uid }, async function (err, payment) { /* ... 중략 ... */ - /* 결제정보 조회 */ - const { body } = req; - // 클라이언트로부터 전달받은 주문번호, 환불사유, 환불금액, 가상계좌 정보(예금주, 계좌번호, 은행코드) - const { merchant_uid, reason, cancel_request_amount, refund_holder, refund_bank, refund_account } = body; - Payments.find({ merchant_uid }, async function(err, payment) { - /* ... 중략 ... */ - const paymentData = payment[0]; // 조회된 결제정보 - // 조회한 결제정보로부터 imp_uid, amount(결제금액), cancel_amount(환불된 총 금액) 추출 - const { imp_uid, amount, cancel_amount } = paymentData; - // 환불 가능 금액(= 결제금액 - 환불된 총 금액) 계산 - const cancelableAmount = amount - cancel_amount; - if (cancelableAmount <= 0) { // 이미 전액 환불된 경우 - return res.status(400).json({ message: "이미 전액환불된 주문입니다." }); - } - ... - /* 포트원 REST API로 결제환불 요청 */ - const getCancelData = await axios({ - url: "https://api.iamport.kr/payments/cancel", - method: "post", - headers: { - "Content-Type": "application/json", - "Authorization": access_token // 포트원 서버로부터 발급받은 엑세스 토큰 - }, - data: { - reason, // 고객사 클라이언트로부터 받은 환불사유 - imp_uid, // imp_uid를 환불 `unique key`로 입력 - amount: cancel_request_amount, // 고객사 클라이언트로부터 받은 환불금액 - checksum: cancelableAmount, // [권장] 환불 가능 금액 입력 - refund_holder, // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주 - refund_bank, // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(ex. KG이니시스의 경우 신한은행은 88번) - refund_account // [가상계좌 환불시 필수입력] 환불 수령계좌 번호 - } - }); - const { response } = getCancelData.data; // 환불 결과 - /* 환불 결과 동기화 */ - ... + const paymentData = payment[0]; // 조회된 결제정보 + // 조회한 결제정보로부터 imp_uid, amount(결제금액), cancel_amount(환불된 총 금액) 추출 + const { imp_uid, amount, cancel_amount } = paymentData; + // 환불 가능 금액(= 결제금액 - 환불된 총 금액) 계산 + const cancelableAmount = amount - cancel_amount; + if (cancelableAmount <= 0) { + // 이미 전액 환불된 경우 + return res.status(400).json({ message: "이미 전액환불된 주문입니다." }); + } + /* 포트원 REST API로 결제환불 요청 */ + const getCancelData = await axios({ + url: "https://api.iamport.kr/payments/cancel", + method: "post", + headers: { + "Content-Type": "application/json", + Authorization: access_token, // 포트원 서버로부터 발급받은 엑세스 토큰 + }, + data: { + reason, // 고객사 클라이언트로부터 받은 환불사유 + imp_uid, // imp_uid를 환불 `unique key`로 입력 + amount: cancel_request_amount, // 고객사 클라이언트로부터 받은 환불금액 + checksum: cancelableAmount, // [권장] 환불 가능 금액 입력 + refund_holder, // [가상계좌 환불시 필수입력] 환불 수령계좌 예금주 + refund_bank, // [가상계좌 환불시 필수입력] 환불 수령계좌 은행코드(ex. KG이니시스의 경우 신한은행은 88번) + refund_account, // [가상계좌 환불시 필수입력] 환불 수령계좌 번호 + }, }); - } catch (error) { - res.status(400).send(error); - } - }); + const { response } = getCancelData.data; // 환불 결과 + /* 환불 결과 동기화 */ + // ... + }); + } catch (error) { + res.status(400).send(error); + } +}); ``` 다음과 같이 가상계좌 환불을 요청하여 성공하면 PG사 담당자가 다음날 해당 계좌로 환불 금액을 입금합니다. 이는 통상적으로 영엽일 기준 하루 정도 소요됩니다. -
+
diff --git a/src/content/docs/ko/auth/guide/1.mdx b/src/content/docs/ko/auth/guide/1.mdx index 9cb59596b..9f4e8ae2b 100644 --- a/src/content/docs/ko/auth/guide/1.mdx +++ b/src/content/docs/ko/auth/guide/1.mdx @@ -1,11 +1,11 @@ --- title: 1. 포트원 라이브러리 추가 -description: 해당 라이브러리를 추가하면 인증결제 연동준비 50%가 완료됩니다. +description: 해당 라이브러리를 추가하면 인증결제 연동 준비 50%가 완료됩니다. --- import Youtube from "~/components/gitbook/Youtube.astro"; -#### 결제창 연동을 진행할 주문 페이지에 아래 JS 라이브러리를 추가 합니다. +결제창 연동을 진행할 주문 페이지에 아래 JS 라이브러리를 추가합니다. ```html title="Client-side" diff --git a/src/content/docs/ko/auth/guide/2.mdx b/src/content/docs/ko/auth/guide/2.mdx index acc56973e..0178e0f75 100644 --- a/src/content/docs/ko/auth/guide/2.mdx +++ b/src/content/docs/ko/auth/guide/2.mdx @@ -4,31 +4,23 @@ description: 고객사 식별코드를 이용하여 결제창 연동을 준비 --- import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; -#### 주문 페이지에서 고객사 식별코드를 이용하여 IMP 객체를 초기화 합니다. +주문 페이지에서 고객사 식별코드를 이용하여 IMP 객체를 초기화 합니다. -아래 초기화 함수를 **2회 이상** 중복되게 호출하지 않도록 주의해주세요. + 아래 초기화 함수를 **2회 이상** 중복되게 호출하지 않도록 주의해주세요. - - -```javascript title="client-side" -IMP.init('고객사 식별코드') // 예: 'imp00000000a' +```ts title="client-side" +IMP.init("고객사 식별코드"); // 예: 'imp00000000a' ``` - - -  - -#### 하위상점 결제창 호출 방법 +## 하위상점 결제창 호출 방법 하위 상점인 경우 `IMP.init()` 대신, `IMP.agency('고객사 식별코드', '하위 고객사 티어코드')`를 호출해야 합니다. -```javascript +```ts // IMP.init() 대신 아래 함수를 사용해야함 -IMP.agency('고객사 식별코드', '티어코드') // 예: 'imp00000000a', '123' +IMP.agency("고객사 식별코드", "티어코드"); // 예: 'imp00000000a', '123' ``` diff --git a/src/content/docs/ko/auth/guide/3.mdx b/src/content/docs/ko/auth/guide/3.mdx index d02c5a027..8ddc74199 100644 --- a/src/content/docs/ko/auth/guide/3.mdx +++ b/src/content/docs/ko/auth/guide/3.mdx @@ -3,112 +3,113 @@ title: 3. 결제 요청하기 description: 파라미터값을 조합하여 결제창을 호출 할 수 있습니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Youtube from "~/components/gitbook/Youtube.astro"; +import Hint from "~/components/Hint.astro"; -[**IMP 객체 초기화**](2)가 완료 되었으면 이제 결제창을 호출할 차례입니다. +**IMP 객체 초기화**](2)가 완료 되었으면 이제 결제창을 호출할 차례입니다. -결제창 호출시 필요한 [**파라미터**](../../sdk/javascript-sdk/payrq)**를 request_pay** 함수 첫번째 파라미터 인자로 설정합니다. +결제창 호출시 필요한 [**파라미터**](../../sdk/javascript-sdk/payrq)**를 request\_pay** 함수 첫번째 파라미터 인자로 설정합니다. - -```javascript - function requestPay() { - IMP.request_pay({ - pg: "kcp.{상점ID}", - pay_method: "card", - merchant_uid: "ORD20180131-0000011", // 주문번호 - name: "노르웨이 회전 의자", - amount: 64900, // 숫자 타입 - buyer_email: "gildong@gmail.com", - buyer_name: "홍길동", - buyer_tel: "010-4242-4242", - buyer_addr: "서울특별시 강남구 신사동", - buyer_postcode: "01181" - }, function (rsp) { // callback - //rsp.imp_uid 값으로 결제 단건조회 API를 호출하여 결제결과를 판단합니다. - }); - } -``` - - - - -```jsx -class RequestPay extends React.Component { - requestPay = () => { - IMP.request_pay({ // param - pg: "kcp.{상점ID}", - pay_method: "card", - merchant_uid: "ORD20180131-0000011", - name: "노르웨이 회전 의자", - amount: 64900, - buyer_email: "gildong@gmail.com", - buyer_name: "홍길동", - buyer_tel: "010-4242-4242", - buyer_addr: "서울특별시 강남구 신사동", - buyer_postcode: "01181" - }, rsp => { // callback - if (rsp.success) { - ..., - // 결제 성공 시 로직, - ... - } else { - ..., - // 결제 실패 시 로직, - ... - } - }); - } -``` - - - - -```javascript - -``` + ``` + - + + ```tsx + class RequestPay extends React.Component { + requestPay = () => { + IMP.request_pay( + { + // param + pg: "kcp.{상점ID}", + pay_method: "card", + merchant_uid: "ORD20180131-0000011", + name: "노르웨이 회전 의자", + amount: 64900, + buyer_email: "gildong@gmail.com", + buyer_name: "홍길동", + buyer_tel: "010-4242-4242", + buyer_addr: "서울특별시 강남구 신사동", + buyer_postcode: "01181", + }, + (rsp) => { + // callback + if (rsp.success) { + // 결제 성공 시 로직 + } else { + // 결제 실패 시 로직 + } + }, + ); + }; + } + ``` + + + + ```ts + export default { + methods: { + requestPay: function () { + IMP.request_pay( + { + // param + pg: "kcp.{상점ID}", + pay_method: "card", + merchant_uid: "ORD20180131-0000011", + name: "노르웨이 회전 의자", + amount: 64900, + buyer_email: "gildong@gmail.com", + buyer_name: "홍길동", + buyer_tel: "010-4242-4242", + buyer_addr: "서울특별시 강남구 신사동", + buyer_postcode: "01181", + }, + (rsp) => { + // callback + if (rsp.success) { + // 결제 성공 시 로직 + } else { + // 결제 실패 시 로직 + } + }, + ); + }, + }, + }; + ``` + -**주문번호(merchant\_uid) 생성 시 유의사항** - -- 주문번호는 결제창 요청 시 항상 **고유 값**으로 채번 되어야 합니다. -- 결제 완료 이후 **결제 위변조** 대사 작업시 주문번호를 이용하여 검증이 필요하므로 주문번호는 고객사 서버에서 **고유하게**(unique)채번하여 **DB 상에 저장**해주세요 + **주문번호(merchant\_uid) 생성 시 유의사항** + - 주문번호는 결제창 요청 시 항상 **고유 값**으로 채번 되어야 합니다. + - 결제 완료 이후 **결제 위변조** 대사 작업시 주문번호를 이용하여 검증이 필요하므로 주문번호는 고객사 서버에서 **고유하게**(unique)채번하여 **DB 상에 저장**해주세요 현재까지 진행한 소스코드에 **결제 버튼을 추가****한 샘플 코드**입니다. @@ -139,7 +140,7 @@ class RequestPay extends React.Component { }, function (rsp) { // callback - //rsp.imp_uid 값으로 결제 단건조회 API를 호출하여 결제결과를 판단합니다. + // rsp.imp_uid 값으로 결제 단건조회 API를 호출하여 결제결과를 판단합니다. } ); } diff --git a/src/content/docs/ko/auth/guide/4/iframe.mdx b/src/content/docs/ko/auth/guide/4/iframe.mdx index dafb75c68..3bb89f97a 100644 --- a/src/content/docs/ko/auth/guide/4/iframe.mdx +++ b/src/content/docs/ko/auth/guide/4/iframe.mdx @@ -4,27 +4,25 @@ description: 대부분의 PC환경에서 적용되는 iframe 방식 결제창 --- import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; -#### **iframe** 이란? - -**다른 HTML 페이지를 현재 페이지에 포함**시킬 수 있는 요소입니다.\ -자세한 내용은 [MDN iframe 문서](https://developer.mozilla.org/ko/docs/Web/HTML/Element/iframe)를 참고해주세요. + **iframe이란?** + **다른 HTML 페이지를 현재 페이지에 포함**시킬 수 있는 요소입니다.\ + 자세한 내용은 [MDN iframe 문서](https://developer.mozilla.org/ko/docs/Web/HTML/Element/iframe)를 참고해주세요. **PC 환경**에서 일어나는 대부분의 결제는 **`request_pay()`** 함수의 두번째 인자인 **callback** 함수를 통해 결제 결과 수신이 가능합니다. 아래 예제 코드는 결제창 형태가 **iframe 으로 활성화**되는 **대부분의 PC 환경**에서의 결제요청에 대한 응답을 처리하는 부분입니다. - - -```javascript -IMP.request_pay({ /** 요청 객체를 추가해주세요 */ }, - rsp => { - if (rsp.success) { +```ts +IMP.request_pay( + { + /** 요청 객체를 추가해주세요 */ + }, + (rsp) => { + if (rsp.success) { // axios로 HTTP 요청 axios({ url: "{서버의 결제 정보를 받는 endpoint}", @@ -32,65 +30,34 @@ IMP.request_pay({ /** 요청 객체를 추가해주세요 */ }, headers: { "Content-Type": "application/json" }, data: { imp_uid: rsp.imp_uid, - merchant_uid: rsp.merchant_uid - } + merchant_uid: rsp.merchant_uid, + }, }).then((data) => { // 서버 결제 API 성공시 로직 - }) + }); } else { alert(`결제에 실패하였습니다. 에러 내용: ${rsp.error_msg}`); } - }); -``` - - - - -```javascript -IMP.request_pay({ /** 요청 객체를 추가해주세요 */ }, - function (rsp) { - if (rsp.success) { - // 결제 성공 시: 결제 승인 또는 가상계좌 발급에 성공한 경우 - // jQuery로 HTTP 요청 - jQuery.ajax({ - url: "{서버의 결제 정보를 받는 고객사 endpoint}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { - imp_uid: rsp.imp_uid, // 결제 고유번호 - merchant_uid: rsp.merchant_uid // 주문번호 - } - }).done(function (data) { - // 고객사 서버 결제 API 성공시 로직 - }) - } else { - alert("결제에 실패하였습니다. 에러 내용: " + rsp.error_msg); - } - }); + }, +); ``` - - - 결제가 완료되면 반환되는 응답 객체([**rsp**](../../../sdk/javascript-sdk-old/readme))의 결제 성공 -여부에 따라 처리 로직을 **callback** 함수에 작성합니다. 요청이 성공했을 경우에 **결제번호(imp_uid)와 -주문번호(merchant_uid)를 서버에 전달**하는 로직을 위와 같이 작성합니다. +여부에 따라 처리 로직을 **callback** 함수에 작성합니다. 요청이 성공했을 경우에 **결제번호(imp\_uid)와 +주문번호(merchant\_uid)를 서버에 전달**하는 로직을 위와 같이 작성합니다. -[payrt](../../../sdk/javascript-sdk/payrt "mention")에서 callback 함수로 전달되는 응답 파라미터를 확인할 수 있습니다. - + [payrt](../../../sdk/javascript-sdk/payrt "mention")에서 callback 함수로 전달되는 응답 파라미터를 확인할 수 있습니다. -최종 결제결과 로직처리는 반드시 [**웹훅**](../../../result/webhook)을 이용하여 안정적으로 처리해 주셔야 합니다. - -웹훅 연동을 생략하시는 경우 결제결과를 정상적으로 수신받지 못하는 상황이 발생합니다. + 최종 결제결과 로직처리는 반드시 [**웹훅**](../../../result/webhook)을 이용하여 안정적으로 처리해 주셔야 합니다. + 웹훅 연동을 생략하시는 경우 결제결과를 정상적으로 수신받지 못하는 상황이 발생합니다. -**(구) 페이팔(Paypal)** 결제는 PC 환경 결제 시 **팝업형태(새 창)**로 결제창이 활성화 되며 - -이에 따라 결제 결과도 **m_redirect_url** 로 받아보실 수 있습니다. + **(구) 페이팔(Paypal)** 결제는 PC 환경 결제 시 \*\*팝업형태(새 창)\*\*로 결제창이 활성화 되며 + 이에 따라 결제 결과도 **m\_redirect\_url** 로 받아보실 수 있습니다. diff --git a/src/content/docs/ko/auth/guide/4/readme.mdx b/src/content/docs/ko/auth/guide/4/readme.mdx index 61925d5fc..6ae6f0bc7 100644 --- a/src/content/docs/ko/auth/guide/4/readme.mdx +++ b/src/content/docs/ko/auth/guide/4/readme.mdx @@ -5,7 +5,9 @@ description: 결제결과를 안전하게 저장할 수 있는 가이드 입니 import ContentRef from "~/components/gitbook/ContentRef.astro"; -#### 결제창이 활성화되는 방식에 따라 결제결과를 획득하는 방법이 상이합니다. 일반적으로 PC 환경에서는 iframe 방식으로 결제창이 활성화되며 모바일 환경에서는 새로운 페이지로 리다이렉트 되어 결제창이 활성화 됩니다. +결제창이 활성화되는 방식에 따라 결제결과를 획득하는 방법이 상이합니다. +일반적으로 PC 환경에서는 iframe 방식으로 결제창이 활성화되며, +모바일 환경에서는 새로운 페이지로 리다이렉트되어 결제창이 활성화 됩니다. 결제가 정상적으로 완료되면 결제창 형태에 따라 아래와 같이 결제결과를 받아 볼 수 있습니다. diff --git a/src/content/docs/ko/auth/guide/4/redirect.mdx b/src/content/docs/ko/auth/guide/4/redirect.mdx index cbd97a7ae..68441ae0e 100644 --- a/src/content/docs/ko/auth/guide/4/redirect.mdx +++ b/src/content/docs/ko/auth/guide/4/redirect.mdx @@ -4,99 +4,97 @@ description: 새로운 창으로 리디렉션되어 결제가 진행되는 환 --- import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -> 아래 예제 코드는 결제창 형태가 **새로운 페이지로 리디렉션되어** 결제가 진행되는 대부분의 **모바일 환경**에서의 결제요청애 대한 응답을 처리하는 부분입니다. +> 아래 예제 코드는 결제창 형태가 **새로운 페이지로 리디렉션되어** 결제가 진행되는 +> 대부분의 **모바일 환경**에서의 결제 요청에 대한 응답을 처리하는 부분입니다. - + - -```javascript -IMP.request_pay({ - /* 결제 요청 객체를 채워주세요. */ - m_redirect_url: "{리디렉션 될 URL}" -}, /* callback */); // 리디렉션 방식의 경우 callback은 실행되지 않습니다. -``` - - + + ```ts + IMP.request_pay( + { + /* 결제 요청 객체를 채워주세요. */ + m_redirect_url: "{리디렉션 될 URL}", + } /* callback */, + ); // 리디렉션 방식의 경우 callback은 실행되지 않습니다. + ``` + -위와 같이 **request_pay** 함수 파라미터로 **m_redirect_url** 을 설정하면 **결제 완료** 이후 해당 URL 주소로 결제 결과를 **쿼리스트링(Query String)** 형태로 전송해 드립니다. +위와 같이 **request\_pay** 함수 파라미터로 **m\_redirect\_url** 을 설정하면 +**결제 완료** 이후 해당 URL 주소로 +결제 결과를 **쿼리스트링(Query String)** 형태로 전송해 드립니다. -**Query String 이란?** - -URL 뒤에 데이터를 전달하는 가장 단순한 방법으로 주로 GET 요청과 함께 데이터를 전송할 때 사용합니다. + **Query String 이란?** + URL 뒤에 데이터를 전달하는 가장 단순한 방법으로 주로 GET 요청과 함께 데이터를 전송할 때 사용합니다. -결제 결과를 수신받을 endpoint url 주소를 m_redirect_url 에 설정하시면 결제결과 수신이 가능합니다. +결제 결과를 수신받을 endpoint url 주소를 m\_redirect\_url 에 설정하시면 결제결과 수신이 가능합니다. 아래 파라미터를 설정하신 URL 을 통해 Query String 형태로 수신받을수 있습니다. 아래는 Query String 으로 리디렉션되는 URL 예제입니다. - -```url -curl https://myservice.com/payments/complete?imp_uid=결제건을_특정하는_포트원_번호&merchant_uid=고객사_고유_주문번호&imp_success=true -``` - - - - -``` -curl https://myservice.com/payments/complete?imp_uid=결제건을_특정하는_포트원_번호&merchant_uid=고객사_고유_주문번호&imp_success=false&error_code=에러_코드(현재_정리된_체계는_없음)&error_msg=에러_메시지 -``` - - + + ```http + GET https://myservice.com/payments/complete?imp_uid=결제건을_특정하는_포트원_번호&merchant_uid=고객사_고유_주문번호&imp_success=true + ``` + + + + ```http + GET https://myservice.com/payments/complete?imp_uid=결제건을_특정하는_포트원_번호&merchant_uid=고객사_고유_주문번호&imp_success=false&error_code=에러_코드(현재_정리된_체계는_없음)&error_msg=에러_메시지 + ``` + -| 파라미터명 | 설명 | 비고 | -|:----------------------------------------:|:------------------:|:-----:| -| **imp_uid** |포트원 결제 고유번호| 공통 | -| **merchant_uid** | 고객사 주문번호 | 공통 | -| **imp_success** | 결제 성공 여부 | 공통 | -|error_code| 오류 코드 |실패 시| -|error_msg | 오류 메세지 |실패 시| +| 파라미터명 | 설명 | 비고 | +|:-----------------------------------------:|:------------------:|:-----:| +| **imp\_uid** |포트원 결제 고유번호| 공통 | +| **merchant\_uid** | 고객사 주문번호 | 공통 | +| **imp\_success** | 결제 성공 여부 | 공통 | +|error\_code| 오류 코드 |실패 시| +| error\_msg| 오류 메세지 |실패 시| > **결제 완료****의 의미** > > `결제완료`는 아래의 모든 경우를 포함합니다. > -> 1. **결제 성공**(결제 상태: `paid`, imp_success: `true`) -> 2. **결제 실패**(결제 상태: `failed`, imp_success: `false`) +> 1. **결제 성공**(결제 상태: `paid`, imp\_success: `true`) +> 2. **결제 실패**(결제 상태: `failed`, imp\_success: `false`) > 3. PG 모듈 설정이 올바르지 않아, **결제 창이 열리지 않음** > 4. 사용자가 임의로 X 버튼이나 취소 버튼을 눌러 **결제를 종료**함 > 5. 카드 정보 불일치, 한도 초과, 잔액 부족 등의 사유로 **결제가 중단**됨 -> 6. 가상계좌 **발급 완료(**결제 상태: `ready`, imp_success: `true`) +> 6. 가상계좌 \*\*발급 완료(\*\*결제 상태: `ready`, imp\_success: `true`) -**결제창이 리디렉션되어 새로운 페이지에서 활성화되는 경우 결제 결과는 callback 으로 받을 수 없습니다.** - + **결제창이 리디렉션되어 새로운 페이지에서 활성화되는 경우 결제 결과는 callback 으로 받을 수 없습니다.** -최종 결제결과 로직처리는 반드시 [**웹훅**](../../../result/webhook)을 이용하여 안정적으로 처리해 주셔야 합니다. - -웹훅연동을 생략하시는 경우 결제결과를 정상적으로 수신받지 못하는 상황이 발생합니다. + 최종 결제 결과 로직 처리는 반드시 [**웹훅**](../../../result/webhook)을 이용하여 안정적으로 처리해 주셔야 합니다. + 웹훅 연동을 생략하시는 경우 결제 결과를 정상적으로 수신받지 못하는 상황이 발생합니다. -**imp\_success 파라미터** - -`imp_success` 파라미터는 **결제 프로세스 정상 종료 -여부**를 의미합니다. 하지만 클라이언트 상에서 자바스크립트 함수를 호출해서 결제창이 -열리므로 **결제금액이 위변조 되었을 가능성**이 있기 때문에 **이 값으로 결제의 성공 -여부를 판단해서는 안됩니다**. 결제의 성공 여부에 따라 아래와 같이 처리합니다. + **imp\_success 파라미터** -- imp_success = true: 결제 정보(imp_uid, merchant_uid)를 서버에 전달해서 결제금액의 위변조 여부를 검증한 후 최종적으로 결제 성공 여부를 판단해야 합니다. -- Imp_success = false: 결제가 실패했음을 사용자에게 알립니다. + `imp_success` 파라미터는 **결제 프로세스 정상 종료 + 여부**를 의미합니다. 하지만 클라이언트 상에서 자바스크립트 함수를 호출해서 결제창이 + 열리므로 **결제금액이 위변조 되었을 가능성**이 있기 때문에 **이 값으로 결제의 성공 + 여부를 판단해서는 안됩니다**. 결제의 성공 여부에 따라 아래와 같이 처리합니다. -\* 일부 PG사에 한해 `imp_success`가 아닌 `success` 파라미터가 전달되거나 아예 전달되지 않는 경우(예: KG이니시스 - 실시간 계좌이체)도 있으니 주의하셔야 합니다. + - imp\_success = true: 결제 정보(imp\_uid, merchant\_uid)를 서버에 전달해서 결제금액의 위변조 여부를 검증한 후 최종적으로 결제 성공 여부를 판단해야 합니다. + - Imp\_success = false: 결제가 실패했음을 사용자에게 알립니다. + \* 일부 PG사에 한해 `imp_success`가 아닌 `success` 파라미터가 전달되거나 아예 전달되지 않는 경우(예: KG이니시스 - 실시간 계좌이체)도 있으니 주의하셔야 합니다. diff --git a/src/content/docs/ko/auth/guide/5/post.mdx b/src/content/docs/ko/auth/guide/5/post.mdx index 6e93a8d8c..aa9788b76 100644 --- a/src/content/docs/ko/auth/guide/5/post.mdx +++ b/src/content/docs/ko/auth/guide/5/post.mdx @@ -4,22 +4,18 @@ description: "" --- import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; 결제 정보를 사후 검증하는 과정은 크게 세 단계로 이루어집니다. - 응답받은 내용을 바탕으로 실 결제 금액과 결제요청금액(고객사 자체 데이터베이스)을 비교 -- 결제 상세내역 조회를 위해 포트원 [**결제 단건 조회 API** ](https://developers.portone.io/api/rest-v1/payment#get%20%2Fpayments%2F%7Bimp_uid%7D)요청 -- 포트원 결제고유번호(**imp_uid**), 고객사 주문번호(**merchant_uid**)를 프론트엔드로부터 수신 +- 결제 상세내역 조회를 위해 포트원 [**결제 단건 조회 API**](https://developers.portone.io/api/rest-v1/payment#get%20%2Fpayments%2F%7Bimp_uid%7D) 요청 +- 포트원 결제고유번호(**imp\_uid**), 고객사 주문번호(**merchant\_uid**)를 프론트엔드로부터 수신 -### **STEP 01** 결제결과 서버 수신 +## **STEP 01** 결제결과 서버 수신 - - 결제정보를 받은 고객사 endpoint URL 에 대한 POST 요청을 수신하는 예제 -```javascript +```ts title="Node.js" app.use(bodyParser.json()); // "{서버의 결제 정보를 받는 고객사 endpoint}" POST 요청 수신부 app.post("/payments/complete", async (req, res) => { @@ -32,22 +28,17 @@ app.post("/payments/complete", async (req, res) => { }); ``` - - +## **STEP 02** 결제내역 단건 조회 -### **STEP 02** 결제내역 단건 조회 +수신받은 포트원 **결제고유번호**(imp\_uid)로 [**결제단건조회**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) +**API** 를 호출하여 결제정보 획득 예제 - - -수신받은 포트원 **결제고유번호**(imp\_uid)로 [**결제단건조회**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) **API** 를 호출하여 결제정보 획득 예제 - -```javascript +```ts title="Node.js" app.use(bodyParser.json()); app.post("/payments/complete", async (req, res) => { try { // req의 body에서 imp_uid, merchant_uid 추출 const { imp_uid, merchant_uid } = req.body; - ... // 액세스 토큰(access token) 발급 받기 const getToken = await axios({ url: "https://api.iamport.kr/users/getToken", @@ -55,11 +46,11 @@ app.post("/payments/complete", async (req, res) => { headers: { "Content-Type": "application/json" }, data: { imp_key: "imp_apikey", // REST API 키 - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, }); const { access_token } = getToken.data; // 인증 토큰 - ... // imp_uid로 포트원 서버에서 결제 정보 조회 const getPaymentData = await axios({ // imp_uid 전달 @@ -67,26 +58,20 @@ app.post("/payments/complete", async (req, res) => { // GET method method: "get", // 인증 토큰 Authorization header에 추가 - headers: { "Authorization": access_token } + headers: { Authorization: access_token }, }); const paymentData = getPaymentData.data.response; // 조회한 결제 정보 - ... } catch (e) { res.status(400).send(e); } }); ``` - - - -### **STEP 03** 결제정보 검증 +## **STEP 03** 결제정보 검증 - - 결제된 실 금액과 요청 금액을 비교하여 **결제금액 위변조여부 검증** 및 DB저장 예시 -```javascript +```ts title="Node.js" app.use(bodyParser.json()); app.post("/payments/complete", async (req, res) => { try { @@ -100,17 +85,14 @@ app.post("/payments/complete", async (req, res) => { // 코드 생략 const paymentData = getPaymentData.data.response; // 조회한 결제 정보 - // ... // DB에서 결제되어야 하는 금액 조회 const order = await Orders.findById(paymentData.merchant_uid); const amountToBePaid = order.amount; // 결제 되어야 하는 금액 - // ... // 결제 검증하기 const { amount, status } = paymentData; // 결제금액 일치. 결제 된 금액 === 결제 되어야 하는 금액 if (amount === amountToBePaid) { await Orders.findByIdAndUpdate(merchant_uid, { $set: paymentData }); // DB에 결제 정보 저장 - // ... switch (status) { case "ready": // 가상계좌 발급 // DB에 가상계좌 발급 정보 저장 @@ -138,19 +120,15 @@ app.post("/payments/complete", async (req, res) => { }); ``` - - - 처음 요청한 금액은 **`merchant_uid`** 로 데이터베이스에서 조회하고 실제 결제금액은 **`imp_uid`로 포트원 서버에서 조회하여 두 값을 비교합니다. 검증이 성공하면 결제 정보를 데이터베이스에 저장한 뒤 결제 상태(`status`**)에 따라 알맞은 응답을 반환하고 실패 시 에러 메세지를 출력합니다. -결제결과 DB 처리는 [**웹훅(Webhook)을 연동**](../../../result/webhook)하여 수신되는 데이터를 기준으로 처리하셔야 결제결과 누락없이 안정적인 결과처리를 완료하실 수 있습니다. - + 결제 결과 DB 처리는 [**웹훅(Webhook)을 연동**](../../../result/webhook)하여 수신되는 데이터를 + 기준으로 처리하셔야 결제 결과 누락 없이 안정적으로 결과처리를 완료하실 수 있습니다. -[**Confirm Process**](../../../tip/confirm-process) 기능을 사용하여서도 결제금액 검증을 할 수 있습니다. - + [**Confirm Process**](../../../tip/confirm-process) 기능을 사용하여서도 결제금액 검증을 할 수 있습니다. diff --git a/src/content/docs/ko/auth/guide/5/pre.mdx b/src/content/docs/ko/auth/guide/5/pre.mdx index dfbadb060..000ad4381 100644 --- a/src/content/docs/ko/auth/guide/5/pre.mdx +++ b/src/content/docs/ko/auth/guide/5/pre.mdx @@ -4,31 +4,30 @@ description: 결제 정보 사전 검증 방법을 안내합니다. --- import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; 결제정보 사전 검증은 클라이언트 변조를 원천적으로 차단하기 위한 필수 절차입니다. 결제창을 띄우는 프론트엔드를 보여주기 전에 어떤 주문번호로 얼마만큼의 결제가 이루어져야 하는지를 아래의 API를 사용하여 사전에 등록할 수 있습니다. - + - -```javascript -// 사용자에게 결제 화면을 보여주기 전에 서버 코드에서 -await axios({ - url: "https://api.iamport.kr/payments/prepare", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { - merchant_uid: "...", // 고객사 주문번호 - amount: 420000, // 결제 예정금액 - } -}); -``` - - + + ```ts + // 사용자에게 결제 화면을 보여주기 전에 서버 코드에서 + await axios({ + url: "https://api.iamport.kr/payments/prepare", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { + merchant_uid: "...", // 고객사 주문번호 + amount: 420000, // 결제 예정금액 + }, + }); + ``` + `IMP.request_pay`의 인자로 들어온 금액이 위의 API로 사전 등록해둔 금액과 일치하지 않으면 SDK 수준에서 결제 요청이 차단됩니다. diff --git a/src/content/docs/ko/auth/guide/5/readme.mdx b/src/content/docs/ko/auth/guide/5/readme.mdx index ba0045803..b42af166c 100644 --- a/src/content/docs/ko/auth/guide/5/readme.mdx +++ b/src/content/docs/ko/auth/guide/5/readme.mdx @@ -15,13 +15,20 @@ description: 안정적인 결제서비스를 제공할 수 있도록 결제결 > 클라이언트에서의 스크립트 조작은 원천적으로 막을 수 없는 기술적 특징이 있기 때문에 **결제 전후로 > 서버에서 결제금액의 위변조 여부를 반드시 검증**해야 합니다. -운영중인 서버에서 클라이언트로 부터 전달 받은 결제 결과 데이터를 바탕으로 **결제금액 위변조 여부**를 검증하고 필요시 데이터베이스에 저장합니다. 결제 정보를 검증하는 과정은 크게 아래와 같은 단계로 진행합니다. +운영중인 서버에서 클라이언트로 부터 전달 받은 결제 결과 데이터를 바탕으로 +**결제금액 위변조 여부**를 검증하고 필요시 데이터베이스에 저장합니다. +결제 정보를 검증하는 과정은 크게 아래와 같은 단계로 진행합니다. 1. [백엔드 - 사전 검증](pre) - [**결제금액 사전등록 API**](../../../api/api-1/api-5) 요청 + 2. [프론트엔드 - 결제 요청](../3.) - SDK `IMP.request_pay` 호출 + 3. [백엔드 - 사후 검증](post) - 1. 포트원 결제고유번호(**imp_uid**), 고객사 주문번호(**merchant_uid**)를 프론트엔드로부터 수신 - 2. 결제 상세내역 조회를 위해 포트원 [**결제 단건 조회 API** ](https://api.iamport.kr/#!/payments/getPaymentByImpUid)요청 + 1. 포트원 결제고유번호(**imp\_uid**), 고객사 주문번호(**merchant\_uid**)를 프론트엔드로부터 수신 + + 2. 결제 상세내역 조회를 위해 포트원 + [**결제 단건 조회 API**](https://api.iamport.kr/#!/payments/getPaymentByImpUid) 요청 + 3. 응답받은 내용을 바탕으로 실 결제 금액과 결제요청금액(고객사 자체 데이터베이스)을 비교 diff --git a/src/content/docs/ko/auth/guide/6.mdx b/src/content/docs/ko/auth/guide/6.mdx index 2a0dd5a0e..e6aba142b 100644 --- a/src/content/docs/ko/auth/guide/6.mdx +++ b/src/content/docs/ko/auth/guide/6.mdx @@ -4,19 +4,17 @@ description: 결제가 완료되면 사용자에게 결제 실패 유무 메세 --- import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; **Iframe** 방식으로 진행되는 대부분의 PC환경 결제인 경우 결제응답은 **callback** 함수로 받아볼 수 있으며 고객사 서버에서 결제결과 처리가 최종적으로 완료되면 아래 예제처럼 결제 성공유무에 따른 분기를 통해 결과 메세지 처리를 진행 하실 수 있습니다. - - -```javascript +```ts IMP.request_pay( - {/* 결제 요청 객체 */}, - async requestPayResponse => { + { + /* 결제 요청 객체 */ + }, + async (requestPayResponse) => { const { success, error_msg } = requestPayResponse; if (!success) { alert(`결제에 실패하였습니다. 에러 내용: ${error_msg}`); @@ -26,41 +24,37 @@ IMP.request_pay( const res = await axios({ url: "/payments/complete", method: "post", - headers: { "Content-Type": "application/json" }, + headers: { "Content-Type": "application/json" }, data: { imp_uid: "...", merchant_uid: "..." }, }); switch (res.status) { - case: "vbankIssued": + case "vbankIssued": // 가상계좌 발급 시 로직 break; - case: "success": + case "success": // 결제 성공 시 로직 break; } - } + }, ); ``` - - - 새로운 페이지로 리디렉션되어 결제가 진행되는 대부분의 **모바일환경**에서의 결제는 **m\_redirect\_url** 파라미터로 설정하신 고객사 **EndPoint URL 에서 최종 결제완료 메세지 처리**를 진행해 주시면 됩니다. -**error\_msg, error\_code 정의** - -결제 실패 시 응답으로 내려가는 해당 파라미터는 PG사에서 내려준 오류코드와 메세지를 2차 가공없이 그대로 내려드리고 있습니다. + **error\_msg, error\_code 정의** + 결제 실패 시 응답으로 내려가는 해당 파라미터는 PG사에서 내려준 오류코드와 메세지를 2차 가공없이 그대로 내려드리고 있습니다. -인증결제 과정에서 다음과 같은 사용자 동작이 일어날 경우 [**비정상 접근입니다.**]와 같은 오류가 발생할 수 있습니다. + 인증결제 과정에서 다음과 같은 사용자 동작이 일어날 경우 \[**비정상 접근입니다.**]와 같은 오류가 발생할 수 있습니다. -1. PG사 결제창 페이지 내 새로고침하는 경우 -2. 결제 진행 중 뒤로가기 버튼으로 카드사 ACS창으로 이동한 후 추가로 뒤로가기 버튼 클릭하여 PG사 결제창으로 돌아오는 경우 -3. 카드사 ACS 창 내 새로고침하는 경우 (카드사별로 상이) + 1. PG사 결제창 페이지 내 새로고침하는 경우 + 2. 결제 진행 중 뒤로가기 버튼으로 카드사 ACS창으로 이동한 후 추가로 뒤로가기 버튼 클릭하여 PG사 결제창으로 돌아오는 경우 + 3. 카드사 ACS 창 내 새로고침하는 경우 (카드사별로 상이) -결제페이지에서 뒤로가기 또는 새로고침 등의 동작을 방지하면 위 오류를 줄일 수 있습니다. + 결제페이지에서 뒤로가기 또는 새로고침 등의 동작을 방지하면 위 오류를 줄일 수 있습니다. diff --git a/src/content/docs/ko/auth/guide/def.mdx b/src/content/docs/ko/auth/guide/def.mdx index bbc0c28d1..6f36ceb9f 100644 --- a/src/content/docs/ko/auth/guide/def.mdx +++ b/src/content/docs/ko/auth/guide/def.mdx @@ -6,26 +6,27 @@ description: 국내 인증결제를 소개합니다. import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -인증결제는 신용카드 결제시 PG사로 부터 결제에 대한 인증 결과 수신 이후 해당 인증키로 결제를 요청하는 -결제 방식을 지칭합니다. 국내에서 제일 많이 볼수 있는 결제방식으로 결제 주문페이지에서 결제가 -요청되면 각 PG사의 결제창이 활성화되고 그후 고객이 선택한 카드사에 따른 카드사 전용 결제모듈에서 +인증결제는 신용카드 결제 시 PG사로부터 결제에 대한 인증 결과 수신 이후 해당 인증키로 결제를 요청하는 +결제 방식을 지칭합니다. 국내에서 제일 많이 볼수 있는 결제방식으로 결제 주문 페이지에서 결제가 +요청되면 각 PG사의 결제창이 활성화되고, 그 후 고객이 선택한 카드사에 따른 카드사 전용 결제 모듈에서 인증이 완료되면 해당 인증값을 바탕으로 결제를 요청하는 흐름으로 결제가 진행됩니다.
- 실 결제요청을 위한 통신은 고객사 서버와 PG사 서버간에 직접적으로 이루어지며 해당 결제요청과정에서 카드정보는 포함되어 있지 않습니다. + 실 결제요청을 위한 통신은 고객사 서버와 PG사 서버 간에 직접적으로 이루어지며, + 해당 결제 요청 과정에 카드 정보는 포함되지 않습니다. -## 인증결제는 인증방법에 따라 전통적으로 아래 두가지 형태 구분됩니다. +**인증결제는 인증 방법에 따라 전통적으로 아래 두 가지 형태로 구분됩니다.** -- ISP 결제 : 공개키 기반의 전자인증서를 통해 사전에 등록된 카드정보를 인증하는 방식 +- ISP 결제 : 공개 키 기반의 전자인증서를 통해 사전에 등록된 카드정보를 인증하는 방식 - MPI 결제 : 카드번호, CVC, 안심클릭 비밀번호를 입력하여 카드정보를 인증하는 방식 -최근에는 대부분에 카드사에서 카드사 자체 **간편결제**를 지원하고 있으며 고객은 사전에 카드를 -등록하고 결제시 **결제 비밀번호 6자리를** 이용하여 간편하게 결제를 요청할 수 있는 구조를 가지고 +최근에는 대부분의 카드사에서 카드사 자체 간편결제를 지원하고 있으며, 고객은 사전에 카드를 +등록하고 결제 시 결제 비밀번호를 이용하여 간편하게 결제를 요청할 수 있는 구조를 가지고 있습니다.
-## 포트원을 통해 인증결제를 연동하시면 매우 손쉽게 결제연동을 완료하실 수 있습니다. +**포트원을 통해 인증결제를 연동하시면 매우 손쉽게 결제연동을 완료하실 수 있습니다.** diff --git a/src/content/docs/ko/auth/guide/readme.mdx b/src/content/docs/ko/auth/guide/readme.mdx index 789b01de3..04d0b918f 100644 --- a/src/content/docs/ko/auth/guide/readme.mdx +++ b/src/content/docs/ko/auth/guide/readme.mdx @@ -11,16 +11,16 @@ import Youtube from "~/components/gitbook/Youtube.astro"; - + - + - + - + - + - + - + diff --git a/src/content/docs/ko/console/guide/account.mdx b/src/content/docs/ko/console/guide/account.mdx index f444c7a39..ca92f9dd7 100644 --- a/src/content/docs/ko/console/guide/account.mdx +++ b/src/content/docs/ko/console/guide/account.mdx @@ -9,16 +9,28 @@ import Figure from "~/components/Figure.astro"; ## 포트원 관리자콘솔 계정 체계 -- 고객사 관리자 계정 (Admin): 최초 관리자 콘솔 가입시 회원가입한 계정을 고객사을 대표하는 관리자 계정으로 칭합니다. 해당 계정은 모든 기능을 사용하실 수 있습니다. -- 고객사 매니저 계정 (Manager) : 고객사 관리자 계정이 해당계정을 생성 및 발급하실 수 있습니다. 해당 계정은 상점 및 계정관리 와 연동은 조회만 가능하며 나머지 관리자 콘솔 기능들은 사용하실 수 있습니다. -- 고객사 개발 계정 (Dev): 고객사 관리자 계정이 해당계정을 생성 및 발급하실 수 있습니다. 해당계정은 연동 기능은 사용 가능하며 상점 계정 관리는 조회만 가능합니다. 나머지 기능들은 사용하실 수 없습니다. -- 고객사 조회 계정 (Read Only) : 고객사 관리자 계정이 해당계정을 생성 및 발급하실 수 있습니다. 해당 계정은 모든 기능의 조회만 가능합니다. -- 하위 상점 매니저 계정(Manager) : 고객사 관리자 계정이나 동일한 하위상점의 매니저 계정이 해당계정을 생성 및 발급하실 수 있습니다. 해당 계정은 소속된 하위 상점의 모든 기능을 사용하실 수 있으며 고객사 관리자 계정 관리 및 고객사의 사업자 정보를 조회할 수 있습니다. -- 하위 상점 조회 계정(Read Only) : 고객사 관리자 계정이나 동일한 하위상점의 매니저 계정이 해당계정을 생성 및 발급하실 수 있습니다. 해당 계정은 소속된 하위 상점의 모든 기능을 조회 만 하실 수 있습니다. +- 고객사 관리자 계정 (Admin): 최초 관리자 콘솔 가입시 회원가입한 계정을 고객사를 대표하는 + 관리자 계정으로 칭합니다. 해당 계정은 모든 기능을 사용하실 수 있습니다. + +- 고객사 매니저 계정 (Manager) : 고객사 관리자 계정이 해당 계정을 생성 및 발급하실 수 있습니다. + 해당 계정은 상점 및 계정관리와 연동 정보 조회만 가능하며 나머지 관리자 콘솔 기능들은 사용하실 수 없습니다. + +- 고객사 개발 계정 (Dev): 고객사 관리자 계정이 해당 계정을 생성 및 발급하실 수 있습니다. + 해당 계정은 연동 기능은 사용 가능하며 상점 계정 관리는 조회만 가능합니다. 나머지 기능들은 사용하실 수 없습니다. + +- 고객사 조회 계정 (Read Only) : 고객사 관리자 계정이 해당 계정을 생성 및 발급하실 수 있습니다. + 해당 계정은 모든 기능의 조회만 가능합니다. + +- 하위 상점 매니저 계정(Manager) : 고객사 관리자 계정이나 동일한 하위상점의 매니저 계정이 + 해당 계정을 생성 및 발급하실 수 있습니다. 해당 계정은 소속된 하위 상점의 모든 기능을 사용하실 수 있으며 + 고객사 관리자 계정 관리 및 고객사의 사업자 정보를 조회할 수 있습니다. + +- 하위 상점 조회 계정(Read Only) : 고객사 관리자 계정이나 동일한 하위상점의 매니저 계정이 + 해당 계정을 생성 및 발급하실 수 있습니다. 해당 계정은 소속된 하위 상점의 모든 기능에 대해 조회만 가능합니다. ## 관리자 계정 관리 -_파란색 부분은 사용가능한 버튼 표기입니다_ +_파란색 부분은 사용 가능한 버튼 표기입니다_
@@ -31,8 +43,11 @@ _파란색 부분은 사용가능한 버튼 표기입니다_ ## 고객사, 하위 상점 체계 -- 고객사: 포트원에서 고객사이란 고유한 사업자등록번호를 가지고있는 사업체로 정의합니다. 유일한 예외는 타 고객사들을 위해 결제를 개발해주시는 에이전시 뿐 입니다. -- 하위상점: 고객사는 서비스 및 상품군 별, 지역별, 등등 사업을 나누어 관리자 콘솔로 관리하고 결제를 연동할 수 있습니다. 해당사항으로 나뉘는 단위를 하위상점으로 정의합니다. +- 고객사: 포트원에서 고객사이란 고유한 사업자등록번호를 가지고있는 사업체로 정의합니다. + 유일한 예외는 타 고객사들을 위해 결제를 개발해주시는 에이전시 뿐 입니다. + +- 하위상점: 고객사는 서비스 및 상품군 별, 지역별, 등등 사업을 나누어 관리자 콘솔로 관리하고 + 결제를 연동할 수 있습니다. 해당사항으로 나뉘는 단위를 하위상점으로 정의합니다. - 결제 연동: 고객사가 신청한 결제수단 및 대행사를 특정 하위상점에 관리자 콘솔에서 할당할 수 있습니다. - 하위상점 계정: 하위상점에 소속된 계정은 하위상점관련된 기능 및 결제건만 확인 하실 수 있습니다. @@ -40,10 +55,7 @@ _파란색 부분은 사용가능한 버튼 표기입니다_ ### 고객사 관리자 계정 시점 -
+
- 고객사 관리자 계정은 하위상점을 추가, 수정 할 수 있으며 해당 하위상점의 소속된 계정을 생성, 수정, 삭제 하실 수 있으십니다. @@ -64,22 +76,13 @@ _파란색 부분은 사용가능한 버튼 표기입니다_ ### 그 외 계정 시점 -
+
-
+
-
+
-## 하위상점별 웹훅 설정 +## 하위상점별 웹훅 설정 하위상점 수정에서 결제알림 동일 설정 옵션을 해제하면 하위상점별 웹훅 설정을 할 수 있습니다. @@ -90,6 +93,7 @@ _파란색 부분은 사용가능한 버튼 표기입니다_
+

하단의 결제알림 동일설정 체크박스를 해제해주세요

@@ -97,6 +101,7 @@ _파란색 부분은 사용가능한 버튼 표기입니다_
+

웹훅 연동을 원하시는 하위상점을 선택한 뒤 결제알림 관리 탭에서 웹훅을 diff --git a/src/content/docs/ko/console/guide/connect.mdx b/src/content/docs/ko/console/guide/connect.mdx index ecdff7e4e..a73b671ae 100644 --- a/src/content/docs/ko/console/guide/connect.mdx +++ b/src/content/docs/ko/console/guide/connect.mdx @@ -66,9 +66,9 @@ description: '' - 추가 설정 관리 화면에서는 `화이트리스트 설정` 과 `내 식별코드, API Keys` 를 확인하실 수 있습니다. - 화이트 리스트 : 포트원 관리자의 IP보안설정에 입력하는 값은 IP가 아닌 CIDR 블록방식 으로 입력하셔야 - 합니다.예를 들어 입력 하시고자 하는 IP가1.1.1. 이라고 가정 했을때 해당 IP 하나만 허용하고 - 싶으시다면  [1.1.1.1/3](http://1.1.1.1/3) 로 작성 하셔야 하고 만약1.1.1. \~1.1.1.25 까지의 - IP대역을 모두 허용하고 싶으시다면 [1.1.1.0/2](http://1.1.1.0/2) 형태로 작성하시면 됩니다. 보다 + 합니다. 예를 들어 입력 하시고자 하는 IP가 `1.1.1.1` 이라고 가정 했을때 해당 IP 하나만 허용하고 + 싶으시다면 `1.1.1.1/32`로 작성 하셔야 하고 만약 `1.1.1.1` \~ `1.1.1.255`까지의 + IP대역을 모두 허용하고 싶으시다면 `1.1.1.0/24` 형태로 작성하시면 됩니다. 보다 자세한 표기법은 [RFC4632](https://tools.ietf.org/html/rfc4632) 를 참고부탁드립니다. ![]() diff --git a/src/content/docs/ko/console/guide/list.mdx b/src/content/docs/ko/console/guide/list.mdx index 1648e573e..302fb1eb3 100644 --- a/src/content/docs/ko/console/guide/list.mdx +++ b/src/content/docs/ko/console/guide/list.mdx @@ -19,7 +19,7 @@ description: 결제가 이루어진 거래내역을 조회할 수 있는 메뉴 - 검색된 내역의 총 거래액 - 총 환불액의 계산을 통하여 통화별로 확인 할 수 있는 총 매출액 기능 - 기본 결제내역 값들과 추가적으로 고객정보, 결제 대행사 정보, 카드결제 정보, 계좌결제 정보 를 선택하여 내역을 다운받을 수 있는 엑셀 다운로드 기능 -위 기능들로 구성되어 있는 화면입니다.\\ +위 기능들로 구성되어 있는 화면입니다. ## 캘린더 필터 @@ -42,6 +42,7 @@ description: 결제가 이루어진 거래내역을 조회할 수 있는 메뉴 - 결제내역의 특정값을 지정하시거나 모든 결제관련 값에 대해서 직접 입력하신 값을 검색하는 기능입니다. - 통합검색 필터는 + - 포트원 거래번호 - 고객사 거래번호 - 카드사 승인번호 @@ -116,6 +117,7 @@ description: 결제가 이루어진 거래내역을 조회할 수 있는 메뉴 - 고객정보는 고객사가 sdk 로 전달하시는 결제하는 고객의 이름, 전화번호, 이메일, 주소 입니다. - 결제 정보는 + - 결제상태 - 포트원 거래번호 diff --git a/src/content/docs/ko/console/guide/readme.mdx b/src/content/docs/ko/console/guide/readme.mdx index ebc407973..81e2b710a 100644 --- a/src/content/docs/ko/console/guide/readme.mdx +++ b/src/content/docs/ko/console/guide/readme.mdx @@ -7,11 +7,16 @@ import ContentRef from "~/components/gitbook/ContentRef.astro"; 포트원 관리자콘솔은 포트원 계정 생성 및 하위상점 관리, 결제수단 및 PG신청, 설정 그리고 결제내역을 통합하여 관리할 수 있는 페이지입니다. -포트원 관리자콘솔 주소: https://admin.portone.io +포트원 관리자콘솔 주소: [https://admin.portone.io](https://admin.portone.io) + + + + + diff --git a/src/content/docs/ko/console/pg.mdx b/src/content/docs/ko/console/pg.mdx index fd6484dd8..31ed5dce9 100644 --- a/src/content/docs/ko/console/pg.mdx +++ b/src/content/docs/ko/console/pg.mdx @@ -4,91 +4,88 @@ description: 복수 PG를 사용하는 경우 설정방법을 확인할 수 있 --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; import image1 from "./_assets/multi-pg-guide-1.png"; -import image2 from "./_assets/multi-pg-guide-2.png"; -### 이 문서는 포트원 관리자 콘솔에서 복수의 PG사를 설정하여 원하는 결제 수단으로 결제창을 호출하는 방법을 설명합니다. +이 문서는 포트원 관리자 콘솔에서 복수의 PG사를 설정하여 원하는 결제 수단으로 결제창을 호출하는 방법을 설명합니다. -### PG 설정하기 +## PG 설정하기 추가 설정이 필요한 PG설정정보를 아래와 같이 설정해 주세요. [포트원 관리자 콘솔](https://admin.portone.io/) > 결제 연동 > 테스트/실 연동 > 실 연동 또는 테스트 -연동 선택 > PG사 / PG 모듈 선택 > [+추가] 클릭 +연동 선택 > PG사 / PG 모듈 선택 > \[+추가] 클릭

-## 특정 PG사의 결제창 열기 +## 특정 PG사의 결제창 열기 결제창을 호출하기 위한 [**JavaScript SDK**](../sdk/javascript-sdk-old/readme) `IMP.request_pay`를 호출할 때 `param.pg` 속성에 미리 등록한 PG사를 지정하여 해당 PG사의 결제창을 호출할 수 있습니다. `pg` 속성에는 다음과 같은 형태로 [PG 값](https://docs.iamport.kr/sdk/javascript-sdk?lang=ko#request_pay-pg)을 지정할 수 있습니다. -- **\{ PG사 코드값 \}** -- **\{ PG사 코드값 \}.\{ PG사 상점아이디 \}** +- **\{ PG사 코드값 }** +- **\{ PG사 코드값 }.\{ PG사 상점아이디 }** 만약 포트원 관리자 콘솔 PG사 등록 현황이 아래와 같이 **3개의 PG설정**을 등록했다고 가정해 보면, -|PG사 |상점아이디 (예시)|용도 | +| PG사 |상점아이디 (예시)| 용도 | |:---------------------:|:---------------:|:---------------:| -|**(신) 나이스페이먼츠**|MID-a |**인증 결제용** | -|**(신) 나이스페이먼츠**|MID-b |**비인증 결제용**| -|카카오페이 |MID-c |인증 결제용 | +|**(신) 나이스페이먼츠**| MID-a | **인증 결제용** | +|**(신) 나이스페이먼츠**| MID-b |**비인증 결제용**| +| 카카오페이 | MID-c | 인증 결제용 | -위에서 등록한 PG 설정 중 **\{ PG사 코드값 \}** 으로만 구분할 수 있는 PG사는 **카카오페이**입니다. +위에서 등록한 PG 설정 중 **\{ PG사 코드값 }** 으로만 구분할 수 있는 PG사는 **카카오페이**입니다. 다음과 같이 `pg` 속성에 `kakaopay`를 지정하면 등록한 카카오페이 설정으로 결제창이 호출됩니다 - -```javascript -IMP.request_pay({ - pg: "kakaopay", // 카카오페이 결제창 호출 - amount: 1000, - name: "테스트 주문", - buyer_name: "구매자", - buyer_email: "buyer@iamport.kr", -}); -``` - + + ```ts + IMP.request_pay({ + pg: "kakaopay", // 카카오페이 결제창 호출 + amount: 1000, + name: "테스트 주문", + buyer_name: "구매자", + buyer_email: "buyer@iamport.kr", + }); + ``` + -위에서 등록한 PG 설정 중 **(신) 나이스페이먼츠 (인증 결제용)** 와 **(신) 나이스페이먼츠 (비인증 결제용)** 의 경우 **PG사 코드값이 동일**하기 때문에 `pg` 속성을 코드값과 상점아이디를 조합한 값 **\{ PG사 코드값 \}.\{ PG사 상점아이디 \}** 으로 설정해서 구분해야 합니다. +위에서 등록한 PG 설정 중 **(신) 나이스페이먼츠 (인증 결제용)** 와 **(신) 나이스페이먼츠 (비인증 결제용)** 의 경우 **PG사 코드값이 동일**하기 때문에 `pg` 속성을 코드값과 상점아이디를 조합한 값 **\{ PG사 코드값 }.\{ PG사 상점아이디 }** 으로 설정해서 구분해야 합니다. - -```javascript -IMP.request_pay({ - pg: "nice_v2.MID-a", // (신) 나이스페이먼츠 인증 결제용 호출 (상점아이디 MID-a 적용) - amount: 1000, - name: "테스트 주문", - buyer_name: "구매자", - buyer_email: "buyer@iamport.kr" - }); -``` - - - - -```javascript -IMP.request_pay({ - pg: "nice_v2.MID-b", // (신) 나이스페이먼츠 인증 결제용 호출 (상점아이디 MID-b 적용) - amount: 1000, - name: "테스트 주문", - buyer_name: "구매자", - buyer_email: "buyer@iamport.kr" -}); -``` - - + + ```ts + IMP.request_pay({ + pg: "nice_v2.MID-a", // (신) 나이스페이먼츠 인증 결제용 호출 (상점아이디 MID-a 적용) + amount: 1000, + name: "테스트 주문", + buyer_name: "구매자", + buyer_email: "buyer@iamport.kr", + }); + ``` + + + + ```ts + IMP.request_pay({ + pg: "nice_v2.MID-b", // (신) 나이스페이먼츠 인증 결제용 호출 (상점아이디 MID-b 적용) + amount: 1000, + name: "테스트 주문", + buyer_name: "구매자", + buyer_email: "buyer@iamport.kr", + }); + ``` + -**pg 속성 매칭 우선순위** + **pg 속성 매칭 우선순위** -관리자 콘솔에서 PG 설정을 저장한 순서(오래된순)대로 pg 속성의 조건과 일치하는 설정을 찾습니다. + 관리자 콘솔에서 PG 설정을 저장한 순서(오래된순)대로 pg 속성의 조건과 일치하는 설정을 찾습니다. diff --git a/src/content/docs/ko/etc/all/0.mdx b/src/content/docs/ko/etc/all/0.mdx index 63975cfa1..7d5f01655 100644 --- a/src/content/docs/ko/etc/all/0.mdx +++ b/src/content/docs/ko/etc/all/0.mdx @@ -3,19 +3,14 @@ title: 통합인증 준비하기 description: 통합인증 연동을 시작하기 위한 준비작업을 소개합니다. --- -import Tab from "~/components/gitbook/tabs/Tab.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Hint from "~/components/Hint.astro"; ## 통합인증을 연동할 페이지에 포트원 라이브러리를 추가합니다. -신용카드 본인인증 기능은 **포트원 JavaScript v1.1.8**부터 지원합니다. - + 신용카드 본인인증 기능은 **포트원 JavaScript v1.1.8**부터 지원합니다. - - ```html title="client-side" @@ -23,30 +18,12 @@ import Hint from "~/components/Hint.astro"; ``` - - - -**jQuery 1.0 이상이 설치**되어 있어야 합니다. - + **jQuery 1.0 이상이 설치**되어 있어야 합니다. -### 본인인증 페이지에 [`고객사 식별코드`](../../ready/readme#4-포트원-연동정보-확인하기)를 이용하여 `IMP` 객체를 초기화합니다. - - - -```javascript title="client-side" -var IMP = window.IMP; // 생략 가능 -IMP.init("{고객사 식별코드}"); // 예: imp00000000 -``` +## 본인인증 페이지에 [`고객사 식별코드`](../../ready/readme#4-포트원-연동정보-확인하기)를 이용하여 `IMP` 객체를 초기화합니다. - - - -```javascript title="Client-side" -var IMP = window.IMP; // 생략 가능 +```ts title="client-side" IMP.init("{고객사 식별코드}"); // 예: imp00000000 ``` - - - diff --git a/src/content/docs/ko/etc/all/1.mdx b/src/content/docs/ko/etc/all/1.mdx index 72eb6fb14..7f1606d6b 100644 --- a/src/content/docs/ko/etc/all/1.mdx +++ b/src/content/docs/ko/etc/all/1.mdx @@ -3,10 +3,7 @@ title: 통합인증 요청하기 description: 통합인증 페이지를 호출하는 방법을 확인합니다. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; - -### 통합인증은 아래 두가지 방법으로 호출할 수 있습니다. +통합인증은 아래 두 가지 방법으로 호출할 수 있습니다. > **팝업**(**Default**) 방식 > @@ -23,27 +20,23 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; 아래는 JavaScript SDK [**IMP.certification**](../../sdk/javascript-sdk/cft) 함수를 이용하여 통합인증 본인인증창을 호출하는 예제입니다. - - -```javascript title="client-side" +```ts title="client-side" // IMP.certification(param, callback) 호출 - IMP.certification({ // param - pg:'inicis_unified.{CPID}',//본인인증 설정이 2개이상 되어 있는 경우 필수 +IMP.certification( + { + // param + pg: "inicis_unified.{CPID}", //본인인증 설정이 2개이상 되어 있는 경우 필수 merchant_uid: "ORD20180131-0000011", // 주문 번호 - m_redirect_url : "{리디렉션 될 URL}", // 모바일환경에서 popup:false(기본값) 인 경우 필수, 예: https://www.myservice.com/payments/complete/mobile - popup : false // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 - }, function (rsp) { // callback + m_redirect_url: "{리디렉션 될 URL}", // 모바일환경에서 popup:false(기본값) 인 경우 필수, 예: https://www.myservice.com/payments/complete/mobile + popup: false, // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 + }, + function (rsp) { + // callback if (rsp.success) { - ..., - // 인증 성공 시 로직, - ... + // 인증 성공 시 로직 } else { - ..., - // 인증 실패 시 로직, - ... + // 인증 실패 시 로직 } - }); + }, +); ``` - - - diff --git a/src/content/docs/ko/etc/all/2.mdx b/src/content/docs/ko/etc/all/2.mdx index d4b2c9ba9..bfb3889c4 100644 --- a/src/content/docs/ko/etc/all/2.mdx +++ b/src/content/docs/ko/etc/all/2.mdx @@ -3,62 +3,68 @@ title: 인증 완료정보 전달하기 description: 통합인증 이후 획득된 정보를 처리하는 방법을 안내합니다. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; 인증 프로세스가 완료되면 반환되는 응답 객체(**`rsp`**)의 인증 성공 여부에 따라 처리 로직을 **`callback`** 함수에 작성합니다. 요청이 성공했을 경우에 **인증번호(`imp_uid`)를 서버에 전달**하는 로직을 다음 예제를 참고하여 작성합니다. 인증 성공시 [**반환되는 값**](../../sdk/javascript-sdk/cft-rt)을 확인하세요 -### 1. callback Data 전달 예제 +## 1. callback Data 전달 예제 - -```javascript title="client-side" -IMP.certification({ - /* ...중략... */ - }, function (rsp) { // callback - if (rsp.success) { // 인증 성공 시 - // jQuery로 HTTP 요청 - jQuery.ajax({ - url: "{서버의 인증 정보를 받는 endpoint}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg); - } - }); -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...중략... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // 인증 성공 시 + // jQuery로 HTTP 요청 + jQuery.ajax({ + url: "{서버의 인증 정보를 받는 endpoint}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg); + } + }, + ); + ``` + - -```javascript title="client-side" -IMP.certification({ - /* ...중략... */ - }, rsp => { // callback - if (rsp.success) { // 인증 성공 시 - // axios로 HTTP 요청 - axios({ - url: "{서버의 인증 정보를 받는 endpoint}", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert(\`인증에 실패하였습니다. 에러 내용: \${rsp.error_msg}\`); - } - }); - -```` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...중략... */ + }, + (rsp) => { + // callback + if (rsp.success) { + // 인증 성공 시 axios로 HTTP 요청 + axios({ + url: "{서버의 인증 정보를 받는 endpoint}", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert(`인증에 실패하였습니다. 에러 내용: ${rsp.error_msg}`); + } + }, + ); +``` + ### 2. 리디렉션 전달 예제 -`IMP.`**`certification`** 호출 시 설정한 `param.`**`m_redirect_url`**로 인증 정보와 함께 다음과 같이 리디렉션됩니다. +`IMP.`**`certification`** 호출 시 설정한 **`m_redirect_url`** 로 인증 정보와 함께 다음과 같이 리디렉션됩니다. -```uri title="Query String" +```http title="Query String" GET {m_redirect_url}?imp_uid={}&merchant_uid={본인인증 건의 merchant_uid}&success={true 또는 false} -```` +``` diff --git a/src/content/docs/ko/etc/all/3.mdx b/src/content/docs/ko/etc/all/3.mdx index fd4726c3f..28760a345 100644 --- a/src/content/docs/ko/etc/all/3.mdx +++ b/src/content/docs/ko/etc/all/3.mdx @@ -3,52 +3,48 @@ title: 인증정보 조회 및 활용하기 description: 인증정보를 획득하고 활용하는 방법을 안내합니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; 통합인증 완료이후 획득한 `imp_uid`를 이용하여 고객 인증정보를 조회할 수 있습니다. -### **STEP 01.** 인증정보(imp_uid) 서버단에서 획득하기 +## **STEP 01.** 인증정보(imp\_uid) 서버단에서 획득하기 아래는 본인인증 앞단에서 넘어온 값을 서버단에서 수신받은 예제 입니다. - - -```javascript title="server-side" -app.use(bodyParser.json()); - -// "/certifications"에 대한 POST 요청을 처리하는 controller -app.post("/certifications", async (request, response) => { - // request의 body에서 imp_uid 추출 - const { imp_uid } = request.body; -}); -``` - - - - - -```javascript title="server-side" -app.use(bodyParser.json()); + + ```ts title="server-side" + app.use(bodyParser.json()); + + // "/certifications"에 대한 POST 요청을 처리하는 controller + app.post("/certifications", async (request, response) => { + // request의 body에서 imp_uid 추출 + const { imp_uid } = request.body; + }); + ``` + -// "/certifications/redirect"에 대한 GET 요청을 처리하는 controller -app.get("/certifications/redirect", async (request, response) => { - // request의 query에서 imp_uid 추출 - const { imp_uid } = request.query; -}); -``` + + ```ts title="server-side" + app.use(bodyParser.json()); - + // "/certifications/redirect"에 대한 GET 요청을 처리하는 controller + app.get("/certifications/redirect", async (request, response) => { + // request의 query에서 imp_uid 추출 + const { imp_uid } = request.query; + }); + ``` + -### **STEP 02.** 인증 정보 조회하기 +## **STEP 02.** 인증 정보 조회하기 포트원 서버에서 인증 정보를 조회하기 위해서 먼저 [**REST API access token**](../../api/rest-api-access-token)을 발급받습니다. 발급받은 액세스 토큰(`access_token`)과 인증번호(`imp_uid`)로 **본인인증 결과조회 REST API** 를 호출하여 인증 정보를 조회하는 예제입니다. -```javascript title="server-side(Node.js)" +```ts title="server-side(Node.js)" app.use(bodyParser.json()); // "/certifications"에 대한 POST 요청을 처리하는 controller @@ -90,7 +86,7 @@ app.post("/certifications", async (request, response) => { }); ``` -### **STEP 03.** 인증 정보 활용하기 +## **STEP 03.** 인증 정보 활용하기 조회한 인증 정보에서 다음의 고객 정보를 추출하는 서비스 코드 예제입니다.\ 필요 시, 예제와 같이 고객 정보를 사용하여 연령 제한을 검사할 수 있습니다. @@ -101,7 +97,7 @@ app.post("/certifications", async (request, response) => { - `unique_key`: CI 값과 동일. 온라인 주민번호와 같은 개인고유식별키 - `phone :`휴대폰 번호 -```javascript title="Node.js" +```ts title="Node.js" // "/certifications"에 대한 POST 요청을 처리하는 controller app.post("/certifications", async (request, response) => { const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 @@ -125,11 +121,10 @@ app.post("/certifications", async (request, response) => { ``` -**\** - -- 이니시스 통합인증서비스는 **내국인/외국인 여부 등은 따로 제공되지 않습니다**. -- 이니시스 통합인증서비스는 **성별(gender) 정보는 리턴되지 않습니다**. (2024년 1분기 지원 예정) -- 이니시스 통합인증서비스는 **DI 정보는 제공되지 않습니다**. -- 이니시스 통합인증서비스는 **카카오 인증의 경우, CI값 제공 가능하나 KG이니시스와 계약시 별도 서류 작성 절차가 필요합니다**. + **\** + - 이니시스 통합인증서비스는 **내국인/외국인 여부 등은 따로 제공되지 않습니다**. + - 이니시스 통합인증서비스는 **성별(gender) 정보는 리턴되지 않습니다**. (2024년 1분기 지원 예정) + - 이니시스 통합인증서비스는 **DI 정보는 제공되지 않습니다**. + - 이니시스 통합인증서비스는 **카카오 인증의 경우, CI값 제공 가능하나 KG이니시스와 계약시 별도 서류 작성 절차가 필요합니다**. diff --git a/src/content/docs/ko/etc/all/readme.mdx b/src/content/docs/ko/etc/all/readme.mdx index 9d1930e4b..963924378 100644 --- a/src/content/docs/ko/etc/all/readme.mdx +++ b/src/content/docs/ko/etc/all/readme.mdx @@ -3,7 +3,7 @@ title: 통합인증 연동하기 description: 통합인증 기능을 구현하는 방법을 설명합니다. --- -### 통합인증 서비스란 ? +## 통합인증 서비스란 ? 카카오톡 인증서, 네이버 인증서 등의 민간 인증서를 통한 인증 절차를 거쳐 본인 여부와 입력한 정보의 정확성을 확인하여 주는 서비스입니다. 통합인증은 **KG이니시스**를 통해 제공되며 민간 인증서를 diff --git a/src/content/docs/ko/etc/budget.mdx b/src/content/docs/ko/etc/budget.mdx index d748c6d53..e7b7feef9 100644 --- a/src/content/docs/ko/etc/budget.mdx +++ b/src/content/docs/ko/etc/budget.mdx @@ -3,4 +3,4 @@ title: 버짓핸들러 연동하기 description: 카드사 프로모션 서비스를 진행하기 위한 가이드 입니다. --- -### [**버짓핸들러 연동가이드**](https://portone.gitbook.io/promotion) **확인** +**[버짓핸들러 연동가이드](https://portone.gitbook.io/promotion) 확인** diff --git a/src/content/docs/ko/etc/credit-auth/1.mdx b/src/content/docs/ko/etc/credit-auth/1.mdx index 2f9dfe792..06a92d6e2 100644 --- a/src/content/docs/ko/etc/credit-auth/1.mdx +++ b/src/content/docs/ko/etc/credit-auth/1.mdx @@ -3,19 +3,14 @@ title: 1. 본인인증 준비하기 description: 신용카드 본인인증을 시작하기 위한 안내입니다. --- -import Tab from "~/components/gitbook/tabs/Tab.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Hint from "~/components/Hint.astro"; ## 본인인증을 연동할 페이지에 포트원 라이브러리를 추가합니다. -신용카드 본인인증 기능은 **포트원 JavaScript v1.1.7**부터 지원합니다. - + 신용카드 본인인증 기능은 **포트원 JavaScript v1.1.7**부터 지원합니다. - - ```html title="client-side" @@ -23,30 +18,12 @@ import Hint from "~/components/Hint.astro"; ``` - - - -**jQuery 1.0 이상이 설치**되어 있어야 합니다. - + **jQuery 1.0 이상이 설치**되어 있어야 합니다. ### 본인인증 페이지에 [`고객사 식별코드`](../../ready/readme#4-포트원-연동정보-확인하기)를 이용하여 `IMP` 객체를 초기화합니다. - - -```javascript title="client-side" -var IMP = window.IMP; // 생략 가능 +```ts title="client-side" IMP.init("{고객사 식별코드}"); // 예: imp00000000 ``` - - - - -```javascript title="client-side" -const IMP = window.IMP; // 생략 가능 -IMP.init({ 고객사_식별코드 }); // 예: "imp00000000" -``` - - - diff --git a/src/content/docs/ko/etc/credit-auth/2.mdx b/src/content/docs/ko/etc/credit-auth/2.mdx index 9e08c6d07..200a7c909 100644 --- a/src/content/docs/ko/etc/credit-auth/2.mdx +++ b/src/content/docs/ko/etc/credit-auth/2.mdx @@ -3,10 +3,10 @@ title: 2. 본인인증 요청하기 description: 신용카드 본인인증 창을 호출하는 방법을 안내합니다. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 신용카드 본인인증은 아래 두가지 방법으로 호출할 수 있습니다. +신용카드 본인인증은 아래 두가지 방법으로 호출할 수 있습니다. > **팝업**(Default) 방식 > @@ -24,48 +24,48 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; 본인인증창을 호출하는 예제입니다. - -```javascript title="client-side" -// IMP.certification(param, callback) 호출 - IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // 주문 번호 - // 모바일환경에서 popup:false(기본값) 인 경우 필수 - m_redirect_url : "{리디렉션 될 URL}", - popup : false // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 - }, function (rsp) { // callback - if (rsp.success) { - ..., - // 인증 성공 시 로직, - ... - } else { - ..., - // 인증 실패 시 로직, - ... - } - }); -``` - - - - -```javascript title="client-side" -// IMP.certification(param, callback) 호출 - IMP.certification({ // param - merchant_uid: "ORD20180131-0000011", // 주문 번호 - m_redirect_url : "{리디렉션 될 URL}", // 모바일환경에서 popup:false(기본값) 인 경우 필수 - popup : false // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 - }, rsp => { // callback - if (rsp.success) { - ..., - // 인증 성공 시 로직, - ... - } else { - ..., - // 인증 실패 시 로직, - ... - } - }); -``` + + ```ts title="client-side" + // IMP.certification(param, callback) 호출 + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // 주문 번호 + // 모바일환경에서 popup:false(기본값) 인 경우 필수 + m_redirect_url: "{리디렉션 될 URL}", + popup: false, // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 + }, + function (rsp) { + // callback + if (rsp.success) { + // 인증 성공 시 로직 + } else { + // 인증 실패 시 로직 + } + }, + ); + ``` + - + + ```ts title="client-side" + // IMP.certification(param, callback) 호출 + IMP.certification( + { + // param + merchant_uid: "ORD20180131-0000011", // 주문 번호 + m_redirect_url: "{리디렉션 될 URL}", // 모바일환경에서 popup:false(기본값) 인 경우 필수 + popup: false, // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 + }, + (rsp) => { + // callback + if (rsp.success) { + // 인증 성공 시 로직 + } else { + // 인증 실패 시 로직 + } + }, + ); + ``` + diff --git a/src/content/docs/ko/etc/credit-auth/3.mdx b/src/content/docs/ko/etc/credit-auth/3.mdx index 638cb4f86..16ecce1af 100644 --- a/src/content/docs/ko/etc/credit-auth/3.mdx +++ b/src/content/docs/ko/etc/credit-auth/3.mdx @@ -3,62 +3,68 @@ title: 3. 인증 완료정보 전달하기 description: 신용카드 본인인증 이후 획득된 정보를 처리하는 방법을 안내합니다. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; 인증 프로세스가 완료되면 반환되는 응답 객체(**`rsp`**)의 인증 성공 여부에 따라 처리 로직을 **`callback`** 함수에 작성합니다. 요청이 성공했을 경우에 **인증번호(`imp_uid`)를 서버에 전달**하는 로직을 다음 예제를 참고하여 작성합니다. 인증 성공시 [**반환되는 값**](../../sdk/javascript-sdk/cft-rt)을 확인하세요 -### 1. callback Data 전달 예제 +## 1. callback Data 전달 예제 - -```javascript title="client-side" -IMP.certification({ - /* ...중략... */ - }, function (rsp) { // callback - if (rsp.success) { // 인증 성공 시 - // jQuery로 HTTP 요청 - jQuery.ajax({ - url: "{서버의 인증 정보를 받는 endpoint}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg); - } - }); -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...중략... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // 인증 성공 시 + // jQuery로 HTTP 요청 + jQuery.ajax({ + url: "{서버의 인증 정보를 받는 endpoint}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg); + } + }, + ); + ``` + - -```javascript title="client-side" -IMP.certification({ - /* ...중략... */ - }, rsp => { // callback - if (rsp.success) { // 인증 성공 시 - // axios로 HTTP 요청 - axios({ - url: "{서버의 인증 정보를 받는 endpoint}", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert(\`인증에 실패하였습니다. 에러 내용: \${rsp.error_msg}\`); - } - }); - -```` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...중략... */ + }, + (rsp) => { + // callback + if (rsp.success) { + // 인증 성공 시 axios로 HTTP 요청 + axios({ + url: "{서버의 인증 정보를 받는 endpoint}", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert(`인증에 실패하였습니다. 에러 내용: ${rsp.error_msg}`); + } + }, + ); + ``` + -### 2. 리디렉션 전달 예제 +## 2. 리디렉션 전달 예제 -`IMP.`**`certification`** 호출 시 설정한 `param.`**`m_redirect_url`**로 인증 정보와 함께 다음과 같이 리디렉션됩니다. +`IMP.`**`certification`** 호출 시 설정한 **`m_redirect_url`** 로 인증 정보와 함께 다음과 같이 리디렉션됩니다. -```uri title="Query String" +```http title="Query String" GET {m_redirect_url}?imp_uid={}&merchant_uid={본인인증 건의 merchant_uid}&success={true 또는 false} -```` +``` diff --git a/src/content/docs/ko/etc/credit-auth/4.mdx b/src/content/docs/ko/etc/credit-auth/4.mdx index ba33fe5fe..e7a4cf15d 100644 --- a/src/content/docs/ko/etc/credit-auth/4.mdx +++ b/src/content/docs/ko/etc/credit-auth/4.mdx @@ -3,86 +3,81 @@ title: 4. 인증정보 조회 및 활용하기 description: 인증정보를 획득하고 활용하는 방법을 안내합니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -본인인증 완료이후 획득한 **`imp_uid`**를 이용하여 고객 인증정보를 조회할 수 있습니다. +본인인증 완료이후 획득한 \*\*`imp_uid`\*\*를 이용하여 고객 인증정보를 조회할 수 있습니다. -### **STEP 01.** 인증정보(imp_uid) 서버단에서 획득하기 +## **STEP 01.** 인증정보(imp\_uid) 서버단에서 획득하기 아래는 본인인증 앞단에서 넘어온 값을 서버단에서 수신받은 예제 입니다. - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // "/certifications"에 대한 POST 요청을 처리하는 controller - app.post("/certifications", async (request, response) => { - // request의 body에서 imp_uid 추출 - const { imp_uid } = request.body; -}) -``` - - - - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // "/certifications/redirect"에 대한 GET 요청을 처리하는 controller - app.get("/certifications/redirect", async (request, response) => { - const { imp_uid } = request.query; // request의 query에서 imp_uid 추출 -}) -``` - - + + ```ts title="server-side" + app.use(bodyParser.json()); + // "/certifications"에 대한 POST 요청을 처리하는 controller + app.post("/certifications", async (request, response) => { + // request의 body에서 imp_uid 추출 + const { imp_uid } = request.body; + }); + ``` + + + + ```ts title="server-side" + app.use(bodyParser.json()); + // "/certifications/redirect"에 대한 GET 요청을 처리하는 controller + app.get("/certifications/redirect", async (request, response) => { + const { imp_uid } = request.query; // request의 query에서 imp_uid 추출 + }); + ``` + -### **STEP 02.** 인증 정보 조회하기 +## **STEP 02.** 인증 정보 조회하기 포트원 서버에서 인증 정보를 조회하기 위해서 먼저 [**REST API access token**](../../api/rest-api-access-token)을 발급받습니다. 발급받은 액세스 토큰(`access_token`)과 인증번호(`imp_uid`)로 **본인인증 결과조회 REST API** 를 호출하여 인증 정보를 조회하는 예제입니다. -```javascript title="server-side" +```ts title="server-side" app.use(bodyParser.json()); - ... - // "/certifications"에 대한 POST 요청을 처리하는 controller - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 - try { - // 인증 토큰 발급 받기 - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - // POST method - method: "post", - // "Content-Type": "application/json" - headers: { "Content-Type": "application/json" }, - data: { - imp_key: "imp_apikey", // REST API키 - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data; // 인증 토큰 - ... - // imp_uid로 인증 정보 조회 - const getCertifications = await axios({ - // imp_uid 전달 - url: \`https://api.iamport.kr/certifications/\${imp_uid}\`, - // GET method - method: "get", - // 인증 토큰 Authorization header에 추가 - headers: { "Authorization": access_token } - }); - const certificationsInfo = getCertifications.data; // 조회한 인증 정보 - ... - } catch(e) { - console.error(e); - } - }); +// "/certifications"에 대한 POST 요청을 처리하는 controller +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 + try { + // 인증 토큰 발급 받기 + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + // POST method + method: "post", + // "Content-Type": "application/json" + headers: { "Content-Type": "application/json" }, + data: { + imp_key: "imp_apikey", // REST API키 + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data; // 인증 토큰 + // imp_uid로 인증 정보 조회 + const getCertifications = await axios({ + // imp_uid 전달 + url: `https://api.iamport.kr/certifications/${imp_uid}`, + // GET method + method: "get", + // 인증 토큰 Authorization header에 추가 + headers: { Authorization: access_token }, + }); + const certificationsInfo = getCertifications.data; // 조회한 인증 정보 + // ... + } catch (e) { + console.error(e); + } +}); ``` -### **STEP 03.** 인증 정보 활용하기 +## **STEP 03.** 인증 정보 활용하기 조회한 인증 정보에서 다음의 고객 정보를 추출하는 서비스 코드 예제입니다. @@ -93,44 +88,41 @@ app.use(bodyParser.json()); - `unique_in_site`: DI 값과 동일. 상점아이디(사이트)별로 할당되는 식별키 -**unique\_key와 unique\_in\_site** - -본인인증에 사용된 신용카드가 여러 장이어도 신용카드 소유자가 같다면 매번 `unique_key` 와 `unique_in_site`는 같은 값이 응답됩니다. + **unique\_key와 unique\_in\_site** + 본인인증에 사용된 신용카드가 여러 장이어도 신용카드 소유자가 같다면 매번 `unique_key` 와 `unique_in_site`는 같은 값이 응답됩니다. -```javascript title="Node.js" +```ts title="Node.js" // "/certifications"에 대한 POST 요청을 처리하는 controller - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 - try { - // 인증 토큰 발급 받기 - /* ...중략... */ - // imp_uid로 인증 정보 조회 - /* ...중략... */ - const certificationsInfo = getCertifications.data; // 조회한 인증 정보 - // unique_key: 개인식별 고유 키, unique_in_site: 사이트 별 개인식별 고유 키 - const { unique_key, unique_in_site, name, gender, birth } = certificationsInfo; - ... - // 연령 제한 로직 - if (new Date(birth).getFullYear() <= 1999) { - // 연령 만족 +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 + try { + // 인증 토큰 발급 받기 + /* ...중략... */ + // imp_uid로 인증 정보 조회 + /* ...중략... */ + const certificationsInfo = getCertifications.data; // 조회한 인증 정보 + // unique_key: 개인식별 고유 키, unique_in_site: 사이트 별 개인식별 고유 키 + const { unique_key, unique_in_site, name, gender, birth } = + certificationsInfo; + // 연령 제한 로직 + if (new Date(birth).getFullYear() <= 1999) { + // 연령 만족 + } else { + // 연령 미달 + } + // 1인 1계정 허용 로직 + // DB에서 unique_key 조회 후 가입여부 검사 + Users.find({ certificationKey: unique_key }).then((user) => { + if (!user) { + // 신규 고객 } else { - // 연령 미달 + // 이미 가입된 고객 } - ... - // 1인 1계정 허용 로직 - // DB에서 unique_key 조회 후 가입여부 검사 - Users.find({ certificationKey: unique_key }) - .then((user) => { - if (!user) { - // 신규 고객 - } else { - // 이미 가입된 고객 - } - }); - } catch(e) { - console.error(e); - } - }); + }); + } catch (e) { + console.error(e); + } +}); ``` diff --git a/src/content/docs/ko/etc/credit-auth/readme.mdx b/src/content/docs/ko/etc/credit-auth/readme.mdx index 7c20d4be9..9f4639d9d 100644 --- a/src/content/docs/ko/etc/credit-auth/readme.mdx +++ b/src/content/docs/ko/etc/credit-auth/readme.mdx @@ -7,9 +7,8 @@ import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -신용카드본인인증 서비스는 현재 서비스 중단으로 신규계약이 불가합니다.\ -(기존에 이용중인 고객사는 지속 사용 가능) - + 신용카드본인인증 서비스는 현재 서비스 중단으로 신규계약이 불가합니다.\ + (기존에 이용중인 고객사는 지속 사용 가능) **신용카드 본인인증 서비스란** 신용카드 인증을 통하여 해당 신용카드 소지자의 개인정보(이름, 생년월일, 성별, 외국인여부, KISA 고유식별값)를 확인할 수 있는 서비스입니다. diff --git a/src/content/docs/ko/etc/phone/1.mdx b/src/content/docs/ko/etc/phone/1.mdx index e1230c4bc..e7b489b6e 100644 --- a/src/content/docs/ko/etc/phone/1.mdx +++ b/src/content/docs/ko/etc/phone/1.mdx @@ -3,25 +3,8 @@ title: 1. 본인인증 준비하기 description: 휴대폰 본인인증 연동을 위한 준비 --- -import Tab from "~/components/gitbook/tabs/Tab.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; - [**`고객사 식별코드`**](../../ready/readme#4-포트원-연동정보-확인하기)를 이용하여 `IMP` 객체를 초기화합니다. - - -```javascript title="client-side" -var IMP = window.IMP; // 생략 가능 +```ts title="client-side" IMP.init("{고객사 식별코드}"); // 예: imp00000000 ``` - - - - -```javascript title="client-side" -const IMP = window.IMP; // 생략 가능 -IMP.init("{고객사_식별코드}"); // 예: imp00000000 -``` - - - diff --git a/src/content/docs/ko/etc/phone/2.mdx b/src/content/docs/ko/etc/phone/2.mdx index 76d96087d..8e1928495 100644 --- a/src/content/docs/ko/etc/phone/2.mdx +++ b/src/content/docs/ko/etc/phone/2.mdx @@ -3,9 +3,9 @@ title: 2. 본인인증창 호출하기 description: 본인인증 창 호출방법을 안내합니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; 휴대폰 본인인증은 아래 두가지 방법으로 호출할 수 있습니다. @@ -22,66 +22,65 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > **WebView 등 팝업이 차단되는 환경**에서는 `popup : false`로 설정하는 것을 권장합니다. -**리디렉션 방식** - -포트원 JavaScript **SDK 1.1.7** 버전 이상 부터 지원합니다. + **리디렉션 방식** + 포트원 JavaScript **SDK 1.1.7** 버전 이상 부터 지원합니다. 아래는 휴대폰 본인인증창을 호출하는 예제입니다. - -```javascript title="client-side" -// IMP.certification(param, callback) 호출 - IMP.certification({ // param - // 주문 번호 - pg:'PG사코드.{CPID}',//본인인증 설정이 2개이상 되어 있는 경우 필 - merchant_uid: "ORD20180131-0000011", - // 모바일환경에서 popup:false(기본값) 인 경우 필수 - m_redirect_url : "{리디렉션 될 URL}", - // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 - popup : false - }, function (rsp) { // callback - if (rsp.success) { - ..., - // 인증 성공 시 로직, - ... - } else { - ..., - // 인증 실패 시 로직, - ... - } - }); -``` - -휴대폰 본인인증창을 호출하기 위한 [**파라미터 목록**](../../sdk/javascript-sdk/cft)을 확인하세요 - - + + ```ts title="client-side" + // IMP.certification(param, callback) 호출 + IMP.certification( + { + // param + // 주문 번호 + pg: "PG사코드.{CPID}", //본인인증 설정이 2개이상 되어 있는 경우 필 + merchant_uid: "ORD20180131-0000011", + // 모바일환경에서 popup:false(기본값) 인 경우 필수 + m_redirect_url: "{리디렉션 될 URL}", + // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 + popup: false, + }, + function (rsp) { + // callback + if (rsp.success) { + // 인증 성공 시 로직 + } else { + // 인증 실패 시 로직 + } + }, + ); + ``` - -```javascript title="client-side" - // IMP.certification(param, callback) 호출 - IMP.certification({ // param - // 주문 번호 - pg:'PG사코드.{CPID}',//본인인증 설정이 2개이상 되어 있는 경우 필 - merchant_uid: "ORD20180131-0000011", - // 모바일환경에서 popup:false(기본값) 인 경우 필수 - m_redirect_url : "{리디렉션 될 URL}", - // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 - popup : false - }, rsp => { // callback - if (rsp.success) { - ..., - // 인증 성공 시 로직, - ... - } else { - ..., - // 인증 실패 시 로직, - ... - } - }); -``` + 휴대폰 본인인증창을 호출하기 위한 [**파라미터 목록**](../../sdk/javascript-sdk/cft)을 확인하세요 + - + + ```ts title="client-side" + // IMP.certification(param, callback) 호출 + IMP.certification( + { + // param + // 주문 번호 + pg: "PG사코드.{CPID}", //본인인증 설정이 2개이상 되어 있는 경우 필 + merchant_uid: "ORD20180131-0000011", + // 모바일환경에서 popup:false(기본값) 인 경우 필수 + m_redirect_url: "{리디렉션 될 URL}", + // PC환경에서는 popup 파라미터가 무시되고 항상 true 로 적용됨 + popup: false, + }, + (rsp) => { + // callback + if (rsp.success) { + // 인증 성공 시 로직 + } else { + // 인증 실패 시 로직 + } + }, + ); + ``` + diff --git a/src/content/docs/ko/etc/phone/3.mdx b/src/content/docs/ko/etc/phone/3.mdx index c6a304437..99ba4be67 100644 --- a/src/content/docs/ko/etc/phone/3.mdx +++ b/src/content/docs/ko/etc/phone/3.mdx @@ -3,62 +3,68 @@ title: 3. 인증 완료정보 전달하기 description: 휴대폰 본인인증 이후 획득된 정보를 처리하는 방법을 안내합니다. --- -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; 인증 프로세스가 완료되면 반환되는 응답 객체(**`rsp`**)의 인증 성공 여부에 따라 처리 로직을 **`callback`** 함수에 작성합니다. 요청이 성공했을 경우에 **인증번호(`imp_uid`)를 서버에 전달**하는 로직을 다음 예제를 참고하여 작성합니다. 인증 성공시 [**반환되는 값**](../../sdk/javascript-sdk/cft-rt)을 확인하세요 -### 1. callback Data 전달 예제 +## 1. callback Data 전달 예제 - -```javascript title="client-side" -IMP.certification({ - /* ...중략... */ - }, function (rsp) { // callback - if (rsp.success) { // 인증 성공 시 - // jQuery로 HTTP 요청 - jQuery.ajax({ - url: "{서버의 인증 정보를 받는 endpoint}", - method: "POST", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg); - } - }); -``` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...중략... */ + }, + function (rsp) { + // callback + if (rsp.success) { + // 인증 성공 시 jQuery로 HTTP 요청 + jQuery.ajax({ + url: "{서버의 인증 정보를 받는 endpoint}", + method: "POST", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert("인증에 실패하였습니다. 에러 내용: " + rsp.error_msg); + } + }, + ); + ``` + - -```javascript title="client-side" -IMP.certification({ - /* ...중략... */ - }, rsp => { // callback - if (rsp.success) { // 인증 성공 시 - // axios로 HTTP 요청 - axios({ - url: "{서버의 인증 정보를 받는 endpoint}", - method: "post", - headers: { "Content-Type": "application/json" }, - data: { imp_uid: rsp.imp_uid } - }); - } else { - alert(\`인증에 실패하였습니다. 에러 내용: \${rsp.error_msg}\`); - } - }); - -```` - - + + ```ts title="client-side" + IMP.certification( + { + /* ...중략... */ + }, + (rsp) => { + // callback + if (rsp.success) { + // 인증 성공 시 + // axios로 HTTP 요청 + axios({ + url: "{서버의 인증 정보를 받는 endpoint}", + method: "post", + headers: { "Content-Type": "application/json" }, + data: { imp_uid: rsp.imp_uid }, + }); + } else { + alert(`인증에 실패하였습니다. 에러 내용: ${rsp.error_msg}`); + } + }, + ); + ``` + -### 2. 리디렉션 전달 예제 +## 2. 리디렉션 전달 예제 -`IMP.`**`certification`** 호출 시 설정한 `param.`**`m_redirect_url`**로 인증 정보와 함께 다음과 같이 리디렉션됩니다. +`IMP.`**`certification`** 호출 시 설정한 **`m_redirect_url`** 로 인증 정보와 함께 다음과 같이 리디렉션됩니다. -```uri title="Query String" +```http title="Query String" GET {m_redirect_url}?imp_uid={}&merchant_uid={본인인증 건의 merchant_uid}&success={true 또는 false} -```` +``` diff --git a/src/content/docs/ko/etc/phone/4.mdx b/src/content/docs/ko/etc/phone/4.mdx index 6a7390e21..a444c2feb 100644 --- a/src/content/docs/ko/etc/phone/4.mdx +++ b/src/content/docs/ko/etc/phone/4.mdx @@ -3,86 +3,81 @@ title: 4. 인증정보 조회 및 활용하기 description: 인증정보를 획득하고 활용하는 방법을 안내합니다. --- -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; 휴대폰 본인인증 완료이후 획득한 `imp_uid`를 이용하여 고객 인증정보를 조회할 수 있습니다. -### **STEP 01.** 인증정보(imp_uid) 서버단에서 획득하기 +## **STEP 01.** 인증정보(imp\_uid) 서버단에서 획득하기 아래는 휴대폰 본인인증 앞단에서 넘어온 값을 서버단에서 수신받은 예제 입니다. - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // "/certifications"에 대한 POST 요청을 처리하는 controller - app.post("/certifications", async (request, response) => { - // request의 body에서 imp_uid 추출 - const { imp_uid } = request.body; -}) -``` - - - - -```javascript title="server-side" -app.use(bodyParser.json()); - ... - // "/certifications/redirect"에 대한 GET 요청을 처리하는 controller - app.get("/certifications/redirect", async (request, response) => { - const { imp_uid } = request.query; // request의 query에서 imp_uid 추출 -}) -``` - - + + ```ts title="server-side" + app.use(bodyParser.json()); + // "/certifications"에 대한 POST 요청을 처리하는 controller + app.post("/certifications", async (request, response) => { + // request의 body에서 imp_uid 추출 + const { imp_uid } = request.body; + }); + ``` + + + + ```ts title="server-side" + app.use(bodyParser.json()); + // "/certifications/redirect"에 대한 GET 요청을 처리하는 controller + app.get("/certifications/redirect", async (request, response) => { + const { imp_uid } = request.query; // request의 query에서 imp_uid 추출 + }); + ``` + -### **STEP 02.** 인증 정보 조회하기 +## **STEP 02.** 인증 정보 조회하기 포트원 서버에서 인증 정보를 조회하기 위해서 먼저 [**REST API access token**](../../api/rest-api-access-token)을 발급받습니다. 발급받은 액세스 토큰(`access_token`)과 인증번호(`imp_uid`)로 **본인인증 결과조회 REST API** 를 호출하여 인증 정보를 조회하는 예제입니다. -```javascript title="server-side" +```ts title="server-side" app.use(bodyParser.json()); - ... - // "/certifications"에 대한 POST 요청을 처리하는 controller - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 - try { - // 인증 토큰 발급 받기 - const getToken = await axios({ - url: "https://api.iamport.kr/users/getToken", - // POST method - method: "post", - // "Content-Type": "application/json" - headers: { "Content-Type": "application/json" }, - data: { - imp_key: "imp_apikey", // REST API키 - imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret - } - }); - const { access_token } = getToken.data.response; // 인증 토큰 - ... - // imp_uid로 인증 정보 조회 - const getCertifications = await axios({ - // imp_uid 전달 - url: \`https://api.iamport.kr/certifications/\${imp_uid}\`, - // GET method - method: "get", - // 인증 토큰 Authorization header에 추가 - headers: { "Authorization": access_token } - }); - const certificationsInfo = getCertifications.data; // 조회한 인증 정보 - ... - } catch(e) { - console.error(e); - } - }); +// "/certifications"에 대한 POST 요청을 처리하는 controller +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 + try { + // 인증 토큰 발급 받기 + const getToken = await axios({ + url: "https://api.iamport.kr/users/getToken", + // POST method + method: "post", + // "Content-Type": "application/json" + headers: { "Content-Type": "application/json" }, + data: { + imp_key: "imp_apikey", // REST API키 + imp_secret: + "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f", // REST API Secret + }, + }); + const { access_token } = getToken.data.response; // 인증 토큰 + // imp_uid로 인증 정보 조회 + const getCertifications = await axios({ + // imp_uid 전달 + url: `https://api.iamport.kr/certifications/${imp_uid}`, + // GET method + method: "get", + // 인증 토큰 Authorization header에 추가 + headers: { Authorization: access_token }, + }); + const certificationsInfo = getCertifications.data; // 조회한 인증 정보 + // ... + } catch (e) { + console.error(e); + } +}); ``` -### **STEP 03.** 인증 정보 활용하기 +## **STEP 03.** 인증 정보 활용하기 조회한 인증 정보에서 다음의 고객 정보를 추출하는 서비스 코드 예제입니다. @@ -93,57 +88,54 @@ app.use(bodyParser.json()); - `unique_in_site`: DI 값과 동일. 상점아이디(사이트)별로 할당되는 식별키 -위의 정보 외에 휴대폰 번호(**`phone`**) 및 통신사(**`carrier`**) 또는 외국인(**`foreigner`**) 여부는 **개인정보 제공동의 약관을 사이트에 게재**한 후 **cs@portone.io****로 신청**하여 취득할 수 있습니다. 해당 부분은 당사 계약 이후 다날PG사로 요청 후 승인이 완료되면 이용 가능한 점 참고해 주시기 바랍니다. - -**메일 요청 신청 양식** + 위의 정보 외에 휴대폰 번호(**`phone`**) 및 통신사(**`carrier`**) 또는 외국인(**`foreigner`**) 여부는 **개인정보 제공동의 약관을 사이트에 게재**한 후 **[cs@portone.io](mailto:cs@portone.io)****로 신청**하여 취득할 수 있습니다. 해당 부분은 당사 계약 이후 다날PG사로 요청 후 승인이 완료되면 이용 가능한 점 참고해 주시기 바랍니다. -- 상호명 : -- 사업자번호 : -- 본인인증용 다날 상점ID(CPID) : -- 업종 : -- 필요사유 : -- 개인정보취급방침 url : 앱서비스로 URL형태로 전달이 어려우신 경우 '개인정보취급방침' 경로를 캡쳐하여 전달주시기 바랍니다. + **메일 요청 신청 양식** -**참고 - 포트원 이용 고객사의 개인정보처리방침 적용 예시** + - 상호명 : + - 사업자번호 : + - 본인인증용 다날 상점ID(CPID) : + - 업종 : + - 필요사유 : + - 개인정보취급방침 url : 앱서비스로 URL형태로 전달이 어려우신 경우 '개인정보취급방침' 경로를 캡쳐하여 전달주시기 바랍니다. -- `(주)마플 : https://marpple.shop/kr/@/privacy` -- `(주)브레이브모바일 / 숨고 : https://soomgo.com/terms/privacy` -- `(주)마켓잇 : https://static.marketit.asia/static/privacy-terms.pdf` + **참고 - 포트원 이용 고객사의 개인정보처리방침 적용 예시** + - `(주)마플 : https://marpple.shop/kr/@/privacy` + - `(주)브레이브모바일 / 숨고 : https://soomgo.com/terms/privacy` + - `(주)마켓잇 : https://static.marketit.asia/static/privacy-terms.pdf` -```javascript title="Node.js" +```ts title="Node.js" // "/certifications"에 대한 POST 요청을 처리하는 controller - app.post("/certifications", async (request, response) => { - const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 - try { - // 인증 토큰 발급 받기 - /* ...중략... */ - // imp_uid로 인증 정보 조회 - /* ...중략... */ - const certificationsInfo = getCertifications.data; // 조회한 인증 정보 - // unique_key: 개인식별 고유 키, unique_in_site: 사이트 별 개인식별 고유 키 - const { unique_key, unique_in_site, name, gender, birth } = certificationsInfo; - ... - // 연령 제한 로직 - if (new Date(birth).getFullYear() <= 1999) { - // 연령 만족 +app.post("/certifications", async (request, response) => { + const { imp_uid } = request.body; // request의 body에서 imp_uid 추출 + try { + // 인증 토큰 발급 받기 + /* ...중략... */ + // imp_uid로 인증 정보 조회 + /* ...중략... */ + const certificationsInfo = getCertifications.data; // 조회한 인증 정보 + // unique_key: 개인식별 고유 키, unique_in_site: 사이트 별 개인식별 고유 키 + const { unique_key, unique_in_site, name, gender, birth } = + certificationsInfo; + // 연령 제한 로직 + if (new Date(birth).getFullYear() <= 1999) { + // 연령 만족 + } else { + // 연령 미달 + } + // 1인 1계정 허용 로직 + // DB에서 unique_key 조회 후 가입여부 검사 + Users.find({ certificationKey: unique_key }).then((user) => { + if (!user) { + // 신규 고객 } else { - // 연령 미달 + // 이미 가입된 고객 } - ... - // 1인 1계정 허용 로직 - // DB에서 unique_key 조회 후 가입여부 검사 - Users.find({ certificationKey: unique_key }) - .then((user) => { - if (!user) { - // 신규 고객 - } else { - // 이미 가입된 고객 - } - }); - } catch(e) { - console.error(e); - } - }); + }); + } catch (e) { + console.error(e); + } +}); ``` diff --git a/src/content/docs/ko/etc/sdk.mdx b/src/content/docs/ko/etc/sdk.mdx index 3db9c426a..d4fd4a5dc 100644 --- a/src/content/docs/ko/etc/sdk.mdx +++ b/src/content/docs/ko/etc/sdk.mdx @@ -3,14 +3,14 @@ title: 네이티브 모바일 SDK description: 포트원에서 제공하는 네이티브 모바일 SDK(플러그인)를 통해 포트원 서비스를 연동할 수 있습니다. --- -### 개발 예정 플랫폼별로 Github 링크를 참조하여 개발을 진행하시면 됩니다. +개발 예정 플랫폼별로 Github 링크를 참조하여 개발을 진행하시면 됩니다. -#### iOS/Android +## iOS/Android - [iOS](https://github.com/iamport/iamport-ios) - [Android](https://github.com/iamport/iamport-android) -#### Cross-Platform Frameworks +## Cross-Platform Frameworks - [Flutter](https://github.com/iamport/iamport-flutter) - [Ionic](https://github.com/iamport/iamport-ionic) diff --git a/src/content/docs/ko/etc/url.mdx b/src/content/docs/ko/etc/url.mdx index a7e5b75ae..14853fcf9 100644 --- a/src/content/docs/ko/etc/url.mdx +++ b/src/content/docs/ko/etc/url.mdx @@ -4,19 +4,19 @@ description: 결제 URL 생성 API 명세를 기술합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; import Swagger from "~/components/gitbook/swagger/Swagger.astro"; import SwaggerDescription from "~/components/gitbook/swagger/SwaggerDescription.astro"; import SwaggerParameter from "~/components/gitbook/swagger/SwaggerParameter.astro"; import SwaggerResponse from "~/components/gitbook/swagger/SwaggerResponse.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. 개요 +## 1. 개요 본 문서는 포트원에서 제공하는 결제 URL 생성 API 명세를 기술합니다. 포트원 서비스를 이용중인 고객사는 해당 서비스를 제약없이 이용 가능합니다. -### 2. API URI +## 2. API URI 해당 API는 REST 방식으로 구현되어 인터넷 웹 서비스의 형태로 제공됩니다. @@ -25,226 +25,197 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; > **Content-Type : application/json;charset=UTF-8** - -``` title="URI" -https://api.iamport.co/api/supplements/v1/link/payment -``` - - + + ```http title="URI" + POST https://api.iamport.co/api/supplements/v1/link/payment + ``` + -### 3. 설명 +## 3. 설명 -결제가 가능한 URL을 생성하여 고객이 해당 URL에 접근하여 결제를 진행 할 수 있습니다. PG사가 지원하는 모든 결제수단 지원이 가능하며 설정한 시간이 만료된 경우 해당 URL 접근시 결제를 진행할 수 없습니다. +결제가 가능한 URL을 생성하여 고객이 해당 URL에 접근하여 결제를 진행 할 수 있습니다. +PG사가 지원하는 모든 결제수단 지원이 가능하며 설정한 시간이 만료된 경우 해당 URL 접근시 결제를 진행할 수 없습니다. -### 4. 요청 메세시 상세 +## 4. 요청 메세시 상세 - -HTTP Method : POST - -Content-Type : Application.json;charset=UTF-8 - - - -### Parameters - -#### Body - - - - -브릿지 페이지 노출문구 - - - - - - - -고객사식별코드 - - - - - - - -결제금액 - - - - - - - -주문번호 + + HTTP Method : POST + + Content-Type : Application.json;charset=UTF-8 + + + ### Parameters + + #### Body - + + + 브릿지 페이지 노출문구 + + - - - + + + 고객사식별코드 + + -제품명 + + + 결제금액 + + - + + + 주문번호 + + - - -면세금액 + + + 제품명 + + - - - + + 면세금액 + -통화구분코드 + + + 통화구분코드 + + - + + 실 결제창 표기언어 - - -실 결제창 표기언어 + - ko + - en + -\-ko + + 주문자명 + -\-en + + + 주문자연락처 + + - - -주문자명 + + 주문자주소 + - - - + + 주문자 이메일주 + -주문자연락처 + + 주문자 우편번호 + - + + 에코항목 + - - -주문자주소 + + 결제결과(성공거래)를 수신받을 URL(웹훅) + - - -주문자 이메일주 + + + 페이지 만료시각 + + - - -주문자 우편번호 + + 브릿지 페이지 표기언어 - - -에코항목 + - ko : 한국어 + - en : 영어 + - - -결제결과(성공거래)를 수신받을 URL(웹훅) + + **pg** **string** - - - + pg사 구분코드 -페이지 만료시각 + [#undefined](../sdk/javascript-sdk/payrq#undefined "mention") - + **pay\_method** **string** - - -브릿지 페이지 표기언어 + 결제수단 구분코드 + + [#undefined](../sdk/javascript-sdk/payrq#undefined "mention") -\-ko : 한국어 + **label** **string** -\-en : 영어 + 브릿지페이지 결제수단 표현값 + - - -**pg** **string** - -pg사 구분코드 - -[#undefined](../sdk/javascript-sdk/payrq#undefined "mention") - -**pay_method** **string** - -결제수단 구분코드 - -[#undefined](../sdk/javascript-sdk/payrq#undefined "mention") - -**label** **string** - -브릿지페이지 결제수단 표현값 - - - -### Responses - - -```json title="json" -{ - "shortenedUrl": "https://dev.impay.link/4bdf239e" //결제링크 생성 -} -``` - - + ### Responses + + ```json title="json" + { + "shortenedUrl": "https://dev.impay.link/4bdf239e" //결제링크 생성 + } + ``` + -**#요청 JSON 전문 예시** +### 요청 JSON 전문 예시 -```title="json" +```json title="json" { - "payment_info": "{\"title\":\"테스트고객사\",\"user_code\":\"imp68124833\",\"amount\":10000,\"merchant_uid\":\"merchant_1630665784552\",\"name\":\"결제링크 테스트\",\"tax_free\":\"면세공급가액\",\"currency\":\"KRW\",\"language\":\"ko\",\"buyer_name\":\"\",\"buyer_tel\":\"\",\"buyer_addr\":\"\",\"buyer_email\":\"\",\"buyer_postcode\":\"\",\"custom_data\":\"json_object\",\"notice_url\":\"결제 결과를 받을 url\",\"pay_methods\":[{\"pg\":\"INIpayTest\",\"pay_method\":\"card\",\"label\":\"신용/체크카드\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"naverpay\",\"label\":\"네이버페이\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"kakaopay\",\"label\":\"카카오페이\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"phone\",\"label\":\"핸드폰 소액결제\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"trans\",\"label\":\"계좌이체\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"vbank\",\"label\":\"가상계좌\"}]}", - "expired_at": 1634324016 + "payment_info": "{\"title\":\"테스트고객사\",\"user_code\":\"imp68124833\",\"amount\":10000,\"merchant_uid\":\"merchant_1630665784552\",\"name\":\"결제링크 테스트\",\"tax_free\":\"면세공급가액\",\"currency\":\"KRW\",\"language\":\"ko\",\"buyer_name\":\"\",\"buyer_tel\":\"\",\"buyer_addr\":\"\",\"buyer_email\":\"\",\"buyer_postcode\":\"\",\"custom_data\":\"json_object\",\"notice_url\":\"결제 결과를 받을 url\",\"pay_methods\":[{\"pg\":\"INIpayTest\",\"pay_method\":\"card\",\"label\":\"신용/체크카드\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"naverpay\",\"label\":\"네이버페이\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"kakaopay\",\"label\":\"카카오페이\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"phone\",\"label\":\"핸드폰 소액결제\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"trans\",\"label\":\"계좌이체\"},{\"pg\":\"INIpayTest\",\"pay_method\":\"vbank\",\"label\":\"가상계좌\"}]}", + "expired_at": 1634324016 } ``` -**#결제(브릿지) 페이지 화면 예시** +### 결제(브릿지) 페이지 화면 예시 - -**결제 URL API 요청이 성공한경우 응답 URL 렌더링 화면 예시입니다.** + + **결제 URL API 요청이 성공한경우 응답 URL 렌더링 화면 예시입니다.** -
+
+ - + + **결제 URL 페이지 만료시각(expire\_at)이 지난 경우 표시되는 화면입니다.** - -**결제 URL 페이지 만료시각(expire\_at)이 지난 경우 표시되는 화면입니다.** - -
- - +
+ -### 5.결제 URL 비활성화 방법 +## 5.결제 URL 비활성화 방법 **응답**(**shortenedUrl**) **URL 마지막 String 을 결제 URI API 주소 뒤에 삽입하여 호출** -> \*\*HTTP Method : \*\***PUT** +> **HTTP Method :** **PUT** -**API 응답이 아래와 같은경우** + **API 응답이 아래와 같은경우** -```json -{ "shortenedUrl": "https://dev.impay.link/4bdf239e" } -``` + ```json + { "shortenedUrl": "https://dev.impay.link/4bdf239e" } + ``` -[https://api.iamport.co/api/supplements/v1/link/payment/](https://api.iamport.co/api/supplements/v1/link/payment/%7BGUID%7D)**4bdf239e** - -위와 같이 호출시 결제 URL 즉시 비활성화 처리됩니다. + `https://api.iamport.co/api/supplements/v1/link/payment/4bdf239e` + 위와 같이 호출시 결제 URL 즉시 비활성화 처리됩니다. -**결제결과 획득방법** - -**결제 URL API로 진행된 결제는 오직 웹훅으로만 결제 결과를 수신받을수 있습니다.** + **결제결과 획득방법** -웹훅은 결제가 성공한 경우에만 발송되기 때문에 해당 서비스를 이용하실때는 오직 승인된 결과만 받아보면문제가 없는 서비스에 한하여 해당 API를 이용하시기 바랍니다. + **결제 URL API로 진행된 결제는 오직 웹훅으로만 결제 결과를 수신받을수 있습니다.** + 웹훅은 결제가 성공한 경우에만 발송되기 때문에 해당 서비스를 이용하실때는 오직 승인된 결과만 받아보면문제가 없는 서비스에 한하여 해당 API를 이용하시기 바랍니다. diff --git a/src/content/docs/ko/faq/undefined.mdx b/src/content/docs/ko/faq/undefined.mdx index 1192849fc..27c98418a 100644 --- a/src/content/docs/ko/faq/undefined.mdx +++ b/src/content/docs/ko/faq/undefined.mdx @@ -10,48 +10,44 @@ import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro";
-

웹훅 발송규칙

- -- 기본적으로 1회 발송 됩니다. -- 재발송 설정을 희망하는 경우 1분 단위로 최대 5회까지 발송이 가능하며 고객사 응답(**HTTP STATUS**)이 **200**응답을 주시는 경우 발송은 중단됩니다. -- 관리자 콘솔에서 웹훅 재 전송이 가능합니다. (결제승인내역 -> 웹훅로그 -> 재전송) -- 웹훅주소를 변경한 경우 과거거래 재 발송시 기존 웹훅 URL로 전송됩니다. +

웹훅 발송규칙

+ - 기본적으로 1회 발송 됩니다. + - 재발송 설정을 희망하는 경우 1분 단위로 최대 5회까지 발송이 가능하며 고객사 응답(**HTTP STATUS**)이 **200**응답을 주시는 경우 발송은 중단됩니다. + - 관리자 콘솔에서 웹훅 재 전송이 가능합니다. (결제승인내역 -> 웹훅로그 -> 재전송) + - 웹훅주소를 변경한 경우 과거거래 재 발송시 기존 웹훅 URL로 전송됩니다.
-

통합 응답코드 제공 여부

- -결제응답으로 내려가는 오류코드 및 메세지는 원천사(PG사)가 내려주는 응답코드와 메세지를 그대로 내려드리고 있습니다. 당사와 연동되어 있는 PG사에 따라 응답코드와 메세지가 모두 상이하여 통합적으로 정리되어 있는 오류코드표는 존재하지 않습니다. +

통합 응답코드 제공 여부

+ 결제응답으로 내려가는 오류코드 및 메세지는 원천사(PG사)가 내려주는 응답코드와 메세지를 그대로 내려드리고 있습니다. 당사와 연동되어 있는 PG사에 따라 응답코드와 메세지가 모두 상이하여 통합적으로 정리되어 있는 오류코드표는 존재하지 않습니다.
-

운영계정 및 개발계정 구분방법

+

운영계정 및 개발계정 구분방법

-**하나의 계정으로 실모드 & 테스트모드 운영** + **하나의 계정으로 실모드 & 테스트모드 운영** -기존 설정되어있던 항목에 'PG사 추가' 하여 테스트용 상점정보를 입력 + 기존 설정되어있던 항목에 'PG사 추가' 하여 테스트용 상점정보를 입력 -- 장점: 동일한 고객사 식별코드 / API key, secret 으로 테스트가 가능 -- 단점: 상용계정과 함께 운영하기 때문에 PG설정/저장에 주의필요 + - 장점: 동일한 고객사 식별코드 / API key, secret 으로 테스트가 가능 + - 단점: 상용계정과 함께 운영하기 때문에 PG설정/저장에 주의필요 -**\[체크사항]** + **\[체크사항]** -동일 PG의 경우 상점 아이디별로 결제요청을 하려면 pg 파라미터에 **PG사명.상점아이디** 로 지정하여 요청해야 합니다. + 동일 PG의 경우 상점 아이디별로 결제요청을 하려면 pg 파라미터에 **PG사명.상점아이디** 로 지정하여 요청해야 합니다. -**테스트용도로 새로운 계정 생성하여 분리** + **테스트용도로 새로운 계정 생성하여 분리** -포트원 관리자페이지([https://admin.portone.io/](https://admin.portone.io/)) 회원가입 하시어 개발용도의 계정을 생성하시는 방법입니다. - -- 장점 : 상용과 개발용을 분리함으로써 안정적인 테스트 가능 -- 단점 : 고객사 식별코드 / API key, secret 정보가 달라지다보니 소스코드 분기가 필요 + 포트원 관리자페이지([https://admin.portone.io/](https://admin.portone.io/)) 회원가입 하시어 개발용도의 계정을 생성하시는 방법입니다. + - 장점 : 상용과 개발용을 분리함으로써 안정적인 테스트 가능 + - 단점 : 고객사 식별코드 / API key, secret 정보가 달라지다보니 소스코드 분기가 필요
-**더 많은 질문 리스트는 아래 링크를 참고해 주세요** - -[https://faq.portone.io/](https://faq.portone.io/) + **더 많은 질문 리스트는 아래 링크를 참고해 주세요** + [https://faq.portone.io/](https://faq.portone.io/) diff --git a/src/content/docs/ko/pg/payment-gateway/blue.mdx b/src/content/docs/ko/pg/payment-gateway/blue.mdx index 325f266f9..b02b7a7f8 100644 --- a/src/content/docs/ko/pg/payment-gateway/blue.mdx +++ b/src/content/docs/ko/pg/payment-gateway/blue.mdx @@ -3,78 +3,80 @@ title: 블루월넛 description: 블루월넛 결제 연동방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Figure from "~/components/Figure.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Codepen from "~/components/gitbook/Codepen.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 1. 블루월넛 PG 설정하기 +## 1. 블루월넛 PG 설정하기 [**블루월넛 설정**](../../ready/2-pg/payment-gateway/blue) 페이지의 내용을 참고하여 PG 설정을 진행합니다.
-### 2.결제 요청하기 +## 2.결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 블루월넛 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` -호출 후 **callback** 으로 수신되 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +호출 후 **callback** 으로 수신되어 +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "bluewalnut.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 - name: "주문명:결제테스트", - amount: 14000, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456" -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** - -**`pg` \*****string** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "bluewalnut.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 + name: "주문명:결제테스트", + amount: 14000, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**PG사 구분코드** + **주요 파라미터 설명** -**`bluewalnut`** 로 지정하면 됩니다. + **`pg` \*****string** -**`pay_method`** **\*** **string** + **PG사 구분코드** -**결제수단 구분코드** + **`bluewalnut`** 로 지정하면 됩니다. -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) -- phone (휴대폰소액결제) + **`pay_method`** **\*** **string** -**`merchant_uid`** **\*** **string** + **결제수단 구분코드** -**`고객사 고유주문번호`** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) + - phone (휴대폰소액결제) -매번 고유하게 채번되어야 합니다. + **`merchant_uid`** **\*** **string** -**`amount`** **\*** **`integer`** + **`고객사 고유주문번호`** -**결제금액** + 매번 고유하게 채번되어야 합니다. -**string** 이 아닌점에 유의하세요 + **`amount`** **\*** **`integer`** - + **결제금액** - + **string** 이 아닌점에 유의하세요 - -**포트원은 블루월넛 비 인증 결제를 지원하지 않습니다.** + + - + + **포트원은 블루월넛 비 인증 결제를 지원하지 않습니다.** + diff --git a/src/content/docs/ko/pg/payment-gateway/danal.mdx b/src/content/docs/ko/pg/payment-gateway/danal.mdx index 316379636..e52f23cfc 100644 --- a/src/content/docs/ko/pg/payment-gateway/danal.mdx +++ b/src/content/docs/ko/pg/payment-gateway/danal.mdx @@ -3,319 +3,319 @@ title: 다날 description: 다날 결제연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Codepen from "~/components/gitbook/Codepen.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. 다날 PG 설정하기 +## 1. 다날 PG 설정하기 [**다날 설정**](../../ready/2-pg/payment-gateway/undefined) 페이지의 내용을 참고하여 PG 설정을 진행합니다.
-### 2.결제 요청하기 +## 2. 결제 요청하기 - -[JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 다날 Tpay 결제창을 호출할 수 있습니다. -**결제결과**는 PC/모바일 환경 모두 경우 IMP.request\_pay(param, callback) 호출 후 **callback** 으로 수신됩니다. - -```javascript title="Javascript SDK" showLineNumbers -IMP.request_pay( - { - pg: "danal_tpay.{CPID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - }, - function (rsp) { - // callback 로직 - //* ...중략... *// - } -); -``` + + [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 다날 Tpay 결제창을 호출할 수 있습니다. + **결제결과**는 PC/모바일 환경 모두 경우 IMP.request\_pay(param, callback) 호출 후 **callback** 으로 수신됩니다. -#### 주요 파라미터 설명 - -**`pg` \*****string** - -**PG사 구분코드** - -**`danal_tpay`** 로 지정하면 됩니다. + ```ts title="Javascript SDK" showLineNumbers + IMP.request_pay( + { + pg: "danal_tpay.{CPID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + }, + function (rsp) { + // callback 로직 + //* ...중략... *// + }, + ); + ``` -**`pay_method`** **\*** **string** + ### 주요 파라미터 설명 -**결제수단 구분코드** + **`pg` \*****string** -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) -- phone(휴대폰 소액결제) : 휴대폰 결제인 경우 pg 파라미터는 **`danal`** 로 지정하면 됩니다. -- cultureland (문화상품권) -- happymoney (해피머니) -- booknlife (도서문화상품권) + **PG사 구분코드** -**`merchant_uid`** **\*** **string** + **`danal_tpay`** 로 지정하면 됩니다. -**`고객사 고유주문번호`** + **`pay_method`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **결제수단 구분코드** -**`buyer_tel`** **\*** **`string`** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) + - phone(휴대폰 소액결제) : 휴대폰 결제인 경우 pg 파라미터는 **`danal`** 로 지정하면 됩니다. + - cultureland (문화상품권) + - happymoney (해피머니) + - booknlife (도서문화상품권) -**`주문자 연락처`** + **`merchant_uid`** **\*** **string** -미 설정 시 다날 결제창에서 오류 발생 가능 + **`고객사 고유주문번호`** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제금액** + **`buyer_tel`** **\*** **`string`** -**string** 이 아닌점에 유의하세요 + **`주문자 연락처`** - -**가상계좌 결제창 호출시 주의사항** + 미 설정 시 다날 결제창에서 오류 발생 가능 -- **`biz_num`**: `사업자등록번호 10자리` 필수 입력 (미설정 시 다날 결제창에서 오류 발생 가능) + **`amount`** **\*** **`integer`** - + **결제금액** - + **string** 이 아닌점에 유의하세요 - + + **가상계좌 결제창 호출시 주의사항** - -인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + - **`biz_num`**: `사업자등록번호 10자리` 필수 입력 (미설정 시 다날 결제창에서 오류 발생 가능) + - -**amount 금액** + + -- 빌링키 발급시 amount 파라미터에 금액이 설정되는 경우 **실 결제와 동시에 빌링키가 발급**됩니다. -- 실결제를 원하지 않은 경우 amount 금액을 **0원**으로 설정합니다. + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. -(amount를 0으로 지정한 경우 다날에서 최초 10원 테스트 결제를 하고 30분 쯤 후 자동 취소됩니다.) + + **amount 금액** - + - 빌링키 발급시 amount 파라미터에 금액이 설정되는 경우 **실 결제와 동시에 빌링키가 발급**됩니다. + - 실결제를 원하지 않은 경우 amount 금액을 **0원**으로 설정합니다. -```javascript -IMP.request_pay( - { - pg: "danal_tpay.{CPID}", - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 0, // 빌링키 발급만 진행하며 결제승인을 하지 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - buyer_addr: "서울특별시 강남구 삼성동", - period: { - from: "20200101", //YYYYMMDD - to: "20201231", //YYYYMMDD - }, - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` + (amount를 0으로 지정한 경우 다날에서 최초 10원 테스트 결제를 하고 30분 쯤 후 자동 취소됩니다.) + -#### 주요 파라미터 설명 + ```ts + IMP.request_pay( + { + pg: "danal_tpay.{CPID}", + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 0, // 빌링키 발급만 진행하며 결제승인을 하지 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + buyer_addr: "서울특별시 강남구 삼성동", + period: { + from: "20200101", //YYYYMMDD + to: "20201231", //YYYYMMDD + }, + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` -**`pg` \*****string** + ### 주요 파라미터 설명 -**PG사 구분코드** + **`pg` \*****string** -**`danal_tpay`** 로 지정하면 됩니다. + **PG사 구분코드** -**`customer_uid` \*****string** + **`danal_tpay`** 로 지정하면 됩니다. -**카드 빌링키** + **`customer_uid` \*****string** -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + **카드 빌링키** -**`amount` \*****Integer** + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -**결제금액** + **`amount` \*****Integer** -0원으로 설정시 빌링키만 발급되며 **0원 이상 설정시 실결제와 빌링키 발급이 동시**에 이루어 집니다. + **결제금액** -**`period`** **`array`** + 0원으로 설정시 빌링키만 발급되며 **0원 이상 설정시 실결제와 빌링키 발급이 동시**에 이루어 집니다. -정기결제시 고객이 구매하는 제품에 대한 제공기간을 명시합니다. 해당 일자가 다날 결제창에 표기 됩니다. + **`period`** **`array`** -**`from`** **`: YYYYMMDD`** + 정기결제시 고객이 구매하는 제품에 대한 제공기간을 명시합니다. 해당 일자가 다날 결제창에 표기 됩니다. -**`to`** **`: YYYYMMDD`** + **`from`** **`: YYYYMMDD`** -#### 빌링키(customer_uid)로 결제 요청하기 + **`to`** **`: YYYYMMDD`** -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + ### 빌링키(customer\_uid)로 결제 요청하기 -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. - + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -### 3. 부가기능 +## 3. 부가기능 - -```js title="특정 통신사만 노출" -{ - phone: { - detail: [ - { - carrier: "*", // 모두 활성화 - enabled: false - }, - { - carrier: "SKT", // SKT만 활성화 - enabled: true - }, - ] - } -} -``` - -```js title="2개 이상 통신사 노출" -{ - phone: { - detail: [ - { - carrier: "SKT", - enabled: false - }, - { - carrier: "KTF", - enabled: false - }, - { - carrier: "LGT", - enabled: false - }, - { - carrier: "CJH", - enabled: false - } - ] - } -} -KCT, SKL 을 제외한 나머지 통신사는 비활성화 됩니다. -``` - -```js title="특정 통신사만 비노출" -phone: { - detail: [ + + ```json title="특정 통신사만 노출" { - carrier: "SKT", - enabled: false, - }, - ]; -} -``` - - -`phone 파라미터 미 설정시`(기본값) 모든 통신사 노출됨 - - - - - - -```javascript title="javascript" -prefill: { - phoneNumber: "휴대폰번호" // 휴대폰번호 입력(하이픈 제거) -} -``` - -휴대폰 결제시 해당 파라미터를 설정하면 휴대폰번호를 고정시킬수 있습니다. - + "phone": { + "detail": [ + { + "carrier": "*", // 모두 활성화 + "enabled": false + }, + { + "carrier": "SKT", // SKT만 활성화 + "enabled": true + } + ] + } + } + ``` - + ```json title="2개 이상 통신사 노출" + { + "phone": { + "detail": [ + { + "carrier": "SKT", + "enabled": false + }, + { + "carrier": "KTF", + "enabled": false + }, + { + "carrier": "LGT", + "enabled": false + }, + { + "carrier": "CJH", + "enabled": false + } + ] + } + } + KCT, SKL 을 제외한 나머지 통신사는 비활성화 됩니다. + ``` - -```javascript title="javascript" -display: { - card_quota: [6] // 할부개월 6개월까지만 활성화 -} -``` + ```json title="특정 통신사만 비노출" + { + "phone": { + "detail": [ + { + "carrier": "SKT", + "enabled": false, + }, + ] + } + } + ``` -**파라미터 설명** + + `phone 파라미터 미 설정시`(기본값) 모든 통신사 노출됨 + + -- **card_quota :** - - `[]`: 일시불만 결제 가능 - - `3,6`: 일시불을 포함한 3, 6개월 할부개월 선택 가능\\ + + ```json + { + "prefill": { + "phoneNumber": "휴대폰번호" // 휴대폰번호 입력(하이픈 제거) + } + } + ``` - -할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. + + 휴대폰 결제시 해당 파라미터를 설정하면 휴대폰번호를 고정시킬수 있습니다. + + - + + ```json + { + "display": { + "card_quota": [6] // 할부개월 6개월까지만 활성화 + } + } + ``` -할부개월수 **3개월****까지 활성화 예제** + **파라미터 설명** - + - **card\_quota :** + - `[]`: 일시불만 결제 가능 + - `3,6`: 일시불을 포함한 3, 6개월 할부개월 선택 가능\\ - + + 할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. + - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3, - usePoint: "Y" - } -} -``` + 할부개월수 **3개월****까지 활성화 예제** -**파라미터 설명** + + -- **code** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **quota** : 할부 개월 수. 일시불일 시 0 으로 지정. (**integer**) -- **usePoint** : 해당 파라미터 설정시 카드사 포인트가 후취방식으로 결제됩니다. + + ```json + { + "card": { + "direct": { + "code": "367", + "quota": 3, + "usePoint": "Y" + } + } + } + ``` - -**주의사항** + **파라미터 설명** -- 카드사 모듈 바로 호출을 이용하기 위해서는 다날측 설정이 우선 필요 합니다. + - **code** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + - **quota** : 할부 개월 수. 일시불일 시 0 으로 지정. (**integer**) + - **usePoint** : 해당 파라미터 설정시 카드사 포인트가 후취방식으로 결제됩니다. - + + **주의사항** -```javascript title="javascript" -card: { - detail: [ - { card_code: "*", enabled: false }, //모든 카드사 비활성화 - { card_code: "366", enabled: true }, //특정 카드만 활성화 - ]; -} -``` + - 카드사 모듈 바로 호출을 이용하기 위해서는 다날측 설정이 우선 필요 합니다. + -**파라미터 설명** + ```json + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, //모든 카드사 비활성화 + { "card_code": "366", "enabled": true } //특정 카드만 활성화 + ] + } + } + ``` -- **card_code :** 금결원 카드사코드 [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** -- **enabled :** 해당카드 활성화 여부 (**boolean)** + **파라미터 설명** -**신한카드****만 결제창 노출 처리 예제** + - **card\_code :** 금결원 카드사코드 [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** + - **enabled :** 해당카드 활성화 여부 (**boolean)** - + **신한카드****만 결제창 노출 처리 예제** - + + diff --git a/src/content/docs/ko/pg/payment-gateway/daou/readme.mdx b/src/content/docs/ko/pg/payment-gateway/daou/readme.mdx index bc450fe1e..f2a8858b3 100644 --- a/src/content/docs/ko/pg/payment-gateway/daou/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/daou/readme.mdx @@ -5,9 +5,9 @@ description: 키움페이 연동 방법을 안내합니다. import Figure from "~/components/Figure.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 키움페이 채널 설정하기 @@ -20,227 +20,220 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; [JavaScript SDK](../../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 다우 페이조아 결제창을 호출할 수 있습니다. **결제 결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 모바일의 경우 **m\_redirect\_url**로 리디렉션됩니다. -**페이조아 결제창 연동을 위해서는 ****JS SDK Version 1.2.0**** 이상을 사용하셔야 합니다.** - + **페이조아 결제창 연동을 위해서는 ****JS SDK Version 1.2.0**** 이상을 사용하셔야 합니다.** - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "daou.{상점 ID}", - pay_method: "card", - merchant_uid: "mid_1234567890", - escrow: false, - amount: 1004, - name: "노스페이스 롱패딩 M", - buyer_name: "홍길동", - buyer_email: "hello@world.com", - buyer_tel: "01012345678", - digital: false, // 디지털로 계약되었다면 true로 설정 - m_redirect_url: "https://allerts.com/payments/complete", - bypass: { - // 페이조아(다우데이타) 전용 파라미터 - daou: { - PRODUCTCODE: "portone", - CASHRECEIPTFLAG: 0, + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "daou.{상점 ID}", + pay_method: "card", + merchant_uid: "mid_1234567890", + escrow: false, + amount: 1004, + name: "노스페이스 롱패딩 M", + buyer_name: "홍길동", + buyer_email: "hello@world.com", + buyer_tel: "01012345678", + digital: false, // 디지털로 계약되었다면 true로 설정 + m_redirect_url: "https://allerts.com/payments/complete", + bypass: { + // 페이조아(다우데이타) 전용 파라미터 + daou: { + PRODUCTCODE: "portone", + CASHRECEIPTFLAG: 0, + }, + }, + app_scheme: "portoneappscheme", }, - }, - app_scheme: "portoneappscheme", - }, - function (rsp) { - // callback 로직 - // * ...중략... * - } -); -``` - -**주요 파라미터 설명** - -**`pg` \*****string** + function (rsp) { + // callback 로직 + // * ...중략... * + }, + ); + ``` -**PG사 구분코드** + **주요 파라미터 설명** -**`daou`** 로 지정하면 됩니다. + **`pg` \*****string** -**`pay_method`** **\*** **string** + **PG사 구분코드** -**결제수단 구분코드** + **`daou`** 로 지정하면 됩니다. -- card(신용카드) -- trans(실시간 계좌이체) -- vbank(가상계좌) + **`pay_method`** **\*** **string** -**`merchant_uid`** **\*** **string** + **결제수단 구분코드** -**주문번호** + - card(신용카드) + - trans(실시간 계좌이체) + - vbank(가상계좌) -매번 고유하게 채번되어야 합니다. + **`merchant_uid`** **\*** **string** -**`digital`** **\*** **`string`** + **주문번호** -**디지털 컨텐츠 여부** + 매번 고유하게 채번되어야 합니다. -고객사 \<-\> 페이조아간 계약 상태에 따라 정해진 올바른 값을 넣어야 함. 그렇지 않은 경우 결제 진행 불가 + **`digital`** **\*** **`string`** -**`bypass.daou.PRODUCTCODE`** **`string`** + **디지털 컨텐츠 여부** -**결제 상품 고유 번호** + 고객사 \<-> 페이조아간 계약 상태에 따라 정해진 올바른 값을 넣어야 함. 그렇지 않은 경우 결제 진행 불가 -값에 대해 정해진 규격이 없고 보내지 않을 경우 포트원에서 기본값(iamport)을 설정해 페이조아 측으로 전달 + **`bypass.daou.PRODUCTCODE`** **`string`** -**`bypass.daou.CASHRECEIPTFLAG`** **``****`number`** + **결제 상품 고유 번호** -**현금영수증 발급 구분코드** + 값에 대해 정해진 규격이 없고 보내지 않을 경우 포트원에서 기본값(iamport)을 설정해 페이조아 측으로 전달 -비 신용결제(계좌,가상)시 페이조아에서 자동발급 여부 구분코드 + **`bypass.daou.CASHRECEIPTFLAG`** **\`\`****`number`** -**`1`: 허용** + **현금영수증 발급 구분코드** -**`0`: 차단** + 비 신용결제(계좌,가상)시 페이조아에서 자동발급 여부 구분코드 -**`app_scheme`** **`string`** + **`1`: 허용** -**모바일 앱 URL Scheme** + **`0`: 차단** -모바일 앱 환경에서 결제시 필수 파라미터 + **`app_scheme`** **`string`** -**`amount` \*****number** + **모바일 앱 URL Scheme** -**결제금액** + 모바일 앱 환경에서 결제시 필수 파라미터 -**string** 이 아닌 점에 유의하세요. + **`amount` \*****number** -**`escrow`** **`boolean`** + **결제금액** -**에스크로 설정여부** + **string** 이 아닌 점에 유의하세요. -계좌이체,가상계좌만 지원됩니다. + **`escrow`** **`boolean`** - + **에스크로 설정여부** - -**API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** + 계좌이체,가상계좌만 지원됩니다. + -**일회성 결제 요청하기** + + **API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** -REST[ **API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + **일회성 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + REST API [**POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -**빌링키 발급 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -REST [**API POST /subscribe/customers/\{customer_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + **빌링키 발급 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + REST API [**POST /subscribe/customers/\{customer\_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -**빌링키 발급 및 최초 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + **빌링키 발급 및 최초 결제 요청하기** -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + REST API [**POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. -**빌링키로 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + **빌링키로 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. -**자세한 가이드는 아래 링크를 참조하세요** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + **자세한 가이드는 아래 링크를 참조하세요** - + + ## 3. 부가기능 - -```javascript title="javascript" -display: { - card_quota: [6] // 할부개월 6개월까지만 활성화 -} -``` - -**파라미터 설명** - -- **`card_quota` :** - - `[]`: 일시불만 결제 가능 - - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능 - - - -할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. - - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - } -} -``` - -**파라미터 설명** - -- **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **`quota`** : 할부 개월 수. 일시불일 시 0으로 지정 (**number**) - - - - -에스크로 결제를 위해서는 **`escrow`** 파라미터를 추가하고 **true** 값으로 설정해야 합니다. 에스크로 결제가 완료되면 고객사는 배송정보 등록을 진행해야 하며 해당 작업이 누락되는 경우 **정산이 진행되지 않습니다**. [**배송정보 등록**](../../../api/api-7/api-1) 및 [**배송수정 API**](../../../api/api-7/api-2) 를 이용하여 배송정보를 관리할 수 있습니다. - -```json title="API Body 예시" -{ - "logis": { - "invoice": "1728384716123", - "company": "CJGLS", - "receiving_at": "20220215", - "address": "성수이로20길16" - }, - "receiver": { - "name": "홍길동" - }, - "sender": { - "relationship": "본인" - } -} -``` - - - -**주의사항** - -- 에스크로 배송정보 등록/수정 시 고객사가 전달한 배송정보(운송장 번호, 택배사 이름 등)에 대해 페이조아 측에서 유효성 체크를 하지 않습니다. - - - - + + ```json + { + "display": { + "card_quota": [6] // 할부개월 6개월까지만 활성화 + } + } + ``` + + **파라미터 설명** + + - **`card_quota` :** + - `[]`: 일시불만 결제 가능 + - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능 + + + 할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. + + + + + ```json + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` + + **파라미터 설명** + + - **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + - **`quota`** : 할부 개월 수. 일시불일 시 0으로 지정 (**number**) + + + + 에스크로 결제를 위해서는 **`escrow`** 파라미터를 추가하고 **true** 값으로 설정해야 합니다. 에스크로 결제가 완료되면 고객사는 배송정보 등록을 진행해야 하며 해당 작업이 누락되는 경우 **정산이 진행되지 않습니다**. [**배송정보 등록**](../../../api/api-7/api-1) 및 [**배송수정 API**](../../../api/api-7/api-2) 를 이용하여 배송정보를 관리할 수 있습니다. + + ```json title="API Body 예시" + { + "logis": { + "invoice": "1728384716123", + "company": "CJGLS", + "receiving_at": "20220215", + "address": "성수이로20길16" + }, + "receiver": { + "name": "홍길동" + }, + "sender": { + "relationship": "본인" + } + } + ``` + + + **주의사항** + + - 에스크로 배송정보 등록/수정 시 고객사가 전달한 배송정보(운송장 번호, 택배사 이름 등)에 대해 페이조아 측에서 유효성 체크를 하지 않습니다. + + diff --git a/src/content/docs/ko/pg/payment-gateway/daou/undefined.mdx b/src/content/docs/ko/pg/payment-gateway/daou/undefined.mdx index 216471aee..db46ede9e 100644 --- a/src/content/docs/ko/pg/payment-gateway/daou/undefined.mdx +++ b/src/content/docs/ko/pg/payment-gateway/daou/undefined.mdx @@ -8,171 +8,135 @@ import Details from "~/components/gitbook/Details.astro"; ## 페이조아 결제 특이사항
-

PC 결제는 `success`, 모바일 결제는 `imp_success` 전달

- -PC와 모바일에서 결제창이 각기 다른 방식으로 호출되기 때문에, 결제 후속 프로세스에도 차이가 있습니다. PC 결제의 경우 페이조아 결제창이 iframe 방식으로 호출되기 때문에 결제 프로세스 완료 후 콜백 함수(`IMP.request_pay` 함수 호출시 전달한 두 번째 파라미터)가 호출되지만, 모바일 결제의 경우 페이조아 결제창이 페이조아 URL로 리디렉션되기 때문에 결제 프로세스 완료 후 지정 된 URL(`m_redirect_url`)로 302 리디렉션 됩니다. 이때 결제 실패/성공 여부를 의미하는 파라미터가 전달되는데, PC 결제시에는 `success`, 모바일 결제시에는 `imp_success`로 서로 다른 이름의 파라미터가 전달되어 주의가 요구됩니다. 정리해보면 아래와 같습니다. - -- \[PC결제] iframe → 콜백 함수 호출 → 콜백 함수로 전달되는 response 객체에 `success` 키 값으로 전달 - - ```jsx - IMP.request_pay( - { - // 중략 - }, - function (response) { - const { success } = response; // 결제 성공 또는 실패 여부 - if (success) { - // 결제 성공 시 프로세스 - } else { - // 결제 실패 시 프로세스 - } - } - ); - ``` +

PC 결제는 `success`, 모바일 결제는 `imp_success` 전달

-- \[모바일 결제] 리디렉션 → m_redirect_url로 302 리디렉션 → `imp_success` 쿼리 파라미터 전달 + PC와 모바일에서 결제창이 각기 다른 방식으로 호출되기 때문에, 결제 후속 프로세스에도 차이가 있습니다. PC 결제의 경우 페이조아 결제창이 iframe 방식으로 호출되기 때문에 결제 프로세스 완료 후 콜백 함수(`IMP.request_pay` 함수 호출시 전달한 두 번째 파라미터)가 호출되지만, 모바일 결제의 경우 페이조아 결제창이 페이조아 URL로 리디렉션되기 때문에 결제 프로세스 완료 후 지정 된 URL(`m_redirect_url`)로 302 리디렉션 됩니다. 이때 결제 실패/성공 여부를 의미하는 파라미터가 전달되는데, PC 결제시에는 `success`, 모바일 결제시에는 `imp_success`로 서로 다른 이름의 파라미터가 전달되어 주의가 요구됩니다. 정리해보면 아래와 같습니다. - ```text - /** - * m_redirect_url을 https://myservice.com/payments/complete로 설정한 후 - * 결제 프로세스 종료 됐을때 302 리디렉션 되는 URL 예시 - */ - https://myservice.com/payments/complete?**imp_success=true**&imp_uid=imp1234567890&merchant_uid=mid_123467890 - ``` + - \[PC결제] iframe → 콜백 함수 호출 → 콜백 함수로 전달되는 response 객체에 `success` 키 값으로 전달 + + ```tsx + IMP.request_pay( + { + // 중략 + }, + function (response) { + const { success } = response; // 결제 성공 또는 실패 여부 + if (success) { + // 결제 성공 시 프로세스 + } else { + // 결제 실패 시 프로세스 + } + }, + ); + ``` -**`imp_success`와 `success`는 deprecated** + - \[모바일 결제] 리디렉션 → m\_redirect\_url로 302 리디렉션 → `imp_success` 쿼리 파라미터 전달 -하지만 애초에 `imp_success` 파라미터든 `success` 파라미터는 deprecated 되었기 때문에 해당 파라미터를 기반으로 결제 실패/성공 여부를 판단하시면 안 됩니다. 해당 파라미터는 단순히 포트원 → 고객사 클라이언트로 응답되는 시기의 결제 실패/성공 여부를 내려주는데, 이 값은 페이조아 → 포트원으로 결제 결과 통지 → 포트원 DB 업데이트가 완료된 시점이어야지만 정확하다고 볼 수 있습니다. + ```text + /** + * m_redirect_url을 https://myservice.com/payments/complete로 설정한 후 + * 결제 프로세스 종료 됐을때 302 리디렉션 되는 URL 예시 + */ + https://myservice.com/payments/complete?**imp_success=true**&imp_uid=imp1234567890&merchant_uid=mid_123467890 + ``` -그런데 **페이조아 → 포트원로의 결제 결과가 전달 → 포트원 DB 업데이트와 포트원 → 고객사 클라이언트로의 응답이 비동기로 동작**하기 때문에 **실제로는 결제가 정상적으로 완료된 경우에도 아직 포트원 DB에 업데이트가 안 된 시점이라 고객사 클라이언트로 응답되는 `imp_success` 또는 `success` 파라미터가 `false`일 수** 있습니다. + **`imp_success`와 `success`는 deprecated** -따라서 포트원 → 고객사 클라이언트로 응답되는 결과 데이터 중 신뢰할 수 있는 값은 오로지 포트원 주문 번호(`imp_uid`)와 고객사 주문 번호(`merchant_uid`)이며, 이 값을 고객사 서버로 전달해 포트원 결제내역 조회 API([GET /payments/\{imp_uid}](https://api.iamport.kr/#!/payments/getPaymentByImpUid))를 호출한 결과(`status`)를 보고 결제 실패(`failed`)/성공(`paid`) 여부를 판단하시길 바랍니다. + 하지만 애초에 `imp_success` 파라미터든 `success` 파라미터는 deprecated 되었기 때문에 해당 파라미터를 기반으로 결제 실패/성공 여부를 판단하시면 안 됩니다. 해당 파라미터는 단순히 포트원 → 고객사 클라이언트로 응답되는 시기의 결제 실패/성공 여부를 내려주는데, 이 값은 페이조아 → 포트원으로 결제 결과 통지 → 포트원 DB 업데이트가 완료된 시점이어야지만 정확하다고 볼 수 있습니다. + 그런데 **페이조아 → 포트원으로의 결제 결과가 전달 → 포트원 DB 업데이트와 포트원 → 고객사 클라이언트로의 응답이 비동기로 동작**하기 때문에 **실제로는 결제가 정상적으로 완료된 경우에도 아직 포트원 DB에 업데이트가 안 된 시점이라 고객사 클라이언트로 응답되는 `imp_success` 또는 `success` 파라미터가 `false`일 수** 있습니다. + + 따라서 포트원 → 고객사 클라이언트로 응답되는 결과 데이터 중 신뢰할 수 있는 값은 오로지 포트원 주문 번호(`imp_uid`)와 고객사 주문 번호(`merchant_uid`)이며, 이 값을 고객사 서버로 전달해 포트원 결제내역 조회 API([GET /payments/\{imp\_uid}](https://api.iamport.kr/#!/payments/getPaymentByImpUid))를 호출한 결과(`status`)를 보고 결제 실패(`failed`)/성공(`paid`) 여부를 판단하시길 바랍니다.
-

사파리 브라우저 - 하나카드 / NH앱캐시 결제 시 세션 관련 이슈 존재

- -사파리 브라우저에서 하나카드 / NH앱캐시(계좌이체) 결제 시 아래와 같이 `세션 유효기간이 초과되어 카드사와 연결이 종료되었습니다`와 같은 메시지가 렌더링되며 더 이상 결제가 불가능한 이슈가 있습니다. +

사파리 브라우저 - 하나카드 / NH앱캐시 결제 시 세션 관련 이슈 존재

-참고이미지 + 사파리 브라우저에서 하나카드 / NH앱캐시(계좌이체) 결제 시 아래와 같이 `세션 유효기간이 초과되어 카드사와 연결이 종료되었습니다`와 같은 메시지가 렌더링되며 더 이상 결제가 불가능한 이슈가 있습니다. -이러한 현상을 겪으시는 경우, 사파리 환경설정에서 아래와 같이 `크로스 사이트 추적 방지` 해제 및 `모든 쿠키 차단`이 모두 해제되어 있는지 확인해 보시고, 모두 해제 후 다시 시도해보시길 바랍니다. + 참고이미지 -참고이미지 + 이러한 현상을 겪으시는 경우, 사파리 환경설정에서 아래와 같이 `크로스 사이트 추적 방지` 해제 및 `모든 쿠키 차단`이 모두 해제되어 있는지 확인해 보시고, 모두 해제 후 다시 시도해보시길 바랍니다. + 참고이미지
-

사파리/파이어폭스 브라우저 - BC카드 결제시 이슈 존재

+

사파리/파이어폭스 브라우저 - BC카드 결제시 이슈 존재

-신용카드 결제창에서 BC카드 선택 후 다음 버튼 클릭시 "지불에 실패하였습니다"라는 알림창이 뜨면서 더 이상 진행되지 않는 이슈가 있습니다. 다른 브라우저(크롬, 오페라, 엣지 등)나 다른 카드사에서는 이상 없이 BC카드 결제를 위한 페이북 QR코드가 렌더링되지만, 사파리와 파이어폭스에서는 아래와 같이 "지불에 실패하였습니다"라는 메시지를 담고 있는 알림창이 뜨면서 더 이상 결제가 진행되지 않습니다. + 신용카드 결제창에서 BC카드 선택 후 다음 버튼 클릭시 "지불에 실패하였습니다"라는 알림창이 뜨면서 더 이상 진행되지 않는 이슈가 있습니다. 다른 브라우저(크롬, 오페라, 엣지 등)나 다른 카드사에서는 이상 없이 BC카드 결제를 위한 페이북 QR코드가 렌더링되지만, 사파리와 파이어폭스에서는 아래와 같이 "지불에 실패하였습니다"라는 메시지를 담고 있는 알림창이 뜨면서 더 이상 결제가 진행되지 않습니다. -참고이미지 + 참고이미지 -이러한 현상을 겪으시는 경우, 사파리 환경설정에서 아래와 같이 `*.payjoa.co.kr` 도메인에 대해 팝업 `허용` 설정 되어 있으신지 확인해보시고, 허용 후 다시 시도해보시길 바랍니다. - -참고이미지 + 이러한 현상을 겪으시는 경우, 사파리 환경설정에서 아래와 같이 `*.payjoa.co.kr` 도메인에 대해 팝업 `허용` 설정 되어 있으신지 확인해보시고, 허용 후 다시 시도해보시길 바랍니다. + 참고이미지
-

실시간 계좌이체 결제 플로우 상이

+

실시간 계좌이체 결제 플로우 상이

-페이조아의 경우 내부적으로 토스페이먼츠 - 계좌이체를 사용하고 있어 토스 간편결제, NH앱캐시 그리고 계좌 정보 직접 입력을 통해서만 계좌이체가 가능합니다. 여기서 계좌 정보 직접 입력시, 보안카드 / OTP 인증 → 공인인증서 인증까지 진행해야 합니다. + 페이조아의 경우 내부적으로 토스페이먼츠 - 계좌이체를 사용하고 있어 토스 간편결제, NH앱캐시 그리고 계좌 정보 직접 입력을 통해서만 계좌이체가 가능합니다. 여기서 계좌 정보 직접 입력시, 보안카드 / OTP 인증 → 공인인증서 인증까지 진행해야 합니다. -단, 모바일 결제의 경우엔 토스 간편결제와 NH앱캐시를 통해서만 결제가 가능합니다. + 단, 모바일 결제의 경우엔 토스 간편결제와 NH앱캐시를 통해서만 결제가 가능합니다. -PC 결제 모바일 결제 + PC 결제 + 모바일 결제
-

가상계좌 입금 완료시, 송금자 이름만 알 수 있음

+

가상계좌 입금 완료시, 송금자 이름만 알 수 있음

-페이조아는 (발급된) 가상계좌에 입금 완료시, 송금자의 정보(은행명, 계좌번호, 송금인) 중 송금자 이름만 알려줍니다. 따라서 포트원 결제내역 조회([**GET /payments/\{imp_uid}**](../../../api/api-1/api-1))시 송금자의 은행코드(`bank_code`)과 은행명(`bank_name`)은 모두 NULL로 내려가며, 송금자 이름을 확인하기 위해서는 아래 예시와 같이 별도의 쿼리 파라미터(`extension`)를 `true`로 설정해주셔야 합니다. + 페이조아는 (발급된) 가상계좌에 입금 완료시, 송금자의 정보(은행명, 계좌번호, 송금인) 중 송금자 이름만 알려줍니다. 따라서 포트원 결제내역 조회([**GET /payments/\{imp\_uid}**](../../../api/api-1/api-1))시 송금자의 은행코드(`bank_code`)과 은행명(`bank_name`)은 모두 NULL로 내려가며, 송금자 이름을 확인하기 위해서는 아래 예시와 같이 별도의 쿼리 파라미터(`extension`)를 `true`로 설정해주셔야 합니다. -```text -GET http://api.iamport.kr/payments/{포트원 번호}?**extension=true** -``` + ```http + GET http://api.iamport.kr/payments/{포트원 번호}?**extension=true** + ``` -```json -{ - // ... 중략 - "bank_code": null, // 송금자 은행 코드 알 수 없음 - "bank_name": null, // 송금자 은행 이름 알 수 없음 - "extension": { + ```json + { // ... 중략 - "REMITTER": "홍길동" // 송금자 이름 + "bank_code": null, // 송금자 은행 코드 알 수 없음 + "bank_name": null, // 송금자 은행 이름 알 수 없음 + "extension": { + // ... 중략 + "REMITTER": "홍길동" // 송금자 이름 + } } -} -``` - + ```
-

가상계좌 결제 취소시, PG사와 특약 필요

- -가상계좌 입금 완료 건에 대한 결제 취소(환불)은 가상계좌 발급 시 부과되는 수수료 이슈로 인해 페이조아와 특약을 맺어야지만 가능합니다. 이 특약 없이는 기본적으로 가상계좌 결제 건의 환불은 불가능합니다. +

가상계좌 결제 취소시, PG사와 특약 필요

+ 가상계좌 입금 완료 건에 대한 결제 취소(환불)은 가상계좌 발급 시 부과되는 수수료 이슈로 인해 페이조아와 특약을 맺어야지만 가능합니다. 이 특약 없이는 기본적으로 가상계좌 결제 건의 환불은 불가능합니다.
-

가상계좌 결제 취소시, 실제 환불 금액 입금까지 7 영업일 이상 소요

- -페이조아 가상계좌 결제 취소(환불)는 고객사 → 포트원 → 페이조아로 환불 요청 접수 시, 페이조아 담당자가 수기로 확인 후 환불 처리를 해 주는 프로세스로 진행되기 때문에 환불 금액이 실제로 입금 될때까지 7 영업일 이상 소요됩니다. +

가상계좌 결제 취소시, 실제 환불 금액 입금까지 7 영업일 이상 소요

+ 페이조아 가상계좌 결제 취소(환불)는 고객사 → 포트원 → 페이조아로 환불 요청 접수 시, 페이조아 담당자가 수기로 확인 후 환불 처리를 해 주는 프로세스로 진행되기 때문에 환불 금액이 실제로 입금 될때까지 7 영업일 이상 소요됩니다.
-

과세/면세/복합과세용 CPID는 모두 건별 구분으로 1개만 발급하여 사용

- -페이조아 측으로 해당 CPID 설정을 `건별구분`으로 발급 해달라고 요청해주셔야 합니다. 그래야 하나의 CPID로 과세/면세/복합과세 거래건을 모두 처리할 수 있습니다. +

과세/면세/복합과세용 CPID는 모두 건별 구분으로 1개만 발급하여 사용

+ 페이조아 측으로 해당 CPID 설정을 `건별구분`으로 발급 해달라고 요청해주셔야 합니다. 그래야 하나의 CPID로 과세/면세/복합과세 거래건을 모두 처리할 수 있습니다.
-

면세금액은 카드 결제만 설정 가능

- -결제창(`IMP.request_pay` 함수) 호출시 총 결제 금액(`amount`)중 면세 금액(`tax_free`)을 설정할 수 있습니다. 단, 페이조아 시스템 상 면세 금액은 카드 결제(`pay_method: "card"`) 시에만 가능하고 계좌이체 / 가상계좌 결제 시에는 설정할 수 없어 전액 과세 처리 됩니다. +

면세금액은 카드 결제만 설정 가능

+ 결제창(`IMP.request_pay` 함수) 호출시 총 결제 금액(`amount`)중 면세 금액(`tax_free`)을 설정할 수 있습니다. 단, 페이조아 시스템 상 면세 금액은 카드 결제(`pay_method: "card"`) 시에만 가능하고 계좌이체 / 가상계좌 결제 시에는 설정할 수 없어 전액 과세 처리 됩니다.
-

페이조아 자체 버그

- -**에스크로 결제시 구매자 전화번호가 결제창에 자동 완성되지 않음** +

페이조아 자체 버그

-참고이미지 + **에스크로 결제시 구매자 전화번호가 결제창에 자동 완성되지 않음** -- `IMP.request_pay` 호출시 전달한 구매자의 전화번호(`buyer_tel`)가 다른 결제창과는 달리 에스크로 결제창에서는 자동 완성되지 않습니다. 이는 페이조아가 해당 기능을 제공하지 않는 것으로 이용에 참고 부탁드립니다. + 참고이미지 + - `IMP.request_pay` 호출시 전달한 구매자의 전화번호(`buyer_tel`)가 다른 결제창과는 달리 에스크로 결제창에서는 자동 완성되지 않습니다. 이는 페이조아가 해당 기능을 제공하지 않는 것으로 이용에 참고 부탁드립니다.
diff --git a/src/content/docs/ko/pg/payment-gateway/eximbay.mdx b/src/content/docs/ko/pg/payment-gateway/eximbay.mdx index 683d969c1..d107e9e84 100644 --- a/src/content/docs/ko/pg/payment-gateway/eximbay.mdx +++ b/src/content/docs/ko/pg/payment-gateway/eximbay.mdx @@ -3,11 +3,11 @@ title: 엑심베이 description: 엑심베이 결제 연동 방법을 안내합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Details from "~/components/gitbook/Details.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 엑심베이 채널 설정하기 @@ -15,143 +15,149 @@ import Tab from "~/components/gitbook/tabs/Tab.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 -엑심베이 결제창을 호출할 수 있습니다. **결제결과**는 **PC / 모바일** 모두 **callback** 으로 전달됩니다. +엑심베이 결제창을 호출할 수 있습니다. **결제결과**는 **PC / 모바일** 모두 **callback** 으로 전달됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "eximbay.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 - name: "주문명:결제테스트", - amount: 14.20, - currency: "USD", // 기본값: USD(원화 KRW는 페이팔 정책으로 인해 지원하지 않음) - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - popup:false // 팝업창 활성 비활성화 컨트롤 -}, function(rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** - -**`pg` \*****string** - -**PG사 구분코드** - -**`eximbay`** 로 지정하면 됩니다. - -**`pay_method`** **\*** **string** - -**결제수단 구분코드** - -- 신용카드: `card` -- 알리페이 / 알리페이 플러스: `alipay` (상점아이디 설정에 따라 알리페이 혹은 알리페이 플러스로 호출됩니다. ) -- 해외카드: `card` -- 유니온페이: `unionpay` -- 텐페이: `tenpay` -- 일본 편의점결제(eContext): `econtext` -- 위챗페이: `wechat` -- 몰페이: `molpay` - -**`merchant_uid`** **\*** **string** - -**`고객사 고유주문번호`** - -매번 고유하게 채번되어야 합니다. - -**`buyer`** **\*** **`string`** - -**`구매자명`** - -**`buyer_tel`** **\*** **`string`** - -**`구매자 연락처`** - -**`amount`** **\*** **`integer`** - -**결제금액** - -**string** 이 아닌점에 유의하세요 - -**`currency`** **`string`** - -**결제통화코드** - -- KRW -- USD -- EUR -- GBP -- JPY -- THB -- SGD -- RUB -- HKD -- CAD -- AUD -- CNY -- TWD -- MYR -- VND -- PHP -- MNT -- NZD -- AED -- MOP -- BRL -- KZT -- NOK -- SAR -- TRY - -**`language`** **`string`** - -- 한국어 : ko -- 영어 : en -- 중국어 : zh -- 일본어 : jp - - + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "eximbay.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 + name: "주문명:결제테스트", + amount: 14.2, + currency: "USD", // 기본값: USD(원화 KRW는 페이팔 정책으로 인해 지원하지 않음) + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + popup: false, // 팝업창 활성 비활성화 컨트롤 + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` + + **주요 파라미터 설명** + + **`pg` \*****string** + + **PG사 구분코드** + + **`eximbay`** 로 지정하면 됩니다. + + **`pay_method`** **\*** **string** + + **결제수단 구분코드** + + - 신용카드: `card` + - 알리페이 / 알리페이 플러스: `alipay` (상점아이디 설정에 따라 알리페이 혹은 알리페이 플러스로 호출됩니다. ) + - 해외카드: `card` + - 유니온페이: `unionpay` + - 텐페이: `tenpay` + - 일본 편의점결제(eContext): `econtext` + - 위챗페이: `wechat` + - 몰페이: `molpay` + + **`merchant_uid`** **\*** **string** + + **`고객사 고유주문번호`** + + 매번 고유하게 채번되어야 합니다. + + **`buyer`** **\*** **`string`** + + **`구매자명`** + + **`buyer_tel`** **\*** **`string`** + + **`구매자 연락처`** + + **`amount`** **\*** **`integer`** + + **결제금액** + + **string** 이 아닌점에 유의하세요 + + **`currency`** **`string`** + + **결제통화코드** + + - KRW + - USD + - EUR + - GBP + - JPY + - THB + - SGD + - RUB + - HKD + - CAD + - AUD + - CNY + - TWD + - MYR + - VND + - PHP + - MNT + - NZD + - AED + - MOP + - BRL + - KZT + - NOK + - SAR + - TRY + + **`language`** **`string`** + + - 한국어 : ko + - 영어 : en + - 중국어 : zh + - 일본어 : jp + -**참고사항** - -포트원은 엑심베이 정기결제를 지원하지 않습니다. + **참고사항** + 포트원은 엑심베이 정기결제를 지원하지 않습니다.
-

편의점 결제 테스트 방법

+

편의점 결제 테스트 방법

+ + **편의점결제 동작 방식** + + 한국의 가상계좌와 같이 결제창 내에서는 등록을 한 다음에 고객에게 이메일 / 문자로 전달되는 화면을 편의점 카운터에서 지불하며 처리합니다. + + - 포트원 내부에서는 `pay_method: "vbank"` 로 기록됨 + - Econtext 등록이 완료되었다는 콜백함수 및 웹훅 전송 (`status: "ready"` 상태 / `vbank_num`은 `unknown`으로 고정) + - Econtext 로부터 입금확인이 되면 포트원에서 엑심베이로부터 응답을 받아 `status: "paid"`로 변경 후 결제완료처리에 대한 웹훅 전송 + + **편의점결제 테스트 진행순서** + + 가상계좌와 같이 실제 고객이 입금한 결과를 테스트해야 하므로 아래와 같이 입금완료됨을 임의적으로 통지받아보실 수 있습니다. -**편의점결제 동작 방식** + 1. 엑심베이 테스트모드 ON상태에서 1번과 같이 결제창 진행 -한국의 가상계좌와 같이 결제창 내에서는 등록을 한 다음에 고객에게 이메일 / 문자로 전달되는 화면을 편의점 카운터에서 지불하며 처리합니다. + 2. 콜백 응답 중 `pg_tid` 값을 별도로 메모 (포트원 관리자콘솔 PG사승인번호 컬럼에서 확인 가능) -- 포트원 내부에서는 `pay_method: "vbank"` 로 기록됨 -- Econtext 등록이 완료되었다는 콜백함수 및 웹훅 전송 (`status: "ready"` 상태 / `vbank_num`은 `unknown`으로 고정) -- Econtext 로부터 입금확인이 되면 포트원에서 엑심베이로부터 응답을 받아 `status: "paid"`로 변경 후 결제완료처리에 대한 웹훅 전송 + 3. [http://test.econ.ne.jp/site/tuchi\_2/tuchi\_menu\_2.html](http://test.econ.ne.jp/site/tuchi_2/tuchi_menu_2.html)로 이동 후 계정 로그인 + (아이디 : `ectest` / 비번 : `#eg0810#`) -**편의점결제 테스트 진행순서** + 4. ShopID : `361301`, orderID : 2번에서 확보한 PG사승인번호 입력 -가상계좌와 같이 실제 고객이 입금한 결과를 테스트해야 하므로 아래와 같이 입금완료됨을 임의적으로 통지받아보실 수 있습니다. + 5. 하단에 있는 **`登録`** 버튼 클릭 -1. 엑심베이 테스트모드 ON상태에서 1번과 같이 결제창 진행 -2. 콜백 응답 중 `pg_tid` 값을 별도로 메모 (포트원 관리자콘솔 PG사승인번호 컬럼에서 확인 가능) -3. [http://test.econ.ne.jp/site/tuchi_2/tuchi_menu_2.html](http://test.econ.ne.jp/site/tuchi_2/tuchi_menu_2.html)로 이동 후 계정 로그인 - (아이디 : `ectest` / 비번 : `#eg0810#`) -4. ShopID : `361301`, orderID : 2번에서 확보한 PG사승인번호 입력 -5. 하단에 있는 **`登録`** 버튼 클릭 -6. 다음 페이지에서 한 번 더 **`登録`** 클릭 -7. 10분 후 결제상태가 `status: "paid"`로 바뀌는지 확인 (이 때 입금에 대한 웹훅 발송됨) + 6. 다음 페이지에서 한 번 더 **`登録`** 클릭 + 7. 10분 후 결제상태가 `status: "paid"`로 바뀌는지 확인 (이 때 입금에 대한 웹훅 발송됨)
diff --git a/src/content/docs/ko/pg/payment-gateway/inicis.mdx b/src/content/docs/ko/pg/payment-gateway/inicis.mdx index c21fd8eab..e291072ee 100644 --- a/src/content/docs/ko/pg/payment-gateway/inicis.mdx +++ b/src/content/docs/ko/pg/payment-gateway/inicis.mdx @@ -3,12 +3,12 @@ title: KG 이니시스 description: KG이니시스 결제창 연동 가이드입니다. --- +import Figure from "~/components/Figure.astro"; import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. KG이니시스 채널 설정하기 @@ -16,327 +16,327 @@ import Tab from "~/components/gitbook/tabs/Tab.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 -[JavaScript SDK](../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 KG이니시스 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback** 으로 수신 되며 모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +[JavaScript SDK](../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 +KG이니시스 결제창을 호출할 수 있습니다. +**결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 +**callback** 으로 수신 되며 +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg : 'html5_inicis.{PG상점아이디}', //테스트 시 html5_inicis.INIpayTest 기재 - pay_method : 'card', - merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호 - name : '주문명:결제테스트', - amount : 1004, - buyer_email : 'test@portone.io', - buyer_name : '구매자이름', - buyer_tel : '010-1234-5678', //필수 파라미터 입니다. - buyer_addr : '서울특별시 강남구 삼성동', - buyer_postcode : '123-456', - m_redirect_url : '{모바일에서 결제 완료 후 리디렉션 될 URL}', - escrow : true, //에스크로 결제인 경우 설정 - vbank_due : 'YYYYMMDD' - bypass : { - acceptmethod : "noeasypay" // 간편결제 버튼을 통합결제창에서 제외(PC) - P_RESERVED: "noeasypay=Y" // 간편결제 버튼을 통합결제창에서 제외(모바일) - acceptmethod: 'cardpoint' // 카드포인트 사용시 설정(PC) - P_RESERVED : 'cp_yn=Y' // 카드포인트 사용시 설정(모바일) - }, - period : { - from : "20200101", //YYYYMMDD - to : "20201231" //YYYYMMDD - } -}, function(rsp) { // callback 로직 - //* ...중략... *// -}); -``` - -### **주요 파라미터 설명** - -**`pg` \*****string** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "html5_inicis.{PG상점아이디}", //테스트 시 html5_inicis.INIpayTest 기재 + pay_method: "card", + merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", //필수 파라미터 입니다. + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + escrow: true, //에스크로 결제인 경우 설정 + vbank_due: "YYYYMMDD", + bypass: { + acceptmethod: "noeasypay", // 간편결제 버튼을 통합결제창에서 제외(PC) + P_RESERVED: "noeasypay=Y", // 간편결제 버튼을 통합결제창에서 제외(모바일) + acceptmethod: "cardpoint", // 카드포인트 사용시 설정(PC) + P_RESERVED: "cp_yn=Y", // 카드포인트 사용시 설정(모바일) + }, + period: { + from: "20200101", //YYYYMMDD + to: "20201231", //YYYYMMDD + }, + }, + function (rsp) { + // callback 로직 + //* ...중략... *// + }, + ); + ``` + + ### **주요 파라미터 설명** + + **`pg` \*****string** + + **PG사 구분코드** + + **`html5_inicis.`**`{`PG상점아이디} + + PG상점아이디는 KG 이니시스와 계약 후 발급받을 수 있습니다. + + **`pay_method`** **\*** **string** -**PG사 구분코드** + **결제수단 구분코드** -**`html5_inicis.`**`{`PG상점아이디} + - `card` (신용카드) + - `samsung` (삼성페이 허브형) + - `kakaopay` (카카오페이 허브형) + - `ssgpay` (SSG페이 허브형) + - `chai` (차이페이) + - `trans` (실시간 계좌이체) + - `vbank`(가상계좌) + - `phone` (휴대폰소액결제) + - `payco` (페이코 허브형) + - tosspay (토스간편결제 허브형) + - lpay (L페이 허브형) + - `naverpay` (네이버페이) + - `cultureland` (문화상품권) + - `smartculture` (스마트문상) + - `happymoney` (해피머니) + - booknlife(도서문화상품권) -PG상점아이디는 KG 이니시스와 계약 후 발급받을 수 있습니다. + **`merchant_uid`** **\*** **string** -**`pay_method`** **\*** **string** + **주문번호** -**결제수단 구분코드** + 매번 고유하게 채번되어야 합니다. -- `card` (신용카드) -- `samsung` (삼성페이 허브형) -- `kakaopay` (카카오페이 허브형) -- `ssgpay` (SSG페이 허브형) -- `chai` (차이페이) -- `trans` (실시간 계좌이체) -- `vbank`(가상계좌) -- `phone` (휴대폰소액결제) -- `payco` (페이코 허브형) -- tosspay (토스간편결제 허브형) -- lpay (L페이 허브형) -- `naverpay` (네이버페이) -- `cultureland` (문화상품권) -- `smartculture` (스마트문상) -- `happymoney` (해피머니) -- booknlife(도서문화상품권) + **`amount` \*****integer** -**`merchant_uid`** **\*** **string** + **결제금액** -**주문번호** + **string** 이 아닌점에 유의하세요 -매번 고유하게 채번되어야 합니다. + **`buyer_tel`** **\*** **`string`** -**`amount` \*****integer** + **`주문자연락처`** -**결제금액** + 필수 파라미터 입니다. -**string** 이 아닌점에 유의하세요 + **`vbank_due`** **string** -**`buyer_tel`** **\*** **`string`** + 가상계좌 입금마감일시를 지정할수 있습니다.(미 지정시 Default 30일) -**`주문자연락처`** + **`period`** **array** -필수 파라미터 입니다. + - `from` + - `to` -**`vbank_due`** **string** + 인증 결제창 제공기간을 표현할수 있습니다. -가상계좌 입금마감일시를 지정할수 있습니다.(미 지정시 Default 30일) - -**`period`** **array** - -``` -from -to -``` - -인증 결제창 제공기간을 표현할수 있습니다. - - - - - - -**PG사 결제창으로 카드정보를 입력받고 빌링키를 발급할수 있습니다.** - -- 인증결제창 호출 파라미터에서 **customer_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. -- 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. -- amount 파라미터에 금액을 설정하여도 실제 승인은 이루어지지 않습니다. - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "html5_inicis.{PG상점아이디}", // 실제 계약 후에는 실제 상점아이디로 변경 - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 0, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` + + -### + + **PG사 결제창으로 카드정보를 입력받고 빌링키를 발급할수 있습니다.** -### **주요 파라미터 설명** + - 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + - 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. + - amount 파라미터에 금액을 설정하여도 실제 승인은 이루어지지 않습니다. -**`pg` \*****string** + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "html5_inicis.{PG상점아이디}", // 실제 계약 후에는 실제 상점아이디로 변경 + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 0, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` -**PG사 구분코드** + ### **주요 파라미터 설명** -\*\*`html5_inicis`\*\*로 설정 + **`pg` \*****string** -> KG이니시스에서 발급받은 상점아이디가 여러개(각각 일반 및 정기)인 경우에는 html5_inicis.\{상점아이디} 또는 inicis.\{상점아이디}(for ActiveX)로 지정합니다. + **PG사 구분코드** -**`customer_uid` \*****string** + **`html5_inicis`** 로 설정 -**카드 빌링키** + > KG이니시스에서 발급받은 상점아이디가 여러개(각각 일반 및 정기)인 경우에는 html5\_inicis.\{상점아이디} 또는 inicis.\{상점아이디}(for ActiveX)로 지정합니다. -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + **`customer_uid` \*****string** -**`amount` \*****Integer** + **카드 빌링키** -**결제금액** + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다.(실 결제를 발생시키기 위해서는 **customer_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.) + **`amount` \*****Integer** -**빌링키(customer_uid)로 결제 요청하기** + **결제금액** -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + 결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다.(실 결제를 발생시키기 위해서는 **customer\_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.) -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + **빌링키(customer\_uid)로 결제 요청하기** - + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. - -**API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -**일회성 결제 요청하기** + + **API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** -REST[ **API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + **일회성 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -**빌링키 발급 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + **빌링키 발급 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -**빌링키 발급 및 최초 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + **빌링키 발급 및 최초 결제 요청하기** -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. -- **`amount`** : 0원 이상 설정시 빌링키 발급과 동시에 실결제가 발생됩니다. + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + - **`amount`** : 0원 이상 설정시 빌링키 발급과 동시에 실결제가 발생됩니다. -**빌링키로 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + **빌링키로 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. -**자세한 가이드는 아래 링크를 참조하세요** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + **자세한 가이드는 아래 링크를 참조하세요** - + + ## 3. 부가기능 - -```javascript title="javascript" -display: { - card_quota: [6] // 할부개월 6개월만 활성화 -} -``` - -**파라미터 설명** - -- **card_quota :** 지정한 숫자에 해당하는 할부개월수만 표기 - - `[]`: 일시불만 결제 가능 - - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6 할부개월 선택 가능\\ - - -할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. - - - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - } -} -``` - -**파라미터 설명** - -- **code** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **quota** : 할부 개월 수. 일시불일 시 0 으로 지정. (**integer**) - - - - - - -```javascript title="javascript" -card: { - detail: [ - { card_code: "*", enabled: false }, //모든 카드사 비활성화 - { card_code: '366', enabled: true } //특정 카드만 활성화 - ] -} -``` - -**파라미터 설명** + + ```json + { + "display": { + "card_quota": [6] // 할부개월 6개월만 활성화 + } + } + ``` + + **파라미터 설명** + + - **card\_quota :** 지정한 숫자에 해당하는 할부개월수만 표기 + - `[]`: 일시불만 결제 가능 + - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6 할부개월 선택 가능\\ + + + 할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. + + + + + + + ```json + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` -- **card_code :** 금결원 카드사코드 [**링크**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) 참조 (**string)** -- **enabled :** 해당카드 활성화 여부 (**boolean)** + **파라미터 설명** - + - **code** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + - **quota** : 할부 개월 수. 일시불일 시 0 으로 지정. (**integer**) - -```javascript -// 영세율의 경우 -amount: 1000, -tax_free: 0, -vat_amount: 0 -``` + + -**파라미터 설명** + + ```json + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, //모든 카드사 비활성화 + { "card_code": "366", "enabled": true } //특정 카드만 활성화 + ] + } + } + ``` -- **vat_amount**: 상점아이디(MID)에 영세율 설정된 경우 부가세(`vat_amount`) 및 면세금액(`tax_free`)를 0원으로 지정하여 영세율 결제 가능 + **파라미터 설명** - -주의사항 + - **card\_code :** 금결원 카드사코드 [**링크**](https://chaifinance.notion.site/53589280bbc94fab938d93257d452216?v=eb405baf52134b3f90d438e3bf763630) 참조 (**string)** + - **enabled :** 해당카드 활성화 여부 (**boolean)** + -- 취소 시 **요청된 값 그대로 이니시스에서 취소**가 되므로, 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 부가세, 면세금액이 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다. -- 실시간 계좌이체 및 가상계좌의 경우 현금영수증 발급하지 않으면 매출전표에 부가세가 나눠서 표시 되지 않습니다 + + ```json + // 영세율의 경우 + { + "amount": 1000, + "tax_free": 0, + "vat_amount": 0 + } + ``` - + **파라미터 설명** - + - **vat\_amount**: 상점아이디(MID)에 영세율 설정된 경우 부가세(`vat_amount`) 및 면세금액(`tax_free`)를 0원으로 지정하여 영세율 결제 가능 - - -**상점 부담 무이자 할부 설정은 사전에 반드시 이니시스에 협의후 이니시스쪽 설정이 먼저 선행되어야 합니다.** + + 주의사항 - + - 취소 시 **요청된 값 그대로 이니시스에서 취소**가 되므로, 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 부가세, 면세금액이 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다. + - 실시간 계좌이체 및 가상계좌의 경우 현금영수증 발급하지 않으면 매출전표에 부가세가 나눠서 표시 되지 않습니다 + + -이니시스 설정이 완료되었으면 아래와 같이 파라미터 설정하시면 됩니다. + + + **상점 부담 무이자 할부 설정은 사전에 반드시 이니시스에 협의후 이니시스쪽 설정이 먼저 선행되어야 합니다.** + -```javascript -card: { - interest_free: 7, //모든 카드 7개월까지 상점분담무이자 -} -``` + 이니시스 설정이 완료되었으면 아래와 같이 파라미터 설정하시면 됩니다. - + ```json + { + "card": { + "interest_free": 7 //모든 카드 7개월까지 상점분담무이자 + } + } + ``` + diff --git a/src/content/docs/ko/pg/payment-gateway/jtnet.mdx b/src/content/docs/ko/pg/payment-gateway/jtnet.mdx index b61340c0d..98c73a54d 100644 --- a/src/content/docs/ko/pg/payment-gateway/jtnet.mdx +++ b/src/content/docs/ko/pg/payment-gateway/jtnet.mdx @@ -3,20 +3,20 @@ title: JTNET description: JTNET 결제 연동 방법을 안내합니다. --- +import Figure from "~/components/Figure.astro"; import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -### 1. JTNET PG 설정하기 +## 1. JTNET PG 설정하기 [**JTNET 설정**](../../ready/2-pg/payment-gateway/jtnet) 페이지의 내용을 참고하여 PG 설정을 진행합니다.
-### 2. 결제 요청하기 +## 2. 결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 JTNET 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 @@ -24,194 +24,195 @@ JTNET 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 모바일의 경우 **`m_redirect_url`** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "jtnet.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}" -}, function(rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "jtnet.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`pg` \*****string** + **주요 파라미터 설명** -**PG사 구분코드** + **`pg` \*****string** -**`jtnet`** 로 지정하면 됩니다. + **PG사 구분코드** -**`pay_method`** **\*** **string** + **`jtnet`** 로 지정하면 됩니다. -**결제수단 구분코드** + **`pay_method`** **\*** **string** -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) -- phone (휴대폰소액결제) + **결제수단 구분코드** -**`merchant_uid`** **\*** **string** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) + - phone (휴대폰소액결제) -**`고객사 고유주문번호`** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **`고객사 고유주문번호`** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제금액** + **`amount`** **\*** **`integer`** -**string** 이 아닌점에 유의하세요 + **결제금액** - + **string** 이 아닌점에 유의하세요 - + + - -인증결제창 호출 파라미터에서 **customer_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. - -**amount 금액** + + **amount 금액** -- 빌링키 발급시 amount 파라미터에 **금액이 설정되는 경우** **실 결제와 동시에 빌링키가 발급**됩니다. -- 실결제를 원하지 않은 경우 amount 금액을 **0원**으로 설정합니다. + - 빌링키 발급시 amount 파라미터에 **금액이 설정되는 경우** **실 결제와 동시에 빌링키가 발급**됩니다. + - 실결제를 원하지 않은 경우 amount 금액을 **0원**으로 설정합니다. + - + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "jtnet.{상점 ID}", + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 0, // 빌링키 발급만 진행하며 결제승인을 하지 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력 + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "jtnet.{상점 ID}", - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 0, // 빌링키 발급만 진행하며 결제승인을 하지 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력 - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` - -**주요 파라미터 설명** - -**`pg` \*** **string** - -**PG사 구분코드** + **주요 파라미터 설명** -**`jtnet`** 로 지정하면 됩니다. + **`pg` \*** **string** -**`customer_uid` \*** **string** + **PG사 구분코드** -**카드 빌링키** + **`jtnet`** 로 지정하면 됩니다. -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + **`customer_uid` \*** **string** -**`amount` \*** **Integer** + **카드 빌링키** -**결제금액** + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -0원으로 설정시 빌링키만 발급되며 0원 이상 설정시 **실 결제와 빌링키 발급이 동시**에 이루어 집니다.\\ + **`amount` \*** **Integer** -**빌링키(customer_uid)로 결제 요청하기** + **결제금액** -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + 0원으로 설정시 빌링키만 발급되며 0원 이상 설정시 **실 결제와 빌링키 발급이 동시**에 이루어 집니다.\\ -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + **빌링키(customer\_uid)로 결제 요청하기** - + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. - -**API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -**일회성 결제 요청하기** + + **API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** -REST[ **API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + **일회성 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -**빌링키 발급 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + **빌링키 발급 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -**빌링키 발급 및 최초 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + **빌링키 발급 및 최초 결제 요청하기** -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. -**빌링키로 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + **빌링키로 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. -**자세한 가이드는 아래 링크를 참조하세요** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + **자세한 가이드는 아래 링크를 참조하세요** - + + -### 3. 부가기능 +## 3. 부가기능 - -```javascript title="javascript" -card: { - detail: [ - { card_code: "*", enabled: false }, // 모든 카드사 비활성화 - { card_code: '366', enabled: true }, // 특정 카드만 활성화 - ], -} -``` - -**파라미터 설명** - -- **card_code:** 금결원 카드사코드 [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** -- **enabled:** 해당카드 활성화 여부 (**boolean)** - - + + ```json + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // 모든 카드사 비활성화 + { "card_code": "366", "enabled": true } // 특정 카드만 활성화 + ] + } + } + ``` + + **파라미터 설명** + + - **card\_code:** 금결원 카드사코드 [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** + - **enabled:** 해당카드 활성화 여부 (**boolean)** + diff --git a/src/content/docs/ko/pg/payment-gateway/kg.mdx b/src/content/docs/ko/pg/payment-gateway/kg.mdx index 24e695c91..a592a7882 100644 --- a/src/content/docs/ko/pg/payment-gateway/kg.mdx +++ b/src/content/docs/ko/pg/payment-gateway/kg.mdx @@ -3,8 +3,8 @@ title: KG모빌리언스 description: KG모빌리언스 결제 연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Figure from "~/components/Figure.astro"; +import Codepen from "~/components/gitbook/Codepen.astro"; import Hint from "~/components/Hint.astro"; ## 1. KG모빌리언스 채널 설정하기 @@ -13,11 +13,15 @@ import Hint from "~/components/Hint.astro";
-### 2.결제 요청하기 +## 2. 결제 요청하기 -[JavaScript SDK](../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 KG 모빌리언스 결제창을 호출할 수 있습니다. **결제 결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback** 으로 수신되고 모바일의 경우 **m_redirect_url**로 리디렉션됩니다. +[JavaScript SDK](../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 +KG 모빌리언스 결제창을 호출할 수 있습니다. +**결제 결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 +**callback** 으로 수신되고 +모바일의 경우 **m\_redirect\_url**로 리디렉션됩니다. -```javascript title="Javascript SDK" +```ts title="Javascript SDK" IMP.request_pay( { pg: "mobilians.{상점 ID}", @@ -35,11 +39,11 @@ IMP.request_pay( function (rsp) { // callback 로직 //* ...중략... *// - } + }, ); ``` -### 주요 파라미터 설명 +## 주요 파라미터 설명 **`pg` \*****string** @@ -68,10 +72,10 @@ IMP.request_pay( -인증결제창 호출 파라미터에서 **customer_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비 +인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. -```javascript title="Javascript SDK" +```ts title="Javascript SDK" IMP.request_pay( { pg: "mobilians", @@ -91,16 +95,14 @@ IMP.request_pay( } else { alert("빌링키 발급 실패"); } - } + }, ); ``` - -- 비 인증 결제를 위해서는 **KG모빌리언스와 계약이 완료된 MID 정보를** 관리자콘솔에 설정하셔야 비 인증 결제창을 활성화시킬 수 있습니다. -- **KG모빌리언스 휴대폰 결제는** 빌링키 발급시 **실 결제가 발생됩니다.** -- 최초 승인일자 기준 매월 **동일한 일자에 동일 금액**이 재결제되어야 합니다. - + - 비 인증 결제를 위해서는 **KG모빌리언스와 계약이 완료된 MID 정보를** 관리자콘솔에 설정하셔야 비 인증 결제창을 활성화시킬 수 있습니다. + - **KG모빌리언스 휴대폰 결제는** 빌링키 발급시 **실 결제가 발생됩니다.** + - 최초 승인일자 기준 매월 **동일한 일자에 동일 금액**이 재결제되어야 합니다. ### 주요 파라미터 설명 @@ -127,7 +129,9 @@ IMP.request_pay( ### 빌링키(`customer_uid`)로 결제 요청하기 -빌링키 발급이 성공하면 실 빌링키는 `customer_uid` 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. `customer_uid`를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api) 를 호출하시면 결제를 발생시킬 수 있습니다. +빌링키 발급이 성공하면 실 빌링키는 `customer_uid` 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. +`customer_uid`를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api) 를 호출하시면 +결제를 발생시킬 수 있습니다. ```sh title="server-side" curl -H "Content-Type: application/json" \ diff --git a/src/content/docs/ko/pg/payment-gateway/kicc.mdx b/src/content/docs/ko/pg/payment-gateway/kicc.mdx index a4fd0d490..782124089 100644 --- a/src/content/docs/ko/pg/payment-gateway/kicc.mdx +++ b/src/content/docs/ko/pg/payment-gateway/kicc.mdx @@ -5,9 +5,9 @@ description: 이지페이(KICC) 결제창 연동 방법을 안내합니다. import Figure from "~/components/Figure.astro"; import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 이지페이(KICC) 채널 설정하기 @@ -18,239 +18,236 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 2. 결제 요청하기 - -[JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 KICC 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 모바일의 경우 **m_redirect_url**로 리디렉션됩니다. + + [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 KICC 결제창을 호출할 수 있습니다. + **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 + 모바일의 경우 **m\_redirect\_url**로 리디렉션됩니다. + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kicc.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", // 필수 + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + //* ...중략... *// + }, + ); + ``` + + ### 주요 파라미터 설명 -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kicc.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", // 필수 - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - // callback 로직 - //* ...중략... *// - } -); -``` + **`pg` \*****string** -### 주요 파라미터 설명 + **PG사 구분코드** -**`pg` \*****string** + **`kicc`** 로 지정하면 됩니다. -**PG사 구분코드** + **`pay_method`** **\*** **string** -**`kicc`** 로 지정하면 됩니다. + **결제수단 구분코드** -**`pay_method`** **\*** **string** + - card(신용카드) + - trans(실시간 계좌이체) + - vbank(가상계좌) + - phone(휴대폰소액결제) -**결제수단 구분코드** + **`merchant_uid`** **\*** **string** -- card(신용카드) -- trans(실시간 계좌이체) -- vbank(가상계좌) -- phone(휴대폰소액결제) + **주문번호** -**`merchant_uid`** **\*** **string** + 매번 고유하게 채번되어야 합니다. -**주문번호** + **`buyer_tel`** **\*** **`string`** -매번 고유하게 채번되어야 합니다. + **`주문자 연락처`** -**`buyer_tel`** **\*** **`string`** + **`amount` \*****number** -**`주문자 연락처`** + **결제금액** -**`amount` \*****number** + **string** 이 아닌점에 유의하세요 -**결제금액** + **`escrow`** **`boolean`** -**string** 이 아닌점에 유의하세요 + **에스크로 설정여부** -**`escrow`** **`boolean`** + 계좌이체, 가상계좌만 지원됩니다. -**에스크로 설정여부** + + -계좌이체, 가상계좌만 지원됩니다. + + 인증결제창 호출 파라미터에서 **`customer_uid`** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. - - + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kicc", + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 1004, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` - + + - 비 인증 결제를 위해서는 **KICC와 협의가 완료된 MID 정보** 관리자콘솔에 설정하셔야 비인증 결제창을 활성화 시킬수 있습니다. + - KICC는 빌링키 발급시 **실 결제가 발생되지 않습니다**.(금액을 지정해도 결제가 발생되지 않음) + -인증결제창 호출 파라미터에서 **`customer_uid`** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. + ### 주요 파라미터 설명 -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kicc", - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 1004, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` + **`pg` \*****string** - + **PG사 구분코드** -- 비 인증 결제를 위해서는 **KICC와 협의가 완료된 MID 정보** 관리자콘솔에 설정하셔야 비인증 결제창을 활성화 시킬수 있습니다. -- KICC는 빌링키 발급시 **실 결제가 발생되지 않습니다**.(금액을 지정해도 결제가 발생되지 않음) + **`kicc.`** 로 지정하면 됩니다. - + **`customer_uid` \*****string** - ### 주요 파라미터 설명 + **카드 빌링키** + + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -**`pg` \*****string** + **`amount` \*****number** -**PG사 구분코드** + **결제금액** -**`kicc.`** 로 지정하면 됩니다. + 결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다. -**`customer_uid` \*****string** + (실 결제를 발생시키기 위해서는 **`customer_uid`** 로 **REST API 를 이용하여 결제요청**을 해 주셔야 합니다.) -**카드 빌링키** + ### 빌링키(`customer_uid`)로 결제 요청하기 -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + 빌링키 발급이 성공하면 실 빌링키는 `customer_uid` 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. `customer_uid`를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api) 를 호출하시면 결제를 발생시킬 수 있습니다. -**`amount` \*****number** + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":1004}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -**결제금액** + + **포트원을 통한 KICC API 방식 비 인증 결제는 지원되지 않습니다.** + + + + +## 3. 부가기능 -결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다. + + + KICC는 **현금성 결제수단** (실시간 계좌이체, 가상계좌)에 한하여 에스크로 결제수단을 지원합니다. + + > 에스크로 설정을 위해서는 아래 파라미터를 기본적으로 설정한 후 추가적인 파라미터를 + > + > 입력해야 합니다. + > + > - **`escrow: true`** + + **추가 파라미터 안내** + + 에스크로 결제 시 다음 파라미터를 반드시 설정해야 합니다. + + - `buyer_name` : 구매자 이름 + + - `buyer_email` : 구매자 이메일 + + - `buyer_tel` : 구매자 전화번호 + + - `kiccProducts` : 상품별 부분배송을 위한 상품 관련 정보 (4개의 필수 속성으로 구성된 객체배열). 해당 `amount` 값은 결제 금액(`param.amount`) 값과 관계가 없으며 비교검증되지 않습니다. + - `orderNumber` : 상품주문번호 + - `name` : 상품명 + - `quantity` : 수량 + - `amount` : 상품 가격 + + ```json + { + "escrow": true, // 에스크로 결제인 경우 필요 + "kiccProducts": [ + { + "orderNumber": "xxxx", + "name": "상품A", + "quantity": 3, + "amount": 1000 + }, + { + "orderNumber": "yyyy", + "name": "상품B", + "quantity": 2, + "amount": 3000 + } + ] + } + ``` + + + + ```json + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` -(실 결제를 발생시키기 위해서는 **`customer_uid`** 로 **REST API 를 이용하여 결제요청**을 해 주셔야 합니다.) + **파라미터 설명** -### 빌링키(`customer_uid`)로 결제 요청하기 + - **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + - **`quota`** : 할부 개월 수. 일시불일 시 0 으로 지정. (**number**) -빌링키 발급이 성공하면 실 빌링키는 `customer_uid` 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. `customer_uid`를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api) 를 호출하시면 결제를 발생시킬 수 있습니다. + + **주의사항** -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":1004}' \ - https://api.iamport.kr/subscribe/payments/again -``` + - 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다. + + - - **포트원을 통한 KICC API 방식 비 인증 결제는 지원되지 않습니다.** - + + ```json + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, //모든 카드사 비활성화 + { "card_code": "366", "enabled": true } //특정 카드만 활성화 + ] + } + } + ``` - - + **파라미터 설명** -## 3. 부가기능 + - **`card_code` :** 금융결제원 카드사 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** + - **`enabled` :** 해당카드 활성화 여부 (**boolean)** - - - -KICC는 **현금성 결제수단** (실시간 계좌이체, 가상계좌)에 한하여 에스크로 결제수단을 지원합니다. - -> 에스크로 설정을 위해서는 아래 파라미터를 기본적으로 설정한 후 추가적인 파라미터를 -> -> 입력해야 합니다. -> -> - **`escrow: true`** - -**추가 파라미터 안내** - -에스크로 결제 시 다음 파라미터를 반드시 설정해야 합니다. - -- `buyer_name` : 구매자 이름 -- `buyer_email` : 구매자 이메일 -- `buyer_tel` : 구매자 전화번호 -- `kiccProducts` : 상품별 부분배송을 위한 상품 관련 정보 (4개의 필수 속성으로 구성된 객체배열). 해당 `amount` 값은 결제 금액(`param.amount`) 값과 관계가 없으며 비교검증되지 않습니다. - - `orderNumber` : 상품주문번호 - - `name` : 상품명 - - `quantity` : 수량 - - `amount` : 상품 가격 - -```javascript title="JavaScript SDK" -escrow: true, // 에스크로 결제인 경우 필요 -kiccProducts: [ - { - orderNumber: "xxxx", - name: "상품A", - quantity: 3, - amount: 1000, - }, - { - orderNumber: "yyyy", - name: "상품B", - quantity: 2, - amount: 3000, - }, -], -``` - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - } -} -``` - -**파라미터 설명** - -- **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **`quota`** : 할부 개월 수. 일시불일 시 0 으로 지정. (**number**) - - - -**주의사항** - -- 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다. - - - - - - -```javascript title="javascript" -card: { - detail: [ - { card_code: "*", enabled: false }, //모든 카드사 비활성화 - { card_code: '366', enabled: true } //특정 카드만 활성화 - ] -} -``` - -**파라미터 설명** - -- **`card_code` :** 금융결제원 카드사 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** -- **`enabled` :** 해당카드 활성화 여부 (**boolean)** - - - - + + diff --git a/src/content/docs/ko/pg/payment-gateway/ksnet/readme.mdx b/src/content/docs/ko/pg/payment-gateway/ksnet/readme.mdx index ddced6de5..2d56959b2 100644 --- a/src/content/docs/ko/pg/payment-gateway/ksnet/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/ksnet/readme.mdx @@ -5,9 +5,9 @@ description: KSNET 결제창 연동 가이드입니다. import Figure from "~/components/Figure.astro"; import Codepen from "~/components/gitbook/Codepen.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro";
@@ -17,207 +17,194 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 2. 결제 요청하기 -[JavaScript SDK (신규)](../../../sdk/javascript-sdk/readme)의 `IMP.request_pay(param, callback)`을 호출하여 KSNET 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 모바일의 경우 **m_redirect_url**로 리디렉션됩니다. +[JavaScript SDK (신규)](../../../sdk/javascript-sdk/readme)의 `IMP.request_pay(param, callback)`을 호출하여 KSNET 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 모바일의 경우 **m\_redirect\_url**로 리디렉션됩니다. -기존 JavaScript SDK를 사용 중이신 경우 [JavaScript SDK (신규)](../../../sdk/javascript-sdk/readme) 문서를 참고하여 업데이트를 진행해주세요. - + 기존 JavaScript SDK를 사용 중이신 경우 [JavaScript SDK (신규)](../../../sdk/javascript-sdk/readme) 문서를 참고하여 업데이트를 진행해주세요. KSNET 결제는 최신 SDK에서만 지원되는 기능입니다. -```javascript title="JS SDK" +```html ``` - -**KSNET을 연동하기 위해서는 위에 안내된 JS SDK를 이용하셔야 합니다.** - + **KSNET을 연동하기 위해서는 위에 안내된 JS SDK를 이용하셔야 합니다.** -#### **기존에 deprecated된 응답들은 모두 제거**됐습니다. ⚠️ + ### **기존에 deprecated된 응답들은 모두 제거**됐습니다. ⚠️ -KSNET 연동시에 사용되는 신규 JS SDK는 기존 모듈에서 제공했던 CallBack 파라미터가 대부분 삭제되었습니다.(특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) + KSNET 연동시에 사용되는 신규 JS SDK는 기존 모듈에서 제공했던 CallBack 파라미터가 대부분 삭제되었습니다.(특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) -해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. + 해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. -**`imp_uid`, `merchant_uid`** - -따라서 해당 SDK를 사용하실때는 `IMP.request_pay`로부터 응답된 객체(또는 쿼리 파라미터)에서 `imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 응답 파라미터 중 status 파라미터로 결제 상태를 파악하셔야 합니다. + **`imp_uid`, `merchant_uid`** + 따라서 해당 SDK를 사용하실때는 `IMP.request_pay`로부터 응답된 객체(또는 쿼리 파라미터)에서 `imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 응답 파라미터 중 status 파라미터로 결제 상태를 파악하셔야 합니다. -```html - -``` - -위 JS SDK를 이용하여 토스페이먼츠, KSNET 연동시 callback Data는 -아래와 같이 두가지 형태로만 내려갑니다. + ```html + + ``` -- `imp_uid` -- `merchant_uid` + 위 JS SDK를 이용하여 토스페이먼츠, KSNET 연동시 callback Data는 + 아래와 같이 두가지 형태로만 내려갑니다. -위 PG사를 제외한 다른 PG사는 `imp_success` 파라미터가 기존처럼 내려가지만 -해당 파리미터는 deprecated 된 값이기 때문에 해당 값에 의존성을 가진 프로그램 로직은 모두 삭제하시는 -방향성을 잡아가셔야 하는점 유념하시기 바랍니다. + - `imp_uid` + - `merchant_uid` + 위 PG사를 제외한 다른 PG사는 `imp_success` 파라미터가 기존처럼 내려가지만 + 해당 파리미터는 deprecated 된 값이기 때문에 해당 값에 의존성을 가진 프로그램 로직은 모두 삭제하시는 + 방향성을 잡아가셔야 하는점 유념하시기 바랍니다. - - -```javascript title="JavaScript SDK" -IMP.request_pay( - { - pg: "ksnet.{PG 상점 아이디}", // 테스트인 경우 ksnet.2999199999 - pay_method: "card", - merchant_uid: "order_id_1667634130160", // 상점에서 채번하는 고유 주문 번호 - name: "나이키 와플 트레이너 2 SD", - pay_method: "card", - escrow: false, - amount: "109000", - tax_free: 3000, - buyer_name: "홍길동", - buyer_email: "buyer@example.com", - buyer_tel: "02-1670-5176", - buyer_addr: "성수이로 20길 16", - buyer_postcode: "04783", - app_scheme: "portone://", - m_redirect_url: "https://helloworld.com/payments/result", - notice_url: "https://helloworld.com/api/v1/payments/notice", - confirm_url: "https://helloworld.com/api/v1/payments/confirm", - currency: "KRW", - digital: false, - period: { - from: "2022-12-01", - to: "2023-01-01", - }, - custom_data: { userId: 30930 }, - display: { card_quota: [0, 6] }, - bypass: { - ksnet: { - sndQpayType: "0", + + ```ts title="JavaScript SDK" + IMP.request_pay( + { + pg: "ksnet.{PG 상점 아이디}", // 테스트인 경우 ksnet.2999199999 + pay_method: "card", + merchant_uid: "order_id_1667634130160", // 상점에서 채번하는 고유 주문 번호 + name: "나이키 와플 트레이너 2 SD", + pay_method: "card", + escrow: false, + amount: "109000", + tax_free: 3000, + buyer_name: "홍길동", + buyer_email: "buyer@example.com", + buyer_tel: "02-1670-5176", + buyer_addr: "성수이로 20길 16", + buyer_postcode: "04783", + app_scheme: "portone://", + m_redirect_url: "https://helloworld.com/payments/result", + notice_url: "https://helloworld.com/api/v1/payments/notice", + confirm_url: "https://helloworld.com/api/v1/payments/confirm", + currency: "KRW", + digital: false, + period: { + from: "2022-12-01", + to: "2023-01-01", + }, + custom_data: { userId: 30930 }, + display: { card_quota: [0, 6] }, + bypass: { + ksnet: { + sndQpayType: "0", + }, + }, }, - }, - }, - function (rsp) { - // callback 로직 - //* ...중략... *// - } -); -``` - -**주요 파라미터 설명** - -**`pg`** **\*** **string** - -**PG사 구분코드** - -`ksnet.{PG 상점 아이디}` + function (rsp) { + // callback 로직 + //* ...중략... *// + }, + ); + ``` -**`pay_method`** **\*** **string** + **주요 파라미터 설명** -**결제수단 구분코드** + **`pg`** **\*** **string** -- card (신용카드) -- vbank (가상계좌) -- trans (계좌이체) -- phone (휴대폰소액결제) -- lpay (LPAY) -- ssgpay (SSGPAY) -- kakaopay (카카오페이) -- naverpay (네이버페이) -- payco (페이코 허브형) + **PG사 구분코드** -**`merchant_uid`** **\*** **string** + `ksnet.{PG 상점 아이디}` -**고객사 채번 주문 고유번호** + **`pay_method`** **\*** **string** -고객사에서 매번 고유하게 채번되어야 합니다. + **결제수단 구분코드** -**`amount`** **string** + - card (신용카드) + - vbank (가상계좌) + - trans (계좌이체) + - phone (휴대폰소액결제) + - lpay (LPAY) + - ssgpay (SSGPAY) + - kakaopay (카카오페이) + - naverpay (네이버페이) + - payco (페이코 허브형) -**결제금액** + **`merchant_uid`** **\*** **string** -지정하지 않은 경우 0원입니다. + **고객사 채번 주문 고유번호** -**`tax_free`** **number** + 고객사에서 매번 고유하게 채번되어야 합니다. -**면세금액** + **`amount`** **string** -지정하지 않은 경우 0원입니다. + **결제금액** - + 지정하지 않은 경우 0원입니다. -포트원을 통해 KSNET를 사용하는 경우 과세 설정이 `복합과세`이므로 면세금액을 반드시 입력해야 합니다. + **`tax_free`** **number** - + **면세금액** -**`digital`** **boolean** + 지정하지 않은 경우 0원입니다. -**디지털 상품 유형 여부** + + 포트원을 통해 KSNET를 사용하는 경우 과세 설정이 `복합과세`이므로 면세금액을 반드시 입력해야 합니다. + - + **`digital`** **boolean** -해당 필드는 **휴대폰 결제**에서만 사용되며, 상점이 `디지털 상품유형`으로 설정된 경우 항상 `true`로 전달해야 합니다. + **디지털 상품 유형 여부** - + + 해당 필드는 **휴대폰 결제**에서만 사용되며, 상점이 `디지털 상품유형`으로 설정된 경우 항상 `true`로 전달해야 합니다. + -**`bypass.ksnet`** + **`bypass.ksnet`** -**KSNET 전용 파라미터** + **KSNET 전용 파라미터** -상단의 `request_pay` 예제를 참고하여 KSNET 전용 파라미터를 기입할 수 있습니다. + 상단의 `request_pay` 예제를 참고하여 KSNET 전용 파라미터를 기입할 수 있습니다. -> **`sndQpayType`** **string** -> -> **카드 결제 시 결제창에 간편 결제 수단 표시 여부** -> -> - `"0"`: 간편결제 수단 표시하지 않음 -> - `"1"`: 간편결제 수단 표시함 + > **`sndQpayType`** **string** + > + > **카드 결제 시 결제창에 간편 결제 수단 표시 여부** + > + > - `"0"`: 간편결제 수단 표시하지 않음 + > - `"1"`: 간편결제 수단 표시함 + - + + **KSNET은 결제창 기반 비인증 결제를 지원하지 않습니다.** + - -**KSNET은 결제창 기반 비인증 결제를 지원하지 않습니다.** + + ### 일회성 결제 요청하기 - + REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. - -### 일회성 결제 요청하기 + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + ### 빌링키 발급 요청하기 -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -### 빌링키 발급 요청하기 + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -REST [**API POST /subscribe/customers/\{customer_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + ### 빌링키로 결제 요청하기 -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` - -### 빌링키로 결제 요청하기 - -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid": "your-customer-unique-id", "merchant_uid": "order_id_8237352", "amount": 3000, "product_type": "digital"}' \ - https://api.iamport.kr/subscribe/payments/again -``` - - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid": "your-customer-unique-id", "merchant_uid": "order_id_8237352", "amount": 3000, "product_type": "digital"}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + ## 3. API 기능 @@ -230,7 +217,7 @@ REST [**API POST /payments/cancel**](../../../api/api-1/api)를 호출하여 승 ### 현금영수증 등록 포트원을 통한 거래건이지만 결제창에서 현금영수증 등록을 하지 못한 경우 API를 통해 현금영수증을 등록할 수 있습니다.\ -REST [**API POST /receipts/\{imp_uid}**](../../../api/api-8/api-2)를 호출하여 현금영수증을 요청합니다. +REST [**API POST /receipts/\{imp\_uid}**](../../../api/api-8/api-2)를 호출하여 현금영수증을 요청합니다. - `product_type`(디지털: `"digital"`, 실물: `"real"`), `buyer_name` 파라미터는 KSNET 필수 입력 대상입니다. @@ -243,7 +230,8 @@ curl -H "Content-Type: application/json" \ ### 외부 현금영수증 등록 포트원을 통한 거래건이 아닌 현금성 거래의 경우에도 API를 통해 현금영수증을 등록할 수 있습니다.\ -REST [**API POST /receipts/external/\{merchant_uid}**](../../../api/api-8/api-5)를 호출하여 현금영수증을 요청합니다. +REST [**API POST /receipts/external/\{merchant\_uid}**](../../../api/api-8/api-5)를 +호출하여 현금영수증을 요청합니다. - `product_type`, `pg`, `buyer_name` 파라미터는 KSNET 필수 입력 대상입니다. @@ -255,9 +243,11 @@ curl -H "Content-Type: application/json" \ ## 4. 부가기능 -```javascript title="javascript" -display: { - card_quota: [6]; // 할부개월 6개월까지만 활성화 +```json +{ + "display": { + "card_quota": [6] // 할부개월 6개월까지만 활성화 + } } ``` @@ -268,12 +258,7 @@ display: { - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ -할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. - + 할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. - + diff --git a/src/content/docs/ko/pg/payment-gateway/ksnet/warning.mdx b/src/content/docs/ko/pg/payment-gateway/ksnet/warning.mdx index 0a216e4e1..4c8574844 100644 --- a/src/content/docs/ko/pg/payment-gateway/ksnet/warning.mdx +++ b/src/content/docs/ko/pg/payment-gateway/ksnet/warning.mdx @@ -7,27 +7,32 @@ import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro";
-

계약 확인사항

+

계약 확인사항

-**포트원을 통한 KSNET 이용 고객사의 상점아이디 과세 설정은 반드시 `복합과세`로 설정되어 있어야 합니다. 일반과세, 면세 설정은 지원하지 않습니다.** + **포트원을 통한 KSNET 이용 고객사의 상점아이디 과세 설정은 반드시 `복합과세`로 설정되어 있어야 합니다. 일반과세, 면세 설정은 지원하지 않습니다.** -- 키인결제 -- 고객사 부담 무이자 할부 설정 -- 가상계좌 마감일시 지정 -- 가상계좌 환불 -- 간편결제 사용 -- 할부 사용 -- 에스크로 사용, 배송 에스크로만 지원 - - KSNET에서 일반 에스크로, 배송 에스크로 두 가지 유형의 에스크로를 제공합니다. 포트원을 통해 KSNET 에스크로를 사용하려는 경우 반드시 **배송 에스크로** 설정이 되어 있어야 합니다. -- 휴대폰 결제 시 상품 유형 설정(실물 혹은 디지털) + - 키인결제 + - 고객사 부담 무이자 할부 설정 + + - 가상계좌 마감일시 지정 + + - 가상계좌 환불 + + - 간편결제 사용 + + - 할부 사용 + + - 에스크로 사용, 배송 에스크로만 지원 + - KSNET에서 일반 에스크로, 배송 에스크로 두 가지 유형의 에스크로를 제공합니다. 포트원을 통해 KSNET 에스크로를 사용하려는 경우 반드시 **배송 에스크로** 설정이 되어 있어야 합니다. + + - 휴대폰 결제 시 상품 유형 설정(실물 혹은 디지털)
-

특정카드사 고객사 부담 무이자 할부 설정 불가

- -KSNET에서 고객사 부담 무이자 할부 설정에 필요한 카드 코드 정보를 일부 카드사에 대해서만 제공하고 있습니다. 카드코드가 제공되지 않는 일부 카드사의 경우 고객사 부담 무이자 할부를 설정할 수 없습니다. +

특정카드사 고객사 부담 무이자 할부 설정 불가

+ KSNET에서 고객사 부담 무이자 할부 설정에 필요한 카드 코드 정보를 일부 카드사에 대해서만 제공하고 있습니다. 카드코드가 제공되지 않는 일부 카드사의 경우 고객사 부담 무이자 할부를 설정할 수 없습니다.
@@ -75,71 +80,78 @@ KSNET에서 고객사 부담 무이자 할부 설정에 필요한 카드 코드
-

키인결제

- -판매 상품에 대한 구분값으로 **`product_type`** 파라미터를 사용해야 결제가 가능합니다. +

키인결제

-고객사 부담 무이자를 원하시는 경우 PG사와의 별도의 계약 후 **`interest_free_by_merchant`** 파라미터를 사용해야 합니다. + 판매 상품에 대한 구분값으로 **`product_type`** 파라미터를 사용해야 결제가 가능합니다. -카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어 + 고객사 부담 무이자를 원하시는 경우 PG사와의 별도의 계약 후 **`interest_free_by_merchant`** 파라미터를 사용해야 합니다. -**`birth`**(생년월일 6자리 혹은 사업자 등록번호 10자리)와 **`pwd_2digit`**(비밀번호 앞 2자리)는 검증하지 않습니다. + 카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어 + **`birth`**(생년월일 6자리 혹은 사업자 등록번호 10자리)와 **`pwd_2digit`**(비밀번호 앞 2자리)는 검증하지 않습니다.
-

빌링키 결제

- -판매 상품에 대한 구분값으로 **`product_type`** 을 파라미터로 사용해야 결제가 가능합니다. +

빌링키 결제

-고객사 부담 무이자를 원하시는 경우 pg 사와의 별도의 계약 후 **`interest_free_by_merchant`** 파라미터를 사용해야 합니다. + 판매 상품에 대한 구분값으로 **`product_type`** 을 파라미터로 사용해야 결제가 가능합니다. + 고객사 부담 무이자를 원하시는 경우 pg 사와의 별도의 계약 후 **`interest_free_by_merchant`** 파라미터를 사용해야 합니다.
-

빌링키 등록

- -`card_number`, `expiry`, `pwd_2digit`, `birth` 파라미터 입력은 필수 입니다. +

빌링키 등록

+ `card_number`, `expiry`, `pwd_2digit`, `birth` 파라미터 입력은 필수 입니다.
-

기타

- -- 휴대폰 결제는 부분취소 불가능. -- 카드, 간편결제 외 결제의 경우 매출 전표 확인 불가능. -- 간편결제(카카오페이, 페이코) 카드 결제의 경우 KSNET 측에서 카드정보(카드번호, bin) 정보를 제공해주지 않아 결제 정보에 카드사 정보가 제공되지 않습니다. -- USD 결제는 순수 해외카드로만 결제 가능합니다. -- 카카오페이 사용 시 상점정보(대표자명, 주소, 전화번호)를 필수로 입력해야합니다 -- 부분취소는 총 9회까지 가능합니다. (카드결제, 가상계좌, 계좌이체, 간편결제) -- 취소는 결제일 기준 6개월 이내에만 가능합니다. -- 가상계좌 환불은 23:00\~06:00 시간 외에만 가능합니다. -- 계좌입금 거래 시 결제창에서 발급한 현금영수증은 경우 거래 취소 시 자동으로 취소 되지 않습니다. -- 복합과세의 계좌입금 거래를 부분취소하는 경우 기존에 발급한 현금영수증을 취소하고 부분취소 금액이 반영된 금액 정보로 다시 현금영수증을 발급해야합니다. -- 매출 전표 확인 시 자동으로 인쇄 기능이 호출됩니다. 오동작이 아닌 KSNET의 의도된 기능입니다. -- 간편 결제 수단에서 고객사 부담 무이자 설정은 사용 불가능합니다. -- 간편 결제 수단에서 할부 개월 수 표시 설정은 일부 간편결제사에서만 가능합니다. - - 네이버페이, 카카오페이, LPay: 할부 개월 수 표시 설정 가능 - - Payco, SSGPay: 할부 개월 수 표시 설정 불가, 5만원 이상 시 1\~12 개월 표시 고정 +

기타

+ + - 휴대폰 결제는 부분취소 불가능. + + - 카드, 간편결제 외 결제의 경우 매출 전표 확인 불가능. + - 간편결제(카카오페이, 페이코) 카드 결제의 경우 KSNET 측에서 카드정보(카드번호, bin) 정보를 제공해주지 않아 결제 정보에 카드사 정보가 제공되지 않습니다. + + - USD 결제는 순수 해외카드로만 결제 가능합니다. + + - 카카오페이 사용 시 상점정보(대표자명, 주소, 전화번호)를 필수로 입력해야합니다 + + - 부분취소는 총 9회까지 가능합니다. (카드결제, 가상계좌, 계좌이체, 간편결제) + + - 취소는 결제일 기준 6개월 이내에만 가능합니다. + + - 가상계좌 환불은 23:00\~06:00 시간 외에만 가능합니다. + + - 계좌입금 거래 시 결제창에서 발급한 현금영수증은 경우 거래 취소 시 자동으로 취소 되지 않습니다. + + - 복합과세의 계좌입금 거래를 부분취소하는 경우 기존에 발급한 현금영수증을 취소하고 부분취소 금액이 반영된 금액 정보로 다시 현금영수증을 발급해야합니다. + + - 매출 전표 확인 시 자동으로 인쇄 기능이 호출됩니다. 오동작이 아닌 KSNET의 의도된 기능입니다. + + - 간편 결제 수단에서 고객사 부담 무이자 설정은 사용 불가능합니다. + + - 간편 결제 수단에서 할부 개월 수 표시 설정은 일부 간편결제사에서만 가능합니다. + - 네이버페이, 카카오페이, LPay: 할부 개월 수 표시 설정 가능 + - Payco, SSGPay: 할부 개월 수 표시 설정 불가, 5만원 이상 시 1\~12 개월 표시 고정
-특이사항 - -- 카드, 간편결제를 외 결제 수단 에서는 매출전표를 제공하지 않습니다. -- KSNET은 KRW, USD 만 지원합니다. -- USD 결제의 경우 순수 해외 카드만 결제 가능합니다. -- 페이코, 카카오페이의 경우 카드번호 혹은 카드bin 정보를 제공하지 않습니다. -- 주문자 이메일(`buyer_email`)은 선택 입력 항목이지만 에스크로 결제에서 구매확인 이메일 수신을 위해 필수로 입력해야 합니다. -- 카드, 간편결제 다이렉트 호출은 현재 지원하지 않습니다. -- 발급사가 비씨,국민,하나,삼성,신한,현대,롯데,농협인 경우에 `고객사 무이자 할부`를 설정할 수 있습니다. -- 결제 취소 시 부분취소는 9회까지 가능합니다. (카드결제, 가상계좌, 계좌이체) -- 취소는 결제일 기준으로 6개월까지만 가능합니다. -- 가상계좌 환불은 23:00\~06:00 시간 외에만 가능합니다. -- 가상계좌 환불은 특약이 있는 고객사만 사용 가능합니다. -- 휴대폰 결제는 부분취소를 지원하지 않습니다. -- 계좌입금 거래 시 발급한 현금영수증은 경우 거래 취소 시 자동으로 취소 되지 않습니다. 수동으로 취소해야 합니다. -- **포트원을 통한 KSNET 이용 고객사의 상점아이디 `복합과세` 및 `면세`만 지원합니다.** - + 특이사항 + + - 카드, 간편결제를 외 결제 수단 에서는 매출전표를 제공하지 않습니다. + - KSNET은 KRW, USD 만 지원합니다. + - USD 결제의 경우 순수 해외 카드만 결제 가능합니다. + - 페이코, 카카오페이의 경우 카드번호 혹은 카드bin 정보를 제공하지 않습니다. + - 주문자 이메일(`buyer_email`)은 선택 입력 항목이지만 에스크로 결제에서 구매확인 이메일 수신을 위해 필수로 입력해야 합니다. + - 카드, 간편결제 다이렉트 호출은 현재 지원하지 않습니다. + - 발급사가 비씨,국민,하나,삼성,신한,현대,롯데,농협인 경우에 `고객사 무이자 할부`를 설정할 수 있습니다. + - 결제 취소 시 부분취소는 9회까지 가능합니다. (카드결제, 가상계좌, 계좌이체) + - 취소는 결제일 기준으로 6개월까지만 가능합니다. + - 가상계좌 환불은 23:00\~06:00 시간 외에만 가능합니다. + - 가상계좌 환불은 특약이 있는 고객사만 사용 가능합니다. + - 휴대폰 결제는 부분취소를 지원하지 않습니다. + - 계좌입금 거래 시 발급한 현금영수증은 경우 거래 취소 시 자동으로 취소 되지 않습니다. 수동으로 취소해야 합니다. + - **포트원을 통한 KSNET 이용 고객사의 상점아이디 `복합과세` 및 `면세`만 지원합니다.** diff --git a/src/content/docs/ko/pg/payment-gateway/newtoss/readme.mdx b/src/content/docs/ko/pg/payment-gateway/newtoss/readme.mdx index aa082fd24..9802ca99a 100644 --- a/src/content/docs/ko/pg/payment-gateway/newtoss/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/newtoss/readme.mdx @@ -5,9 +5,10 @@ description: 토스페이먼츠 (신모듈 / 2022-07-27 버전) 연동 방법을 import Figure from "~/components/Figure.astro"; import Details from "~/components/gitbook/Details.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; + import image1 from "../_assets/tosspayments/tosspayments1.webp"; import image2 from "../_assets/tosspayments/tosspayments2.png"; import image3 from "../_assets/tosspayments/tosspayments3.png"; @@ -24,12 +25,11 @@ import image4 from "../_assets/tosspayments/tosspayments4.png"; 토스페이먼츠 신모듈 결제는 최신 SDK에서만 지원되는 기능입니다. ```html title="JS SDK" - + ``` -**토스페이먼츠 신모듈을 연동하기 위해서는 위에 안내된 JS SDK를 이용하셔야 합니다** - + **토스페이먼츠 신모듈을 연동하기 위해서는 위에 안내된 JS SDK를 이용하셔야 합니다** [JavaScript SDK](../../../sdk/javascript-sdk/readme)문서를 통해 최신 SDK를 설치해주세요. @@ -43,336 +43,326 @@ import image4 from "../_assets/tosspayments/tosspayments4.png"; 토스페이먼츠 신 모듈을 기준으로 작성한 예시 코드는 아래와 같습니다. - - -```javascript showLineNumbers -const userCode = "고객사 식별코드"; -IMP.init(userCode); // 고객사 식별 코드를 넣어 모듈을 초기화해주세요. - -IMP.request_pay( - { - pg: "tosspayments", // 반드시 "tosspayments"임을 명시해주세요. - merchant_uid: "order_id_1667634130160", - name: "나이키 와플 트레이너 2 SD", - pay_method: "card", - escrow: false, - amount: "109000", - tax_free: 3000, - buyer_name: "홍길동", - buyer_email: "buyer@example.com", - buyer_tel: "02-1670-5176", - buyer_addr: "성수이로 20길 16", - buyer_postcode: "04783", - m_redirect_url: "https://helloworld.com/payments/result", // 모바일 환경에서 필수 입력 - notice_url: "https://helloworld.com/api/v1/payments/notice", - confirm_url: "https://helloworld.com/api/v1/payments/confirm", - currency: "KRW", - locale: "ko", - custom_data: { userId: 30930 }, - display: { card_quota: [0, 6] }, - appCard: false, - useCardPoint: true, - bypass: { - tosspayments: { - useInternationalCardOnly: true, // 영어 결제창 활성화 + + ```ts showLineNumbers + const userCode = "고객사 식별코드"; + IMP.init(userCode); // 고객사 식별 코드를 넣어 모듈을 초기화해주세요. + + IMP.request_pay( + { + pg: "tosspayments", // 반드시 "tosspayments"임을 명시해주세요. + merchant_uid: "order_id_1667634130160", + name: "나이키 와플 트레이너 2 SD", + pay_method: "card", + escrow: false, + amount: "109000", + tax_free: 3000, + buyer_name: "홍길동", + buyer_email: "buyer@example.com", + buyer_tel: "02-1670-5176", + buyer_addr: "성수이로 20길 16", + buyer_postcode: "04783", + m_redirect_url: "https://helloworld.com/payments/result", // 모바일 환경에서 필수 입력 + notice_url: "https://helloworld.com/api/v1/payments/notice", + confirm_url: "https://helloworld.com/api/v1/payments/confirm", + currency: "KRW", + locale: "ko", + custom_data: { userId: 30930 }, + display: { card_quota: [0, 6] }, + appCard: false, + useCardPoint: true, + bypass: { + tosspayments: { + useInternationalCardOnly: true, // 영어 결제창 활성화 + }, + }, }, - }, - }, - (response) => { - // PC 환경에서 결제 프로세스 완료 후 실행 될 로직 - } -); -``` - -
-

주요 파라미터 설명

- -**`pg` \*****string** - -**PG사 구분코드** + (response) => { + // PC 환경에서 결제 프로세스 완료 후 실행 될 로직 + }, + ); + ``` -_tosspayments_ 로 지정하면 됩니다. +
+

주요 파라미터 설명

-**`pay_method`** **string** + **`pg` \*****string** -- 카드 (card) -- 계좌이체(trans) -- 가상계좌(vbank) -- 휴대폰 소액결제(phone) -- 도서문화상품권(booknlife) -- 스마트문상(smartculture) -- 컬쳐랜드(cultureland) -- 카카오페이 (kakaopay) -- 네이버페이 (naverpay) -- 엘페이 (lpay) -- 삼성페이(samsung) -- SSGpay (ssgpay) -- 애플페이 (applepay) -- 페이코 (payco) -- 토스간편결제 (tosspay) + **PG사 구분코드** -**`merchant_uid`** **\*** **string** + _tosspayments_ 로 지정하면 됩니다. -**주문번호** + **`pay_method`** **string** -매번 고유하게 채번되어야 합니다. + - 카드 (card) + - 계좌이체(trans) + - 가상계좌(vbank) + - 휴대폰 소액결제(phone) + - 도서문화상품권(booknlife) + - 스마트문상(smartculture) + - 컬쳐랜드(cultureland) + - 카카오페이 (kakaopay) + - 네이버페이 (naverpay) + - 엘페이 (lpay) + - 삼성페이(samsung) + - SSGpay (ssgpay) + - 애플페이 (applepay) + - 페이코 (payco) + - 토스간편결제 (tosspay) -**`amount` \*****number** + **`merchant_uid`** **\*** **string** -**결제금액** + **주문번호** -**string** 이 아닌점에 유의하세요 + 매번 고유하게 채번되어야 합니다. -**`buyer_name`** **\*** **`string`** + **`amount` \*****number** -**`구매자 이름`** + **결제금액** -**`buyer_email`** **`string`** + **string** 이 아닌점에 유의하세요 -**`구매자 email 주소`** + **`buyer_name`** **\*** **`string`** -**`currency`** **`string`** + **`구매자 이름`** -**`통화구분코드`** + **`buyer_email`** **`string`** -**`appCard`** **`boolean`** + **`구매자 email 주소`** -카드 결제시, 카드 결제창에 앱카드만 선택 가능하도록 할지 여부 (기본값: **false**) + **`currency`** **`string`** -**`useCardPoint`** **`boolean`** + **`통화구분코드`** -카드 결제시, 카드 포인트 사용 허용할지 여부 + **`appCard`** **`boolean`** -
+ 카드 결제시, 카드 결제창에 앱카드만 선택 가능하도록 할지 여부 (기본값: **false**) -
-

기타 파라미터 설명

+ **`useCardPoint`** **`boolean`** -**`bypass`** **object** + 카드 결제시, 카드 포인트 사용 허용할지 여부 +
-**`isCulturalExpense`** **boolean** +
+

기타 파라미터 설명

-문화비 지출여부 + **`bypass`** **object** -**`useInternationalCardOnly`** **boolean** + **`isCulturalExpense`** **boolean** -해외카드(Visa, MasterCard, UnionPay) 결제 여부입니다. 값이 `true`면 해외카드 결제가 가능한 영문 결제창이 열립니다. + 문화비 지출여부 -**`cashReceiptType`** **string** + **`useInternationalCardOnly`** **boolean** -현금성 결제(계좌이체, 가상계좌)창에서 선택할 수 있는 현금영수증 발급 유형 (기본값: 결제창에서 선택 가능) + 해외카드(Visa, MasterCard, UnionPay) 결제 여부입니다. 값이 `true`면 해외카드 결제가 가능한 영문 결제창이 열립니다. -- anonymous (미발행, 자진발급) -- personal (소득공제) -- corporate (지출증빙) + **`cashReceiptType`** **string** -```javascript -{ - pay_method: 'trans', - bypass: { - isCulturalExpense: true, - cashReceiptType: 'personal' - } -} -``` + 현금성 결제(계좌이체, 가상계좌)창에서 선택할 수 있는 현금영수증 발급 유형 (기본값: 결제창에서 선택 가능) -
- - - - -인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "tosspayments.{MID}", - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 0, // 실제 승인은 발생되지 않고 오직 빌링키만 발급됩니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - customer_id: "matthew", //고객사가 회원에게 부여한 고유 ID - }, - function (rsp) { - // callback 로직 - } -); -``` + - anonymous (미발행, 자진발급) + - personal (소득공제) + - corporate (지출증빙) - -- 비인증 결제를 위해서는 **토스페이먼츠로 부터 발급받은 MID정보**를 포트원 관리자콘솔에 설정하셔야 비 인증 결제창을 활성화 시킬수 있습니다. -- 빌링키 발급시 **실 결제는 발생되지 않습니다**.(금액을 지정해도 결제가 발생되지 않음) + ```json + { + "pay_method": "trans", + "bypass": { + "isCulturalExpense": true, + "cashReceiptType": "personal" + } + } + ``` +
+
- + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. -**주요 파라미터 설명** + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "tosspayments.{MID}", + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 0, // 실제 승인은 발생되지 않고 오직 빌링키만 발급됩니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + customer_id: "matthew", //고객사가 회원에게 부여한 고유 ID + }, + function (rsp) { + // callback 로직 + }, + ); + ``` -**`pg` \*****string** + + - 비인증 결제를 위해서는 **토스페이먼츠로 부터 발급받은 MID정보**를 포트원 관리자콘솔에 설정하셔야 비 인증 결제창을 활성화 시킬수 있습니다. + - 빌링키 발급시 **실 결제는 발생되지 않습니다**.(금액을 지정해도 결제가 발생되지 않음) + -**PG사 구분코드** + **주요 파라미터 설명** -**`tosspayments`** 로 지정하면 됩니다. + **`pg` \*****string** -**`customer_uid` \*****string** + **PG사 구분코드** -**카드 빌링키** + **`tosspayments`** 로 지정하면 됩니다. -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + **`customer_uid` \*****string** -**`amount` \*****number** + **카드 빌링키** -**결제금액** + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다.(실 결제를 발생시키기 위해서는 **customer_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.) + **`amount` \*****number** -**`customer_id`** **`string`** + **결제금액** -**`구매자 식별자`** + 결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다.(실 결제를 발생시키기 위해서는 **customer\_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.) -빌링키를 발급한 고객의 고유 ID 를 지정합니다.(회원ID) 해당 값 설정시 빌링키와 고객을 맵핑할 수 있습니다. 누락시 포트원에서 임의의 값을 설정합니다. + **`customer_id`** **`string`** -**빌링키(customer_uid)로 결제 요청하기** + **`구매자 식별자`** -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + 빌링키를 발급한 고객의 고유 ID 를 지정합니다.(회원ID) 해당 값 설정시 빌링키와 고객을 맵핑할 수 있습니다. 누락시 포트원에서 임의의 값을 설정합니다. -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + **빌링키(customer\_uid)로 결제 요청하기** - + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. - -**API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** - - -**MID 발급시 주의사항** + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + -토스페이먼츠로 부터 MID 발급시 **API version** 은 반드시 **1.4** 이어야 합니다. + + **API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** - + + **MID 발급시 주의사항** -**일회성 결제 요청하기** + 토스페이먼츠로 부터 MID 발급시 **API version** 은 반드시 **1.4** 이어야 합니다. + -REST[ **API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + **일회성 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + [**REST API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -**빌링키 발급 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -REST [**API POST /subscribe/customers/\{customer_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + **빌링키 발급 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -**빌링키 발급 및 최초 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + **빌링키 발급 및 최초 결제 요청하기** -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. -**빌링키로 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + **빌링키로 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` +
## 4. 부가기능 - - -```javascript title="javascript" -display: { - card_quota: [6], // 할부개월 6개월만 활성화 - only_installment: true // 일시불 항목은 제외 -} -``` - -**파라미터 설명** - -- **card_quota :** - -\- 지정한 숫자에 해당하는 할부개월수만 표기 - -\- `[]`: 일시불만 결제 가능 + + ```json title="javascript" + { + "display": { + "card_quota": [6], // 할부개월 6개월만 활성화 + "only_installment": true // 일시불 항목은 제외 + } + } + ``` -\- `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ + **파라미터 설명** -- **`only_installment` : `true`** 인 경우 `card_quota` 에 설정한 할부개월수만 표시 + - **card\_quota :** - -할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. - - + \- 지정한 숫자에 해당하는 할부개월수만 표기 - + \- `[]`: 일시불만 결제 가능 - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - } -} -``` + \- `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ -**파라미터 설명** + - **`only_installment` : `true`** 인 경우 `card_quota` 에 설정한 할부개월수만 표시 -- **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **`quota`** : 할부 개월 수. 일시불일 시 0 으로 지정. (**number**) + + 할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. + + - + + ```json title="javascript" + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` - + **파라미터 설명** -토스페이먼츠 고정식 가상계좌 발급 서비스를 이용하기 위해서는 **토스페이먼츠 측과 협의**를 통해 결제에 이용하는 MID에 고정식 가상계좌 설정이 반드시 선행되어야 합니다. + - **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + - **`quota`** : 할부 개월 수. 일시불일 시 0 으로 지정. (**number**) + -해당 설정이 완료되면 두가지 방식으로 고정식 가상계좌를 발급할 수 있습니다. + + 토스페이먼츠 고정식 가상계좌 발급 서비스를 이용하기 위해서는 **토스페이먼츠 측과 협의**를 통해 결제에 이용하는 MID에 고정식 가상계좌 설정이 반드시 선행되어야 합니다. -- [API 방식](../../../api/api-9/api) -- 결제창 방식 + 해당 설정이 완료되면 두가지 방식으로 고정식 가상계좌를 발급할 수 있습니다. -두 방식 모두 **고유식별번호**가 유입되어야 하며 해당 값은 각 고객을 특정할수 있는 고유값이어야 합니다. + - [API 방식](../../../api/api-9/api) + - 결제창 방식 -결제창 방식을 이용하기 위해서 고객에게 사전에 해당 고유식별번호가 안내되어야 하며 가상계좌 발급단계에서 아래 첨부이미지처럼 고유식별번호 란에 해당 값이 유입되어야 합니다. + 두 방식 모두 **고유식별번호**가 유입되어야 하며 해당 값은 각 고객을 특정할수 있는 고유값이어야 합니다. -
+ 결제창 방식을 이용하기 위해서 고객에게 사전에 해당 고유식별번호가 안내되어야 하며 가상계좌 발급단계에서 아래 첨부이미지처럼 고유식별번호 란에 해당 값이 유입되어야 합니다. -API 방식 또한 `vbank_key` 파라미터가 고유식별번호에 대응되는 값으로 API방식은 고객사에서 직접 해당 값을 기재해서 호출할수 있기 때문에 고객 편의차원에서 훨씬 간편한 고정식 가상계좌 서비스를 제공할수 있습니다. +
-고정식 가상계좌 발급이 정상적으로 이루어지면 아래와 같이 고객휴대폰 번호로 SMS가 발송되며 고객은 해당 정보를 보고 입금을 할수 있습니다.(비용: 무료) + API 방식 또한 `vbank_key` 파라미터가 고유식별번호에 대응되는 값으로 API방식은 고객사에서 직접 해당 값을 기재해서 호출할수 있기 때문에 고객 편의차원에서 훨씬 간편한 고정식 가상계좌 서비스를 제공할수 있습니다. -
+ 고정식 가상계좌 발급이 정상적으로 이루어지면 아래와 같이 고객휴대폰 번호로 SMS가 발송되며 고객은 해당 정보를 보고 입금을 할수 있습니다.(비용: 무료) - +
+ ## 5. 사용가능 기능 @@ -385,45 +375,41 @@ API 방식 또한 `vbank_key` 파라미터가 고유식별번호에 대응되는 - [현금영수증 발급(외부) API](../../../api/api-8/api-5) + **기존에 deprecated된 응답들은 모두 제거됐습니다. ⚠️** -**기존에 deprecated된 응답들은 모두 제거됐습니다. ⚠️** - -신 토스페이먼츠 모듈 연동시에 사용되는 신규 JS SDK는 기존 모듈에서 제공했던 CallBack 파라미터가 대부분 삭제되었습니다.(특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) - -해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. + 신 토스페이먼츠 모듈 연동시에 사용되는 신규 JS SDK는 기존 모듈에서 제공했던 CallBack 파라미터가 대부분 삭제되었습니다.(특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) -**`imp_uid`, `merchant_uid`** + 해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. -따라서 해당 SDK를 사용하실때는 `IMP.request_pay()`로부터 응답된 객체(또는 쿼리 파라미터)에서 `imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 응답 파라미터 중 status 파라미터로 결제 상태를 파악하셔야 합니다. + **`imp_uid`, `merchant_uid`** + 따라서 해당 SDK를 사용하실때는 `IMP.request_pay()`로부터 응답된 객체(또는 쿼리 파라미터)에서 `imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 응답 파라미터 중 status 파라미터로 결제 상태를 파악하셔야 합니다. + ```html + + ``` -```html - -``` - -위 JS SDK 를 이용하여 토스페이먼츠,케이에스넷 연동시 callback Data는 -아래와 같이 두가지 형태로만 내려갑니다. - -- `imp_uid` -- `merchant_uid` + 위 JS SDK 를 이용하여 토스페이먼츠,케이에스넷 연동시 callback Data는 + 아래와 같이 두가지 형태로만 내려갑니다. -위 PG사를 제외한 다른 PG사는 `imp_success` 파라미터가 기존처럼 내려가지만 -해당 파리미터는 deprecated 된 값이기 때문에 해당 값에 의존성을 가진 프로그램 로직은 모두 삭제하시는 -방향성을 잡아가셔야 하는점 유념하시기 바랍니다. + - `imp_uid` + - `merchant_uid` + 위 PG사를 제외한 다른 PG사는 `imp_success` 파라미터가 기존처럼 내려가지만 + 해당 파리미터는 deprecated 된 값이기 때문에 해당 값에 의존성을 가진 프로그램 로직은 모두 삭제하시는 + 방향성을 잡아가셔야 하는점 유념하시기 바랍니다. -**토스페이먼츠 API 버전 설정** + **토스페이먼츠 API 버전 설정** -- [토스페이먼츠 개발자센터](https://app.tosspayments.com/signin?redirectUrl=https%3A%2F%2Fdevelopers.tosspayments.com%2Fmy%2Fapi-keys) 로그인 -- 왼쪽 네비게이션 메뉴 API 키 선택 → API 버전을 **2022-07-27**로 선택 + - [토스페이먼츠 개발자센터](https://app.tosspayments.com/signin?redirectUrl=https%3A%2F%2Fdevelopers.tosspayments.com%2Fmy%2Fapi-keys) 로그인 - API 버전을 다르게 설정하면 결제 승인 / 실패 시 실제 응답과 다른 응답을 받아볼 수 있으니 **반드시 API 버전을 2022-07-27로** 맞춰주시기 바랍니다 + - 왼쪽 네비게이션 메뉴 API 키 선택 → API 버전을 **2022-07-27**로 선택 -
+ API 버전을 다르게 설정하면 결제 승인 / 실패 시 실제 응답과 다른 응답을 받아볼 수 있으니 **반드시 API 버전을 2022-07-27로** 맞춰주시기 바랍니다 +
diff --git a/src/content/docs/ko/pg/payment-gateway/newtoss/warning.mdx b/src/content/docs/ko/pg/payment-gateway/newtoss/warning.mdx index 2d90947e6..cbb397b63 100644 --- a/src/content/docs/ko/pg/payment-gateway/newtoss/warning.mdx +++ b/src/content/docs/ko/pg/payment-gateway/newtoss/warning.mdx @@ -3,8 +3,8 @@ title: 연동 유의사항 description: 토스페이먼츠 (신 모듈) 연동 유의사항을 소개합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; ## 토스페이먼츠와 사전 계약이 필요한 경우 @@ -24,233 +24,235 @@ import Figure from "~/components/Figure.astro"; ## 카드 결제
-

appCard 파라미터는 일부 카드사에 대해서만 적용 됨

+

appCard 파라미터는 일부 카드사에 대해서만 적용 됨

-토스페이먼츠의 경우 카드 결제시, 앱 카드로만 결제할 수 있도록 제한하는 appCard 파라미터를 지원하지만 지원 범위가 아래와 같이 제한적입니다. - -- 지원 가능 카드: 국민, 농협, 롯데, 삼성, 신한, 현대, 우리, 하나 -- 지원 불가 카드: 씨티 + 토스페이먼츠의 경우 카드 결제시, 앱 카드로만 결제할 수 있도록 제한하는 appCard 파라미터를 지원하지만 지원 범위가 아래와 같이 제한적입니다. + - 지원 가능 카드: 국민, 농협, 롯데, 삼성, 신한, 현대, 우리, 하나 + - 지원 불가 카드: 씨티
-

display.card_quota 파라미터는 다른 PG사와 다르게 동작 함

+

display.card\_quota 파라미터는 다른 PG사와 다르게 동작 함

-display.card_quota 파라미터로 결제창에 렌더링 될 할부 개월수 리스트를 제어할 수 있습니다. 다른 PG사는 전달한 값만 렌더링 되지만, 토스페이먼츠의 경우에는 토스페이먼츠 자체 정책에 따라 **일시불 \~ 전달한 값 중 최대값까지 모두 렌더링**됩니다. + display.card\_quota 파라미터로 결제창에 렌더링 될 할부 개월수 리스트를 제어할 수 있습니다. 다른 PG사는 전달한 값만 렌더링 되지만, 토스페이먼츠의 경우에는 토스페이먼츠 자체 정책에 따라 **일시불 \~ 전달한 값 중 최대값까지 모두 렌더링**됩니다. -- 예1. 일시불만 허용 + - 예1. 일시불만 허용 - ```jsx - display: { - card_quota: [0]; - } - ``` + ```json + { + "display": { + "card_quota": [0] + } + } + ``` -- 예2. 5개월만 허용 + - 예2. 5개월만 허용 - ```jsx - display: { - card_quota: [5]; - } - ``` + ```json + { + "display": { + "card_quota": [5] + } + } + ``` -- 예3. \[토스페이먼츠] 일시불 \~ 5개월까지 허용 + - 예3. \[토스페이먼츠] 일시불 \~ 5개월까지 허용 - ```jsx - display: { - card_quota: [3, 5]; // 3과 5 중에 최대값이 5이기 때문에 일시불 ~ 5개월까지 모두 렌더링 된다 - } - ``` + ```json + { + "display": { + "card_quota": [3, 5] // 3과 5 중에 최대값이 5이기 때문에 일시불 ~ 5개월까지 모두 렌더링 된다 + } + } + ``` -- 예3. \[타 PG사] 일시불 \~ 5개월까지 허용 + - 예3. \[타 PG사] 일시불 \~ 5개월까지 허용 - ```jsx - display: { - card_quota: [0, 1, 2, 3, 4, 5]; - } - ``` + ```json + { + "display": { + "card_quota": [0, 1, 2, 3, 4, 5] + } + } + ``` -- 예4. \[토스페이먼츠] 3개월과 5개월만 허용 → **불가능** -- 예5. \[타 PG사] 3개월과 5개월만 허용 + - 예4. \[토스페이먼츠] 3개월과 5개월만 허용 → **불가능** + - 예5. \[타 PG사] 3개월과 5개월만 허용
-

무이자 할부가 적용 되어도 ISP 계열 카드로 결제시에는 “무이자” 표기가 되지 않음

- -고객사는 토스페이먼츠와 사전 계약 또는 카드사 정책에 따라 무이자 할부 기능을 사용할 수 있습니다. 이에 따라 결제창 내에서 각 카드 사별 최대 무이자 할부 개월수에 따라 할부 개월수 옆에 “무이자” 또는 “무”라고 표기 됩니다. +

무이자 할부가 적용 되어도 ISP 계열 카드로 결제시에는 “무이자” 표기가 되지 않음

-- 예1. 삼성카드 - 최대 3개월 무이자 할부 적용 → 3개월까지 “무” 표기 + 고객사는 토스페이먼츠와 사전 계약 또는 카드사 정책에 따라 무이자 할부 기능을 사용할 수 있습니다. 이에 따라 결제창 내에서 각 카드 사별 최대 무이자 할부 개월수에 따라 할부 개월수 옆에 “무이자” 또는 “무”라고 표기 됩니다. -
+ - 예1. 삼성카드 - 최대 3개월 무이자 할부 적용 → 3개월까지 “무” 표기 -하지만 ISP 계열 카드의 경우에는 실제로 무이자가 적용된다고 하더라도 “무이자” 여부가 표기되지 않습니다. +
-- 예2. BC카드 - 최대 12개월 무이자 할부 적용 → 표기 없음 → 실제 결제 승인시 무이자 할부 적용은 됨 + 하지만 ISP 계열 카드의 경우에는 실제로 무이자가 적용된다고 하더라도 “무이자” 여부가 표기되지 않습니다. -
+ - 예2. BC카드 - 최대 12개월 무이자 할부 적용 → 표기 없음 → 실제 결제 승인시 무이자 할부 적용은 됨 -이는 ISP 계열 카드사 결제시 사용되는 페이북 앱 특성에 따른 것으로 실제 결제 승인시에는 정상적으로 무이자 할부가 적용됩니다. +
+ 이는 ISP 계열 카드사 결제시 사용되는 페이북 앱 특성에 따른 것으로 실제 결제 승인시에는 정상적으로 무이자 할부가 적용됩니다.
-

할부 기간 선택 관련 이슈

+

할부 기간 선택 관련 이슈

+ + 모바일 웹 - 카드 결제시 토스페이먼츠 결제창 내에서 간편결제의 경우 할부 기간 선택이 불가능하고, 간편결제 외의 모든 카드사의 경우엔 할부 기간 선택이 가능합니다. -모바일 웹 - 카드 결제시 토스페이먼츠 결제창 내에서 간편결제의 경우 할부 기간 선택이 불가능하고, 간편결제 외의 모든 카드사의 경우엔 할부 기간 선택이 가능합니다. + - 모바일 웹 - 간편결제 외 카드사: 할부 기간 선택 가능\ + ![]() -- 모바일 웹 - 간편결제 외 카드사: 할부 기간 선택 가능\ - ![]() -- 모바일 웹 - 간편결제: 할부 기간 선택 불가능\ - ![]() + - 모바일 웹 - 간편결제: 할부 기간 선택 불가능\ + ![]() -반면, PC - 카드 결제 - ISP계열의 경우에는 토스페이먼츠 결제창 내에서도 할부 기간 선택이 불가능 하며, 대신 ISP 페이북 팝업에서는 선택이 가능합니다. + 반면, PC - 카드 결제 - ISP계열의 경우에는 토스페이먼츠 결제창 내에서도 할부 기간 선택이 불가능 하며, 대신 ISP 페이북 팝업에서는 선택이 가능합니다. -- PC - 카드결제 - ISP 선택: 할부 기간 선택 불가능\ - -- PC - 카드결제 - ISP 선택 - 페이북 팝업: 할부 기간 선택 가능 + - PC - 카드결제 - ISP 선택: 할부 기간 선택 불가능 + -다소 헷갈릴 수 있으나 간편결제는 간편결제 앱에서 할부 개월수를 선택할 수 있어 토스페이먼츠 결제창에서 선택할 수 없다는 토스 답변이 있었습니다. + - PC - 카드결제 - ISP 선택 - 페이북 팝업: 할부 기간 선택 가능 + 다소 헷갈릴 수 있으나 간편결제는 간편결제 앱에서 할부 개월수를 선택할 수 있어 토스페이먼츠 결제창에서 선택할 수 없다는 토스 답변이 있었습니다.
-

카카오페이 13개월 이상 할부 개월수 불가능한 이슈

- -카카오페이 자체에서 13개월 이상 할부 결제를 지원하지 않기 때문에, 카카오페이로는 최대 12개월까지 할부 결제가 가능합니다. +

카카오페이 13개월 이상 할부 개월수 불가능한 이슈

+ 카카오페이 자체에서 13개월 이상 할부 결제를 지원하지 않기 때문에, 카카오페이로는 최대 12개월까지 할부 결제가 가능합니다.
-

카카오페이 일부 카드의 경우 카드 정보를 확인할 수 없는 이슈

- -카카오페이로 결제시 일부 카드(2022년 6월 이후 카드사 측에서 신규 생성 된 카드)의 경우, 카카오페이 → 토스페이먼츠로 카드 정보를 정상적으로 내려주지 않기 때문에 포트원 REST API로 결제내역 조회(GET /payments/\{imp_uid})시 카드사 정보(card_code: 카드 코드, card_name: 카드 이름)를 확인할 수 없습니다. +

카카오페이 일부 카드의 경우 카드 정보를 확인할 수 없는 이슈

+ 카카오페이로 결제시 일부 카드(2022년 6월 이후 카드사 측에서 신규 생성 된 카드)의 경우, 카카오페이 → 토스페이먼츠로 카드 정보를 정상적으로 내려주지 않기 때문에 포트원 REST API로 결제내역 조회(GET /payments/\{imp\_uid})시 카드사 정보(card\_code: 카드 코드, card\_name: 카드 이름)를 확인할 수 없습니다.
## 카드사 다이렉트 호출
-

고정 할부 개월수(card.direct.quota)를 보내지 않으면 무조건 일시불로 결제 됨

+

고정 할부 개월수(card.direct.quota)를 보내지 않으면 무조건 일시불로 결제 됨

-토스페이먼츠는 카드사 다이렉트 호출시 **quota 값을 전달하지 않는 경우에는 무조건 일시불로 결제**가 됩니다. + 토스페이먼츠는 카드사 다이렉트 호출시 **quota 값을 전달하지 않는 경우에는 무조건 일시불로 결제**가 됩니다. -따라서 카드사 다이렉트 호출시에는 반드시 구매자가 할부 개월수를 선택할 수 있는 UI/UX를 만들어주신 후 결제창 호출(IMP.request_pay)시 card.direct.quota값을 넘겨야 합니다. + 따라서 카드사 다이렉트 호출시에는 반드시 구매자가 할부 개월수를 선택할 수 있는 UI/UX를 만들어주신 후 결제창 호출(IMP.request\_pay)시 card.direct.quota값을 넘겨야 합니다. -- 예1. 현대카드 다이렉트 호출 → 무조건 일시불로 결제 됨 + - 예1. 현대카드 다이렉트 호출 → 무조건 일시불로 결제 됨 - ```jsx - card: { - direct: { - code: "367"; + ```json + { + "card": { + "direct": { + "code": "367" + } + } } - } - ``` + ``` -- 예2. 삼성카드 다이렉트 호출 + 5개월 고정 할부 개월수 지정 → 5개월 할부 적용 + - 예2. 삼성카드 다이렉트 호출 + 5개월 고정 할부 개월수 지정 → 5개월 할부 적용 - ```jsx - { - card: { - direct: { - code: '365', - quota: 5 + ```json + { + "card": { + "direct": { + "code": "365", + "quota": 5 + } } } - } - ``` - + ```
-

고정 할부 개월수(card.direct.quota)를 보내도 카드 결제창에서 결제 될 할부 개월수를 확인할 수 없음

+

고정 할부 개월수(card.direct.quota)를 보내도 카드 결제창에서 결제 될 할부 개월수를 확인할 수 없음

-카드사 다이렉트 호출시 quota 값을 보내도 **실제로 카드사 결제창에서는 결제시 적용 될 할부 개월수를 확인할 수 없습니다.** (물론 실제 승인시에는 전달한 quota값 만큼 할부 적용이 됨) + 카드사 다이렉트 호출시 quota 값을 보내도 **실제로 카드사 결제창에서는 결제시 적용 될 할부 개월수를 확인할 수 없습니다.** (물론 실제 승인시에는 전달한 quota값 만큼 할부 적용이 됨) -단, ISP 계열의 카드사인 경우에는 페이북 팝업에서 확인이 가능하며 이 값을 사용자가 변경 할 수는 없습니다. + 단, ISP 계열의 카드사인 경우에는 페이북 팝업에서 확인이 가능하며 이 값을 사용자가 변경 할 수는 없습니다. -- 예. BC카드 다이렉트 호출 + 5개월 고정 할부 개월수 지정\\ + - 예. BC카드 다이렉트 호출 + 5개월 고정 할부 개월수 지정\\ -
- -
-
+
+ -```javascript -card: { - direct: { - code: '361', - quota: 5 - } -} -``` +
+
+ ```json + { + "card": { + "direct": { + "code": "361", + "quota": 5 + } + } + } + ```
-

페이북을 통한 ISP 계열 카드 결제시, 카드 번호가 정상적으로 내려오지 않음

- -페이북 통한 ISP 계열 카드 결제시 토스페이먼츠로부터 실제 카드 번호와 다른 9200으로 시작하는 카드 번호가 내려오고 있어 결제 승인 내역 조회(POST `/payments/{imp_uid}`)시 응답되는 카드 번호(`card_numer`)가 정확하지 않습니다. +

페이북을 통한 ISP 계열 카드 결제시, 카드 번호가 정상적으로 내려오지 않음

+ 페이북 통한 ISP 계열 카드 결제시 토스페이먼츠로부터 실제 카드 번호와 다른 9200으로 시작하는 카드 번호가 내려오고 있어 결제 승인 내역 조회(POST `/payments/{imp_uid}`)시 응답되는 카드 번호(`card_numer`)가 정확하지 않습니다.
-

사파리 브라우저에서 ISP 계열 카드 결제 불가능

- -사파리 브라우저에서 ISP 계열 카드 결제를 위한 페이북 팝업 호출에 이슈가 있습니다. 이는 토스페이먼츠 결제창에서 페이북으로 넘어가는 과정에서 발생하는 이슈로 포트원과는 무관합니다. +

사파리 브라우저에서 ISP 계열 카드 결제 불가능

+ 사파리 브라우저에서 ISP 계열 카드 결제를 위한 페이북 팝업 호출에 이슈가 있습니다. 이는 토스페이먼츠 결제창에서 페이북으로 넘어가는 과정에서 발생하는 이슈로 포트원과는 무관합니다.
## 가상계좌
-

가상계좌 발급 완료시 예금주 명 알 수 없음

- -토스페이먼츠는 가상계좌 발급 완료시 발급 된 가상계좌의 **예금주 명을 전달해주지 않습니다**. 따라서 포트원 REST API로 결제내역 조회(GET `/payments/{imp_uid}`)시 `vbank_holder`가 null로 전달됩니다. +

가상계좌 발급 완료시 예금주 명 알 수 없음

-실제 가상계좌 예금주 명은 토스페이먼츠와 계약된 고객사 이름과 동일하다고 하니, 참고 부탁드립니다. + 토스페이먼츠는 가상계좌 발급 완료시 발급 된 가상계좌의 **예금주 명을 전달해주지 않습니다**. 따라서 포트원 REST API로 결제내역 조회(GET `/payments/{imp_uid}`)시 `vbank_holder`가 null로 전달됩니다. + 실제 가상계좌 예금주 명은 토스페이먼츠와 계약된 고객사 이름과 동일하다고 하니, 참고 부탁드립니다.
## 간편결제
-

대부분의 간편결제에 대해 결제 테스트 불가능

- -토스페이먼츠는 SSGPAY, 네이버페이, 카카오페이, 페이코 등 대부분의 간편결제에 대해 결제 테스트 기능을 제공하고 있지 않습니다. 따라서 테스트용 설정으로 간편결제를 시도하면 `[PAY_PROCESS_ABORTED] Toss Payments와 계약된 결제수단(SSG)이 아닙니다.` 와 같은 에러 메시지가 리턴되면서 결제창이 호출되지 않습니다. 이 경우 토스페이먼츠와 실 상점 계약을 하여 실 상점 정보를 포트원 관리자페이지에 다시 등록한 후 시도하셔야 합니다. +

대부분의 간편결제에 대해 결제 테스트 불가능

+ 토스페이먼츠는 SSGPAY, 네이버페이, 카카오페이, 페이코 등 대부분의 간편결제에 대해 결제 테스트 기능을 제공하고 있지 않습니다. 따라서 테스트용 설정으로 간편결제를 시도하면 `[PAY_PROCESS_ABORTED] Toss Payments와 계약된 결제수단(SSG)이 아닙니다.` 와 같은 에러 메시지가 리턴되면서 결제창이 호출되지 않습니다. 이 경우 토스페이먼츠와 실 상점 계약을 하여 실 상점 정보를 포트원 관리자페이지에 다시 등록한 후 시도하셔야 합니다.
-

카드 외 복합 결제 건에 대해서는 정확한 결제 수단 정보 확인 불가능

+

카드 외 복합 결제 건에 대해서는 정확한 결제 수단 정보 확인 불가능

-간편결제로는 여러가지 결제수단으로 결제 할 수도 있고 각 결제 수단을 혼합하여 복합 결제를 할 수도 있습니다. 이때 토스페이먼츠는 구매자가 정확히 어떤 방식으로 결제했는지 데이터를 내려주지 않으며 그 내용은 아래와 같습니다. - -1. 카드로 결제한 경우에는 카드 정보(카드사, 카드 유형 등)를 확인할 수 있습니다. -2. 하지만 카드 외의 결제 수단으로 결제를 한 경우에는, 결제 수단 세부 정보(어떤 은행, 포인트, 머니인지)를 확인할 수 없습니다. -3. 카드가 포함 된 결제 건인지 아닌지는 구분이 됩니다. 따라서 카드가 포함 된 결제 건이면 결제 수단을 `card` 로 기록합니다. -4. 하지만 계좌 / 포인트 / 머니 중 어떤 것으로 결제 됐는지 구분되지 않습니다. 따라서 카드가 포함 되지 않은 결제 건이면 결제 수단을 `point`로 기록합니다. 실제로 등록된 계좌로 결제 됐다고 하더라도 포인트나 머니로 결제 된 것과 구분되지 않기 때문에 결제 수단을 `trans`로 저장하지 않습니다. + 간편결제로는 여러가지 결제수단으로 결제 할 수도 있고 각 결제 수단을 혼합하여 복합 결제를 할 수도 있습니다. 이때 토스페이먼츠는 구매자가 정확히 어떤 방식으로 결제했는지 데이터를 내려주지 않으며 그 내용은 아래와 같습니다. + 1. 카드로 결제한 경우에는 카드 정보(카드사, 카드 유형 등)를 확인할 수 있습니다. + 2. 하지만 카드 외의 결제 수단으로 결제를 한 경우에는, 결제 수단 세부 정보(어떤 은행, 포인트, 머니인지)를 확인할 수 없습니다. + 3. 카드가 포함 된 결제 건인지 아닌지는 구분이 됩니다. 따라서 카드가 포함 된 결제 건이면 결제 수단을 `card` 로 기록합니다. + 4. 하지만 계좌 / 포인트 / 머니 중 어떤 것으로 결제 됐는지 구분되지 않습니다. 따라서 카드가 포함 되지 않은 결제 건이면 결제 수단을 `point`로 기록합니다. 실제로 등록된 계좌로 결제 됐다고 하더라도 포인트나 머니로 결제 된 것과 구분되지 않기 때문에 결제 수단을 `trans`로 저장하지 않습니다.
-

고정 할부 개월수 적용해도 일시불과 함께 표기

+

고정 할부 개월수 적용해도 일시불과 함께 표기

-네이버페이, L페이, 토스페이, 삼성페이 등 일부 간편결제사의 경우 해당 간편결제사의 정책에 따라 **고정 할부 개월수를 설정하더라도 일시불과 함께 렌더링**됩니다. + 네이버페이, L페이, 토스페이, 삼성페이 등 일부 간편결제사의 경우 해당 간편결제사의 정책에 따라 **고정 할부 개월수를 설정하더라도 일시불과 함께 렌더링**됩니다. -- 예. 네이버페이 - 5개월 고정 할부 설정시, 일시불과 5개월 할부 모두 선택 가능 + - 예. 네이버페이 - 5개월 고정 할부 설정시, 일시불과 5개월 할부 모두 선택 가능 - ```jsx - { - pay_method: 'naverpay', - display: { - card_quota: [5] + ```json + { + "pay_method": "naverpay", + "display": { + "card_quota": [5] + } } - } - ``` - -
+ ``` +
## 기타 @@ -262,60 +264,53 @@ card: { - `cashReceiptType` 파라미터로 인한 오동작 관련 이슈
-

지출증빙 발급번호 이슈

- -`bypass.cashReceiptType`(현금성 결제시, 결제창 내에 현금영수증 발급 유형 설정 값)을 corporate(지출 증빙)으로 설정하고 결제창을 호출하면 토스페이먼츠 결제창에서 현금영수증 발급 유형이 “지출증빙”으로 표기되어있으나 발급 번호가 사업자등록번호가 아닌 주민등록번호로 설정되어있으며 이를 변경할 수 없는 토스 버그가 있습니다. 따라서 구매자는 현금영수증 발급 유형을 지출증빙용이 아닌 소득공제용이나 미발행으로 바꿔서 선택한 후 다시 지출증빙용을 선택해야합니다. +

지출증빙 발급번호 이슈

- + `bypass.cashReceiptType`(현금성 결제시, 결제창 내에 현금영수증 발급 유형 설정 값)을 corporate(지출 증빙)으로 설정하고 결제창을 호출하면 토스페이먼츠 결제창에서 현금영수증 발급 유형이 “지출증빙”으로 표기되어있으나 발급 번호가 사업자등록번호가 아닌 주민등록번호로 설정되어있으며 이를 변경할 수 없는 토스 버그가 있습니다. 따라서 구매자는 현금영수증 발급 유형을 지출증빙용이 아닌 소득공제용이나 미발행으로 바꿔서 선택한 후 다시 지출증빙용을 선택해야합니다. +
-

간편결제 - SSG페이 결제시 토스페이먼츠 결제창에서 휴대폰 번호를 입력하지 않아도 다음으로 넘어가는 이슈

- -간편결제 - SSG페이 결제시 토스페이먼츠 결제창에서 휴대폰 번호를 입력해야 구매자의 휴대폰에 깔린 SSG 페이 앱에서 푸쉬 알림이 오면서 결제를 할 수 있는데, 현재 토스페이먼츠 결제창에서 휴대폰 번호를 입력하지 않아도 다음 단계로 이동되기 때문에 구매자는 이 경우 무한 대기를 하게 됩니다. 휴대폰 번호를 입력을 하지 않은 경우엔 다음 단계로 이동할 수 없도록 토스 측의 조치가 필요합니다.![]() +

간편결제 - SSG페이 결제시 토스페이먼츠 결제창에서 휴대폰 번호를 입력하지 않아도 다음으로 넘어가는 이슈

+ 간편결제 - SSG페이 결제시 토스페이먼츠 결제창에서 휴대폰 번호를 입력해야 구매자의 휴대폰에 깔린 SSG 페이 앱에서 푸쉬 알림이 오면서 결제를 할 수 있는데, 현재 토스페이먼츠 결제창에서 휴대폰 번호를 입력하지 않아도 다음 단계로 이동되기 때문에 구매자는 이 경우 무한 대기를 하게 됩니다. 휴대폰 번호를 입력을 하지 않은 경우엔 다음 단계로 이동할 수 없도록 토스 측의 조치가 필요합니다.![]()
-

삼성페이 결제 중단시 결제창 잘림 현상

- -삼성페이 결제창 렌더링 후 장시간 대기했다가 우측 상단 X 버튼을 눌러 결제 프로세스를 중단하면 아래와 같이 잘린 화면이 렌더링됩니다. 가로 스크롤도 동작하지 않아(스크롤은 움직이지만 화면은 고정) 사용자 경험이 다소 저해됩니다. +

삼성페이 결제 중단시 결제창 잘림 현상

- + 삼성페이 결제창 렌더링 후 장시간 대기했다가 우측 상단 X 버튼을 눌러 결제 프로세스를 중단하면 아래와 같이 잘린 화면이 렌더링됩니다. 가로 스크롤도 동작하지 않아(스크롤은 움직이지만 화면은 고정) 사용자 경험이 다소 저해됩니다. +
-

현금영수증 발급 API 호출시 유효성 검사를 하지 않음

- -예를 들어 현금영수증 발급 유형(type)을 소득공제(person)으로 보내고 현금영수증 발급 번호(identifier)를 사업자 등록번호로 보내면 실제로는 현금영수증 발급에 실패해야하지만 토스페이먼츠에서 유효성 검사를 하지 않아 그대로 성공 응답을 보내고 있습니다. +

현금영수증 발급 API 호출시 유효성 검사를 하지 않음

-따라서 원활한 현금영수증 발급을 위해서는 현금영수증 발급 API 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다. + 예를 들어 현금영수증 발급 유형(type)을 소득공제(person)으로 보내고 현금영수증 발급 번호(identifier)를 사업자 등록번호로 보내면 실제로는 현금영수증 발급에 실패해야하지만 토스페이먼츠에서 유효성 검사를 하지 않아 그대로 성공 응답을 보내고 있습니다. + 따라서 원활한 현금영수증 발급을 위해서는 현금영수증 발급 API 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.
-

사파리 / 파이어폭스 브라우저 내 팝업 블로커 이슈

- -사파리 / 파이어폭스 브라우저에서 설정에서 팝업이 차단되어있는 경우 페이북 결제시 팝업이 뜨지 않아 결제 진행이 되지 않거나 가상계좌 발급이나 휴대폰 소액결제시 승인에 실패하는 등 결제가 원활하게 진행되지 않을 수 있으니, 반드시 팝업을 해제하시고 시도해주시기 바랍니다. +

사파리 / 파이어폭스 브라우저 내 팝업 블로커 이슈

+ 사파리 / 파이어폭스 브라우저에서 설정에서 팝업이 차단되어있는 경우 페이북 결제시 팝업이 뜨지 않아 결제 진행이 되지 않거나 가상계좌 발급이나 휴대폰 소액결제시 승인에 실패하는 등 결제가 원활하게 진행되지 않을 수 있으니, 반드시 팝업을 해제하시고 시도해주시기 바랍니다.
-

IE 브라우저 - 카드결제 - 페이코 선택시 아래와 같이 결제창이 잘리는 이슈

- -이에 대해 토스로부터 “IE 에서 fade out 이 되고 있으므로 수정에 우선순위를 두기 어려울것 같습니다.”라는 답변을 받았습니다. +

IE 브라우저 - 카드결제 - 페이코 선택시 아래와 같이 결제창이 잘리는 이슈

+ 이에 대해 토스로부터 “IE 에서 fade out 이 되고 있으므로 수정에 우선순위를 두기 어려울것 같습니다.”라는 답변을 받았습니다.
-

IE 브라우저 결제 중단시 에러 메시지 인코딩 이슈

- -IE 브라우저에서 결제 중단(결제 승인/실패 이전에 결제창을 명시적으로 닫을때)시 토스페이먼츠로부터 아래와 같이 인코딩 된 에러 메시지가 전달되는 이슈가 있습니다. (이를 디코딩해보면 “사용자가결제를취소하였습니다”라는 메시지) +

IE 브라우저 결제 중단시 에러 메시지 인코딩 이슈

-`%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80 %EA%B2%B0%EC%A0%9C%EB%A5%BC %EC%B7%A8%EC%86%8C%ED%95%98%EC%98%80%EC%8A%B5%EB%8B%88%EB%8B%A4` + IE 브라우저에서 결제 중단(결제 승인/실패 이전에 결제창을 명시적으로 닫을때)시 토스페이먼츠로부터 아래와 같이 인코딩 된 에러 메시지가 전달되는 이슈가 있습니다. (이를 디코딩해보면 “사용자가결제를취소하였습니다”라는 메시지) -이에 대해 토스로부터 “IE 의 인코딩 이슈라서 저희가 수정해 드리기가 애매하고, 내부적으로 IE 는 fadeout 되어 더 이상 공식적으로 지원을 하지 않고 있습니다.”라는 답변을 받았습니다. + `%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80 %EA%B2%B0%EC%A0%9C%EB%A5%BC %EC%B7%A8%EC%86%8C%ED%95%98%EC%98%80%EC%8A%B5%EB%8B%88%EB%8B%A4` + 이에 대해 토스로부터 “IE 의 인코딩 이슈라서 저희가 수정해 드리기가 애매하고, 내부적으로 IE 는 fadeout 되어 더 이상 공식적으로 지원을 하지 않고 있습니다.”라는 답변을 받았습니다.
diff --git a/src/content/docs/ko/pg/payment-gateway/nhn-kcp.mdx b/src/content/docs/ko/pg/payment-gateway/nhn-kcp.mdx index 35f6d4263..b42c0d613 100644 --- a/src/content/docs/ko/pg/payment-gateway/nhn-kcp.mdx +++ b/src/content/docs/ko/pg/payment-gateway/nhn-kcp.mdx @@ -3,12 +3,12 @@ title: NHN KCP description: NHN KCP 결제창 연동 가이드입니다. --- +import Figure from "~/components/Figure.astro"; import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. NHN KCP 채널 설정하기 @@ -16,523 +16,542 @@ import Tab from "~/components/gitbook/tabs/Tab.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 NHN KCP 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback** 으로 수신되고 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript -IMP.request_pay({ - pg : 'kcp.{사이트코드}', //테스트인경우 kcp.T0000 - pay_method : 'card', - merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호 - name : '주문명:결제테스트', - amount : 1004, - company : '상호명',//해당 파라미터 설정시 통합결제창에 해당 상호명이 노출됩니다. - buyer_email : 'test@portone.io', - buyer_name : '구매자이름', - buyer_tel : '010-1234-5678', - buyer_addr : '서울특별시 강남구 삼성동', - buyer_postcode : '123-456', - language : 'ko', // en 설정시 영문으로 출력되면 해당 파라미터 생략시 한국어 default - m_redirect_url : '{모바일에서 결제 완료 후 리디렉션 될 URL}', - auth_mode:'key-in' // 키인결제(일회성 결제)이용시 설정 -}, function(rsp) { // callback 로직 - //* ...중략... *// -}); -``` - -## 주요 파라미터 설명 - -**`pg`** **\*** **string** - -**PG사 구분코드** - -`kcp.{사이트코드}` - -사이트코드 값은 KCP 계약 후 KCP로 부터 발급받을수 있습니다. - -**`pay_method`** **\*** **string** - -**결제수단 구분코드** - -- card (신용카드) -- samsung (삼성페이) -- trans (실시간 계좌이체) -- vbank(가상계좌) -- phone (휴대폰소액결제) -- payco (페이코 허브형) -- lpay(L페이 허브형) -- cultureland (문화상품권) -- smartculture (스마트문상) -- happymoney (해피머니) -- booknlife (도서문화상품권) -- point (베네피아 포인트) -- kakaopay(카카오페이) -- naverpay(네이버페이) -- applepay(애플페이) - -**`merchant_uid`** **\*** **string** - -**주문번호** - -매번 고유하게 채번되어야 합니다. - -**`amount`** **\*** **integer** - -**결제금액** - -**string** 이 아닌점에 유의하세요 - - -**payco 허브형**인 경우 KCP 관리자페이지 신청 및 설정이 필요합니다. - -신청안내 링크 : [https://sir.kr/main/service/p_payco_hub.php](https://sir.kr/main/service/p_payco_hub.php) - - - - - - - - -인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. - -```javascript title="Javascript SDK" showLineNumbers -IMP.request_pay( - { - pg: "kcp_billing.{사이트코드}", - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 0, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` + + ```ts + IMP.request_pay( + { + pg: "kcp.{사이트코드}", //테스트인경우 kcp.T0000 + pay_method: "card", + merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + company: "상호명", //해당 파라미터 설정시 통합결제창에 해당 상호명이 노출됩니다. + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + language: "ko", // en 설정시 영문으로 출력되면 해당 파라미터 생략시 한국어 default + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + auth_mode: "key-in", // 키인결제(일회성 결제)이용시 설정 + }, + function (rsp) { + // callback 로직 + //* ...중략... *// + }, + ); + ``` + + ## 주요 파라미터 설명 + + **`pg`** **\*** **string** + + **PG사 구분코드** + + `kcp.{사이트코드}` + + 사이트코드 값은 KCP 계약 후 KCP로 부터 발급받을수 있습니다. + + **`pay_method`** **\*** **string** + + **결제수단 구분코드** + + - card (신용카드) + - samsung (삼성페이) + - trans (실시간 계좌이체) + - vbank(가상계좌) + - phone (휴대폰소액결제) + - payco (페이코 허브형) + - lpay(L페이 허브형) + - cultureland (문화상품권) + - smartculture (스마트문상) + - happymoney (해피머니) + - booknlife (도서문화상품권) + - point (베네피아 포인트) + - kakaopay(카카오페이) + - naverpay(네이버페이) + - applepay(애플페이) + + **`merchant_uid`** **\*** **string** + + **주문번호** + + 매번 고유하게 채번되어야 합니다. - -- 비인증 결제를 위해서는 **KCP와 협의가 완료된 사이트코드**를 관리자콘솔에 설정하셔야 비인증 결제창을 활성화 시킬수 있습니다. -- KCP는 빌링키 발급시 **실 결제는 발생되지 않습니다**.(금액을 지정해도 결제가 발생되지 않음) + **`amount`** **\*** **integer** - + **결제금액** -## 주요 파라미터 설명 + **string** 이 아닌점에 유의하세요 + + + **payco 허브형**인 경우 KCP 관리자페이지 신청 및 설정이 필요합니다. -**`pg`** **\*** **string** + 신청안내 링크 : [https://sir.kr/main/service/p\_payco\_hub.php](https://sir.kr/main/service/p_payco_hub.php) + -**PG사 구분코드** + + -`kcp_billing.{사이트코드}` + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. -사이트코드 값은 KCP 계약 후 KCP로 부터 발급받을수 있습니다. + ```ts title="Javascript SDK" showLineNumbers + IMP.request_pay( + { + pg: "kcp_billing.{사이트코드}", + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 0, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` -**`customer_uid`** **\*** **string** + + - 비인증 결제를 위해서는 **KCP와 협의가 완료된 사이트코드**를 관리자콘솔에 설정하셔야 비인증 결제창을 활성화 시킬수 있습니다. + - KCP는 빌링키 발급시 **실 결제는 발생되지 않습니다**.(금액을 지정해도 결제가 발생되지 않음) + -**카드 빌링키** + ## 주요 파라미터 설명 -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + **`pg`** **\*** **string** -**`amount`** **\*** **Integer** + **PG사 구분코드** -**결제금액** + `kcp_billing.{사이트코드}` -결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다.(실 결제를 발생시키기 위해서는 **customer_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.) + 사이트코드 값은 KCP 계약 후 KCP로 부터 발급받을수 있습니다. -## 빌링키(customer\_uid)로 결제 요청하기 + **`customer_uid`** **\*** **string** -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + **카드 빌링키** -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -**API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** + **`amount`** **\*** **Integer** - + **결제금액** - -## 일회성 결제 요청하기 + 결제창에 표시될 금액으로 실제 승인은 이루어지지 않습니다. + (실 결제를 발생시키기 위해서는 **customer\_uid** 로 **REST API 를 이용하여 결제요청**을 해주셔야 합니다.) -REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + ## 빌링키(customer\_uid)로 결제 요청하기 -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. + customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 + 결제를 발생시킬 수 있습니다. -## 빌링키 발급 요청하기 + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + **API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** + -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + + ## 일회성 결제 요청하기 -## 빌링키 발급 및 최초 결제 요청하기 + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. + 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + ## 빌링키 발급 요청하기 -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -## 빌링키로 결제 요청하기 + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + ## 빌링키 발급 및 최초 결제 요청하기 -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -**자세한 가이드는 아래 링크를 참조하세요** + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` - + ## 빌링키로 결제 요청하기 + + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. + 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 + 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + + **자세한 가이드는 아래 링크를 참조하세요** + + + ## 3. 부가기능 - -```javascript title="javascript" -display: { - card_quota: [6] // 할부개월 6개월까지만 활성화 -} -``` - -**파라미터 설명** - -- **card_quota :** - - `[]`: 일시불만 결제 가능 - - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ - - -할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. - - - -할부개월수 **3개월****까지 활성화 예제** - - - - - - -```javascript title="javascript" -{ - card: { - direct: { - code: "367", - quota: 3 - // 카드사 포인트 사용 경우 - // quota: 80 = 80(현대카드 포인트 할부개월) + 0(일시불) - // quota: 93 = 80(현대카드 포인트 할부개월) + 13개월 할부 - // quota: 60 = 60(기타카드 포인트 할부개월) + 0(일시불) - // quota: 63 = 60(기타카드 포인트 할부개월) + 3개월 할부 + + ```json + { + "display": { + "card_quota": [6] // 할부개월 6개월까지만 활성화 + } + } + ``` + + **파라미터 설명** + + - **card\_quota :** + - `[]`: 일시불만 결제 가능 + - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ + + + 할부결제는 **5만원 이상 결제 요청시**에만 이용 가능합니다. + + + 할부개월수 **3개월****까지 활성화 예제** + + + + + + ```json + { + "card": { + "direct": { + "code": "367", + "quota": 3 + // 카드사 포인트 사용 경우 + // quota: 80 = 80(현대카드 포인트 할부개월) + 0(일시불) + // quota: 93 = 80(현대카드 포인트 할부개월) + 13개월 할부 + // quota: 60 = 60(기타카드 포인트 할부개월) + 0(일시불) + // quota: 63 = 60(기타카드 포인트 할부개월) + 3개월 할부 + } + }, + "company": "고객사", // 해당 파라미터를 설정하지 않으면 카드사 모듈 창에 import 로 표기 + } + ``` + + **파라미터 설명** + + - **code**: 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + + - **quota**: 할부 개월 수. 일시불일 시 0 으로 지정. 만약, 신용 카드사 포인트를 사용할 경우 카드사별 포인트 할부개월\[1]을 할부 개월 수에 더해줘야 합니다. (**integer**) + +
+ \[1] 카드사별 포인트 할부개월 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

카드사 포인트

+
+

포인트 할부개월

+
+

현대M

+
+

+80

+
+

국민

+
+

+60

+
+

비씨

+
+

+60

+
+

삼성

+
+

+60

+
+

하나/외환

+
+

+60

+
+

롯데

+
+

+60

+
+

신한

+
+

+60

+
+

농협

+
+

+60

+
+

씨티

+
+

+60

+
+

우리

+
+

+60

+
+
+ + + **주의사항** + + - 현재 **KG이니시스, KCP, 토스페이먼츠, 나이스페이먼츠, KICC, 다날** 6개 PG사에 대해서만 카드사 결제창 direct 호출이 가능합니다. + - 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다. + + + **현대카드** 결제모듈 바로 호출 예제 + + +
+ + + ```json + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, // 모든 카드사 비활성화 + { "card_code": "366", "enabled": true } // 특정 카드만 활성화 + ] + } + } + ``` + + **파라미터 설명** + + - **card\_code :** 금결원 카드사코드 [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** + - **enabled :** 해당카드 활성화 여부 (**boolean)** + + **신한카드****만 결제창 노출 처리 예제** + + + + + + 인증결제시 각 카드사 앱카드 결제 화면만 노출하고 싶은 경우 아래 파라미터를 설정하시면 됩니다. + + ```json + { + "appCard": true //true 설정시 각 카드사 앱카드 결제만 활성화 } - }, - company: "고객사", // 해당 파라미터를 설정하지 않으면 카드사 모듈 창에 import 로 표기 -} -```` - -**파라미터 설명** - -- **code**: 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **quota**: 할부 개월 수. 일시불일 시 0 으로 지정. 만약, 신용 카드사 포인트를 사용할 경우 카드사별 포인트 할부개월[1]을 할부 개월 수에 더해줘야 합니다. (**integer**) -
- [1] 카드사별 포인트 할부개월 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

카드사 포인트

-
-

포인트 할부개월

-
-

현대M

-
-

+80

-
-

국민

-
-

+60

-
-

비씨

-
-

+60

-
-

삼성

-
-

+60

-
-

하나/외환

-
-

+60

-
-

롯데

-
-

+60

-
-

신한

-
-

+60

-
-

농협

-
-

+60

-
-

씨티

-
-

+60

-
-

우리

-
-

+60

-
-
- - -**주의사항** - -- 현재 **KG이니시스, KCP, 토스페이먼츠, 나이스페이먼츠, KICC, 다날** 6개 PG사에 대해서만 카드사 결제창 direct 호출이 가능합니다. -- 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다. - - - -**현대카드** 결제모듈 바로 호출 예제 - - - -
- - -```javascript -{ - card: { - detail: [ - { card_code: "*", enabled: false }, // 모든 카드사 비활성화 - { card_code: "366", enabled: true } // 특정 카드만 활성화 - ] - } -} -```` - -**파라미터 설명** - -- **card_code :** 금결원 카드사코드 [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** -- **enabled :** 해당카드 활성화 여부 (**boolean)** - -**신한카드****만 결제창 노출 처리 예제** - - - - - - -인증결제시 각 카드사 앱카드 결제 화면만 노출하고 싶은 경우 아래 파라미터를 설정하시면 됩니다. - -```javascript title="request_pay()" -{ - appCard: true; //true 설정시 각 카드사 앱카드 결제만 활성화 -} -``` - - + ``` +
## 4. 기타 파라미터 - -**상품권 결제수단**을 사용하기 위해서는 고객사에서 관리하는 회원ID를 아래와 같은 방법으로 파라미터 설정이 필요합니다. - -```javascript title="javascript SDK" -{ - bypass: { - shop_user_id: "ABCD123"; // 고객사 회원ID (20byte) - } -} -``` - - -**상품권 기관 RM 조치를 위해 필수적으로 실어주셔야 합니다.** - - - -**컬처랜드 문화 상품권을 호출하는 경우** - -```javascript -IMP.request_pay({ - pg: "kcp.{문화상품권 대상 사이트코드}", - pay_method: "cultureland", //문화상품권 - merchant_uid: "A00021-TEST", - name: "당근 10kg", - amount: 1004, - buyer_email: "iamport@chai.finance", - buyer_name: "포트원 기술지원팀", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - bypass: { - shop_user_id: "abaddd", // 고객사 회원 id기재 - }, -}); -``` - - - - -에스크로 결제를 위해서는 **`escrow`** 파라미터를 추가하고 **true** 값으로 설정되어야 합니다. 에스크로 결제요청 시 **장바구니 상품을 묶어서 결제하는 경우** 해당 품목에 대한 정보를 전달하기 위해 해당 상품관련 정보를 추가 파라미터(**`kcpProducts`**)로 전달해야 합니다.\ -\*\*`kcpProducts`\*\*는 다음 4개의 필수 속성으로 구성된 객체배열입니다. - -**`amount`** 값은 결제 금액(`param.amount`) 값과 관계가 없으며 비교검증되지 않습니다. - -- orderNumber : 상품주문번호 -- name : 상품명 -- quantity : 수량 -- amount : 상품 가격 - -```javascript title="JavaScript SDK" -IMP.request_pay({ - pg: "kcp", - escrow: true, // 에스크로 결제인 경우 필요 - kcpProducts: [ + + **상품권 결제수단**을 사용하기 위해서는 고객사에서 관리하는 회원ID를 아래와 같은 방법으로 파라미터 설정이 필요합니다. + + ```json { - orderNumber: "xxxx", - name: "상품A", - quantity: 3, - amount: 1000, - }, + "bypass": { + "shop_user_id": "ABCD123" // 고객사 회원ID (20byte) + } + } + ``` + + + **상품권 기관 RM 조치를 위해 필수적으로 실어주셔야 합니다.** + + + **컬처랜드 문화 상품권을 호출하는 경우** + + ```ts + IMP.request_pay({ + pg: "kcp.{문화상품권 대상 사이트코드}", + pay_method: "cultureland", //문화상품권 + merchant_uid: "A00021-TEST", + name: "당근 10kg", + amount: 1004, + buyer_email: "iamport@chai.finance", + buyer_name: "포트원 기술지원팀", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + bypass: { + shop_user_id: "abaddd", // 고객사 회원 id기재 + }, + }); + ``` + + + + 에스크로 결제를 위해서는 **`escrow`** 파라미터를 추가하고 **true** 값으로 설정되어야 합니다. + 에스크로 결제요청 시 **장바구니 상품을 묶어서 결제하는 경우** + 해당 품목에 대한 정보를 전달하기 위해 해당 상품관련 정보를 추가 파라미터(**`kcpProducts`**)로 전달해야 합니다.\ + **`kcpProducts`** 는 다음 4개의 필수 속성으로 구성된 객체배열입니다. + + **`amount`** 값은 결제 금액(`param.amount`) 값과 관계가 없으며 비교검증되지 않습니다. + + - orderNumber : 상품주문번호 + - name : 상품명 + - quantity : 수량 + - amount : 상품 가격 + + ```ts title="JavaScript SDK" + IMP.request_pay({ + pg: "kcp", + escrow: true, // 에스크로 결제인 경우 필요 + kcpProducts: [ + { + orderNumber: "xxxx", + name: "상품A", + quantity: 3, + amount: 1000, + }, + { + orderNumber: "yyyy", + name: "상품B", + quantity: 2, + amount: 3000, + }, + ], + /* ...중략 (README 파일에서 상세 샘플코드를 확인하세요)... */ + }); + ``` + + + + ```json { - orderNumber: "yyyy", - name: "상품B", - quantity: 2, - amount: 3000, - }, - ], - /* ...중략 (README 파일에서 상세 샘플코드를 확인하세요)... */ -}); -``` - - - - -```javascript title="request_pay()" -{ - prefill: { - phoneNumber: "고정할 휴대폰번호" - } -} -``` - -숫자만 입력하세요 - - - - -```javascript -IMP.request_pay({ - ... - bypass: { - coupon_apply_yn: "Y", // 미사용시 "N" - }, - ... -}); -``` - -인증 결제창내 할인쿠폰 UX를 활성/비활성화 할 수 있습니다. -해당 기능은 KCP와 협의 후 사용 가능 합니다. - - - - -```javascript -IMP.request_pay({ - ... - bypass : { - batch_birth_day_yn: "Y", // 결제창 렌더링 시 생년월일 입력 박스 고정 활성화 - } - ... -}); -``` - -NHN KCP 결제창을 이용한 빌링키 발급 시 PC 환경에서 공인인증서 절차를 생략하는 경우 -카드 정보 입력 화면에서 생년월일 입력 박스가 표시되도록 고정시킬 수 있습니다. -해당 파라미터를 설정하지 않고 빌링키 발급 진행 시 최초 주민등록번호 입력 박스가 표시되며, 카드 정보 8자리 입력 시 생년월일 입력 박스로 변환됩니다. - - - + "prefill": { + "phoneNumber": "고정할 휴대폰번호" + } + } + ``` + + 숫자만 입력하세요 + + + + ```ts + IMP.request_pay({ + // ... + bypass: { + coupon_apply_yn: "Y", // 미사용시 "N" + }, + // ... + }); + ``` + + 인증 결제창내 할인쿠폰 UX를 활성/비활성화 할 수 있습니다. + 해당 기능은 KCP와 협의 후 사용 가능 합니다. + + + + ```ts + IMP.request_pay({ + // ... + bypass: { + batch_birth_day_yn: "Y", // 결제창 렌더링 시 생년월일 입력 박스 고정 활성화 + }, + // ... + }); + ``` + + NHN KCP 결제창을 이용한 빌링키 발급 시 PC 환경에서 공인인증서 절차를 생략하는 경우 + 카드 정보 입력 화면에서 생년월일 입력 박스가 표시되도록 고정시킬 수 있습니다. + 해당 파라미터를 설정하지 않고 빌링키 발급 진행 시 최초 주민등록번호 입력 박스가 표시되며, 카드 정보 8자리 입력 시 생년월일 입력 박스로 변환됩니다. + diff --git a/src/content/docs/ko/pg/payment-gateway/nice-v2/billing-api-caution.mdx b/src/content/docs/ko/pg/payment-gateway/nice-v2/billing-api-caution.mdx index 36992a546..5236aef17 100644 --- a/src/content/docs/ko/pg/payment-gateway/nice-v2/billing-api-caution.mdx +++ b/src/content/docs/ko/pg/payment-gateway/nice-v2/billing-api-caution.mdx @@ -18,7 +18,7 @@ import Details from "~/components/gitbook/Details.astro"; ## 빌링키 발급 -(신) 나이스페이먼츠 빌링키 발급은 API 방식(POST /subscrie/customers/"customer\_uid")만 지원합니다. +(신) 나이스페이먼츠 빌링키 발급은 API 방식(`POST /subscribe/customers/{customer_uid}`)만 지원합니다. ## 비인증 결제 @@ -62,7 +62,8 @@ import Details from "~/components/gitbook/Details.astro"; ### 배송 정보 수정 불가 -(신) 나이스페이먼츠는 `POST /escrow/logis/{imp_uid}` API로 에스크로 배송 정보 등록은 가능하지만 `PUT /escrow/logis/{imp_uid}` API로 **수정은 불가능**합니다. +(신) 나이스페이먼츠는 `POST /escrow/logis/{imp_uid}` API로 에스크로 배송 정보 등록은 가능하지만 +`PUT /escrow/logis/{imp_uid}` API로 **수정은 불가능**합니다. ## 현금영수증 @@ -70,7 +71,7 @@ import Details from "~/components/gitbook/Details.astro"; (신) 나이스페이먼츠의 경우 현금성 결제(가상계좌, 계좌이체, 네이버페이 포인트 결제 등)시 승인 단계에서 현금영수증을 발급 요청할 수 있습니다. 이때 결제 승인 단계에서 현금영수증을 발급 요청하지 못한 경우, -현금영수증 발급 API(`POST /receipts/"imp_uid"`)를 사용한다고 하더라도 발급이 되지 않으니 참고 부탁드립니다. +현금영수증 발급 API(`POST /receipts/{imp_uid}`)를 사용한다고 하더라도 발급이 되지 않으니 참고 부탁드립니다. ### API로 현금영수증 발급 시, 현금영수증 카드 사용 불가능 @@ -81,14 +82,14 @@ API로 현금영수증 발급(`POST /receipts/{imp_uid}`)시 발급 받을 현

\[가능] 사업자 등록번호로 지출증빙용 현금영수증 발급

- ```json - // POST /receipts/{imp_uid} + ```http + POST /receipts/{imp_uid} { // ...중략 - type: "company", // 현금영수증 발급 유형: 지출증빙 - identifier: "1178178260", // 현금영수증 발행 식별 정보: 사업자 등록번호 - identifier_type: "business" // 현금영수증 발행 식별 정보 유형: 사업자 등록번호 + "type": "company", // 현금영수증 발급 유형: 지출증빙 + "identifier": "1178178260", // 현금영수증 발행 식별 정보: 사업자 등록번호 + "identifier_type": "business" // 현금영수증 발행 식별 정보 유형: 사업자 등록번호 } ```
@@ -96,14 +97,14 @@ API로 현금영수증 발급(`POST /receipts/{imp_uid}`)시 발급 받을 현

\[가능] 휴대폰 번호로 소득공제용 현금영수증 발급

- ```json - // POST /receipts/{imp_uid} + ```http + POST /receipts/{imp_uid} { // ...중략 - type: "personal", // 현금영수증 발급 유형: 소득공제 - identifier: "01012345678", // 현금영수증 발행 식별 정보: 휴대폰 번호 - identifier_type: "phone" // 현금영수증 발행 식별 정보 유형: 휴대폰 번호 + "type": "personal", // 현금영수증 발급 유형: 소득공제 + "identifier": "01012345678", // 현금영수증 발행 식별 정보: 휴대폰 번호 + "wdentifier_type": "phone" // 현금영수증 발행 식별 정보 유형: 휴대폰 번호 } ```
@@ -111,14 +112,14 @@ API로 현금영수증 발급(`POST /receipts/{imp_uid}`)시 발급 받을 현

\[가능] 주민등록번호로 소득공제용 현금영수증 발급

- ```json - // POST /receipts/{imp_uid} + ```http + POST /receipts/{imp_uid} { // ...중략 - type: "personal", // 현금영수증 발급 유형: 소득공제 - identifier: "9010102012345", // 현금영수증 발행 식별 정보: 주민등록번호 - identifier_type: "person" // 현금영수증 발행 식별 정보 유형: 주민등록번호 + "type": "personal", // 현금영수증 발급 유형: 소득공제 + "identifier": "9010102012345", // 현금영수증 발행 식별 정보: 주민등록번호 + "identifier_type": "person" // 현금영수증 발행 식별 정보 유형: 주민등록번호 } ```
@@ -126,14 +127,14 @@ API로 현금영수증 발급(`POST /receipts/{imp_uid}`)시 발급 받을 현

\[불가능] 현금영수증 카드번호로 소득공제용 현금영수증 발급

- ```json - // POST /receipts/{imp_uid} + ```http + POST /receipts/{imp_uid} { // ...중략 - type: "personal", // 현금영수증 발급 유형: 소득공제 - identifier: "123456789012", // 현금영수증 발행 식별 정보: 현금영수증 카드번호 - identifier_type: "taxcard" // 현금영수증 발행 식별 정보 유형: 현금영수증 카드번호 + "type": "personal", // 현금영수증 발급 유형: 소득공제 + "identifier": "123456789012", // 현금영수증 발행 식별 정보: 현금영수증 카드번호 + "identifier_type": "taxcard" // 현금영수증 발행 식별 정보 유형: 현금영수증 카드번호 } ```
diff --git a/src/content/docs/ko/pg/payment-gateway/nice-v2/payment-caution.mdx b/src/content/docs/ko/pg/payment-gateway/nice-v2/payment-caution.mdx index d2eae66c7..83a1228c9 100644 --- a/src/content/docs/ko/pg/payment-gateway/nice-v2/payment-caution.mdx +++ b/src/content/docs/ko/pg/payment-gateway/nice-v2/payment-caution.mdx @@ -3,23 +3,30 @@ title: 일반결제 연동 유의사항 description: 나이스페이먼츠(신모듈) 일반결제 연동 유의사항을 소개합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; + +import screenshot2 from "./_assets/caution/escrow-trans.png"; +import screenshot1 from "./_assets/caution/only-list-installment-on-mobile.png"; +import screenshot3 from "./_assets/caution/receipts-list-on-v1-console.png"; ## 결제창 호출 실패 사유 알 수 없음 -상점 아이디 설정 이슈, 파라미터 설정 오류 등으로 결제창 호출이 불가능한 경우 PG사로부터 정확한 사유를 전달받지 못하기 때문에 다음과 같이 “알 수 없는 이유로 결제가 중단되었습니다. 나이스페이로 문의(1661-0808)하세요.”에러를 리턴합니다. 이 메시지를 받으신 경우 결제창 호출 시 사용한 파라미터 전문과 함께 포트원으로 문의해 주시길 바랍니다. +상점 아이디 설정 이슈, 파라미터 설정 오류 등으로 결제창 호출이 불가능한 경우 +PG사로부터 정확한 사유를 전달받지 못하기 때문에 다음과 같이 +“알 수 없는 이유로 결제가 중단되었습니다. 나이스페이로 문의(1661-0808)하세요.” 에러를 리턴합니다. +이 메시지를 받으신 경우 결제창 호출 시 사용한 파라미터 전문과 함께 포트원으로 문의해 주시길 바랍니다. ## 카드 결제 -| 기능 | 사용 가능 여부 | -| ------------------------------------- | --------------------------------------------------------- | -| 상점 부담 무이자 할부 | 가능 | -| 다이렉트 호출 | **단독 사용 불가능** (고정 할부 개월수가 함께 전달 되어야 함) | -| 다이렉트 호출 + 고정 할부 개월수 | 가능 | -| 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 고정 할부 개월수 | **PC만 가능** | -| 비 다이렉트 호출 + 리스트 할부 개월수 | **PC만 가능** | +|기능 |사용 가능 여부 | +|-------------------------------------|----------------------------------------------------------------------------------------| +|상점 부담 무이자 할부 |가능 | +|다이렉트 호출 | **단독 사용 불가능** (고정 할부 개월수가 함께 전달 되어야 함)| +|다이렉트 호출 + 고정 할부 개월수 |가능 | +|다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 고정 할부 개월수 |**PC만 가능** | +|비 다이렉트 호출 + 리스트 할부 개월수|**PC만 가능** | ### 토스뱅크 카드사 다이렉트 호출 미지원 @@ -27,52 +34,53 @@ import Figure from "~/components/Figure.astro"; ### 카드사 다이렉트 호출시 고정 할부 개월수 필수 입력 -나이스페이먼츠(신모듈)는 **카드사 다이렉트 호출시 고정 할부 개월수를 필수 로 입력**해야 합니다. 결제 금액이 할부 지원 금액 미만(일반적으로 50,000원이상 결제 시 할부 기능을 지원하나 카드사에 따라 다를 수 있습니다.)인 경우 **할부 개월수를 0(일시불)으로 전달**해야 합니다. +나이스페이먼츠(신모듈)는 **카드사 다이렉트 호출시 +고정 할부 개월수를 필수 로 입력**해야 합니다. +결제 금액이 할부 지원 금액 미만(일반적으로 50,000원 이상 결제 시 할부 기능을 지원하나 +카드사에 따라 다를 수 있습니다.)인 경우 **할부 개월수를 0(일시불)으로 전달**해야 합니다.
-

BC 카드 다이렉트 호출 + 5개월 고정 할부

- -```javascript -IMP.request_pay( - { - // ...중략 - pg: "nice_v2", - pay_method: "card", - card: { - direct: { - // 다이렉트 호출할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 - code: "361", // BC카드 - quota: 5, // 5개월 할부 +

BC 카드 다이렉트 호출 + 5개월 고정 할부

+ + ```ts + IMP.request_pay( + { + // ...중략 + pg: "nice_v2", + pay_method: "card", + card: { + direct: { + // 다이렉트 호출할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 + code: "361", // BC카드 + quota: 5, // 5개월 할부 + }, }, }, - }, - 콜백함수 -); -``` - + // 콜백함수 + ); + ```
-

삼성 카드 다이렉트 호출 + 일시불

- -```javascript -IMP.request_pay( - { - // ...중략 - pg: "nice_v2", - pay_method: "card", - card: { - direct: { - // 다이렉트 호출 할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 - code: "365", // 삼성카드 - quota: 0, // 일시불 +

삼성 카드 다이렉트 호출 + 일시불

+ + ```ts + IMP.request_pay( + { + // ...중략 + pg: "nice_v2", + pay_method: "card", + card: { + direct: { + // 다이렉트 호출 할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 + code: "365", // 삼성카드 + quota: 0, // 일시불 + }, }, }, - }, - 콜백함수 -); -``` - + // 콜백함수 + ); + ```
### 모바일 환경에서는 다이렉트 호출시에만 할부 옵션 설정 가능 @@ -82,43 +90,39 @@ IMP.request_pay( 할부 옵션을 전달하는 경우 무시됩니다.
-

모바일 환경에서 리스트 할부 개월수만 전달 → 전달한 파라미터가 무시되고 모든 할부 개월수 렌더링

- -```javascript -IMP.request_pay( - { - // ...중략 - pg: "nice_v2", - pay_method: "card", - display: { card_quota: [2, 3, 4, 5, 6] }, // 2 ~ 6 개월 리스트 할부 개월수 적용 시도 - }, - 콜백함수 -); -``` - -import screenshot1 from "./_assets/caution/only-list-installment-on-mobile.png"; - -
+

모바일 환경에서 리스트 할부 개월수만 전달 → 전달한 파라미터가 무시되고 모든 할부 개월수 렌더링

+ + ```ts + IMP.request_pay( + { + // ...중략 + pg: "nice_v2", + pay_method: "card", + display: { card_quota: [2, 3, 4, 5, 6] }, // 2 ~ 6 개월 리스트 할부 개월수 적용 시도 + }, + // 콜백함수 + ); + ``` +
-

모바일 환경에서 3개월 고정 할부 개월수만 전달 → 전달한 파라미터가 무시되고 모든 할부 개월수 렌더링

+

모바일 환경에서 3개월 고정 할부 개월수만 전달 → 전달한 파라미터가 무시되고 모든 할부 개월수 렌더링

-```javascript -// ...중략 -IMP.request_pay( - { - pg: "nice_v2", - pay_method: "card", - display: { card_quota: [3] }, // 3개월 고정 할부 개월수 적용 시도 - }, - 콜백함수 -); -``` - -
+ ```ts + // ...중략 + IMP.request_pay( + { + pg: "nice_v2", + pay_method: "card", + display: { card_quota: [3] }, // 3개월 고정 할부 개월수 적용 시도 + }, + // 콜백함수 + ); + ``` +
## 가상계좌 @@ -148,45 +152,51 @@ IMP.request_pay( ### 계좌이체 에스크로 결제시에는 다이렉트 호출 불가능 -나이스페이먼츠 정책상 계좌이체 + 에스크로 결제시에는 다이렉트 호출이 불가능합니다. 아래와 같이 계좌이체 + 에스크로 + 다이렉트 호출을 위한 파라미터를 설정할 경우 "나이스페이 V2 계좌이체 에스크로 결제시 다이렉트 호출은 불가능합니다."라는 에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다. +나이스페이먼츠 정책상 계좌이체 + 에스크로 결제시에는 다이렉트 호출이 불가능합니다. +아래와 같이 계좌이체 + 에스크로 + 다이렉트 호출을 위한 파라미터를 설정할 경우 +"나이스페이 V2 계좌이체 에스크로 결제시 다이렉트 호출은 불가능합니다."라는 에러 메시지가 뜨면서 +결제창이 호출되지 않으니 유의하시기 바랍니다. ### 계좌이체 에스크로 결제시 결제창에 올바른 이메일을 입력해야 함 -존재하지 않는 이메일을 입력할 경우 **이메일 주소 오류**라는 에러 메시지와 함께 승인에 실패합니다. 또한 실제로 존재하는 이메일 도메인이더라도 나이스페이먼츠 정책상 유효하지 않다고 취급하는 이메일 주소(예) .finance로 끝나는 이메일 주소)를 입력한 경우 승인은 정상적으로 되지만 **이후 API로 에스크로 등록시 에스크로 구매 확정 이메일이 전송되지 않습니다.** +존재하지 않는 이메일을 입력할 경우 **이메일 주소 오류**라는 에러 메시지와 함께 승인에 실패합니다. +또한 실제로 존재하는 이메일 도메인이더라도 나이스페이먼츠 정책상 유효하지 않다고 취급하는 +이메일 주소(예: .finance로 끝나는 이메일 주소)를 입력한 경우 승인은 정상적으로 되지만 +**이후 API로 에스크로 등록시 에스크로 구매 확정 이메일이 전송되지 않습니다.**
-

자세히 보기

- -```javascript -IMP.request_pay( - { - // ...중략 - pg: "nice_v2", - pay_method: "trans", // 계좌이체 결제 - escrow: true, // 에스크로 결제 - }, - 콜백함수 -); -``` - -import screenshot2 from "./_assets/caution/escrow-trans.png"; - -
+

자세히 보기

+ + ```ts + IMP.request_pay( + { + // ...중략 + pg: "nice_v2", + pay_method: "trans", // 계좌이체 결제 + escrow: true, // 에스크로 결제 + }, + // 콜백함수 + ); + ``` +
## 휴대폰 소액결제 ### 실물/컨텐츠 여부(`digital`) 필수 입력 -휴대폰 소액결제시 실물/컨텐츠 여부(digital) 파라미터는 필수 입력입니다. 입력하지 않는 경우 "나이스페이 V2 휴대폰 소액결제시 상품 유형 파라미터는 필수 입력입니다." 라는 에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다. +휴대폰 소액결제시 실물/컨텐츠 여부(digital) 파라미터는 필수 입력입니다. +입력하지 않는 경우 "나이스페이 V2 휴대폰 소액결제시 상품 유형 파라미터는 필수 입력입니다." 라는 +에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다. -| digital | 의미 | -| ------- | ------ | -| true | 컨텐츠 | -| false | 실물 | +|digital|의미 | +|-------|------| +|true |컨텐츠| +|false |실물 | -또한 상점 아이디 설정과 실물/컨텐츠 여부가 불일치할 경우 "CPID 설정 오류"라는 메시지가 리턴되며 결제창 호출에 실패하니 유의하시기 바랍니다. +또한 상점 아이디 설정과 실물/컨텐츠 여부가 불일치할 경우 "CPID 설정 오류"라는 메시지가 리턴되며 +결제창 호출에 실패하니 유의하시기 바랍니다. ## 상품권 결제 @@ -204,42 +214,42 @@ import screenshot2 from "./_assets/caution/escrow-trans.png"; 따라서 결제 내역 조회시 승인 번호는 null로 리턴됩니다.
-

결제내역 조회 API 호출 결과

+

결제내역 조회 API 호출 결과

-```javascript -// GET /payments/{imp_uid} -{ - // ...중략 - status: "paid", - pay_method: "cultureland", - pg: "nice_v2", - apply_num: null, -} -``` + ```http + GET /payments/{imp_uid} + { + // ...중략 + "status": "paid", + "pay_method": "cultureland", + "pg": "nice_v2", + "apply_num": null + } + ```
## 카카오페이 -| 기능 | 사용 가능 여부 | -| ------------------------------------- | ---------------------------------------------------------------------- | -| 상점 부담 무이자 할부 | **불가능** | -| 다이렉트 호출 | BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | -| 다이렉트 호출 + 고정 할부 개월수 | BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | -| 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 고정 할부 개월수 | **단독 사용 불가능** (다이렉트 호출 할 카드사 코드를 함께 전달해야 함) | -| 비 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|기능 |사용 가능 여부 | +|-------------------------------------|-------------------------------------------------------------------------------------------------| +|상점 부담 무이자 할부 | **불가능** | +|다이렉트 호출 |BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | +|다이렉트 호출 + 고정 할부 개월수 |BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | +|다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 고정 할부 개월수 | **단독 사용 불가능** (다이렉트 호출 할 카드사 코드를 함께 전달해야 함)| +|비 다이렉트 호출 + 리스트 할부 개월수| **불가능** | ## 네이버페이 -| 기능 | 사용 가능 여부 | -| ------------------------------------- | ---------------------------------------------------------------------- | -| 상점 부담 무이자 할부 | **불가능** | -| 다이렉트 호출 | BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | -| 다이렉트 호출 + 고정 할부 개월수 | BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | -| 다이렉트 호출 + 리스트 할부 개월수 | 가능(단, **일시불이 항상 포함** 됨) | -| 비 다이렉트 호출 + 고정 할부 개월수 | **단독 사용 불가능** (다이렉트 호출 할 카드사 코드를 함께 전달해야 함) | -| 비 다이렉트 호출 + 리스트 할부 개월수 | 가능(단, **일시불이 항상 포함** 됨) | +|기능 |사용 가능 여부 | +|-------------------------------------|-------------------------------------------------------------------------------------------------| +|상점 부담 무이자 할부 | **불가능** | +|다이렉트 호출 |BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | +|다이렉트 호출 + 고정 할부 개월수 |BC, 국민, 삼성, 신한, 현대, 롯데, 씨티, NH농협 그리고 하나 카드만 가능 | +|다이렉트 호출 + 리스트 할부 개월수 |가능(단, **일시불이 항상 포함** 됨) | +|비 다이렉트 호출 + 고정 할부 개월수 | **단독 사용 불가능** (다이렉트 호출 할 카드사 코드를 함께 전달해야 함)| +|비 다이렉트 호출 + 리스트 할부 개월수|가능(단, **일시불이 항상 포함** 됨) | ### 결제 수단 지정 시 카드 또는 포인트 지정 필요 @@ -249,117 +259,122 @@ import screenshot2 from "./_assets/caution/escrow-trans.png"; ### 네이버페이 머니와 포인트 복합 결제시, 포인트가 먼저 사용 됨 -네이버페이 포인트 결제시 네이버페이 머니, 포인트 또는 복합(머니와 포인트 함께 사용) 방식으로 결제가 가능하며, 만약 복합 방식으로 결제할 경우 포인트 금액이 먼저 차감됩니다. +네이버페이 포인트 결제시 네이버페이 머니, 포인트 또는 복합(머니와 포인트 함께 사용) 방식으로 결제가 가능하며, +만약 복합 방식으로 결제할 경우 포인트 금액이 먼저 차감됩니다. ### 네이버페이 포인트 결제시 현금영수증 정보 필수 입력 -네이버페이 포인트 결제 시 현금영수증 발급이 가능하며 **현금영수증 정보를 필수로 입력**해야 합니다. 만약 입력하지 않을 경우 "나이스페이 V2 네이버페이 포인트 결제시 현금영수증 발급 유형은 필수 입력입니다."라는 에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다. 단, **네이버페이 머니로 결제할 경우에만 현금영수증이 발급**됩니다. 결제 금액 모두 네이버페이 포인트로 결제하는 경우에는 결제창 호출시 현금영수증 정보를 전달하더라도 발급되지 않습니다. +네이버페이 포인트 결제 시 현금영수증 발급이 가능하며 **현금영수증 정보를 필수로 입력**해야 합니다. +만약 입력하지 않을 경우 "나이스페이 V2 네이버페이 포인트 결제시 현금영수증 발급 유형은 필수 입력입니다."라는 +에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다. +단, **네이버페이 머니로 결제할 경우에만 현금영수증이 발급**됩니다. +결제 금액 모두 네이버페이 포인트로 결제하는 경우에는 결제창 호출시 현금영수증 정보를 전달하더라도 발급되지 않습니다. ## 페이코 -| 기능 | 사용 가능 여부 | -| ------------------------------------- | -------------- | -| 상점 부담 무이자 할부 | 가능 | -| 다이렉트 호출 | 가능 | -| 다이렉트 호출 + 고정 할부 개월수 | 가능 | -| 다이렉트 호출 + 리스트 할부 개월수 | 가능 | -| 비 다이렉트 호출 + 고정 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 리스트 할부 개월수 | 가능 | +|기능 |사용 가능 여부 | +|-------------------------------------|-------------------------------------| +|상점 부담 무이자 할부 |가능 | +|다이렉트 호출 |가능 | +|다이렉트 호출 + 고정 할부 개월수 |가능 | +|다이렉트 호출 + 리스트 할부 개월수 |가능 | +|비 다이렉트 호출 + 고정 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 리스트 할부 개월수|가능 | ## 삼성페이/11Pay (구.SKPay)/SSGPAY -| 기능 | 사용 가능 여부 | -| ------------------------------------- | -------------- | -| 상점 부담 무이자 할부 | 가능 | -| 다이렉트 호출 | **불가능** | -| 다이렉트 호출 + 고정 할부 개월수 | **불가능** | -| 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 고정 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|기능 |사용 가능 여부 | +|-------------------------------------|-------------------------------------| +|상점 부담 무이자 할부 |가능 | +|다이렉트 호출 | **불가능** | +|다이렉트 호출 + 고정 할부 개월수 | **불가능** | +|다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 고정 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 리스트 할부 개월수| **불가능** | ## 애플페이/LPAY -| 기능 | 사용 가능 여부 | -| ------------------------------------- | -------------- | -| 상점 부담 무이자 할부 | **불가능** | -| 다이렉트 호출 | **불가능** | -| 다이렉트 호출 + 고정 할부 개월수 | **불가능** | -| 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 고정 할부 개월수 | **불가능** | -| 비 다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|기능 |사용 가능 여부 | +|-------------------------------------|-------------------------------------| +|상점 부담 무이자 할부 | **불가능** | +|다이렉트 호출 | **불가능** | +|다이렉트 호출 + 고정 할부 개월수 | **불가능** | +|다이렉트 호출 + 리스트 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 고정 할부 개월수 | **불가능** | +|비 다이렉트 호출 + 리스트 할부 개월수| **불가능** | ## SSG 은행계좌 결제 ### SSGPAY 은행 계좌 결제 시 주문 번호에 특수 문자를 사용 불가능 -SSGPAY 정책상 은행 계좌 결제시에는 **주문 번호(`merchant_uid`)에 특수 문자가 허용되지 않습니다.** 주문 번호에 특수문자 입력 시 "나이스페이 V2 SSGPAY 은행 계좌 결제시 주문 번호에 특수문자는 허용되지 않습니다."와 같은 에러 메시지가 리턴되면서 결제창이 호출되지 않으니 참고 부탁드립니다. +SSGPAY 정책상 은행 계좌 결제시에는 **주문 번호(`merchant_uid`)에 특수 문자가 허용되지 않습니다.** +주문 번호에 특수문자 입력 시 "나이스페이 V2 SSGPAY 은행 계좌 결제시 주문 번호에 특수문자는 허용되지 않습니다."와 같은 +에러 메시지가 리턴되면서 결제창이 호출되지 않으니 참고 부탁드립니다. ### SSGPAY 은행 계좌 결제시 현금영수증 정보는 필수 입력 -SSGPAY 은행 계좌 거래는 현금성 결제로 현금영수증 발급이 가능하므로 **현금영수증 정보는 필수 입력**입니다. 만약 입력하지 않을 경우 "나이스페이 V2 SSGPAY 은행 계좌 결제시 현금영수증 발급 유형은 필수 입력입니다."라는 에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다. +SSGPAY 은행 계좌 거래는 현금성 결제로 현금영수증 발급이 가능하므로 **현금영수증 정보는 필수 입력**입니다. +만약 입력하지 않을 경우 "나이스페이 V2 SSGPAY 은행 계좌 결제시 현금영수증 발급 유형은 필수 입력입니다."라는 +에러 메시지가 뜨면서 결제창이 호출되지 않으니 유의하시기 바랍니다.
-

파라미터 예시

- -```javascript -IMP.request_pay({ - // ...중략 - pg: "nice_v2", - pay_method: "ssgpay_bank", - bypass: { - cashReceiptType: "corporate", // 현금영수증 발급 유형(corporate: 지출증빙, personal: 소득공제) - customerIdentifier: "1178178260", // 현금영수증 발행 식별 정보(사업자 등록번호 또는 휴대폰 번호) - }, -}); -``` +

파라미터 예시

+ ```ts + IMP.request_pay({ + // ...중략 + pg: "nice_v2", + pay_method: "ssgpay_bank", + bypass: { + cashReceiptType: "corporate", // 현금영수증 발급 유형(corporate: 지출증빙, personal: 소득공제) + customerIdentifier: "1178178260", // 현금영수증 발행 식별 정보(사업자 등록번호 또는 휴대폰 번호) + }, + }); + ```
### SSGPAY 은행 계좌 결제시 현금영수증 발급 정보를 확인할 수 없음 -SSGPAY 은행 계좌 결제 시 현금영수증 발급 정보를 입력하여 정상적으로 발급되더라도 승인 완료(status: paid)시 나이스페이먼츠에서 현금영수증 발급 정보를 전달하지 않아 포트원 API로 결제/현금영수증 발급 내역 조회 또는포트원 콘솔에서 현금영수증 내역을 확인할 수 없습니다. 단, 나이스페이먼츠 어드민에서는 확인이 가능합니다. +SSGPAY 은행 계좌 결제 시 현금영수증 발급 정보를 입력하여 정상적으로 발급되더라도 +승인 완료(status: paid)시 나이스페이먼츠에서 현금영수증 발급 정보를 전달하지 않아 +포트원 API로 결제/현금영수증 발급 내역 조회 또는 포트원 콘솔에서 현금영수증 내역을 확인할 수 없습니다. +단, 나이스페이먼츠 어드민에서는 확인이 가능합니다.
-

결제내역 조회 API 호출 결과

+

결제내역 조회 API 호출 결과

-```javascript -// GET /payments/{imp_uid} - -{ - // ...중략 - pay_method: "trans", - emb_pg_provider: "ssgpay", - pg: "nice_v2", - status: "paid", - cash_receipt_issued: false, // 실제로는 현금영수증이 발급됐으나 포트원에 정보가 없으므로 false로 내려감 -} -``` + ```http + GET /payments/{imp_uid} + { + // ...중략 + "pay_method": "trans", + "emb_pg_provider": "ssgpay", + "pg": "nice_v2", + "status": "paid", + "cash_receipt_issued": false // 실제로는 현금영수증이 발급됐으나 포트원에 정보가 없으므로 false로 내려감 + } + ```
-

현금영수증 발급 내역 조회 API 호출 결과

- -```javascript -// GET /receipts/{imp_uid} +

현금영수증 발급 내역 조회 API 호출 결과

-{ - code: -1, - message: - "해당 아임포트 고유 번호({아임포트 번호})로 현금영수증을 발급 한 내역이 존재하지 않습니다.", - data: null, -} -``` + ```http + GET /receipts/{imp_uid} + { + "code": -1, + "message": "해당 아임포트 고유 번호({아임포트 번호})로 현금영수증을 발급 한 내역이 존재하지 않습니다.", + "data": null + } + ```
-

V1 콘솔 현금영수증 발급 내역

- -import screenshot3 from "./_assets/caution/receipts-list-on-v1-console.png"; - -
+

V1 콘솔 현금영수증 발급 내역

+
## 현금영수증 @@ -373,23 +388,22 @@ import screenshot3 from "./_assets/caution/receipts-list-on-v1-console.png"; **계좌이체 다이렉트 호출, 네이버페이 포인트 결제, SSGPAY 은행 계좌 결제시 현금영수증 정보는 필수 입력**입니다.
-

파라미터 예시

- -```javascript -IMP.request_pay( - { - // ...중략 - pg: "nice_v2", - pay_method: "naverpay_point", // 네이버페이 포인트 결제 - bypass: { - cashReceiptType: "personal", // 소득공제 - customerIdentifier: "01012345678", // 핸드폰 번호 입력(주민등록번호 불가능) +

파라미터 예시

+ + ```ts + IMP.request_pay( + { + // ...중략 + pg: "nice_v2", + pay_method: "naverpay_point", // 네이버페이 포인트 결제 + bypass: { + cashReceiptType: "personal", // 소득공제 + customerIdentifier: "01012345678", // 핸드폰 번호 입력(주민등록번호 불가능) + }, }, - }, - 콜백함수 -); -``` - + // 콜백함수 + ); + ```
### 가상계좌, 계좌이체 결제 시 현금영수증 파라미터 사용이 불가능한 경우 diff --git a/src/content/docs/ko/pg/payment-gateway/nice-v2/readme.mdx b/src/content/docs/ko/pg/payment-gateway/nice-v2/readme.mdx index 309ec1889..c7a7d9165 100644 --- a/src/content/docs/ko/pg/payment-gateway/nice-v2/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/nice-v2/readme.mdx @@ -3,31 +3,40 @@ title: 나이스페이먼츠 (신모듈) description: 나이스페이먼츠 연동 방법을 안내합니다. --- -import * as prose from "~/components/prose"; import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; +import * as prose from "~/components/prose"; export const components = prose; -import Figure from "~/components/Figure.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## 1. 나이스페이먼츠(신모듈) 채널 설정하기 [결제대행사 채널 설정하기](../../../ready/readme#3-결제대행사-채널-설정하기) 페이지의 내용을 참고하여 채널 설정을 진행합니다. 아래 기능을 사용하시려면 나이스페이먼츠에 사전 신청 후 계약이 완료되어야 합니다. -그렇지 않은 상태에서 해당 기능 이용시 PG창 호출에 실패하거나, 승인에 실패하거나, 승인에 성공하더라도 의도한 바와는 다른 응답을 얻게 될 수 있으니 주의 해주시기 바랍니다. +그렇지 않은 상태에서 해당 기능 이용시 PG창 호출에 실패하거나, 승인에 실패하거나, +승인에 성공하더라도 의도한 바와는 다른 응답을 얻게 될 수 있으니 주의 해주시기 바랍니다. - 모든 결제 수단(간편결제 포함) + - 면세 / 복합과세 사용 + - 부가세 지정 금액 방식 사용(영세율 포함) + - 부분 취소 + - 할부 사용 + - 상점 부담 무이자 할부 사용 + - 카드사 포인트 사용 + - 에스크로 사용 + - 해외 결제 사용 + - 일부 bypass 파라미터 - UserCI - MallUserID @@ -48,19 +57,18 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; -#### **기존에 deprecated된 콜백 응답은 모두 제거**됐습니다. - -신규 JS SDK는 기존 모듈에서 제공했던 CallBack 응답 파라미터가 대부분 삭제되었습니다. -(특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) + ## **기존에 deprecated된 콜백 응답은 모두 제거**됐습니다. -해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. + 신규 JS SDK는 기존 모듈에서 제공했던 CallBack 응답 파라미터가 대부분 삭제되었습니다. + (특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) -**`imp_uid`, `merchant_uid`** + 해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. -따라서 해당 SDK를 사용하실때는 `IMP.request_pay`로부터 응답된 객체(또는 쿼리 파라미터)에서 -`imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 -응답 파라미터 중 `status` 파라미터로 결제 상태를 파악하셔야 합니다. + **`imp_uid`, `merchant_uid`** + 따라서 해당 SDK를 사용하실때는 `IMP.request_pay`로부터 응답된 객체(또는 쿼리 파라미터)에서 + `imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 + 응답 파라미터 중 `status` 파라미터로 결제 상태를 파악하셔야 합니다. [JavaScript SDK](../../../sdk/javascript-sdk/readme) 문서를 통해 최신 SDK를 설치해주세요. @@ -70,131 +78,126 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; [JavaScript SDK](../../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 (신) 나이스페이먼츠 결제창을 호출할 수 있습니다. **결제 결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 모바일의 경우 -**m_redirect_url** 로 리디렉션됩니다. +**m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "nice_v2.{상점 ID}", - pay_method: "card", - merchant_uid: "orderNo0001", - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - // callback 로직 - } -); -``` - -
-

주요 파라미터 설명

- -**`pg` \*****string** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "nice_v2.{상점 ID}", + pay_method: "card", + merchant_uid: "orderNo0001", + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + }, + ); + ``` -**PG사 구분코드** +
+

주요 파라미터 설명

-`nice_v2` 로 지정하면 됩니다. + **`pg` \*****string** -**`pay_method`** **\*** **string** + **PG사 구분코드** -**결제수단 구분코드** + `nice_v2` 로 지정하면 됩니다. -- card (신용카드) -- trans (실시간 계좌이체) -- vbank (가상계좌) -- phone (휴대폰소액결제) -- cultureland (컬쳐랜드) -- naverpay_card (네이버페이 - 카드) -- naverpay_point (네이버페이 - 포인트) -- kakaopay (카카오페이) -- payco (페이코) -- samsungpay (삼성페이) -- skpay (11Pay (구.SKPay)) -- ssgpay (SSGPAY) -- ssgpay_bank (SSGPAY 은행계좌) -- lpay (LPAY) -- applepay (애플페이) + **`pay_method`** **\*** **string** -**`merchant_uid`** **\*** **string** + **결제수단 구분코드** -**주문번호** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank (가상계좌) + - phone (휴대폰소액결제) + - cultureland (컬쳐랜드) + - naverpay\_card (네이버페이 - 카드) + - naverpay\_point (네이버페이 - 포인트) + - kakaopay (카카오페이) + - payco (페이코) + - samsungpay (삼성페이) + - skpay (11Pay (구.SKPay)) + - ssgpay (SSGPAY) + - ssgpay\_bank (SSGPAY 은행계좌) + - lpay (LPAY) + - applepay (애플페이) -매번 고유하게 채번되어야 합니다. + **`merchant_uid`** **\*** **string** -**`amount`** **\*** **`integer`** + **주문번호** -**결제금액** + 매번 고유하게 채번되어야 합니다. -소수점 두번째 자리까지 허용합니다. + **`amount`** **\*** **`integer`** -**`buyer_tel`** **\*** **string** + **결제금액** -**구매자 전화번호** + 소수점 두번째 자리까지 허용합니다. -**`vbank_due`** **\*** **string** + **`buyer_tel`** **\*** **string** -**가상계좌 입금기한 (YYYY-MM-DD)** + **구매자 전화번호** -(신) 나이스페이먼츠의 경우 필수 입력이며 날짜는 무조건 23:59:59로 설정 됨 + **`vbank_due`** **\*** **string** -**`escrow`** **\*** **boolean** + **가상계좌 입금기한 (YYYY-MM-DD)** -**에스크로 결제 여부** + (신) 나이스페이먼츠의 경우 필수 입력이며 날짜는 무조건 23:59:59로 설정 됨 -**`period`** **\*** **array** + **`escrow`** **\*** **boolean** -**서비스 제공 기간** + **에스크로 결제 여부** -날짜만 입력이 가능하며(시간은 무시) 시작 날짜와 종료 날짜를 모두 입력해야 합니다. + **`period`** **\*** **array** -**`from`** **`: YYYYMMDD`** - -**`to`** **`: YYYYMMDD`** - -
+ **서비스 제공 기간** -
-

- 결제 가능 결제수단 -

+ 날짜만 입력이 가능하며(시간은 무시) 시작 날짜와 종료 날짜를 모두 입력해야 합니다. -- card + 에스크로, 다이렉트 -- vbank + 에스크로 -- trans + 에스크로, 다이렉트(은행 지정 X) -- phone + 다이렉트(통신사 지정 X) -- cultureland -- naverpay_card -- naverpay_point -- kakaopay -- payco -- samsungpay -- skpay -- ssgpay -- ssgpay_bank -- lpay -- applepay + **`from`** **`: YYYYMMDD`** -
+ **`to`** **`: YYYYMMDD`** +
-
+
+

+ 결제 가능 결제수단 +

+ - card + 에스크로, 다이렉트 + - vbank + 에스크로 + - trans + 에스크로, 다이렉트(은행 지정 X) + - phone + 다이렉트(통신사 지정 X) + - cultureland + - naverpay\_card + - naverpay\_point + - kakaopay + - payco + - samsungpay + - skpay + - ssgpay + - ssgpay\_bank + - lpay + - applepay +
+
-

- 가능한 결제 환경 -

- -- PC (iframe) -- 모바일 (리디렉션) +

+ 가능한 결제 환경 +

+ - PC (iframe) + - 모바일 (리디렉션)
diff --git a/src/content/docs/ko/pg/payment-gateway/nice.mdx b/src/content/docs/ko/pg/payment-gateway/nice.mdx index 02757a61a..c3f798762 100644 --- a/src/content/docs/ko/pg/payment-gateway/nice.mdx +++ b/src/content/docs/ko/pg/payment-gateway/nice.mdx @@ -22,259 +22,243 @@ import Hint from "~/components/Hint.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 -[JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 NICE페이먼츠 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback** 으로 수신되고 모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +[JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 +NICE페이먼츠 결제창을 호출할 수 있습니다. +**결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 +**callback** 으로 수신되고 +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "nice.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - language: "en", // 결제창 언어 선택 파라미터 ko: 한국어, en: 영문 - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - niceMobileV2: true, // 신규 모바일 버전 적용 시 설정 - }, - function (rsp) { - // callback 로직 - //* ...중략... *// - } -); -``` - -#### **주요 파라미터 설명** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "nice.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + language: "en", // 결제창 언어 선택 파라미터 ko: 한국어, en: 영문 + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + niceMobileV2: true, // 신규 모바일 버전 적용 시 설정 + }, + function (rsp) { + // callback 로직 + //* ...중략... *// + }, + ); + ``` ---- - -**`pg` \*****string** - -**PG사 구분코드** + ### **주요 파라미터 설명** -**`nice`** 로 지정하면 됩니다. + --- -**`pay_method`** **\*** **string** + **`pg` \*****string** -**결제수단 구분코드** + **PG사 구분코드** -- card(신용카드) -- trans(실시간 계좌이체) -- vbank(가상계좌) -- phone(휴대폰소액결제) -- kakaopay(카카오페이) + **`nice`** 로 지정하면 됩니다. -**`merchant_uid`** **\*** **string** + **`pay_method`** **\*** **string** -**주문번호** + **결제수단 구분코드** -매번 고유하게 채번되어야 합니다. + - card(신용카드) + - trans(실시간 계좌이체) + - vbank(가상계좌) + - phone(휴대폰소액결제) + - kakaopay(카카오페이) -**`amount` \*****number** + **`merchant_uid`** **\*** **string** -**결제금액** + **주문번호** -**string** 이 아닌점에 유의하세요 + 매번 고유하게 채번되어야 합니다. -**`niceMobileV2`** **`boolean`** + **`amount` \*****number** -나이스 모바일 신규버전 적용 여부(기본 값: `false`) + **결제금액** -**`escrow`** **`boolean`** + **string** 이 아닌점에 유의하세요 -**에스크로 설정여부** + **`niceMobileV2`** **`boolean`** -**`currency`** **string** + 나이스 모바일 신규버전 적용 여부(기본 값: `false`) -**결제 통화(기본 값: KRW)** + **`escrow`** **`boolean`** -- KRW(한국 원) -- USD(미국 달러)(모바일의 경우 `niceMobileV2` 파라미터가 `true`일 경우에만 사용 가능) + **에스크로 설정여부** - + **`currency`** **string** - + **결제 통화(기본 값: KRW)** - - -**API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** - ---- + - KRW(한국 원) + - USD(미국 달러)(모바일의 경우 `niceMobileV2` 파라미터가 `true`일 경우에만 사용 가능) -**일회성 결제 요청하기** + + -REST[ **API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + + **API 방식으로 빌링키 발급,결제요청,예약결제를 구현할수 있습니다.** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + --- ---- + **일회성 결제 요청하기** -**빌링키 발급 요청하기** + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -REST [**API POST /subscribe/customers/\{customer_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + --- ---- + **빌링키 발급 요청하기** -**빌링키 발급 및 최초 결제 요청하기** + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. -REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + --- -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + **빌링키 발급 및 최초 결제 요청하기** ---- + REST [**API POST /subscribe/payments/onetime**](../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -**빌링키로 결제 요청하기** + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + --- - + **빌링키로 결제 요청하기** -**나이스페이먼츠는 비인증 결제는 API 방식으로만 지원됩니다.** + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. + 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 + 재결제([**POST /subscribe/payments/again**](../../api/api-4/api)) REST API를 다음과 같이 호출합니다. -비인증 결제를 연동하기 위해서는 카드정보를 획득할수 있는 UI를 구성해 주셔야 하며 해당 가이드는 [**링크**](../../auth/guide-1/bill/rest-api)에서 확인해주시면 됩니다. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + + **나이스페이먼츠는 비인증 결제는 API 방식으로만 지원됩니다.** - + 비인증 결제를 연동하기 위해서는 카드정보를 획득할수 있는 UI를 구성해 주셔야 하며 + 해당 가이드는 [**링크**](../../auth/guide-1/bill/rest-api)에서 확인해주시면 됩니다. + + ## 3. 부가기능 - - -```javascript title="javascript" -display: { - card_quota: [6], // 할부개월 6개월까지만 활성화 -} -``` - -**파라미터 설명** - -- **`card_quota`:** - - `[]`: 일시불만 결제 가능 - - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ - - - -할부결제는 **5만원 이상 결제 요청 시**에만 이용 가능합니다. - - - - - - - - -```javascript title="javascript" -card: { - direct: { - code: "367", - quota: 3 - } -} -``` - -**파라미터 설명** - -- **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) -- **`quota`** : 할부 개월 수. 일시불일 시 0으로 지정. (**number**) - - - -**주의사항** - -- 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다. - - - - - - - - - -```javascript title="javascript" -card: { - detail: [ - { card_code: "*", enabled: false }, //모든 카드사 비활성화 - { card_code: "366", enabled: true }, //특정 카드만 활성화 - ], -} -``` - -**파라미터 설명** - -- **`card_code` :** 금융결제원 카드사 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** -- **`enabled` :** 해당 카드 활성화 여부 (**boolean)** - - - - - - - -```javascript -// 영세율 결제 경우 -amount: 1000, -tax_free: 0, -vat_amount: 0, // 부가세 지정 -``` - -**파라미터 설명** - -- **`vat_amount`**: 상점 아이디 설정이 지정금액 방식인 경우 부가세 지정 가능 (number) - - - -주의사항 - -- 상점 아이디 설정이 지정금액 방식인 경우에는 취소 시에 공급가액, 부가세, 봉사료, 면세금액 등을 설정하도록 하고 있습니다.([링크](https://developers.nicepay.co.kr/tip.php)의 1617 코드 참조). 취소 시 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 공급가액, 부가세, 면세금액, 봉사료(0원)가 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다. - - - - + + ```json + { + "display": { + "card_quota": [6] // 할부개월 6개월까지만 활성화 + } + } + ``` + + **파라미터 설명** + + - **`card_quota`:** + - `[]`: 일시불만 결제 가능 + - `2,3,4,5,6`: 일시불을 포함한 2, 3, 4, 5, 6개월까지 할부개월 선택 가능\\ + + + 할부결제는 **5만원 이상 결제 요청 시**에만 이용 가능합니다. + + + + + + + ```json + { + "card": { + "direct": { + "code": "367", + "quota": 3 + } + } + } + ``` + + **파라미터 설명** + + - **`code`** : 카드사 금융결제원 표준 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string**) + - **`quota`** : 할부 개월 수. 일시불일 시 0으로 지정. (**number**) + + + **주의사항** + + - 일부 PG사의 경우, 모든 상점아이디에 대하여 카드사 결제창 direct 노출 기능을 지원하지 않습니다. 반드시 포트원을 통해 현재 사용중인 상점아이디가 카드사 결제창 direct 호출이 가능하도록 설정이 되어있는지 PG사에 확인이 필요합니다. + + + + + + + ```json + { + "card": { + "detail": [ + { "card_code": "*", "enabled": false }, //모든 카드사 비활성화 + { "card_code": "366", "enabled": true } //특정 카드만 활성화 + ] + } + } + ``` + + **파라미터 설명** + + - **`card_code` :** 금융결제원 카드사 코드. [**링크**](https://faq.portone.io/6503bcb4-4a61-4cf3-afd8-5d913b1385a6) 참조 (**string)** + - **`enabled` :** 해당 카드 활성화 여부 (**boolean)** + + + + + + ```json + // 영세율 결제 경우 + { + "amount": 1000, + "tax_free": 0, + "vat_amount": 0 // 부가세 지정 + } + ``` + + **파라미터 설명** + + - **`vat_amount`**: 상점 아이디 설정이 지정금액 방식인 경우 부가세 지정 가능 (number) + + + 주의사항 + + - 상점 아이디 설정이 지정금액 방식인 경우에는 취소 시에 공급가액, 부가세, 봉사료, 면세금액 등을 설정하도록 하고 있습니다.([링크](https://developers.nicepay.co.kr/tip.php)의 1617 코드 참조). 취소 시 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 공급가액, 부가세, 면세금액, 봉사료(0원)가 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다. + + diff --git a/src/content/docs/ko/pg/payment-gateway/paymentwall.mdx b/src/content/docs/ko/pg/payment-gateway/paymentwall.mdx index 02f0d6d4b..96601dafb 100644 --- a/src/content/docs/ko/pg/payment-gateway/paymentwall.mdx +++ b/src/content/docs/ko/pg/payment-gateway/paymentwall.mdx @@ -4,9 +4,9 @@ description: 페이먼트월 결제창 연동가이드를 확인 합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 페이먼트월 채널 설정하기 @@ -14,219 +14,219 @@ import Tab from "~/components/gitbook/tabs/Tab.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 -페이먼트월 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request_pay(param, callback) +페이먼트월 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request\_pay(param, callback) 호출 후 **callback** 으로 수신되며 -모바일의 경우**m_redirect_url** 로 리디렉션됩니다. +모바일의 경우**m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "paymentwall.{project_key}", - pay_method: "card", // 페이먼트월은 국가IP에 따라 결제수단이 활성화 됩니다.(생략가능) - merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - currency: "KRW", // 필수 파라미터 - buyer_email: "test@portone.io", //필수 파라미터 - buyer_name: "Jack Son", // 반드시 Firstname Lastname 이 빈칸으로 구분되어야 - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - use_test_method : true, // 테스트 결제 수단을 활성화하는 파라미터, - bypass: { - // 터미날3 인경우 해당 파라미터 설정, 미 설정시 Defualt(일반) 결제창 활성화 - widget_code: "t3_1", - // 특정 결제수단만 활성화 하는 경우 사용 all 인 경우(default) 국가 지원 결제수단 모두 표 - ps: "all", - country_code: "DE" // 코드가 지정되면 지정된 국가에서 지원하는 결제수단이 활성화됩니다. - }, -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "paymentwall.{project_key}", + pay_method: "card", // 페이먼트월은 국가IP에 따라 결제수단이 활성화 됩니다.(생략가능) + merchant_uid: "order_no_0001", //상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + currency: "KRW", // 필수 파라미터 + buyer_email: "test@portone.io", //필수 파라미터 + buyer_name: "Jack Son", // 반드시 Firstname Lastname 이 빈칸으로 구분되어야 + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + use_test_method: true, // 테스트 결제 수단을 활성화하는 파라미터, + bypass: { + // 터미날3 인경우 해당 파라미터 설정, 미 설정시 Defualt(일반) 결제창 활성화 + widget_code: "t3_1", + // 특정 결제수단만 활성화 하는 경우 사용 all 인 경우(default) 국가 지원 결제수단 모두 표 + ps: "all", + country_code: "DE", // 코드가 지정되면 지정된 국가에서 지원하는 결제수단이 활성화됩니다. + }, + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -### **주요 파라미터 설명** + ### **주요 파라미터 설명** -`pg` \* **string** + `pg` \* **string** -**PG사 구분코드** + **PG사 구분코드** -`paymentwall`로 지정하면 됩니다. 페이먼트월 채널을 여러개 사용하는 경우 `{pg}.{mid}` 형식으로 요청해야 합니다. (예시-`paymentwall.{projeckey}`) + `paymentwall`로 지정하면 됩니다. 페이먼트월 채널을 여러개 사용하는 경우 `{pg}.{mid}` 형식으로 요청해야 합니다. (예시-`paymentwall.{projeckey}`) -`pay_method` **string** + `pay_method` **string** -**결제수단 구분코드** + **결제수단 구분코드** -결제수단 제어는 [페이먼트월 홈페이지](https://api.paymentwall.com/) 안에서 Project를 활성화 하여 제어가 가능합니다. 따라서 `pay_method`의 값은 무시될 수 있습니다. + 결제수단 제어는 [페이먼트월 홈페이지](https://api.paymentwall.com/) 안에서 Project를 활성화 하여 제어가 가능합니다. 따라서 `pay_method`의 값은 무시될 수 있습니다. -(별도로 제어하지 않으시면 국가IP에 맞는 결제수단이 기본으로 노출됩니다) + (별도로 제어하지 않으시면 국가IP에 맞는 결제수단이 기본으로 노출됩니다) -`merchant_uid` **\*** **string** + `merchant_uid` **\*** **string** -**주문번호** + **주문번호** -매번 고유하게 채번되어야 합니다. + 매번 고유하게 채번되어야 합니다. -`amount` **\*** **integer** + `amount` **\*** **integer** -**결제금액** + **결제금액** -string 형식이 아닌 integer 형식으로 요청해야 합니다. + string 형식이 아닌 integer 형식으로 요청해야 합니다. -`name` **\*** **string** + `name` **\*** **string** -**주문명** + **주문명** -페이먼트월의 경우 필수로 입력해야 합니다. + 페이먼트월의 경우 필수로 입력해야 합니다. -`buyer_name` **\*** **string** + `buyer_name` **\*** **string** -**구매자 이름** + **구매자 이름** -결제시 사용되는 구매자 이름 입니다. 페이먼트월의 경우 필수로 입력해야 합니다. + 결제시 사용되는 구매자 이름 입니다. 페이먼트월의 경우 필수로 입력해야 합니다. -`buyer_email` **\*** **string** + `buyer_email` **\*** **string** -**구매자 email 주소** + **구매자 email 주소** -결제시 사용되는 구매자 이메일입니다. 페이먼트월의 경우 필수로 입력해야 합니다. + 결제시 사용되는 구매자 이메일입니다. 페이먼트월의 경우 필수로 입력해야 합니다. -`currency` **\*** **string** + `currency` **\*** **string** -**통화구분코드** + **통화구분코드** -입력하지 않는 경우 기본적으로 `KRW`로 요청하며, 해외 통화 결제 시 해당 통화 구분 코드를 입력한 후 요청해야 합니다. + 입력하지 않는 경우 기본적으로 `KRW`로 요청하며, 해외 통화 결제 시 해당 통화 구분 코드를 입력한 후 요청해야 합니다. -`use_test_method` **boolean** + `use_test_method` **boolean** -**테스트 결제수단 활성화 여부** + **테스트 결제수단 활성화 여부** -LIVE 프로젝트에서 테스트 결제수단을 활성화 하는 경우 사용합니다. + LIVE 프로젝트에서 테스트 결제수단을 활성화 하는 경우 사용합니다. -만약 LIVE 프로젝트가 아니라면(페이먼트월 심사 완료 전 단계), `use_test_method` 파라미터 설정과 동시에 bypass의 `ps` 파라미터를 `test`로 설정해야 테스트 결제수단 사용이 가능합니다. + 만약 LIVE 프로젝트가 아니라면(페이먼트월 심사 완료 전 단계), `use_test_method` 파라미터 설정과 동시에 bypass의 `ps` 파라미터를 `test`로 설정해야 테스트 결제수단 사용이 가능합니다. -```javascript title="Javascript SDK" -IMP.request_pay({ - use_test_method: true, - bypass: { - ps: "test", // LIVE 프로젝트가 아닌 경우, ps도 test로 설정해야만 테스트 결제수단이 활성화됩니다. - }, -}); -``` + ```ts title="Javascript SDK" + IMP.request_pay({ + use_test_method: true, + bypass: { + ps: "test", // LIVE 프로젝트가 아닌 경우, ps도 test로 설정해야만 테스트 결제수단이 활성화됩니다. + }, + }); + ``` -`bypass` **object** + `bypass` **object** -**페이먼트월 전용 파라미터** + **페이먼트월 전용 파라미터** -- `widget_code`: 터미날3 인 경우 `t3_1`로 파라미터를 설정해야 합니다. 미설정시 Default(일반) 결제창이 활성화됩니다. -- `ps`: 특정 결제수단만 활성화 하는 경우 사용됩니다. 페이먼트월 가이드를 참고하여 해당하는 코드를 입력해야 합니다. [ → 페이먼트월 가이드 바로가기](https://docs.paymentwall.com/reference/payment-system-shortcodes) ex) `kakaopaykr` = 카카오페이 -- `country_code` : 지정된 국가에서 지원되는 결제수단이 위젯상에 노출됩니다. 다음 문서를 참고하여 해당하는 국가코드를 입력해야 합니다. [ → 국가코드 바로가기](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + - `widget_code`: 터미날3 인 경우 `t3_1`로 파라미터를 설정해야 합니다. 미설정시 Default(일반) 결제창이 활성화됩니다. + - `ps`: 특정 결제수단만 활성화 하는 경우 사용됩니다. 페이먼트월 가이드를 참고하여 해당하는 코드를 입력해야 합니다. [→ 페이먼트월 가이드 바로가기](https://docs.paymentwall.com/reference/payment-system-shortcodes) ex) `kakaopaykr` = 카카오페이 + - `country_code` : 지정된 국가에서 지원되는 결제수단이 위젯상에 노출됩니다. 다음 문서를 참고하여 해당하는 국가코드를 입력해야 합니다. [→ 국가코드 바로가기](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) + - + + 인증결제창 호출 파라미터에서 `customer_uid` 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. - -인증결제창 호출 파라미터에서 `customer_uid` 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. -비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "paymentwall.{project_key}", + pay_method: "card", // 빌링키 결제는 오직 신용카드만 가능합니다. + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 20, // 빌링키 발급과 함께 최초 승인이 같이 이루어집니다. + currency: "USD", // 필수 파라미터 + customer_uid: "your-customer-unique-id", // 필수 입력 + buyer_email: "test@portone.io", // 빌링키 발급시 기재한 주소와 빌링키 결제할때 기재한 주소가 동일해야 합니다. + buyer_name: "Jack Son", // 반드시 Firstname Lastname 이 빈칸으로 구분되어야 합니다. + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "paymentwall.{project_key}", - pay_method: "card", // 빌링키 결제는 오직 신용카드만 가능합니다. - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 20, // 빌링키 발급과 함께 최초 승인이 같이 이루어집니다. - currency: "USD", // 필수 파라미터 - customer_uid: "your-customer-unique-id", // 필수 입력 - buyer_email: "test@portone.io", // 빌링키 발급시 기재한 주소와 빌링키 결제할때 기재한 주소가 동일해야 합니다. - buyer_name: "Jack Son", // 반드시 Firstname Lastname 이 빈칸으로 구분되어야 합니다. - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` + **주요 파라미터 설명** -**주요 파라미터 설명** + `pg` \* **string** -`pg` \* **string** + **PG사 구분코드** -**PG사 구분코드** + `paymentwall`로 지정하면 됩니다. 페이먼트월 채널을 여러개 사용하는 경우 `{pg}.{mid}` 형식으로 요청해야 합니다. (예시-`paymentwall.{projeckey}`) -`paymentwall`로 지정하면 됩니다. 페이먼트월 채널을 여러개 사용하는 경우 `{pg}.{mid}` 형식으로 요청해야 합니다. (예시-`paymentwall.{projeckey}`) + `customer_uid` \* **string** -`customer_uid` \* **string** + **빌링키** -**빌링키** + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + 빌링키 발급이 성공하면 실 빌링키는 `customer_uid`와 1:1 매칭되어 **포트원 서버에 저장**됩니다. + `customer_uid`를 고객사 내부서버에 저장한 후 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하여 결제 요청을 해야합니다. -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -빌링키 발급이 성공하면 실 빌링키는 `customer_uid`와 1:1 매칭되어 **포트원 서버에 저장**됩니다. -`customer_uid`를 고객사 내부서버에 저장한 후 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하여 결제 요청을 해야합니다. + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + `amount` **\*** **integer** -`amount` **\*** **integer** + **결제금액** -**결제금액** + string 형식이 아닌 integer 형식으로 요청해야 합니다. + 설정된 금액으로 **최초 승인이 발생**됩니다. -string 형식이 아닌 integer 형식으로 요청해야 합니다. -설정된 금액으로 **최초 승인이 발생**됩니다. + `name` **\*** **string** -`name` **\*** **string** + **주문명** -**주문명** + 페이먼트월의 경우 필수로 입력해야 합니다. -페이먼트월의 경우 필수로 입력해야 합니다. + `buyer_name` **\*** **string** -`buyer_name` **\*** **string** + **구매자 이름** -**구매자 이름** + 결제시 사용되는 구매자 이름 입니다. 페이먼트월의 경우 필수로 입력해야 합니다. -결제시 사용되는 구매자 이름 입니다. 페이먼트월의 경우 필수로 입력해야 합니다. + `buyer_email` **\*** **string** -`buyer_email` **\*** **string** + **구매자 email 주소** -**구매자 email 주소** + 결제시 사용되는 구매자 이메일입니다. 페이먼트월의 경우 필수로 입력해야 합니다. -결제시 사용되는 구매자 이메일입니다. 페이먼트월의 경우 필수로 입력해야 합니다. + `currency` **\*** **string** -`currency` **\*** **string** + **통화구분코드** -**통화구분코드** - -입력하지 않는 경우 기본적으로 `KRW`로 요청하며, 해외 통화 결제 시 해당 통화 구분 코드를 입력한 후 요청해야 합니다. - - + 입력하지 않는 경우 기본적으로 `KRW`로 요청하며, 해외 통화 결제 시 해당 통화 구분 코드를 입력한 후 요청해야 합니다. + -**배송정보 등록 API** + **배송정보 등록 API** -페이먼트월을 통한 이커머스(실물상품) 결제인 경우 아래 배송정보등록 API를 반드시 연동해야 합니다. 해당 API를 연동하지 않을 경우 정산 시 문제가 발생할 수 있습니다. - -[ → 페이먼트월 배송등록 API 바로가기](https://developers.portone.io/api/rest-v1/pg.paymentwall) + 페이먼트월을 통한 이커머스(실물상품) 결제인 경우 아래 배송정보등록 API를 반드시 연동해야 합니다. 해당 API를 연동하지 않을 경우 정산 시 문제가 발생할 수 있습니다. + [→ 페이먼트월 배송등록 API 바로가기](https://developers.portone.io/api/rest-v1/pg.paymentwall) -페이먼트월의 경우 빌링키 발급 시 빌링키 발급과 동시에 결제가 이루어지는 방식으로만 제공하고 있습니다. -페이먼트월 정책에 따라 최초 결제 승인 없이 **빌링키만 발급하는 방식은 지원되지 않습니다.** - -또한, 빌링키만 발급하기 위해 임의의 결제를 발생시켜 승인 후 즉시 취소하는 경우 카드사 정책에 따라 이용이 중지될 수 있습니다. + 페이먼트월의 경우 빌링키 발급 시 빌링키 발급과 동시에 결제가 이루어지는 방식으로만 제공하고 있습니다. + 페이먼트월 정책에 따라 최초 결제 승인 없이 **빌링키만 발급하는 방식은 지원되지 않습니다.** + 또한, 빌링키만 발급하기 위해 임의의 결제를 발생시켜 승인 후 즉시 취소하는 경우 카드사 정책에 따라 이용이 중지될 수 있습니다. diff --git a/src/content/docs/ko/pg/payment-gateway/paypal.mdx b/src/content/docs/ko/pg/payment-gateway/paypal.mdx index 629998d7b..aace2eee9 100644 --- a/src/content/docs/ko/pg/payment-gateway/paypal.mdx +++ b/src/content/docs/ko/pg/payment-gateway/paypal.mdx @@ -5,14 +5,14 @@ description: 페이팔(Express Checkout) 결제연동 방법을 안내합니다. import Figure from "~/components/Figure.astro"; import File from "~/components/gitbook/File.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -페이팔 Express checkout 방식으로 신규 가입 및 연동이 불가합니다. -페이팔 연동을 원하는 경우, [페이팔 일반 결제(Smart Payment Buttons) 연동 가이드](./spb) 또는 [페이팔 정기 결제(Reference Transaciton) 연동 가이드](./rt)를 참고하여 진행해주세요. - + 페이팔 Express checkout 방식으로 신규 가입 및 연동이 불가합니다. + 페이팔 연동을 원하는 경우, [페이팔 일반 결제(Smart Payment Buttons) 연동 가이드](./spb) + 또는 [페이팔 정기 결제(Reference Transaciton) 연동 가이드](./rt)를 참고하여 진행해주세요. ## 1. 페이팔 채널 설정하기 @@ -21,75 +21,78 @@ import Tab from "~/components/gitbook/tabs/Tab.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 페이팔 결제창을 호출할 수 있습니다. **결제결과**는 **PC / 모바일** 모두 **`m_redirect_url`** 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "paypal.{API 사용자 이름}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 - name: "주문명:결제테스트", - amount: 14.20, - currency: "USD", // 기본값: USD(원화 KRW는 페이팔 정책으로 인해 지원하지 않음) - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{결제 완료 후 리디렉션 될 URL}" -}, function(rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "paypal.{API 사용자 이름}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 + name: "주문명:결제테스트", + amount: 14.2, + currency: "USD", // 기본값: USD(원화 KRW는 페이팔 정책으로 인해 지원하지 않음) + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`pg` \*****string** + **주요 파라미터 설명** -**PG사 구분코드** + **`pg` \*****string** -**`paypal`** 로 지정하면 됩니다. + **PG사 구분코드** -**`pay_method`** **\*** **string** + **`paypal`** 로 지정하면 됩니다. -**결제수단 구분코드** + **`pay_method`** **\*** **string** -- card (신용카드) + **결제수단 구분코드** -**`merchant_uid`** **\*** **string** + - card (신용카드) -**`고객사 주문번호`** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **`고객사 주문번호`** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제금액** + **`amount`** **\*** **`integer`** -**string** 이 아닌점에 유의하세요 + **결제금액** -**`currency`** **\*** **`string`** + **string** 이 아닌점에 유의하세요 -**결제통화코드** + **`currency`** **\*** **`string`** -지원 가능한 모든 통화는 [페이팔 공식 문서](https://developer.paypal.com/docs/api/reference/currency-codes/#paypal-account-payments)를 참고해주세요 + **결제통화코드** -**`m_redirect_url`** **\*** **`string`** + 지원 가능한 모든 통화는 [페이팔 공식 문서](https://developer.paypal.com/docs/api/reference/currency-codes/#paypal-account-payments)를 참고해주세요 -**결제결과 수신 URL** + **`m_redirect_url`** **\*** **`string`** -PC환경 모바일 환경 모두 해당 값을 필수로 설정해야 결과를 받아볼수 있습니다. + **결제결과 수신 URL** - + PC환경 모바일 환경 모두 해당 값을 필수로 설정해야 결과를 받아볼수 있습니다. + -## 추가 기능 +## 추가 기능 Paypal에서는 고위험업종(게임, 디지털 콘텐츠) 고객사의 경우 판매자 보호 및 더 높은 수준의 위험관리를 위해 STC API(SetTransactionContext API)를 제공합니다. @@ -97,7 +100,7 @@ Paypal에서는 고위험업종(게임, 디지털 콘텐츠) 고객사의 경우 고위험거래를 안전하게 요청하기 위해서는 거래를 증명할 추가적인 정보(STC API로 전달할 정보)가 필요하며, 아래 예제와 같이 `request_pay`에 파라미터를 추가하여 고위험거래를 요청할 수 있습니다. -```javascript +```ts IMP.request_pay({ /* 요청 객체 */ // Paypal 전용 파라미터로 결제요청 파라미터 문서에 존재하지 않습니다. @@ -116,17 +119,16 @@ IMP.request_pay({ 자세한 내용은 [Paypal Transaction Risk](https://developer.paypal.com/limited-release/raas/) 문서를 참고해주세요. -STC API를 사용하기 위해서는 **Paypal과의 STC 데이터 협의**가 필요하며, **포트원 지원팀(support@portone.io)을 통해 요청**해주시면 협의 프로세스를 안내해드리고 있습니다. - -연동을 원하시는 경우 원활한 연동절차를 위해 요청 전 **아래 pdf의 Create REST API Application 섹션을 완료**해주세요. + STC API를 사용하기 위해서는 **Paypal과의 STC 데이터 협의**가 필요하며, + **포트원 지원팀([support@portone.io](mailto:support@portone.io))을 통해 요청**해주시면 협의 프로세스를 안내해드리고 있습니다. + 연동을 원하시는 경우 원활한 연동절차를 위해 요청 전 **아래 pdf의 Create REST API Application 섹션을 완료**해주세요. -**참고사항** - -포트원은 페이팔 정기결제를 지원하지 않습니다. + **참고사항** + 포트원은 페이팔 정기결제를 지원하지 않습니다. diff --git a/src/content/docs/ko/pg/payment-gateway/readme.mdx b/src/content/docs/ko/pg/payment-gateway/readme.mdx index 62ebd151d..018b1232d 100644 --- a/src/content/docs/ko/pg/payment-gateway/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/readme.mdx @@ -1,5 +1,5 @@ --- -title: 결제대행사 선택하여 연동하기 +title: 결제대행사 선택하여 연동하기 description: 각 결제대행사(PG)사별 결제 연동 방법 및 유의사항을 확인할 수 있습니다. cover: >- https://images.unsplash.com/photo-1560179707-f14e90ef3623?crop=entropy&cs=srgb&fm=jpg&ixid=MnwxOTcwMjR8MHwxfHNlYXJjaHw2fHxjb21wYW55fGVufDB8fHx8MTY4MTcxNzYyNg&ixlib=rb-4.0.3&q=85 @@ -8,7 +8,7 @@ coverY: 0 import ContentRef from "~/components/gitbook/ContentRef.astro"; -### 국내결제 +## 국내결제 @@ -40,7 +40,7 @@ import ContentRef from "~/components/gitbook/ContentRef.astro"; -### 해외결제 +## 해외결제 @@ -51,4 +51,3 @@ import ContentRef from "~/components/gitbook/ContentRef.astro"; - diff --git a/src/content/docs/ko/pg/payment-gateway/rt.mdx b/src/content/docs/ko/pg/payment-gateway/rt.mdx index f0e803fd1..dd4fa6bb9 100644 --- a/src/content/docs/ko/pg/payment-gateway/rt.mdx +++ b/src/content/docs/ko/pg/payment-gateway/rt.mdx @@ -27,12 +27,15 @@ import Hint from "~/components/Hint.astro"; - `imp_uid` - `merchant_uid` - 해당 SDK를 사용하실때는 IMP.request\_pay로부터 응답된 객체(또는 쿼리 파라미터)에서 imp\_uid를 가지고 **포트원 REST API(GET /payments/imp\_uid)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 응답 파라미터 중 status(결제 상태)파라미터에 따라 추가 로직을 구현해야 합니다. + 해당 SDK를 사용하실때는 IMP.request\_pay로부터 응답된 객체(또는 쿼리 파라미터)에서 + imp\_uid를 가지고 **포트원 REST API(GET /payments/imp\_uid)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 + 응답 파라미터 중 status(결제 상태)파라미터에 따라 추가 로직을 구현해야 합니다. ## 페이팔 정기결제 버튼 렌더링 -페이팔 정기결제 빌링키 발급은 고객사 체크아웃 페이지에 페이팔 정기결제 버튼(아래 이미지 참고)을 렌더링 한 후, 버튼을 클릭해 페이팔 빌링키 발급 창을 호출하는 방식입니다. +페이팔 정기결제 빌링키 발급은 고객사 체크아웃 페이지에 페이팔 정기결제 버튼(아래 이미지 참고)을 렌더링 한 후, +버튼을 클릭해 페이팔 빌링키 발급 창을 호출하는 방식입니다.
@@ -67,7 +70,7 @@ import Hint from "~/components/Hint.astro"; // 6-7. 포트원 DB에 미결제(ready) 빌링키 발급 건이 생성됩니다. // 8. PG사 빌링키 발급 창이 호출됩니다. // 9. 빌링키 발급 프로세스가 종료되면 2-2번에 두번째 파라미터로 전달 한 콜백 함수가 호출됩니다. - }); + }; ``` @@ -116,10 +119,9 @@ import Hint from "~/components/Hint.astro"; /> -// 1. 고객사 체크아웃 페이지가 렌더링됩니다. // 페이팔 버튼을 렌더링 하고 싶은 -위치에 "portone-ui-container"라는 class 이름을 갖는 div element를 넣어줍니다. // -향후 비슷한 플로우로 동작하는 PG사가 생기거나, 2개 이상의 dom element가 렌더링 -될 것을 대비해 // data-portone-ui-type을 paypal-rt로 설정합니다. + + +
@@ -128,7 +130,7 @@ import Hint from "~/components/Hint.astro"; var requestData = { pg: 'paypal_v2', name: '카카오페이로 등록', - ...중략 + // ...중략 } window.onload = function() { // 2. 고객사 체크아웃 페이지가 렌더링 되면 @@ -138,12 +140,12 @@ import Hint from "~/components/Hint.astro"; // 이때 전달하는 파라미터는 IMP.request_pay 함수 호출시 전달하는 파라미터와 동일합니다. IMP.loadUI('paypal-rt', requestData, 콜백 함수) // 6. 구매자가 PG사 버튼을 누르면 PG사 빌링키 발급 창이 렌더링 됩니다. - // 7. 이때 포트원은 내부적으로 IMP.request_pay 함수를 고객사 대신 호출하며 - // 빌링키 발급 주문 명은 '카카오페이로 등록'에서 '페이팔로 등록'으로 변경됩니다. - // 8-9. 포트원 DB에 미결제(ready) 빌링키 발급 건이 생성됩니다. + // 7. 이때 포트원은 내부적으로 IMP.request_pay 함수를 고객사 대신 호출하며 + // 빌링키 발급 주문 명은 '카카오페이로 등록'에서 '페이팔로 등록'으로 변경됩니다. + // 8-9. 포트원 DB에 미결제(ready) 빌링키 발급 건이 생성됩니다. // 10. PG사 빌링키 발급 창이 호출됩니다. // 11. 빌링키 발급 프로세스가 종료되면 2-2번에 두번째 파라미터로 전달 한 콜백 함수가 호출됩니다. - }); + }; function onChangeName() { // 5. 빌링키 발급 주문 명이 변경되면 고객사가 선언한 onChangeName 함수가 호출됩니다. @@ -254,9 +256,7 @@ status가 cancelled 이고 cancel\_history에 취소 요청 내역이 있는 경 ``` @@ -380,7 +380,7 @@ STC 기능을 사용하시기 위해 다음 정보를 확인하셔야 합니다. 발급 된 빌링키로 단건 결제(again API 호출)시 STC 적용하기

- ```javascript + ```ts await fetch("https://api.iamport.kr/subscribe/payments/again", { method: "POST", headers: { diff --git a/src/content/docs/ko/pg/payment-gateway/rt/warning.mdx b/src/content/docs/ko/pg/payment-gateway/rt/warning.mdx index 5dda7d8eb..f9c218809 100644 --- a/src/content/docs/ko/pg/payment-gateway/rt/warning.mdx +++ b/src/content/docs/ko/pg/payment-gateway/rt/warning.mdx @@ -3,282 +3,288 @@ title: 연동 유의사항 description: (신)페이팔 정기결제(RT) 이용시 특이사항을 확인할수 있습니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; -
-

빌링키 발급 수단 및 정보를 알 수 없음

+## RT 연동 유의사항 -페이팔을 통해 다양한 수단으로 빌링키 발급이 가능하지만, 페이팔이 승인 된 빌링키 발급 수단 및 정보를 알려주지 않습니다. 따라서 페이팔 빌링키 발급 건의 결제 수단(pay_method)은 모두 paypal로 일괄 저장되며 [발급 된 빌링키 정보 조회](../../../api/api-2/api-2)시 카드 정보는 모두 null로 내려갑니다. +
+

빌링키 발급 수단 및 정보를 알 수 없음

-```javascript -GET /subscribe/customers/{customer_uid} + 페이팔을 통해 다양한 수단으로 빌링키 발급이 가능하지만, 페이팔이 승인 된 빌링키 발급 수단 및 정보를 알려주지 않습니다. 따라서 페이팔 빌링키 발급 건의 결제 수단(pay\_method)은 모두 paypal로 일괄 저장되며 [발급 된 빌링키 정보 조회](../../../api/api-2/api-2)시 카드 정보는 모두 null로 내려갑니다. -{ - ...중략 - pg_provider: 'paypal_v2', - customer_uid: '{customer_uid}' - card_name: null, - card_code: null, - card_number: null, - card_type: null, -} -``` + ```http + GET /subscribe/customers/{customer_uid} + { + // ...중략 + "pg_provider": "paypal_v2", + "customer_uid": "{customer_uid}", + "card_name": null, + "card_code": null, + "card_number": null, + "card_type": null + } + ```
-

Manges & Fraudnet 이상 거래 대응 필요

+

Manges & Fraudnet 이상 거래 대응 필요

+ + 페이팔은 이상 거래를 줄이기 위해 Rist Data Aquisition 정책을 시행하고 있습니다. + 일반 결제나 빌링키 발급은 페이팔 버튼을 통해 진행되기 때문에 + 페이팔이 이상 거래 판단을 위한 구매자 접속 정보를 얻을 수 있지만, + 발급 된 빌링키로 재결제 (again API 호출) 할때는 고객사 서버에서 포트원 API를 통해 + 페이팔 API가 호출되는 구조이기 때문에 이상 거래 판단을 위한 구매자 접속 정보를 얻을 수 없습니다. + + 따라서 발급 된 빌링키로 재결제를 할때는 구매자의 브라우저/디바이스 접속 정보를 + 페이팔에 전달할 수 있도록 **again API가 호출되는 고객사 클라이언트 페이지에 + 반드시 페이팔 Fraudnet 스크립트/Manges SDK를 아래와 같이 추가해야** 합니다. + + + **페이팔 RT를 통한 again API 호출시에는 Manges & Fraudnet 조치가 필수적으로 요구됩니다.** + + + 브라우저/앱에 페이팔 Fraudnet Script/Manges SDK를 추가한 후 again API를 호출할때 진행되는 플로우는 아래와 같습니다. + +
+ + ### 브라우저 + + ```html + + + + + ``` -페이팔은 이상 거래를 줄이기 위해 Rist Data Aquisition 정책을 시행하고 있습니다. 일반 결제나 빌링키 발급은 페이팔 버튼을 통해 진행되기 때문에 페이팔이 이상 거래 판단을 위한 구매자 접속 정보를 얻을 수 있지만, 발급 된 빌링키로 재결제 (again API 호출) 할때는 고객사 서버에서 포트원 API를 통해 페이팔 API가 호출되는 구조이기 때문에 이상 거래 판단을 위한 구매자 접속 정보를 얻을 수 없습니다. + |파라미터 |설명 |예시 | + |---------|-------------------------------------------------------------------------------|-----------------------------------------------| + |`fncls` |`fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99`로 항상 고정 |`fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99`| + |`f` |주문번호(`merchant_uid`) 전달 |`mid_1683690731602` | + |`s` |string (`{페이팔 Account ID}_{페이지 유형}` 형식. 페이지 유형은 아래 목록 참고)|`7WBB3CKT63FRG_checkout-page` | + |`sandbox`|페이팔 Account ID가 테스트 용인지 운영 용인지 여부 |`true` | -따라서 발급 된 빌링키로 재결제를 할때는 구매자의 브라우저/디바이스 접속 정보를 페이팔에 전달할 수 있도록 **again API가 호출되는 고객사 클라이언트 페이지에 반드시 페이팔 Fraudnet 스크립트/Manges SDK를 아래와 같이 추가해야** 합니다. + **\[페이지 유형]** - - **페이팔 RT를 통한 again API 호출시에는 Manges & Fraudnet 조치가 필수적으로 - 요구됩니다.** - + - `home-page` + - `search-result-page` + - `category-page` + - `product-detail-page` + - `cart-page` + - `inline-cart-page` + - `checkout-page` -브라우저/앱에 페이팔 Fraudnet Script/Manges SDK를 추가한 후 again API를 호출할때 진행되는 플로우는 아래와 같습니다. + ### 앱 -
+ #### 안드로이드 -#### 브라우저 + [**Android Integration of Magnes**](https://developer.paypal.com/limited-release/magnes/integrate/android/) 가이드 문서에 따라 + 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야 합니다. + 이때 두번째 파라미터(paypalClientMetaDataId)로는 주문번호(merchant\_uid)를 전달해주시면 됩니다. -```html - - - - -``` - -| 파라미터 | 설명 | 예시 | -| --------- | ------------------------------------------------------------------------------- | ----------------------------------------------- | -| `fncls` | `fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99`로 항상 고정 | `fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99` | -| `f` | 주문번호(`merchant_uid`) 전달 | `mid_1683690731602` | -| `s` | string (`{페이팔 Account ID}_{페이지 유형}` 형식. 페이지 유형은 아래 목록 참고) | `7WBB3CKT63FRG_checkout-page` | -| `sandbox` | 페이팔 Account ID가 테스트 용인지 운영 용인지 여부 | `true` | - -##### **\[페이지 유형\]** - -- `home-page` -- `search-result-page` -- `category-page` -- `product-detail-page` -- `cart-page` -- `inline-cart-page` -- `checkout-page` - -#### 앱 - -#### 안드로이드 - -[**Android Integration of Magnes**](https://developer.paypal.com/limited-release/magnes/integrate/android/) 가이드 문서에 따라 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 두번째 파라미터(paypalClientMetaDataId)로는 주문번호(merchant_uid)를 전달해주시면 됩니다. - -```java -MagnesResult magnesResult = MagnesSDK.getInstance() - .collectAndSubmit(Context context, String paypalClientMetaDataId, - HashMap - additionalData) -``` - -#### IOS Switft - -[**iOS Swift SDK Integration**](https://developer.paypal.com/limited-release/magnes/integrate/ios-swift/) 가이드 문서에 따라 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 첫번째 파라미터(withPayPalClientMetadataId)로는 주문번호(merchant_uid)를 전달해주시면 됩니다. - -```swift -let magnesResult:MagnesResult = -MagnesSDK.shared().collectAndSubmit(withPayPalClientMetadataId: - "YOUR-PAYPAL-CLIENT-METADATA-ID", withAdditionalData: [String: String]) -``` - -#### IOS Objective-C - -[**iOS Objective-C SDK Integration of Magnes**](https://developer.paypal.com/limited-release/magnes/integrate/ios-objective-c/) 가이드 문서에 따라 아래와 같이 collectAndSubmitWithPayPalClientMetadataId 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 첫번째 파라미터(YOUR-PAYPAL-CLIENT-METADATA-ID)로는 주문번호(merchant_uid)를 전달해주시면 됩니다. - -```objective-c -//PPRMOCMagnesSDK *magnesSDK = [PPRMOCMagnesSDK shared]; -PPRMOCMagnesSDKResult *magnesResult = -[magnesSDK -collectAndSubmitWithPayPalClientMetadataId:@"YOUR-PAYPAL-CLIENT-METADATA-ID" -withAdditionalData:@{}]; -``` + ```java + MagnesResult magnesResult = MagnesSDK.getInstance() + .collectAndSubmit(Context context, String paypalClientMetaDataId, + HashMap + additionalData) + ``` + + ### IOS Switft + [**iOS Swift SDK Integration**](https://developer.paypal.com/limited-release/magnes/integrate/ios-swift/) 가이드 문서에 따라 + 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야 합니다. + 이때 첫번째 파라미터(withPayPalClientMetadataId)로는 주문번호(merchant\_uid)를 전달해주시면 됩니다. + + ```swift + let magnesResult:MagnesResult = + MagnesSDK.shared().collectAndSubmit(withPayPalClientMetadataId: + "YOUR-PAYPAL-CLIENT-METADATA-ID", withAdditionalData: [String: String]) + ``` + + ### IOS Objective-C + + [**iOS Objective-C SDK Integration of Magnes**](https://developer.paypal.com/limited-release/magnes/integrate/ios-objective-c/) 가이드 문서에 따라 + 아래와 같이 collectAndSubmitWithPayPalClientMetadataId 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야 합니다. + 이때 첫번째 파라미터(YOUR-PAYPAL-CLIENT-METADATA-ID)로는 주문번호(merchant\_uid)를 전달해주시면 됩니다. + + ```objective-c + //PPRMOCMagnesSDK *magnesSDK = [PPRMOCMagnesSDK shared]; + PPRMOCMagnesSDKResult *magnesResult = + [magnesSDK + collectAndSubmitWithPayPalClientMetadataId:@"YOUR-PAYPAL-CLIENT-METADATA-ID" + withAdditionalData:@{}]; + ```
-

파라미터 유의사항

+

파라미터 유의사항

-### `name` + ### `name` -빌링키 발급 창 내 “판매자가 보낸 메모” 하단에 표기할 메시지를 name 파라미터로 전달할 수 있습니다. + 빌링키 발급 창 내 “판매자가 보낸 메모” 하단에 표기할 메시지를 name 파라미터로 전달할 수 있습니다. -
+
-#### `pg` + ### `pg` -필수 입력이며 페이팔의 경우 `paypal_v2` 또는 `paypal_v2.{페이팔 Account ID}`를 입력해야 합니다. **paypal로 입력시 빌링키 발급이 불가능**합니다. + 필수 입력이며 페이팔의 경우 `paypal_v2` 또는 `paypal_v2.{페이팔 Account ID}`를 입력해야 합니다. **paypal로 입력시 빌링키 발급이 불가능**합니다. -#### `pay_method` + ### `pay_method` -`paypal`만 입력 가능하며 다른 값을 입력하면 “페이팔에서 제공하지 않는 빌링키 발급 수단입니다.”라는 에러 메시지와 함께 빌링키 발급 창이 호출되지 않습니다. + `paypal`만 입력 가능하며 다른 값을 입력하면 “페이팔에서 제공하지 않는 빌링키 발급 수단입니다.”라는 에러 메시지와 함께 빌링키 발급 창이 호출되지 않습니다. -또한 pay_method를 `paypal`로 입력 후 카드, 계좌 등 어떤 결제 수단으로 빌링키를 발급 받아도 빌링키 발급 수단은 무조건 `paypal`로 저장됩니다. 이는 페이팔이 실제 발급 된 빌링키 종류를 구분해 알려주지 않고 모두 `paypal`로 일괄 응답해주기 때문입니다. + 또한 pay\_method를 `paypal`로 입력 후 카드, 계좌 등 어떤 결제 수단으로 빌링키를 발급 받아도 빌링키 발급 수단은 무조건 `paypal`로 저장됩니다. 이는 페이팔이 실제 발급 된 빌링키 종류를 구분해 알려주지 않고 모두 `paypal`로 일괄 응답해주기 때문입니다. -#### `bypass.paypal_v2.style` + ### `bypass.paypal_v2.style` -페이팔 RT 버튼을 커스터마이징 하기 위한 파라미터입니다. 자세한 내용은 [페이팔에서 제공하는 문서](https://developer.paypal.com/sdk/js/reference/#link-style)를 참고하세요. + 페이팔 RT 버튼을 커스터마이징 하기 위한 파라미터입니다. 자세한 내용은 [페이팔에서 제공하는 문서](https://developer.paypal.com/sdk/js/reference/#link-style)를 참고하세요. -#### `bypass.paypal_v2.shipping_address` + ### `bypass.paypal_v2.shipping_address` -페이팔은 기본적으로 구매자가 페이팔에 가입할때 입력 한 배송 정보를 빌링키 발급 창에 자동으로 입력해줍니다. 만약 이 배송 정보를 override하고 싶다면 shipping_address 파라미터에 override할 주소를 입력하고 shipping_address.recipient_name에 override할 수령인 이름을 입력하면 됩니다. + 페이팔은 기본적으로 구매자가 페이팔에 가입할때 입력 한 배송 정보를 빌링키 발급 창에 자동으로 입력해줍니다. 만약 이 배송 정보를 override하고 싶다면 shipping\_address 파라미터에 override할 주소를 입력하고 shipping\_address.recipient\_name에 override할 수령인 이름을 입력하면 됩니다. -배송 정보 중 **`line1`, `city` 그리고 `country_code`는 필수 입력**입니다. 전달하지 -않을 경우 에러가 리턴되며 빌링키 발급 창이 호출되지 않습니다. + 배송 정보 중 **`line1`, `city` 그리고 `country_code`는 필수 입력**입니다. 전달하지 + 않을 경우 에러가 리턴되며 빌링키 발급 창이 호출되지 않습니다. -```javascript -bypass: { - paypal_v2: { - ...중략 - shipping_address: { // 상품 수령 주소 - recipient_name: "홍길동", // 수령인 이름 - line1: "세종대로 110", // 도로명 주소 - line2: "서울특별시청", // 아파트 동 호수 - city: "중구", // 시(Los Angeles, New York) - state: "서울특별시", // 주(CA, NY) - postal_code: "04524", // 상품 수령지 우편번호 - country_code: "KR", // [필수 입력] 상품 수령지 국가 코드 - } - } // end-of paypal_v2 -} // end-of-bypass -``` + ```json + { + "bypass": { + "paypal_v2": { + // ...중략 + "shipping_address": { // 상품 수령 주소 + "recipient_name": "홍길동", // 수령인 이름 + "line1": "세종대로 110", // 도로명 주소 + "line2": "서울특별시청", // 아파트 동 호수 + "city": "중구", // 시(Los Angeles, New York) + "state": "서울특별시", // 주(CA, NY) + "postal_code": "04524", // 상품 수령지 우편번호 + "country_code": "KR", // [필수 입력] 상품 수령지 국가 코드 + } + } // end-of paypal_v2 + } // end-of-bypass + } + ``` -
-
-
-
+
+
+
+
-

사용 불가능한 파라미터

+

사용 불가능한 파라미터

-#### `amount/tax_free` + ### `amount/tax_free` -결제/면세 금액 파라미터는 결제 시에만 제공되기 때문에 빌링키 발급 시에는 무조건 0으로 저장됩니다. + 결제/면세 금액 파라미터는 결제 시에만 제공되기 때문에 빌링키 발급 시에는 무조건 0으로 저장됩니다. -#### `country` + ### `country` -빌링키 발급 국가를 의미하는 country 파라미터로 페이팔 sandbox 모드에서만 유의미하며 **운영 모드에서는 구매자가 접속한 환경에 따라 자동 적용되기 때문에 전달한 파라미터가 무시**됩니다. + 빌링키 발급 국가를 의미하는 country 파라미터로 페이팔 sandbox 모드에서만 유의미하며 **운영 모드에서는 구매자가 접속한 환경에 따라 자동 적용되기 때문에 전달한 파라미터가 무시**됩니다. -#### `currency` + ### `currency` -결제 통화를 의미하는 currency 파라미터로 빌링키 발급시에는 결제가 되지 않기 때문에 해당 파라미터는 무시됩니다. + 결제 통화를 의미하는 currency 파라미터로 빌링키 발급시에는 결제가 되지 않기 때문에 해당 파라미터는 무시됩니다. -#### `buyer_addr` + ### `buyer_addr` -페이팔 빌링키 발급 창 내에는 상품 배송지(shipping address)가 표기되는데, 이 상품 배송지는 페이팔 회원가입시 기입한 정보가 자동으로 입력됩니다. + 페이팔 빌링키 발급 창 내에는 상품 배송지(shipping address)가 표기되는데, 이 상품 배송지는 페이팔 회원가입시 기입한 정보가 자동으로 입력됩니다. -단, 이때의 주소는 총 5개의 영역으로 나누어진 상세 주소로 기존에 포트원이 제공하던 buyer_addr 파라미터로는 커버가 불가능하므로 페이팔 전용 파라미터(`bypass.paypal_v2.shipping_address`)를 사용하셔야 합니다. 자세한 내용은 하단의 예제 코드를 참고해주세요. - ```tsx - bypass: { - paypal_v2: { - ...중략 - shipping_address: { // 상품 수령 주소 - recipient_name: "홍길동", // 수령인 이름 - line1: "세종대로 110", // 도로명 주소 - line2: "서울특별시청", // 아파트 동 호수 - city: "중구", // 시(Los Angeles, New York) - state: "서울특별시", // 주(CA, NY) - postal_code: "04524", // 상품 수령지 우편번호 - country_code: "KR", // [필수 입력] 상품 수령지 국가 코드 - } - } // end-of paypal_v2 - } // end-of-bypass + 단, 이때의 주소는 총 5개의 영역으로 나누어진 상세 주소로 기존에 포트원이 제공하던 buyer\_addr 파라미터로는 커버가 불가능하므로 페이팔 전용 파라미터(`bypass.paypal_v2.shipping_address`)를 사용하셔야 합니다. 자세한 내용은 하단의 예제 코드를 참고해주세요. + + ```json + { + "bypass": { + "paypal_v2": { + // ...중략 + "shipping_address": { // 상품 수령 주소 + "recipient_name": "홍길동", // 수령인 이름 + "line1": "세종대로 110", // 도로명 주소 + "line2": "서울특별시청", // 아파트 동 호수 + "city": "중구", // 시(Los Angeles, New York) + "state": "서울특별시", // 주(CA, NY) + "postal_code": "04524", // 상품 수령지 우편번호 + "country_code": "KR", // [필수 입력] 상품 수령지 국가 코드 + } + } // end-of paypal_v2 + } // end-of-bypass + } ``` -#### `popup` -페이팔의 경우 빌링키 발급 창이 무조건 팝업으로 렌더링되기 때문에 해당 파라미터는 무시 됩니다. + ### `popup` -#### `m_redirect_url` + 페이팔의 경우 빌링키 발급 창이 무조건 팝업으로 렌더링되기 때문에 해당 파라미터는 무시 됩니다. -페이팔의 경우 PC와 모바일 모두 팝업으로 빌링키 발급 창이 렌더링되기 때문에 빌링키 발급 프로세스 종료시 모두 콜백 함수가 호촐됩니다. 따라서 m_redirect_url 파라미터는 무시됩니다. + ### `m_redirect_url` -#### `app_scheme` + 페이팔의 경우 PC와 모바일 모두 팝업으로 빌링키 발급 창이 렌더링되기 때문에 빌링키 발급 프로세스 종료시 모두 콜백 함수가 호촐됩니다. 따라서 m\_redirect\_url 파라미터는 무시됩니다. -페이팔의 경우 외부 앱으로 이동하는 경우가 없기 때문에 해당 파라미터는 무시됩니다. + ### `app_scheme` -#### `escrow` + 페이팔의 경우 외부 앱으로 이동하는 경우가 없기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 에스크로 결제를 지원하지 않기 때문에 해당 파라미터는 무시됩니다. + ### `escrow` -#### `language` + 페이팔의 경우 에스크로 결제를 지원하지 않기 때문에 해당 파라미터는 무시됩니다. -빌링키 발급 창 언어 설정을 의미하는 language 파라미터는 구매자가 접속한 환경에 따라 자동 적용되기 때문에 전달한 파라미터가 무시됩니다. + ### `language` -#### `bypass.isCulturalExpense` + 빌링키 발급 창 언어 설정을 의미하는 language 파라미터는 구매자가 접속한 환경에 따라 자동 적용되기 때문에 전달한 파라미터가 무시됩니다. -페이팔의 경우 문화비 결제가 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `bypass.isCulturalExpense` -#### `bypass.cashReceiptType` + 페이팔의 경우 문화비 결제가 불가능하기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 현금영수증 발급이 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `bypass.cashReceiptType` -#### `bypass.customerIdentifier` + 페이팔의 경우 현금영수증 발급이 불가능하기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 현금영수증 발급이 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `bypass.customerIdentifier` -#### `bypass.useInternationalFreeFromMall` + 페이팔의 경우 현금영수증 발급이 불가능하기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 상점 부담 무이자 할부가 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `bypass.useInternationalFreeFromMall` -#### `card` + 페이팔의 경우 상점 부담 무이자 할부가 불가능하기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 카드사 다이렉트 호출, 상점 부담 무이자 할부, 렌더링 될 카드 종류 제어 등이 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `card` -#### `display` + 페이팔의 경우 카드사 다이렉트 호출, 상점 부담 무이자 할부, 렌더링 될 카드 종류 제어 등이 불가능하기 때문에 해당 파라미터는 무시됩니다. -카드 할부 개월수를 의미하는 display: \{ card_quota } 파라미터는 결제 시에만 적용되므로 빌링키 발급 시에는 무시됩니다. + ### `display` -#### `vbank_due` + 카드 할부 개월수를 의미하는 display: \{ card\_quota } 파라미터는 결제 시에만 적용되므로 빌링키 발급 시에는 무시됩니다. -페이팔의 경우 가상계좌 결제를 지원하지 않기 때문에 해당 파라미터는 무시됩니다. + ### `vbank_due` -#### `appCard` + 페이팔의 경우 가상계좌 결제를 지원하지 않기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 앱카드 결제가 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `appCard` -#### `useCardPoint` + 페이팔의 경우 앱카드 결제가 불가능하기 때문에 해당 파라미터는 무시됩니다. -페이팔의 경우 카드 포인트 결제가 불가능하기 때문에 해당 파라미터는 무시됩니다. + ### `useCardPoint` -#### `period` + 페이팔의 경우 카드 포인트 결제가 불가능하기 때문에 해당 파라미터는 무시됩니다. -페이팔은 빌링키 발급 창 내 제공 기간 정보 노출을 지원하지 않아 해당 파라미터가 무시됩니다. + ### `period` -#### `storeDetails` + 페이팔은 빌링키 발급 창 내 제공 기간 정보 노출을 지원하지 않아 해당 파라미터가 무시됩니다. -페이팔은 상점 세부 정보를 입력할 필요가 없기 때문에 해당 파라미터가 무시됩니다. + ### `storeDetails` + 페이팔은 상점 세부 정보를 입력할 필요가 없기 때문에 해당 파라미터가 무시됩니다.
diff --git a/src/content/docs/ko/pg/payment-gateway/settle/mybank.mdx b/src/content/docs/ko/pg/payment-gateway/settle/mybank.mdx index 6e5e35a57..4597d2dac 100644 --- a/src/content/docs/ko/pg/payment-gateway/settle/mybank.mdx +++ b/src/content/docs/ko/pg/payment-gateway/settle/mybank.mdx @@ -4,9 +4,9 @@ description: 핵토파이낸셜에서 제공하는 오픈뱅킹 기반 계좌간 --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 내통장결제 채널 설정하기 @@ -17,166 +17,167 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 2.결제 요청하기 [JavaScript SDK](../../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 -호출하여 내통장 결제 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request_pay(param, +호출하여 내통장 결제 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request\_pay(param, callback) 호출 후 **callback** 으로 수신되 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ // param - pg: "settle_acc.MID", // 발급받은 고객사아이디 - pay_method: "trans", - merchant_uid: "ORD20180131-0000011", - name: "노르웨이 회전 의자", - buyer_email: "gildong@gmail.com", - buyer_name: "홍길동", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - amount: 1000, - bypass: { - settle: { - addDeductionYn: "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) - criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) - custCi: "<회원 연계정보(Connecting Information)>" // 고객사가 보유한 회원 CI를 설정하면 내통장 결제에 등록한 CI와 비교하여 동일인인지 자동검증되며 일치하지 않은 경우 결제가 중단됩니다. - } - } -}, function (rsp) { // callback - // 생략 -}); -``` - -#### 주요 파라미터 설명 - -**`pg` \*****string** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + // param + pg: "settle_acc.MID", // 발급받은 고객사아이디 + pay_method: "trans", + merchant_uid: "ORD20180131-0000011", + name: "노르웨이 회전 의자", + buyer_email: "gildong@gmail.com", + buyer_name: "홍길동", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + amount: 1000, + bypass: { + settle: { + addDeductionYn: "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) + criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) + custCi: "<회원 연계정보(Connecting Information)>", // 고객사가 보유한 회원 CI를 설정하면 내통장 결제에 등록한 CI와 비교하여 동일인인지 자동검증되며 일치하지 않은 경우 결제가 중단됩니다. + }, + }, + }, + function (rsp) { + // callback + // 생략 + }, + ); + ``` -**PG사 구분코드** + ### 주요 파라미터 설명 -**``** **`settle_acc`****`.MID 형태`** 로 지정하셔야 합니다. + **`pg` \*****string** -**`pay_method`** **\*** **string** + **PG사 구분코드** -**결제수단 구분코드** + `settle_acc.MID` 형태로 지정하셔야 합니다. -**`trans`** + **`pay_method`** **\*** **string** -**`merchant_uid`** **\*** **string** + **결제수단 구분코드** -**`고객사 고유주문번호`** + **`trans`** -매번 고유하게 채번되어야 합니다. + **`merchant_uid`** **\*** **string** -**`buyer_tel`** **\*** **`string`** + **`고객사 고유주문번호`** -**구매자 연락처** + 매번 고유하게 채번되어야 합니다. -필수 파라미터 입니다. + **`buyer_tel`** **\*** **`string`** -**`amount`** **\*** **`integer`** + **구매자 연락처** -**결제금액** + 필수 파라미터 입니다. -**string** 이 아닌점에 유의하세요 + **`amount`** **\*** **`integer`** -**`bypass`** + **결제금액** -**optional** 로 계약이 된 경우 사용 가능합니다. + **string** 이 아닌점에 유의하세요 -``` -addDeductionYn: 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) -criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) -``` + **`bypass`** - -1. **내통장결제는 팝업 형태로 제공됩니다.** -2. **매출전표가** 제공되지 않습니다. -3. 선불충전금 ( ex: 카카오페이, 네이버페이 충전금)으로만 결제하는 경우 계좌정보(은행코드)가 제공되지 않습니다 + **optional** 로 계약이 된 경우 사용 가능합니다. - + - `addDeductionYn`: 추가공제구분 (대중교통: Y, 도서 및 공연비: C, 추가공제없음: N) + - `criPsblYn`: 현금영수증 발행가능 여부 (Y or N or "", 빈문자열은 Y로 인식) - + + 1. **내통장결제는 팝업 형태로 제공됩니다.** + 2. **매출전표가** 제공되지 않습니다. + 3. 선불충전금 ( ex: 카카오페이, 네이버페이 충전금)으로만 결제하는 경우 계좌정보(은행코드)가 제공되지 않습니다 + + - -인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "settle_acc.MID", //발급받은 고객사아이디 - pay_method: "trans", - merchant_uid: "ORD20180131-0000011", - name: "노르웨이 회전 의자", - buyer_email: "gildong@gmail.com", - buyer_name: "홍길동", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - customer_uid: "A00001-001", // 빌링키와 맵핑되는 - amount: 1000, - bypass: { - settle: { - addDeductionYn: "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) - criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "settle_acc.MID", //발급받은 고객사아이디 + pay_method: "trans", + merchant_uid: "ORD20180131-0000011", + name: "노르웨이 회전 의자", + buyer_email: "gildong@gmail.com", + buyer_name: "홍길동", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + customer_uid: "A00001-001", // 빌링키와 맵핑되는 + amount: 1000, + bypass: { + settle: { + addDeductionYn: "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) + criPsblYn: "N", // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) + }, + }, }, - }, - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` - - -- 비인증 결제를 위해서는 **정기결제 계약이 필수입니다.** -- amount 값을 0으로 설정시 빌링키만 발급이 가능합니다. - - + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` -#### 주요 파라미터 설명 + + - 비인증 결제를 위해서는 **정기결제 계약이 필수입니다.** + - amount 값을 0으로 설정시 빌링키만 발급이 가능합니다. + -**`pg` \*****string** + #### 주요 파라미터 설명 -**PG사 구분코드** + **`pg` \*****string** -**`settle_acc`****`.MID 형태`** 로 지정\\ + **PG사 구분코드** -**`customer_uid` \*****string** + **`settle_acc`****`.MID 형태`** 로 지정\\ -**빌링키** + **`customer_uid` \*****string** -등록 계좌정보와 1:1로 매칭될 빌링키를 지정합니다. + **빌링키** -**`amount` \*****Integer** + 등록 계좌정보와 1:1로 매칭될 빌링키를 지정합니다. -**결제금액** + **`amount` \*****Integer** -0원으로 입력시 빌링키만 발급되 실금액 설정시 결제와 동시에 빌링키가 발급됩니다.\\ + **결제금액** -#### 빌링키(customer_uid)로 결제 요청하기 + 0원으로 입력시 빌링키만 발급되 실금액 설정시 결제와 동시에 빌링키가 발급됩니다.\\ -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + #### 빌링키(customer\_uid)로 결제 요청하기 -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. + customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../../api/api-4/api)를 호출하시면 + 결제를 발생시킬 수 있습니다. -**추가 파라미터 안내** + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` -```json -{ - "extra": { - "addDeductionYn": "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) - "criPsblYn": "N" // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) - } -} -``` + **추가 파라미터 안내** - + ```json + { + "extra": { + "addDeductionYn": "N", // 추가공제구분 (대중교통:Y, 도서,공연비:C, 추가공제없음:N) + "criPsblYn": "N" // 현금영수증 발행가능 여부 ( Y or N or ""빈문자열은 Y로인식) + } + } + ``` + diff --git a/src/content/docs/ko/pg/payment-gateway/settle/readme.mdx b/src/content/docs/ko/pg/payment-gateway/settle/readme.mdx index 1384c6453..5a1fe6440 100644 --- a/src/content/docs/ko/pg/payment-gateway/settle/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/settle/readme.mdx @@ -3,12 +3,12 @@ title: 핵토파이낸셜 description: 핵토파이낸셜 결제 연동 방법을 안내합니다. --- +import Figure from "~/components/Figure.astro"; import Codepen from "~/components/gitbook/Codepen.astro"; import ContentRef from "~/components/gitbook/ContentRef.astro"; -import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 핵토파이낸셜 채널 설정하기 @@ -19,134 +19,134 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 2.결제 요청하기 [JavaScript SDK](../../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 -호출하여 핵토파이낸셜 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, -callback)` 호출 후 **`callback`**으로 수신되 +호출하여 핵토파이낸셜 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` +호출 후 **`callback`**으로 수신되며 모바일의 경우 **`m_redirect_url`**로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "settle.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", // 누락시 오류 발생 - buyer_addr: "서울특별시 강남구 삼성동", - company: "포트원", // 가상계좌 발급시 권고사항 - buyer_postcode: "123-456" - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** - -**`pg` \*****string** - -**PG사 구분코드** - -**`settle`** 로 지정하면 됩니다. + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "settle.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", // 누락시 오류 발생 + buyer_addr: "서울특별시 강남구 삼성동", + company: "포트원", // 가상계좌 발급시 권고사항 + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`pay_method`** **\*** **string** + **주요 파라미터 설명** -**결제수단 구분코드** + **`pg` \*****string** -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) -- phone (휴대폰소액결제) + **PG사 구분코드** -**`merchant_uid`** **\*** **string** + **`settle`** 로 지정하면 됩니다. -**`고객사 고유주문번호`** + **`pay_method`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **결제수단 구분코드** -**`buyer_tel`** **\*** **`string`** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) + - phone (휴대폰소액결제) -**구매자 연락처** + **`merchant_uid`** **\*** **string** -필수 파라미터 입니다. + **`고객사 고유주문번호`** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제금액** + **`buyer_tel`** **\*** **`string`** -**string** 이 아닌점에 유의하세요 + **구매자 연락처** -**`company`** **`string`** + 필수 파라미터 입니다. -**`회사명`** + **`amount`** **\*** **`integer`** -**가상계좌** 결제 요청인 경우 필수 파라미터 + **결제금액** - + **string** 이 아닌점에 유의하세요 - + **`company`** **`string`** - -**세틀뱅크는 비 인증 결제창을 지원하지 않습니다.** + **`회사명`** - + **가상계좌** 결제 요청인 경우 필수 파라미터 - -**API 방식으로 결제요청,예약결제를 구현할수 있습니다.** + + -**일회성 결제 요청하기** + + **세틀뱅크는 비 인증 결제창을 지원하지 않습니다.** + -REST[ **API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. + + **API 방식으로 결제요청,예약결제를 구현할수 있습니다.** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + **일회성 결제 요청하기** -**빌링키 발급 요청하기** + REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 일회성 결제를 요청합니다. 요청 시 전달된 카드는 포트원에 등록되지 않습니다. -REST [**API POST /subscribe/customers/\{customer_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ - https://api.iamport.kr/subscribe/customers/your-customer-unique-id -``` + **빌링키 발급 요청하기** - -**세틀뱅크** [**빌링키 단독 발급 API**](../../../api/api-2/api-1)**는 별도 계약 후 사용가능합니다..** + REST [**API POST /subscribe/customers/\{customer\_uid}**](../../../api/api-2/api-1)를 호출하여 빌링키 발급을 요청합니다. - + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \ + https://api.iamport.kr/subscribe/customers/your-customer-unique-id + ``` -**빌링키 발급 및 최초 결제 요청하기** + + **세틀뱅크** [**빌링키 단독 발급 API**](../../../api/api-2/api-1)**는 별도 계약 후 사용가능합니다..** + -REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. + **빌링키 발급 및 최초 결제 요청하기** -- **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. + REST [**API POST /subscribe/payments/onetime**](../../../api/api-4/api-1)을 호출하여 빌링키 발급과 최초 결제를 요청합니다. -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/onetime -``` + - **`customer_uid`** : 빌링키 등록을 위해서 지정해야 합니다. -**빌링키로 결제 요청하기** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/onetime + ``` -빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. + **빌링키로 결제 요청하기** -```sh -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + 빌링키 발급과 최초 결제가 성공하면 빌링키는 전달된 `customer_uid` 와 1:1 매칭되어 포트원에 저장됩니다. 보안상의 이유로 서버는 빌링키에 직접 접근할 수 없기 때문에 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. -**자세한 비 인증 결제 가이드는 아래 링크를 참조하세요** + ```sh + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` - + **자세한 비 인증 결제 가이드는 아래 링크를 참조하세요** - + + diff --git a/src/content/docs/ko/pg/payment-gateway/smartro-v2/api.mdx b/src/content/docs/ko/pg/payment-gateway/smartro-v2/api.mdx index 8c0e37e46..8b365d6d2 100644 --- a/src/content/docs/ko/pg/payment-gateway/smartro-v2/api.mdx +++ b/src/content/docs/ko/pg/payment-gateway/smartro-v2/api.mdx @@ -93,7 +93,7 @@ description: 스마트로 API 연동 방법을 안내합니다. - `smartro_v2`는 **`merchant_uid`** 파라미터에 특수문자 포함이 불가능합니다. - 계좌 발급 받거나 환불금액을 입금받을 수 있는 은행 목록과 코드는 - [https://api.iamport.kr/#vbank_codes](https://api.iamport.kr/#vbank_codes)에서 확인 가능합니다. + [https://api.iamport.kr/#vbank\_codes](https://api.iamport.kr/#vbank_codes)에서 확인 가능합니다. ### 에스크로 배송 정보 등록 @@ -118,8 +118,8 @@ description: 스마트로 API 연동 방법을 안내합니다. - 주의 사항 - `smartro_v2`는 배송수정시, 지번주소/도로명주소와 상세주소를 구분하여 받고있기 때문에, 발신자의 주소와 수신자의 주소 정보를 기존의 `sender.addr`와 `receiver.addr` 파라미터 대신 새로 추가된 - 파라미터 **`formed_address`**의 `address_line_1`(지번주소 또는 도로명주소)와 - `address_line_2`(상제주소)에 설정해야합니다. + 파라미터 **`formed_address`** 의 `address_line_1`(지번주소 또는 도로명주소)와 + `address_line_2`(상제주소)에 설정해야 합니다. ### 에스크로 배송 정보 수정 @@ -133,9 +133,12 @@ description: 스마트로 API 연동 방법을 안내합니다. - `logis.sent_at` - 주의 사항 - - `smartro_v2`는 배송 정보 수정시, 지번주소/도로명주소와 상세주소를 구분하여 받고있기 때문에, 발신자의 주소와 수신자의 주소 정보를 기존의 `sender.addr`와 `receiver.addr` 파라미터 대신 새로 추가된 파라미터 **`formed_address`**의 `address_line_1`(지번주소 또는 도로명주소)와 `address_line_2`(상제주소)에 설정해야합니다. + - `smartro_v2`는 배송 정보 수정시, 지번주소/도로명주소와 상세주소를 구분하여 받고 있기 때문에, + 발신자의 주소와 수신자의 주소 정보를 기존의 `sender.addr`와 `receiver.addr` 파라미터 대신 + 새로 추가된 파라미터 **`formed_address`** 의 `address_line_1`(지번주소 또는 도로명주소)와 + `address_line_2`(상세주소)에 설정해야 합니다. -### 현금영수증 발급 (아임포트 결제건) +### 현금영수증 발급 (포트원 결제건) - 요청 URL: `https://api.iamport.kr/receipts/{imp_uid}` @@ -151,7 +154,7 @@ description: 스마트로 API 연동 방법을 안내합니다. - 주의사항 - 스마트로 신모듈은 현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 - 취소해야합니다. + 취소해야 합니다. ### 현금영수증 발급 (외부 결제건) diff --git a/src/content/docs/ko/pg/payment-gateway/smartro-v2/caution.mdx b/src/content/docs/ko/pg/payment-gateway/smartro-v2/caution.mdx index 5b59bbffe..8408676b5 100644 --- a/src/content/docs/ko/pg/payment-gateway/smartro-v2/caution.mdx +++ b/src/content/docs/ko/pg/payment-gateway/smartro-v2/caution.mdx @@ -3,16 +3,19 @@ title: 연동 유의사항 description: 스마트로 연동 유의사항을 소개합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; + +import screenshot1 from "./_assets/caution/screenshot-1.png"; +import screenshot2 from "./_assets/caution/screenshot-2.png"; ## 스마트로와 사전 계약이 필요한 경우 아래 기능을 사용하시려면 스마트로에 사전 신청 후 계약이 완료되어야 합니다. -그렇지 않은 상태에서 해당 기능 이용시 결제 승인에 실패하거나, 승인에 성공하더라도 의도한 바와는 다른 응답(예: 결제창에서 에스크로 결제를 했으나 비-에스크로 결제 응답을 받음)을 얻게 될 수 있으니 주의 해주시기 바랍니다. +그렇지 않은 상태에서 해당 기능 이용시 결제 승인에 실패하거나, +승인에 성공하더라도 의도한 바와는 다른 응답 +(예: 결제창에서 에스크로 결제를 했으나 비-에스크로 결제 응답을 받음)을 얻게 될 수 있으니 주의해주시기 바랍니다. - 간편결제 사용 - 면세 / 복합과세 사용 @@ -42,17 +45,20 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ### 카카오페이 - 등록된 카드로 결제시, 반드시 직접 취소 필요 -테스트모드로 연동시에는 카카오페이 - 등록된 카드로 결제시, 결제 된 금액이 자동으로 취소되지 않으므로 반드시 아임포트 REST cancel API(`POST /payments/cancel`)로 직접 취소하셔야 합니다. +테스트모드로 연동시에는 카카오페이 - 등록된 카드로 결제 시, 결제된 금액이 자동으로 취소되지 않으므로 +반드시 포트원 REST cancel API(`POST /payments/cancel`)로 직접 취소하셔야 합니다. ## 카드 결제시 유의사항 ### 할부 개월수 리스트를 제어할 수 없음 -다른 PG사는 `display: { card_quota }` 파라미터로 구매자에게 노출 될 할부 개월수 리스트 제어가 가능하나 스마트로는 해당 기능을 지원하지 않습니다. +다른 PG사는 `display: { card_quota }` 파라미터로 구매자에게 노출될 할부개월수 리스트 제어가 가능하나 +스마트로는 해당 기능을 지원하지 않습니다. ### 무이자 할부 개월수 리스트를 제어할 수 없음 -다른 PG사는 `card: { detail }` 파라미터로 구매자에게 노출 될 무이자 할부 개월수 리스트 제어가 가능하나 스마트로는 해당 기능을 지원하지 않으며 상점 아이디에 등록 된 무이자 정보에 따라 자동 표기됩니다. +다른 PG사는 `card: { detail }` 파라미터로 구매자에게 노출될 무이자 할부개월수 리스트 제어가 가능하나 +스마트로는 해당 기능을 지원하지 않으며 상점 아이디에 등록된 무이자 정보에 따라 자동 표기됩니다. ### 다이렉트 호출시에만 고정 할부 개월수 필수 입력 @@ -60,34 +66,39 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; 마찬가지로 **고정 할부 개월수 지정시 다이렉트 호출 할 카드사 코드는 필수 입력**입니다. 즉, 둘 다 지정하거나 둘 다 지정하지 않거나 둘 중에 하나만 가능합니다. -예를 들어, 5개월 할부로 지정하고 싶은 경우 다른 PG사는 `display: { card_quota: [5] }` 또는 `card: { direct: quota: 5 }`만 지정하면 되지만 스마트로의 경우 고정 할부 개월수는 다이렉트 호출시에만 지원하기 때문에 다이렉트 호출 할 카드사 코드까지 함께 넘겨야 합니다. +예를 들어, 5개월 할부로 지정하고 싶은 경우 다른 PG사는 `display: { card_quota: [5] }` +또는 `card: { direct: quota: 5 }`만 지정하면 되지만 스마트로의 경우 +고정 할부 개월수는 다이렉트 호출시에만 지원하기 때문에 다이렉트 호출 할 카드사 코드까지 함께 넘겨야 합니다. -마찬가지로 BC카드 다이렉트 호출을 하고 싶은 경우 다른 PG사는 `card: { direct: { code: '361' } }`만 지정하면 되지만 스마트로의 경우 카드사 다이렉트 호출시 고정 할부 개월수는 필수 입력이기 때문에 할부 개월수를 함께 넘겨야 하니다. +마찬가지로 BC카드 다이렉트 호출을 하고 싶은 경우 +다른 PG사는 `card: { direct: { code: '361' } }`만 지정하면 되지만 +스마트로의 경우 카드사 다이렉트 호출시 고정 할부 개월수는 필수 입력이기 때문에 할부 개월수를 함께 넘겨야 하니다.
-

파라미터 예제 코드

- -```javascript -// 예. BC카드 5개월 할부 -...중략 -pg: 'smartro_v2', -pay_method: 'card', -card: { - direct: { - // 다이렉트 호출 할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 - code: '361' // BC카드 - quota: 5, // 5개월 할부 +

파라미터 예제 코드

+ + ```json + // 예. BC카드 5개월 할부 + { + "pg": "smartro_v2", + "pay_method": "card", + "card": { + "direct": { + // 다이렉트 호출할 카드사 코드와 고정 할부개월수를 모두 지정해야 함 + "code": "361", // BC카드 + "quota": 5 // 5개월 할부 + } + } } -} - -// 예. 결제창에서 카드사와 할부 개월수 선택 -...중략 -pg: 'smartro_v2', -pay_method: 'card' -// 다이렉트 호출 할 카드사와 고정 할부 개월수 모두 지정하지 않아야 함 -``` + // 예. 결제창에서 카드사와 할부개월수 선택 + { + "pg": "smartro_v2", + "pay_method": "card", + } + // 다이렉트 호출할 카드사와 고정 할부개월수 모두 지정하지 않아야 함 + ```
### 카드사 포인트 사용 여부 파라미터 제어 불가능 @@ -97,25 +108,29 @@ pay_method: 'card' ### 전북카드와 카카오뱅크 카드 다이렉트 호출은 윈도우 OS에서만 가능 -스마트로의 경우 전북 카드(`code: "372"`)와 카카오뱅크 카드(`code: "090"`) 다이렉트 호출은 윈도우 OS에서만 가능하기 때문에 맥 OS에서는 사용이 불가능합니다. +스마트로의 경우 전북 카드(`code: "372"`)와 카카오뱅크 카드(`code: "090"`) 다이렉트 호출은 +윈도우 OS에서만 가능하기 때문에 맥 OS에서는 사용이 불가능합니다. -## 간편 결제시 유의사항 +## 간편 결제 시 유의사항 ### 구매자 식별값 `customer_id`는 필수 입력 스마트로는 **간편결제시 구매자를 식별할 수 있는 고유 번호인 `customer_id`를 필수**로 입력 받고 있으며, 입력 길이는 **20자로 제한**됩니다. -이는 빌링키 발급시에도 마찬가지입니다. +이는 빌링키 발급 시에도 마찬가지입니다. ### 네이버페이는 카드 결제만 가능 스마트로를 통한 네이버페이 결제 시 등록된 카드로만 결제가 가능하고 네이버페이 포인트/머니 결제는 불가능합니다. -단, 카드 결제창에서 네이버페이를 선택한 경우에는 네이버페이 포인트/머니 결제 또는 네이버페이 카드 결제 둘 중 하나를 선택할 수 있으니 네이버페이 포인트/머니로 결제를 원하시면 카드 결제창 내에서 네이버페이를 선택하여 결제해주시기 바랍니다. +단, 카드 결제창에서 네이버페이를 선택한 경우에는 네이버페이 포인트/머니 결제 또는 +네이버페이 카드 결제 둘 중 하나를 선택할 수 있으니 네이버페이 포인트/머니로 결제를 원하시면 +카드 결제창 내에서 네이버페이를 선택하여 결제해주시기 바랍니다. ## 가상계좌 결제시 유의사항 ### `vbank_due` 파라미터는 필수 입력 -스마트로의 경우 **가상계좌 발급시 입금 기한을 의미하는 `vbank_due` 파라미터가 필수**로 요구되며 `YYYYMMDD` 형식의 유효한 날짜(시각은 무조건 `23:59:59`로 설정 됨)만 허용됩니다. +스마트로의 경우 **가상계좌 발급시 입금 기한을 의미하는 `vbank_due` 파라미터가 필수**로 요구되며 +`YYYYMMDD` 형식의 유효한 날짜(시각은 무조건 `23:59:59`로 설정 됨)만 허용됩니다. `vbank_due` 파라미터를 전달하지 않거나, 유효하지 않은 날짜를 입력하면 결제창이 호출되지 않습니다. @@ -124,7 +139,8 @@ pay_method: 'card' 구매자는 가상계좌나 계좌이체와 같은 현금성 결제시 결제창에서 현금영수증 정보(현금영수증 발급 유형, 현금영수증 발행 식별 번호)를 선택할 수 있습니다. 스마트로의 경우 현금영수증 정보를 파라미터로 받고 있으며, 파라미터로 전달시 결제창에 자동 입력됩니다. -단, 가상계좌 결제시에는 스마트로 정책상 다이렉트 호출시에만 현금영수증 정보를 파라미터로 전달할 수 있는데 V1에서는 가상계좌 다이렉트 호출을 지원하지 않기 때문에 **가상계좌 결제시에는 현금영수증 정보를 파라미터로 전달할 수 없**으니 참고 바랍니다. +단, 가상계좌 결제 시에는 스마트로 정책상 다이렉트 호출시에만 현금영수증 정보를 파라미터로 전달할 수 있는데 +V1에서는 가상계좌 다이렉트 호출을 지원하지 않기 때문에 **가상계좌 결제시에는 현금영수증 정보를 파라미터로 전달할 수 없**으니 참고 바랍니다. ## 휴대폰 소액결제시 유의사항 @@ -136,15 +152,13 @@ pay_method: 'card' ### `digital` 파라미터가 올바르지 않은 경우 결제 불가 스마트로 상점 아이디 설정에 따라 올바른 `digital` 파라미터 값이 정해져 있습니다. -만약 해당 상점 아이디 설정이 디지털 컨텐츠 판매용인 경우, `digital` 파라미터를 `true`로 보내야 하는데 보내지 않거나 `false`로 보내는 경우엔 아래와 같은 팝업이 노출되며 결제를 더이상 진행할 수 없습니다. +만약 해당 상점 아이디 설정이 디지털 컨텐츠 판매용인 경우, `digital` 파라미터를 `true`로 보내야 하는데 +이를 보내지 않거나 `false`로 보내는 경우엔 아래와 같은 팝업이 노출되며 결제를 더 이상 진행할 수 없습니다.
-

고객사 설정 정보와 다른 `digital` 파라미터가 입력 된 경우

- -import screenshot1 from "./_assets/caution/screenshot-1.png"; - -
+

고객사 설정 정보와 다른 `digital` 파라미터가 입력 된 경우

+
## 빌링키 발급시 유의사항 @@ -155,127 +169,128 @@ import screenshot1 from "./_assets/caution/screenshot-1.png"; ### 구매자 식별값 `customer_id`는 필수 입력 -스마트로는 **빌링키 발급시 구매자를 식별할 수 있는 고유 번호인 `customer_id`를 필수**로 입력 받고 있으며, 입력 길이는 **20자로 제한**됩니다. -이는 간편결제시에도 마찬가지입니다. +스마트로는 **빌링키 발급시 구매자를 식별할 수 있는 고유 번호인 `customer_id`를 필수**로 입력 받고 있으며, +입력 길이는 **20자로 제한**됩니다. 이는 간편결제 시에도 마찬가지입니다. ### 본인인증 프로세스 존재 스마트로는 다른 PG사와는 다르게 **빌링키 발급시 휴대폰 본인인증 프로세스가 존재**합니다. -단, 한 번 인증 받은 "구매자"는 다시 인증 받을 필요가 없는데 이 "구매자"를 식별하기 위해 위에 언급 한 `customer_id`가 사용되고 있습니다. +단, 한 번 인증 받은 "구매자"는 다시 인증 받을 필요가 없는데 이 "구매자"를 식별하기 위해 위에 언급한 `customer_id`가 사용되고 있습니다. -즉, 기존에 빌링키 발급시 사용한 `customer_id`를 재사용하면 휴대폰 본인인증 프로세스가 생략되지만, 새로운 `customer_id`로 빌링키 발급을 시도하면 휴대폰 본인인증 후 빌링키 발급이 진행됩니다. +즉, 기존에 빌링키 발급 시 사용한 `customer_id`를 재사용하면 휴대폰 본인인증 프로세스가 생략되지만, +새로운 `customer_id`로 빌링키 발급을 시도하면 휴대폰 본인인증 후 빌링키 발급이 진행됩니다. -| customer_id | customer_uid | 카드사 | 빌링키 발급 프로세스 | -| ----------- | ------------ | -------- | ----------------------------------------------------------------------------------------------------------------------- | -| cid_A | cuid_A | 현대카드 | 본인인증
→ 현대카드로 빌링키 발급 | -| | cuid_B | 우리카드 | 이미 본인인증을 완료 한 customer_id이므로 본인인증 생략
→ 우리카드로 빌링키 발급 | -| | cuid_A | 신한카드 | 이미 본인인증을 완료 한 customer_id이므로 본인인증 생략
→ cuid_A에 신한카드가 override / cuid_B는 여전히 우리카드 | -| cid_B | cuid_C | 삼성카드 | 새로운 customer_id이므로 본인인증
→ 삼성카드로 빌링키 발급 | +|customer\_id|customer\_uid|카드사 |빌링키 발급 프로세스 | +|------------|-------------|--------|---------------------------------------------------------------------------------------------------------------------------| +|cid\_A |cuid\_A |현대카드|본인인증
→ 현대카드로 빌링키 발급 | +| |cuid\_B |우리카드|이미 본인인증을 완료 한 customer\_id이므로 본인인증 생략
→ 우리카드로 빌링키 발급 | +| |cuid\_A |신한카드|이미 본인인증을 완료 한 customer\_id이므로 본인인증 생략
→ cuid\_A에 신한카드가 override / cuid\_B는 여전히 우리카드| +|cid\_B |cuid\_C |삼성카드|새로운 customer\_id이므로 본인인증
→ 삼성카드로 빌링키 발급 | ## 에스크로 결제시 유의사항 ### 에스크로 결제시 카드사/가상계좌 은행 다이렉트 호출 불가능 -스마트로는 에스크로 결제시 카드사 다이렉트 호출 및 가상계좌 은행 다이렉트 호출(V2만 사용 가능)이 불가능합니다. 만약 에스크로 결제시 아래와 같이 다이렉트 호출을 할 경우 결제창이 호출되지 않으니 유의하시기 바랍니다. +스마트로는 에스크로 결제 시 카드사 다이렉트 호출 및 가상계좌 은행 다이렉트 호출(V2만 사용 가능)이 불가능합니다. +만약 에스크로 결제 시 아래와 같이 다이렉트 호출을 할 경우 결제창이 호출되지 않으니 유의하시기 바랍니다.

V1 에스크로 + 카드사 다이렉트 호출

-```jsx {5-11} -IMP.request_pay({ - pg: "smartro_v2", - pay_method: "card", - amount: 50000, - escrow: true, // 에스크로 결제 - card: { - direct: { - code: "361", // 카드사 다이렉트 호출 - quota: 5, + ```tsx {5-11} + IMP.request_pay({ + pg: "smartro_v2", + pay_method: "card", + amount: 50000, + escrow: true, // 에스크로 결제 + card: { + direct: { + code: "361", // 카드사 다이렉트 호출 + quota: 5, + }, }, - }, -}); -``` - + }); + ```
+
-

V2 에스크로 + 카드사 다이렉트 호출

- -```jsx {5-13} -PortOne.requestPayment({ - pgProvider: "SMARTRO_V2", - payMethod: "CARD", - totalAmount: 50000, - isEscrow: true, // 에스크로 결제 - card: { - cardCompany: "BC_CARD", // 카드사 다이렉트 호출 - installment: { - monthOption: { - fixedMonth: 5, +

V2 에스크로 + 카드사 다이렉트 호출

+ + ```tsx {5-13} + PortOne.requestPayment({ + pgProvider: "SMARTRO_V2", + payMethod: "CARD", + totalAmount: 50000, + isEscrow: true, // 에스크로 결제 + card: { + cardCompany: "BC_CARD", // 카드사 다이렉트 호출 + installment: { + monthOption: { + fixedMonth: 5, + }, }, }, - }, -}); -``` - + }); + ```
-
-

V2 에스크로 + 가상계좌 다이렉트 호출

- -```jsx {5-8} -PortOne.requestPayment({ - pgProvider: "SMARTRO_V2", - payMethod: "VIRTUAL_ACCOUNT", - totalAmount: 50000, - isEscrow: true, // 에스크로 결제 - virtualAccount: { - bankCode: "SHINHAN_BANK", // 은행 다이렉트 호출 - }, -}); -``` +
+

V2 에스크로 + 가상계좌 다이렉트 호출

+ + ```tsx {5-8} + PortOne.requestPayment({ + pgProvider: "SMARTRO_V2", + payMethod: "VIRTUAL_ACCOUNT", + totalAmount: 50000, + isEscrow: true, // 에스크로 결제 + virtualAccount: { + bankCode: "SHINHAN_BANK", // 은행 다이렉트 호출 + }, + }); + ```
-### 에스크로 + 계좌이체 결제시 현금영수증 자동 입력 불가능 +### 에스크로 + 계좌이체 결제 시 현금영수증 자동 입력 불가능 -스마트로는 계좌이체 결제시 결제창에 자동 입력 될 현금영수증 정보(`cashReceiptType`: 현금영수증 유형, `customerIdentifier`: 현금영수증 식별 값)를 파라미터로 전달할 수 있습니다. -단, 에스크로 결제시에는 전달이 불가능합니다. 만약 에스크로 + 계좌이체 결제시 아래와 같이 현금영수증 정보를 전달할 경우 결제창이 호출되지 않으니 유의하시기 바랍니다. +스마트로는 계좌이체 결제 시 결제창에 자동으로 입력될 현금영수증 정보(`cashReceiptType`: 현금영수증 유형, +`customerIdentifier`: 현금영수증 식별 값)를 파라미터로 전달할 수 있습니다. +단, 에스크로 결제 시에는 전달이 불가능합니다. 만약 에스크로 + 계좌이체 결제시 아래와 같이 +현금영수증 정보를 전달할 경우 결제창이 호출되지 않으니 유의하시기 바랍니다.
-

V1 에스크로 + 계좌이체 + 현금영수증 정보 전달

- -```jsx {4-10} -IMP.request_pay({ - pg: "smartro_v2", - amount: 50000, - pay_method: "trans", // 계좌이체 결제 - escrow: true, // 에스크로 결제 - bypass: { - // 현금영수증 정보 전달 - cashReceiptType: "company", - customerIdentiifer: "1178178260", - }, -}); -``` - +

V1 에스크로 + 계좌이체 + 현금영수증 정보 전달

+ + ```tsx {4-10} + IMP.request_pay({ + pg: "smartro_v2", + amount: 50000, + pay_method: "trans", // 계좌이체 결제 + escrow: true, // 에스크로 결제 + bypass: { + // 현금영수증 정보 전달 + cashReceiptType: "company", + customerIdentiifer: "1178178260", + }, + }); + ```
-

V2 에스크로 + 계좌이체 + 현금영수증 정보 전달

- -```jsx {4-10} -PortOne.requestPayment({ - pgProvider: "SMARTRO_V2", - totalAmount: 50000, - payMethod: "TRANSFER", // 계좌이체 결제 - isEscrow: true, // 에스크로 결제 - transfer: { - // 현금영수증 정보 전달 - cashReceiptType: "company", - customerIdentiifer: "1178178260", - }, -}); -``` - +

V2 에스크로 + 계좌이체 + 현금영수증 정보 전달

+ + ```tsx {4-10} + PortOne.requestPayment({ + pgProvider: "SMARTRO_V2", + totalAmount: 50000, + payMethod: "TRANSFER", // 계좌이체 결제 + isEscrow: true, // 에스크로 결제 + transfer: { + // 현금영수증 정보 전달 + cashReceiptType: "company", + customerIdentiifer: "1178178260", + }, + }); + ```
## 기타 유의사항 @@ -283,7 +298,8 @@ PortOne.requestPayment({ ### 주문 번호에 특수문자 입력 불가능 스마트로는 주문 번호(`merchant_uid`)에 특수문자를 허용하고 있지 않습니다. -따라서 결제창에서 일반결제를 할때와 발급 된 빌링키로 API를 통해 재결제를 하는 경우 숫자, 문자(알파벳 소문자와 대문자) 또는 그 조합으로 이루어진 주문 번호를 사용해주세요. +따라서 결제창에서 일반결제를 할 때와 발급된 빌링키로 API를 통해 재결제를 하는 경우 +숫자, 문자(알파벳 소문자와 대문자) 또는 그 조합으로 이루어진 주문 번호를 사용해주세요. ### 주문 번호 40자 길이 제한 @@ -295,57 +311,62 @@ PortOne.requestPayment({ 스마트로는 상점 아이디 설정에 따라 사용 가능한 통화가 자동으로 정해지는 방식입니다. 따라서 다른 PG사와는 달리 currency 파라미터로 결제 통화를 설정할 수 없습니다. -단, 스마트로가 지원하지 않는 화폐(KRW와 USD를 제외 한 값)를 전달할 경우 `"스마트로가 지원하지 않는 화폐입니다"`라는 에러가 발생하며 결제를 진행할 수 없으니 유의 바랍니다. +단, 스마트로가 지원하지 않는 화폐(KRW와 USD를 제외한 값)를 전달할 경우 +`"스마트로가 지원하지 않는 화폐입니다"`라는 에러가 발생하며 결제를 진행할 수 없으니 유의 바랍니다. 또한 스마트로 이슈로 인해 당분간 **USD 결제는 불가능하며 KRW 결제만 가능**하니 참고 바랍니다. ### 제공 기간은 시작 날짜와 종료 날짜를 모두 입력해야 함 스마트로는 결제창 내 서비스 제공 기간을 노출시킬 수 있도록 period 파라미터를 optional로 제공하고 있습니다. -단, 시작 날짜(`from`)와 종료 날짜(`to`)를 모두 입력해야 결제창에 정상적으로 노출되며 **둘 중 하나만 입력하거나 유효(`YYYMMDD`)하지 않은 날짜 형식을 입력하면 결제창에 노출되지 않**습니다. +단, 시작 날짜(`from`)와 종료 날짜(`to`)를 모두 입력해야 결제창에 정상적으로 노출되며 +**둘 중 하나만 입력하거나 유효(`YYYMMDD`)하지 않은 날짜 형식을 입력하면 결제창에 노출되지 않**습니다.
-

파라미터 예시

- -```tsx - pg: 'smartro_v2', - period: { - // 서비스 제공 시작 날짜와 종료 날짜를 모두 입력해야 함 - from: '2023-01-01', // 서비스 제공 시작 날짜 - to: '2023-03-31' // 서비스 제공 종료 날짜 +

파라미터 예시

+ + ```json + { + "pg": "smartro_v2", + "period": { + // 서비스 제공 시작 날짜와 종료 날짜를 모두 입력해야 함 + "from": "2023-01-01", // 서비스 제공 시작 날짜 + "to": "2023-03-31" // 서비스 제공 종료 날짜 + } } -``` - -import screenshot2 from "./_assets/caution/screenshot-2.png"; - -
+ ``` +
-### 현금성 결제시 `cashReceiptType`값에 따라 `customerIdentifier` 입력 정책이 달라짐 +### 현금성 결제 시 `cashReceiptType` 값에 따라 `customerIdentifier` 입력 정책이 달라짐 -스마트로의 경우 현금성 결제시, bypass 파라미터에 현금영수증 발급 정보를 아래와 같이 전달할 수 있습니다. +스마트로의 경우 현금성 결제 시, bypass 파라미터에 현금영수증 발급 정보를 아래와 같이 전달할 수 있습니다. -단, 가상계좌 결제시에는 스마트로 정책상 다이렉트 호출시에만 현금영수증 정보를 파라미터로 전달할 수 있는데 V1에서는 가상계좌 다이렉트 호출을 지원하지 않기 때문에 **가상계좌 결제시에는 현금영수증 정보를 파라미터로 전달할 수 없**으니 참고 바랍니다. - + 단, 가상계좌 결제 시에는 스마트로 정책상 다이렉트 호출 시에만 현금영수증 정보를 파라미터로 전달할 수 있는데 + V1에서는 가상계좌 다이렉트 호출을 지원하지 않기 때문에 + **가상계좌 결제시에는 현금영수증 정보를 파라미터로 전달할 수 없**으니 참고 바랍니다. -```tsx -...중략 -bypass: { - cashReceiptType: 'corporate', // 현금영수증 발급 유형 - customerIdentifier: '1178178260' // 현금영수증 발행 대상 식별 정보 +```json +{ + "bypass": { + "cashReceiptType": "corporate", // 현금영수증 발급 유형 + "customerIdentifier": "1178178260" // 현금영수증 발행 대상 식별 정보 + } } ``` 이때 전달하는 `cashReceiptType` 파라미터 값에 따라 `customerIdentifier` 파라미터 입력 정책이 아래와 같이 달라지기 때문에 주의가 요구됩니다. -| cashReceiptType | customerIdentifier | -| --------------- | ----------------------------------------------------------------------- | -| 미입력 | 입력 불가(결제창에서 입력) | -| anonymous | 입력 불가(결제창에서도 입력 불가) | -| personal | 핸드폰 번호, 주민등록번호, 국세청 현금영수증 카드 번호 중 1개 필수 입력 | -| corporate | 사업자 등록번호 필수 입력 | +|cashReceiptType|customerIdentifier | +|---------------|-----------------------------------------------------------------------| +|미입력 |입력 불가(결제창에서 입력) | +|anonymous |입력 불가(결제창에서도 입력 불가) | +|personal |핸드폰 번호, 주민등록번호, 국세청 현금영수증 카드 번호 중 1개 필수 입력| +|corporate |사업자 등록번호 필수 입력 | -만약 `cashReceiptType: "anonymous"` 또는 입력하지 않은 상태로 `customerIdentifier`를 입력하거나 `cashReceiptType`이 `"personal"` 또는 `"corporate"`인데 `customerIdentifier`를 입력하지 않으면 에러가 리턴되면서 결제창이 호출되지 않습니다. +만약 `cashReceiptType: "anonymous"` 또는 입력하지 않은 상태로 `customerIdentifier`를 입력하거나 +`cashReceiptType`이 `"personal"` 또는 `"corporate"`인데 `customerIdentifier`를 입력하지 않으면 +에러가 리턴되면서 결제창이 호출되지 않습니다. diff --git a/src/content/docs/ko/pg/payment-gateway/smartro-v2/readme.mdx b/src/content/docs/ko/pg/payment-gateway/smartro-v2/readme.mdx index 9c81f66d8..5c4a53bec 100644 --- a/src/content/docs/ko/pg/payment-gateway/smartro-v2/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/smartro-v2/readme.mdx @@ -3,14 +3,14 @@ title: 스마트로(신모듈) description: 스마트로 연동 방법을 안내합니다. --- -import * as prose from "~/components/prose"; import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; +import * as prose from "~/components/prose"; export const components = prose; import Figure from "~/components/Figure.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## 1. 스마트로 채널 설정하기 @@ -37,193 +37,194 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; [JavaScript SDK](../../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 스마트로 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: 'smartro_v2.{상점 ID}', - pay_method: 'card', - merchant_uid: "orderNo0001", // 상점에서 생성한 고유 주문번호 주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 - name: '주문명:결제테스트', - amount: 1004, - buyer_email: 'test@portone.io', - buyer_name: '구매자이름', - buyer_tel: '010-1234-5678', - buyer_addr: '서울특별시 강남구 삼성동', - buyer_postcode: '123-456', - m_redirect_url: '{모바일에서 결제 완료 후 리디렉션 될 URL}', - period: { - from: "20230512", //YYYYMMDD - to: "20230515", //YYYYMMDD - }, -}, function(rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -
-

주요 파라미터 설명

- -**`pg` \*****string** - -**PG사 구분코드** - -`smartro_v2` 로 지정하면 됩니다. - -**`pay_method`** **\*** **string** - -**결제수단 구분코드** - -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) -- phone (휴대폰소액결제) -- lpay (LPAY) -- kakaopay (카카오페이) -- naverpay (네이버페이) -- payco (페이코) -- pinpay (핀페이) + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "smartro_v2.{상점 ID}", + pay_method: "card", + merchant_uid: "orderNo0001", // 상점에서 생성한 고유 주문번호 주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + period: { + from: "20230512", //YYYYMMDD + to: "20230515", //YYYYMMDD + }, + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`merchant_uid`** **\*** **string** +
+

주요 파라미터 설명

+ + **`pg` \*****string** + + **PG사 구분코드** + + `smartro_v2` 로 지정하면 됩니다. + + **`pay_method`** **\*** **string** + + **결제수단 구분코드** + + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) + - phone (휴대폰소액결제) + - lpay (LPAY) + - kakaopay (카카오페이) + - naverpay (네이버페이) + - payco (페이코) + - pinpay (핀페이) -**주문번호** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. -주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 + **주문번호** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. + 주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 -**결제금액** + **`amount`** **\*** **`integer`** -**string** 이 아닌점에 유의하세요 + **결제금액** -소수점 두번째 자리까지 허용합니다. + **string** 이 아닌점에 유의하세요 -**`buyer_tel`** **\*** **string** + 소수점 두번째 자리까지 허용합니다. -**구매자 전화번호** + **`buyer_tel`** **\*** **string** -주의: 스마트로 일반 결제시 필수 입력 + **구매자 전화번호** -**`vbank_due`** **\*** **string** + 주의: 스마트로 일반 결제시 필수 입력 -**가상계좌 입금기한 (YYYY-MM-DD)** + **`vbank_due`** **\*** **string** -스마트로의 경우 필수 입력이며 날짜는 무조건 23:59:59로 설정 됨 + **가상계좌 입금기한 (YYYY-MM-DD)** -**`escrow`** **\*** **boolean** + 스마트로의 경우 필수 입력이며 날짜는 무조건 23:59:59로 설정 됨 -**에스크로 결제 여부** + **`escrow`** **\*** **boolean** -**`period`** **\*** **array** + **에스크로 결제 여부** -**서비스 제공 기간** + **`period`** **\*** **array** -날짜만 입력이 가능하며(시간은 무시) 시작 날짜와 종료 날짜를 모두 입력해야 합니다. + **서비스 제공 기간** -**`from`** **`: YYYYMMDD`** + 날짜만 입력이 가능하며(시간은 무시) 시작 날짜와 종료 날짜를 모두 입력해야 합니다. -**`to`** **`: YYYYMMDD`** + **`from`** **`: YYYYMMDD`** -
+ **`to`** **`: YYYYMMDD`** +
-
-

- 결제 가능 결제수단 -

+
+

+ 결제 가능 결제수단 +

-- card + 에스크로, 다이렉트 -- vbank + 에스크로 -- trans + 에스크로 -- phone -- lpay -- naverpay -- kakaopay -- pinpay -- payco + - card + 에스크로, 다이렉트 + - vbank + 에스크로 + - trans + 에스크로 + - phone + - lpay + - naverpay + - kakaopay + - pinpay + - payco +
+ -
- -
- - - 인증결제창 호출 파라미터에서 **customer\_uid**, **customer\_id**값을 추가하면 비 인증 결제창을 호출할 수 있습니다. - 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. - ```javascript title="Javascript SDK" - IMP.request_pay({ - pg: "smartro_v2.{MID}", - pay_method: "card", // 'card'만 지원됩니다. - merchant_uid: "orderMonthly0001", // 상점에서 관리하는 주문 번호 주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 - name: "최초인증결제", - amount: 1000, // 실제 승인은 발생되지 않고 오직 빌링키만 발급됩니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - customer_id: "matthew", //고객사가 회원에게 부여한 고유 ID로 필수 입력. - }, function (rsp) { - // callback 로직 - }); - ``` + + 인증결제창 호출 파라미터에서 **customer\_uid**, **customer\_id**값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + 비 인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. -
-

주요 파라미터 설명

+ ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "smartro_v2.{MID}", + pay_method: "card", // 'card'만 지원됩니다. + merchant_uid: "orderMonthly0001", // 상점에서 관리하는 주문 번호 주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 + name: "최초인증결제", + amount: 1000, // 실제 승인은 발생되지 않고 오직 빌링키만 발급됩니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + customer_id: "matthew", //고객사가 회원에게 부여한 고유 ID로 필수 입력. + }, + function (rsp) { + // callback 로직 + }, + ); + ``` -**`pg` \*****string** +
+

주요 파라미터 설명

-**PG사 구분코드** + **`pg` \*****string** -`smartro_v2` 로 지정하면 됩니다. + **PG사 구분코드** -**`pay_method`** **\*** **string** + `smartro_v2` 로 지정하면 됩니다. -**결제수단 구분코드** + **`pay_method`** **\*** **string** -- card (신용카드) + **결제수단 구분코드** -**`merchant_uid`** **\*** **string** + - card (신용카드) -**주문번호** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **주문번호** -주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 + 매번 고유하게 채번되어야 합니다. -**`customer_uid`** **\*** **string** + 주의: 스마트로 일반결제시 주문 번호에 특수문자 사용 불가 -**`빌링키 발급을 위한 결제 수단을 특정하는 고유 번호`** + **`customer_uid`** **\*** **string** -빌링키 발급시 필수 입력 + **`빌링키 발급을 위한 결제 수단을 특정하는 고유 번호`** -**`customer_id`** **\*** **string** + 빌링키 발급시 필수 입력 -**`구매자 식별자`** + **`customer_id`** **\*** **string** -주의: 스마트로 빌링키 발급시 필수 입력으로 입력 길이는 **20자**로 제한됩니다. + **`구매자 식별자`** -**`m_redirect_url`** **\*** **string** + 주의: 스마트로 빌링키 발급시 필수 입력으로 입력 길이는 **20자**로 제한됩니다. -**`리다이렉트 URL`** + **`m_redirect_url`** **\*** **string** -리디렉션 방식으로 진행할 경우, 트랜잭션 종료 이후 302 리디렉션 될 고객사 URL + **`리다이렉트 URL`** -스마트로의 경우 모바일 환경에서 **리디렉션 방식으로 빌링키 발급창이 렌더링 되기 때문에 필수입력입니다.** - -
- - + 리디렉션 방식으로 진행할 경우, 트랜잭션 종료 이후 302 리디렉션 될 고객사 URL + 스마트로의 경우 모바일 환경에서 **리디렉션 방식으로 빌링키 발급창이 렌더링 되기 때문에 필수입력입니다.** +
+
-

- 가능한 결제 환경 -

- -- PC (iframe) -- 모바일 (리디렉션) +

+ 가능한 결제 환경 +

+ - PC (iframe) + - 모바일 (리디렉션)
diff --git a/src/content/docs/ko/pg/payment-gateway/smartro.mdx b/src/content/docs/ko/pg/payment-gateway/smartro.mdx index a02747652..2a0fbcaac 100644 --- a/src/content/docs/ko/pg/payment-gateway/smartro.mdx +++ b/src/content/docs/ko/pg/payment-gateway/smartro.mdx @@ -4,16 +4,15 @@ description: 스마트로 연동 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; -**스마트로(구모듈) 연동 방법에 관한 매뉴얼**입니다. - -신규 연동 고객사이시거나 스마트로 신모듈로의 업그레이드를 원하신다면 [스마트로(신모듈) 연동 가이드](./smartro-v2/readme)를 참고하여 진행해주세요. -구모듈에 비해 신모듈에서 다양한 기능 및 결제수단을 지원하고 있습니다. 신규 고객사의 경우 가급적 신모듈로 연동하는 것을 권장드립니다. + **스마트로(구모듈) 연동 방법에 관한 매뉴얼**입니다. + 신규 연동 고객사이시거나 스마트로 신모듈로의 업그레이드를 원하신다면 [스마트로(신모듈) 연동 가이드](./smartro-v2/readme)를 참고하여 진행해주세요. + 구모듈에 비해 신모듈에서 다양한 기능 및 결제수단을 지원하고 있습니다. 신규 고객사의 경우 가급적 신모듈로 연동하는 것을 권장드립니다. ## 1. 스마트로 채널 설정하기 @@ -27,55 +26,58 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; [JavaScript SDK](../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 스마트로 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback**으로 수신되고 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "smartro.{상점 ID}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}" -}, function(rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "smartro.{상점 ID}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`pg` \*****string** + **주요 파라미터 설명** -**PG사 구분코드** + **`pg` \*****string** -**`smartro`** 로 지정하면 됩니다. + **PG사 구분코드** -**`pay_method`** **\*** **string** + **`smartro`** 로 지정하면 됩니다. -**결제수단 구분코드** + **`pay_method`** **\*** **string** -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) + **결제수단 구분코드** -**`merchant_uid`** **\*** **string** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) -**`고객사 주문번호`** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **`고객사 주문번호`** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제금액** + **`amount`** **\*** **`integer`** -**string** 이 아닌점에 유의하세요 + **결제금액** - + **string** 이 아닌점에 유의하세요 + diff --git a/src/content/docs/ko/pg/payment-gateway/spb.mdx b/src/content/docs/ko/pg/payment-gateway/spb.mdx index 38f0880a6..c3cf04a9a 100644 --- a/src/content/docs/ko/pg/payment-gateway/spb.mdx +++ b/src/content/docs/ko/pg/payment-gateway/spb.mdx @@ -3,8 +3,8 @@ title: 페이팔(Smart Payment Buttons) 일반결제 description: 페이팔(Smart Payment Buttons) 일반결제 연동 방법을 안내합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; +import Details from "~/components/gitbook/Details.astro"; import Hint from "~/components/Hint.astro"; @@ -27,24 +27,26 @@ import Hint from "~/components/Hint.astro"; - `imp_uid` - `merchant_uid` - 해당 SDK를 사용하실때는 IMP.request\_pay로부터 응답된 객체(또는 쿼리 파라미터)에서 imp\_uid를 가지고 **포트원 REST API(GET /payments/imp\_uid)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 응답 파라미터 중 status(결제 상태)파라미터에 따라 추가 로직을 구현해야 합니다. + 해당 SDK를 사용하실때는 IMP.request\_pay로부터 응답된 객체(또는 쿼리 파라미터)에서 imp\_uid를 가지고 + **포트원 REST API(GET /payments/imp\_uid)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 + 응답 파라미터 중 status(결제 상태) 파라미터에 따라 추가 로직을 구현해야 합니다. ## 페이팔 일반결제 버튼 렌더링 -페이팔 일반결제는 고객사 체크아웃 페이지에 페이팔 일반결제 버튼(아래 이미지 참고)을 렌더링 한 후, 이 일반결제 버튼을 클릭해 페이팔 결제창을 호출하는 방식입니다. +페이팔 일반결제는 고객사 체크아웃 페이지에 페이팔 일반결제 버튼(아래 이미지 참고)을 렌더링 한 후, +이 일반결제 버튼을 클릭해 페이팔 결제창을 호출하는 방식입니다.
-
+ +
-따라서 다른 PG사와 결제 플로우가 상이하기 때문에 고객사는 **체크아웃 페이지가 렌더링 되는 시점에** `IMP.request_pay` 함수 대신 **`IMP.loadUI`라는 별도의 함수를 호출해 페이팔 일반결제 버튼을 렌더링 해야**합니다. +따라서 다른 PG사와 결제 플로우가 상이하기 때문에 고객사는 **체크아웃 페이지가 렌더링 되는 시점에** +`IMP.request_pay` 함수 대신 **`IMP.loadUI`라는 별도의 함수를 호출해 페이팔 일반결제 버튼을 렌더링 해야**합니다. -
+
```html 웰컴페이먼츠 제공 기간 주기가 올바르지 않습니다. 1m 또는 1y만 허용됩니다. -``` +

파라미터 예제 코드

+ ```json + // 옵션1. interval을 1m로 설정 + { + "period": { "interval": "1m" } + } + + // 옵션2. interval을 1y로 설정 + { + "period": { "interval": "1y" } + } + + // 옵션 3. interval을 1d로 설정 + { + "period": { "interval": "1d" } + } + -> 웰컴페이먼츠 제공 기간 주기가 올바르지 않습니다. 1m 또는 1y만 허용됩니다. + ```
### 모바일 환경 - 휴대폰 결제시 제공 기간 파라미터(`period`)를 지원하지 않음 @@ -240,104 +219,95 @@ IOS 모바일 웹/인앱 브라우저에서 결제창 호출 후 카드사 앱 렌더링을 허용 할 통신사 리스트(`phone.detail`) 옵션과 기본 선택 될 통신사 옵션(`bypass.welcome.acceptmethod.hppdefaultcorp(통신사)`/`P_RESERVED.hpp_default_corp=통신사`)은 함께 사용할 경우 정상적으로 동작하지 않아 둘 중 하나만 사용해야 합니다.
-

파라미터 예제 코드

- -```javascript -// 옵션1. SKT와 KT만 렌더링을 허용 -> 정상 동작 -{ - ...중략 - phone: { - detail: [ - { carrier: 'SKT', enabled: true }, - { carrier: 'KTF', enabled: true } - ] - } -} - -// 옵션2. SKT를 기본 선택 -> 정상 동작 -{ - ...중략 - bypass: { - welcome: { - acceptmethod: ['hppdefaultcorp(SKT)'], - P_RESERVED: ['hpp_default_corp=SKT'] +

파라미터 예제 코드

+ + ```json + // 옵션1. SKT와 KT만 렌더링을 허용 -> 정상 동작 + { + "phone": { + "detail": [ + { "carrier": "SKT", "enabled": true }, + { "carrier": "KTF", "enabled": true } + ] } } -} - -// 옵션3. 옵션 1 + 옵션 2 -> 정상 동작하지 않음 -{ - ...중략 - phone: { - detail: [ - { carrier: 'SKT', enabled: true }, - { carrier: 'KTF', enabled: true } - ] - }, - bypass: { - welcome: { - acceptmethod: ['hppdefaultcorp(SKT)'], - P_RESERVED: ['hpp_default_corp=SKT'] + + // 옵션2. SKT를 기본 선택 -> 정상 동작 + { + "bypass": { + "welcome": { + "acceptmethod": ["hppdefaultcorp(SKT)"], + "P_RESERVED": ["hpp_default_corp=SKT"] + } } } -} -``` + // 옵션3. 옵션 1 + 옵션 2 -> 정상 동작하지 않음 + { + "phone": { + "detail": [ + { "carrier": "SKT", "enabled": true }, + { "carrier": "KTF", "enabled": true } + ] + }, + "bypass": { + "welcome": { + "acceptmethod": ["hppdefaultcorp(SKT)"], + "P_RESERVED": ["hpp_default_corp=SKT"] + } + } + } + ```
-# 일반결제 유의사항 +## 일반결제 유의사항 -## 카드 결제 +### 카드 결제 -### PC 환경에서는 할부 개월수에 일시불이 기본 포함 됨 +#### PC 환경에서는 할부 개월수에 일시불이 기본 포함 됨 웰컴페이먼츠의 경우 PC 환경에서는 일시불이 기본으로 포함되기 때문에, 할부 개월수에 0(일시불)을 넣지 않더라도 결제창에 자동으로 표기됩니다.
-

파라미터 예제 코드

- -```javascript -{ - ...중략 - pg: 'welcome', - pay_method: 'card', - display: { - card_quota: [2,3,4,5,6] // 일시불 + 2개월 ~ 6개월까지 결제창에 표기 - } -} -``` - +

파라미터 예제 코드

+ + ```json + { + "pg": "welcome", + "pay_method": "card", + "display": { + "card_quota": [2,3,4,5,6] // 일시불 + 2개월 ~ 6개월까지 결제창에 표기 + } + } + ```
-### PC 환경에서는 할부 옵션을 설정하지 않는 경우 무조건 일시불로 결제 됨 +#### PC 환경에서는 할부 옵션을 설정하지 않는 경우 무조건 일시불로 결제 됨 웰컴페이먼츠의 경우 PC 환경에서 **할부 옵션을 전달하지 않는 경우 `무조건 일시불만 표기`**되니 주의하시기 바랍니다.
-

파라미터 예제 코드

- -```javascript -// 일시불만 표기 -{ - ...중략 - pg: 'welcome', - pay_method: 'card', -} - -// 일시불 + 2개월 ~ 6개월까지 결제창에 표기 -{ - ...중략 - pg: 'welcome', - pay_method: 'card', - display: { - card_quota: [2,3,4,5,6] // 일시불 + 2개월 ~ 6개월까지 결제창에 표기 - } -} -``` +

파라미터 예제 코드

+ + ```json + // 일시불만 표기 + { + "pg": "welcome", + "pay_method": "card" + } + // 일시불 + 2개월 ~ 6개월까지 결제창에 표기 + { + "pg": "welcome", + "pay_method": "card", + "display": { + "card_quota": [2,3,4,5,6] // 일시불 + 2개월 ~ 6개월까지 결제창에 표기 + } + } + ```
-### 카드사 다이렉트 호출시 고정 할부 개월수는 필수 입력 +#### 카드사 다이렉트 호출시 고정 할부 개월수는 필수 입력 웰컴페이먼츠의 경우 **카드사 다이렉트 호출시 고정 할부 개월수는 필수 입력**입니다. 따라서 카드사 다이렉트 호출시 리스트 할부 개월수는 입력할 수 없습니다. @@ -347,32 +317,34 @@ IOS 모바일 웹/인앱 브라우저에서 결제창 호출 후 카드사 앱 할부 개월수를 함께 넘겨야 하니다.
-

파라미터 예제 코드

- -```javascript -// 예. BC카드 5개월 할부 -...중략 -pg: 'welcome', -pay_method: 'card', -card: { - direct: { - // 다이렉트 호출 할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 - code: '361' // BC카드 - quota: 5, // 5개월 할부 +

파라미터 예제 코드

+ + ```json + // 예. BC카드 5개월 할부 + { + "pg": "welcome", + "pay_method": "card", + "card": { + "direct": { + // 다이렉트 호출 할 카드사 코드와 고정 할부 개월수를 모두 지정해야 함 + "code": "361", // BC카드 + "quota": 5 // 5개월 할부 + } + } } -} -// 예. 결제창에서 카드사와 할부 개월수 선택 -...중략 -pg: 'welcome', -pay_method: 'card' -// 다이렉트 호출 할 카드사와 고정 할부 개월수 모두 지정하지 않아야 함 -``` + // 예. 결제창에서 카드사와 할부 개월수 선택 + { + "pg": "welcome", + "pay_method": "card" + } + // 다이렉트 호출 할 카드사와 고정 할부 개월수 모두 지정하지 않아야 함 + ```
-### 카드사 포인트 사용 불가 옵션 사용 불가능 +#### 카드사 포인트 사용 불가 옵션 사용 불가능 웰컴 페이먼츠에서 카드사 포인트 사용 불가 옵션(useCardPoint: false)은 지원하지 않기 때문에 카드사 포인트 사용(useCardPoint: true) 또는 기본값(=파라미터 전달하지 않음, 결제창에서 고객이 카드사 포인트 @@ -382,25 +354,25 @@ pay_method: 'card' 포인트 사용 불가 옵션은 사용할 수 없습니다.”라는 에러 메시지가 리턴되면서 결제창이 호출되지 않으니 참고 부탁드립니다. -### 카카오뱅크 카드는 일시불만 지원함 +#### 카카오뱅크 카드는 일시불만 지원함 카카오뱅크 카드로 결제시 결제 금액이 5만원 이상이라고 하더라도 할부가 불가능하기 때문에 무조건 일시불로 결제됩니다. -### ISP 계열 카드의 경우 할부 개월수에 무이자 표기 되지 않음 +#### ISP 계열 카드의 경우 할부 개월수에 무이자 표기 되지 않음 ISP 계열 카드의 경우, 결제 요청시 페이북 팝업/앱으로 넘어가는데 무이자 할부 적용 조건이 되더라도 할부 개월수 리스트에 (무) 표기가 되지 않습니다. 단, 해당 카드사, 결제 금액, 할부 개월수가 무이자 조건을 만족하는 경우 승인시 무이자가 자동 적용됩니다. -### 모바일 환경에서 고정/리스트 할부 개월수 최대 값은 36 +#### 모바일 환경에서 고정/리스트 할부 개월수 최대 값은 36 모바일 환경에서 웰컴페이먼츠 카드 결제시, 고정/리스트할부 개월수 최대 값은 36으로 37 이상의 값을 입력할 경우 결제창이 호출되지 않으니 참고하시기 바랍니다. PC 환경에서는 별도 제한이 없습니다. -## 가상계좌 발급 +### 가상계좌 발급 -### `vbank_due` 파라미터는 "분" 까지만 유효하며 시간 값은 무시 됨 +#### `vbank_due` 파라미터는 "분" 까지만 유효하며 시간 값은 무시 됨 가상계좌 발급시 입금 기한을 의미하는 `vbank_due` 파라미터는 아래 4가지 형식 중 하나로 입력이 가능합니다. @@ -412,52 +384,50 @@ PC 환경에서는 별도 제한이 없습니다. 단, 웰컴페이먼츠의 경우 전달 한 초 값은 무시되며 무조건 59초로 설정되니 유의하시기 바랍니다.
-

파라미터 예제 코드

- -```javascript -{ - ...중략 - vbank_due: '2023-01-01 12:34:56' -} -// 입금 기한이 "2023-01-01 12:34:59"로 설정 됨 -``` +

파라미터 예제 코드

+ ```json + { + "vbank_due": "2023-01-01 12:34:56" + } + // 입금 기한이 "2023-01-01 12:34:59"로 설정 됨 + ```
-## 상품권 결제 +### 상품권 결제 -### 문화 상품권(culturegift)만 지원 +#### 문화 상품권(culturegift)만 지원 웰컴페이먼츠의 경우 상품권 결제시 문화 상품권만 지원하며 북앤라이프, 컬쳐랜드, 해피머니 그리고 스마트 문상은 지원하지 않습니다. -## 간편 결제 +### 간편 결제 -### 토스페이의 경우, 할부 개월수 리스트는 전달한 값과 카드사가 제공하는 무이자 할부 개월 수의 최대값까지 표기 됨 +#### 토스페이의 경우, 할부 개월수 리스트는 전달한 값과 카드사가 제공하는 무이자 할부 개월 수의 최대값까지 표기 됨 예를 들어 할부 개월수 리스트를 3개월까지 렌더링 되도록 설정했으나, 현재 해당 카드사에서 6개월까지 무이자 할부 이벤트가 진행되고 있다면 할부 개월수는 6개월까지 표기 됩니다.
-

파라미터 예제 코드

- -```javascript -// 예) 할부 개월수를 3개월까지 렌더링 되도록 설정 -...중략 -pg: 'welcome', -pay_method: 'card', -display: { - card_quota: [2,3] -} +

파라미터 예제 코드

+ + ```json + // 예) 할부 개월수를 3개월까지 렌더링 되도록 설정 + { + "pg": "welcome", + "pay_method": "card", + "display": { + "card_quota": [2,3] + } + } -// 결과) 테스트 당시 우리카드가 6개월까지 무이자 할부 이벤트가 진행중이기 때문에 6개월까지 할부 개월수가 렌더링 됨 -``` + // 결과) 테스트 당시 우리카드가 6개월까지 무이자 할부 이벤트가 진행중이기 때문에 6개월까지 할부 개월수가 렌더링 됨 + ``` +
-### 카카오페이의 경우, 카드 정보를 제공하지 않음 +#### 카카오페이의 경우, 카드 정보를 제공하지 않음 카카오페이에 등록 된 카드로 결제시 카카오페이에서 카드 정보를 내려주지 않기 때문에 카드 정보를 확인할 수 없습니다. -
- -# 빌링키 발급 유의사항 +## 빌링키 발급 유의사항 ### 빌링키 발급 수단(`pay_method`)은 필수 입력이며 카드(`card`)만 허용 됨 @@ -467,11 +437,11 @@ display: { 금액(amount) 파라미터는 필수 입력이며, **전달 한 금액(amount)만큼 실제로 승인이 되지 않고** 단순히 빌링키 발급 창에 표기 될 용도로만 사용됩니다. -### 면세 금액(tax_free)과 부가세(vat_amount)는 지원하지 않음 +### 면세 금액(tax\_free)과 부가세(vat\_amount)는 지원하지 않음 빌링키 발급만 되고 실제 승인은 되지 않기 때문에 면세 금액과 부가세는 지원하지 않으며, 전달해도 무시됩니다. -# 빌링키 발급과 동시에 결제 유의사항 +## 빌링키 발급과 동시에 결제 유의사항 ### 빌링키 발급 및 결제 수단(`pay_method`)은 필수 입력이며 휴대폰(`phone`)만 허용 됨 @@ -481,7 +451,7 @@ display: { 금액(amount) 파라미터는 필수 입력이며, **전달 한 금액(amount)만큼 실제로 승인이 됩니다.** -### 면세 금액(tax_free)과 부가세(vat_amount)는 지원하지 않음 +### 면세 금액(tax\_free)과 부가세(vat\_amount)는 지원하지 않음 웰컴페이먼츠의 경우 빌링키 발급과 동시에 결제시, 실제 승인이 되지만 면세 금액과 부가세는 지원하지 않으며, 전달해도 무시됩니다. @@ -491,7 +461,7 @@ display: { 따라서 제공기간 파라미터는 지원되지 않으며, PG 창의 제공기간 영역에 무조건 "월 자동결제"로 표기됩니다. -# 에스크로 유의사항 +## 에스크로 유의사항 ### 에스크로 결제의 경우 고객사가 임의로 취소할 수 없음 diff --git a/src/content/docs/ko/pg/payment-gateway/welcome/readme.mdx b/src/content/docs/ko/pg/payment-gateway/welcome/readme.mdx index 3457b6313..1292e7a56 100644 --- a/src/content/docs/ko/pg/payment-gateway/welcome/readme.mdx +++ b/src/content/docs/ko/pg/payment-gateway/welcome/readme.mdx @@ -31,649 +31,653 @@ import Hint from "~/components/Hint.astro"; [JavaScript SDK](../../../sdk/javascript-sdk/readme) `IMP.request_pay(param, callback)`을 호출하여 웰컴페이먼츠 결제/빌링키 발급/빌링키 발급과 동시에 결제창을 호출할 수 있습니다. **트랜잭션 결과**는 PC의 경우 **callback** 함수로 전달되고 -모바일의 경우 **m_redirect_url**로 302 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url**로 302 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: 'welcome.{상점 ID}', - pay_method: 'card', - merchant_uid: "orderNo0001", // 고객사에서 채번한 주문 고유 번호입니다. - name: '주문명:결제테스트', - amount: 1004, - buyer_email: 'test@portone.io', - buyer_name: '구매자이름', - buyer_tel: '010-1234-5678', - m_redirect_url: '{모바일에서 결제 완료 후 리디렉션 될 URL}', -}, function(rsp) { // callback 로직 - const { imp_uid, merchant_uid } = rsp; - - // 콜백 함수로 전달 받은 imp_uid로 포트원 결제 내역 조회 API를 통해 결제 상태를 판단합니다. -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "welcome.{상점 ID}", + pay_method: "card", + merchant_uid: "orderNo0001", // 고객사에서 채번한 주문 고유 번호입니다. + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + const { imp_uid, merchant_uid } = rsp; -
-

주요 파라미터 설명

+ // 콜백 함수로 전달 받은 imp_uid로 포트원 결제 내역 조회 API를 통해 결제 상태를 판단합니다. + }, + ); + ``` -**`pg`** **\*** **`welcome`** +
+

주요 파라미터 설명

-**PG사 구분코드** + **`pg`** **\*** **`welcome`** -**`pay_method`** **\*** **string** + **PG사 구분코드** -**결제수단 구분코드** + **`pay_method`** **\*** **string** -- card (신용카드) -- trans (실시간 계좌이체) -- vbank (가상계좌) -- phone (휴대폰소액결제) -- culturegift (문화상품권) -- lpay (LPAY) -- kakaopay (카카오페이) -- payco (페이코) -- tosspay (토스페이) + **결제수단 구분코드** -**`merchant_uid`** **\*** **string** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank (가상계좌) + - phone (휴대폰소액결제) + - culturegift (문화상품권) + - lpay (LPAY) + - kakaopay (카카오페이) + - payco (페이코) + - tosspay (토스페이) -**주문 번호** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **주문 번호** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제 금액** + **`amount`** **\*** **`integer`** -**string** 이 아닌 점에 유의하세요. + **결제 금액** -**`tax_free`** **number** + **string** 이 아닌 점에 유의하세요. -**면세 금액** + **`tax_free`** **number** -**`vat_amount`** **number** + **면세 금액** -**부가세 금액** + **`vat_amount`** **number** -상점 아이디가 “부가세 업체 정함”으로 설정 된 경우일때만 전달 가능합니다. + **부가세 금액** -주의: 전체 금액의 10% 이하만 허용 됩니다. + 상점 아이디가 “부가세 업체 정함”으로 설정 된 경우일때만 전달 가능합니다. -**`buyer_name`** **\*** **string** + 주의: 전체 금액의 10% 이하만 허용 됩니다. -**구매자 이름** + **`buyer_name`** **\*** **string** -주의: 웰컴페이먼츠의 경우 구매자 이름은 필수 입력입니다. + **구매자 이름** -**`buyer_tel`** **\*** **string** + 주의: 웰컴페이먼츠의 경우 구매자 이름은 필수 입력입니다. -**구매자 연락처** + **`buyer_tel`** **\*** **string** -주의: 웰컴페이먼츠의 경우 구매자 연락처는 필수 입력입니다. + **구매자 연락처** -**`buyer_email`** **string** + 주의: 웰컴페이먼츠의 경우 구매자 연락처는 필수 입력입니다. -**구매자 이메일 주소** + **`buyer_email`** **string** -**`m_redirect_url`** **string** + **구매자 이메일 주소** -**모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL** + **`m_redirect_url`** **string** -주의: 웰컴페이먼츠의 경우 **모바일 환경에서 필수 입력**입니다. + **모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL** -**`notice_url`** **string** 또는 **string[]** + 주의: 웰컴페이먼츠의 경우 **모바일 환경에서 필수 입력**입니다. -**트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL** + **`notice_url`** **string** 또는 **string\[]** -주의: notice_url 파라미터 설정시, 콘솔에 설정 된 웹훅 URL은 override 되며 notice_url에 전달 한 주소로만 웹훅이 발송됩니다. + **트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL** -**`confirm_url`** **string** + 주의: notice\_url 파라미터 설정시, 콘솔에 설정 된 웹훅 URL은 override 되며 notice\_url에 전달 한 주소로만 웹훅이 발송됩니다. -**트랜잭션 승인 직전 최종 승인 여부를 질의 할 고객사 서버 URL** + **`confirm_url`** **string** -트랜잭션 승인 직전, 포트원 서버에서 confirm_url로 트랜잭션 최종 승인 여부를 질의하게 되며 200 외의 응답을 받은 경우 트랜잭션은 중단됩니다. + **트랜잭션 승인 직전 최종 승인 여부를 질의 할 고객사 서버 URL** -**`app_scheme`** **string** + 트랜잭션 승인 직전, 포트원 서버에서 confirm\_url로 트랜잭션 최종 승인 여부를 질의하게 되며 200 외의 응답을 받은 경우 트랜잭션은 중단됩니다. -**IOS 앱에서 결제시 카드/은행 앱에서 인증 후 복귀 될 고객사 커스텀 앱 URL Scheme** + **`app_scheme`** **string** -- 예: portone:// -- 주의: **IOS 앱 결제시 필수** 입력이며 **앱이 아닌 모바일 웹 결제시에는 입력하지 마세요.** + **IOS 앱에서 결제시 카드/은행 앱에서 인증 후 복귀 될 고객사 커스텀 앱 URL Scheme** -**`currency`** **`KRW`** + - 예: portone:// + - 주의: **IOS 앱 결제시 필수** 입력이며 **앱이 아닌 모바일 웹 결제시에는 입력하지 마세요.** -**결제 통화** + **`currency`** **`KRW`** -웰컴페이먼츠의 경우 KRW만 허용되며, 미 입력시 KRW로 자동 적용됩니다. + **결제 통화** -**`language`** **string** + 웰컴페이먼츠의 경우 KRW만 허용되며, 미 입력시 KRW로 자동 적용됩니다. -**결제창 언어 설정** + **`language`** **string** -- ko(한국어, 기본값) -- en(영어) -- zh(중국어) + **결제창 언어 설정** -**`digital`** **string** + - ko(한국어, 기본값) + - en(영어) + - zh(중국어) -**휴대폰 소액결제시 실물/컨텐츠 여부** + **`digital`** **string** -주의: **휴대폰 소액결제시 필수 입력**입니다. + **휴대폰 소액결제시 실물/컨텐츠 여부** -**`vbank_due`** **\*** **string** + 주의: **휴대폰 소액결제시 필수 입력**입니다. -**가상계좌 입금기한** + **`vbank_due`** **\*** **string** -- YYYY-MM-DD -- YYYY-MM-DD HH:mm:ss -- YYYYMMDD -- YYYYMMDDHHmmss + **가상계좌 입금기한** -주의: 웰컴페이먼츠의 경우 무시되며 무조건 59초로 설정 됩니다. + - YYYY-MM-DD + - YYYY-MM-DD HH:mm:ss + - YYYYMMDD + - YYYYMMDDHHmmss -**`escrow`** **boolean** + 주의: 웰컴페이먼츠의 경우 무시되며 무조건 59초로 설정 됩니다. -**에스크로 결제 여부** + **`escrow`** **boolean** -웰컴페이먼츠의 경우, 카드/계좌이체/가상계좌 결제시 에스크로 결제가 허용됩니다. + **에스크로 결제 여부** -**`useCardPoint`** **boolean** + 웰컴페이먼츠의 경우, 카드/계좌이체/가상계좌 결제시 에스크로 결제가 허용됩니다. -**카드사 포인트 사용 여부** + **`useCardPoint`** **boolean** -웰컴페이먼츠의 경우, 카드사 포인트 사용 불가 옵션(useCardPoint: false)은 지원하지 않습니다. + **카드사 포인트 사용 여부** -카드사 포인트 사용(useCardPoint: true) 또는 기본값(=파라미터 전달하지 않음, 결제창에서 고객이 카드사 포인트 사용 여부 결정)만 사용 가능합니다. + 웰컴페이먼츠의 경우, 카드사 포인트 사용 불가 옵션(useCardPoint: false)은 지원하지 않습니다. -**`useFreeInterestFromMall`** **boolean** + 카드사 포인트 사용(useCardPoint: true) 또는 기본값(=파라미터 전달하지 않음, 결제창에서 고객이 카드사 포인트 사용 여부 결정)만 사용 가능합니다. -**상점 부담 무이자 할부 사용 여부** + **`useFreeInterestFromMall`** **boolean** -**`period`** **object** + **상점 부담 무이자 할부 사용 여부** -**서비스 제공 기간** + **`period`** **object** -(from과 to) 또는 interval 중 하나만 입력 가능합니다. + **서비스 제공 기간** -주의: 모바일 환경 - 휴대폰 소액결제시엔 지원하지 않습니다. + (from과 to) 또는 interval 중 하나만 입력 가능합니다. -- **`from`**: 서비스 제공 시작 시각 -- **`to`**: 서비스 제공 종료 시각 + 주의: 모바일 환경 - 휴대폰 소액결제시엔 지원하지 않습니다. - - YYYY-MM-DD - - YYYY-MM-DD HH:mm:ss - - YYYYMMDD - - YYYYMMDDHHmmss + - **`from`**: 서비스 제공 시작 시각 - 웰컴페이먼츠의 경우 + - **`to`**: 서비스 제공 종료 시각 - - PC: 날짜까지만 입력 가능하며 시간은 무시됩니다. - - 모바일: 날짜와 시간 모두 입력 가능하며 초는 무시됩니다. + - YYYY-MM-DD + - YYYY-MM-DD HH:mm:ss + - YYYYMMDD + - YYYYMMDDHHmmss -- **`interval`**: 서비스 제공 간격 - - 1m: 매월 정기결제 - - 1y: 매년 정기결제 + 웰컴페이먼츠의 경우 -**`bypass.logo_url`** **string** + - PC: 날짜까지만 입력 가능하며 시간은 무시됩니다. + - 모바일: 날짜와 시간 모두 입력 가능하며 초는 무시됩니다. -결제창에 노출 될 메인 로고 URL(크기: 89x19)로 **PC 전용** 파라미터입니다. + - **`interval`**: 서비스 제공 간격 + - 1m: 매월 정기결제 + - 1y: 매년 정기결제 -**`bypass.logo_2nd`** **string** + **`bypass.logo_url`** **string** -결제창에 노출 될 서브 로고 URL(크기: 64x13)로 **PC 전용** 파라미터입니다. + 결제창에 노출 될 메인 로고 URL(크기: 89x19)로 **PC 전용** 파라미터입니다. -**`bypass.P_CARD_OPTION`** **object** + **`bypass.logo_2nd`** **string** -**모바일 카드/간편결제 전용** 파라미터입니다. + 결제창에 노출 될 서브 로고 URL(크기: 64x13)로 **PC 전용** 파라미터입니다. -1. 신용카드 우선 선택 옵션 + **`bypass.P_CARD_OPTION`** **object** - 예) selcode=14 + **모바일 카드/간편결제 전용** 파라미터입니다. -- 해당 카드 코드에 해당하는 카드가 선택된 채로 Display -- 간편결제는 불가능 (타 카드 선택 가능) + 1. 신용카드 우선 선택 옵션 -2. 선택적 표시 옵션 + 예) selcode=14 - 예1) onlycard=visa3d - 예2) selcode=14:onlycard=visa3d + - 해당 카드 코드에 해당하는 카드가 선택된 채로 Display + - 간편결제는 불가능 (타 카드 선택 가능) -- 안심결제: visa3d -- ISP: isp -- 간편결제: easypay 중 선택 적 표시 + 2. 선택적 표시 옵션 -**`bypass.P_ONLY_EASYPAYCODE`** **string** + 예1) onlycard=visa3d + 예2) selcode=14:onlycard=visa3d -카드 결제창 내 렌더링 될 간편 결제 리스트를 의미하며 **모바일 전용** 파라미터입니다. + - 안심결제: visa3d + - ISP: isp + - 간편결제: easypay 중 선택 적 표시 -예) 카카오페이, 엘페이, 페이코만 렌더링 → -”KAKAOPAY:LPAY:PAYCO” 전달 + **`bypass.P_ONLY_EASYPAYCODE`** **string** -- 카카오페이: KAKAOPAY -- 엘페이: LPAY -- 페이코: PAYCO -- 토스페이: TOSSPAY + 카드 결제창 내 렌더링 될 간편 결제 리스트를 의미하며 **모바일 전용** 파라미터입니다. -**`bypass.acceptmethod`** **array** + 예) 카카오페이, 엘페이, 페이코만 렌더링 → + ”KAKAOPAY:LPAY:PAYCO” 전달 -**PC - 카드 결제 전용 파라미터** + - 카카오페이: KAKAOPAY + - 엘페이: LPAY + - 페이코: PAYCO + - 토스페이: TOSSPAY -|형식 |설명 | -|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|SKIN(색상코드) |결제 창의 배경 색상
- 기본값 : #c1272c
- 예시: SKIN(#fc6b2d) | -|below1000 |1,000원 미만 결제 허용 여부
- 기본값: 허용하지 않음 | -|paypopup |안심클릭을 팝업 형태로 렌더링 시킬지 여부
- 기본값: 레이어 | -|onlyeasypaycode(간편 결제 리스트)|카드 결제창 내 렌더링 될 간편 결제 리스트
예) 카카오페이, 엘페이, 페이코만 렌더링 → ”kakaopay:lpay:payco” 전달
- 카카오페이: `kakaopay`
- 엘페이: `lpay`
- 페이코: `payco`
- 토스페이: `tosspay`| -|SLIMQUOTA(슬림 할부 설정) |부분 무이자 설정. 슬림 할부
- 형식) SLIMQUOTA(코드-개월:개월^코드-개월:개월
- 예시) SLIMQUOTA(11-2:3^34-2:3) | + **`bypass.acceptmethod`** **array** -**PC - 휴대폰 소액 결제 전용 파라미터** + **PC - 카드 결제 전용 파라미터** -|형식 |설명 | -|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|hppdefaultcorp(통신사 코드)|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hppdefaultcorp(KT)” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`
| -|hppnofix(N 또는 Y) |휴대폰 소액결제창에 자동 입력되는 `buyer_tel`값을 수정할 수 있는지 여부
- 기본값: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| + |형식 |설명 | + |---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + |SKIN(색상코드) |결제 창의 배경 색상
- 기본값 : #c1272c
- 예시: SKIN(#fc6b2d) | + |below1000 |1,000원 미만 결제 허용 여부
- 기본값: 허용하지 않음 | + |paypopup |안심클릭을 팝업 형태로 렌더링 시킬지 여부
- 기본값: 레이어 | + |onlyeasypaycode(간편 결제 리스트)|카드 결제창 내 렌더링 될 간편 결제 리스트
예) 카카오페이, 엘페이, 페이코만 렌더링 → ”kakaopay:lpay:payco” 전달
- 카카오페이: `kakaopay`
- 엘페이: `lpay`
- 페이코: `payco`
- 토스페이: `tosspay`| + |SLIMQUOTA(슬림 할부 설정) |부분 무이자 설정. 슬림 할부
- 형식) SLIMQUOTA(코드-개월:개월^코드-개월:개월
- 예시) SLIMQUOTA(11-2:3^34-2:3) | -```javascript -// -...중략 -pg: 'welcome', -bypass: { - welcome: { - acceptmethod: [ - "SKIN(#fc6b2d)", // 결제창 배경 색상 #fc6b2d - "below1000", // 1,000원 이하 결제 허용 - "paypopup", // 안심 클릭을 팝업으로 렌더링 - "onlyeasypaycode(kakaopay:payco)", // 카드 결제창 내 간편결제는 카카오페이와 페이코만 렌더링 - "hppdefaultcorp(KT)", // 휴대폰 소액결제시 KT 기본 선택 - "hppnofix(Y)", // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 - ] - } -} -``` + **PC - 휴대폰 소액 결제 전용 파라미터** -**`bypass.P_RESERVED`** **array** - -**모바일 - 카드 결제 전용 파라미터** - -|형식 |설명 | -|-----------|----------------------------------------------------------| -|below1000=Y|1,000원 미만 결제 허용 여부
- 기본값: 허용하지 않음| - -**모바일 - 휴대폰 소액 결제 전용 파라미터** - -|형식 |설명 | -|----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|hpp_default_corp=통신사 코드|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hpp_default_corp=KT” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`| -|hpp_nofix=Y 또는 N |휴대폰 소액결제창에 자동 입력되는 buyer_tel값을 수정할 수 있는지 여부
- 기본: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| - -```javascript -// -...중략 -pg: 'welcome', -bypass: { - welcome: { - P_RESERVED: [ - "below1000=Y", // 1,000원 이하 결제 허용 - "hpp_default_corp=KT", // 휴대폰 소액결제시 KT 기본 선택 - "hppnofix=Y", // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 - ] - } -} -``` + |형식 |설명 | + |---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + |hppdefaultcorp(통신사 코드)|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hppdefaultcorp(KT)” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`
| + |hppnofix(N 또는 Y) |휴대폰 소액결제창에 자동 입력되는 `buyer_tel`값을 수정할 수 있는지 여부
- 기본값: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| -
+ ```json + { + "pg": "welcome", + "bypass": { + "welcome": { + "acceptmethod": [ + "SKIN(#fc6b2d)", // 결제창 배경 색상 #fc6b2d + "below1000", // 1,000원 이하 결제 허용 + "paypopup", // 안심 클릭을 팝업으로 렌더링 + "onlyeasypaycode(kakaopay:payco)", // 카드 결제창 내 간편결제는 카카오페이와 페이코만 렌더링 + "hppdefaultcorp(KT)", // 휴대폰 소액결제시 KT 기본 선택 + "hppnofix(Y)" // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 + ] + } + } + } + ``` -
-

- 웰컴페이먼츠 지원 결제 수단 -

+ **`bypass.P_RESERVED`** **array** -- card + 에스크로, 다이렉트 -- vbank + 에스크로 -- trans + 에스크로 -- phone -- culturegift -- lpay -- kakaopay -- payco -- tosspay + **모바일 - 카드 결제 전용 파라미터** -
+ |형식 |설명 | + |-----------|----------------------------------------------------------| + |below1000=Y|1,000원 미만 결제 허용 여부
- 기본값: 허용하지 않음| - - - - 일반 결제 창 호출 파라미터에서 **customer\_uid**, **customer\_id**값을 추가하면 빌링키 발급 창을 호출할 수 있습니다. - 빌링키 발급 창에서 빌링키를 발급 받은 후, 빌링 결제 API를 호출해 해당 빌링키로 결제를 할 수 있습니다. - ```javascript title="Javascript SDK" - IMP.request_pay({ - pg: "welcome.{MID}", - pay_method: "card", // 빌링키 발급 수단입니다. 웰컴페이먼츠의 경우 'card'만 지원됩니다. - merchant_uid: "orderMonthly0001", // 고객사에서 채번한 주문 고유 번호입니다. - name: "빌링키 발급", - amount: 1000, // 전달한 결제 금액 만큼 실제로 승인되지는 않으며, 단순히 빌링키 발급 창에 표기 용도입니다. - customer_uid: "your-customer-unique-id", // 고객사가 구매자의 결제 수단을 특정하기 위해 채번한 고유 ID로 빌링키 발급시 필수 입력입니다. - customer_id: "matthew", // 고객사가 회원에게 부여한 고유 ID입니다. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 빌링키 발급 완료 후 리디렉션 될 URL}", - }, function (rsp) { - const { imp_uid, merchant_uid } = rsp; - - // 콜백 함수로 전달 받은 imp_uid로 포트원 결제 내역 조회 API를 통해 빌링키 발급 상태를 판단합니다. - }); - ``` + **모바일 - 휴대폰 소액 결제 전용 파라미터** -
-

주요 파라미터 설명

+ |형식 |설명 | + |------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + |hpp\_default\_corp=통신사 코드|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hpp\_default\_corp=KT” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`| + |hpp\_nofix=Y 또는 N |휴대폰 소액결제창에 자동 입력되는 buyer\_tel값을 수정할 수 있는지 여부
- 기본: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| -**`pg`** **\*** **`welcome`** + ```json + { + "pg": "welcome", + "bypass": { + "welcome": { + "P_RESERVED": [ + "below1000=Y", // 1,000원 이하 결제 허용 + "hpp_default_corp=KT", // 휴대폰 소액결제시 KT 기본 선택 + "hppnofix=Y" // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 + ] + } + } + } + ``` +
-**PG사 구분코드** +
+

+ 웰컴페이먼츠 지원 결제 수단 +

-**`merchant_uid`** **\*** **string** + - card + 에스크로, 다이렉트 + - vbank + 에스크로 + - trans + 에스크로 + - phone + - culturegift + - lpay + - kakaopay + - payco + - tosspay +
+
-**주문 번호** + + 일반 결제 창 호출 파라미터에서 **customer\_uid**, **customer\_id**값을 추가하면 빌링키 발급 창을 호출할 수 있습니다. + 빌링키 발급 창에서 빌링키를 발급 받은 후, 빌링 결제 API를 호출해 해당 빌링키로 결제를 할 수 있습니다. -매번 고유하게 채번되어야 합니다. + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "welcome.{MID}", + pay_method: "card", // 빌링키 발급 수단입니다. 웰컴페이먼츠의 경우 'card'만 지원됩니다. + merchant_uid: "orderMonthly0001", // 고객사에서 채번한 주문 고유 번호입니다. + name: "빌링키 발급", + amount: 1000, // 전달한 결제 금액 만큼 실제로 승인되지는 않으며, 단순히 빌링키 발급 창에 표기 용도입니다. + customer_uid: "your-customer-unique-id", // 고객사가 구매자의 결제 수단을 특정하기 위해 채번한 고유 ID로 빌링키 발급시 필수 입력입니다. + customer_id: "matthew", // 고객사가 회원에게 부여한 고유 ID입니다. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 빌링키 발급 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + const { imp_uid, merchant_uid } = rsp; -**`amount`** **\*** **`integer`** + // 콜백 함수로 전달 받은 imp_uid로 포트원 결제 내역 조회 API를 통해 빌링키 발급 상태를 판단합니다. + }, + ); + ``` -**결제 금액** +
+

주요 파라미터 설명

-**string** 이 아닌 점에 유의하세요. + **`pg`** **\*** **`welcome`** -전달한 결제 금액 만큼 실제로 승인되지는 않으며, 단순히 빌링키 발급 창에 표기 용도입니다. + **PG사 구분코드** -**`pay_method`** **\*** **`card`** + **`merchant_uid`** **\*** **string** -**빌링키 발급 수단** + **주문 번호** -웰컴페이먼츠의 경우, 빌링키 발급 수단은 `card`만 허용되며 **반드시 `card`를 필수로 입력해주셔야** 합니다. + 매번 고유하게 채번되어야 합니다. -**`customer_uid`** **\*** **string** + **`amount`** **\*** **`integer`** -**빌링키 발급 수단 고유 ID** + **결제 금액** -고객사가 구매자의 빌링키 발급 수단을 특정하기 위해 채번한 고유 번호로 빌링키 발급시 필수 입력입니다. + **string** 이 아닌 점에 유의하세요. -**`customer_id`** **string** + 전달한 결제 금액 만큼 실제로 승인되지는 않으며, 단순히 빌링키 발급 창에 표기 용도입니다. -**구매자 고유 ID** + **`pay_method`** **\*** **`card`** -고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. + **빌링키 발급 수단** -**`buyer_name`** **\*** **string** + 웰컴페이먼츠의 경우, 빌링키 발급 수단은 `card`만 허용되며 **반드시 `card`를 필수로 입력해주셔야** 합니다. -**구매자 이름** + **`customer_uid`** **\*** **string** -주의: 웰컴페이먼츠의 경우 구매자 이름은 필수 입력입니다. + **빌링키 발급 수단 고유 ID** -**`buyer_tel`** **\*** **string** + 고객사가 구매자의 빌링키 발급 수단을 특정하기 위해 채번한 고유 번호로 빌링키 발급시 필수 입력입니다. -**구매자 연락처** + **`customer_id`** **string** -주의: 웰컴페이먼츠의 경우 구매자 연락처는 필수 입력입니다. + **구매자 고유 ID** -**`buyer_email`** **string** + 고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. -**구매자 이메일 주소** + **`buyer_name`** **\*** **string** -**`m_redirect_url`** **string** + **구매자 이름** -**모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL** + 주의: 웰컴페이먼츠의 경우 구매자 이름은 필수 입력입니다. -주의: 웰컴페이먼츠의 경우 **모바일 환경에서 필수 입력**입니다. + **`buyer_tel`** **\*** **string** -**`notice_url`** **string** 또는 **string[]** + **구매자 연락처** -**트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL** + 주의: 웰컴페이먼츠의 경우 구매자 연락처는 필수 입력입니다. -주의: notice_url 파라미터 설정시, 콘솔에 설정 된 웹훅 URL은 override 되며 notice_url에 전달 한 주소로만 웹훅이 발송됩니다. + **`buyer_email`** **string** -**`period`** **object** + **구매자 이메일 주소** -**서비스 제공 기간** + **`m_redirect_url`** **string** -(from과 to) 또는 interval 중 하나만 입력 가능합니다. + **모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL** -- **`from`**: 서비스 제공 시작 시각 -- **`to`**: 서비스 제공 종료 시각 + 주의: 웰컴페이먼츠의 경우 **모바일 환경에서 필수 입력**입니다. - - YYYY-MM-DD - - YYYY-MM-DD HH:mm:ss - - YYYYMMDD - - YYYYMMDDHHmmss + **`notice_url`** **string** 또는 **string\[]** - 웰컴페이먼츠의 경우 + **트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL** - - PC: 날짜까지만 입력 가능하며 시간은 무시됩니다. - - 모바일: 날짜와 시간 모두 입력 가능하며 초는 무시됩니다. + 주의: notice\_url 파라미터 설정시, 콘솔에 설정 된 웹훅 URL은 override 되며 notice\_url에 전달 한 주소로만 웹훅이 발송됩니다. -- **`interval`**: 서비스 제공 간격 - - 1m: 매월 정기결제 - - 1y: 매년 정기결제 + **`period`** **object** -**`bypass.logo_url`** **string** + **서비스 제공 기간** -결제창에 노출 될 메인 로고 URL(크기: 89x19)로 **PC 전용** 파라미터입니다. + (from과 to) 또는 interval 중 하나만 입력 가능합니다. -**`bypass.logo_2nd`** **string** + - **`from`**: 서비스 제공 시작 시각 -결제창에 노출 될 서브 로고 URL(크기: 64x13)로 **PC 전용** 파라미터입니다. + - **`to`**: 서비스 제공 종료 시각 -
+ - YYYY-MM-DD + - YYYY-MM-DD HH:mm:ss + - YYYYMMDD + - YYYYMMDDHHmmss -
-

- 웰컴페이먼츠 지원 빌링키 발급 수단 -

+ 웰컴페이먼츠의 경우 -- card + - PC: 날짜까지만 입력 가능하며 시간은 무시됩니다. + - 모바일: 날짜와 시간 모두 입력 가능하며 초는 무시됩니다. -
+ - **`interval`**: 서비스 제공 간격 + - 1m: 매월 정기결제 + - 1y: 매년 정기결제 -
- - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: 'welcome.{상점 ID}', - pay_method: 'phone', // 빌링키 발급 및 결제 수단입니다. 웰컴페이먼츠의 경우 'phone'만 지원합니다. - merchant_uid: "orderNo0001", // 고객사에서 채번한 주문 고유 번호입니다. - name: '주문명:결제테스트', - amount: 1000, // 전달한 금액 만큼 실제로 승인이 됩니다. - customer_uid: "your-customer-unique-id", // 고객사가 구매자의 결제 수단을 특정하기 위해 채번한 고유 ID로 빌링키 발급시 필수 입력입니다. - customer_id: "matthew", // 고객사가 회원에게 부여한 고유 ID입니다. - buyer_email: 'test@portone.io', - buyer_name: '구매자이름', - buyer_tel: '010-1234-5678', - m_redirect_url: '{모바일에서 결제 완료 후 리디렉션 될 URL}', -}, function(rsp) { // callback 로직 - const { imp_uid, merchant_uid } = rsp; - - // 콜백 함수로 전달 받은 imp_uid로 포트원 결제 내역 조회 API를 통해 결제 상태를 판단합니다. -}); -``` + **`bypass.logo_url`** **string** -
-

주요 파라미터 설명

+ 결제창에 노출 될 메인 로고 URL(크기: 89x19)로 **PC 전용** 파라미터입니다. -**`pg`** **\*** **`welcome`** + **`bypass.logo_2nd`** **string** -**PG사 구분코드** + 결제창에 노출 될 서브 로고 URL(크기: 64x13)로 **PC 전용** 파라미터입니다. +
-**`merchant_uid`** **\*** **string** +
+

+ 웰컴페이먼츠 지원 빌링키 발급 수단 +

-**주문 번호** + - card +
+
-매번 고유하게 채번되어야 합니다. + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "welcome.{상점 ID}", + pay_method: "phone", // 빌링키 발급 및 결제 수단입니다. 웰컴페이먼츠의 경우 'phone'만 지원합니다. + merchant_uid: "orderNo0001", // 고객사에서 채번한 주문 고유 번호입니다. + name: "주문명:결제테스트", + amount: 1000, // 전달한 금액 만큼 실제로 승인이 됩니다. + customer_uid: "your-customer-unique-id", // 고객사가 구매자의 결제 수단을 특정하기 위해 채번한 고유 ID로 빌링키 발급시 필수 입력입니다. + customer_id: "matthew", // 고객사가 회원에게 부여한 고유 ID입니다. + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + const { imp_uid, merchant_uid } = rsp; -**`amount`** **\*** **`integer`** + // 콜백 함수로 전달 받은 imp_uid로 포트원 결제 내역 조회 API를 통해 결제 상태를 판단합니다. + }, + ); + ``` -**결제 금액** +
+

주요 파라미터 설명

-**string** 이 아닌 점에 유의하세요. + **`pg`** **\*** **`welcome`** -**`pay_method`** **\*** **`phone`** + **PG사 구분코드** -**빌링키 발급 및 결제 수단을** + **`merchant_uid`** **\*** **string** -- phone (휴대폰소액결제) + **주문 번호** -웰컴페이먼츠의 경우, 빌링키 발급 동시에 결제 수단은 `phone`만 허용되며 **반드시 `phone`을 필수로 입력해주셔야** 합니다. + 매번 고유하게 채번되어야 합니다. -**빌링키 발급 수단 고유 ID** + **`amount`** **\*** **`integer`** -고객사가 구매자의 빌링키 발급 수단을 특정하기 위해 채번한 고유 번호로 빌링키 발급시 필수 입력입니다. + **결제 금액** -**`customer_id`** **string** + **string** 이 아닌 점에 유의하세요. -**구매자 고유 ID** + **`pay_method`** **\*** **`phone`** -고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. + **빌링키 발급 및 결제 수단을** -**`buyer_name`** **\*** **string** + - phone (휴대폰소액결제) -**구매자 이름** + 웰컴페이먼츠의 경우, 빌링키 발급 동시에 결제 수단은 `phone`만 허용되며 **반드시 `phone`을 필수로 입력해주셔야** 합니다. -주의: 웰컴페이먼츠의 경우 구매자 이름은 필수 입력입니다. + **빌링키 발급 수단 고유 ID** -**`buyer_tel`** **\*** **string** + 고객사가 구매자의 빌링키 발급 수단을 특정하기 위해 채번한 고유 번호로 빌링키 발급시 필수 입력입니다. -**구매자 연락처** + **`customer_id`** **string** -주의: 웰컴페이먼츠의 경우 구매자 연락처는 필수 입력입니다. + **구매자 고유 ID** -**`buyer_email`** **string** + 고객사가 구매자를 특정하기 위해 채번한 고유 번호입니다. -**구매자 이메일 주소** + **`buyer_name`** **\*** **string** -**`m_redirect_url`** **string** + **구매자 이름** -**모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL** + 주의: 웰컴페이먼츠의 경우 구매자 이름은 필수 입력입니다. -주의: 웰컴페이먼츠의 경우 **모바일 환경에서 필수 입력**입니다. + **`buyer_tel`** **\*** **string** -**`notice_url`** **string** 또는 **string[]** + **구매자 연락처** -**트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL** + 주의: 웰컴페이먼츠의 경우 구매자 연락처는 필수 입력입니다. -주의: notice_url 파라미터 설정시, 콘솔에 설정 된 웹훅 URL은 override 되며 notice_url에 전달 한 주소로만 웹훅이 발송됩니다. + **`buyer_email`** **string** -**`confirm_url`** **string** + **구매자 이메일 주소** -**트랜잭션 승인 직전 최종 승인 여부를 질의 할 고객사 서버 URL** + **`m_redirect_url`** **string** -트랜잭션 승인 직전, 포트원 서버에서 confirm_url로 트랜잭션 최종 승인 여부를 질의하게 되며 200 외의 응답을 받은 경우 트랜잭션은 중단됩니다. + **모바일 환경에서 트랜잭션 종료 후 302 리디렉션 될 URL** -**`currency`** **`KRW`** + 주의: 웰컴페이먼츠의 경우 **모바일 환경에서 필수 입력**입니다. -**결제 통화** + **`notice_url`** **string** 또는 **string\[]** -웰컴페이먼츠의 경우 KRW만 허용되며, 미 입력시 KRW로 자동 적용됩니다. + **트랜잭션 종료 후 웹훅이 발송 될 고객사 서버 URL** -**`digital`** **\*** **string** + 주의: notice\_url 파라미터 설정시, 콘솔에 설정 된 웹훅 URL은 override 되며 notice\_url에 전달 한 주소로만 웹훅이 발송됩니다. -**실물/컨텐츠 여부** + **`confirm_url`** **string** -**`period`** **object** + **트랜잭션 승인 직전 최종 승인 여부를 질의 할 고객사 서버 URL** -**서비스 제공 기간** + 트랜잭션 승인 직전, 포트원 서버에서 confirm\_url로 트랜잭션 최종 승인 여부를 질의하게 되며 200 외의 응답을 받은 경우 트랜잭션은 중단됩니다. -(from과 to) 또는 interval 중 하나만 입력 가능합니다. + **`currency`** **`KRW`** -주의: **모바일 환경에서는 지원하지 않습니다.** + **결제 통화** -- **`from`**: 서비스 제공 시작 시각 -- **`to`**: 서비스 제공 종료 시각 + 웰컴페이먼츠의 경우 KRW만 허용되며, 미 입력시 KRW로 자동 적용됩니다. - - YYYY-MM-DD - - YYYY-MM-DD HH:mm:ss - - YYYYMMDD - - YYYYMMDDHHmmss + **`digital`** **\*** **string** - 웰컴페이먼츠의 경우 + **실물/컨텐츠 여부** - - PC: 날짜까지만 입력 가능하며 시간은 무시됩니다. - - 모바일: 날짜와 시간 모두 입력 가능하며 초는 무시됩니다. + **`period`** **object** -- **`interval`**: 서비스 제공 간격 - - 1m: 매월 정기결제 - - 1y: 매년 정기결제 + **서비스 제공 기간** -**`bypass.acceptmethod`** **array** + (from과 to) 또는 interval 중 하나만 입력 가능합니다. -**PC - 휴대폰 소액 결제 전용 파라미터** + 주의: **모바일 환경에서는 지원하지 않습니다.** -|형식 |설명 | -|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|hppdefaultcorp(통신사 코드)|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hppdefaultcorp(KT)” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`
| -|hppnofix(N 또는 Y) |휴대폰 소액결제창에 자동 입력되는 `buyer_tel`값을 수정할 수 있는지 여부
- 기본값: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| + - **`from`**: 서비스 제공 시작 시각 -```javascript -// -...중략 -pg: 'welcome', -bypass: { - welcome: { - acceptmethod: [ - "SKIN(#fc6b2d)", // 결제창 배경 색상 #fc6b2d - "below1000", // 1,000원 이하 결제 허용 - "paypopup", // 안심 클릭을 팝업으로 렌더링 - "onlyeasypaycode(kakaopay:payco)", // 카드 결제창 내 간편결제는 카카오페이와 페이코만 렌더링 - "hppdefaultcorp(KT)", // 휴대폰 소액결제시 KT 기본 선택 - "hppnofix(Y)", // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 - ] - } -} -``` + - **`to`**: 서비스 제공 종료 시각 -**`bypass.P_RESERVED`** **array** - -**모바일 - 휴대폰 소액 결제 전용 파라미터** - -|형식 |설명 | -|----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|hpp_default_corp=통신사 코드|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hpp_default_corp=KT” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`| -|hpp_nofix=Y 또는 N |휴대폰 소액결제창에 자동 입력되는 buyer_tel값을 수정할 수 있는지 여부
- 기본: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| - -```javascript -// -...중략 -pg: 'welcome', -bypass: { - welcome: { - P_RESERVED: [ - "below1000=Y", // 1,000원 이하 결제 허용 - "hpp_default_corp=KT", // 휴대폰 소액결제시 KT 기본 선택 - "hppnofix=Y", // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 - ] - } -} -``` + - YYYY-MM-DD + - YYYY-MM-DD HH:mm:ss + - YYYYMMDD + - YYYYMMDDHHmmss -
+ 웰컴페이먼츠의 경우 -
-

- 웰컴페이먼츠 지원 빌링키 발급과 동시에 결제 수단 -

+ - PC: 날짜까지만 입력 가능하며 시간은 무시됩니다. + - 모바일: 날짜와 시간 모두 입력 가능하며 초는 무시됩니다. -- phone + - **`interval`**: 서비스 제공 간격 + - 1m: 매월 정기결제 + - 1y: 매년 정기결제 -
+ **`bypass.acceptmethod`** **array** + + **PC - 휴대폰 소액 결제 전용 파라미터** + + |형식 |설명 | + |---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + |hppdefaultcorp(통신사 코드)|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hppdefaultcorp(KT)” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`
| + |hppnofix(N 또는 Y) |휴대폰 소액결제창에 자동 입력되는 `buyer_tel`값을 수정할 수 있는지 여부
- 기본값: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| -
+ ```json + { + "pg": "welcome", + "bypass": { + "welcome": { + "acceptmethod": [ + "SKIN(#fc6b2d)", // 결제창 배경 색상 #fc6b2d + "below1000", // 1,000원 이하 결제 허용 + "paypopup", // 안심 클릭을 팝업으로 렌더링 + "onlyeasypaycode(kakaopay:payco)", // 카드 결제창 내 간편결제는 카카오페이와 페이코만 렌더링 + "hppdefaultcorp(KT)", // 휴대폰 소액결제시 KT 기본 선택 + "hppnofix(Y)" // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 + ] + } + } + } + ``` + **`bypass.P_RESERVED`** **array** + + **모바일 - 휴대폰 소액 결제 전용 파라미터** + + |형식 |설명 | + |------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + |hpp\_default\_corp=통신사 코드|휴대폰 소액결제시 기본 선택되어있는 통신사
- 기본: 기본 선택되어있는 통신사 없음
예) KT 기본 선택 → ”hpp\_default\_corp=KT” 전달
- SKT: `SKT`
- KT: `KTF`
- LG 유플러스: `LGT`
- 알뜰폰 전체: `MVNO`
- 알뜰폰 CJ 헬로 모바일: `CJH`
- 알뜰폰 티플러스: `KCT`
- 알뜰폰 SK 세븐모바일: `SKL`| + |hpp\_nofix=Y 또는 N |휴대폰 소액결제창에 자동 입력되는 buyer\_tel값을 수정할 수 있는지 여부
- 기본: 수정 가능
- Y : 수정 불가능
- N : 수정 가능(기본)
| + + ```json + { + "pg": "welcome", + "bypass": { + "welcome": { + "P_RESERVED": [ + "below1000=Y", // 1,000원 이하 결제 허용 + "hpp_default_corp=KT", // 휴대폰 소액결제시 KT 기본 선택 + "hppnofix=Y" // 휴대폰 소액결제시 결제 창 내에서 구매자 전화번호 수정 불가능 + ] + } + } + } + ``` +
+ +
+

+ 웰컴페이먼츠 지원 빌링키 발급과 동시에 결제 수단 +

+ + - phone +
+
-

- 가능한 트랜잭션 환경 -

- -- PC (iframe) -- 모바일 (리디렉션) +

+ 가능한 트랜잭션 환경 +

+ - PC (iframe) + - 모바일 (리디렉션)
diff --git a/src/content/docs/ko/pg/simple/alipay.mdx b/src/content/docs/ko/pg/simple/alipay.mdx index 6b4da80b4..f53f6693e 100644 --- a/src/content/docs/ko/pg/simple/alipay.mdx +++ b/src/content/docs/ko/pg/simple/alipay.mdx @@ -4,66 +4,69 @@ description: 알리페이 결제 연동 방법을 안내합니다. --- import Figure from "~/components/Figure.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -### 1. 알리페이 간편결제 PG 설정하기 +## 1. 알리페이 간편결제 PG 설정하기 [**알리페이 설정**](../../ready/2-pg/pg/alipay) 페이지의 내용을 참고하여 PG 설정을 진행합니다.
-### 2.결제 요청하기 +## 2.결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 알리페이 결제창을 호출할 수 있습니다. **결제결과**는 **`m_redirect_url`** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "alipay", - merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 - name: "주문명:결제테스트", - amount: 1.2, // USD 1.2 달러 결제 - currency: "USD" // Default USD - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{결제 완료 후 리디렉션 될 URL}" -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "alipay", + merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 + name: "주문명:결제테스트", + amount: 1.2, // USD 1.2 달러 결제 + currency: "USD", // Default USD + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`pg`** **string** + **주요 파라미터 설명** -**PG사 구분코드** + **`pg`** **string** -**`alipay`** 로 지정하면 됩니다. + **PG사 구분코드** -**`merchant_uid`** **\*** **string** + **`alipay`** 로 지정하면 됩니다. -**`고객사 고유주문번호`** + **`merchant_uid`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **`고객사 고유주문번호`** -**`currency`** **`string`** + 매번 고유하게 채번되어야 합니다. -**통화구분코드** + **`currency`** **`string`** -누락시 USD 가 기본입니다. KRW 지원가능 + **통화구분코드** -**`amount`** **\*** **`integer`** + 누락시 USD 가 기본입니다. KRW 지원가능 -**결제금액** + **`amount`** **\*** **`integer`** -**string** 이 아닌점에 유의하세요 + **결제금액** - + **string** 이 아닌점에 유의하세요 + diff --git a/src/content/docs/ko/pg/simple/kakopay.mdx b/src/content/docs/ko/pg/simple/kakopay.mdx index 392839323..cc4cb1204 100644 --- a/src/content/docs/ko/pg/simple/kakopay.mdx +++ b/src/content/docs/ko/pg/simple/kakopay.mdx @@ -3,11 +3,11 @@ title: 카카오페이 description: 카카오페이 연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Codepen from "~/components/gitbook/Codepen.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 카카오페이 채널 설정하기 @@ -23,125 +23,126 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; 모바일의 경우 **`m_redirect_url`** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "kakaopay.{CID}", - pay_method: "card", // 생략가 - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}" -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kakaopay.{CID}", + pay_method: "card", // 생략가 + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**주요 파라미터 설명** + **주요 파라미터 설명** -**`pg`** **string** + **`pg`** **string** -**PG사 구분코드** + **PG사 구분코드** -**`kakaopay`** 로 지정하면 됩니다. + **`kakaopay`** 로 지정하면 됩니다. -**`pay_method`** **string** + **`pay_method`** **string** -**결제수단 구분코드** + **결제수단 구분코드** -생략가능 + 생략가능 -(호출 시 선택된 값은 무시되며 카카오페이 앱에서 신용카드와 카카오머니 중 선택한 옵션으로 설정됩니다.) + (호출 시 선택된 값은 무시되며 카카오페이 앱에서 신용카드와 카카오머니 중 선택한 옵션으로 설정됩니다.) -**`merchant_uid`** **\*** **string** + **`merchant_uid`** **\*** **string** -**주문번호** + **주문번호** -매번 고유하게 채번되어야 합니다. + 매번 고유하게 채번되어야 합니다. -**`amount`** **integer** + **`amount`** **integer** -**결제금액** + **결제금액** -**string** 이 아닌점에 유의하세요 + **string** 이 아닌점에 유의하세요 - + + - + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 정기결제창을 호출할 수 있습니다. - -인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 정기결제창을 호출할 수 있습니다. + + **amount 금액** - -**amount 금액** + 카카오페이 간편결제는 빌링키 발급시 amount 파라미터에 금액이 설정되는 경우 **실 결제와 동시에 빌링키가 발급**됩니다. -카카오페이 간편결제는 빌링키 발급시 amount 파라미터에 금액이 설정되는 경우 **실 결제와 동시에 빌링키가 발급**됩니다. + 실결제를 원하지 않은 경우 amount 금액을 **0원**으로 설정합니다. + -실결제를 원하지 않은 경우 amount 금액을 **0원**으로 설정합니다. + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "kakaopay.{CID}", + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "최초인증결제", + amount: 0, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급 성공"); + } else { + alert("빌링키 발급 실패"); + } + }, + ); + ``` - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "kakaopay.{CID}", - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "최초인증결제", - amount: 0, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - m_redirect_url: "{모바일에서 결제 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급 성공"); - } else { - alert("빌링키 발급 실패"); - } - } -); -``` - -**주요 파라미터 설명** + **주요 파라미터 설명** -**`pg`** **string** + **`pg`** **string** -**PG사 구분코드** + **PG사 구분코드** -**`kakaopay`** 로 지정하면 됩니다. + **`kakaopay`** 로 지정하면 됩니다. -**`customer_uid`** **string** + **`customer_uid`** **string** -**카드 빌링키** + **카드 빌링키** -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -**`amount`** **Integer** + **`amount`** **Integer** -**결제금액** + **결제금액** -결제창에 표시될 금액으로 0원 이상 설정시 실 결제가 발생됩니다. + 결제창에 표시될 금액으로 0원 이상 설정시 실 결제가 발생됩니다. -(실 결제를 원하지 않은 경우 amount 금액을 0원으로 설정합니다.) + (실 결제를 원하지 않은 경우 amount 금액을 0원으로 설정합니다.) -**빌링키(customer_uid)로 결제 요청하기** + **빌링키(customer\_uid)로 결제 요청하기** -빌링키 발급이 성공하면 실 빌링키는 customer_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + 빌링키 발급이 성공하면 실 빌링키는 customer\_uid 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. customer\_uid를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` - - + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + @@ -156,6 +157,5 @@ curl -H "Content-Type: application/json" \ -**카카오페이 간편결제는 스마트폰 카카오 앱상에서 진행됩니다.** - + **카카오페이 간편결제는 스마트폰 카카오 앱상에서 진행됩니다.** diff --git a/src/content/docs/ko/pg/simple/naver.mdx b/src/content/docs/ko/pg/simple/naver.mdx index 0434c6397..e99a441a8 100644 --- a/src/content/docs/ko/pg/simple/naver.mdx +++ b/src/content/docs/ko/pg/simple/naver.mdx @@ -3,11 +3,11 @@ title: 네이버페이(결제형) description: 네이버페이 결제형 연동 방법을 안내합니다. --- -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Details from "~/components/gitbook/Details.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 네이버페이 채널 설정하기 @@ -18,421 +18,411 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 2.결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 -네이버페이 결제형 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request_pay(param, +네이버페이 결제형 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 IMP.request\_pay(param, callback) 호출 후 **callback** 으로 수신 되며 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "naverpay.{파트너 ID}", - merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - naverUseCfm: "20221231", // 이용완료일자(필요시 설정합니다) - naverPopupMode: true, // 팝업모드 활성화 - m_redirect_url: "{결제 완료 후 리디렉션 될 URL}", - naverPurchaserName: "구매자이름", - naverPurchaserBirthday: "20151201", - naverChainId: "sAMplEChAINid", - naverMerchantUserKey: "고객사의 사용자 키", - naverCultureBenefit:true // 문화비 소득공제 적용여부 - naverProducts: [ - { - "categoryType": "BOOK", - "categoryId": "GENERAL", - "uid": "107922211", - "name": "한국사", - "payReferrer": "NAVER_BOOK", - "sellerId": "sellerA", - "count": 10 - }, - { - "categoryType": "MUSIC", - "categoryId": "CD", - "uid": "299911002", - "name": "러블리즈", - "payReferrer": "NAVER_BOOK", - "sellerId": "sellerB", - "count": 1 - } - ] -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "naverpay.{파트너 ID}", + merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + naverUseCfm: "20221231", // 이용완료일자(필요시 설정합니다) + naverPopupMode: true, // 팝업모드 활성화 + m_redirect_url: "{결제 완료 후 리디렉션 될 URL}", + naverPurchaserName: "구매자이름", + naverPurchaserBirthday: "20151201", + naverChainId: "sAMplEChAINid", + naverMerchantUserKey: "고객사의 사용자 키", + naverCultureBenefit: true, // 문화비 소득공제 적용여부 + naverProducts: [ + { + categoryType: "BOOK", + categoryId: "GENERAL", + uid: "107922211", + name: "한국사", + payReferrer: "NAVER_BOOK", + sellerId: "sellerA", + count: 10, + }, + { + categoryType: "MUSIC", + categoryId: "CD", + uid: "299911002", + name: "러블리즈", + payReferrer: "NAVER_BOOK", + sellerId: "sellerB", + count: 1, + }, + ], + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**주요 파라미터 설명** + **주요 파라미터 설명** -**`pg`** **string** + **`pg`** **string** -**PG사 구분코드** + **PG사 구분코드** -`naverpay` 로 지정하면 됩니다. + `naverpay` 로 지정하면 됩니다. -\ -**`merchant_uid`** **\*** **string** + **`merchant_uid`** **\*** **string** -**주문번호** + **주문번호** -매번 고유하게 채번되어야 합니다. + 매번 고유하게 채번되어야 합니다. -\ -**`amount`** **integer** + **`amount`** **integer** -**결제금액** + **결제금액** -**string** 이 아닌점에 유의하세요 + **string** 이 아닌점에 유의하세요 -\ -**`naverUseCfm`** **string** + **`naverUseCfm`** **string** -**이용 완료일** (`yyyyMMdd` 형식의 문자열로 **결제 당일 또는 미래의 일자**여야 함) + **이용 완료일** (`yyyyMMdd` 형식의 문자열로 **결제 당일 또는 미래의 일자**여야 함) -- 상품 유형에 따라 네이버페이-고객사 간 필수값으로 계약되는 경우 입력합니다 + - 상품 유형에 따라 네이버페이-고객사 간 필수값으로 계약되는 경우 입력합니다 -\ -**`name`** **\*** **string** + **`name`** **\*** **string** -**제품명** + **제품명** -네이버페이 내부적으로 `외 2개` 의 표현이 자동생성되므로 `xxxx 외 2개` 대신`naverProducts[0].name`(첫번째 상품명)으로 설정하길 권장합니다. + 네이버페이 내부적으로 `외 2개` 의 표현이 자동생성되므로 `xxxx 외 2개` 대신`naverProducts[0].name`(첫번째 상품명)으로 설정하길 권장합니다. -\ -**`naverPopupMode`** **boolean** + **`naverPopupMode`** **boolean** -**결제창 팝업여부** + **결제창 팝업여부** -`false`인 경우 페이지 리디렉션 방식으로 진행되며 `m_redirect_url`을 설정해야 합니다 + `false`인 경우 페이지 리디렉션 방식으로 진행되며 `m_redirect_url`을 설정해야 합니다 -\ -**`m_redirect_url`** **string** + **`m_redirect_url`** **string** -**리다이렉트 URL** + **리다이렉트 URL** -리디렉션 방식으로 진행(`naverPopupMode: false`)할 경우 결제 완료 후 리디렉션 될 URL + 리디렉션 방식으로 진행(`naverPopupMode: false`)할 경우 결제 완료 후 리디렉션 될 URL -\ -**`naverPurchaserName`** **string** + **`naverPurchaserName`** **string** -**구매자 이름** + **구매자 이름** -결제 상품이 고위험 업종에 해당하여 네이버페이 계약 당시 별도의 안내를 받은 **대상 고객사만 필수 입력**합니다. + 결제 상품이 고위험 업종에 해당하여 네이버페이 계약 당시 별도의 안내를 받은 **대상 고객사만 필수 입력**합니다. -\ -**`naverPurchaserBirthday`** **string** + **`naverPurchaserBirthday`** **string** -**구매자 생년월일(yyyyMMdd)** + **구매자 생년월일(yyyyMMdd)** -결제 상품이 고위험 업종에 해당하여 네이버페이 계약 당시 별도의 안내를 받은 **대상 고객사만 필수 입력**합니다. + 결제 상품이 고위험 업종에 해당하여 네이버페이 계약 당시 별도의 안내를 받은 **대상 고객사만 필수 입력**합니다. -\ -**`naverProducts`** **\*** **array** + **`naverProducts`** **\*** **array** -**상품정보** + **상품정보** -네이버페이 매뉴얼의 **`productItems`** 파라미터와 동일합니다. + 네이버페이 매뉴얼의 **`productItems`** 파라미터와 동일합니다. -(해당 파라미터 누락시 네이버페이 검수를 통과할 수 없습니다.) + (해당 파라미터 누락시 네이버페이 검수를 통과할 수 없습니다.) -> `naverProducts`는 다음 6개의 속성으로 하나의 상품 정보를 표현하는 객체의 배열입니다. -> -> - **`categoryType`** (필수) : [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) 참고 -> - **`categoryId`** (필수) : [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) 참고 -> - **`uid`** (필수) : 고객사 내부의 상품 고유 ID를 활용하는 것이 일반적이지만, 네이버페이 가이드 참고가 필요합니다. [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) -> - **`name`** (필수) : 주문상품의 명칭 -> - **`count`** (필수) : 상품 주문 개수 -> - **`sellerId`** (선택) : 고객사가 하위 판매자를 식별하기 위한 고유 ID(영문 대소문자 및 숫자 허용) -> - 고객사의 업종이 통신판매중개업에 해당하여 네이버페이 계약 당시 별도의 안내를 받은 대상 고객사만 필수 입력합니다. -> - 비대상 고객사는 입력하지 않습니다. -> - **`payReferrer`** (선택) : 네이버 플랫폼의 타 서비스와 제휴계약 후 유입분석을 진행하는 경우에만 입력 [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product_ref) + > `naverProducts`는 다음 6개의 속성으로 하나의 상품 정보를 표현하는 객체의 배열입니다. + > + > - **`categoryType`** (필수) : [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) 참고 + > + > - **`categoryId`** (필수) : [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) 참고 + > + > - **`uid`** (필수) : 고객사 내부의 상품 고유 ID를 활용하는 것이 일반적이지만, 네이버페이 가이드 참고가 필요합니다. [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product) + > + > - **`name`** (필수) : 주문상품의 명칭 + > + > - **`count`** (필수) : 상품 주문 개수 + > + > - **`payReferrer`** (선택) : 네이버 플랫폼의 타 서비스와 제휴계약 후 유입분석을 진행하는 경우에만 입력 [공식 매뉴얼](https://developer.pay.naver.com/docs/v2/api#etc-etc_product_ref) + > + > - **`sellerId`** (선택) : 고객사가 하위 판매자를 식별하기 위한 고유 ID(영문 대소문자 및 숫자 허용) + > - 고객사의 업종이 통신판매중개업에 해당하여 네이버페이 계약 당시 별도의 안내를 받은 대상 고객사만 필수 입력합니다. + > - 비대상 고객사는 입력하지 않습니다. -\ -**`naverChainId`** **string** + **`naverChainId`** **string** -**네이버페이 그룹형 고객사용 chain id** + **네이버페이 그룹형 고객사용 chain id** -- 같은 파트너 ID로 두개 이상의 서비스를 운영하는 그룹형 고객사의 경우에만 네이버페이로부터 전달받은 값을 필수 입력합니다. -- 비 대상 고객사는 입력하지 않습니다. + - 같은 파트너 ID로 두개 이상의 서비스를 운영하는 그룹형 고객사의 경우에만 네이버페이로부터 전달받은 값을 필수 입력합니다. + - 비 대상 고객사는 입력하지 않습니다. -\ -**`naverCultureBenefit`** **boolean** + **`naverCultureBenefit`** **boolean** -**네이버페이 도서/공연 소득공제** + **네이버페이 도서/공연 소득공제** -도서/공연 소득공제가 필요한 경우 해당 파라미터를 설정합니다. + 도서/공연 소득공제가 필요한 경우 해당 파라미터를 설정합니다. -\ -**`naverMerchantUserKey`** **string** + **`naverMerchantUserKey`** **string** -**고객사의 사용자 키** + **고객사의 사용자 키** -- 개인 아이디와 같은 개인정보 데이터는 제외하여 전달해야 합니다. -- 네이버페이 기준 **고위험군 제품을 판매하는 고객사의 경우 필수** 입력합니다. -- 비 대상 고객사는 입력하지 않습니다. + - 개인 아이디와 같은 개인정보 데이터는 제외하여 전달해야 합니다. + - 네이버페이 기준 **고위험군 제품을 판매하는 고객사의 경우 필수** 입력합니다. + - 비 대상 고객사는 입력하지 않습니다. + - + + **빌링키 발급받기** - -**빌링키 발급받기** + ```ts title="JavaScript SDK" + IMP.request_pay( + { + pg: "naverpay.{파트너 ID}", + customer_uid: "gildong_0001_1234", // 빌링, 필수 입력. + merchant_uid: "order_monthly_0001", // 상점에서 생성한 고유 주문번호 + name: "Slim 요금제(1개월 단위)", + amount: 1004, // 실 결제는 발생되지 않습니다. + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", // 필수 입력. + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + naverProductCode: "반복결제 상품코드", + naverProductCount: 5, + naverPopupMode: true, // 팝업모드 활성화 + m_redirect_url: "{등록 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -```javascript title="JavaScript SDK" -IMP.request_pay( - { - pg: "naverpay.{파트너 ID}", - customer_uid: "gildong_0001_1234", // 빌링, 필수 입력. - merchant_uid: "order_monthly_0001", // 상점에서 생성한 고유 주문번호 - name: "Slim 요금제(1개월 단위)", - amount: 1004, // 실 결제는 발생되지 않습니다. - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", // 필수 입력. - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - naverProductCode: "반복결제 상품코드", - naverProductCount: 5, - naverPopupMode: true, // 팝업모드 활성화 - m_redirect_url: "{등록 완료 후 리디렉션 될 URL}", - }, - function (rsp) { - // callback 로직 - /* ...중략... */ - } -); -``` + **주요 파라미터 설명** -**주요 파라미터 설명** + **`pg`** **string** -**`pg`** **string** + **PG사 구분코드** -**PG사 구분코드** + `naverpay` 로 지정하면 됩니다. -`naverpay` 로 지정하면 됩니다. + **`customer_uid`** **\*** **string** -\ -**`customer_uid`** **\*** **string** + **빌링키** -**빌링키** + - 정기/반복 결제 등록을 위해서 지정해야 합니다. 미 지정 시, 일반결제로 진행됩니다. + - 등록 후 해당 키를 사용해 반복결제 승인을 요청할 수 있습니다. -- 정기/반복 결제 등록을 위해서 지정해야 합니다. 미 지정 시, 일반결제로 진행됩니다. -- 등록 후 해당 키를 사용해 반복결제 승인을 요청할 수 있습니다. + **`merchant_uid`** **\*** **string** -\ -**`merchant_uid`** **\*** **string** + **주문번호** -**주문번호** + 매번 고유하게 채번되어야 합니다. -매번 고유하게 채번되어야 합니다. + **`amount`** **integer** -\ -**`amount`** **integer** + **결제금액** -**결제금액** + **string** 이 아닌점에 유의하세요 -**string** 이 아닌점에 유의하세요 + **정기/반복 결제 등록과정에서는 ****결제승인이 이뤄지지 않습니다****.** -**정기/반복 결제 등록과정에서는 ****결제승인이 이뤄지지 않습니다****.** + **`naverProductCode`** **\*** **string** -\ -**`naverProductCode`** **\*** **string** + **고객사의 상품코드** -**고객사의 상품코드** + - 동일한 고객이 동일상품에 대해 중복으로 반복결제 등록하는 것을 방지하기 위한 파라미터입니다. + - 기본값은 random으로 자동 생성되어 중복결제가 가능하므로 값을 지정해 주세요. -- 동일한 고객이 동일상품에 대해 중복으로 반복결제 등록하는 것을 방지하기 위한 파라미터입니다. -- 기본값은 random으로 자동 생성되어 중복결제가 가능하므로 값을 지정해 주세요. + **`naverProductCount`** **integer** -\ -**`naverProductCount`** **integer** + **결제대상 상품 수** -**결제대상 상품 수** + **`name`** **\*** **string** -\ -**`name`** **\*** **string** + **제품명** -**제품명** + 네이버페이 내부적으로 **`외 2개`** 의 표현이 자동생성되므로 **"`xxxx 외 2개"`** 대신`naverProducts[0].name`(첫번째 상품명)으로 설정하길 권장합니다. -네이버페이 내부적으로 **`외 2개`** 의 표현이 자동생성되므로 **"`xxxx 외 2개"`** 대신`naverProducts[0].name`(첫번째 상품명)으로 설정하길 권장합니다. + **`naverPopupMode`** **boolean** -\ -**`naverPopupMode`** **boolean** + **결제창 팝업여부** -**결제창 팝업여부** + `false`인 경우 페이지 리디렉션 방식으로 진행되며 `m_redirect_url`을 설정해야 합니다 -`false`인 경우 페이지 리디렉션 방식으로 진행되며 `m_redirect_url`을 설정해야 합니다 + **`m_redirect_url`** **string** -\ -**`m_redirect_url`** **string** + **리다이렉트 URL** -**리다이렉트 URL** + 리디렉션 방식으로 진행(`naverPopupMode`: **false**)할 경우 결제 완료 후 리디렉션 될 URL -리디렉션 방식으로 진행(`naverPopupMode`: **false**)할 경우 결제 완료 후 리디렉션 될 URL + **`naverActionType`** **string** -\ -**`naverActionType`** **string** + **신규 등록/수단 변경 여부** -**신규 등록/수단 변경 여부** + 네이버페이를 통해 발급한 빌링키의 결제 수단을 변경하고자 하는 경우 포트원 빌링키인 `customer_uid`를 동일하게 입력하고, `naverActionType` 파라미터를 `CHANGE`로 입력하여 빌링키를 재발급해야 합니다. -네이버페이를 통해 발급한 빌링키의 결제 수단을 변경하고자 하는 경우 포트원 빌링키인 `customer_uid`를 동일하게 입력하고, `naverActionType` 파라미터를 `CHANGE`로 입력하여 빌링키를 재발급해야 합니다. + `naverActionType` 파라미터를 이용하지 않고 동일한 고객의 정보로 추가 빌링키를 발급 시도하면 이전의 결제 수단 정보가 구매자의 네이버페이 계정에 그대로 남아있어 문제가 발생할 수 있습니다. -`naverActionType` 파라미터를 이용하지 않고 동일한 고객의 정보로 추가 빌링키를 발급 시도하면 이전의 결제 수단 정보가 구매자의 네이버페이 계정에 그대로 남아있어 문제가 발생할 수 있습니다. + - `NEW`(default) : 신규 등록 + - `CHANGE` 결제 수단 변경 -- `NEW`(default) : 신규 등록 -- `CHANGE` 결제 수단 변경 + **결제요청하기** -**결제요청하기** + 빌링키 발급이 완료되면 설정한 **`customer_uid`** 를 이용하여 결제승인 API를 호출하여 결제를 요청하거나 결제를 예약할 수 있습니다 -빌링키 발급이 완료되면 설정한 **`customer_uid`** 를 이용하여 결제승인 API를 호출하여 결제를 요청하거나 결제를 예약할 수 있습니다 + **결제 요청방법** -**결제 요청방법** + REST API [**/subscribe/payments/again**](../../api/api-4/api) 를 호출하여 결제를 요청할 수 있습니다. -REST API [**/subscribe/payments/again**](../../api/api-4/api) 를 호출하여 결제를 요청할 수 있습니다. + - `customer_uid`: 정기/반복결제 등록 시 사용된 해당 고객의 `customer_uid` + - `merchant_uid`: 고객사 주문번호 + - `amount`: 결제승인 요청금액 (결제고객 등록 시 지정된 금액과 달라도 무방함) + - `tax_free`: `amount` 중 면세공급가액 (기본값: 0) + - `name`: 주문의 명칭 + - `extra.naverUseCfm`: 이용 완료일(yyyyMMdd 형식의 문자열로 결제 당일 또는 미래의 일자여야 함) 상품 유형에 따라, 네이버페이-고객사 간 필수값으로 계약되는 경우 입력합니다. -- `customer_uid`: 정기/반복결제 등록 시 사용된 해당 고객의 `customer_uid` -- `merchant_uid`: 고객사 주문번호 -- `amount`: 결제승인 요청금액 (결제고객 등록 시 지정된 금액과 달라도 무방함) -- `tax_free`: `amount` 중 면세공급가액 (기본값: 0) -- `name`: 주문의 명칭 -- `extra.naverUseCfm`: 이용 완료일(yyyyMMdd 형식의 문자열로 결제 당일 또는 미래의 일자여야 함) 상품 유형에 따라, 네이버페이-고객사 간 필수값으로 계약되는 경우 입력합니다. + ```json title="sample json" + { + "customer_uid": "gildong_0001_1234", + "merchant_uid": "order_monthly_0002", //재사용 불가 + "amount": 10000, + "name": "Slim 요금제(최초과금)", + "extra": { + "naverUseCfm": "20201001" + } + } + ``` -```json title="sample json" -{ - "customer_uid": "gildong_0001_1234", - "merchant_uid": "order_monthly_0002", //재사용 불가 - "amount": 10000, - "name": "Slim 요금제(최초과금)", - "extra": { - "naverUseCfm": "20201001" - } -} -``` + ```http title="form-urlencoded" + customer_uid={고객사의 결제 고객을 특정하는 Unique Key}&merchant_uid={고객사 주문번호}&amount=10000&name=Slim 요금제(최초과금)&extra[naverUseCfm]=20201001 + ``` -```title="form-urlencoded" -customer_uid={고객사의 결제 고객을 특정하는 Unique Key}&merchant_uid={고객사 주문번호}&amount=10000&name=Slim 요금제(최초과금)&extra[naverUseCfm]=20201001 -``` + **결제 예약방법** -**결제 예약방법** + REST API [**/subscribe/payments/schedule**](../../api/api-3/api)를 호출하여 결제예약을 할 수 있습니다. -REST API[ **/subscribe/payments/schedule**](../../api/api-3/api)를 호출하여 결제예약을 할 수 있습니다. + - `customer_uid` : 정기/반복결제 등록 시 사용된 해당 고객의 `customer_uid` -- `customer_uid` : 정기/반복결제 등록 시 사용된 해당 고객의 `customer_uid` -- `schedules` : 결제 예약 정보 객체 배열(1개 이상 설정 가능) - - `merchant_uid` : 고객사 주문번호 - - `schedule_at` : 결제요청 예약시각 (UNIX timestamp) - - `amount` : 결제승인 요청금액 (결제고객 등록 시 지정된 금액과 달라도 무방함) - - `extra.naverUseCfm` : 이용 완료일(yyyyMMdd 형식의 문자열로 결제 당일 또는 미래의 일자여야 함) 상품 유형에 따라, 네이버페이-고객사 간 필수값으로 계약되는 경우 입력합니다. + - `schedules` : 결제 예약 정보 객체 배열(1개 이상 설정 가능) + - `merchant_uid` : 고객사 주문번호 + - `schedule_at` : 결제요청 예약시각 (UNIX timestamp) + - `amount` : 결제승인 요청금액 (결제고객 등록 시 지정된 금액과 달라도 무방함) + - `extra.naverUseCfm` : 이용 완료일(yyyyMMdd 형식의 문자열로 결제 당일 또는 미래의 일자여야 함) 상품 유형에 따라, 네이버페이-고객사 간 필수값으로 계약되는 경우 입력합니다. -```json title="sample json" -{ - "customer_uid": "gildong_0001_1234", - "schedules": [ + ```json title="sample json" { - "merchant_uid": "order_monthly_0003", //재사용 불가 - "schedule_at": 1519862400, - "amount": 10000, - "extra": { - "naverUseCfm": "20201001" - } + "customer_uid": "gildong_0001_1234", + "schedules": [ + { + "merchant_uid": "order_monthly_0003", //재사용 불가 + "schedule_at": 1519862400, + "amount": 10000, + "extra": { + "naverUseCfm": "20201001" + } + } + ] } - ] -} -``` + ``` -```title="form-urlencoded" -customer_uid={고객사의 결제 고객을 특정하는 Unique Key}&schedules[0][merchant_uid]={고객사 주문번호}&schedules[0][schedule_at]={결제요청 예약시각 UNIX timestamp}&schedules[0][amount]=10000&schedules[0][extra][naverUseCfm]=20201001\ -``` - - + ```http title="form-urlencoded" + customer_uid={고객사의 결제 고객을 특정하는 Unique Key}&schedules[0][merchant_uid]={고객사 주문번호}&schedules[0][schedule_at]={결제요청 예약시각 UNIX timestamp}&schedules[0][amount]=10000&schedules[0][extra][naverUseCfm]=20201001\ + ``` + -**연동 주의사항** + **연동 주의사항** -#### 에레 메세지를 가공하지 않은 상태로 노출해야합니다. + ### 에러 메세지를 가공하지 않은 상태로 노출해야합니다. -결제창 호출(IMP.request_pay 함수)후 결제창 하단의 "취소" 버튼 클릭 등으로 결제 프로세스가 중단되거나 잔액 부족, 한도 초과, 10원 미만 결제 등의 사유로 결제에 실패하면 콜백 함수(popup 방식)/m_redirect_url(리디렉션 방식)로 전달되는 결제 결과(response 객체/쿼리 파라미터)에 실패 사유(error_msg)가 전달됩니다. -이 에러 메시지는 사용자에게 가공 없이 그대로 노출되어야 합니다. 해당 내용을 준수하지 않는 경우 네이버페이 검수 진행시 수정 요청이 있을 수 있습니다. + 결제창 호출(IMP.request\_pay 함수)후 결제창 하단의 "취소" 버튼 클릭 등으로 결제 프로세스가 중단되거나 + 잔액 부족, 한도 초과, 10원 미만 결제 등의 사유로 결제에 실패하면 + 콜백 함수(popup 방식)/m\_redirect\_url(리디렉션 방식)로 전달되는 결제 결과(response 객체/쿼리 파라미터)에 실패 사유(error\_msg)가 전달됩니다. + 이 에러 메시지는 사용자에게 가공 없이 그대로 노출되어야 합니다. 해당 내용을 준수하지 않는 경우 네이버페이 검수 진행시 수정 요청이 있을 수 있습니다. -예) error_msg가 "잔액 부족"이라고 가정할때, "결제에 실패하였습니다. 실패 사유:" + "잔액 부족"과 같은 형태로 가공되면 안됨 + 예) error\_msg가 "잔액 부족"이라고 가정할때, "결제에 실패하였습니다. 실패 사유:" + "잔액 부족"과 같은 형태로 가공되면 안됨 -#### 최소 결제 금액에 대해 예외 처리해야 합니다. + ### 최소 결제 금액에 대해 예외 처리해야 합니다. -네이버페이 결제형의 경우 10원 이상부터 결제가 가능합니다. 10원 미만의 경우 결제 요청에 대해 예외 처리가 필요합니다. + 네이버페이 결제형의 경우 10원 이상부터 결제가 가능합니다. 10원 미만의 경우 결제 요청에 대해 예외 처리가 필요합니다. -예) 사용자에게 최소 결제 금액이 10원이라 결제를 할 수 없다는 의미를 담는 에러 메시지가 노출되어야 함 + 예) 사용자에게 최소 결제 금액이 10원이라 결제를 할 수 없다는 의미를 담는 에러 메시지가 노출되어야 함 -#### 환불 API 요청 시 추가 속성 + ### 환불 API 요청 시 추가 속성 -아임포트 환불 API인 `POST /payments/cancel` 호출 시 다음 추가 속성를 설정해야 합니다. + 포트원 환불 API인 `POST /payments/cancel` 호출 시 다음 추가 속성를 설정해야 합니다. -- `extra.requester` : API를 호출하는 출처. 다음 중 선택 : - - customer : 구매자에 의한 요청 - - admin(기본값) : 어드민에 의한 요청 -- `reason`: 결제 취소 사유. + - `extra.requester` : API를 호출하는 출처. 다음 중 선택 : + - customer : 구매자에 의한 요청 + - admin(기본값) : 어드민에 의한 요청 -**예시(json)** + - `reason`: 결제 취소 사유. -``` -{ - "imp_uid" : "imp_123412341234", //환불처리할 아임포트 거래번호 - "amount" : 3000, //환불할 금액 - "reason": "결제 취소 사유", //실제 사유와 같아야 함 - "extra" : { - "requester" : "customer" - } -} -``` + **예시(json)** -**예시(form-urlencoded)** + ```json + { + "imp_uid": "imp_123412341234", //환불처리할 아임포트 거래번호 + "amount": 3000, //환불할 금액 + "reason": "결제 취소 사유", //실제 사유와 같아야 함 + "extra": { + "requester": "customer" + } + } + ``` -``` -imp_uid=imp_123412341234&amount=3000&extra[requester]=customer -``` + **예시(form-urlencoded)** + ```http + imp_uid=imp_123412341234&amount=3000&extra[requester]=customer + ``` -**"API 호출 권한이 없습니다"** - -네이버페이 결제형 연동은 **네이버페이 검수진행이 시작되기 전까지는 운영환경에서 결제창 호출시** + **"API 호출 권한이 없습니다"** -**위와 같은 오류가 도출**됩니다. 해당 부분은 -검수가 진행되면 해결되는 부분이기 때문에 무시해주시면 됩니다. + 네이버페이 결제형 연동은 **네이버페이 검수진행이 시작되기 전까지는 운영환경에서 결제창 호출시** + **위와 같은 오류가 도출**됩니다. 해당 부분은 + 검수가 진행되면 해결되는 부분이기 때문에 무시해주시면 됩니다.
-

거래 취소 시 유의사항

+

거래 취소 시 유의사항

-포트원 환불 API인 `POST` [**`/payments/cancel`**](../../api/api-1/api) 호출시 아래 파라미터를 반드시 설정해 주셔야 합니다. (**해당 파라미터 누락시 네이버페이 실 검수를 통과할 수 없습니다.**) + 포트원 환불 API인 `POST` [**`/payments/cancel`**](../../api/api-1/api) 호출시 아래 파라미터를 반드시 설정해 주셔야 합니다. + (**해당 파라미터 누락시 네이버페이 실 검수를 통과할 수 없습니다.**) -- **`extra.requester`**: API를 호출하는 출처 - - **`customer`**: 구매자에 의한 요청 - - **`admin`**(기본값): 어드민에 의한 요청 -- **`reason`**: 결제 취소 사유. + - **`extra.requester`**: API를 호출하는 출처 + - **`customer`**: 구매자에 의한 요청 + - **`admin`**(기본값): 어드민에 의한 요청 -**예시(json)** + - **`reason`**: 결제 취소 사유. -```javascript -{ - "imp_uid" : "imp_123412341234", //환불처리할 포트원 거래고유번호 - "amount" : 3000, //환불할 금액 - "reason": "결제 취소 사유", //실제 사유와 같아야 함 - "extra" : { - "requester" : "customer" - } -} -``` + **예시(json)** -**예시(form-urlencoded)** + ```json + { + "imp_uid": "imp_123412341234", //환불처리할 포트원 거래고유번호 + "amount": 3000, //환불할 금액 + "reason": "결제 취소 사유", //실제 사유와 같아야 함 + "extra": { + "requester": "customer" + } + } + ``` -``` -imp_uid=imp_123412341234&amount=3000&extra[requester]=customer -``` + **예시(form-urlencoded)** + ```http + imp_uid=imp_123412341234&amount=3000&extra[requester]=customer + ```
diff --git a/src/content/docs/ko/pg/simple/payco.mdx b/src/content/docs/ko/pg/simple/payco.mdx index 81f7df77f..861a82a19 100644 --- a/src/content/docs/ko/pg/simple/payco.mdx +++ b/src/content/docs/ko/pg/simple/payco.mdx @@ -3,11 +3,11 @@ title: 페이코 description: 페이코 결제 연동방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Codepen from "~/components/gitbook/Codepen.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 페이코 채널 설정하기 @@ -15,135 +15,135 @@ import Tab from "~/components/gitbook/tabs/Tab.astro";
-## 2.결제 요청하기 +## 2. 결제 요청하기 [JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 페이코 결제창을 호출할 수 있습니다. **결제결과**는 PC의 경우 `IMP.request_pay(param, callback)` 호출 후 **callback** 으로 수신되 -모바일의 경우 **m_redirect_url** 로 리디렉션됩니다. +모바일의 경우 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "payco.{CPID}", - merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456" -}, function(rsp) { // callback 로직 - /* ...중략... */ -}); -``` - -**주요 파라미터 설명** - -**`pg`** **string** - -**PG사 구분코드** - -**`payco`** 로 지정하면 됩니다. + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "payco.{CPID}", + merchant_uid: "order_no_0001", // 상점에서 관리하는 주문 번호 + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**`pay_method`** **\*** **string** + **주요 파라미터 설명** -**결제수단 구분코드** + **`pg`** **string** -- card (신용카드) -- trans (실시간 계좌이체) -- vbank(가상계좌) + **PG사 구분코드** -**`merchant_uid`** **\*** **string** + **`payco`** 로 지정하면 됩니다. -**`고객사 주문번호`** + **`pay_method`** **\*** **string** -매번 고유하게 채번되어야 합니다. + **결제수단 구분코드** -**`buyer_tel`** **\*** **`string`** + - card (신용카드) + - trans (실시간 계좌이체) + - vbank(가상계좌) -**구매자 연락처** + **`merchant_uid`** **\*** **string** -필수 파라미터 입니다. + **`고객사 주문번호`** -**`amount`** **\*** **`integer`** + 매번 고유하게 채번되어야 합니다. -**결제금액** + **`buyer_tel`** **\*** **`string`** -**string** 이 아닌점에 유의하세요 + **구매자 연락처** - + 필수 파라미터 입니다. - + **`amount`** **\*** **`integer`** - -인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. + **결제금액** - -**amount 금액** + **string** 이 아닌점에 유의하세요 -- 금액이 설정되어도 실결제는 발생되지 않습니다. + + - + + 인증결제창 호출 파라미터에서 **customer\_uid** 값을 추가하면 비 인증 결제창을 호출할 수 있습니다. -```javascript title="JavaScript SDK" -IMP.request_pay( - { - pg: "payco.{CPID}", - merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 - name: "PAYCO 자동결제 등록", - amount: 1000, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. - customer_uid: "your-customer-unique-id", // 필수 입력. - buyer_email: "test@portone.io", - buyer_name: "포트원", - buyer_tel: "02-1234-1234", - }, - function (rsp) { - if (rsp.success) { - alert("빌링키 발급(자동결제 등록) 성공"); - } else { - alert("빌링키 발급(자동결제 등록) 실패"); - } - } -); -``` + + **amount 금액** -**주요 파라미터 설명** + - 금액이 설정되어도 실결제는 발생되지 않습니다. + -**`pg`** **string** + ```ts title="JavaScript SDK" + IMP.request_pay( + { + pg: "payco.{CPID}", + merchant_uid: "order_monthly_0001", // 상점에서 관리하는 주문 번호 + name: "PAYCO 자동결제 등록", + amount: 1000, // 결제창에 표시될 금액. 실제 승인이 이뤄지지는 않습니다. + customer_uid: "your-customer-unique-id", // 필수 입력. + buyer_email: "test@portone.io", + buyer_name: "포트원", + buyer_tel: "02-1234-1234", + }, + function (rsp) { + if (rsp.success) { + alert("빌링키 발급(자동결제 등록) 성공"); + } else { + alert("빌링키 발급(자동결제 등록) 실패"); + } + }, + ); + ``` -**PG사 구분코드** + **주요 파라미터 설명** -**`payco`** 로 지정하면 됩니다. + **`pg`** **string** -**`customer_uid`** **string** + **PG사 구분코드** -**카드 빌링키** + **`payco`** 로 지정하면 됩니다. -비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. + **`customer_uid`** **string** -**`amount`** **Integer** + **카드 빌링키** -**결제금액** + 비 인증 결제창에서 고객이 입력한 카드정보와 1:1로 매칭될 빌링키를 지정합니다. -금액이 설정되어도 실 결제는 발생되지 않습니다. + **`amount`** **Integer** -**빌링키(`customer_uid`)로 결제 요청하기** + **결제금액** -빌링키 발급이 성공하면 실 빌링키는 `customer_uid` 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. `customer_uid`를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. + 금액이 설정되어도 실 결제는 발생되지 않습니다. -```sh title="server-side" -curl -H "Content-Type: application/json" \ - -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ - https://api.iamport.kr/subscribe/payments/again -``` + **빌링키(`customer_uid`)로 결제 요청하기** - + 빌링키 발급이 성공하면 실 빌링키는 `customer_uid` 와 1:1 매칭되어 **포트원 서버에 저장**됩니다. `customer_uid`를 고객사 내부서버에 저장하시고 [**비 인증 결제요청 REST API**](../../api/api-4/api)를 호출하시면 결제를 발생시킬 수 있습니다. - -**페이코는 API 비 인증 결제를 지원하지 않습니다.** + ```sh title="server-side" + curl -H "Content-Type: application/json" \ + -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \ + https://api.iamport.kr/subscribe/payments/again + ``` + - + + **페이코는 API 비 인증 결제를 지원하지 않습니다.** + diff --git a/src/content/docs/ko/pg/simple/readme.mdx b/src/content/docs/ko/pg/simple/readme.mdx index c0c00ff7c..9bcbe0a62 100644 --- a/src/content/docs/ko/pg/simple/readme.mdx +++ b/src/content/docs/ko/pg/simple/readme.mdx @@ -7,7 +7,6 @@ coverY: 0 --- import ContentRef from "~/components/gitbook/ContentRef.astro"; -import EasyGuideLink from "~/components/EasyGuideLink.tsx"; diff --git a/src/content/docs/ko/pg/simple/toss-brandpay/module.mdx b/src/content/docs/ko/pg/simple/toss-brandpay/module.mdx index bf174990b..9f07c2794 100644 --- a/src/content/docs/ko/pg/simple/toss-brandpay/module.mdx +++ b/src/content/docs/ko/pg/simple/toss-brandpay/module.mdx @@ -3,206 +3,195 @@ title: 모듈 로딩 연동 description: 토스페이먼츠 브랜드페이의 모듈 로딩에 연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Details from "~/components/gitbook/Details.astro"; -import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; ## 모듈 로드 파라미터 정의 - -```javascript title="Javascript SDK" -await IMP.loadModule( - 'toss-brandpay', - { - userCode: 'imp00000000', //// 관리자 콘솔 - 결제 연동 페이지에서 확인 가능합니다. - }, - { - customerKey: 'd005f081-830a-4b9c-b5e2-73e56fbe6ac3', - loadBrandpayOptions: { - ui: { - buttonStyle: "default", - highlightColor: "#3182f6", - navigationBar: { - visible: true, - paddingTop: 10, - }, - labels: { - oneTouchPay: "원터치결제", + + ```ts title="Javascript SDK" + await IMP.loadModule( + "toss-brandpay", + { + userCode: "imp00000000", //// 관리자 콘솔 - 결제 연동 페이지에서 확인 가능합니다. + }, + { + customerKey: "d005f081-830a-4b9c-b5e2-73e56fbe6ac3", + loadBrandpayOptions: { + ui: { + buttonStyle: "default", + highlightColor: "#3182f6", + navigationBar: { + visible: true, + paddingTop: 10, + }, + labels: { + oneTouchPay: "원터치결제", + }, }, }, - } - } -); -``` - -
-

주요 파라미터 설명

+ }, + ); + ``` -**`moduleType`** **\*** **string** +
+

주요 파라미터 설명

-**모듈 타입** + **`moduleType`** **\*** **string** -브랜드페이의 경우 `toss-brandpay` 를 사용합니다. + **모듈 타입** -**`userCode`** **\*** **string** + 브랜드페이의 경우 `toss-brandpay` 를 사용합니다. -**고객사 식별코드** + **`userCode`** **\*** **string** -`IMP` 로 시작하는 포트원 고객사 식별코드입니다. + **고객사 식별코드** -**`tier_code`** **string** + `IMP` 로 시작하는 포트원 고객사 식별코드입니다. -**하위상점(Tier)의 고유코드** + **`tier_code`** **string** -[상점·계정 관리]-[하위 상점 관리]에서 하위 상점을 생성한 경우에만 사용 가능합니다. 하위상점 고유코드는 알파벳 대문자 또는 숫자만 입력가능하며, 3자까지 입력 가능합니다. + **하위상점(Tier)의 고유코드** -**`loadBrandpayOptions`** **Object** + \[상점·계정 관리]-\[하위 상점 관리]에서 하위 상점을 생성한 경우에만 사용 가능합니다. 하위상점 고유코드는 알파벳 대문자 또는 숫자만 입력가능하며, 3자까지 입력 가능합니다. -브랜드페이의 모듈 로딩에 필요한 추가 파라미터입니다. -`moduleType`을 `toss-brandpay`로 설정하는 경우 필요합니다. + **`loadBrandpayOptions`** **Object** -**`loadBrandpayOptions.customer_id`** **\*** **string** + 브랜드페이의 모듈 로딩에 필요한 추가 파라미터입니다. + `moduleType`을 `toss-brandpay`로 설정하는 경우 필요합니다. -**구매자 ID** + **`loadBrandpayOptions.customer_id`** **\*** **string** -고객 ID입니다. 다른사용자에게 노출될 경우, 악의적 사용에 대한 문제가 있음으로 자동 증가하는 숫자는 허용되지 않습니다. -UUID 등 유추가 불가능한 무작위 값을 사용하시길 권장드립니다. + **구매자 ID** -**`loadBrandpayOptions.ui`** **Object** + 고객 ID입니다. 다른사용자에게 노출될 경우, 악의적 사용에 대한 문제가 있음으로 자동 증가하는 숫자는 허용되지 않습니다. + UUID 등 유추가 불가능한 무작위 값을 사용하시길 권장드립니다. -브랜드페이의 경우 결제창의 UI를 커스터마이징이 가능하며, 아래의 옵션들을 제공하고 있습니다. -포트원을 통한 연동 후 `IMP.request_pay` 호출 시 `bypass.toss_brandpay.ui` 객체 정보를 추가하여 UI 커스터마이징 기능을 사용할 수 있습니다. + **`loadBrandpayOptions.ui`** **Object** -**`loadBrandpayOptions.ui.buttonStyle`** **string** + 브랜드페이의 경우 결제창의 UI를 커스터마이징이 가능하며, 아래의 옵션들을 제공하고 있습니다. + 포트원을 통한 연동 후 `IMP.request_pay` 호출 시 `bypass.toss_brandpay.ui` 객체 정보를 추가하여 UI 커스터마이징 기능을 사용할 수 있습니다. -**버튼스타일 구분코드** + **`loadBrandpayOptions.ui.buttonStyle`** **string** -버튼 스타일입니다. 값을 넣지 않으면 기본값인 `default`로 설정됩니다. -`default`로 설정하면 모서리가 둥글고 주변에 여백을 가진 버튼을 사용할 수 있고, `full`로 설정하면 하단 영역이 전부 채워지는 형태의 버튼을 사용할 수 있습니다. + **버튼스타일 구분코드** -**`loadBrandpayOptions.ui.highlightColor`** **string** + 버튼 스타일입니다. 값을 넣지 않으면 기본값인 `default`로 설정됩니다. + `default`로 설정하면 모서리가 둥글고 주변에 여백을 가진 버튼을 사용할 수 있고, `full`로 설정하면 하단 영역이 전부 채워지는 형태의 버튼을 사용할 수 있습니다. -**UI 메인 색상** + **`loadBrandpayOptions.ui.highlightColor`** **string** -UI의 메인 색상입니다. 값을 넣지 않으면 기본 색상인 `#3182f6`로 설정됩니다. [웹에서 사용할 수 있는 색상 코드 형식](https://developer.mozilla.org/ko/docs/Web/CSS/color_value)을 모두 사용할 수 있습니다. + **UI 메인 색상** -**`loadBrandpayOptions.ui.navigationBar.visible`** **boolean** + UI의 메인 색상입니다. 값을 넣지 않으면 기본 색상인 `#3182f6`로 설정됩니다. [웹에서 사용할 수 있는 색상 코드 형식](https://developer.mozilla.org/ko/docs/Web/CSS/color_value)을 모두 사용할 수 있습니다. -**내비게이션 바 사용 여부** + **`loadBrandpayOptions.ui.navigationBar.visible`** **boolean** -화면 뒤로 가기 기능을 제공하는 내비게이션 바 사용 여부입니다. 값을 넣지 않으면 기본값인 `true`로 설정됩니다. 내비게이션 바를 사용하지 않으려면 `false`로 설정해야 합니다. + **내비게이션 바 사용 여부** -**`loadBrandpayOptions.ui.navigationBar.paddingTop`** **number** + 화면 뒤로 가기 기능을 제공하는 내비게이션 바 사용 여부입니다. 값을 넣지 않으면 기본값인 `true`로 설정됩니다. 내비게이션 바를 사용하지 않으려면 `false`로 설정해야 합니다. -**내비게이션 바 상단 여백** + **`loadBrandpayOptions.ui.navigationBar.paddingTop`** **number** -내비게이션 바 위쪽에 설정할 여백 값입니다. 값의 단위는 `px`입니다. + **내비게이션 바 상단 여백** -**`loadBrandpayOptions.ui.labels.oneTouchPay`** **string** + 내비게이션 바 위쪽에 설정할 여백 값입니다. 값의 단위는 `px`입니다. -**원터치결제 대체 텍스트** + **`loadBrandpayOptions.ui.labels.oneTouchPay`** **string** -UI에 표시되는 `원터치결제`를 대신해 사용할 텍스트입니다. 값을 넣지 않으면 `원터치결제`로 표시됩니다. + **원터치결제 대체 텍스트** -
- + UI에 표시되는 `원터치결제`를 대신해 사용할 텍스트입니다. 값을 넣지 않으면 `원터치결제`로 표시됩니다. +
+
## 모듈로드 결과값 정의 - -```javascript title="Javascript SDK" -const brandpayModule = await IMP.loadModule( - 'toss-brandpay', - { - userCode: 'imp00000000', //// 관리자 콘솔 - 결제 연동 페이지에서 확인 가능합니다. - }, - { - customerKey: 'd005f081-830a-4b9c-b5e2-73e56fbe6ac3', - loadBrandpayOptions: { - ui: { - buttonStyle: "default", - highlightColor: "#3182f6", - navigationBar: { - visible: true, - paddingTop: 10, - }, - labels: { - oneTouchPay: "원터치결제", + + ```ts title="Javascript SDK" + const brandpayModule = await IMP.loadModule( + "toss-brandpay", + { + userCode: "imp00000000", //// 관리자 콘솔 - 결제 연동 페이지에서 확인 가능합니다. + }, + { + customerKey: "d005f081-830a-4b9c-b5e2-73e56fbe6ac3", + loadBrandpayOptions: { + ui: { + buttonStyle: "default", + highlightColor: "#3182f6", + navigationBar: { + visible: true, + paddingTop: 10, + }, + labels: { + oneTouchPay: "원터치결제", + }, }, }, - } - } -); - -brandpayModule.setupPassword() -brandpayModule.getPaymentMethods() -brandpayModule.openSettings() - -```` - - -
-

setupPassword 설명

- -결제할 때 사용할 비밀번호를 설정할 수 있는 메서드입니다. 비밀번호 등록・변경이 완료되면 Promise가 resolve됩니다. + }, + ); -자세한 내용은 [토스페이먼츠의 개발자센터 문서](https://docs.tosspayments.com/reference/brandpay-sdk#setuppassword) 를 참고하세요. + brandpayModule.setupPassword(); + brandpayModule.getPaymentMethods(); + brandpayModule.openSettings(); + ``` + -```javascript title="Javascript SDK" -brandpayModule.setupPassword() - .catch(function (error) { - if (error.code === 'USER_CANCEL') { - // 사용자가 창을 닫아 취소한 경우에 대한 처리 - } - }) -``` +
+

setupPassword 설명

-
-
-

getPaymentMethods 설명

+ 결제할 때 사용할 비밀번호를 설정할 수 있는 메서드입니다. 비밀번호 등록・변경이 완료되면 Promise가 resolve됩니다. -등록되어 있는 결제 수단을 조회하는 메서드입니다. 조회가 성공했을 때 Promise가 resolve되고 고객의 결제수단 정보(BrandpayMethodResponse)가 반환됩니다. - -자세한 내용은 [토스페이먼츠의 개발자센터 문서](https://docs.tosspayments.com/reference/brandpay-sdk#getpaymentmethods) 를 참고하세요. - -```javascript title="Javascript SDK" -brandpayModule - .getPaymentMethods() - .then(function (methods) { - // 성공 처리 - }) - .catch(function (error) { - if (error.code === 'USER_CANCEL') { - // 사용자가 결제창을 닫은 경우 에러 처리 - } - }) -``` - -
-
-

openSettings 설명

- -브랜드페이에서 사용하는 결제수단, 비밀번호 설정을 관리하는 결제 관리창을 열 수 있습니다. - -자세한 내용은 [토스페이먼츠의 개발자센터 문서](https://docs.tosspayments.com/reference/brandpay-sdk#opensettings) 를 참고하세요. - -```javascript title="Javascript SDK" -brandpayModule.openSettings().catch(function (error) { - if (error.code === 'USER_CANCEL') { - // 사용자가 창을 닫아 취소한 경우에 대한 처리 - } -}) -``` - -
+ 자세한 내용은 [토스페이먼츠의 개발자센터 문서](https://docs.tosspayments.com/reference/brandpay-sdk#setuppassword) 를 참고하세요. + ```ts title="Javascript SDK" + brandpayModule.setupPassword().catch(function (error) { + if (error.code === "USER_CANCEL") { + // 사용자가 창을 닫아 취소한 경우에 대한 처리 + } + }); + ``` +
+ +
+

getPaymentMethods 설명

+ + 등록되어 있는 결제 수단을 조회하는 메서드입니다. 조회가 성공했을 때 Promise가 resolve되고 고객의 결제수단 정보(BrandpayMethodResponse)가 반환됩니다. + + 자세한 내용은 [토스페이먼츠의 개발자센터 문서](https://docs.tosspayments.com/reference/brandpay-sdk#getpaymentmethods) 를 참고하세요. + + ```ts title="Javascript SDK" + brandpayModule + .getPaymentMethods() + .then(function (methods) { + // 성공 처리 + }) + .catch(function (error) { + if (error.code === "USER_CANCEL") { + // 사용자가 결제창을 닫은 경우 에러 처리 + } + }); + ``` +
+ +
+

openSettings 설명

+ + 브랜드페이에서 사용하는 결제수단, 비밀번호 설정을 관리하는 결제 관리창을 열 수 있습니다. + + 자세한 내용은 [토스페이먼츠의 개발자센터 문서](https://docs.tosspayments.com/reference/brandpay-sdk#opensettings) 를 참고하세요. + + ```ts title="Javascript SDK" + brandpayModule.openSettings().catch(function (error) { + if (error.code === "USER_CANCEL") { + // 사용자가 창을 닫아 취소한 경우에 대한 처리 + } + }); + ``` +
- -``` -```` diff --git a/src/content/docs/ko/pg/simple/toss-brandpay/readme.mdx b/src/content/docs/ko/pg/simple/toss-brandpay/readme.mdx index 29b3a0ee8..c1fc8ad41 100644 --- a/src/content/docs/ko/pg/simple/toss-brandpay/readme.mdx +++ b/src/content/docs/ko/pg/simple/toss-brandpay/readme.mdx @@ -4,12 +4,11 @@ title: 토스페이먼츠 브랜드페이 description: 토스페이먼츠 브랜드페이 연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Details from "~/components/gitbook/Details.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; ## 1. 토스페이먼츠 브랜드페이 채널 설정하기 @@ -30,19 +29,18 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; -#### **기존에 deprecated된 콜백 응답은 모두 제거**됐습니다. + ## **기존에 deprecated된 콜백 응답은 모두 제거**됐습니다. -신규 JS SDK는 기존 모듈에서 제공했던 CallBack 응답 파라미터가 대부분 삭제되었습니다. -(특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) + 신규 JS SDK는 기존 모듈에서 제공했던 CallBack 응답 파라미터가 대부분 삭제되었습니다. + (특히 deprecated 로 명시된 파라미터는 모두 삭제되었습니다.) -해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. + 해당 JS SDK 사용시 Callback 으로 내려받을수 있는 데이터는 오직 아래 두가지 입니다. -**`imp_uid`, `merchant_uid`** - -따라서 해당 SDK를 사용하실때는 `IMP.request_pay`로부터 응답된 객체(또는 쿼리 파라미터)에서 -`imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 -응답 파라미터 중 `status` 파라미터로 결제 상태를 파악하셔야 합니다. + **`imp_uid`, `merchant_uid`** + 따라서 해당 SDK를 사용하실때는 `IMP.request_pay`로부터 응답된 객체(또는 쿼리 파라미터)에서 + `imp_uid`를 가지고 **아임포트 REST API(GET `/payments/imp_uid`)로 결제 상세 내역(승인 상태, 승인 결과 등등)을 조회**하여 + 응답 파라미터 중 `status` 파라미터로 결제 상태를 파악하셔야 합니다. [JavaScript SDK](../../../sdk/javascript-sdk/readme) 문서를 통해 최신 SDK를 설치해주세요. @@ -56,78 +54,76 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; 수신됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "toss_brandpay.{상점 ID}", - pay_method: "toss_brandpay", - merchant_uid: "orderNo0001", - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - customer_id: "d005f081-830a-4b9c-b5e2-73e56fbe6ac3", - bypass: { - isCulturalExpense: true - } - }, - function (rsp) { - // callback 로직 - } -); -``` - -
-

주요 파라미터 설명

- -**`pg`** **\*** **string** + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "toss_brandpay.{상점 ID}", + pay_method: "toss_brandpay", + merchant_uid: "orderNo0001", + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + customer_id: "d005f081-830a-4b9c-b5e2-73e56fbe6ac3", + bypass: { + isCulturalExpense: true, + }, + }, + function (rsp) { + // callback 로직 + }, + ); + ``` -**PG사 구분코드** +
+

주요 파라미터 설명

-`toss_brandpay` 로 지정하면 됩니다. + **`pg`** **\*** **string** -**`pay_method`** **\*** **string** + **PG사 구분코드** -**결제수단 구분코드** + `toss_brandpay` 로 지정하면 됩니다. -`toss_brandpay` 로 지정하면 됩니다. + **`pay_method`** **\*** **string** -**`merchant_uid`** **\*** **string** + **결제수단 구분코드** -**주문번호** + `toss_brandpay` 로 지정하면 됩니다. -매번 고유하게 채번되어야 합니다. + **`merchant_uid`** **\*** **string** -**`name`** **\*** **string** + **주문번호** -**주문명** + 매번 고유하게 채번되어야 합니다. -**`amount`** **\*** **integer** + **`name`** **\*** **string** -**결제금액** + **주문명** -브랜드페이는 원화 결제만 지원합니다. KRW 기준으로 금액을 입력해주세요. + **`amount`** **\*** **integer** -**`buyer_email`** **string** + **결제금액** -**구매자 email 주소** + 브랜드페이는 원화 결제만 지원합니다. KRW 기준으로 금액을 입력해주세요. -**`customer_id`** **\*** **string** + **`buyer_email`** **string** -**구매자 ID** + **구매자 email 주소** -고객 ID입니다. 다른사용자에게 노출될 경우, 악의적 사용에 대한 문제가 있음으로 자동 증가하는 숫자는 허용되지 않습니다. -UUID 등 유추가 불가능한 무작위 값을 사용하시길 권장드립니다. + **`customer_id`** **\*** **string** -**`bypass.isCulturalExpense`** **\*** **string** + **구매자 ID** -**도서 문화비 결제 여부** + 고객 ID입니다. 다른사용자에게 노출될 경우, 악의적 사용에 대한 문제가 있음으로 자동 증가하는 숫자는 허용되지 않습니다.\ + UUID 등 유추가 불가능한 무작위 값을 사용하시길 권장드립니다. -도서 문화비 소득 공제 결제 여부를 나타내는 파라미터입니다. 기본값은 `false`입니다. + **`bypass.isCulturalExpense`** **\*** **string** -
+ **도서 문화비 결제 여부** -
+ 도서 문화비 소득 공제 결제 여부를 나타내는 파라미터입니다. 기본값은 `false`입니다. +
+
## 3. UI 커스터마이징 @@ -138,77 +134,75 @@ UUID 등 유추가 불가능한 무작위 값을 사용하시길 권장드립니 커스터마이징 기능을 사용할 수 있습니다. - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "toss_brandpay.{상점 ID}", - pay_method: "toss_brandpay", - merchant_uid: "orderNo0001", - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - bypass: { - toss_brandpay: { - brandpayOptions: { - ui: { - buttonStyle: "default", - highlightColor: "#3182f6", - navigationBar: { - visible: true, - paddingTop: 10, - }, - labels: { - oneTouchPay: "원터치결제", + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "toss_brandpay.{상점 ID}", + pay_method: "toss_brandpay", + merchant_uid: "orderNo0001", + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + bypass: { + toss_brandpay: { + brandpayOptions: { + ui: { + buttonStyle: "default", + highlightColor: "#3182f6", + navigationBar: { + visible: true, + paddingTop: 10, + }, + labels: { + oneTouchPay: "원터치결제", + }, + }, }, }, }, }, - }, - }, - function (rsp) { - // callback 로직 - } -); -``` - -**`buttonStyle`** **string** + function (rsp) { + // callback 로직 + }, + ); + ``` -**버튼스타일 구분코드** + **`buttonStyle`** **string** -- 버튼 스타일입니다. 값을 넣지 않으면 기본값인 `default`로 설정됩니다. -- `default`로 설정하면 모서리가 둥글고 주변에 여백을 가진 버튼을 사용할 수 있고, `full`로 설정하면 하단 영역이 전부 채워지는 형태의 버튼을 사용할 수 있습니다. + **버튼스타일 구분코드** -**`highlightColor`** **string** + - 버튼 스타일입니다. 값을 넣지 않으면 기본값인 `default`로 설정됩니다. + - `default`로 설정하면 모서리가 둥글고 주변에 여백을 가진 버튼을 사용할 수 있고, `full`로 설정하면 하단 영역이 전부 채워지는 형태의 버튼을 사용할 수 있습니다. -**UI 메인 색상** + **`highlightColor`** **string** -- UI의 메인 색상입니다. -- 값을 넣지 않으면 기본 색상인 `#3182f6`로 설정됩니다. -- [웹에서 사용할 수 있는 색상 코드 형식](https://developer.mozilla.org/ko/docs/Web/CSS/color_value)을 모두 사용할 수 있습니다. + **UI 메인 색상** -**`navigationBar.visible`** **boolean** + - UI의 메인 색상입니다. + - 값을 넣지 않으면 기본 색상인 `#3182f6`로 설정됩니다. + - [웹에서 사용할 수 있는 색상 코드 형식](https://developer.mozilla.org/ko/docs/Web/CSS/color_value)을 모두 사용할 수 있습니다. -**내비게이션 바 사용 여부** + **`navigationBar.visible`** **boolean** -- 화면 뒤로 가기 기능을 제공하는 내비게이션 바 사용 여부입니다. -- 값을 넣지 않으면 기본값인 `true`로 설정됩니다. -- 내비게이션 바를 사용하지 않으려면 `false`로 설정해야 합니다. + **내비게이션 바 사용 여부** -**`navigationBar.paddingTop`** **number** + - 화면 뒤로 가기 기능을 제공하는 내비게이션 바 사용 여부입니다. + - 값을 넣지 않으면 기본값인 `true`로 설정됩니다. + - 내비게이션 바를 사용하지 않으려면 `false`로 설정해야 합니다. -**내비게이션 바 상단 여백** + **`navigationBar.paddingTop`** **number** -- 내비게이션 바 위쪽에 설정할 여백 값입니다. 값의 단위는 `px`입니다. + **내비게이션 바 상단 여백** -**`labels.oneTouchPay`** **string** + - 내비게이션 바 위쪽에 설정할 여백 값입니다. 값의 단위는 `px`입니다. -**원터치결제 대체 텍스트** + **`labels.oneTouchPay`** **string** -- UI에 표시되는 `원터치결제`를 대신해 사용할 텍스트입니다. 값을 넣지 않으면 `원터치결제`로 표시됩니다. + **원터치결제 대체 텍스트** - + - UI에 표시되는 `원터치결제`를 대신해 사용할 텍스트입니다. 값을 넣지 않으면 `원터치결제`로 표시됩니다. + ## 4. 결제수단 지정 바로 결제 @@ -222,135 +216,129 @@ IMP.request_pay( 있는, `getPaymentMethods()` 함수를 통해 확인할 수 있습니다. - - -```javascript title="Javascript SDK" -IMP.request_pay( - { - pg: "toss_brandpay.{상점 ID}", - pay_method: "toss_brandpay", - merchant_uid: "orderNo0001", - name: "주문명:결제테스트", - amount: 1004, - buyer_email: "test@portone.io", - customer_id: "d005f081-830a-4b9c-b5e2-73e56fbe6ac3", - useCardPoint: true, - display: { - card_quota: [6], - }, - bypass: { - cashReceiptType: "personal", - customerIdentifier: "01000000000", - toss_brandpay: { - methodId: "3nKLoSBV7l8zUHU14cZxK", - discountCode: "001", + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "toss_brandpay.{상점 ID}", + pay_method: "toss_brandpay", + merchant_uid: "orderNo0001", + name: "주문명:결제테스트", + amount: 1004, + buyer_email: "test@portone.io", + customer_id: "d005f081-830a-4b9c-b5e2-73e56fbe6ac3", + useCardPoint: true, + display: { + card_quota: [6], + }, + bypass: { + cashReceiptType: "personal", + customerIdentifier: "01000000000", + toss_brandpay: { + methodId: "3nKLoSBV7l8zUHU14cZxK", + discountCode: "001", + }, + }, }, - }, - }, - function (rsp) { - // callback 로직 - } -); -``` - -### 기타 파라미터 - -아래 파라미터를 사용하기 위해서는 결제 수단 ID인 `methodId`를 지정하여 함께 결제 요청해야 합니다. - - + function (rsp) { + // callback 로직 + }, + ); + ``` -#### **브랜드페이 위젯에서 사용할 수 없는 파라미터** 가 포함되어 있습니다. + ### 기타 파라미터 -아래 파라미터는 브랜드페이 위젯에서는 사용할 수 없습니다. + 아래 파라미터를 사용하기 위해서는 결제 수단 ID인 `methodId`를 지정하여 함께 결제 요청해야 합니다. -- **`display.card_quot`** -- **`useCardPoint`** -- **`bypass.cashReceiptType`** -- **`bypass.customerIdentifier`** + + #### **브랜드페이 위젯에서 사용할 수 없는 파라미터** 가 포함되어 있습니다. - + 아래 파라미터는 브랜드페이 위젯에서는 사용할 수 없습니다. -**`useCardPoint`** **boolean** + - **`display.card_quot`** + - **`useCardPoint`** + - **`bypass.cashReceiptType`** + - **`bypass.customerIdentifier`** + -**카드사 포인트 사용 여부** + **`useCardPoint`** **boolean** -- 카드사 포인트를 사용 여부를 지정하는 값입니다. -- `true` 입력 시 카드사 포인트 사용이 가능하며, 입력하지 않는 경우 기본값은 `false`입니다. -- (단, 카드사 포인트를 사용하기 위해서는 사전에 토스페이먼츠를 통해 계약이 진행되어야 합니다.) + **카드사 포인트 사용 여부** -**`display.card_quota`** **number array** + - 카드사 포인트를 사용 여부를 지정하는 값입니다. + - `true` 입력 시 카드사 포인트 사용이 가능하며, 입력하지 않는 경우 기본값은 `false`입니다. + - (단, 카드사 포인트를 사용하기 위해서는 사전에 토스페이먼츠를 통해 계약이 진행되어야 합니다.) -**카드 할부 개월 수** + **`display.card_quota`** **number array** -- 카드 결제 시 할부 개월 수를 지정할 수 있습니다. -- `[3]` 형식으로 전달하면 3개월 할부로 결제가 진행됩니다. -- (단, 일반적으로 결제금액이 5만원 이상일 때만 적용됩니다.) + **카드 할부 개월 수** -**`bypass.cashReceiptType`** **string** + - 카드 결제 시 할부 개월 수를 지정할 수 있습니다. + - `[3]` 형식으로 전달하면 3개월 할부로 결제가 진행됩니다. + - (단, 일반적으로 결제금액이 5만원 이상일 때만 적용됩니다.) -**현금영수증 발급 타입** + **`bypass.cashReceiptType`** **string** -- `unable`로 설정시 현금영수증을 발행하지 않으며, `personal`로 설정 시에는 소득 공제용, `corporate`으로 설정 시에는 지출 증빙용으로 현금영수증을 발급합니다. -- `anonymous`으로 설정하는 경우 현금영수증 자진발급됩니다. 기본값은 `unable`입니다. + **현금영수증 발급 타입** -**`bypass.customerIdentifier`** **string** + - `unable`로 설정시 현금영수증을 발행하지 않으며, `personal`로 설정 시에는 소득 공제용, `corporate`으로 설정 시에는 지출 증빙용으로 현금영수증을 발급합니다. + - `anonymous`으로 설정하는 경우 현금영수증 자진발급됩니다. 기본값은 `unable`입니다. -**현금영수증 발급 식별번호** + **`bypass.customerIdentifier`** **string** -- 현금영수증 발급을 위한 식별번호입니다. -- 현금영수증 종류에 따라 휴대폰번호, 사업자등록번호, 현금영수증 카드번호를 입력할 수 있습니다. + **현금영수증 발급 식별번호** -**`bypass.toss_brandpay.discountCode`** **string** + - 현금영수증 발급을 위한 식별번호입니다. + - 현금영수증 종류에 따라 휴대폰번호, 사업자등록번호, 현금영수증 카드번호를 입력할 수 있습니다. -**카드사 즉시 할인 코드** + **`bypass.toss_brandpay.discountCode`** **string** -- 토스페이먼츠의 [카드혜택 조회 API](https://docs.tosspayments.com/reference#%EC%B9%B4%EB%93%9C-%ED%98%9C%ED%83%9D-%EC%A1%B0%ED%9A%8C-1)로 적용할 수 있는 할인 코드 목록을 조회할 수 있습니다. -- 해당 API는 포트원을 통해 지원이 불가능하므로, 직접 토스페이먼츠 API를 연동하여 사용해야 합니다. + **카드사 즉시 할인 코드** -### 브랜드페이 위젯 전용 파라미터 + - 토스페이먼츠의 [카드혜택 조회 API](https://docs.tosspayments.com/reference#%EC%B9%B4%EB%93%9C-%ED%98%9C%ED%83%9D-%EC%A1%B0%ED%9A%8C-1)로 적용할 수 있는 할인 코드 목록을 조회할 수 있습니다. + - 해당 API는 포트원을 통해 지원이 불가능하므로, 직접 토스페이먼츠 API를 연동하여 사용해야 합니다. -아래 파라미터를 사용하기 위해서는 결제 수단 ID인 `methodId`를 지정하여 함께 결제 요청해야 합니다. + ### 브랜드페이 위젯 전용 파라미터 - + 아래 파라미터를 사용하기 위해서는 결제 수단 ID인 `methodId`를 지정하여 함께 결제 요청해야 합니다. -#### 브랜드페이 위젯에서만 사용 가능한 파라미터입니다. - -`bypass.toss_brandpay.widgetOptions` 에 설정되어야 합니다. - - + + #### 브랜드페이 위젯에서만 사용 가능한 파라미터입니다. -**`methodType`** **string** + `bypass.toss_brandpay.widgetOptions` 에 설정되어야 합니다. + -**위젯에 보여줄 결제 수단** + **`methodType`** **string** -- 위젯에 보여줄 결제수단을 선택합니다. -- `카드`, `계좌` 중 하나입니다. 예를 들어 `카드`를 선택하면 등록한 결제수단 중 `카드`만 노출됩니다. + **위젯에 보여줄 결제 수단** -**`methodId`** **string** + - 위젯에 보여줄 결제수단을 선택합니다. + - `카드`, `계좌` 중 하나입니다. 예를 들어 `카드`를 선택하면 등록한 결제수단 중 `카드`만 노출됩니다. -**위젯에서 기본 결제수단으로 선택할 결제수단의 ID** + **`methodId`** **string** -- 위젯을 열었을때, 해당 methodId에 해당하는 결제수단이 가장 먼저 보여집니다. -- 가장 최근에 결제한 카드를 보여주거나, 유저가 선호하는 카드를 보여줄 때 사용할 수 있습니다. + **위젯에서 기본 결제수단으로 선택할 결제수단의 ID** -**`ui.promotionSection.summary.visible`** **boolean** + - 위젯을 열었을때, 해당 methodId에 해당하는 결제수단이 가장 먼저 보여집니다. + - 가장 최근에 결제한 카드를 보여주거나, 유저가 선호하는 카드를 보여줄 때 사용할 수 있습니다. -**혜택 배지 영역 표시여부** + **`ui.promotionSection.summary.visible`** **boolean** -- 해택 배지 영역에서는 즉시 할인 대상 카드 정보 등을 간략히 보여줍니다. 기본값은 `true`입니다. + **혜택 배지 영역 표시여부** -**`ui.promotionSection.description.visible`** **boolean** + - 해택 배지 영역에서는 즉시 할인 대상 카드 정보 등을 간략히 보여줍니다. 기본값은 `true`입니다. -**혜택 배지 영역 표시여부** + **`ui.promotionSection.description.visible`** **boolean** -- 결제 해택 영역을 보여주거나 숨깁니다. 기본값은 `true`입니다. + **혜택 배지 영역 표시여부** -**`ui.promotionSection.description.defaultOpen`** **boolean** + - 결제 해택 영역을 보여주거나 숨깁니다. 기본값은 `true`입니다. -**결제 혜택 상세 설명 표시 여부** + **`ui.promotionSection.description.defaultOpen`** **boolean** -- 결제 혜택의 상세 설명을 보여주거나 숨깁니다. -- `true`인 경우, 결제 카드사의 결제 혜택을 자세히 설명합니다. 기본값은 `false`입니다. + **결제 혜택 상세 설명 표시 여부** - + - 결제 혜택의 상세 설명을 보여주거나 숨깁니다. + - `true`인 경우, 결제 카드사의 결제 혜택을 자세히 설명합니다. 기본값은 `false`입니다. + diff --git a/src/content/docs/ko/pg/simple/toss-brandpay/warning.mdx b/src/content/docs/ko/pg/simple/toss-brandpay/warning.mdx index d37048579..4a414a546 100644 --- a/src/content/docs/ko/pg/simple/toss-brandpay/warning.mdx +++ b/src/content/docs/ko/pg/simple/toss-brandpay/warning.mdx @@ -4,7 +4,6 @@ description: 토스페이먼츠 브랜드페이 연동 유의사항을 소개합 --- import Details from "~/components/gitbook/Details.astro"; -import Figure from "~/components/Figure.astro"; ## 카드 결제 @@ -17,21 +16,22 @@ import Figure from "~/components/Figure.astro"; 할부 개월 수로 결제가 진행됩니다.
-

파라미터 사용 예시

- -- 예1. 6개월 할부로 결제를 하고자 하는 경우 - -```jsx -display: { - card_quota: [6] -}, -bypass: { - toss_brandpay: { - methodId: "c_j429K3djbS01dlk" // 브랜드페이에 등록된 결제 수단의 ID +

파라미터 사용 예시

+ + - 예1. 6개월 할부로 결제를 하고자 하는 경우 + + ```json + { + "display": { + "card_quota": [6] + }, + "bypass": { + "toss_brandpay": { + "methodId": "c_j429K3djbS01dlk" // 브랜드페이에 등록된 결제 수단의 ID + } + } } -} -``` - + ```
## 현금영수증 유의사항 @@ -45,17 +45,18 @@ bypass: { 요청 및 승인이 완료되면 현금영수증이 소득공제용 자진발급으로 발급됩니다.
-

파라미터 사용 예시

- -```jsx -bypass: { - cashReceiptType : "anonymous", - toss_brandpay: { - methodId: "c_j429K3djbS01dlk" // 브랜드페이에 등록된 결제 수단의 ID +

파라미터 사용 예시

+ + ```json + { + "bypass": { + "cashReceiptType": "anonymous", + "toss_brandpay": { + "methodId": "c_j429K3djbS01dlk" // 브랜드페이에 등록된 결제 수단의 ID + } + } } -} -``` - + ```
## 취소관련 유의사항 diff --git a/src/content/docs/ko/pg/simple/toss-brandpay/widget.mdx b/src/content/docs/ko/pg/simple/toss-brandpay/widget.mdx index 3d3aea2a9..dfa3bfe71 100644 --- a/src/content/docs/ko/pg/simple/toss-brandpay/widget.mdx +++ b/src/content/docs/ko/pg/simple/toss-brandpay/widget.mdx @@ -4,16 +4,12 @@ title: 브랜드페이 위젯 연동 description: 토스페이먼츠 브랜드페이 위젯 연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; -import Details from "~/components/gitbook/Details.astro"; import Figure from "~/components/Figure.astro"; import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; -import Tab from "~/components/gitbook/tabs/Tab.astro"; -import screenshot1 from "./_assets/widget_example.png"; import screenshot2 from "./_assets/loadui.png"; import screenshot3 from "./_assets/updateloadui.png"; +import screenshot1 from "./_assets/widget_example.png"; - 브랜드페이의 경우 고객사의 주문 페이지에 바로 브랜드페이를 통한 결제가 가능하도록 브랜드페이 UI를 렌더링 할 수 있는 위젯 기능을 제공합니다. @@ -69,20 +65,19 @@ import screenshot3 from "./_assets/updateloadui.png"; ``` -### 위젯이 렌더링 되지 않을 때 - -`portone-ui-container` 라는 class 이름을 갖는 div -element를 찾지 못할 경우 **portone-ui-container를 찾을 수 없습니다.** 라는 에러가 -발생합니다. + ### 위젯이 렌더링 되지 않을 때 -`portone-ui-container` element가 2개 이상인데, `data-portone-ui-type` -attribute가 `toss-brandpay-widget`인 element를 찾지 못할 경우, **data-portone-ui-type에 -올바른 UI 타입을 입력해주세요.** 라는 에러가 발생합니다. + `portone-ui-container` 라는 class 이름을 갖는 div + element를 찾지 못할 경우 **portone-ui-container를 찾을 수 없습니다.** 라는 에러가 + 발생합니다. -`portone-ui-container` element가 2개 이상이고, `data-portone-ui-type` -attribute가 `oss-brandpay-widget`인 elemente도 2개 이상인 경우, **동일한 data-portone-ui-type을 -갖는 DOM element가 2개 이상 존재합니다.** 라는 에러가 발생합니다. + `portone-ui-container` element가 2개 이상인데, `data-portone-ui-type` + attribute가 `toss-brandpay-widget`인 element를 찾지 못할 경우, **data-portone-ui-type에 + 올바른 UI 타입을 입력해주세요.** 라는 에러가 발생합니다. + `portone-ui-container` element가 2개 이상이고, `data-portone-ui-type` + attribute가 `oss-brandpay-widget`인 elemente도 2개 이상인 경우, **동일한 data-portone-ui-type을 + 갖는 DOM element가 2개 이상 존재합니다.** 라는 에러가 발생합니다. ## 결제 요청 데이터 업데이트 @@ -157,4 +152,4 @@ attribute가 `oss-brandpay-widget`인 elemente도 2개 이상인 경우, **동 ## loadUI 요청 객체 -loadUI 호출시 파라미터인 결제요청 데이터의 경우 IMP.request_pay의 요청데이터와 동일한 객체이므로, [브랜드페이 연동문서](readme)를 참고해주세요. +loadUI 호출시 파라미터인 결제요청 데이터의 경우 IMP.request\_pay의 요청데이터와 동일한 객체이므로, [브랜드페이 연동문서](readme)를 참고해주세요. diff --git a/src/content/docs/ko/pg/simple/toss.mdx b/src/content/docs/ko/pg/simple/toss.mdx index b6f719988..3cfb03dbe 100644 --- a/src/content/docs/ko/pg/simple/toss.mdx +++ b/src/content/docs/ko/pg/simple/toss.mdx @@ -3,11 +3,11 @@ title: 토스페이(tosspay) description: 토스페이 연동 방법을 안내합니다. --- -import Codepen from "~/components/gitbook/Codepen.astro"; import Figure from "~/components/Figure.astro"; -import Hint from "~/components/Hint.astro"; -import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Codepen from "~/components/gitbook/Codepen.astro"; import Tab from "~/components/gitbook/tabs/Tab.astro"; +import Tabs from "~/components/gitbook/tabs/Tabs.astro"; +import Hint from "~/components/Hint.astro"; 토스페이(tosspay)는 일반결제만 지원됩니다. 일반결제 및 정기결제 모두 사용하시는 고객사께서는 [토스페이(tosspay\_v2) 연동 가이드](tosspay-v2/readme)를 참고하여 진행해주세요. @@ -22,69 +22,69 @@ import Tab from "~/components/gitbook/tabs/Tab.astro"; ## 2.결제 요청하기 -[JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 토스간편결제 결제창을 호출할 수 있습니다. -**결제결과**는 PC 환경은 **callback**, 모바일 환경은 **m_redirect_url** 로 리디렉션됩니다. +[JavaScript SDK](../../sdk/javascript-sdk-old/readme) `IMP.request_pay(param, callback)`을 호출하여 +토스간편결제 결제창을 호출할 수 있습니다. +**결제결과**는 PC 환경은 **callback**, +모바일 환경은 **m\_redirect\_url** 로 리디렉션됩니다. - -```javascript title="Javascript SDK" -IMP.request_pay({ - pg: "tosspay.{PG 상점아이디}", - pay_method: "card", - merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 - name: "주문명:결제테스트", // 필수 파라미터 입니다. - amount: 1004, - buyer_email: "test@portone.io", - buyer_name: "구매자이름", - buyer_tel: "010-1234-5678", - buyer_addr: "서울특별시 강남구 삼성동", - buyer_postcode: "123-456", - m_redirect_url: "{결제 완료 후 리디렉션 될 URL}" -}, function (rsp) { // callback 로직 - /* ...중략... */ -}); -``` + + ```ts title="Javascript SDK" + IMP.request_pay( + { + pg: "tosspay.{PG 상점아이디}", + pay_method: "card", + merchant_uid: "order_no_0001", // 상점에서 생성한 고유 주문번호 + name: "주문명:결제테스트", // 필수 파라미터 입니다. + amount: 1004, + buyer_email: "test@portone.io", + buyer_name: "구매자이름", + buyer_tel: "010-1234-5678", + buyer_addr: "서울특별시 강남구 삼성동", + buyer_postcode: "123-456", + m_redirect_url: "{결제 완료 후 리디렉션 될 URL}", + }, + function (rsp) { + // callback 로직 + /* ...중략... */ + }, + ); + ``` -**주요 파라미터 설명** + **주요 파라미터 설명** -**`pg`** **string** + **`pg`** **string** -**PG사 구분코드** + **PG사 구분코드** -**`tosspay`** 로 지정하면 됩니다. + **`tosspay`** 로 지정하면 됩니다. -**`pay_method`** **string** + **`pay_method`** **string** -**결제수단 구분코드** + **결제수단 구분코드** -신용카드 : `card` | 계좌이체 : `trans` + 신용카드 : `card` | 계좌이체 : `trans` -**`name`** **\*** **`string`** + **`name`** **\*** **`string`** -**제품명** + **제품명** -**`merchant_uid`** **\*** **string** + **`merchant_uid`** **\*** **string** -**주문번호** + **주문번호** -매번 고유하게 채번되어야 합니다. + 매번 고유하게 채번되어야 합니다. -**`amount`** **integer** + **`amount`** **integer** -**결제금액** + **결제금액** -**string** 이 아닌점에 유의하세요 + **string** 이 아닌점에 유의하세요 - - - + + -**토스페이 간편결제는 스마트폰 토스 앱상에서 결제가 진행됩니다.** - + **토스페이 간편결제는 스마트폰 토스 앱상에서 결제가 진행됩니다.** diff --git a/src/content/docs/ko/pg/simple/tosspay-v2/caution.mdx b/src/content/docs/ko/pg/simple/tosspay-v2/caution.mdx index a08b5039e..bfaf39489 100644 --- a/src/content/docs/ko/pg/simple/tosspay-v2/caution.mdx +++ b/src/content/docs/ko/pg/simple/tosspay-v2/caution.mdx @@ -3,13 +3,13 @@ title: 연동 유의사항 description: (신) 토스페이 연동 유의사항을 소개합니다. --- -# 토스페이와 사전 계약이 필요한 경우 +## 토스페이와 사전 계약이 필요한 경우 아래 기능을 사용하시려면 토스페이에 사전 신청 후 계약이 완료되어야 합니다. - 비인증 결제 -# 공통사항 +## 공통사항 ### 매출전표 @@ -17,10 +17,10 @@ description: (신) 토스페이 연동 유의사항을 소개합니다. ### 현금영수증 발급 -토스페이의 경우, 현금영수증 발급에 대한 정보를 따로 입력받지 않고, 앱에 저장된 식별정보로 현금영수증을 발급합니다. +토스페이의 경우, 현금영수증 발급에 대한 정보를 따로 입력받지 않고, 앱에 저장된 식별정보로 현금영수증을 발급합니다. 이 떄문에 현금영수증 타입을 `personal`, `corporate`로 지정하더라도 실제로는 다른 타입의 현금영수증이 발급될 수 있습니다. -# 비인증 결제 관련 +## 비인증 결제 관련 ### 빌링키 발급 웹훅 연동 권장 @@ -33,7 +33,7 @@ description: (신) 토스페이 연동 유의사항을 소개합니다. 매핑관계를 따로 저장하고 웹훅으로 전달받은 `merchant_uid`와 매핑된 `customer_uid`를 이용해 빌링키 정보 조회 API를 호출하여 빌링키 정보를 가져올 수 있습니다. -```javascript title="웹훅 바디 예시" +```json title="웹훅 바디 예시" { "imp_uid": "imp_895265444670", "merchant_uid": "oid_a12512basbasdasdfqwfasd", @@ -41,7 +41,7 @@ description: (신) 토스페이 연동 유의사항을 소개합니다. } ``` -### customer_uid 재사용 주의 +### customer\_uid 재사용 주의 새로운 빌링키를 발급할 때 기존에 발급했던 빌링키와 동일한 `customer_uid`를 사용하여 기존에 발급된 빌링키를 덮어씌우지 않도록 주의하세요. 토스페이의 경우 한번 빌링키를 발급했던 수단을 재사용 할 수 @@ -54,7 +54,7 @@ description: (신) 토스페이 연동 유의사항을 소개합니다. 빌링키에 연결된 결제수단을 서비스 내부적으로 사용하고 있다면 해당 정보를 보여주기 전 포트원의 빌링키 정보 조회 API를 호출하여 데이터를 최신화하기를 권장합니다. -# 결제 취소 관련 +## 결제 취소 관련 ### 부가세를 직접 지정한 결제의 부분 취소 요청 시 부가세 입력은 필수 diff --git a/src/content/docs/ko/pg/simple/tosspay-v2/readme.mdx b/src/content/docs/ko/pg/simple/tosspay-v2/readme.mdx index 584da8698..d44408d0b 100644 --- a/src/content/docs/ko/pg/simple/tosspay-v2/readme.mdx +++ b/src/content/docs/ko/pg/simple/tosspay-v2/readme.mdx @@ -10,7 +10,8 @@ import Tabs from "~/components/gitbook/tabs/Tabs.astro"; import Hint from "~/components/Hint.astro"; - 토스페이(tosspay\_v2)에서는 일반결제 및 정기결제 모두 지원하고 있습니다. 신규 연동하시는 고객사께서는 해당 가이드를 참고하여 진행해주세요. + 토스페이(tosspay\_v2)에서는 일반결제 및 정기결제 모두 지원하고 있습니다. + 신규 연동하시는 고객사께서는 해당 가이드를 참고하여 진행해주세요. ## 1. 토스페이 채널 설정하기 @@ -42,7 +43,7 @@ import Hint from "~/components/Hint.astro"; - ```javascript title="Javascript SDK" + ```ts title="Javascript SDK" IMP.request_pay( { pg: "tosspay_v2.{MID}", @@ -125,7 +126,7 @@ import Hint from "~/components/Hint.astro"; 인증결제창 호출 파라미터에서 **customer\_uid**, **customer\_id**값을 추가하면 비인증 결제창을 호출할 수 있습니다. 비인증 결제창에서 빌링키를 발급받은 후 해당 빌링키로 결제를 요청합니다. - ```javascript title="Javascript SDK" + ```ts title="Javascript SDK" IMP.request_pay( { pg: "tosspay_v2.{MID}", @@ -200,7 +201,7 @@ import Hint from "~/components/Hint.astro"; 빌링키 발급 시 전달한 `customer_uid`를 이용해서 재결제([**POST /subscribe/payments/again**](../../../api/api-4/api)) REST API를 다음과 같이 호출합니다. - ```javascript + ```ts await fetch("https://api.iamport.kr/subscribe/payments/again", { method: "POST", headers: { diff --git a/src/content/docs/ko/release-note/api-sdk/2023-05-12.mdx b/src/content/docs/ko/release-note/api-sdk/2023-05-12.mdx deleted file mode 100644 index 908631be7..000000000 --- a/src/content/docs/ko/release-note/api-sdk/2023-05-12.mdx +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: 2023-05-12 업데이트 -description: 2023년 5월 12일 업데이트 소식을 안내드립니다. ---- - -import Banner from "~/components/release-note/Banner.astro"; -import Footer from "~/components/release-note/Footer.astro"; - - - -## 주요 업데이트 사항 - -### ✔️ 스마트로의 새로운 결제모듈을 이용할 수 있습니다 - -기존 결제모듈을 통해 제공되는 결제기능은 제한적이었으나, 이번 업데이트를 통해 이용 가능한 결제기능이 -대폭 확대되었습니다. 그럼, 새로운 스마트로 결제모듈의 주요 기능을 바로 소개합니다. - -- REST API 를 이용해 연동합니다 -- 기존에 발급된 연동키값(MID, 서명, 결제취소 비밀번호)을 그대로 새로운 결제모듈에서 이용할 수 있습니다 -- 정기결제를 지원합니다 -- 허브형 간편결제를 지원합니다 -- KRW, USD 결제를 지원합니다 -- 카드사 결제창 다이렉트 호출이 가능합니다 -- 에스크로 결제를 지원합니다 -- 에스크로 배송 정보를 수정할 수 있습니다 -- 면세 금액을 직접 설정할 수 있습니다 -- 회전식/고정식 가상계좌를 발급할 수 있습니다 - -본 기능 설정을 위한 자세한 내용은 관련 API 문서를 확인 바랍니다. [→ 스마트로 PG 설정하기](https://developers.portone.io/docs/ko/pg/payment-gateway/smartro-v2/readme) - -