This page lists every data requirement for IDR payments to Indonesia: the beneficiary and originator identities, the beneficiary financial instrument, and the transaction itself.
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 and Financial instruments, or use the Payload Schema Utility.
Create the beneficiary identity before the financial instrument, then reference it when you create the payment. See Create and manage identities for the API workflow.
The required fields depend on whether the beneficiary is a business or an individual.
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]+$. |
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]+$. |
Set financialInstrumentType: ID_BIFAST and currency: IDR. Provide the following fields in the idBifast payment rail object. See 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 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]+$. |
Create the originator identity once and reuse it across payments.
The required fields depend on whether the originator is a business or an individual.
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. |
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]+$. |
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 below |
sourceOfCash | Source of funds | Required | ENUM | See valid values below |
receiverRelationship | Relationship to the debtor | Required | ENUM | See valid values below; valid values depend on whether the beneficiary is a business or an individual |
| 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 |
| 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 |
Valid receiverRelationship values depend on whether the beneficiary is a business or an individual.
| Code | Description |
|---|---|
BRAN | Branch/Representative office |
CUST | Customer |
FRAN | Franchisee/Franchisor |
HOLD | Holding company |
PART | Business partner |
SUBS | Subsidiary company |
SUPP | Supplier |
| 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 |
| 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.
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 |