---
updatedAt: 2026-09-24T06:32:43.000Z
agentTools:
  projectIndex: https://docs.dlocal.com/llms.txt
---

# Thailand

Learn about the dLocal supported payment methods in Thailand.

[block:html]
{
  "html": "<style>\n  \n  .main {\n    margin-left: auto;\n    margin-right: auto;\n    margin-bottom: 5px;\n    display: grid;\n    grid-template-columns: repeat(3, 1fr); /* Tres columnas */\n    width: 740px; /* Ancho máximo de la caja */\n}\n\n.overview-card1 {\n    position: relative; /* Asegúrate de que el contenedor sea relativo para posicionar el pseudoelemento */\n    width: 100%;\n    max-width: 233px;\n    box-sizing: border-box;\n    margin: 0;\n}\n\n.overview-card1::after {\n    content: '';\n    position: absolute;\n    right: 0; /* Pega la línea al borde derecho */\n    top: 30%; /* Ajusta la posición superior de la línea */\n    height: 50%; /* Establece el alto de la línea al 60% */\n    width: 1px; /* Grosor de la línea */\n    background-color: #D2D8EC; /* Color de la línea */\n}\n\n  .overview-card2 {\n    position: relative; /* Asegúrate de que el contenedor sea relativo para posicionar el pseudoelemento */\n    width: 100%;\n    max-width: 233px;\n    box-sizing: border-box;\n    margin: 0;\n}\n  \n  .overview-card2::after {\n    content: '';\n    position: absolute;\n    right: 0; /* Pega la línea al borde derecho */\n    top: 30%; /* Ajusta la posición superior de la línea */\n    height: 70%; /* Establece el alto de la línea al 60% */\n    width: 1px; /* Grosor de la línea */\n    background-color: #D2D8EC; /* Color de la línea */\n}\n  \n.overview-card3 {\n    position: relative; /* Asegúrate de que el contenedor sea relativo para posicionar el pseudoelemento */\n    width: 100%;\n    max-width: 233px;\n    box-sizing: border-box;\n    margin: 0;\n}\n\n.overview-card-upper-side1 {\n    height: 105px;\n    padding: 20px;\n    background-color: transparent;\n    text-align: left;\n}\n\n.overview-card-bottom-side {\n    position: relative;\n    width: 100%;\n    height: 100%;\n    padding: 30px;\n    padding-right: 20px;\n    background-color: transparent;\n    border-radius: 16px;\n}\n\n.overview-card-title1 {\n    font-family: 'Plus Jakarta Sans', sans-serif;\n    font-size: 24px;\n    font-weight: 700;\n    line-height: 26.4px;\n}\n\n.overview-card-content1 {\n    font-size: 14px;\n    font-weight: 300;\n    margin-top: 20px;\n    line-height: 20px;\n    margin-bottom: 40px!important;\n}\n\n.overview-icon1 {\n    margin-bottom: -5px;\n    margin-top: 20px;\n}\n  \n.doc-link {\n        position: relative;\n        font-weight: 500;\n        color: #21A35B !important;\n        text-decoration: none;\n        display: block;\n    }\n  \n\ndiv:not(.markdown-body) .doc-link:hover {\n            text-decoration: none;\n            color: #1043FA !important;\n            transform: translateX(0.2em);\n        }\n\n.overview-card-title1:hover {\n    color: #2D59F5 !important;\n    cursor:pointer;\n    transform: none!important;\n}\n\n    div:not(.markdown-body) .doc-link_arrow {\n        display: inline-block;\n        height: 1em;\n        width: auto;\n        vertical-align: middle;\n        margin-left: 0.2em;\n        margin-top: -0.1em;\n    }\n  \n     div:not(.markdown-body) .doc-link:hover .doc-link_arrow-color {\n            fill: #1043FA !important;\n        }\n  \n      [data-color-mode=\"dark\"] .overview-icon1 img {\n  filter: brightness(0) invert(1);\n  transition: filter 0.3s ease;\n}\n  \n/* Media Queries para dispositivos móviles */\n@media (max-width: 768px) {\n  .main {\n    grid-template-columns: repeat(2, 1fr); /* Dos columnas en pantallas medianas */\n  }\n}\n\n@media (max-width: 480px) {\n  .main {\n    grid-template-columns: 1fr; /* Una columna en pantallas pequeñas */\n}\n</style>\n  \n    <div class=\"main\">\n\n     <!-- Market specifications -->\n      <div class=\"overview-card1\" onclick=\"parent.location='/docs/thailand#market-specifications'\">\n     <div class=\"overview-card-bottom-side\">\n       <div class=\"overview-icon1\"><img width=\"48\" src=\"https://files.readme.io/922681fecfb238c94f7213fa9e0aa1675f1e190ec55beff2b6994169c77fdefc-adjust-circle.svg\"  alt=\"\" loading=\"lazy\"><div class=\"img_overlay img_color_rgba(0,0,0,.2)\"></div></div>\n           <h3 class=\"overview-card-title1\">Market specifications</h3>\n          <p class=\"overview-card-content1\">\n            Take a look of all the payment methods available.   \n        </p>\n          <a href=\"#country-reference\" class=\"doc-link\">Country reference</a>\n          <a href=\"#cards-supported\" class=\"doc-link\">Cards supported</a>\n          <a href=\"#alternative-payment-method-supported\" class=\"doc-link\">APM supported</a>\n        </div>\n      </div>\n      \n      <!-- Cards -->\n      <div\n        class=\"overview-card2\" onclick=\"parent.location='/docs/thailand#cards'\">\n        <div class=\"overview-card-bottom-side\">\n                 <div class=\"overview-icon1\"><img width=\"48\" src=\"https://files.readme.io/8d450ada4af3880f85f70c5daedebb0bec1b2b6d64479be929af48fdc8d66f40-credit-card.svg\"  alt=\"\" loading=\"lazy\"><div class=\"img_overlay img_color_rgba(0,0,0,.2)\"></div></div>\n           <h3 class=\"overview-card-title1\">Cards</h3><br>\n          <p class=\"overview-card-content1\">\n           Find all the information about the card supported capabilities.   \n          </p>\n          <a href=\"#capabilities\" class=\"doc-link\">Capabilities</a>\n          <a href=\"#how-to-process-card-payments\" class=\"doc-link\">Process Card Payments</a>\n        </div>\n      </div>  \n      \n      <!-- APM -->\n      <div class=\"overview-card3\" onclick=\"parent.location='/docs/thailand#alternative-payment-method'\">\n    <div class=\"overview-card-bottom-side\">\n            <div class=\"overview-icon1\"><img width=\"48\" src=\"https://files.readme.io/5a59519487455e7af361db8b67a2dee8d71627d4d6e1ed0a0bd805f5da861fcc-money-stack.svg\"  alt=\"\" loading=\"lazy\"><div class=\"img_overlay img_color_rgba(0,0,0,.2)\"></div></div>\n           <h3 class=\"overview-card-title1\">Alternative Payments</h3>\n          <p class=\"overview-card-content1\">\n             Learn how to integrate cash, bank transfer or wallet payment.  \n        </p>\n          <a href=\"#alipay\" class=\"doc-link\">Alipay</a>\n          <a href=\"#rabbit-line-pay\" class=\"doc-link\">Rabbit LINE Pay</a>\n          <a href=\"#wechat-pay\" class=\"doc-link\">WeChat Pay</a>\n          <a href=\"#thai-qr-payment\" class=\"doc-link\">Thai QR Payment</a>\n          <a href=\"#truemoney\" class=\"doc-link\">TrueMoney</a>\n          <a href=\"#shopeepay\" class=\"doc-link\">ShopeePay</a>\n          <a href=\"#big-c\" class=\"doc-link\">Big C</a>\n          <a href=\"#k-plus\" class=\"doc-link\">K PLUS</a>\n        </div>\n      </div> \n      \n    </div>"
}
[/block]

