EBP API Docs v0.5.12
EN

Purchase API - Create Payment Intent #

1. API Overview #

Purpose #

This API initializes a payment intent to start the payment process. It supports various payment methods including card, bank transfer, installment, and e-wallet. You can choose an integration method that suits your environment: either a redirect method using the EBP-provided payment URL (paymentUrl) or a direct integration method using the PG response data (pgResponse). After creating a payment intent, the user proceeds with the payment directly through the PG depending on the integration method, and EBP then receives the result to send a Webhook or the merchant calls the Payment Creation API to finalize the transaction.

Details #

ItemValue
API NameCreate Payment Intent
API Path/api/v2/payment-intents
API IDEBP_API_224
HTTP MethodPOST
RegionGlobal

[!INFO] Billing Account Creation
A billing account is automatically created in the system based on the combination of Store ID (X-Store-Id) and User Number (userNo) when a user registers a token or requests a payment for the first time, without any separate sign-up process.

After creating a payment intent, if the user completes authentication via the payment method, EBP sends a Webhook to the store to notify the result.
Detailed documentation for the Webhook can be found at the link below.
Go to Payment Authorized Webhook

2. Request Specification #

2.1 Request Header #

For detailed header information, please refer to the Common Headers documentation.

depthFieldDetails & Description
0X-Idempotency-Key

string

πŸ”΄ Required

Idempotency key to prevent duplicate processing for identical payment intent creation requests.

2.2 Request Data Schema #

depthFieldDetails & Description
0userNo

string

πŸ”΄ Required

User identification number

0userName

string

🟑 Conditional

Buyer's name. Required when using Tamara payment method.

0email

string

🟑 Conditional

Buyer's email address. Required when using Tamara payment method.

0phone

string

βšͺ Optional

Buyer's contact phone number

0paymentMethod

string

πŸ”΄ Required

Payment method code

e.g., CARD, INSTALLMENT, DIRECT_DEBIT, BANK_TRANSFER ... etc
0purchaseChannel

string

πŸ”΄ Required

Sales channel classification

e.g., WEB, APP
0merchantId

string

βšͺ Optional

Merchant ID

0successUrl

string

πŸ”΄ Required

URL to redirect after successful payment

0failureUrl

string

πŸ”΄ Required

URL to redirect if payment fails

0totalAmount

number

πŸ”΄ Required

The final total payment amount.

0subtotalAmount

number

πŸ”΄ Required

Amount before discounts.

0totalDiscountAmount

number

πŸ”΄ Required

Total discount amount.

0discountAmount

number

πŸ”΄ Required

Seller discount amount.

0lgeDiscountAmount

number

πŸ”΄ Required

LGE discount amount.

0nonCancelableAmount

number

πŸ”΄ Required

Non-cancelable amount.

0itemName

string

πŸ”΄ Required

Representative product name to be displayed on the payment screen.

0useSavedPaymentMethod

boolean

βšͺ Optional

Whether to use a saved payment method. If set to true, the payment proceeds using previously saved information.

e.g., true/false

default: false

0savePaymentMethod

boolean

βšͺ Optional

Whether to save the payment method. If set to true, the payment method is securely saved after a successful payment, and the saved information will be used for future 'Create Payment' requests.

e.g., true/false

default: false

0autoCapture

boolean

βšͺ Optional

Whether to automatically capture the payment. If set to true, capture is performed immediately after authorization. If false, a separate capture API call is required later.

e.g., true/false

default: true

0nonTaxableAmount

number

βšͺ Optional

Tax-exempt amount

0taxAmount

number

βšͺ Optional

VAT amount calculated by the store

0shippingAddress

object

🟑 Conditional

Shipping address information. Required when using Tabby or Tamara payment methods.

1addressLine1

string

🟑 Conditional

Basic shipping address. Required when using Tabby or Tamara payment methods.

1addressLine2

string

βšͺ Optional

Detailed shipping address.

1city

string

🟑 Conditional

Shipping city information. Required when using Tabby or Tamara payment methods.

1stateOrProvince

string

βšͺ Optional

Shipping state/province/region information.

1postalCode

string

🟑 Conditional

Shipping postal code. Required when using Tabby payment method.

1countryCode

string

🟑 Conditional

Shipping country code (ISO 3166-1 alpha-2). Required when using Tabby or Tamara payment methods.

0billingAddress

object

🟑 Conditional

Billing address information. Required when using Tamara payment method.

1firstName

string

🟑 Conditional

Recipient's first name for billing. Required when using Tamara payment method.

1lastName

string

🟑 Conditional

Recipient's last name for billing. Required when using Tamara payment method.

1phoneNumber

string

🟑 Conditional

Contact phone number for billing. Required when using Tamara payment method.

1addressLine1

string

🟑 Conditional

Basic billing address. Required when using Tamara payment method.

1addressLine2

string

βšͺ Optional

Detailed billing address.

1city

string

🟑 Conditional

Billing city information. Required when using Tamara payment method.

1stateOrProvince

string

βšͺ Optional

Billing state/province/region information.

1postalCode

string

βšͺ Optional

Billing postal code.

1countryCode

string

🟑 Conditional

Billing country code (ISO 3166-1 alpha-2). Required when using Tamara payment method.

0bankTransferSource

string

🟑 Conditional

Required when using Thailand Bank Transfer payment method.

e.g., mobile_banking_bay, mobile_banking_bbl, mobile_banking_kbank, mobile_banking_ktb, mobile_banking_scb
0platformType

string

🟑 Conditional

Required when using Thailand Bank Transfer payment method.

e.g., IOS, ANDROID
0installmentSource

string

🟑 Conditional

Required when using Thailand Installment payment method.

e.g., installment_bay, installment_kbank, ...
0installmentTerm

number

🟑 Conditional

Required when using Thailand Installment payment method.

e.g., 3, 5 ...
0items

array

βšͺ Optional

List of items included in the transaction

1seq

number

πŸ”΄ Required

Unique sequence number of the item within the order. Used as a reference key for cancellation and purchase confirmation.

1sellerNo

string

πŸ”΄ Required

Unique identifier for the seller

1itemType

string

βšͺ Optional

Item type

e.g., PHYSICAL: Physical goods, DIGITAL: Digital goods, SUBSCRIPTION: Subscription fee, DELIVERY: Shipping fee, SERVICE: Service fee
1itemId

string

πŸ”΄ Required

Unique identifier for the item

1itemName

string

πŸ”΄ Required

Name of the item

1feeRate

number0 .. 100

πŸ”΄ Required

Commission rate applied to the item

e.g., 10% -> 10, 0% -> 0
1quantity

number

πŸ”΄ Required

Quantity of the item purchased

1unitPrice

number

πŸ”΄ Required

Price per unit of the item

1discountAmount

number

βšͺ Optional

Discount amount provided by the seller

1lgeDiscountAmount

number

βšͺ Optional

Discount amount provided by LG

1paymentAmount

number

πŸ”΄ Required

Actual payment amount per item (Unit price - Seller discount - LG discount)

1deliveryGroupNo

string

βšͺ Optional

Group number for bundling delivery by seller

Item Type Guide

  • PHYSICAL: Physical goods (TV, Refrigerator, etc.)
  • DIGITAL: Digital goods (Software, e-Gift card, etc.)
  • SUBSCRIPTION: Subscription fee (Appliance rental, regular care service, etc.)
  • DELIVERY: Shipping fee
  • SERVICE: Service fee (Installation, removal, etc.)

