External Bank Accounts

External Bank Accounts

BETA: This endpoint is subject to change without notice.

An external bank account is a payout destination — the bank account where funds are sent when a payout is created. Each account must register at least one external bank account before it can pay out.

Supported bank detail schemes

SchemeFieldsTypical usage
GBSort code (6 digits) + account number (8 digits)UK domestic, GBP
IBANIBAN (up to 34 characters)SEPA/EUR and other IBAN-adopting countries
USABA routing number (9 digits) + account number (4–17 digits)US domestic, USD

Creating an external bank account

API reference

UK (GB) example

curl -X POST https://api.synaptopay.com/v1/accounts/acct_YOUR_ACCOUNT/external-bank-accounts \
  -H "Authorization: Api-Key $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_bank_account": {
      "country": "GB",
      "currency": "GBP",
      "account_holder_name": "Example Ltd",
      "account_holder_type": "BUSINESS",
      "gb_bank_details": {
        "sort_code": "040004",
        "account_number": "12345678"
      }
    }
  }'

Response

Verification runs during creation. If it passes (e.g. Confirmation of Payee succeeds for a UK account), the external bank account is returned as ACTIVE:

{
  "name": "accounts/acct_YOUR_ACCOUNT/external-bank-accounts/ba_BANK_ACCOUNT_ID",
  "state": "ACTIVE",
  "country": "GB",
  "currency": "GBP",
  "account_holder_name": "Example Ltd",
  "account_holder_type": "BUSINESS",
  "bank_details_type": "GB",
  "gb_bank_details": {
    "sort_code": "040004",
    "account_number": "12345678"
  },
  "verification": {
    "state": "VERIFIED",
    "gb_cop": {
      "state": "VERIFIED"
    }
  },
  "create_time": "2026-01-15T10:30:00Z",
  "update_time": "2026-01-15T10:30:00Z"
}

If verification fails, the state will be REQUIRES_VERIFICATION with verification.state of ASSERTED. See the Verification section below for details.

IBAN example

curl -X POST https://api.synaptopay.com/v1/accounts/acct_YOUR_ACCOUNT/external-bank-accounts \
  -H "Authorization: Api-Key $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_bank_account": {
      "country": "DE",
      "currency": "EUR",
      "account_holder_name": "Beispiel GmbH",
      "account_holder_type": "BUSINESS",
      "iban_bank_details": {
        "iban": "DE89370400440532013000"
      }
    }
  }'

Key fields

FieldDescription
countryISO 3166-1 alpha-2 country code (required)
currencyISO 4217 currency code (required)
account_holder_nameName of the account holder
account_holder_typePERSON or BUSINESS
bank_details_typeWhich bank detail scheme is set: GB, IBAN, or US (output only)
metadataKey-value pairs for your own use (max 50 keys, key max 40 chars, value max 500 chars)

Verification lifecycle

Verification runs automatically when you create an external bank account. For UK accounts, this includes a Confirmation of Payee check.

EBA stateVerification stateCoP state (UK only)What happens next
REQUIRES_VERIFICATIONASSERTEDFAILEDCoP failed — create a new EBA with corrected details
ACTIVEVERIFIEDVERIFIEDReady to receive payouts
ACTIVEVERIFIEDUNAVAILABLECoP not applicable — verified by other means

Verification typically completes inline during creation, so the response usually shows ACTIVE directly. If verification fails, the EBA remains in REQUIRES_VERIFICATION — it cannot receive payouts.

Once an external bank account reaches ACTIVE, it is immutable — you cannot update its details. If the details are incorrect, create a new external bank account.

UK Confirmation of Payee

For GB/GBP accounts, Synapto performs a Confirmation of Payee (CoP) check to verify that the account holder name matches the bank's records. If CoP fails, the verification.gb_cop.suggested_account_holder_name field may contain the correct name to use.

Listing external bank accounts

API reference

curl -X POST https://api.synaptopay.com/v1/accounts/acct_YOUR_ACCOUNT/external-bank-accounts:list \
  -H "Authorization: Api-Key $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Webhooks

When an external bank account is created, an account.external_bank_account.created event is sent to your webhook endpoints. See Webhooks for setup instructions.