***

# Market specifications

Do you want to know more information about Thailand's market? Go to the [Accelerate Growth in Asia’s Leading eCommerce Hubs](https://dlocal.com/online-payment-processors-in-asia/) article.

## Country reference

| `country` code | `currency` code | `amount` decimals |   `document` name  | `document` format | `document` required? |
| :------------: | :-------------: | :---------------: | :----------------: | :---------------: | :------------------: |
|      `TH`      |      `THB`      |         2         | Thai Identity Card |     13 digits     |          Yes         |

## Cards supported

| `payment_method_id` | Brand ID | Name               | `payment_method_type` | Details       | Allowed Flows       | Logo                                                                                  |
| :------------------ | :------- | :----------------- | :-------------------- | :------------ | :------------------ | :------------------------------------------------------------------------------------ |
| `CARD`              | `VI`     | Visa               | `CARD`                | Credit Card ​ | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/VI.svg" width="40px">   |
| `CARD`              | `VD`     | Visa Debit ​       | `CARD`                | Debit Card ​  | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/VD.svg" width="40px">   |
| `CARD`              | `MC`     | Mastercard         | `CARD`                | Credit Card ​ | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/MC.svg" width="40px">   |
| `CARD`              | `MD`     | Mastercard Debit ​ | `CARD`                | Debit Card ​  | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/MD.svg" width="40px">   |
| `CARD`              | `UP`     | UnionPay           | `CARD`                | Credit Card ​ | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/UP.svg" width="40px">   |
| `CARD`              | `DC`     | Diners Club        | `CARD`                | Credit Card ​ | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/DC.svg" width="40px">   |
| `CARD`              | `JC`     | JCB                | `CARD`                | Credit Card ​ | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/checkout/JC.svg" width="40px">   |
| `CARD`              | `AE`     | American Express   | `CARD`                | Credit Card   | `DIRECT` `REDIRECT` | `<img src="https://static.dlocal.com/images/providers/checkout/AE.svg" width="40px">` |
| `CARD`              | `DI`     | Discover           | `CARD`                | Credit Card ​ | `DIRECT` `REDIRECT` | `<img src="https://static.dlocal.com/images/providers/checkout/DI.svg" width="40px">` |