Installment Payment Information (installmentSource & installmentTerm)

When using Thailand installment payments (INSTALLMENT), please note the following conditions and restrictions:

  • Amount Requirements: Only available for total payment amounts of 2,000 THB or more, and the monthly installment amount (Total Amount / Terms) must be at least 500 THB.
  • Terms by Provider: The available installmentTerm (number of months) varies depending on the selected installmentSource.
    • installment_bay (Krungsri Bank): [3, 4, 6, 9, 10]
    • installment_kbank (Kasikorn Bank): [3, 4, 6, 10]
    • installment_ktc (Krungthai Card): [3, 4, 5, 6, 7, 8, 9, 10]
    • installment_bbl (Bangkok Bank): [4, 6, 8, 9, 10]
    • installment_first_choice (Krungsri First Choice): [3, 4, 6, 9, 10, 12, 18, 24, 36]
    • installment_scb (Siam Commercial Bank): [3, 4, 6, 9, 10]
    • installment_ttb (TMBThanachart Bank): [3, 4, 6, 10]
    • installment_uob (United Overseas Bank): [3, 4, 6, 10]

Note:

  • See examples for delivery group number (deliveryGroupNo) here.

2.3 Request Examples #

Card
Paypal
Bank Transfer (Thailand)
Installment (Thailand)
Tamara (UAE)
Tabby (UAE)
Google Pay
Apple Pay
Klarna
iDEAL
Bizum
MB Way
Kredivo
Mybank
Sepa DD
Przelewy24
Bilk
PIX
SafetyPay
Transferncia Bancaria
Afterpay
BillEase
FPX
BoostPay
GrabPay
Maybank QR Pay
TnGo
Konbini
{
  "userNo": "AU1741850000100",
  "userName": "James Cook",
  "email": "james.cook@example.au",
  "phone": "+61-412-345-100",
  "shippingAddress": null,
  "billingAddress": null,
  "purchaseChannel": "WEB",
  "successUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/worldpay/success",
  "failureUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/worldpay/failure",
  "totalAmount": 1815,
  "subtotalAmount": 1815,
  "totalDiscountAmount": 0,
  "discountAmount": 0,
  "lgeDiscountAmount": 0,
  "nonCancelableAmount": 0,
  "nonTaxableAmount": 0,
  "taxAmount": 0,
  "itemName": "LG Gram 16\" Laptop",
  "savePaymentMethod": false,
  "items": [
    {
      "seq": 1,
      "sellerNo": "SELLER-001",
      "itemType": "PHYSICAL",
      "itemId": "AU_PROD_01",
      "itemName": "LG Gram 16\" Laptop",
      "quantity": 1,
      "unitPrice": 1800,
      "netAmount": 1800,
      "grossAmount": 1800,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    },
    {
      "seq": 2,
      "sellerNo": "SELLER-001",
      "itemType": "DELIVERY",
      "itemId": "AU_SHIP_01",
      "itemName": "Standard Delivery",
      "quantity": 1,
      "unitPrice": 15,
      "netAmount": 15,
      "grossAmount": 15,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    }
  ],
  "paymentMethod": "CARD",
  "useSavedPaymentMethod": false
}
{
  "userNo": "AU1741850000100",
  "userName": "James Cook",
  "email": "james.cook@example.au",
  "phone": "+61-412-345-100",
  "shippingAddress": null,
  "billingAddress": null,
  "purchaseChannel": "WEB",
  "successUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/worldpay/success",
  "failureUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/worldpay/failure",
  "totalAmount": 1800,
  "subtotalAmount": 1800,
  "totalDiscountAmount": 0,
  "discountAmount": 0,
  "lgeDiscountAmount": 0,
  "nonCancelableAmount": 0,
  "nonTaxableAmount": 0,
  "taxAmount": 0,
  "itemName": "LG Gram 16\" Laptop",
  "savePaymentMethod": false,
  "items": [
    {
      "seq": 1,
      "sellerNo": "SELLER-001",
      "itemType": "PHYSICAL",
      "itemId": "AU_PROD_01",
      "itemName": "LG Gram 16\" Laptop",
      "quantity": 1,
      "unitPrice": 1800,
      "netAmount": 1800,
      "grossAmount": 1800,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    }
  ],
  "paymentMethod": "PAYPAL",
  "useSavedPaymentMethod": false
}
{
  "userNo": "TH1741850000100",
  "userName": "Somchai Pak",
  "email": "somchai.p@example.th",
  "phone": "+66-81-234-1000",
  "shippingAddress": null,
  "billingAddress": null,
  "purchaseChannel": "WEB",
  "successUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/omise/success",
  "failureUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/omise/failure",
  "totalAmount": 26100,
  "subtotalAmount": 26100,
  "totalDiscountAmount": 0,
  "discountAmount": 0,
  "lgeDiscountAmount": 0,
  "nonCancelableAmount": 0,
  "nonTaxableAmount": 0,
  "taxAmount": 0,
  "itemName": "LG Nanocell 55\" TV",
  "savePaymentMethod": false,
  "items": [
    {
      "seq": 1,
      "sellerNo": "SELLER-001",
      "itemType": "PHYSICAL",
      "itemId": "TH_PROD_01",
      "itemName": "LG Nanocell 55\" TV",
      "quantity": 1,
      "unitPrice": 25900,
      "netAmount": 25900,
      "grossAmount": 25900,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    },
    {
      "seq": 2,
      "sellerNo": "SELLER-001",
      "itemType": "DELIVERY",
      "itemId": "TH_SHIP_01",
      "itemName": "Standard Shipping",
      "quantity": 1,
      "unitPrice": 200,
      "netAmount": 200,
      "grossAmount": 200,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    }
  ],
  "paymentMethod": "BANK_TRANSFER",
  "useSavedPaymentMethod": false,
  "bankTransferSource": "mobile_banking_bay",
  "platformType": "IOS"
}
{
  "userNo": "TH1741850000100",
  "userName": "Somchai Pak",
  "email": "somchai.p@example.th",
  "phone": "+66-81-234-1000",
  "shippingAddress": null,
  "billingAddress": null,
  "purchaseChannel": "WEB",
  "successUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/omise/success",
  "failureUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/omise/failure",
  "totalAmount": 26100,
  "subtotalAmount": 26100,
  "totalDiscountAmount": 0,
  "discountAmount": 0,
  "lgeDiscountAmount": 0,
  "nonCancelableAmount": 0,
  "nonTaxableAmount": 0,
  "taxAmount": 0,
  "itemName": "LG Nanocell 55\" TV",
  "savePaymentMethod": false,
  "items": [
    {
      "seq": 1,
      "sellerNo": "SELLER-001",
      "itemType": "PHYSICAL",
      "itemId": "TH_PROD_01",
      "itemName": "LG Nanocell 55\" TV",
      "quantity": 1,
      "unitPrice": 25900,
      "netAmount": 25900,
      "grossAmount": 25900,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    },
    {
      "seq": 2,
      "sellerNo": "SELLER-001",
      "itemType": "DELIVERY",
      "itemId": "TH_SHIP_01",
      "itemName": "Standard Shipping",
      "quantity": 1,
      "unitPrice": 200,
      "netAmount": 200,
      "grossAmount": 200,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "orderDiscountAllocated": 0
    }
  ],
  "paymentMethod": "INSTALLMENT",
  "useSavedPaymentMethod": false,
  "installmentSource": "installment_kbank",
  "installmentTerm": 3
}
{
    "userNo": "AE1741850000100",
    "userName": "Zayed Ahmed",
    "email": "zayed.a@example.ae",
    "phone": "+971-50-123-4100",
    "shippingAddress": {
        "addressLine1": "Burj Khalifa, Floor 122",
        "city": "Dubai",
        "state": "Dubai",
        "postalCode": "12210",
        "countryCode": "AE"
    },
    "billingAddress": {
        "addressLine1": "Burj Khalifa, Floor 122",
        "city": "Dubai",
        "countryCode": "AE"
    },
    "purchaseChannel": "WEB",
    "successUrl": "http://localhost:8080/pgui/v2/hpp/checkoutcom/success",
    "failureUrl": "http://localhost:8080/pgui/v2/hpp/checkoutcom/failure",
    "totalAmount": 2825,
    "subtotalAmount": 2825,
    "totalDiscountAmount": 0,
    "discountAmount": 0,
    "lgeDiscountAmount": 0,
    "nonCancelableAmount": 0,
    "nonTaxableAmount": 0,
    "taxAmount": 0,
    "itemName": "LG OLED G3 65\" TV",
    "savePaymentMethod": false,
    "items": [
        {
            "seq": 1,
            "sellerNo": "SELLER-001",
            "itemType": "PRODUCT",
            "itemId": "AE_PROD_01",
            "itemName": "LG OLED G3 65\" TV",
            "quantity": 1,
            "unitPrice": 2800,
            "netAmount": 2800,
            "grossAmount": 2800,
            "discountAmount": 0,
            "lgeDiscountAmount": 0,
            "orderDiscountAllocated": 0
        },
        {
            "seq": 2,
            "sellerNo": "SELLER-001",
            "itemType": "SHIPPING",
            "itemId": "AE_SHIP_01",
            "itemName": "Premium Delivery",
            "quantity": 1,
            "unitPrice": 25,
            "netAmount": 25,
            "grossAmount": 25,
            "discountAmount": 0,
            "lgeDiscountAmount": 0,
            "orderDiscountAllocated": 0
        }
    ],
    "paymentMethod": "TAMARA",
    "useSavedPaymentMethod": false
}
{
    "userNo": "AE1741850000100",
    "userName": "Zayed Ahmed",
    "email": "zayed.a@example.ae",
    "phone": "+971-50-123-4100",
    "shippingAddress": {
        "addressLine1": "Burj Khalifa, Floor 122",
        "city": "Dubai",
        "state": "Dubai",
        "postalCode": "12210",
        "countryCode": "AE"
    },
    "purchaseChannel": "WEB",
    "successUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/checkoutcom/success",
    "failureUrl": "https://devkic-pgui.nebp.lge.com/pgui/v2/hpp/checkoutcom/failure",
    "totalAmount": 1900,
    "subtotalAmount": 1900,
    "totalDiscountAmount": 0,
    "discountAmount": 0,
    "lgeDiscountAmount": 0,
    "nonCancelableAmount": 0,
    "nonTaxableAmount": 0,
    "taxAmount": 0,
    "itemName": "LG Gram 17\" Laptop",
    "savePaymentMethod": false,
    "items": [
        {
            "seq": 1,
            "sellerNo": "SELLER-001",
            "itemType": "PHYSICAL",
            "itemId": "AE_PROD_02",
            "itemName": "LG Gram 17\" Laptop",
            "quantity": 1,
            "unitPrice": 1900,
            "netAmount": 1900,
            "grossAmount": 1900,
            "discountAmount": 0,
            "lgeDiscountAmount": 0,
            "orderDiscountAllocated": 0
        }
    ],
    "paymentMethod": "TABBY",
    "useSavedPaymentMethod": false
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "GOOGLEPAY",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 20.0,
  "subtotalAmount": 20.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "In-app Purchase",
  "phone": "+15551234567",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "In-app Purchase",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 20,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "APPLEPAY",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 25.0,
  "subtotalAmount": 25.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Subscription",
  "phone": "+15559876543",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Subscription",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 25,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "KLARNA",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 120.0,
  "subtotalAmount": 120.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Fashion Item",
  "phone": "+46701234567",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Fashion Item",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 120,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "IDEAL",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 45.5,
  "subtotalAmount": 45.5,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Home Decor",
  "phone": "+31612345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Home Decor",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 45.5,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "BIZUM",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 30.0,
  "subtotalAmount": 30.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Event Ticket",
  "phone": "+34600123456",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Event Ticket",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 30,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "MBWAY",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 15.0,
  "subtotalAmount": 15.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Digital Content",
  "phone": "+351912345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Digital Content",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 15,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "KREDIVO",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 500000.0,
  "subtotalAmount": 500000.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Electronics",
  "phone": "+628123456789",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Electronics",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 500000,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "MYBANK",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 200.0,
  "subtotalAmount": 200.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Online Course",
  "phone": "+8613800138000",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Online Course",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 200,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "SEPA_DD",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 10.0,
  "subtotalAmount": 10.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Monthly Subscription",
  "phone": "+4915123456789",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Monthly Subscription",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 10,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "PRZELEWY24",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 100.0,
  "subtotalAmount": 100.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Books",
  "phone": "+48500123456",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Books",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 100,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "BILK",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 50.0,
  "subtotalAmount": 50.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Game Credits",
  "phone": "+905321234567",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Game Credits",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 50,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "PIX",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 100.0,
  "subtotalAmount": 100.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Streaming Service",
  "phone": "+5511912345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Streaming Service",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 100,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "SAFETYPAY",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 75.0,
  "subtotalAmount": 75.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Travel Booking",
  "phone": "+51912345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Travel Booking",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 75,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "TRANS_BANC",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 200.0,
  "subtotalAmount": 200.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Furniture",
  "phone": "+5521912345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Furniture",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 200,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "AFTERPAY",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 150.0,
  "subtotalAmount": 150.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Clothing",
  "phone": "+61412345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Clothing",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 150,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "BILLEASE",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 2000.0,
  "subtotalAmount": 2000.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Smartphone",
  "phone": "+639171234567",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Smartphone",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 2000,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "FPX",
  "purchaseChannel": "WEB",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 100.0,
  "subtotalAmount": 100.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Gift Card",
  "phone": "+60123456789",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Gift Card",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 100,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "BOOSTPAY",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 50.0,
  "subtotalAmount": 50.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Mobile Top-up",
  "phone": "+60123456789",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Mobile Top-up",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 50,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "GRABPAY",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 20.0,
  "subtotalAmount": 20.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Food Delivery",
  "phone": "+6581234567",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Food Delivery",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 20,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "MAYBANK_QR",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 15.0,
  "subtotalAmount": 15.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Coffee",
  "phone": "+60123456789",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Coffee",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 15,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "TNGO",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 10.0,
  "subtotalAmount": 10.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Snacks",
  "phone": "+60123456789",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Snacks",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 10,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}
{
  "userNo": "GB2501108122805",
  "paymentMethod": "CONBINI",
  "purchaseChannel": "APP",
  "successUrl": "https://example.com/success",
  "failureUrl": "https://example.com/fail",
  "totalAmount": 5000.0,
  "subtotalAmount": 5000.0,
  "totalDiscountAmount": 0.0,
  "discountAmount": 0.0,
  "lgeDiscountAmount": 0.0,
  "nonCancelableAmount": 0.0,
  "itemName": "Beverage",
  "phone": "01012345678",
  "items": [
    {
      "seq": 1,
      "sellerNo": "TEST_SELLR",
      "itemType": "PHYSICAL",
      "itemId": "Item1",
      "itemName": "Beverage",
      "feeRate": 10,
      "quantity": 1,
      "unitPrice": 5000,
      "discountAmount": 0,
      "lgeDiscountAmount": 0,
      "deliveryGroupNo": ""
    }
  ]
}

3. Response Specification #

3.1 Response Data Schema #

depthFieldDetails & Description
-1resultCode

string

πŸ”΄ Required

Result code

e.g., "0" for success, "EBP-A-0001" for error
-1message

string

πŸ”΄ Required

Result message

-1requestId

string

πŸ”΄ Required

Unique request identifier for tracking

-1timestamp

string

πŸ”΄ Required

Response timestamp in ISO 8601 format

e.g., 2025-12-19T14:24:00+09:00
-1data

object

πŸ”΄ Required

Response data (Business results)

0status

string

πŸ”΄ Required

Current status of the payment process. Represents the progress towards the final goal of 'Success'.

e.g., AUTHORIZED, ACTION_REQUIRED
0paymentUrl

string

βšͺ Optional

The URL to redirect the user to for additional action. This can be an EBP-provided bridge page or a direct authentication page provided by the PG. Mandatory if requiresClientAction is true.

0orderNo

string

πŸ”΄ Required

Order number

0pgTransactionId

string

πŸ”΄ Required

PG transaction ID

0paymentContext

string

πŸ”΄ Required

The encrypted payment context value issued by EBP. It is used as a mandatory value when calling the 'Payment Creation API'.

0successUrl

string

πŸ”΄ Required

Final URL to redirect after successful payment

0failureUrl

string

πŸ”΄ Required

Final URL to redirect after failed payment

0pgResponse

object

πŸ”΄ Required

Detailed response information from the PG

1resultCode

string

πŸ”΄ Required

PG response result code

1pgProvider

string

πŸ”΄ Required

PG(Payment Gateway) code

e.g., WORLDPAY, CHECKOUT, OMISE
1data

object

πŸ”΄ Required

Detailed PG response data. Refer to the [PG-Specific Response Data

(#32-pg-specific-response-data-pgresponsedata) section for specifications.]
0savedPaymentMethods

array

βšͺ Optional

A list of payment methods previously saved by the user. Returned only when useSavedPaymentMethod in the request is set to true.

1paymentMethod

string

πŸ”΄ Required

Payment method code

e.g., CARD, DIRECT_DEBIT
1paymentMethodId

string

πŸ”΄ Required

Unique identifier for the payment method managed within EBP

1cardNumber

string

🟑 Conditional

Masked card number (for card payment methods)

1cardIssuer

string

🟑 Conditional

Card issuer or brand name (for card payment methods)

1isBlocked

boolean

πŸ”΄ Required

Whether the payment method is blocked (true if unusable)

1pinErrorCount

number

πŸ”΄ Required

Number of PIN entry errors

1isPinRegistered

boolean

πŸ”΄ Required

Whether a PIN is registered

-1instructions

object

πŸ”΄ Required

Instructions for follow-up processing (Process control)

0nextStep

string

πŸ”΄ Required

Action instructions that the client must perform immediately to transition states.

e.g., CLIENT_ACTION, CALL_API
0completionMethod

string

πŸ”΄ Required

The subject and method by which the payment is finally completed.

e.g., WEBHOOK, API
0requiresClientAction

boolean

πŸ”΄ Required

Whether additional client action is required

0clientAction

object

βšͺ Optional

Information object for additional client actions. Mandatory if requiresClientAction is true.

1type

string

βšͺ Optional

Client action type

e.g., TOKENIZE_CARD, CREATE_SOURCE, REDIRECT_TO_HPP
1pgProvider

string

βšͺ Optional

The PG provider to handle the action

1method

string

βšͺ Optional

The HTTP Method to be used for redirect

e.g., GET, POST
0requiresFollowUpApi

boolean

πŸ”΄ Required

Whether a follow-up API call (e.g., Payment Creation API) is required

0followUpApi

object

βšͺ Optional

Follow-up API information to be called after client action. Mandatory if requiresFollowUpApi is true.

1method

string

βšͺ Optional

HTTP method of the follow-up API

e.g., POST
1url

string

βšͺ Optional

Call path of the follow-up API

1description

string

βšͺ Optional

Additional description for the follow-up API

Payment Flow and Field Usage Guide:

  1. status: Current status of the payment resource. The client checks this value to determine the progress and final success of the payment.
  2. instructions.nextStep: Indicates that the control to proceed with the payment belongs to the client when the status is ACTION_REQUIRED.
  3. instructions.requiresClientAction and clientAction: Indicates whether additional client actions are required. If requiresClientAction is true, the client must perform the specified action (e.g., Redirect to the provided paymentUrl or Directly call the SDK using PG response data) by checking clientAction.type.
  4. data.paymentUrl: URL provided by EBP by wrapping the PG's payment page. It is used when you want to handle the payment simply through redirection without complex PG integration logic. (Mainly used when clientAction.type is REDIRECT_TO_HPP)
  5. instructions.completionMethod: Specifies the subject and path for final closure of the payment process.
    • WEBHOOK: After the client action is completed, EBP receives the PG webhook and automatically processes the payment completion. Since a result webhook is subsequently sent to the store, the client moves to the result page and waits for processing.
    • API: The process finally ends only after the client directly secures authentication information and calls the EBP Payment Creation API.
  6. instructions.requiresFollowUpApi and followUpApi: Indicates whether a follow-up API call is mandatory after the client action. If requiresFollowUpApi is true, the client must directly call the final Payment Creation API, etc., referring to followUpApi.method and url.
  7. data.paymentContext: A value containing encrypted order and session information. If the completionMethod is API (or if a follow-up API call is required), this value must be included in both the Header (X-EBP-Context) and the Body (paymentContext) when calling the subsequent Payment Creation API.
    ...
    "message": "SUCCESS",
    "requestId": "06EN1Q1E42FZPN6YT5PF8BZT88",
    "timestamp": "2026-04-03T01:01:41.987427200Z",
    "data": {
    "status": "ACTION_REQUIRED",
    "paymentUrl": "/pgui/v2/hpp/worldpay/paypal/wrapping?paymentContext=QfAy+og0Pc7OaUKV92YAcF6anMj8wv9uA0Srp+d+YmRDWhV/+sootHKD63BwkLf7nPyrko...",
    "orderNo": "ORD_7202604037731552",
    "pgTransactionId": "PGI_7202604037731554",
    "paymentContext": "QfAy+og0Pc7OaUKV92YAcF6anMj8wv9uA0Srp+d+YmRDWhV/+sootHKD63BwkLf7nPyrko...",
    "savedPaymentMethods": null,
    "successUrl": "https://devkic-payapi.nebp.lge.com/pgui/v2/hpp/worldpay/success",
    ...
    "pgRefId": "3594289311",
    "returnUrl": "https://payments-test.worldpay.com/app/hpp/integration/wpg/corporate?OrderKey=LGETEST3%5EPGI_7202604037731554&Ticket=00177561010184602AR5AUHvlnns9OqZOj-c3bAP0hRdc2IKQRPpfRC&source=https%3A%2F%2Fsecure-test.worldpay.com",
    "referenceUrl": "https://payments-test.worldpay.com/app/hpp/integration/wpg/corporate?OrderKey=LGETEST3%5EPGI_7202604037731554&Ticket=00177561010184602AR5AUHvlnns9OqZOj-c3bAP0hRdc2IKQRPpfRC&source=https%3A%2F%2Fsecure-test.worldpay.com"
    }
    }
    },
    "instructions": {
    "nextStep": "CLIENT_ACTION",
    "completionMethod": "WEBHOOK",
    "requiresClientAction": true,
    "clientAction": {
    "type": "REDIRECT_TO_HPP",
    "pgProvider": "WORLDPAY",
    "method": "POST"
    },
    "requiresFollowUpApi": false,
    "followUpApi": null
    }
    }

