NRE Payouts — KYC / KYB
Field requirements for creating NRE customers (Non-Resident External account holders). NRE customers are processed through a dedicated NRE-compliant payouts rail; the standard crypto-offramp and trade-finance flows cannot handle NRE accounts.
NRE customers are processed through a dedicated NRE-compliant payouts rail. Use the create-customer flow with purpose: 'nre'. The grouped tables below list every accepted field for each supported (type, party) combination. Send only the fields relevant to your combination; unknown or unrelated fields are ignored.
Individual senders carry the full identity-document, contact, and address payload for compliance. Front + back scans of the chosen identity document are optional at create time — uploaded separately via POST /uploadCustomerDocument and referenced on createCustomer via the documents map, or attached later via updateCustomer. The offramp partner ultimately requires them for KYC, so a payout attempted before scans are attached will be rejected by the partner with the field-level reason surfaced as failure_reason on the payout. Individual receivers can be created with just nationality — names, contact fields, addresses, and relation_code / bank_account_type_code are all optional and default to family / savings when omitted; the bank's branch address is resolved from the IFSC at payout-initiation time. Business customers are not permitted on the NRE flow at all.
How NRE differs
NRE accounts require a dedicated NRE-compliant payouts rail. The standard crypto-offramp and trade-finance flows cannot handle NRE customers — the payouts service routes create-customer requests with purpose='nre' to the appropriate NRE rail automatically.
Individual — sender
Apply when type = 'individual' and party = 'sender'. The sender is the natural person initiating the NRE payout — the partner uses these fields for KYC and compliance.
| Field | Type | Required | Description |
|---|---|---|---|
| nationality | string (ISO 3166-1 alpha-2) | Yes | Two-letter country code for the sender's nationality (e.g. US, AE). |
| first_name | string | Yes | Sender's legal first name as it appears on the identity document. |
| middle_name | string | No | Sender's middle name if present on the identity document. |
| last_name | string | Yes | Sender's legal last name as it appears on the identity document. |
| date_of_birth | string (YYYY-MM-DD) | Yes | Sender's date of birth in ISO 8601 format. |
| mobile_number | string | Yes | Sender's mobile number without the country/dial code (e.g. 9876543210). |
| isd_code | string | Yes | International Subscriber Dialing code for the sender's mobile number (e.g. +91, +971). |
| string | No | Sender's email address. Optional — not required by the NRE payout rail. | |
| present_address | object | Yes | Sender's current residential address. Shape: { address_line, city, country_code, address_type? }. |
| present_address.address_line | string | Yes | Street address line. |
| present_address.city | string | Yes | City or town name. |
| present_address.country_code | string (ISO 3166-1 alpha-2) | Yes | Two-letter country code. |
| present_address.address_type | present | permanent | No | Optional address-type qualifier passed through to the remittance partner. Defaults to 'present' on the present_address slot and 'permanent' on the permanent_address slot. |
| permanent_address | object | No | Sender's permanent address. Same shape as present_address. Defaults to present_address when omitted. |
| identity_document_type | passport | localid | emirates_id | national_id | driving_license | Yes | Type of identity document used to identify the sender for the NRE payout. |
| identity_document_number | string | Yes | Document number that corresponds to the chosen identity_document_type. |
| identity_document_issued_on | string (YYYY-MM-DD) | No | Date the identity document was issued. |
| identity_document_valid_through | string (YYYY-MM-DD) | No | Date the identity document expires. |
| identity_document_issued_country_code | string (ISO 3166-1 alpha-2) | No | Two-letter country code of the country that issued the identity document. |
| identity_document_image_front | string (document_id) | No | Optional. document_id returned by POST /uploadCustomerDocument for the front-side scan of the sender's identity document. Submitted via the documents map: { identity_document_image_front: <document_id> }. Allowed file types: PDF, JPEG, PNG (max 4 MB). The offramp partner ultimately requires this for KYC; you may onboard the customer without it and attach later via updateCustomer. |
| identity_document_image_back | string (document_id) | No | Optional. document_id returned by POST /uploadCustomerDocument for the back-side scan of the sender's identity document. Submitted via the documents map: { identity_document_image_back: <document_id> }. Allowed file types: PDF, JPEG, PNG (max 4 MB). For document types with no back side (e.g. passport), upload the same scan twice. |
Individual — receiver
Apply when type = 'individual' and party = 'receiver'. The receiver is the settlement beneficiary — only nationality is required because the partner does not run KYC against the receiver record (the per-payout beneficiary name is taken from the payout body itself).
| Field | Type | Required | Description |
|---|---|---|---|
| nationality | string (ISO 3166-1 alpha-2) | Yes | Two-letter country code for the receiver's nationality (e.g. IN). |
| first_name | string | No | Receiver's legal first name. Optional — supplied for record-keeping; the payout-time beneficiary_name is what the partner uses. |
| middle_name | string | No | Receiver's middle name. |
| last_name | string | No | Receiver's legal last name. |
| date_of_birth | string (YYYY-MM-DD) | No | Receiver's date of birth in ISO 8601 format. |
| mobile_number | string | No | Receiver's mobile number without the country/dial code. Used for settlement notifications when present. |
| isd_code | string | No | International Subscriber Dialing code for the receiver's mobile number (e.g. +91). Required when mobile_number is provided. |
| string | No | Receiver's email address. Optional — not consumed by the NRE rail. | |
| present_address | object | No | Receiver's current residential address. Shape: { address_line, city, country_code, address_type? }. When omitted, the bank's branch address is fetched automatically from the IFSC code at payout-initiation time (via the razorpay IFSC API). |
| present_address.address_line | string | No | Street address line. Required when present_address is supplied. |
| present_address.city | string | No | City or town name. Required when present_address is supplied. |
| present_address.country_code | string (ISO 3166-1 alpha-2) | No | Two-letter country code. Required when present_address is supplied. |
| present_address.address_type | present | permanent | No | Optional address-type qualifier passed through to the remittance partner. Defaults to 'present' on the present_address slot and 'permanent' on the permanent_address slot. |
| permanent_address | object | No | Receiver's permanent address. Same shape as present_address. Defaults to present_address when omitted. |
| relation_code | string | No | Relationship of the receiver to the sender. Defaults to 'family' when omitted. Allowed canonical values: family. Partner-specific numeric codes are mapped to the canonical name at the integration boundary, so merchants only need to pass the canonical value. |
| bank_account_type_code | savings | current | No | Type of the receiver's bank account that funds will be paid out to. Defaults to 'savings' when omitted. |
Business — sender
Not supportedBusiness customers are not permitted on the NRE flow. The createCustomer API rejects type = 'business' + purpose = 'nre' with INVALID_CUSTOMER_COMBINATION. NRE payouts only support natural-person senders.
Business — receiver
Not supportedBusiness customers are not permitted on the NRE flow. The createCustomer API rejects type = 'business' + purpose = 'nre' with INVALID_CUSTOMER_COMBINATION. NRE payouts only support natural-person receivers.