<Callout icon="ℹ️" theme="info">
  To offer all the card options that may be available in your integration, send the `payment_method_id` as `CARD`.
</Callout>

## Alternative Payment Method supported

| `payment_method_id` | Name            | `payment_method_type` | Details       | Allowed Flows       | Logo                                                                                  |
| :------------------ | :-------------- | :-------------------- | :------------ | :------------------ | :------------------------------------------------------------------------------------ |
| `AP`                | Alipay          | `WALLET`              | Wallet        | `REDIRECT`          | <img src="https://static.dlocal.com/images/providers/Alipay.png" width="40px">        |
| `LP`                | Rabbit LINE Pay | `WALLET`              | Wallet        | `REDIRECT`          | <img src="https://static.dlocal.com/images/providers/rabbitLinePay.png" width="40px"> |
| `WC`                | WeChat Pay      | `WALLET`              | Wallet        | `REDIRECT`          | <img src="https://static.dlocal.com/images/providers/WeChatPay.png" width="40px">     |
| `QR`                | Thai QR Payment | `WALLET`              | Wallet        | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/TQ.png" width="40px">            |
| `TM`                | TrueMoney       | `WALLET`              | Wallet        | `DIRECT` `REDIRECT` | <img src="https://static.dlocal.com/images/providers/TM.png" width="40px">            |
| `SO`                | ShopeePay       | `WALLET`              | Wallet        | `REDIRECT`          | <img src="https://static.dlocal.com/images/providers/SO.png" width="40px">            |
| `TK`                | Big C           | `TICKET`              | Cash Payments | `REDIRECT`          | <img src="https://static.dlocal.com/images/providers/TK.png" width="40px">            |
| `KG`                | K PLUS          | `BANK_TRANSFER`       | Bank Transfer | `REDIRECT`          | <img src="https://static.dlocal.com/images/providers/KG.png" width="40px">            |

***

# Cards

## Capabilities

|                               | Visa Credit                                 | Visa Debit                                  | Mastercard Credit                           | Mastercard Debit                            | UnionPay                                    | Diners Club                                 | JCB                                         | American Express                            | Discover                                    |
| :---------------------------- | :------------------------------------------ | :------------------------------------------ | :------------------------------------------ | :------------------------------------------ | :------------------------------------------ | :------------------------------------------ | :------------------------------------------ | ------------------------------------------- | ------------------------------------------- |
| **Refunds**                   | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         |
| **Recurring**                 | Yes                                         | Yes                                         | Yes                                         | Yes                                         | No                                          | No                                          | No                                          | No                                          | No                                          |
| **Chargeback option**         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         |
| **Chargeback Dispute option** | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         | Yes                                         |
| **Descriptor**                | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. | Can be personalized, depending on provider. |

## How to process Card Payments?