[tab:Card (Checkout.com)]
...
  "message": "SUCCESS",
  "requestId": "06EN4BVGAT0TJTK2EJ8RM21ZE0",
  "timestamp": "2026-04-03T07:12:16.131035200Z",
  "data": {
    "status": "ACTION_REQUIRED",
    "paymentUrl": "/pgui/v2/hpp/checkoutcom/card/wrapping?paymentContext=QfAy%2Bog0Pc7OaUKV92YAcJpgE%2F5feUx7nKM7nsA2oMRDWhV%2F%2B...",
    "orderNo": "ORD_7202604037731761",
    "pgTransactionId": "PGI_7202604037731763",
    "paymentContext": "QfAy+og0Pc7OaUKV92YAcJpgE/5feUx7nKM7nsA2oMRDWhV/+sootHKD63BwkLf7nPyrkojvOWHLw7QMY1UzpDeVUelxvMpeD4qXU9Wg7OPaOaCtb0HpMsA4J9glrqUBiOsgh+20tugQ0gCA3kgQ/HCVjxUw8i+gSay77vmxUuJD3TZOTI2mwaNHFuf3YtFI5mRnlf0c0KTwZgWH/YZSXuhJdzTYWh5YvSOlFXLUA6S4VQuvXI2Gtu93s0D8lOXh0xoTHX+A0Fn1mKQBAIBYDtMLnSZPCDZMssTtvxtvxWZJxBMY0XCH7bmlwThATvQvdkV+Tj/SxYJxUI1PQv7ojSmw4NEqqavZVoe/6TRAuiSdJYLYCXjX/TCxOYUGP4VF6zo4TihnlhdX4jpxvFmz3+uy5AJRGkmPkvWRd8KzsyvvvLem+AZkCOYm3eRF2I9SOjxZNszSHAxdM77/MIIJSFXM+FPCGttNMsd7YvES+3Khk1MHL5gMRJFNnNPsId2q++yhhLJCf2Q7sHB1DwYCmBvsmLvnW6vk/N4ODTEgtQX2BbX2gH114KKhX1K4cybAIL5zix958KT2QX4Xq33J3jtpjceOzcrreMOEbjxEQfFw9TmBTVRiEX+JY6bKaIPVvvkJE5lf9L/lzUp6jULdbGzmgV9GZgPePoue+wOpKLIbBai6OB0vdKXXcudH6ooqP2HJn9C7mlyUvXUBN1U8JlfQm+W0fNzHoep//Ed+RDR+iK9XZFyUZSu+EAN7PqIdr+OMLLNaPh7pL0ep9HF2JUccbhMli+6mui7ufQ/edlkgm27naagZ153Ahz8/KwybtFuvEHIDWxrgJbH6/XdZTjOE9BoerBs6+9p8SIkPVgEHoF7dAb1f/BxMzE9mFUUpPIpOmtHjD95qoB/eg5ll66tGdVFWlN2HVbc8f8ZW3Mp1m6fTK7q6uxmj6RwdkYTqcajI5C/MY/MToUn0BBxV3VKlwKDAumN6e9MR/9DH5bnby/owsPpDUm9Jb4AVesFvBlRcuoHeJSuYtf/jKxcOffmS73XejlrB1+6qzsMLMDfQnQlTRd6nVMICpmrCRW7dHemautPYFhZgGvYjCciTOgLv9vzSTyJsnT1Zt0Pe1uJAnr2SyGmlyvB5qCXNzzRWrrHFLwUKNYMKAwxDYnP2JQdrjtA0zVwBWW63fYkoQ6KDsyUd7WmdEZcmf0Xs16j6XAS9QEznMWv3QwWtzSAZXZ800Nqf6mrGBlZe+sI3xOtW9G4G04YHMzj8nRftR82Z+beprq6owNGwhX7ZSTWLzhJXH9dViZDaO3FqfS6/p4Cnf3u+niWi7eFEP1fw7ukuXS1yElEozqZVowra704FokZ78Ic4kegT4dY5hxbi3OxEuGC1QyaGMrJh/7Ds538DKRc+HA5LJSMvzAZpgyRoZAJOp6m+vWMoPJCLCkFuU8+kJwc/tbf09ge/dN3b7gSsLUZvV/yLlCs0KqEfoT/XXcPhJu385qwl97A66vsp/bCO/MGt2twFhH0s4zHl+kZsTftYgTzgv/0QyzXIV9o90agzqZTgc6UZP0Dk9nj/nFBYb8tEKeUkp86VbCqd1KBZMk/yVB+uHbWKe+iHHTTKuyHSRpVcZUO7Jeby8jtXCIVE7hhqu9t9RdCInUnmgRH3C0mKq/ARKHOF2+xBP+sCVZJJ4JNkZMZpFu8iOWYa3fZMHeMgCC2QKaG4RJzXlNcmWJmQeDY6TmAsUaWSzUJv6EfgVd9qpw4dHsOzLwmTijw3jYmNdUpE0HLQVFry3JaV6xNx59oTPGgLIqsAEhfqDRBOXAfqTzzxQJSUlVVl95LmowZgI83jISNdWztdExvH43ii0UuuON6Fzn20UXyzzZyCnpfSAMij5jj4fZJoubwspf92cTNSKmqN01hjrFOjfzoADbGR7BB0Uc7qBnuSGa+tKs7vjvs64LZEIKJ1+LJxCFu+7rjcoON2T... [truncated]
    "savedPaymentMethods": null,
    "successUrl": "https://devkic-payapi.nebp.lge.com/pgui/v2/hpp/checkoutcom/success",
    "failureUrl": "https://devkic-payapi.nebp.lge.com/pgui/v2/hpp/checkoutcom/failure",
    "pgResponse": {
      "resultCode": "OK",
...
            }
          }
        }
      }
    }
  },
  "instructions": {
    "nextStep": "CLIENT_ACTION",
    "completionMethod": "WEBHOOK",
    "requiresClientAction": true,
    "clientAction": {
      "type": "REDIRECT_TO_HPP",
      "pgProvider": "CHECKOUT_COM",
      "method": "POST"
    },
    "requiresFollowUpApi": false,
    "followUpApi": null
  }
}

