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

> Register and manage beneficiary bank accounts

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,
>   };
> }
> ```


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