# Bangkok Bank

> Bangkok Bank is the sixth largest bank in Asia and one of the top three largest banks in Thailand.

Bangkok Bank (BBL) is a Thai commercial bank. Founded in 1944, BBL floated on the Stock Exchange of Thailand in 1975. It is the sixth largest bank in Asia and one of the top three largest banks in Thailand. BBL has more than 10.7 million Thai users. Currently, the bank supports two different ways to pay: online banking and bank transfer via offline ATMs.

## Properties

The properties of the BBL payment method are shown in the following table based on different payment types:

| **Payment type** | Online banking | Online banking | Online banking |
| --- | --- | --- | --- |
| **Acquirer** | AntomSG, AntomHK, AntomUK, AntomEU | **Refund** | ❌ |
| **Merchant entity location** | SG, HK, UK, EEA | **Partial refund** | ❌ |
| **Buyer country/region** | Thailand | **Refund period** | ❌ |
| **Processing currency** | THB | **Time to return refund result** | ❌ |
| **Payment flow** | Redirect | **Time to return payment result** | Real-time |
| **Minimum payment amount** | 1 THB per transaction | **Chargeback/Dispute** | ❌ |
| **Maximum payment amount** | 2 million THB per transaction and per day | **Default timeout** | 14 minutes |

| **Payment type** | Bank transfer | Bank transfer | Bank transfer |
| --- | --- | --- | --- |
| **Acquirer** | AntomSG, AntomHK, AntomUK, AntomEU | **Refund** | ❌ |
| **Merchant entity location** | SG, HK, UK, EEA | **Partial refund** | ❌ |
| **Buyer country/region** | Thailand | **Refund period** | ❌ |
| **Processing currency** | THB | **Time to return refund result** | ❌ |
| **Payment flow** | Redirect | **Time to return payment result** | Real-time |
| **Minimum payment amount** | 1 THB per transaction | **Chargeback/Dispute** | ❌ |
| **Maximum payment amount** | 2 million THB per transaction and per day | **Default timeout** | 48 hours |
| **Maximum payment amount** | 2 million THB per transaction and per day | **Customize the timeout** | ✔️ |

## User experience

> **Note**: The following payment flows on different terminals are reference only, and represent this payment method's flow on different terminal types. For supported merchants' terminal types, consult Antom Technical Support.

The following graphic shows the user experience of BBL for the WAP terminal in different scenarios.

#### Tab: Online banking

![image.png](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2024/png/22068513-9626-44f8-baa9-3d5ce2ab0f11.png)

1.  The buyer selects BBL to pay.
2.  The buyer inputs the account ID and password to enter the bank page.
3.  The buyer confirms the order information and completes the payment.
4.  The buyer is redirected to the merchant result page.

#### Tab: Bank transfer