[tab:Card (Omise)] ... "message": "SUCCESS", "requestId": "06EN41W5RTTKKDX4HRE5JV7NX4", "timestamp": "2026-04-03T06:28:38.259142300Z", "data": { "status": "ACTION_REQUIRED", "paymentUrl": "/pgui/v2/hpp/omise/card/wrapping?paymentContext=QfAy%2Bog0Pc7OaUKV92YAcOD%2FaZ2IDdOD9sJI9kzUoGtDWhV%2F%2B...", "orderNo": "ORD_7202604037731725", "pgTransactionId": "PGI_7202604037731727", "paymentContext": "QfAy+og0Pc7OaUKV92YAcOD/aZ2IDdOD9sJI9kzUoGtDWhV/...", "savedPaymentMethods": null, "successUrl": "https://devkic-payapi.nebp.lge.com/pgui/v2/hpp/omise/success", ... "orderNo": "ORD_7202604037731725", "authRequestId": "06EN41W5RTTKKDX4HRE5JV7NX4", "authSignature": "Ddr53aFJ/WBOkdFWcjVE6GqmHy4dciOpUbApXBUa+VU=" } } }, "instructions": { "nextStep": "CLIENT_ACTION", "completionMethod": "API", "requiresClientAction": true, "clientAction": { "type": "TOKENIZE_CARD", "pgProvider": "OMISE", "method": "GET" }, "requiresFollowUpApi": true, "followUpApi": { "method": "POST", "url": "/api/v2/payments", "description": "After card tokenization, call this Payment Creation API using the obtained token." } } }


