# Thailand (THB) Data Requirements

This page lists every data requirement for THB payments to Thailand: the beneficiary and
originator identities, the beneficiary financial instrument, and the transaction itself.

Fields shown are those required for this corridor
The identity and financial instrument tables on this page list only the fields `TH_PROMPTPAY`
requires, taken from the PII v3 schema. Identities and financial instruments accept further
optional fields. For the complete set, see
[Payment identities](/products/payments-direct-2/introduction/concepts/payment-identities) and
[Financial instruments](/products/payments-direct-2/introduction/concepts/financial-instruments), or use the
[Payload Schema Utility](/products/payments-direct-2/api-docs/integration-resources/payload-schema-utility).

## Beneficiary identity

Create the beneficiary identity before the financial instrument, then reference it when you
create the payment. See [Create and manage identities](/products/payments-direct-2/api-docs/developer-guides/create-and-manage-identities)
for the API workflow.

The required fields depend on whether the beneficiary is a **business** or an **individual**.

### Business beneficiary

Applies to the **B2B**, **B2B2B**, **C2B2B** use cases. Submit a `business` identity.

| Field  | Required | Type | Constraints  |
|  --- | --- | --- | --- |
| `businessName` | Required | STRING | Business Legal Name. 1–140 characters. Must match `^(?![ .,'&\/()-])(?!.*([ .,'&\/()-])\1)[\p{L}\p{N} .,'&\/()-]+(?<![ .,'&\/-])?$`. |
| `address.streetAddress` | Required | ARRAY of STRING | Allows the street address of the business to be held. |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | City. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L} .'-]+(?<![ .'-])$`. |
| `address.stateOrProvince` | Required | STRING | State, province, or county of the business address, as defined by postal services. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L}\p{N} .'-]+(?<![ .'-])$`. |
| `address.postalCode` | Required | STRING | Postal code for the business. 3–15 characters. Must match `^[\p{L}\p{N}][\p{L}\p{N} -]{1,15}[\p{L}\p{N}]$`. |
| `phone` | Required | STRING | Phone Number. 8–16 characters. Must match `^\+[1-9]\d+$`. |
| `registration[].number` | Required | STRING | The unique identifier of the organization. 3–35 characters. Must match `^(?![ .'-\/])(?!.*[ .'-\/]{2})([A-Za-z0-9 .'-\/]+)(?<![ .'-\/])\/?$`. |
| `registration[].type` | Required | STRING | One of `INCORPORATION_CERTIFICATE`, `TAX_ID`. |
| `incorporationCountry` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |


### Individual beneficiary

Applies to the **B2B2C**, **B2C**, **C2B2C** use cases. Submit an `individual` identity.

| Field  | Required | Type | Constraints  |
|  --- | --- | --- | --- |
| `firstName` | Required | STRING | First name of the individual. 1–140 characters. Must match `^(?![ .'-])(?!.*([ .'-])\1)[\p{L} .'-]+(?<![ .'-])$`. |
| `lastName` | Required | STRING | Last name of the individual. 1–140 characters. Must match `^(?![ .'-])(?!.*([ .'-])\1)[\p{L} .'-]+(?<![ .'-])$`. |
| `address.streetAddress` | Required | ARRAY of STRING | Allows the street address of the individual to be held. |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | City. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L} .'-]+(?<![ .'-])$`. |
| `address.stateOrProvince` | Required | STRING | State, province, or county of the individual's address, as defined by postal services. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L}\p{N} .'-]+(?<![ .'-])$`. |
| `address.postalCode` | Required | STRING | Postal code for the individual's address. 3–15 characters. Must match `^[\p{L}\p{N}][\p{L}\p{N} -]{1,15}[\p{L}\p{N}]$`. |
| `phone` | Required | STRING | Phone Number. 8–16 characters. Must match `^\+[1-9]\d+$`. |
| `identityDocuments[].idNumber` | Required | STRING | Identification Number. 3–35 characters. Must match `^(?![ .'-\/])(?!.*[ .'-\/]{2})([A-Za-z0-9 .'-\/]+)(?<![ .'-\/])\/?$`. |
| `identityDocuments[].idType` | Required | STRING | One of `ALIEN_REGISTRATION`, `DRIVERS_LICENSE`, `EMPLOYEE_ID`, `NATIONAL_ID_NUMBER`, `PASSPORT`, `SSN`, `TAX_ID`. |
| `citizenship` | Required | STRING | Alpha-2 country code for the nationality of the individual in ISO 3166-1 format. Exactly 2 characters. Must match `^[A-Z]+$`. |


