> ## Documentation Index
> Fetch the complete documentation index at: https://agents-docs.lightspark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# External Accounts

> Add and manage external bank accounts, wallets, and payment destinations for withdrawals and payouts

External accounts are bank accounts, cryptocurrency wallets, or payment destinations outside Grid where you can send funds. Grid supports two types:

* **Customer external accounts** - Scoped to individual customers, used for withdrawals and customer-specific payouts
* **Platform external accounts** - Scoped to your platform, used for platform-wide operations like receiving funds from external sources

> [!NOTE]
>
> Customer external accounts often require some basic beneficiary information for compliance.
> Platform accounts are managed at the organization level.

## Look up bank names with the Discoveries API

Some countries require a `bankName` when creating an external account — including the Philippines, Nigeria, South Africa, and others. The `bankName` value must match exactly what Grid expects.

Use the [Discoveries API](https://agents-docs.lightspark.com/api-reference/discoveries/list-available-receiving-institution-names.md) to retrieve the list of valid bank names for a given country and currency:

```bash cURL theme={null}
curl -X GET 'https://api.lightspark.com/grid/2025-10-13/discoveries?country=PH&currency=PHP' \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET"
```

```json Response theme={null}
{
  "data": [
    {
      "bankName": "BDO Unibank",
      "displayName": "BDO Unibank",
      "country": "PH",
      "currency": "PHP"
    },
    {
      "bankName": "BPI",
      "displayName": "Bank of the Philippine Islands",
      "country": "PH",
      "currency": "PHP"
    }
  ]
}
```

Use `bankName` from the response as the `bankName` value when creating an external account. The `displayName` is a human-friendly label you can show to your users. You can filter the list on the client side as the user types to provide a bank search experience.

## Create external accounts by region or wallet

> [tab] United States
>
> **ACH, Wire, RTP**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "USD",
>     "platformAccountId": "user_123_primary_bank",
>     "accountInfo": {
>       "accountType": "USD_ACCOUNT",
>       "accountNumber": "123456789",
>       "routingNumber": "021000021",
>       "bankAccountType": "CHECKING",
>       "bankName": "Chase Bank",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "John Doe",
>         "birthDate": "1990-01-15",
>         "nationality": "US",
>         "address": {
>           "line1": "123 Main Street",
>           "city": "San Francisco",
>           "state": "CA",
>           "postalCode": "94105",
>           "country": "US"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > `bankAccountType` is required and must be `CHECKING` or `SAVINGS`. Grid uses it to set the
> > ACH transaction code, so a value that does not match the account causes the receiving bank
> > to return a notification of change. `routingNumber` must be 9 digits.
>
> > [!NOTE]
> >
> > Three further fields apply to the `WIRE` rail and are ignored on ACH, RTP and FedNow:
> > `intermediaryBankName` and `intermediaryRoutingNumber`, for a beneficiary bank reachable only
> > through a correspondent, and `fiToFiInformation` for bank-to-bank instructions.

> [tab] Mexico
>
> **CLABE/SPEI**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "MXN",
>     "platformAccountId": "mx_beneficiary_001",
>     "accountInfo": {
>       "accountType": "MXN_ACCOUNT",
>       "clabeNumber": "123456789012345678",
>       "bankName": "BBVA Mexico",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "María García",
>         "birthDate": "1985-03-15",
>         "nationality": "MX",
>         "address": {
>           "line1": "Av. Reforma 123",
>           "city": "Ciudad de México",
>           "state": "CDMX",
>           "postalCode": "06600",
>           "country": "MX"
>         }
>       }
>     }
>   }'
> ```

> [tab] Brazil
>
> **PIX**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "BRL",
>     "platformAccountId": "br_pix_001",
>     "accountInfo": {
>       "accountType": "BRL_ACCOUNT",
>       "pixKey": "user@email.com",
>       "pixKeyType": "EMAIL",
>       "bankName": "Nubank",
>       "taxId": "12345678900",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "João Silva",
>         "birthDate": "1988-07-22",
>         "nationality": "BR",
>         "address": {
>           "line1": "Rua das Flores 456",
>           "city": "São Paulo",
>           "state": "SP",
>           "postalCode": "01234-567",
>           "country": "BR"
>         }
>       }
>     }
>   }'
> ```
>
> > [!TIP]
> >
> > Key types: `CPF`, `CNPJ`, `EMAIL`, `PHONE`, or `RANDOM`

> [tab] Colombia
>
> **Bank Transfer or Mobile Money (Nequi, Daviplata)**
>
> Colombia supports two payment rails: bank transfer and mobile money.
>
> **Bank Transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "COP",
>     "platformAccountId": "co_bank_001",
>     "accountInfo": {
>       "accountType": "COP_ACCOUNT",
>       "bankName": "Bancolombia",
>       "accountNumber": "1234567890",
>       "bankAccountType": "CHECKING",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Juan Carlos García",
>         "birthDate": "1988-03-15",
>         "nationality": "CO",
>         "documentType": "CC",
>         "documentNumber": "1234567890",
>         "address": {
>           "line1": "Carrera 7 #45-23",
>           "city": "Bogotá",
>           "postalCode": "110111",
>           "country": "CO"
>         }
>       }
>     }
>   }'
> ```
>
> **Mobile Money (Nequi, Daviplata):**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "COP",
>     "platformAccountId": "co_mobile_001",
>     "accountInfo": {
>       "accountType": "COP_ACCOUNT",
>       "bankName": "Nequi",
>       "phoneNumber": "+573001234567",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "María López",
>         "birthDate": "1992-07-20",
>         "nationality": "CO",
>         "documentType": "CC",
>         "documentNumber": "9876543210",
>         "address": {
>           "line1": "Calle 100 #15-30",
>           "city": "Medellín",
>           "postalCode": "050021",
>           "country": "CO"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Bank transfer requires `bankName`, `accountNumber`, and `bankAccountType` (CHECKING or SAVINGS).
> > Mobile money requires `phoneNumber` in international format (e.g., +573001234567).
> > Most Colombian banks require `documentType` and `documentNumber` for KYC matching.
> > Document types: `CC` (Cédula de Ciudadanía), `CE` (Cédula de Extranjería), `TI` (Tarjeta de Identidad), `NIT` (Número de Identificación Tributaria), `PP` (Passport).

> [tab] El Salvador
>
> **Bank Transfer or Mobile Money (Tigo Money)**
>
> El Salvador supports two payment rails: bank transfer and mobile money.
>
> **Bank Transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "USD",
>     "platformAccountId": "sv_bank_001",
>     "accountInfo": {
>       "accountType": "SLV_ACCOUNT",
>       "bankName": "Banco Cuscatlan",
>       "accountNumber": "0123456789",
>       "bankAccountType": "CHECKING",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Carlos Morales",
>         "birthDate": "1990-05-20",
>         "nationality": "SV",
>         "address": {
>           "line1": "Colonia Escalon 123",
>           "city": "San Salvador",
>           "postalCode": "01101",
>           "country": "SV"
>         }
>       }
>     }
>   }'
> ```
>
> **Mobile Money (Tigo Money):**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "USD",
>     "platformAccountId": "sv_mobile_001",
>     "accountInfo": {
>       "accountType": "SLV_ACCOUNT",
>       "phoneNumber": "+50312345678",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Ana Martinez",
>         "birthDate": "1985-08-15",
>         "nationality": "SV",
>         "address": {
>           "line1": "Avenida Roosevelt 456",
>           "city": "San Salvador",
>           "postalCode": "01101",
>           "country": "SV"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Bank transfer requires `bankName`, `accountNumber`, and `bankAccountType` (CHECKING or SAVINGS).
> > Mobile money requires `phoneNumber` in international format (e.g., +50312345678).

> [tab] Europe
>
> **EUR Account (IBAN)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "EUR",
>     "platformAccountId": "eu_iban_001",
>     "accountInfo": {
>       "accountType": "EUR_ACCOUNT",
>       "iban": "DE89370400440532013000",
>       "bankName": "Deutsche Bank",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Hans Schmidt",
>         "birthDate": "1982-11-08",
>         "nationality": "DE",
>         "address": {
>           "line1": "Hauptstraße 789",
>           "city": "Berlin",
>           "state": "Berlin",
>           "postalCode": "10115",
>           "country": "DE"
>         }
>       }
>     }
>   }'
> ```
>
> When you omit `swiftCode`, Grid derives it from the IBAN when possible. Provide
> it when automatic derivation is unavailable.

> [tab] Philippines
>
> **PHP Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "PHP",
>     "platformAccountId": "ph_bank_001",
>     "accountInfo": {
>       "accountType": "PHP_ACCOUNT",
>       "bankName": "BDO Unibank",
>       "accountNumber": "001234567890",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Maria Santos",
>         "birthDate": "1995-04-10",
>         "nationality": "PH",
>         "address": {
>           "line1": "123 Rizal Avenue",
>           "city": "Manila",
>           "state": "Metro Manila",
>           "postalCode": "1000",
>           "country": "PH"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Account number must be 8-16 digits.

> [tab] United Kingdom
>
> **GBP Faster Payments**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "GBP",
>     "platformAccountId": "gb_bank_001",
>     "accountInfo": {
>       "accountType": "GBP_ACCOUNT",
>       "sortCode": "123456",
>       "accountNumber": "12345678",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "James Smith",
>         "birthDate": "1985-09-03",
>         "nationality": "GB",
>         "address": {
>           "line1": "10 Downing Street",
>           "city": "London",
>           "postalCode": "SW1A 2AA",
>           "country": "GB"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Sort code must be 6 digits. Account number must be 8 digits. Address is required for GBP individual beneficiaries.

> [tab] India
>
> **UPI, NEFT, or RTGS**
>
> India supports three payment rails: UPI (instant), NEFT (near-real-time), and RTGS (real-time, for large transfers).
>
> **UPI:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "INR",
>     "platformAccountId": "in_upi_001",
>     "accountInfo": {
>       "accountType": "INR_ACCOUNT",
>       "vpa": "user@okbank",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Priya Sharma",
>         "birthDate": "1991-05-14",
>         "nationality": "IN",
>         "address": {
>           "line1": "123 MG Road",
>           "city": "Mumbai",
>           "state": "Maharashtra",
>           "postalCode": "400001",
>           "country": "IN"
>         }
>       }
>     }
>   }'
> ```
>
> **NEFT / RTGS (bank transfer):**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "INR",
>     "platformAccountId": "in_neft_001",
>     "accountInfo": {
>       "accountType": "INR_ACCOUNT",
>       "accountNumber": "000111222333",
>       "ifsc": "HDFC0001234",
>       "rail": "NEFT",
>       "bankName": "HDFC Bank",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Priya Sharma",
>         "birthDate": "1991-05-14",
>         "nationality": "IN",
>         "address": {
>           "line1": "123 MG Road",
>           "city": "Mumbai",
>           "state": "Maharashtra",
>           "postalCode": "400001",
>           "country": "IN"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > UPI requires `vpa`. NEFT and RTGS require `accountNumber` (9-18 digits), `ifsc`
> > (11-character branch code), and `rail` (`NEFT` or `RTGS`). `bankName` is optional
> > on both. Do not send `paymentRails` — Grid returns it on the created account.

> [tab] Nigeria
>
> **NGN Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "NGN",
>     "platformAccountId": "ng_bank_001",
>     "accountInfo": {
>       "accountType": "NGN_ACCOUNT",
>       "accountNumber": "0123456789",
>       "bankName": "First Bank of Nigeria",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Chukwuemeka Okonkwo",
>         "birthDate": "1990-06-20",
>         "nationality": "NG",
>         "address": {
>           "line1": "15 Marina Street",
>           "city": "Lagos",
>           "state": "Lagos",
>           "postalCode": "100001",
>           "country": "NG"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Account number must be exactly 10 digits.

> [tab] South Africa
>
> **ZAR Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "ZAR",
>     "platformAccountId": "za_bank_001",
>     "accountInfo": {
>       "accountType": "ZAR_ACCOUNT",
>       "accountNumber": "1234567890",
>       "bankName": "Standard Bank",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Thabo Mbeki",
>         "birthDate": "1985-04-12",
>         "nationality": "ZA",
>         "address": {
>           "line1": "42 Nelson Mandela Drive",
>           "city": "Johannesburg",
>           "state": "Gauteng",
>           "postalCode": "2000",
>           "country": "ZA"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Account number must be 9-13 digits.

> [tab] Kenya
>
> **KES Mobile Money (M-PESA)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "KES",
>     "platformAccountId": "ke_mpesa_001",
>     "accountInfo": {
>       "accountType": "KES_ACCOUNT",
>       "phoneNumber": "+254712345678",
>       "provider": "M-PESA",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Wanjiku Kamau",
>         "birthDate": "1990-08-20",
>         "nationality": "KE",
>         "address": {
>           "line1": "Kenyatta Avenue 15",
>           "city": "Nairobi",
>           "postalCode": "00100",
>           "country": "KE"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Phone number must be in format `+254XXXXXXXXX` (9 digits after country code). Provider must be `M-PESA`.

> [tab] Tanzania
>
> **TZS Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "TZS",
>     "platformAccountId": "tz_mobile_001",
>     "accountInfo": {
>       "accountType": "TZS_ACCOUNT",
>       "phoneNumber": "+255712345678",
>       "provider": "VODACOM",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Juma Hassan",
>         "birthDate": "1988-02-14",
>         "nationality": "TZ",
>         "address": {
>           "line1": "Samora Avenue 28",
>           "city": "Dar es Salaam",
>           "postalCode": "11101",
>           "country": "TZ"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Phone number must be in format `+255XXXXXXXXX` (9 digits after country code). Providers: `AIRTEL` or `VODACOM`.

> [tab] Zambia
>
> **ZMW Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "ZMW",
>     "platformAccountId": "zm_mobile_001",
>     "accountInfo": {
>       "accountType": "ZMW_ACCOUNT",
>       "phoneNumber": "+260971234567",
>       "provider": "MTN",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Mwila Chanda",
>         "birthDate": "1992-11-05",
>         "nationality": "ZM",
>         "address": {
>           "line1": "Cairo Road 100",
>           "city": "Lusaka",
>           "postalCode": "10101",
>           "country": "ZM"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Phone number must be in format `+260XXXXXXXXX` (9 digits after country code). Providers: `TNM`, `AIRTEL`, `ZAMTEL`, or `MTN`.

> [tab] Rwanda
>
> **RWF Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "RWF",
>     "platformAccountId": "rw_mobile_001",
>     "accountInfo": {
>       "accountType": "RWF_ACCOUNT",
>       "phoneNumber": "+250781234567",
>       "provider": "MTN",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Uwimana Diane",
>         "birthDate": "1995-06-30",
>         "nationality": "RW",
>         "address": {
>           "line1": "KN 5 Avenue",
>           "city": "Kigali",
>           "postalCode": "00100",
>           "country": "RW"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Phone number must be in format `+250XXXXXXXXX` (9 digits after country code). Providers: `MTN` or `AIRTEL`.

> [tab] Malawi
>
> **MWK Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "MWK",
>     "platformAccountId": "mw_mobile_001",
>     "accountInfo": {
>       "accountType": "MWK_ACCOUNT",
>       "phoneNumber": "+265991234567",
>       "provider": "AIRTEL",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Chimwemwe Banda",
>         "birthDate": "1993-03-18",
>         "nationality": "MW",
>         "address": {
>           "line1": "Kamuzu Procession Road",
>           "city": "Lilongwe",
>           "postalCode": "00100",
>           "country": "MW"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Phone number must be in format `+265XXXXXXXXX` (9 digits after country code). Providers: `AIRTEL` or `TNM`.

> [tab] Uganda
>
> **UGX Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "UGX",
>     "platformAccountId": "ug_mobile_001",
>     "accountInfo": {
>       "accountType": "UGX_ACCOUNT",
>       "phoneNumber": "+256701234567",
>       "provider": "MTN",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Nakato Sarah",
>         "birthDate": "1990-07-25",
>         "nationality": "UG",
>         "address": {
>           "line1": "Kampala Road 45",
>           "city": "Kampala",
>           "postalCode": "00100",
>           "country": "UG"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Phone number must be in format `+256XXXXXXXXX` (9 digits after country code). Providers: `MTN` or `AIRTEL`.

> [tab] West Africa
>
> **XOF Mobile Money (Senegal, Benin, Ivory Coast)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "XOF",
>     "platformAccountId": "xof_mobile_001",
>     "accountInfo": {
>       "accountType": "XOF_ACCOUNT",
>       "phoneNumber": "+221781234567",
>       "provider": "ORANGE",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Mamadou Diallo",
>         "birthDate": "1988-11-12",
>         "nationality": "SN",
>         "address": {
>           "line1": "Avenue Cheikh Anta Diop",
>           "city": "Dakar",
>           "postalCode": "10000",
>           "country": "SN"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Supported countries and phone formats:
> >
> > * Senegal (+221): `+221XXXXXXXXX` (9 digits after country code)
> > * Ivory Coast (+225): `+225XXXXXXXXXX` (10 digits after country code)
> > * Benin (+229): `+229XXXXXXXX` or `+229XXXXXXXXX` (8–9 digits after country code)

> [tab] Canada
>
> **CAD Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "CAD",
>     "platformAccountId": "ca_bank_001",
>     "accountInfo": {
>       "accountType": "CAD_ACCOUNT",
>       "bankCode": "001",
>       "branchCode": "00012",
>       "accountNumber": "1234567",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Emily Thompson",
>         "birthDate": "1988-09-12",
>         "nationality": "CA",
>         "address": {
>           "line1": "456 Queen Street West",
>           "city": "Toronto",
>           "state": "ON",
>           "postalCode": "M5V 2B3",
>           "country": "CA"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > Bank code is 3 digits, branch code is 5 digits, account number is 7-12 digits.

> [tab] United Arab Emirates
>
> **Bank Transfer (IBAN)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "AED",
>       "platformAccountId": "ae_bank_001",
>       "accountInfo": {
>         "accountType": "AED_ACCOUNT",
>         "iban": "AE070331234567890123456",
>         "swiftCode": "EBILAEAD",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Fatima Al Mansoori",
>           "birthDate": "1990-01-15",
>           "nationality": "AE",
>           "address": {
>             "line1": "Sheikh Zayed Road 12",
>             "city": "Dubai",
>             "postalCode": "00000",
>             "country": "AE"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `iban` is required and must be a 23-character UAE IBAN starting with `AE`. `swiftCode` is optional. An `address` is required on the beneficiary.

> [tab] Israel
>
> **Bank Transfer (IBAN)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "ILS",
>       "platformAccountId": "il_bank_001",
>       "accountInfo": {
>         "accountType": "ILS_ACCOUNT",
>         "iban": "IL620108000000099999999",
>         "bankName": "Bank Leumi",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Noa Levi",
>           "birthDate": "1990-01-15",
>           "nationality": "IL",
>           "address": {
>             "line1": "Rothschild Boulevard 12",
>             "city": "Tel Aviv",
>             "postalCode": "6688112",
>             "country": "IL"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `iban` is required and must be a 23-character Israeli IBAN starting with `IL`. `bankName` is required. Business beneficiaries (`beneficiaryType: "BUSINESS"`) require `legalName` and `address`.

> [tab] Bangladesh
>
> **Bank Transfer or Mobile Money (bKash, Nagad)**
>
> **Bank transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "BDT",
>       "platformAccountId": "bd_bank_001",
>       "accountInfo": {
>         "accountType": "BDT_ACCOUNT",
>         "bankName": "BRAC Bank",
>         "accountNumber": "1234567890123",
>         "branchCode": "12345",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Rahim Chowdhury",
>           "birthDate": "1990-01-15",
>           "nationality": "BD",
>           "address": {
>             "line1": "12 Gulshan Avenue",
>             "city": "Dhaka",
>             "postalCode": "1212",
>             "country": "BD"
>           }
>         }
>       }
>     }'
> ```
>
> **Mobile money:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "BDT",
>       "platformAccountId": "bd_mobile_001",
>       "accountInfo": {
>         "accountType": "BDT_ACCOUNT",
>         "bankName": "bKash",
>         "phoneNumber": "+8801712345678",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Rahim Chowdhury",
>           "birthDate": "1990-01-15",
>           "nationality": "BD",
>           "address": {
>             "line1": "12 Gulshan Avenue",
>             "city": "Dhaka",
>             "postalCode": "1212",
>             "country": "BD"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName` is always required. Bank transfer additionally uses `accountNumber` and optionally `branchCode`; mobile money uses `phoneNumber`. `swiftCode` is optional on bank transfers.

> [tab] Botswana
>
> **Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "BWP",
>       "platformAccountId": "bw_mobile_001",
>       "accountInfo": {
>         "accountType": "BWP_ACCOUNT",
>         "phoneNumber": "+26771234567",
>         "provider": "Orange",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Kagiso Molefe",
>           "birthDate": "1990-01-15",
>           "nationality": "BW",
>           "address": {
>             "line1": "Plot 123 Main Mall",
>             "city": "Gaborone",
>             "postalCode": "00000",
>             "country": "BW"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > Both `phoneNumber` (international format) and `provider` are required.

> [tab] China
>
> **AliPay / WeChat Pay or Bank Transfer**
>
> **Bank transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "CNY",
>       "platformAccountId": "cn_bank_001",
>       "accountInfo": {
>         "accountType": "CNY_ACCOUNT",
>         "bankName": "Industrial and Commercial Bank of China",
>         "accountNumber": "6217000010000000001",
>         "beneficiary": {
>           "beneficiaryType": "BUSINESS",
>           "legalName": "Shanghai Trading Co Ltd",
>           "registrationNumber": "91110000000000000X",
>           "address": {
>             "line1": "1 Nanjing Road",
>             "city": "Shanghai",
>             "postalCode": "200000",
>             "country": "CN"
>           }
>         }
>       }
>     }'
> ```
>
> **AliPay / WeChat Pay:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "CNY",
>       "platformAccountId": "cn_mobile_001",
>       "accountInfo": {
>         "accountType": "CNY_ACCOUNT",
>         "bankName": "AliPay",
>         "phoneNumber": "+8613812345678",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Wei Zhang",
>           "birthDate": "1990-01-15",
>           "nationality": "CN",
>           "address": {
>             "line1": "1 Nanjing Road",
>             "city": "Shanghai",
>             "postalCode": "200000",
>             "country": "CN"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName` is always required. For a wallet payout it selects the wallet and must be
> > exactly `AliPay` or `WechatPay`, paired with `phoneNumber`. Bank transfer uses
> > `accountNumber` with the beneficiary bank's name, and is business-to-business only —
> > send `beneficiaryType: "BUSINESS"`. A bank transfer payout also needs supporting
> > documents. See [Supporting
> > documents](https://agents-docs.lightspark.com/payouts-and-b2b/payment-flow/send-payment.md#supporting-documents).

> [tab] Egypt
>
> **Bank Transfer or Mobile Money**
>
> **Bank transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "EGP",
>       "platformAccountId": "eg_bank_001",
>       "accountInfo": {
>         "accountType": "EGP_ACCOUNT",
>         "bankName": "National Bank of Egypt",
>         "iban": "EG380019000500000000263180002",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Nour Hassan",
>           "birthDate": "1990-01-15",
>           "nationality": "EG",
>           "address": {
>             "line1": "15 Tahrir Square",
>             "city": "Cairo",
>             "postalCode": "11511",
>             "country": "EG"
>           }
>         }
>       }
>     }'
> ```
>
> **Mobile money:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "EGP",
>       "platformAccountId": "eg_mobile_001",
>       "accountInfo": {
>         "accountType": "EGP_ACCOUNT",
>         "bankName": "Vodafone Cash",
>         "phoneNumber": "+201012345678",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Nour Hassan",
>           "birthDate": "1990-01-15",
>           "nationality": "EG",
>           "address": {
>             "line1": "15 Tahrir Square",
>             "city": "Cairo",
>             "postalCode": "11511",
>             "country": "EG"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName` is always required. Bank transfer uses `iban`, a 29-character Egyptian IBAN starting with `EG`; mobile money uses `phoneNumber`.

> [tab] Ghana
>
> **Bank Transfer or Mobile Money (MTN, Vodafone)**
>
> **Bank transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "GHS",
>       "platformAccountId": "gh_bank_001",
>       "accountInfo": {
>         "accountType": "GHS_ACCOUNT",
>         "bankName": "GCB Bank",
>         "accountNumber": "1234567890",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Kwame Mensah",
>           "birthDate": "1990-01-15",
>           "nationality": "GH",
>           "address": {
>             "line1": "23 Independence Avenue",
>             "city": "Accra",
>             "postalCode": "00233",
>             "country": "GH"
>           }
>         }
>       }
>     }'
> ```
>
> **Mobile money:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "GHS",
>       "platformAccountId": "gh_mobile_001",
>       "accountInfo": {
>         "accountType": "GHS_ACCOUNT",
>         "bankName": "MTN Mobile Money",
>         "phoneNumber": "+233241234567",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Kwame Mensah",
>           "birthDate": "1990-01-15",
>           "nationality": "GH",
>           "address": {
>             "line1": "23 Independence Avenue",
>             "city": "Accra",
>             "postalCode": "00233",
>             "country": "GH"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName` is always required. Bank transfer uses `accountNumber`; mobile money uses `phoneNumber`.

> [tab] Guatemala
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "GTQ",
>       "platformAccountId": "gt_bank_001",
>       "accountInfo": {
>         "accountType": "GTQ_ACCOUNT",
>         "accountNumber": "1234567890",
>         "bankAccountType": "CHECKING",
>         "bankName": "Banco GYT Continental",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Ana Lucía Ramírez",
>           "birthDate": "1990-01-15",
>           "nationality": "GT",
>           "phoneNumber": "+50251234567",
>           "countryOfResidence": "GT",
>           "address": {
>             "line1": "5a Avenida 12-34 Zona 10",
>             "city": "Guatemala City",
>             "postalCode": "01010",
>             "country": "GT"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `accountNumber`, `bankAccountType` (`CHECKING` or `SAVINGS`) and `bankName` are all required. The beneficiary additionally requires `phoneNumber` and `countryOfResidence`.

> [tab] Haiti
>
> **Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "HTG",
>       "platformAccountId": "ht_mobile_001",
>       "accountInfo": {
>         "accountType": "HTG_ACCOUNT",
>         "phoneNumber": "+50934567890",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Marie Pierre-Louis",
>           "birthDate": "1990-01-15",
>           "nationality": "HT",
>           "address": {
>             "line1": "45 Rue Capois",
>             "city": "Port-au-Prince",
>             "postalCode": "6110",
>             "country": "HT"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `phoneNumber` in international format is the only required account field.

> [tab] Jamaica
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "JMD",
>       "platformAccountId": "jm_bank_001",
>       "accountInfo": {
>         "accountType": "JMD_ACCOUNT",
>         "accountNumber": "1234567890",
>         "branchCode": "12345",
>         "bankAccountType": "CHECKING",
>         "bankName": "Bank of Nova Scotia",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Andre Campbell",
>           "birthDate": "1990-01-15",
>           "nationality": "JM",
>           "phoneNumber": "+18761234567",
>           "address": {
>             "line1": "10 Knutsford Boulevard",
>             "city": "Kingston",
>             "postalCode": "00000",
>             "country": "JM"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `accountNumber`, `branchCode` (5 digits), `bankAccountType` (`CHECKING` or `SAVINGS`) and `bankName` are all required. The beneficiary additionally requires `phoneNumber` and an `address`.

> [tab] Pakistan
>
> **Bank Transfer or Mobile Money (JazzCash, Easypaisa)**
>
> **Bank transfer:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "PKR",
>       "platformAccountId": "pk_bank_001",
>       "accountInfo": {
>         "accountType": "PKR_ACCOUNT",
>         "bankName": "HBL",
>         "accountNumber": "1234567890123456",
>         "iban": "PK36SCBL0000001123456702",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Ayesha Khan",
>           "birthDate": "1990-01-15",
>           "nationality": "PK",
>           "address": {
>             "line1": "12 Clifton Block 5",
>             "city": "Karachi",
>             "postalCode": "75600",
>             "country": "PK"
>           }
>         }
>       }
>     }'
> ```
>
> **Mobile money:**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "PKR",
>       "platformAccountId": "pk_mobile_001",
>       "accountInfo": {
>         "accountType": "PKR_ACCOUNT",
>         "bankName": "JazzCash",
>         "phoneNumber": "+923001234567",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Ayesha Khan",
>           "birthDate": "1990-01-15",
>           "nationality": "PK",
>           "address": {
>             "line1": "12 Clifton Block 5",
>             "city": "Karachi",
>             "postalCode": "75600",
>             "country": "PK"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName` is always required. Bank transfer uses `accountNumber`, and optionally `iban` (24 characters, starting with `PK`); mobile money uses `phoneNumber`.

> [tab] Central Africa
>
> **Mobile Money**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "XAF",
>       "platformAccountId": "xaf_mobile_001",
>       "accountInfo": {
>         "accountType": "XAF_ACCOUNT",
>         "phoneNumber": "+237671234567",
>         "provider": "MTN",
>         "region": "CM",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Achille Nkeng",
>           "birthDate": "1990-01-15",
>           "nationality": "CM",
>           "address": {
>             "line1": "Rue Joss 20",
>             "city": "Douala",
>             "postalCode": "00237",
>             "country": "CM"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `phoneNumber`, `provider` and `region` are all required. `region` must be `CM` (Cameroon) or `CG` (Republic of the Congo).

> [tab] Denmark
>
> **Bank Transfer (IBAN)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "DKK",
>       "platformAccountId": "dk_bank_001",
>       "accountInfo": {
>         "accountType": "DKK_ACCOUNT",
>         "iban": "DK5000400040116243",
>         "swiftCode": "DABADKKK",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Lars Jensen",
>           "birthDate": "1990-01-15",
>           "nationality": "DK",
>           "address": {
>             "line1": "Vesterbrogade 10",
>             "city": "Copenhagen",
>             "postalCode": "1620",
>             "country": "DK"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `iban` is required; `swiftCode` is optional.

> [tab] Hong Kong
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "HKD",
>       "platformAccountId": "hk_bank_001",
>       "accountInfo": {
>         "accountType": "HKD_ACCOUNT",
>         "bankName": "HSBC Hong Kong",
>         "accountNumber": "123456789012",
>         "swiftCode": "HSBCHKHHHKH",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Emily Chan",
>           "birthDate": "1990-01-15",
>           "nationality": "HK",
>           "address": {
>             "line1": "1 Queen's Road Central",
>             "city": "Hong Kong",
>             "postalCode": "00000",
>             "country": "HK"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName`, `accountNumber` and `swiftCode` are all required.

> [tab] Indonesia
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "IDR",
>       "platformAccountId": "id_bank_001",
>       "accountInfo": {
>         "accountType": "IDR_ACCOUNT",
>         "bankName": "Bank Central Asia",
>         "accountNumber": "1234567890",
>         "swiftCode": "CENAIDJA",
>         "phoneNumber": "+6281234567890",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Siti Rahayu",
>           "birthDate": "1990-01-15",
>           "nationality": "ID",
>           "address": {
>             "line1": "Jl. Sudirman 45",
>             "city": "Jakarta",
>             "postalCode": "10210",
>             "country": "ID"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName`, `accountNumber`, `swiftCode` and `phoneNumber` are all required.

> [tab] Malaysia
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "MYR",
>       "platformAccountId": "my_bank_001",
>       "accountInfo": {
>         "accountType": "MYR_ACCOUNT",
>         "bankName": "Maybank",
>         "accountNumber": "1234567890",
>         "swiftCode": "MABORUMMYYY",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Nurul Aisyah",
>           "birthDate": "1990-01-15",
>           "nationality": "MY",
>           "address": {
>             "line1": "Jalan Ampang 88",
>             "city": "Kuala Lumpur",
>             "postalCode": "50450",
>             "country": "MY"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName`, `accountNumber` and `swiftCode` are all required.

> [tab] Singapore
>
> **Bank Transfer (PayNow, FAST)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "SGD",
>       "platformAccountId": "sg_bank_001",
>       "accountInfo": {
>         "accountType": "SGD_ACCOUNT",
>         "bankName": "DBS Bank Ltd",
>         "accountNumber": "0123456789",
>         "swiftCode": "DBSSSGSG",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Wei Lin Tan",
>           "birthDate": "1990-01-15",
>           "nationality": "SG",
>           "address": {
>             "line1": "12 Marina Boulevard",
>             "city": "Singapore",
>             "postalCode": "018982",
>             "country": "SG"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `accountNumber` and `swiftCode` are required; `bankName` is optional.

> [tab] Thailand
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "THB",
>       "platformAccountId": "th_bank_001",
>       "accountInfo": {
>         "accountType": "THB_ACCOUNT",
>         "bankName": "Bangkok Bank",
>         "accountNumber": "1234567890",
>         "swiftCode": "BKKBTHBK",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Somchai Prasert",
>           "birthDate": "1990-01-15",
>           "nationality": "TH",
>           "address": {
>             "line1": "333 Silom Road",
>             "city": "Bangkok",
>             "postalCode": "10500",
>             "country": "TH"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName`, `accountNumber` and `swiftCode` are all required.

> [tab] Vietnam
>
> **Bank Transfer**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "VND",
>       "platformAccountId": "vn_bank_001",
>       "accountInfo": {
>         "accountType": "VND_ACCOUNT",
>         "bankName": "Vietcombank",
>         "accountNumber": "1234567890",
>         "swiftCode": "BFTVVNVX",
>         "beneficiary": {
>           "beneficiaryType": "INDIVIDUAL",
>           "fullName": "Nguyen Thi Lan",
>           "birthDate": "1990-01-15",
>           "nationality": "VN",
>           "address": {
>             "line1": "22 Le Loi",
>             "city": "Ho Chi Minh City",
>             "postalCode": "70000",
>             "country": "VN"
>           }
>         }
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > `bankName`, `accountNumber` and `swiftCode` are all required.

> [tab] SWIFT (International)
>
> **SWIFT / International Wire**
>
> Use a `SWIFT_ACCOUNT` external account to send payouts to bank accounts in countries or currencies where Grid doesn't offer a local payment rail. Provide the bank's SWIFT/BIC code and the beneficiary's account number (or IBAN for IBAN-based corridors).
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "USD",
>     "platformAccountId": "swift_usd_001",
>     "accountInfo": {
>       "accountType": "SWIFT_ACCOUNT",
>       "country": "NG",
>       "swiftCode": "GTBINGLA",
>       "bankName": "Guaranty Trust Bank",
>       "accountNumber": "1234567890",
>       "beneficiary": {
>         "beneficiaryType": "INDIVIDUAL",
>         "fullName": "Adaeze Okafor",
>         "birthDate": "1991-03-22",
>         "nationality": "NG",
>         "address": {
>           "line1": "15 Broad Street",
>           "city": "Lagos",
>           "state": "Lagos",
>           "postalCode": "101233",
>           "country": "NG"
>         }
>       }
>     }
>   }'
> ```
>
> > [!NOTE]
> >
> > `currency` is the currency the destination account holds, and `country` is where the bank
> > account is located — they can differ. Provide `accountNumber` for most corridors; use `iban`
> > instead for IBAN-only corridors (e.g. GB, BR).

> [tab] Cryptocurrency
>
> **Bitcoin Lightning (Spark Wallet)**
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>     "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>     "currency": "BTC",
>     "platformAccountId": "btc_spark_001",
>     "accountInfo": {
>       "accountType": "SPARK_WALLET",
>       "address": "spark1pgssyuuuhnrrdjswal5c3s3rafw9w3y5dd4cjy3duxlf7hjzkp0rqx6dj6mrhu"
>     }
>   }'
> ```
>
> **Ethereum L1**
>
> Supported assets: USDC and USDT.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDC",
>       "platformAccountId": "eth_usdc_001",
>       "accountInfo": {
>         "accountType": "ETHEREUM_WALLET",
>         "address": "0xAbCDEF1234567890aBCdEf1234567890ABcDef12"
>       }
>     }'
> ```
>
> **Base**
>
> Supported assets: USDC.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDC",
>       "platformAccountId": "base_usdc_001",
>       "accountInfo": {
>         "accountType": "BASE_WALLET",
>         "address": "0xAbCDEF1234567890aBCdEf1234567890ABcDef12"
>       }
>     }'
> ```
>
> **Polygon**
>
> Supported assets: USDC.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDC",
>       "platformAccountId": "polygon_usdc_001",
>       "accountInfo": {
>         "accountType": "POLYGON_WALLET",
>         "address": "0xAbCDEF1234567890aBCdEf1234567890ABcDef12"
>       }
>     }'
> ```
>
> **Solana**
>
> Supported assets: USDC.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDC",
>       "platformAccountId": "sol_usdc_001",
>       "accountInfo": {
>         "accountType": "SOLANA_WALLET",
>         "address": "4Nd1m6Qkq7RfKuE5vQ9qP9Tn6H94Ueqb4xXHzsAbd8Wg"
>       }
>     }'
> ```
>
> **Tron**
>
> Supported assets: USDT.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDT",
>       "platformAccountId": "tron_usdt_001",
>       "accountInfo": {
>         "accountType": "TRON_WALLET",
>         "address": "TNPeeaaFB7K9cmo4uQpcU32zGK8G1NYqeL"
>       }
>     }'
> ```
>
> **Plasma**
>
> Supported assets: USDT.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDT",
>       "platformAccountId": "plasma_usdt_001",
>       "accountInfo": {
>         "accountType": "PLASMA_WALLET",
>         "address": "0xAbCDEF1234567890aBCdEf1234567890ABcDef12"
>       }
>     }'
> ```
>
> **Arbitrum**
>
> Supported assets: USDC, USDT.
>
> ```bash cURL USDC theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDC",
>       "platformAccountId": "arbitrum_usdc_001",
>       "accountInfo": {
>         "accountType": "ARBITRUM_WALLET",
>         "address": "0xAbCDEF1234567890aBCdEf1234567890ABcDef12"
>       }
>     }'
> ```
>
> ```bash cURL USDT theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "USDT",
>       "platformAccountId": "arbitrum_usdt_001",
>       "accountInfo": {
>         "accountType": "ARBITRUM_WALLET",
>         "address": "0xAbCDEF1234567890aBCdEf1234567890ABcDef12"
>       }
>     }'
> ```
>
> **Lightning**
>
> Exactly one of `lightningAddress`, `invoice` (a single-use BOLT11 invoice) or `bolt12`
> (a reusable offer) must be provided.
>
> ```bash cURL theme={null}
> curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts' \
>   -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET" \
>   -H 'Content-Type: application/json' \
>   -d '{
>       "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
>       "currency": "BTC",
>       "platformAccountId": "btc_lightning_001",
>       "accountInfo": {
>         "accountType": "LIGHTNING",
>         "lightningAddress": "john.doe@lightningwallet.com"
>       }
>     }'
> ```
>
> > [!NOTE]
> >
> > Crypto wallets don't require beneficiary information. Send only assets on the
> > named network — EVM addresses look identical across Ethereum, Base, Polygon,
> > Plasma, and Arbitrum, and funds sent on the wrong network are unrecoverable.

> [!TIP]
>
> Use `platformAccountId` to tie your internal id with the external account.

**Sample Response:**

```json theme={null}
{
  "id": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
  "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
  "status": "ACTIVE",
  "currency": "USD",
  "platformAccountId": "user_123_primary_bank",
  "accountInfo": {
    "accountType": "USD_ACCOUNT",
    "accountNumber": "123456789",
    "routingNumber": "021000021",
    "bankAccountType": "CHECKING",
    "bankName": "Chase Bank",
    "beneficiary": {
      "beneficiaryType": "INDIVIDUAL",
      "fullName": "John Doe",
      "birthDate": "1990-01-15",
      "nationality": "US",
      "address": {
        "line1": "123 Main Street",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94105",
        "country": "US"
      }
    }
  }
}
```

### Business beneficiaries

For business accounts, include business information:

```json theme={null}
{
  "currency": "USD",
  "platformAccountId": "acme_corp_account",
  "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
  "accountInfo": {
    "accountType": "USD_ACCOUNT",
    "accountNumber": "987654321",
    "routingNumber": "021000021",
    "bankAccountType": "CHECKING",
    "bankName": "Chase Bank",
    "beneficiary": {
      "beneficiaryType": "BUSINESS",
      "businessInfo": {
        "legalName": "Acme Corporation, Inc.",
        "taxId": "EIN-987654321"
      },
      "address": {
        "line1": "456 Business Ave",
        "city": "New York",
        "state": "NY",
        "postalCode": "10001",
        "country": "US"
      }
    }
  }
}
```

## Minimum required beneficiary fields

The following tables show the minimum required fields for individual and business beneficiaries. All other fields are optional but recommended for faster compliance review.

### Individual beneficiaries

| Country | Required Fields | Required Address Fields |
| - | - | - |
| US (USD) | `beneficiaryType`, `fullName` | `line1`, `city`, `postalCode`, `country` |
| Mexico (MXN) | `beneficiaryType`, `fullName` | None (address optional) |
| Brazil (BRL) | `beneficiaryType`, `fullName` | None (address optional) |
| Philippines (PHP) | `beneficiaryType`, `fullName` | None (address optional) |
| United Kingdom (GBP) | `beneficiaryType`, `fullName`, `address` | `line1`, `city`, `postalCode`, `country` |
| Europe (EUR) | `beneficiaryType`, `fullName`, `address` | `line1`, `city`, `postalCode`, `country` |

> [!NOTE]
>
> While only the fields listed above are strictly required, providing additional information like `birthDate`, `nationality`, and `address` can reduce the likelihood of false positive compliance checks and increase transaction success rates.

### Business beneficiaries

For business beneficiaries, the required fields vary by destination currency:

| Currency | Required fields |
| - | - |
| USD | `legalName`, `address` |
| MXN | `legalName`, `address` |
| EUR | `legalName`, `address`, `registrationNumber` |
| GBP, INR, BRL, DKK, PHP, HKD, IDR, MYR, SGD, THB, VND, AED, ILS | `legalName`, `address` |
| NGN, ZAR, KES, TZS, RWF, ZMW, UGX, BWP, MWK, XOF, XAF | `legalName`, `address`, `registrationNumber`, `taxId` |

> [!NOTE]
>
> When sending to GBP, INR, BRL, DKK, PHP, HKD, IDR, MYR, SGD, THB, VND, AED, or ILS, business senders (originators) must also provide `registrationNumber`.

> [!NOTE]
>
> `registrationNumber` is the business's official registration or incorporation number (e.g., EIN in the US, CNPJ in Brazil, company registration number in the UK). `taxId` is the business's tax identification number where it differs from the registration number.

## Account status

Beneficiary data may be reviewed for risk and compliance. Only `ACTIVE` accounts can receive payments. Updates to account data may trigger account re-review.

| Status | Description |
| - | - |
| `PENDING` | Created, awaiting verification |
| `ACTIVE` | Verified and ready for transactions |
| `UNDER_REVIEW` | Additional review required |
| `INACTIVE` | Disabled, cannot be used |

## Listing external accounts

### List customer accounts

```bash theme={null}
curl -X GET 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts?customerId=Customer:019542f5-b3e7-1d02-0000-000000000001' \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET"
```

### List platform accounts

For platform-wide operations, list all platform-level external accounts:

```bash theme={null}
curl -X GET 'https://api.lightspark.com/grid/2025-10-13/platform/external-accounts' \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET"
```

> [!NOTE]
>
> Platform external accounts are used for platform-wide operations like
> depositing funds from external sources.

## Retrieving a single external account

Fetch one external account by its system-generated ID:

```bash theme={null}
curl -X GET 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts/ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965' \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET"
```

**Response:**

```json theme={null}
{
  "id": "ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965",
  "customerId": "Customer:019542f5-b3e7-1d02-0000-000000000001",
  "status": "ACTIVE",
  "currency": "USD",
  "platformAccountId": "acc_123456789",
  "accountInfo": {
    "accountType": "USD_ACCOUNT",
    "accountNumber": "1234567890",
    "routingNumber": "021000021",
    "bankName": "Chase Bank",
    "bankAccountType": "CHECKING",
    "paymentRails": ["ACH", "WIRE", "RTP", "FEDNOW"],
    "beneficiary": {
      "beneficiaryType": "INDIVIDUAL",
      "fullName": "Jane Doe"
    }
  }
}
```

> [!NOTE]
>
> `paymentRails` reports the rails Grid selected for the account. It is
> returned on the account and is not something you send when creating one.

Returns `404` if no external account matches the ID.

## Deleting an external account

Delete an external account by its system-generated ID:

```bash theme={null}
curl -X DELETE 'https://api.lightspark.com/grid/2025-10-13/customers/external-accounts/ExternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965' \
  -u "$GRID_CLIENT_ID:$GRID_CLIENT_SECRET"
```

Returns `204 No Content` on success.

> [!WARNING]
>
> An account that is currently a **trusted beneficiary** for Strong Customer
> Authentication cannot be deleted — the request fails with `409` and code
> `BENEFICIARY_TRUSTED`. Untrust it first via `POST
>     /customers/external-accounts/{externalAccountId}/untrust` and its
> `/confirm`, then delete.

## Best practices

> [accordion] Validate account information
>
> Validate account details before submission:
>
> ```javascript theme={null}
> // US accounts: 9-digit routing, 4-17 digit account number
> if (!/^\d{9}$/.test(routingNumber)) {
>   throw new Error("Invalid routing number");
> }
>
> // CLABE: exactly 18 digits
> if (!/^\d{18}$/.test(clabeNumber)) {
>   throw new Error("Invalid CLABE number");
> }
>
> // NGN: exactly 10-digit account number
> if (!/^\d{10}$/.test(ngnAccountNumber)) {
>   throw new Error("Invalid Nigerian account number");
> }
>
> // CAD: 3-digit bank code, 5-digit branch code, 7-12 digit account number
> if (!/^\d{3}$/.test(bankCode)) {
>   throw new Error("Invalid bank code");
> }
> if (!/^\d{5}$/.test(branchCode)) {
>   throw new Error("Invalid branch code");
> }
> if (!/^\d{7,12}$/.test(cadAccountNumber)) {
>   throw new Error("Invalid Canadian account number");
> }
>
> // PHP: 8-16 digit account number
> if (!/^\d{8,16}$/.test(phpAccountNumber)) {
>   throw new Error("Invalid Philippine account number");
> }
>
> // GBP: 6-digit sort code, 8-digit account number
> if (!/^\d{6}$/.test(sortCode)) {
>   throw new Error("Invalid sort code");
> }
> if (!/^\d{8}$/.test(gbpAccountNumber)) {
>   throw new Error("Invalid UK account number");
> }
>
> // ZAR: 9-13 digit account number
> if (!/^\d{9,13}$/.test(zarAccountNumber)) {
>   throw new Error("Invalid South African account number");
> }
>
> // African mobile money phone numbers
> if (!/^\+254\d{9}$/.test(kesPhoneNumber)) {
>   throw new Error("Invalid Kenyan phone number");
> }
> if (!/^\+255\d{9}$/.test(tzsPhoneNumber)) {
>   throw new Error("Invalid Tanzanian phone number");
> }
> if (!/^\+260\d{9}$/.test(zmwPhoneNumber)) {
>   throw new Error("Invalid Zambian phone number");
> }
> if (!/^\+250\d{9}$/.test(rwfPhoneNumber)) {
>   throw new Error("Invalid Rwandan phone number");
> }
> if (!/^\+265\d{9}$/.test(mwkPhoneNumber)) {
>   throw new Error("Invalid Malawian phone number");
> }
> if (!/^\+256\d{9}$/.test(ugxPhoneNumber)) {
>   throw new Error("Invalid Ugandan phone number");
> }
> // West African (XOF): Senegal (+221), Ivory Coast (+225), Benin (+229)
> if (!/^\+(221\d{9}|225\d{10}|229\d{8,9})$/.test(xofPhoneNumber)) {
>   throw new Error("Invalid West African phone number");
> }
> ```

> [accordion] Check account status
>
> Verify status before sending payments:
>
> ```javascript theme={null}
> if (account.status !== "ACTIVE") {
>   throw new Error(`Account is ${account.status}, cannot process payment`);
> }
> ```

> [accordion] Secure account data
>
> Never expose full account numbers. Display only masked info:
>
> ```javascript theme={null}
> function displaySafely(account) {
>   return {
>     id: account.id,
>     bankName: account.accountInfo.bankName,
>     lastFour: account.accountInfo.accountNumber.slice(-4),
>     status: account.status,
>   };
> }
> ```

## Next steps

![](https://agents-docs.lightspark.com/images/icons/globe.svg)

Cross-currency transfers

Learn how to send international payments using external accounts

[Open](https://agents-docs.lightspark.com/payouts-and-b2b/quickstart.md)

![](https://agents-docs.lightspark.com/images/icons/code.svg)

API Reference

View complete API documentation for external accounts

[Open](https://agents-docs.lightspark.com/api-reference)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.