[tab:PayPal]
...
  "message": "SUCCESS",
  "requestId": "06EJSXACF3167DYF17DCKPV398",
  "timestamp": "2026-03-27T01:42:48.101231400Z",
  "data": {
    "status": "ACTION_REQUIRED",
    "paymentUrl": "/pgui/v2/hpp/worldpay/card/wrapping?paymentContext=QfAy%2Bog0Pc7OaUKV92YAcF8bIPJ1MnoOmpeUOWd9eYRDWhV%2F...",
    "orderNo": "ORD_7202603277730925",
    "pgTransactionId": "PGI_7202603277730929",
    "paymentContext": "QfAy%2Bog0Pc7OaUKV92YAcF8bIPJ1MnoOmpeUOWd9eYRDWhV%2F...",
    "savedPaymentMethods": null,
    "successUrl": "https://devkic-payapi.nebp.lge.com/pgui/v2/hpp/worldpay/success",
...
        "pgRefId": "3592852189",
        "returnUrl": "https://hpp-sandbox.worldpay.com/app/hpp/integration/wpg/corporate?OrderKey=LGETEST3%5EPGI_7202603277730929&Ticket=00177500776844702U-c7q9YvTrz7RVzEY-WJvQbS7JfWDoR3BcNo-0&source=https%3A%2F%2Fsecure-test.worldpay.com",
        "referenceUrl": "https://hpp-sandbox.worldpay.com/app/hpp/integration/wpg/corporate?OrderKey=LGETEST3%5EPGI_7202603277730929&Ticket=00177500776844702U-c7q9YvTrz7RVzEY-WJvQbS7JfWDoR3BcNo-0&source=https%3A%2F%2Fsecure-test.worldpay.com"
      }
    }
  },
  "instructions": {
    "nextStep": "CLIENT_ACTION",
    "completionMethod": "WEBHOOK",
    "requiresClientAction": true,
    "clientAction": {
      "type": "REDIRECT_TO_HPP",
      "pgProvider": "WORLDPAY",
      "method": "POST"
    },
    "requiresFollowUpApi": false,
    "followUpApi": null
  }
}