## Beneficiary financial instrument

Set `financialInstrumentType: TH_PROMPTPAY` and `currency: THB`. Provide the following fields in the `thPromptpay` payment rail object. See [Create and manage financial instruments](/products/payments-direct-2/api-docs/developer-guides/create-and-manage-financial-instruments) for the API workflow.

| Field  | Required | Type | Constraints  |
|  --- | --- | --- | --- |
| `bankName` | Required | STRING | The name of the identity's bank. 2–140 characters. Must match `^(?![ .,'&\/()-])(?!.*([ .,'&\/()-])\1)[\p{L}\p{N} .,'&\/()-]+(?<![ .,'&\/-])?$`. |
| `bankCode` | Required | STRING | 1–16 characters. Must match `^[A-Za-z0-9]+$`. Use the [Bank Codes](/products/payments-direct-2/api-docs/integration-resources/ripple-bank-codes) lookup and select Thailand to find the bank code. |
| `accountNumber` | Required | STRING | The identity's bank account number. 1–45 characters. Must match `^[A-Za-z0-9]+$`. |


## Originator identity

Create the originator identity once and reuse it across payments.

The required fields depend on whether the originator is a **business** or an **individual**.

### Business originator

Applies to the **B2B**, **B2B2B**, **B2B2C**, **B2C** use cases. Submit a `business` identity.

| Field  | Required | Type | Constraints  |
|  --- | --- | --- | --- |
| `businessName` | Required | STRING | Business Legal Name. 1–140 characters. Must match `^(?![ .,'&\/()-])(?!.*([ .,'&\/()-])\1)[\p{L}\p{N} .,'&\/()-]+(?<![ .,'&\/-])?$`. |
| `address.streetAddress` | Required | ARRAY of STRING | Allows the street address of the business to be held. |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | City. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L} .'-]+(?<![ .'-])$`. |
| `address.stateOrProvince` | Required | STRING | State, province, or county of the business address, as defined by postal services. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L}\p{N} .'-]+(?<![ .'-])$`. |
| `address.postalCode` | Required | STRING | Postal code for the business. 3–15 characters. Must match `^[\p{L}\p{N}][\p{L}\p{N} -]{1,15}[\p{L}\p{N}]$`. |
| `phone` | Required | STRING | Phone Number. 8–16 characters. Must match `^\+[1-9]\d+$`. |
| `registration[].number` | Required | STRING | The unique identifier of the organization. 3–35 characters. Must match `^(?![ .'-\/])(?!.*[ .'-\/]{2})([A-Za-z0-9 .'-\/]+)(?<![ .'-\/])\/?$`. |
| `registration[].type` | Required | STRING | One of `INCORPORATION_CERTIFICATE`, `TAX_ID`. |
| `incorporationCountry` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `incorporationDate` | Required | STRING | The date when the business was incorporated. Format `date`. |


### Individual originator

Applies to the **C2B2B**, **C2B2C** use cases. Submit an `individual` identity.

| Field  | Required | Type | Constraints  |
|  --- | --- | --- | --- |
| `firstName` | Required | STRING | First name of the individual. 1–140 characters. Must match `^(?![ .'-])(?!.*([ .'-])\1)[\p{L} .'-]+(?<![ .'-])$`. |
| `lastName` | Required | STRING | Last name of the individual. 1–140 characters. Must match `^(?![ .'-])(?!.*([ .'-])\1)[\p{L} .'-]+(?<![ .'-])$`. |
| `address.streetAddress` | Required | ARRAY of STRING | Allows the street address of the individual to be held. |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | City. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L} .'-]+(?<![ .'-])$`. |
| `address.stateOrProvince` | Required | STRING | State, province, or county of the individual's address, as defined by postal services. 1–140 characters. Must match `^(?![ .'-])(?!.*[ .'-]{2})[\p{L}\p{N} .'-]+(?<![ .'-])$`. |
| `address.postalCode` | Required | STRING | Postal code for the individual's address. 3–15 characters. Must match `^[\p{L}\p{N}][\p{L}\p{N} -]{1,15}[\p{L}\p{N}]$`. |
| `phone` | Required | STRING | Phone Number. 8–16 characters. Must match `^\+[1-9]\d+$`. |
| `identityDocuments[].idNumber` | Required | STRING | Identification Number. 3–35 characters. Must match `^(?![ .'-\/])(?!.*[ .'-\/]{2})([A-Za-z0-9 .'-\/]+)(?<![ .'-\/])\/?$`. |
| `identityDocuments[].idType` | Required | STRING | Must be `PASSPORT`. |
| `identityDocuments[].expiryDate` | Required | STRING | Expiration date of the identification document. Format `date`. |
| `dateOfBirth` | Required | STRING | Date of Birth. Format `date`. |
| `citizenship` | Required | STRING | Alpha-2 country code for the nationality of the individual in ISO 3166-1 format. Exactly 2 characters. Must match `^[A-Z]+$`. |


## Transaction data requirements

The following transaction-level fields apply to all THB payments to Thailand via PromptPay.

| Field  | Description  | Required | Type | Constraints  |
|  --- | --- | --- | --- | --- |
| `purposeCode` | Purpose of payment | Required | ENUM | 4–5 chars. See [valid values](#purpose-of-payment-codes) below |
| `sourceOfCash` | Source of funds | Required | ENUM | See [valid values](#source-of-cash-codes) below |
| `receiverRelationship` | Relationship to the debtor | Required | ENUM | See [valid values](#beneficiary-relationship-codes) below; valid values depend on whether the beneficiary is a business or an individual |


## Purpose of payment codes

| Code | Description |
|  --- | --- |
| `ACSC` | Accounting services |
| `AMSC` | Advertising, market research, and public opinion polling services |
| `ALLW` | Allowance |
| `GIFT` | Allowance (gift) |
| `ENGS` | Architectural, engineering and other technical services |
| `BONU` | Bonus payment |
| `COMM` | Commission |
| `CISC` | Construction and installation services |
| `DEPT` | Deposit |
| `DOFI` | Deposits with or from offshore financial institutions |
| `EDUC` | Education |
| `EDSC` | Education services |
| `FAMI` | Family maintenance |
| `GSST` | Goods and services by short-term workers |
| `GSTR` | Goods and services by travellers |
| `GSPM` | Goods for processing & manufacturing services |
| `HLTC` | Home health care |
| `INTE` | Interest |
| `INTC` | Intra company payment |
| `INVS` | Investment & securities |
| `IVPT` | Invoice payment |
| `LESC` | Legal services |
| `MRSC` | Maintenance and repair services |
| `MDCS` | Medical services |
| `MP2P` | Mobile P2P payment |
| `OTHR` | Others |
| `PSFR` | Passenger fare |
| `MACH` | Payment for machinery and transport equipment |
| `MFGD` | Payment for manufactured goods |
| `MMFA` | Payment for miscellaneous manufactured articles |
| `FEES` | Payment of fees |
| `PAYR` | Payroll |
| `GDDS` | Purchase sale of goods |
| `GDSV` | Purchase sale of goods and services |
| `SCVE` | Purchase sale of services |
| `REAB` | Real estate abroad |
| `RELG` | Rental lease general |
| `SALA` | Salary payment |
| `STDY` | Study |
| `SUPP` | Supplier payment |
| `TRAD` | Trade services |
| `VIAC` | Visa application charges |


## Source of cash codes

| Code | Description |
|  --- | --- |
| `ALMY` | Alimony |
| `CASH` | Cash proceeds |
| `COMP` | Compensation |
| `EMIN` | Employee income |
| `GIFT` | Gift |
| `INHE` | Inheritance |
| `INLQ` | Insurance premium liquidation |
| `PACA` | Paid-up capital |
| `REDM` | Redemption |
| `REPY` | Retirement policy |
| `REST` | Real estate sale |
| `RETA` | Retained earnings |
| `SALE` | Sale of goods |
| `SEAQ` | Sale or acquisition of a corporation |
| `SELF` | Self-employment income |
| `SVGS` | Savings |
| `WINS` | Winnings |


## Beneficiary relationship codes

Valid `receiverRelationship` values depend on whether the beneficiary is a business or an individual.

### Business beneficiaries

| Code | Description |
|  --- | --- |
| `BRAN` | Branch/Representative office |
| `CUST` | Customer |
| `FRAN` | Franchisee/Franchisor |
| `HOLD` | Holding company |
| `PART` | Business partner |
| `SUBS` | Subsidiary company |
| `SUPP` | Supplier |


Business-to-business exception
For business-to-business payments (`B2B`, `B2B2B` use cases), `CUST` is not a valid `receiverRelationship` value; only the other six codes apply.

### Individual beneficiaries

| Code | Description |
|  --- | --- |
| `CHIL` | Child |
| `CUST` | Customer |
| `EMPL` | Employee |
| `EXSP` | Ex-spouse |
| `FREN` | Friend |
| `OTHR` | Other |
| `PARE` | Parent |
| `PART` | Business partner |
| `RELA` | Relation |
| `SELF` | Self |
| `SIBL` | Sibling/brother/sister |
| `SPOU` | Covering spouse/partner |
| `VEND` | Vendor |


Business-to-individual exception
For business-to-individual and individual-to-individual payments in the `B2B2C` and `B2C` use cases, `CUST` is not a valid `receiverRelationship` value; only the other twelve codes apply. `CUST` is valid for `C2B2C`.

## Transaction limits

| Limit type | Amount (THB) |
|  --- | --- |
| Minimum per transaction | 65.00 |
| Maximum per transaction | 500,000.00 |
| Daily compliance limit per beneficiary | 1,750,000.00 |


Transactions that cause the sender or receiver to exceed the daily compliance limit are held for compliance review.

## Name-matching requirements

All transactions to Thailand are subject to strict name matching. The following fields must be accurate:

- Sender's full name
- Sender's date of birth
- Beneficiary's full name


Name-matching rules:

- At least **85%** of the beneficiary's name must match the name registered with their Thai bank.
- Enter the full name exactly as registered: first, middle, and last names.
- Do not include prefixes or salutations (Mr, Ms, Mrs, etc.).
- Avoid duplicated or repetitive names.
- Enter the last name in the **Surname** field; all other name parts in the **Name** field.
- Do not enter "NO LAST NAME." Such entries will be rejected.
- Remove any extra spaces before or after the name.


Rejection risk
Inaccurate name details will result in transaction rejection. Verify all name fields against the beneficiary's bank registration before submitting.

## Kasikorn Bank restriction

Kasikorn Bank (bank code 6600007)
When sending to Kasikorn Bank, the sender's origin country cannot be Thailand.

## Accepted identity document types

Payments over `TH_PROMPTPAY` accept only the following identity document types. Requests that use a document type not listed for the relevant payment role are rejected with a 400 error. Where a role or identity type is not listed below, all values in the field's enum are accepted.

| Identity type | Payment role | Accepted document types |
|  --- | --- | --- |
| Individual (`idType`) | Originator | PASSPORT |
| Individual (`idType`) | Beneficiary | ALIEN_REGISTRATION, DRIVERS_LICENSE, EMPLOYEE_ID, NATIONAL_ID_NUMBER, PASSPORT, SSN, TAX_ID |