Learn how to process payments with credit and debit cards with dLocal in our [Card Payments](https://docs.dlocal.com/docs/card-payments) section.

***

# Alternative Payment Method

Wallets in Thailand are on the rise, with TrueMoney being the leader thanks to their all-in-one app that lets customers securely make cashless and cardless payments for all their everyday needs, including mobile top-ups, bill payments, online and offline purchases, and more.

RabbitLinePay supports train ticket payments, making it very popular among local Transit System users. AliPay, WeChat Pay, ShopeePay, and Thai QR Payment are popular options in Thailand.<br />Some cash payment methods, such as BigC have wide acceptance in the country.

## Alipay

### Capabilities

|                                    | Alipay     |
| :--------------------------------- | :--------- |
| **Max. expiration time supported** | 10 minutes |
| **Notification delay**             | Immediate  |
| **Refunds**                        | Yes        |
| **Flow**                           | `REDIRECT` |

### UX Flow

<Image src="https://files.readme.io/bfad912f5a1b98707224b61e6eb45e314ba79c606ab98c84ecd7c40ca0ec7a0b-Alipay-TH.png" alt="The screenshots illustrate a generic Alipay redirect flow on a browser." align="center" caption="The screenshots illustrate a generic Alipay redirect flow on a browser." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `AP` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `REDIRECT`                                                                                                             | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 500,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "AP",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-14873a88-efc3-dert-a3c2-57fcf4fa969b",
    "amount": 500,
    "currency": "THB",
    "payment_method_id": "AP",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-01-30T17:54:43.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-e3dc8341-9dda-45rt-bbda-9b598d6936bd"
}
```

## Rabbit LINE Pay

### Capabilities

|                                    | Rabbit LINE Pay |
| :--------------------------------- | :-------------- |
| **Max. expiration time supported** | 10 minutes      |
| **Notification delay**             | Immediate       |
| **Refunds**                        | Yes             |
| **Flow**                           | `REDIRECT`      |

### UX Flow

<Image src="https://files.readme.io/755928919f5bc8e75f0f36d13bb50e48ff0f91ba1a69c64d857e8286be13dc68-Rabbit_Line_Pay.png" alt="The screenshots illustrate a generic Rabbit LINE Pay redirect flow." align="center" caption="The screenshots illustrate a generic Rabbit LINE Pay redirect flow." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `LP` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `REDIRECT`                                                                                                             | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 500,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "LP",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-987ce1d4-30d7-4rt5-8a48-ca9d0f169e48",
    "amount": 500,
    "currency": "THB",
    "payment_method_id": "LP",
    "payment_method_type": "TICKET",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-01-30T17:57:28.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-12bb2c26-6193-hgts-931d-c20709899a5e"
}

```

## WeChat Pay

### Capabilities

|                                    | WeChat Pay |
| :--------------------------------- | :--------- |
| **Max. expiration time supported** | 10 minutes |
| **Notification delay**             | Immediate  |
| **Refunds**                        | Yes        |
| **Flow**                           | `REDIRECT` |

### UX Flow

<Image src="https://files.readme.io/2b7d3f160533a9d8e0f9b17aeeff04033b3cb022040946d32d95ef19af32bbb3-WeChat.png" alt="The screenshots illustrate a generic WeChat Pay redirect flow through QR Code." align="center" caption="The screenshots illustrate a generic WeChat Pay redirect flow through QR Code." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `WC` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `REDIRECT`                                                                                                             | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 500,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "WC",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-d3f930cc-d619-4c19-g65t-382b7207637d",
    "amount": 500,
    "currency": "THB",
    "payment_method_id": "WC",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-01-30T17:58:35.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-d169e072-6d8f-4rtg-b771-fd11b41563e4"
}
```

## Thai QR Payment

### Capabilities

|                                    | Thai QR Payment            |
| :--------------------------------- | :------------------------- |
| **Max. expiration time supported** | 10 minutes                 |
| **Notification delay**             | Immediate                  |
| **Refunds**                        | Yes                        |
| **Flow**                           | `DIRECT` <br /> `REDIRECT` |

### UX Flow

<Image src="https://files.readme.io/454ac5c548cbb4880b6fa991dd8f78d99ab3582d6572d7eeda9b0526b92b3e2f-Thai_QR.png" alt="The screenshots illustrate a generic Thai QR Payment redirect flow." align="center" caption="The screenshots illustrate a generic Thai QR Payment redirect flow." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `QR` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `DIRECT` or `REDIRECT`                                                                                                 | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 500,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "QR",
    "payment_method_flow": "DIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "D-4-c747d044-7771-44de-5t53-94a9b3fded29",
    "amount": 500,
    "currency": "THB",
    "payment_method_id": "QR",
    "payment_method_type": "TICKET",
    "payment_method_flow": "DIRECT",
    "country": "TH",
    "bank_transfer": {},
    "ticket": {
        "type": "CUSTOM",
        "expiration_date": "2023-02-05T16:59:00.000+0000",
        "id": "1100356090707",
        "company_name": "Dlocal",
        "barcode": "00020101021230810016A00000067701011201150107536000315080214KB0000016689500320API1675101655190221631690016A00000067701011301030040214KB0000016689500420API1675101655190221653037645403507777TH6304B0DC",
        "provider_name": "Dlocal",
        "provider_logo": "https://static.dlocal.com/images/providers/ThaiQR-Logo.png",
        "image_url": "https://pay.dlocal.com/gmf-apm/payments/M-8bfa90fc-9098-4eca-9b26-ba40bfb7e797",
        "amount": 500,
        "currency": "THB"
    },
    "created_date": "2023-01-30T18:00:53.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "notification_url": "http://merchantsite.com/notification/new"
}
```