[tab:Bank Transfer (νƒœκ΅­)] ... "message": "SUCCESS", "requestId": "06EJSWXF1S9VSJVR3H832TWEY0", "timestamp": "2026-03-27T01:41:01.060997300Z", "data": { "status": "ACTION_REQUIRED", "paymentUrl": "/pgui/v2/hpp/omise/bank-transfer/wrapping", "orderNo": "ORD_7202603277730917", "pgTransactionId": "PGI_7202603277730920", "paymentContext": "...", "savedPaymentMethods": null, "successUrl": "https://devkic-pgui.nebp.lge.com//pgui/v2/hpp/omise/success", ... "authRequestId": "06EJSWXF1S9VSJVR3H832TWEY0", "authSignature": "552RtzZfrEkiZE/piQ9GQ62UWC8XqkckETlzzBUnxjg=", "paymentContext": "..." } } }, "instructions": { "nextStep": "CLIENT_ACTION", "completionMethod": "API", "requiresClientAction": true, "clientAction": { "type": "CREATE_SOURCE", "provider": "OMISE" }, "requiresFollowUpApi": true, "followUpApi": { "method": "POST", "url": "/api/v2/payments", "description": "After creating the account source, call this Payment Creation API using the obtained source ID." } } }


[tab:Installment (νƒœκ΅­)]
...
  "message": "SUCCESS",
  "requestId": "06EN40N9V7N1PQXAH0GMBN91Z4",
  "timestamp": "2026-04-03T06:23:19.800137100Z",
  "data": {
    "status": "ACTION_REQUIRED",
    "paymentUrl": "/pgui/v2/hpp/omise/installment/wrapping?paymentContext=QfAy+og0Pc7OaUKV92YAcPQqpKNrGELf9Ty8UQO/rElDWhV/+...",
    "orderNo": "ORD_7202604037731713",
    "pgTransactionId": "PGI_7202604037731715",
    "paymentContext": "QfAy+og0Pc7OaUKV92YAcPQqpKNrGELf9Ty8UQO/rElDWhV/+...",
    "savedPaymentMethods": null,
    "successUrl": "http://localhost:8080/pgui/v2/hpp/omise/success",
...
        "authSignature": "CRMmdgHJpcCiACWY6ZOGiUxOSjqTcv9zQsbVFXI3zD8=",
        "installmentSource": "installment_kbank",
        "installmentTerm": 3
      }
    }
  },
  "instructions": {
    "nextStep": "CLIENT_ACTION",
    "completionMethod": "API",
    "requiresClientAction": true,
    "clientAction": {
      "type": "CREATE_SOURCE",
      "provider": "OMISE"
    },
    "requiresFollowUpApi": true,
    "followUpApi": {
      "method": "POST",
      "url": "/api/v2/payments",
      "description": "After creating the payment source, call this Payment Creation API using the obtained source ID."
    }
  }
}

[tab:Tabby (UAE)] ... "message": "SUCCESS", "requestId": "06EN4HHZ63D5QPZD5FZV9H2ZX4", "timestamp": "2026-04-03T07:37:09.299115500Z", "data": { "status": "ACTION_REQUIRED", "paymentUrl": "/pgui/v2/hpp/checkoutcom/tabby/wrapping?paymentContext=QfAy%2Bog0Pc7OaUKV92YAcGpbC7at%2BRppP%2...", "orderNo": "ORD_8202604037731809", "pgTransactionId": "PGI_8202604037731811", "paymentContext": "QfAy+og0Pc7OaUKV92YAcGpbC7at+RppP/jsdoEbGb1DWhV/+...", "savedPaymentMethods": null, "successUrl": "http://localhost:8080/pgui/v2/hpp/checkoutcom/success", ... } } } } } }, "instructions": { "nextStep": "CLIENT_ACTION", "completionMethod": "WEBHOOK", "requiresClientAction": true, "clientAction": { "type": "REDIRECT_TO_HPP", "pgProvider": "CHECKOUT_COM", "method": "POST" }, "requiresFollowUpApi": false, "followUpApi": null } }