![image.png](https://idocs-assets.marmot-cloud.com/storage/idocs87c36dc8dac653c1/yuque/idocs/2024/png/524b87bd-048b-4fb1-aaf2-927a0f9c9998.png)

1.  The buyer selects BBL to pay.
2.  The buyer is directed to the payment code page.
3.  The buyer inputs the mobile PIN.
4.  The buyer enters the bill payment page.
5.  The buyer confirms the payment.
6.  The buyer is redirected to the merchant result page.

## Supported online payment integrations

Antom offers a range of integration options tailored to each payment method. Each payment method may support different online payment integration options, allowing for flexibility based on your business requirements. The table below provides detailed information about the specific integrations available for each payment method:

| **Supported online payments** | **Supported integrations** |
| --- | --- |
| One-time Payments | ✔️ [API-only](https://docs.antom.com/ac/cashierpay/apm_api.md)Not supported on PC ✔️ [Hosted Checkout Page](https://docs.antom.com/ac/cashierpay/HOSTEDCKP.md) ❌ Embedded Checkout Page ✔️ [Web Element](https://docs.antom.com/ac/cashierpay_zh-cn/element.md) ✔️ [Mobile Element](https://docs.antom.com/ac/cashierpay_zh-cn/element.md) ❌ Payment links |
| Tokenized Payment | ❌ |
| Subscription Payment | ❌ |
| EasySafePay | ❌ |
| Scan to Link | ❌ |

## Integration considerations

The following section outlines integration considerations for various payment types, detailing customized integration solutions and payment method features.

#### Tab: Online banking

### About _normalUrl_

For WAP and App terminals, _normalUrl_ is returned in the response of the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API. Different terminal types have specific integration features when returning _normalUrl_:

-   WAP: The returned _normalUrl_  is the browser link. The buyer is redirected to the bank payment page and complete the payment by logging in with the account and password.
-   App: The returned _normalUrl_ does not trigger the payment method app. It is recommended to render the bank middle page URL directly within the merchant app and set the merchant result page to the browser link instead of the app's scheme. If you use the external redirection to open the bank middle page URL, set the merchant result page to the merchant app's scheme or redirect the browser link to the scheme or deeplink.
-   Web: Not supported on PC.

### After payments

This payment method does not support refunds. It is recommended to communicate directly with the buyer offline.

### Default timeout

If the buyer does not complete the payment, Antom sends you an asynchronous notification of the payment result at the 14th minute. The timeout period for the merchant to wait for the asynchronous notification or inquire about the result must be greater than 14 minutes.

#### Tab: Bank transfer

### About _normalUrl_

-   When accepting payments from BBL, you can choose whether to use _normalUrl_:

-   If choosing not to use _normalUrl_, you can directly render the _codeValue_ in the API response on the merchant page to display the QR code or payment code, reducing page redirections and improving the payment experience.
-   If choosing to use _normalUrl_, redirect your buyer to the address specified by _normalUrl_ and proceed the payment process as indicated in [User experience](#aMZQI).

-   For WAP and App terminals, _normalUrl_ is returned in the response of the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API. The buyer is redirected to the address specified by _normalUrl_ and uses the payment code displayed on the page to proceed with the payment within the mobile banking app or on the offline ATM device. After the payment is completed, the middle page automatically redirects to the merchant result page.
-   Different terminal types have specific integration features when returning _normalUrl_.

-   WAP: The returned _normalUrl_ is the payment code and payment operation display page. The buyer copies the payment code and proceeds to the bank app or the ATM based on the payment operation or the screenshot to complete the payment.
-   App: The returned _normalUrl_ does not trigger the payment method app. It is recommended that you render the URL page directly within the merchant app and provide payment operation steps to guide buyers to complete the payment.
-   Web: Not supported on PC.

### After payments

-   After the buyer completes the payment in the bank app, the banking app will not automatically redirect to the merchant's results page. The buyer needs to manually navigate to the transaction initiation app (the merchant app or browser).
-   This payment method does not support refunds. It is recommended to communicate directly with the buyer offline.
-   Obtain the payment result from the payment result notification ([**notifyPayment**](https://docs.antom.com/ac/ams/paymentrn_online.md)) or by making inquiries ([**inquiryPayment**](https://docs.antom.com/ac/ams/paymentri_online.md)). Handle the redirection and display of the payment result page to avoid duplicate payments.

### Default timeout

The QR code returned by Antom will not be refreshed automatically. When displaying the QR code, use the _expireTime_ parameter value returned in the [**pay (One-time Payments)**](https://docs.antom.com/ac/ams/payment_cashier.md) API response to display the timeout information. When displaying the payment code, enable the copy function for the payment code and allow the buyer to conveniently paste the payment code into the payment method app.

### Response sample

The following is a code example in the payment response:

```json
{
    "normalUrl": "https://iexpfront-sea-global.alipay.com/payments/method/checkout/code.html?merchantId=188iwOYLsWM%2B3OM5i43oAN6sL7yTti1YlTOEpSbxNsmiew%3D&paymentRequestId=Xryjdo2GKK4eetbU8mXRkZ%2FNUzRJ9m77mJ9eyTT9VIg%3D&clientId=5Y607N2YJU8006726",
    "orderCodeForm": {
        "codeDetails": [
            {
                "codeValue": "6176225925",
                "displayType": "TEXT"
            },
            {
                "codeValue": "https://iexpfront-sea.alipay.com/showQrImage.htm?code=3%252Fk97oupdVD%252ByBP1ou%252Bpti39M%252FUJ2xuD8vdS0ApwEur8PO87jM03WB9zOqjuudotBC0t%252BIfiXsQ0qVtvS9sluQ%253D%253D&size=M&sid=188",
                "displayType": "MIDDLEIMAGE"
            },
            {
                "codeValue": "|010555303610000 0000006176225925 0000006176225925 150",
                "displayType": "TEXT"
            }
        ],
        "expireTime": "2024-03-26T19:18:18-07:00"
    },
    "paymentActionForm": "{\"paymentActionFormType\":\"PaymentCodeForm\",\"paymentCodeExpireTime\":1711505898000,\"paymentCodeInfos\":[{\"paymentCodeDetails\":[{\"codeValue\":\"6176225925\",\"codeValueType\":\"DIGICODE\",\"displayType\":\"TEXT\"},{\"codeValue\":\"|010555303610000 0000006176225925 0000006176225925 150\",\"codeValueType\":\"QRCODE\",\"displayType\":\"IMAGE\"},{\"codeValue\":\"|010555303610000 0000006176225925 0000006176225925 150\",\"codeValueType\":\"BARCODE\",\"displayType\":\"IMAGE_CONVERT\"}],\"paymentCodeInfoType\":\"PAYMENT_CODE\"}]}",
    "paymentAmount": {
        "currency": "THB",
        "value": "150"
    },
    "paymentCreateTime": "2024-03-24T19:18:18-07:00",
    "paymentId": "20240325194010800100188860213229978",
    "paymentRequestId": "PAY_20240325101817745",
    "redirectActionForm": {
        "method": "GET",
        "redirectUrl": "https://iexpfront-sea-global.alipay.com/payments/method/checkout/code.html?merchantId=188iwOYLsWM%2B3OM5i43oAN6sL7yTti1YlTOEpSbxNsmiew%3D&paymentRequestId=Xryjdo2GKK4eetbU8mXRkZ%2FNUzRJ9m77mJ9eyTT9VIg%3D&clientId=5Y607N2YJU8006726"
    },
    "result": {
        "resultCode": "PAYMENT_IN_PROCESS",
        "resultMessage": "payment in process",
        "resultStatus": "U"
    }
}
```