`ticket.barcode` must not be labeled as a conventional EMVCo barcode. For Thai QR Payment, it carries the full provider-issued QR payment payload, not a scannable numeric/linear barcode. Although the payload is structured using EMVCo TLV formatting, the provider may extend or wrap the value with provider-specific data; treat the field as an opaque provider payload and pass it through unmodified rather than re-parsing or reformatting it. The value returned by the provider may contain line breaks; preserve it exactly as returned.

## TrueMoney

TrueMoney Wallet, a popular e-wallet in Southeast Asia, enables secure online payments using wallet balance, linked bank accounts, or stored cards. It supports both one-time and tokenized recurring payments.

### Capabilities

|                                    | TrueMoney                  |
| :--------------------------------- | :------------------------- |
| **Max. expiration time supported** | 3 minutes                  |
| **Notification delay**             | Immediate                  |
| **Refunds**                        | Yes                        |
| **Flow**                           | `DIRECT` <br /> `REDIRECT` |

### UX Flow

<Image src="https://files.readme.io/ae42ecfe4bda61f17425c99662f3812ea8f2c1068ae45d04018ff60f36598438-TrueMoney.png" alt="The screenshots illustrate a generic TrueMoney redirect flow through QR Code." align="center" caption="The screenshots illustrate a generic TrueMoney redirect flow through QR Code." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `TM` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `DIRECT` or `REDIRECT`                                                                                                 | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 500,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "TM",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-d3f930cc-54tr-4c19-g65t-382b7207637d",
    "amount": 500,
    "currency": "THB",
    "payment_method_id": "TM",
    "payment_method_type": "WALLET",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-01-30T17:58:35.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-d169e072-4re5-4rtg-b771-fd11b41563e4"
}
```

## ShopeePay

### Capabilities

|                                    | ShopeePay  |
| :--------------------------------- | :--------- |
| **Max. expiration time supported** | 20 minutes |
| **Notification delay**             | Immediate  |
| **Refunds**                        | Yes        |
| **Flow**                           | `REDIRECT` |

### UX Flow

<Image src="https://files.readme.io/f5fe88b3a1b3537978c9ae19e2f6906b1e3434187e029ff45dd9d7048ad235e0-ShopeePay-TH.png" alt="The screenshots illustrate a generic ShopeePay redirect flow through QR Code." align="center" caption="The screenshots illustrate a generic ShopeePay redirect flow through QR Code." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `SO` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `REDIRECT`                                                                                                             | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 500,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "SO",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-89b01b6a-e859-4ecf-56ty-f790ccaee1a9",
    "amount": 500,
    "currency": "THB",
    "payment_method_id": "SO",
    "payment_method_type": "TICKET",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-01-30T18:39:22.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "u345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.airpay.in.th/h5pay/pay?type=start&app_id=11002330&key=k1QAba529f90f3093b63&order_id=1100356113652&return_url=aHR0cDovL21lcmNoYW50LmNvbS9zdWNjZXNzX3BhZ2U%2FYW1vdWwJmNsaWVudF9pZD0xMTAwMjMzMCZyZWZlcmVuY2VfaWQ9MTEwMDM1NjExMzY1MiZyZXN1bHRfY29kZT0yMDEmc2lnbmF0dXJlPXlYOXJPVFpIOExJajJmazlYbHJZbzBHZE9nWXNTQVNna1RjVWhYb213R2slM0Q%3D&source=web"
}
```

## Big C

Allow consumers to pay by cash or credit card for their online grocery purchases, and then go to the takeaway point or have it delivered.