[tab:Tamara (UAE)]
...
  "message": "SUCCESS",
  "requestId": "06EN4H3C9QMHEAZYS6YQZJC7GC",
  "timestamp": "2026-04-03T07:35:09.863177500Z",
  "data": {
    "status": "ACTION_REQUIRED",
    "paymentUrl": "/pgui/v2/hpp/checkoutcom/tamara/wrapping?paymentContext=QfAy%2Bog0Pc7OaUKV92YAcF5qAbtkl%2BEuYAbqu5aS5KFDWhV%2F%2...",
    "orderNo": "ORD_8202604037731801",
    "pgTransactionId": "PGI_8202604037731803",
    "paymentContext": "QfAy+og0Pc7OaUKV92YAcF5qAbtkl+EuYAbqu5aS5KFDWhV/...",
    "savedPaymentMethods": null,
    "successUrl": "http://localhost:8080/pgui/v2/hpp/checkoutcom/success",
...
        "type": "CHECKOUT",
        "publicKey": "pk_sbox_2ewvjanc7xpuduraa7tqquf5mmi",
        "paymentSession": {
          "id": "ps_3Bq1IsElSF2ZoM1aZtuTBv4Mfg6",
          "payment_session_secret": "pss_fc314af0-b0b1-49e7-b2be-469bd6c33d50",
          "payment_session_token": "YmFzZTY0:eyJpZCI6InBzXzNCcTFJc0VsU0YyWm9NMWFadHVUQnY0TWZnNiIsImVudGl0eV9pZCI6ImVudF8za2ZoaHZ6NXVldXRmajVtNmpkYTRhYnB6YSIsImV4cGVyaW1lbnRzIjp7fSwicHJvY2Vzc2luZ19jaGFubmVsX2lkIjoicGNfa21teXVieWMyNnpldnBrcWx0eXZqdXBvbWUiLCJhbW91bnQiOjI4MjUwMCwibG9jYWxlIjoiZW4tR0IiLCJjdXJyZW5jeSI6IkFFRCIsInBheW1lbnRfbWV0aG9kcyI6W3sidHlwZSI6ImNhcmQiLCJjYXJkX3NjaGVtZXMiOlsiVmlzYSIsIk1hc3RlcmNhcmQiXSwic2NoZW1lX2Nob2ljZV9lbmFibGVkIjpmYWxzZSwic3RvcmVfcGF5bWVudF9kZXRhaWxzIjoiZGlzYWJsZWQiLCJiaWxsaW5nX2FkZHJlc3MiOnsiY291bnRyeSI6IkFFIiwiYWRkcmVzc19saW5lMSI6IkJ1cmogS2hhbGlmYSwgRmxvb3IgMTIyIiwiY2l0eSI6IkR1YmFpIn19LHsidHlwZSI6ImFwcGxlcGF5IiwiZGlzcGxheV9uYW1lIjoiTEcgVUFFIiwiY291bnRyeV9jb2RlIjoiQUUiLCJjdXJyZW5jeV9jb2RlIjoiQUVEIiwibWVyY2hhbnRfY2FwYWJpbGl0aWVzIjpbInN1cHBvcnRzM0RTIl0sInN1cHBvcnRlZF9uZXR3b3JrcyI6WyJ2aXNhIiwibWFzdGVyQ2FyZCJdLCJ0b3RhbCI6eyJsYWJlbCI6IkxHIFVBRSIsInR5cGUiOiJmaW5hbCIsImFtb3VudCI6IjI4MjUifX0seyJ0eXBlIjoiZ29vZ2xlcGF5IiwibWVyY2hhbnQiOnsiaWQiOiIwODExMzA4OTM4NjI2ODg0OTk4MiIsIm5hbWUiOiJMRyBVQUUiLCJvcmlnaW4iOiJodHRwOi8vbG9jYWxob3N0OjgwODAifSwidHJhbnNhY3Rpb25faW5mbyI6eyJ0b3RhbF9wcmljZV9zdGF0dXMiOiJGSU5BTCIsInRvdGFsX3ByaWNlIjoiMjgyNSIsImNvdW50cnlfY29kZSI6IkFFIiwiY3VycmVuY3lfY29kZSI6IkFFRCJ9LCJjYXJkX3BhcmFtZXRlcnMiOnsiYWxsb3dlZF9hdXRoX21ldGhvZHMiOlsiUEFOX09OTFkiLCJDUllQVE9HUkFNXzNEUyJdLCJhbGxvd2VkX2NhcmRfbmV0d29ya3MiOlsiVklTQSIsIk1BU1RFUkNBUkQiXX19LHsidHlwZSI6InRhbWFyYSIsImNvdW50cnlfY2FsbGluZ19jb2RlcyI6WyI5NzEiXX0seyJ0eXBlIjoidGFiYnkiLCJjb3VudHJ5X2NhbGxpbmdfY29kZXMiOlsiOTcxIl0sImVtYWlsIjoiemF5ZWQuYUBleGFtcGxlLmFlIiwibmFtZSI6IlpheWVkIEFobWVkIn1dLCJmZWF0dXJlX2ZsYWdzIjpbImFuYWx5dGljc19vYnNlcnZhYmlsaXR5X2VuYWJsZWQiLCJnZXRfd2l0aF9wdWJsaWNfa2V5X2VuYWJsZWQiLCJsb2dzX29ic2VydmFiaWxpdHlfZW5hYmxlZCIsInJpc2tfanNfZW5hYmxlZCIsInVzZV9iaWxsaW5nX2FkZHJlc3NfZnJvbV9jb25maWdfZm9yX3Rva2VuaXphdGlvbiIsInVzZV9kZXZpY2VfYXBpX2Zvcl9vYnNlcnZhYmlsaXR5IiwidXNlX3Jpc2tqc192MiIsInVzZV91cmxfaGFzaF9mb3JfaWZyYW1lX3Byb3BzIl0sInJpc2siOnsiZW5hYmxlZCI6ZmFsc2V9LCJtZXJjaGFudF9uYW1lIjoiTEcgVUF... [truncated]
          "_links": {
            "self": {
              "href": "https://api.sandbox.checkout.com/payment-sessions/ps_3Bq1IsElSF2ZoM1aZtuTBv4Mfg6"
            }
          }
        }
      }
    }
  },
  "instructions": {
    "nextStep": "CLIENT_ACTION",
    "completionMethod": "WEBHOOK",
    "requiresClientAction": true,
    "clientAction": {
      "type": "REDIRECT_TO_HPP",
      "pgProvider": "CHECKOUT_COM",
      "method": "POST"
    },
    "requiresFollowUpApi": false,
    "followUpApi": null
  }
}

[/tabs]

4. Response Post-processing Guide (Next Steps) #

After calling the Create Payment Intent API, if the response status is ACTION_REQUIRED and instructions.nextStep is CLIENT_ACTION, the client must transition the screen or initialize the PG SDK so that the user can proceed with the payment based on the provided data.

Depending on the store's environment and requirements, you can choose between the Redirect Integration (HPP Wrapping) and Direct Integration (Direct PG SDK/UI Rendering) methods.

4.1 Redirect Integration (Simple Integration) #

This is the simplest method where the user is moved to a payment page provided by EBP to process the payment. The store does not need to directly implement complex SDK integration logic for each PG provider.

  • Target Field: data.paymentUrl
  • Processing Method: The received paymentUrl includes an encrypted context required for payment authentication as a query parameter. The store can simply redirect to this URL using the GET method.

