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 #
| Item | Value |
|---|---|
| API Name | Create Payment Intent |
| API Path | /api/v2/payment-intents |
| API ID | EBP_API_224 |
| HTTP Method | POST |
| Region | Global |
[!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.
| depth | Field | Details & Description |
|---|---|---|
| 0 | X-Idempotency-Key |
π΄ Required Idempotency key to prevent duplicate processing for identical payment intent creation requests. |
2.2 Request Data Schema #
| depth | Field | Details & Description |
|---|---|---|
| 0 | userNo |
π΄ Required User identification number |
| 0 | userName |
π‘ Conditional Buyer's name. Required when using Tamara payment method. |
| 0 |
π‘ Conditional Buyer's email address. Required when using Tamara payment method. | |
| 0 | phone |
βͺ Optional Buyer's contact phone number |
| 0 | paymentMethod |
π΄ Required e.g., CARD, INSTALLMENT, DIRECT_DEBIT, BANK_TRANSFER ... etc |
| 0 | purchaseChannel |
π΄ Required Sales channel classification e.g., WEB, APP |
| 0 | merchantId |
βͺ Optional Merchant ID |
| 0 | successUrl |
π΄ Required URL to redirect after successful payment |
| 0 | failureUrl |
π΄ Required URL to redirect if payment fails |
| 0 | totalAmount |
π΄ Required The final total payment amount. |
| 0 | subtotalAmount |
π΄ Required Amount before discounts. |
| 0 | totalDiscountAmount |
π΄ Required Total discount amount. |
| 0 | discountAmount |
π΄ Required Seller discount amount. |
| 0 | lgeDiscountAmount |
π΄ Required LGE discount amount. |
| 0 | nonCancelableAmount |
π΄ Required Non-cancelable amount. |
| 0 | itemName |
π΄ Required Representative product name to be displayed on the payment screen. |
| 0 | useSavedPaymentMethod |
βͺ Optional Whether to use a saved payment method. If set to true, the payment proceeds using previously saved information. e.g., true/falsedefault: false |
| 0 | savePaymentMethod |
βͺ 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/falsedefault: false |
| 0 | autoCapture |
βͺ 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/falsedefault: true |
| 0 | nonTaxableAmount |
βͺ Optional Tax-exempt amount |
| 0 | taxAmount |
βͺ Optional VAT amount calculated by the store |
| 0 | shippingAddress |
π‘ Conditional Shipping address information. Required when using Tabby or Tamara payment methods. |
| 1 | addressLine1 |
π‘ Conditional Basic shipping address. Required when using Tabby or Tamara payment methods. |
| 1 | addressLine2 |
βͺ Optional Detailed shipping address. |
| 1 | city |
π‘ Conditional Shipping city information. Required when using Tabby or Tamara payment methods. |
| 1 | stateOrProvince |
βͺ Optional Shipping state/province/region information. |
| 1 | postalCode |
π‘ Conditional Shipping postal code. Required when using Tabby payment method. |
| 1 | countryCode |
π‘ Conditional Shipping country code (ISO 3166-1 alpha-2). Required when using Tabby or Tamara payment methods. |
| 0 | billingAddress |
π‘ Conditional Billing address information. Required when using Tamara payment method. |
| 1 | firstName |
π‘ Conditional Recipient's first name for billing. Required when using Tamara payment method. |
| 1 | lastName |
π‘ Conditional Recipient's last name for billing. Required when using Tamara payment method. |
| 1 | phoneNumber |
π‘ Conditional Contact phone number for billing. Required when using Tamara payment method. |
| 1 | addressLine1 |
π‘ Conditional Basic billing address. Required when using Tamara payment method. |
| 1 | addressLine2 |
βͺ Optional Detailed billing address. |
| 1 | city |
π‘ Conditional Billing city information. Required when using Tamara payment method. |
| 1 | stateOrProvince |
βͺ Optional Billing state/province/region information. |
| 1 | postalCode |
βͺ Optional Billing postal code. |
| 1 | countryCode |
π‘ Conditional Billing country code (ISO 3166-1 alpha-2). Required when using Tamara payment method. |
| 0 | bankTransferSource |
π‘ 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 |
| 0 | platformType |
π‘ Conditional Required when using Thailand Bank Transfer payment method. e.g., IOS, ANDROID |
| 0 | installmentSource |
π‘ Conditional Required when using Thailand Installment payment method. e.g., installment_bay, installment_kbank, ... |
| 0 | installmentTerm |
π‘ Conditional Required when using Thailand Installment payment method. e.g., 3, 5 ... |
| 0 | items |
βͺ Optional List of items included in the transaction |
| 1 | seq |
π΄ Required Unique sequence number of the item within the order. Used as a reference key for cancellation and purchase confirmation. |
| 1 | sellerNo |
π΄ Required Unique identifier for the seller |
| 1 | itemType |
βͺ Optional Item type e.g., PHYSICAL: Physical goods, DIGITAL: Digital goods, SUBSCRIPTION: Subscription fee, DELIVERY: Shipping fee, SERVICE: Service fee |
| 1 | itemId |
π΄ Required Unique identifier for the item |
| 1 | itemName |
π΄ Required Name of the item |
| 1 | feeRate |
π΄ Required Commission rate applied to the item e.g., 10% -> 10, 0% -> 0 |
| 1 | quantity |
π΄ Required Quantity of the item purchased |
| 1 | unitPrice |
π΄ Required Price per unit of the item |
| 1 | discountAmount |
βͺ Optional Discount amount provided by the seller |
| 1 | lgeDiscountAmount |
βͺ Optional Discount amount provided by LG |
| 1 | paymentAmount |
π΄ Required Actual payment amount per item (Unit price - Seller discount - LG discount) |
| 1 | deliveryGroupNo |
βͺ Optional |
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 selectedinstallmentSource.
- 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:
2.3 Request Examples #
{
"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 #
| depth | Field | Details & Description |
|---|---|---|
| -1 | resultCode |
π΄ Required Result code e.g., "0" for success, "EBP-A-0001" for error |
| -1 | message |
π΄ Required Result message |
| -1 | requestId |
π΄ Required Unique request identifier for tracking |
| -1 | timestamp |
π΄ Required Response timestamp in ISO 8601 format e.g., 2025-12-19T14:24:00+09:00 |
| -1 | data |
π΄ Required Response data (Business results) |
| 0 | status |
π΄ Required Current status of the payment process. Represents the progress towards the final goal of 'Success'. e.g., AUTHORIZED, ACTION_REQUIRED |
| 0 | paymentUrl |
βͺ 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 |
| 0 | orderNo |
π΄ Required Order number |
| 0 | pgTransactionId |
π΄ Required PG transaction ID |
| 0 | paymentContext |
π΄ Required The encrypted payment context value issued by EBP. It is used as a mandatory value when calling the 'Payment Creation API'. |
| 0 | successUrl |
π΄ Required Final URL to redirect after successful payment |
| 0 | failureUrl |
π΄ Required Final URL to redirect after failed payment |
| 0 | pgResponse |
π΄ Required Detailed response information from the PG |
| 1 | resultCode |
π΄ Required PG response result code |
| 1 | pgProvider |
π΄ Required PG(Payment Gateway) code e.g., WORLDPAY, CHECKOUT, OMISE |
| 1 | data |
π΄ Required Detailed PG response data. Refer to the [PG-Specific Response Data (#32-pg-specific-response-data-pgresponsedata) section for specifications.] |
| 0 | savedPaymentMethods |
βͺ Optional A list of payment methods previously saved by the user. Returned only when |
| 1 | paymentMethod |
π΄ Required Payment method code e.g., CARD, DIRECT_DEBIT |
| 1 | paymentMethodId |
π΄ Required Unique identifier for the payment method managed within EBP |
| 1 | cardNumber |
π‘ Conditional Masked card number (for card payment methods) |
| 1 | cardIssuer |
π‘ Conditional Card issuer or brand name (for card payment methods) |
| 1 | isBlocked |
π΄ Required Whether the payment method is blocked (true if unusable) |
| 1 | pinErrorCount |
π΄ Required Number of PIN entry errors |
| 1 | isPinRegistered |
π΄ Required Whether a PIN is registered |
| -1 | instructions |
π΄ Required Instructions for follow-up processing (Process control) |
| 0 | nextStep |
π΄ Required Action instructions that the client must perform immediately to transition states. e.g., CLIENT_ACTION, CALL_API |
| 0 | completionMethod |
π΄ Required The subject and method by which the payment is finally completed. e.g., WEBHOOK, API |
| 0 | requiresClientAction |
π΄ Required Whether additional client action is required |
| 0 | clientAction |
βͺ Optional Information object for additional client actions. Mandatory if |
| 1 | type |
βͺ Optional Client action type e.g., TOKENIZE_CARD, CREATE_SOURCE, REDIRECT_TO_HPP |
| 1 | pgProvider |
βͺ Optional The PG provider to handle the action |
| 1 | method |
βͺ Optional The HTTP Method to be used for redirect e.g., GET, POST |
| 0 | requiresFollowUpApi |
π΄ Required Whether a follow-up API call (e.g., Payment Creation API) is required |
| 0 | followUpApi |
βͺ Optional Follow-up API information to be called after client action. Mandatory if |
| 1 | method |
βͺ Optional HTTP method of the follow-up API e.g., POST |
| 1 | url |
βͺ Optional Call path of the follow-up API |
| 1 | description |
βͺ Optional Additional description for the follow-up API |
Payment Flow and Field Usage Guide:
- status: Current status of the payment resource. The client checks this value to determine the progress and final success of the payment.
- instructions.nextStep: Indicates that the control to proceed with the payment belongs to the client when the
statusisACTION_REQUIRED.- instructions.requiresClientAction and clientAction: Indicates whether additional client actions are required. If
requiresClientActionistrue, the client must perform the specified action (e.g., Redirect to the providedpaymentUrlor Directly call the SDK using PG response data) by checkingclientAction.type.- 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.typeisREDIRECT_TO_HPP)- 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.- instructions.requiresFollowUpApi and followUpApi: Indicates whether a follow-up API call is mandatory after the client action. If
requiresFollowUpApiistrue, the client must directly call the final Payment Creation API, etc., referring tofollowUpApi.methodandurl.- data.paymentContext: A value containing encrypted order and session information. If the
completionMethodisAPI(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
paymentUrlincludes 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
paymentUrlalready 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;
}
}
});
};