### Capabilities

|                                    | Big C      |
| :--------------------------------- | :--------- |
| **Max. expiration time supported** | 5 minutes  |
| **Notification delay**             | Immediate  |
| **Refunds**                        | Yes        |
| **Flow**                           | `REDIRECT` |

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `TK` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `REDIRECT`                                                                                                             | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 1000,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "TK",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "janedoe@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-c794a7be-yht6-4cf3-9f67-8a2e45ee5942",
    "amount": 1000,
    "currency": "THB",
    "payment_method_id": "TK",
    "payment_method_type": "TICKET",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-01-30T18:44:36.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-63319f4a-7uy6-4612-8c6e-be7e98fcff55"
}
```

### Example ticket

<Image src="https://files.readme.io/57f2ce9df0703f28a0710de56b2882ab635f41e855ff445187515a20fecfad03-APM_-_BIG_C.png" alt="Example Big C built with the information in the example above." align="center" caption="Example Big C built with the information in the example above." />

## K PLUS

K PLUS is a mobile banking application developed by Kasikorn Bank, accessible on both iOS and Android platforms.

Seamlessly integrated with K Bank accounts, K PLUS empowers customers to process payments for their orders effortlessly, offering a convenient and secure transaction experience.

### Capabilities

|                                    | K PLUS     |
| :--------------------------------- | :--------- |
| **Max. expiration time supported** | 5 days     |
| **Notification delay**             | Immediate  |
| **Refunds**                        | Yes        |
| **Flow**                           | `REDIRECT` |

### UX Flow

<Image src="https://files.readme.io/256abfe440442eb4a6ab4045e20ba0b762a4322b5977d6ec2f9b173134c79483-K_PLUS.png" alt="The screenshots illustrate a generic K PLUS redirect flow." align="center" caption="The screenshots illustrate a generic K PLUS redirect flow." />

### Request parameters

| Property              | Type   | Description                                                                                                            | Mandatory? |
| :-------------------- | :----- | :--------------------------------------------------------------------------------------------------------------------- | :--------- |
| `amount`              | Number | Amount to be charged.                                                                                                  | Yes        |
| `currency`            | String | `THB`<br /><br />Transaction currency in [ISO 4217](http://en.wikipedia.org/wiki/ISO_4217).                            | Yes        |
| `country`             | String | `TH` <br /><br />Transaction country in [ISO 3166](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes).      | Yes        |
| `payment_method_id`   | String | `KG` <br /><br />ID of the selected payment method.                                                                    | Yes        |
| `payment_method_flow` | String | `REDIRECT`                                                                                                             | Yes        |
| `payer.name`          | String | Name of the payer.                                                                                                     | Yes        |
| `payer.email`         | String | Email of the payer.                                                                                                    | Yes        |
| `payer.document`      | String | Document of the payer.                                                                                                 | Yes        |
| `order_id`            | String | ID of the capture given by the merchant in their system. Think of it as an external ID of the capture.                 | No         |
| `notification_url`    | String | Notifications will be sent in every change of status of a payment to the `notification_url` specified by the merchant. | No         |

### Examples

```json Request Example
{
    "amount": 100,
    "currency": "THB",
    "country": "TH",
    "payment_method_id": "KG",
    "payment_method_flow": "REDIRECT",
    "payer": {
        "name": "Jane Doe",
        "email": "jane@mymail.com",
        "document": "1234567890123",
        "address": {
            "country": "TH",
            "state": "Bangkok",
            "city": "Bangkok",
            "zip_code": "8858",
            "street": "Main St.",
            "number": "540"
        }
    },
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "callback_url": "http://merchantsite.com/success_page"
}
```
```json Response Example
{
    "id": "R-4-e0d51abe-b05e-4re4-b7a2-5eb3508dcca5",
    "amount": 100,
    "currency": "THB",
    "payment_method_id": "KG",
    "payment_method_type": "BANK_TRANSFER",
    "payment_method_flow": "REDIRECT",
    "country": "TH",
    "created_date": "2023-07-17T21:27:15.000+0000",
    "status": "PENDING",
    "status_detail": "The payment is pending.",
    "status_code": "100",
    "order_id": "345453483kqws0",
    "description": "Tshirt",
    "notification_url": "http://merchantsite.com/notification/new",
    "redirect_url": "https://pay.dlocal.com/gmf-apm/payments-redirect/M-2484adb6-683e-4782-bb6c-f5d88e63d1d0"
}
```