Integration Example (Common) #

Use the paymentUrl received from the Create Payment Intent API response as follows:

1. HTML Setup (Virtual Form for Data Transmission)

<!-- The method must be set to POST. -->
<form id="ebp-redirect-form" method="POST"></form>

2. Javascript Processing Example

// 1. Receive response data from the EBP Create Payment Intent API
const { paymentUrl } = response.data; 

// 2. Set paymentUrl to the form action
const form = document.getElementById("ebp-redirect-form"); 
form.action = paymentUrl;

// 3. Submit the form (Redirect to payment page)
form.submit();

Notes:

  • Since the paymentUrl already contains the payment context (paymentContext), there's no need to create separate input fields inside the form or manually assemble the data. The browser will maintain the URL's query string while sending the POST request, and EBP will receive it to securely construct the PG provider's payment screen.
  • When using the redirect method via paymentUrl, EBP will directly finalize all authentication and authorization processes, even if the response data contains follow-up API call flags (requiresFollowUpApi) or details (followUpApi). The store only needs to verify the result through webhooks or the final redirect URL without calling a separate Payment Creation API.

4.2 Direct Integration (Custom Integration) #

This method is used when you want to directly render UI components (Drop-in) provided by the PG provider within the store's existing payment screen.

  • Target Field: Authentication information per PG provider within data.pgResponse.data
  • Processing Method: Use the Key, Token values, etc., returned for each PG provider to initialize the PG SDK and proceed with the payment in the frontend environment.

Worldpay Direct Integration Example #

Worldpay uses the provided referenceUrl to initialize the PG SDK.

1. HTML Setup

<!-- WorldPay Web Components SDK -->
<script src="https://payments.worldpay.com/resources/hpp/integrations/embedded/js/hpp-embedded-integration-library.js"></script>

<!-- Container where the Worldpay UI will be rendered -->
<div id="worldpay-container"></div>

2. Javascript Processing Example

const { referenceUrl } = response.data.pgResponse.data;

const customOptions = {
    url: referenceUrl,
    type: "iframe",
    inject: "onload",
    target: "worldpay-container",
    accessibility: true,
    language: "en",
    country: "GB",
    successURL: response.data.successUrl,
    cancelURL: response.data.failureUrl,
    failureURL: response.data.failureUrl,
    errorURL: response.data.failureUrl
};

if (customOptions.url) {
    const libraryObject = new WPCL.Library();
    libraryObject.setup(customOptions);
}

Checkout.com Direct Integration Example #

Checkout.com uses the provided publicKey and paymentSession object to mount the Flow UI component.

1. HTML Setup (Load SDK and Define Mount Point)

<!-- Checkout.com Web Components SDK -->
<script src="https://checkout-web-components.checkout.com/index.js"></script>

<!-- Container where the Checkout.com UI will be rendered -->
<div id="checkout-container"></div>

2. Javascript Processing Example

const { publicKey, paymentSession } = response.data.pgResponse.data;

// 1. Initialize Checkout Web SDK
const checkout = await CheckoutWebComponents({
    publicKey: publicKey,
    environment: 'sandbox', // or 'production'
    paymentSession: paymentSession, // Pass the entire object
    onPaymentCompleted: (component, paymentResponse) => {
        window.location.href = response.data.successUrl;
    },
    onError: (component, error) => {
        console.error("Checkout Error:", error);
    }
});

// 2. Create and mount the Flow component
const flowComponent = checkout.create('flow');
flowComponent.mount('#checkout-container');

Omise Card Direct Integration Example #

For credit card payments, a one-time token is generated using the publicKey, and then the EBP Payment Creation API is called with that token information.

1. HTML Setup

<!-- Load Omise.js SDK -->
<script type="text/javascript" src="https://cdn.omise.co/omise.js"></script>

<!-- Payment execution button -->
<button id="omise-card-btn">Pay with Card</button>

2. Javascript Processing Example

const { publicKey, authRequestId, authSignature, paymentHeaderContext, paymentContext, amount, currency } = response.data.pgResponse.data;

// Configure Omise SDK
OmiseCard.configure({ publicKey: publicKey });

document.getElementById('omise-card-btn').onclick = () => {
    OmiseCard.open({
        amount: amount,
        currency: currency,
        onCreateTokenSuccess: async (token) => {
            const paymentBody = {
                authRequestId,
                authSignature,
                paymentContext,
                paymentMethod: "CARD",
                paymentInstrumentId: token,
                paymentInstrumentType: "ONE_TIME_TOKEN"
            };

            const host = 'https://devkic-payapi.nebp.lge.com/';
            
            // Call EBP Payment Creation API
            const chargeResponse = await fetch(`${host}/api/v2/payments`, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-EBP-Context': paymentHeaderContext
                },
                body: JSON.stringify(paymentBody)
            });

            if (!chargeResponse.ok) throw new Error("Payment API call failed");
            const result = await chargeResponse.json();
            
            // Redirect to authorizeUri if 3DS authentication is required
            const authorizeUri = result.data?.pgResponse?.data?.authorizeUri;
            if (authorizeUri) {
                window.location.href = authorizeUri;
            } else if (result.resultCode === "0") {
                window.location.href = response.data.successUrl;
            }
        }
    });
};

Omise Installment (Source) Direct Integration Example #

For source-based payments like installments, a one-time source ID is generated via createSource before the payment request.

1. HTML Setup

<!-- Load Omise.js SDK -->
<script type="text/javascript" src="https://cdn.omise.co/omise.js"></script>

<!-- Payment execution button -->
<button id="omise-installment-btn">Pay with Installment</button>

2. Javascript Processing Example

const { publicKey, authRequestId, authSignature, paymentHeaderContext, paymentContext, installmentSource, installmentTerm, amountDecimal, currency } = response.data.pgResponse.data;

Omise.setPublicKey(publicKey);

document.getElementById('omise-installment-btn').onclick = () => {
    const sourceParams = {
        type: installmentSource,
        amount: Number(amountDecimal), // Use amount with decimals for source creation
        currency: currency,
        installment_term: installmentTerm
    };

    Omise.createSource(sourceParams.type, sourceParams, async (statusCode, res) => {
        if (statusCode === 200) {
            const paymentBody = {
                authRequestId,
                authSignature,
                paymentContext,
                paymentMethod: "INSTALLMENT",
                paymentInstrumentId: res.id,
                paymentInstrumentType: "ONE_TIME_SOURCE"
            };

            const host = 'https://devkic-payapi.nebp.lge.com/';

            // Call EBP Payment Creation API
            const paymentResponse = await fetch(`${host}/api/v2/payments`, {
                method: 'POST',
                headers: {
                    'Content-Type': 'application/json',
                    'X-EBP-Context': paymentHeaderContext
                },
                body: JSON.stringify(paymentBody)
            });

            const result = await paymentResponse.json();
            
            // Redirect to authorizeUri if 3DS authentication is required
            const authorizeUri = result.data?.pgResponse?.data?.authorizeUri;
            if (authorizeUri) {
                window.location.href = authorizeUri;
            } else if (result.resultCode === "0") {
                window.location.href = response.data.successUrl;
            }
        }
    });
};
Last updated: 2026-04-24 07:45:12 Β© 2026 LG Electronics Inc. All rights reserved.