# Indonesia (IDR) Data Requirements

This page lists every data requirement for IDR payments to Indonesia: 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 `ID_BIFAST`
requires, taken from the PII v3 schema. Identities and financial instruments accept further
optional fields. For the complete set, see
[Payment identities](/pt-br/products/payments-direct-2/v2026.03/introduction/concepts/payment-identities) and
[Financial instruments](/pt-br/products/payments-direct-2/v2026.03/introduction/concepts/financial-instruments), or use the
[Payload Schema Utility](/pt-br/products/payments-direct-2/v2026.03/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](/pt-br/products/payments-direct-2/v2026.03/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 | Street address of the business. Required for ORIGINATOR identities on every corridor, and for BENEFICIARY identities on most corridors. See the Payload Schema Utility for the corridors that require it. For a BENEFICIARY the requirement is checked against the corridors in `validatePayoutRails` and against any attached financial instrument, so an identity created with neither is checked when a financial instrument is attached. Omitting it or sending an empty array fails identity create and update with 400 Bad Request (USR_111). |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | 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 | Street address of the individual. Required for ORIGINATOR identities on every corridor, and for BENEFICIARY identities on most corridors. See the Payload Schema Utility for the corridors that require it. For a BENEFICIARY the requirement is checked against the corridors in `validatePayoutRails` and against any attached financial instrument, so an identity created with neither is checked when a financial instrument is attached. Omitting it or sending an empty array fails identity create and update with 400 Bad Request (USR_111). |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | 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 | 3–35 characters. Must match `^(?![ .'-\/])(?!.*[ .'-\/]{2})([A-Za-z0-9 .'-\/]+)(?<![ .'-\/])\/?$`. |
| `identityDocuments[].idType` | Required | STRING | One of `ALIEN_REGISTRATION`, `CUSTOMER_ID`, `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: ID_BIFAST` and `currency: IDR`. Provide the following fields in the `idBifast` payment rail object. See [Create and manage financial instruments](/pt-br/products/payments-direct-2/v2026.03/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–256 characters. Must match `^([A-Za-z0-9]+|RPL:ID:[A-Z0-9]{7,11}(_\d+)?:(BNK|WAL))$`. Use the [Bank Codes](/pt-br/products/payments-direct-2/v2026.03/api-docs/integration-resources/ripple-bank-codes) lookup and select Indonesia to find the Ripple 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 | Street address of the business. Required for ORIGINATOR identities on every corridor, and for BENEFICIARY identities on most corridors. See the Payload Schema Utility for the corridors that require it. For a BENEFICIARY the requirement is checked against the corridors in `validatePayoutRails` and against any attached financial instrument, so an identity created with neither is checked when a financial instrument is attached. Omitting it or sending an empty array fails identity create and update with 400 Bad Request (USR_111). |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | 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 | 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 | Street address of the individual. Required for ORIGINATOR identities on every corridor, and for BENEFICIARY identities on most corridors. See the Payload Schema Utility for the corridors that require it. For a BENEFICIARY the requirement is checked against the corridors in `validatePayoutRails` and against any attached financial instrument, so an identity created with neither is checked when a financial instrument is attached. Omitting it or sending an empty array fails identity create and update with 400 Bad Request (USR_111). |
| `address.country` | Required | STRING | Exactly 2 characters. Must match `^[A-Z]+$`. |
| `address.city` | Required | STRING | 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 | 3–35 characters. Must match `^(?![ .'-\/])(?!.*[ .'-\/]{2})([A-Za-z0-9 .'-\/]+)(?<![ .'-\/])\/?$`. |
| `identityDocuments[].idType` | Required | STRING | Must be `PASSPORT`. |
| `identityDocuments[].expiryDate` | Required | STRING | Format `date`. |
| `dateOfBirth` | Required | STRING | 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 IDR payments to Indonesia via BI-FAST.

| 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 |


### 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 |


## Transaction limits

| Limit type | Amount (IDR) |
|  --- | --- |
| Minimum per transaction | 50,000 |
| Maximum per transaction | 100,000,000 |
| Daily compliance limit per beneficiary | 750,000,000 |


BI-FAST runs 24/7 with no cut-off time, and payments settle in real time.

## Accepted identity document types

An individual identity used with `ID_BIFAST` must carry at least one identity document of a type accepted for its payment role. If none of its documents is an accepted type, the request fails with **400 Bad Request** (`USR_111`). 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 |