Documentation
Beneficiaries
SWIFT Beneficiary (USD)

SWIFT Beneficiary (USD)

SWIFT is the international wire rail for USD payouts to bank accounts in 110+ countries. A SWIFT beneficiary is created with the same Add Beneficiary endpoint as any other beneficiary; only the destination object differs.

This page is the single reference for the SWIFT destination schema. The country pages under Beneficiaries show a ready-to-run sample per country and list only the fields that are specific to that country.

⚠️

SWIFT is USD only. currency must be USD whenever destination.type is SWIFT. Conversely, a USD beneficiary must use SWIFT in every country except the United States, China, Hong Kong and Liberia, which have their own USD rails.

Sample request

cURL
curl --location '{{baseURL}}/beneficiaries' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{APIKEY}}' \
--data '{
  "reference": "<sample-reference>",
  "customerEmail": "customer@example.com",
  "callbackUrl": "https://example.com/webhooks/beneficiaries",
  "country": "GB",
  "currency": "USD",
  "destination": {
    "type": "SWIFT",
    "accountName": "Ada Lovelace",
    "accountNumber": "GB29NWBK60161331926819",
    "swiftCode": "NWBKGB2L",
    "sortCode": "601613",
    "bankName": "NatWest Bank",
    "bankAddress": "250 Bishopsgate",
    "bankCity": "London",
    "bankPostCode": "EC2M 4AA",
    "bankCountry": "GB",
    "remittancePurpose": "FAMILY_SUPPORT",
    "beneficiary": {
      "type": "INDIVIDUAL",
      "country": "GB",
      "city": "London",
      "state": "England",
      "postCode": "EC2M 4AA",
      "address": "12 Baker Street",
      "phoneNumber": "+447700900123",
      "nationality": "GB",
      "idType": "PASSPORT",
      "idNumber": "P1234567",
      "idExpiration": "2030-01-15",
      "gender": "FEMALE",
      "dateOfBirth": "1990-05-20"
    },
    "sender": {
      "type": "INDIVIDUAL",
      "accountName": "John Smith",
      "country": "US",
      "city": "New York",
      "state": "NY",
      "address": "123 Main St",
      "postCode": "10001",
      "phoneNumber": "+12125550123",
      "email": "john.smith@example.com",
      "gender": "MALE",
      "idType": "PASSPORT",
      "idNumber": "US1234567",
      "idIssueDate": "2020-06-01",
      "dateOfBirth": "1985-03-15",
      "countryOfBirth": "US",
      "complianceDocument": {
        "proofOfIdentity": "<document-reference>"
      }
    }
  }
}'

The top-level fields (reference, callbackUrl, customerEmail, country, currency) are the same as for every beneficiary; see Add Beneficiary. country is the destination country of the bank account.

Destination parameters

ParameterDescriptionRequired
typeMust be SWIFT.✅
accountNameName on the receiving bank account.✅
accountNumberAccount number or IBAN of the receiving account. Some countries require an IBAN (see country-specific fields).✅
swiftCodeSWIFT/BIC of the receiving bank. 8 or 11 characters, uppercase, format AAAABBCC or AAAABBCCDDD.✅
bankNameName of the receiving bank.✅
bankAddressStreet address of the receiving bank.✅
bankCityCity of the receiving bank.✅
bankPostCodePost code of the receiving bank.✅
bankCountryISO 3166-1 alpha-2 country code of the receiving bank, e.g. GB.✅
bankStateState or province of the receiving bank. Optional; some receiving banks require it.
remittancePurposePurpose of the transfer. One of the remittance purposes below.✅
intermediaryBankOptional object { "code": "<BIC>", "name": "<bank name>" } for a correspondent bank. When present, both code and name are required.
beneficiaryDetails of the account holder. Shape depends on beneficiary.type (INDIVIDUAL or BUSINESS). See Beneficiary parameters.✅
senderDetails of the party the funds are sent on behalf of. Shape depends on sender.type. See Sender parameters.✅
📘

Phone numbers must be in international MSISDN format with a leading + and country code, e.g. +15551234567. Dates are YYYY-MM-DD. The sender's name and address, and the beneficiary's address, are limited to 35 characters because of the SWIFT message format.

Beneficiary parameters

beneficiary.type: "INDIVIDUAL"

ParameterDescriptionRequired
beneficiary[type]INDIVIDUAL✅
beneficiary[country]Country of residence (ISO alpha-2).✅
beneficiary[city]City.✅
beneficiary[state]State, province or region.✅
beneficiary[postCode]Post code.✅
beneficiary[address]Street address, max 35 characters.✅
beneficiary[addressLineTwo]Second address line.
beneficiary[phoneNumber]Phone number in MSISDN format.✅
beneficiary[nationality]Nationality (ISO alpha-2).✅
beneficiary[idType]One of the ID types. Must be TAX_ID for tax-ID countries.✅
beneficiary[idNumber]Identification document number.✅
beneficiary[idExpiration]Expiry date of the identification document.✅
beneficiary[gender]MALE, FEMALE or OTHERS.✅
beneficiary[dateOfBirth]Date of birth.✅
beneficiary[taxIdNumber]Tax identification number. Required only for tax-ID countries.Conditional

beneficiary.type: "BUSINESS"

ParameterDescriptionRequired
beneficiary[type]BUSINESS✅
beneficiary[country]Country of registration (ISO alpha-2).✅
beneficiary[city]City.✅
beneficiary[state]State, province or region.✅
beneficiary[postCode]Post code.✅
beneficiary[address]Registered address, max 35 characters.✅
beneficiary[phoneNumber]Phone number in MSISDN format.✅
beneficiary[businessType]One of the business types.✅
beneficiary[businessRegistrationType]One of the business registration types.✅
beneficiary[businessRegistrationNumber]Company registration number.✅
beneficiary[businessRegistrationIssueDate]Date the registration was issued.✅
beneficiary[businessIdValidThru]Expiry date of the business registration document.✅
beneficiary[taxIdNumber]Tax identification number. Required only for tax-ID countries.Conditional

Sender parameters

The sender is the person or company on whose behalf you send the funds. Sender details are bound to the beneficiary once created; to send from a different sender, create a new beneficiary (see Beneficiary basics).

sender.type: "INDIVIDUAL"

ParameterDescriptionRequired
sender[type]INDIVIDUAL✅
sender[accountName]Full name, max 35 characters.✅
sender[country]Country of residence (ISO alpha-2).✅
sender[city]City.✅
sender[state]State, province or region.✅
sender[address]Street address, max 35 characters.✅
sender[postCode]Post code.✅
sender[phoneNumber]Phone number in MSISDN format.✅
sender[email]Email address.✅
sender[gender]MALE, FEMALE or OTHERS.✅
sender[idType]One of the ID types.✅
sender[idNumber]Identification document number.✅
sender[idIssueDate]Issue date of the identification document.✅
sender[dateOfBirth]Date of birth.✅
sender[countryOfBirth]Country of birth (ISO alpha-2).✅
sender[complianceDocument]{ "proofOfIdentity": "<document-reference>" }. See Compliance document.✅

sender.type: "BUSINESS"

ParameterDescriptionRequired
sender[type]BUSINESS✅
sender[accountName]Registered business name, max 35 characters.✅
sender[country]Country of registration (ISO alpha-2).✅
sender[city]City.✅
sender[state]State, province or region.✅
sender[address]Registered address, max 35 characters.✅
sender[postCode]Post code.✅
sender[phoneNumber]Phone number in MSISDN format.✅
sender[email]Email address.✅
sender[businessType]One of the business types.✅
sender[businessRegistrationType]One of the business registration types.✅
sender[businessRegistrationNumber]Company registration number.✅
sender[businessRegistrationIssueDate]Date the registration was issued.✅
sender[complianceDocument]{ "proofOfIdentity": "<document-reference>" }. See Compliance document.✅

Compliance document

Every SWIFT sender must carry complianceDocument.proofOfIdentity: the key of a document uploaded with Upload Document.

sender.typeDocument
INDIVIDUALGovernment-issued identity document (passport, national ID, driving licence) matching idType/idNumber.
BUSINESSBusiness registration document (certificate of incorporation or registration) matching businessRegistrationNumber.
  • The value is the key returned by the upload, e.g. documents/<companyId>/<uuid>.pdf, not the signed url.
  • Brails verifies that the key belongs to your business and that the file exists before accepting the beneficiary. An unknown key is rejected with Failed to create beneficiary; a foreign key with Upload does not belong to this company.
  • The same key can be reused for every beneficiary created for the same sender. It is forwarded to the payout partner with every transfer.
⚠️

Upload as pdf, jpg, jpeg or png and keep the file under 5 MB so the payout partner accepts it. See Documents & Compliance.

Country-specific fields

Most countries accept the standard schema above. The countries below add or change destination fields.

CountryAdditional requirement
United Kingdom (GB)sortCode: 6 digits, no dashes or spaces.
Australia (AU)BSBNumber: 6 digits.
Canada (CA)routingCode: bank routing / transit code.
India (IN)IFSCode: 11 characters, format AAAA0XXXXXX.
Philippines (PH)routingNumber: 9 digits; accountType: CHECKING or SAVINGS; beneficiary taxIdNumber required.
Dominican Republic (DO)accountType: CHECKING or SAVINGS; beneficiary taxIdNumber required.
Indonesia (ID), Malaysia (MY), Singapore (SG), Zambia (ZM)bankCode: local bank code of the receiving bank.
El Salvador (SV)accountNumber must be the 28-character IBAN, no spaces.
⚠️

Tax-ID countries. For Angola, Argentina, Chile, Costa Rica, Dominican Republic, Ecuador, Guatemala, Honduras, Japan, Mexico, Peru, Philippines, South Korea and Thailand the beneficiary taxIdNumber is required and an individual beneficiary's idType must be TAX_ID.

Countries on the compact schema (China, Côte d'Ivoire, Gambia, Ghana, Guinea, Kenya, Liberia, Malawi, Nigeria, Rwanda, Senegal, Tanzania, Uganda) and Canada, India, Guyana and El Salvador do not use bankState or intermediaryBank; the fields are ignored if sent.

To discover the exact fields for a country programmatically, call Get Supported Countries with the country code: the destination entry lists one field set per payment method.

Enumerations

Remittance purposes

FAMILY_SUPPORT, EDUCATION, GIFT_AND_DONATION, MEDICAL_TREATMENT, MAINTENANCE_EXPENSES, TRAVEL, SMALL_VALUE_REMITTANCE, LIBERALIZED_REMITTANCE, OTHER, CONSTRUCTION_EXPENSES, HOTEL_ACCOMMODATION, ADVERTISING_EXPENSES, ADVISORY_FEES, BUSINESS_INSURANCE, INSURANCE_CLAIMS, DELIVERY_FEES, EXPORTED_GOODS, SERVICE_CHARGES, LOAN_PAYMENT, OFFICE_EXPENSES, PROPERTY_PURCHASE, PROPERTY_RENTAL, ROYALTY_FEES, SHARES_INVESTMENT, FUND_INVESTMENT, TAX_PAYMENT, TRANSPORTATION_FEES, UTILITY_BILLS, PERSONAL_TRANSFER, SALARY_PAYMENT, OTHER_FEES, COMPUTER_SERVICES, REWARD_PAYMENT, INFLUENCER_PAYMENT

ID types

NATIONAL_ID, PASSPORT, DRIVING_LICENSE, GOVERNMENT_ID, CITIZENSHIP_CARD, SENIOR_CITIZEN_ID, RESIDENCE_PERMIT, RESIDENT_CARD, GCC_ID, EMIRATES_ID, TAX_ID

Business types

AGRICULTURE, AUTOMOTIVE, BANKING, FINTECH, CONSTRUCTION, EDUCATION, INFORMATION_TECHNOLOGY, MANUFACTURING, RETAIL, REAL_ESTATE, TRANSPORTATION_AND_LOGISTICS, PROFESSIONAL_SERVICES, OTHERS

Business registration types

PARTNERSHIP, CORPORATION, SOLE_PROPRIETORSHIP, GOVERNMENT, NGO, PRIVATE_LTD, LLC, BSC

Genders

MALE, FEMALE, OTHERS

Paying a SWIFT beneficiary

  1. Create the beneficiary as above and wait for beneficiary.status.changed. SWIFT beneficiaries can be paid while PENDING, PROCESSING or SUCCESS.
  2. Call Quote to get the fee and rate.
  3. Initiate the payout with beneficiaryId. The amount is in cents. For business transactions pass the invoice key as receiptRef.
  4. If you did not pass receiptRef, attach the document before finalizing.
  5. Finalize the payout (legacy flow) or wait for the payout webhook.
⚠️

Supporting document. An invoice, contract or receipt is required for every business transaction (B2B, B2C, C2B), i.e. unless both sender.type and beneficiary.type are INDIVIDUAL. Initiating without it returns 422 document_required; a payout that reaches processing without it fails with Please upload the required document before processing this transaction. See Documents & Compliance.

Settlement, limits and fees

  • Settlement: T + 3 business days after the payout is processed. See Transfers for cut-off times.
  • Limits: per-country USD limits are listed on Supported Countries. Amounts outside the range are rejected with Amount is below minimum limit or Amount is above maximum limit.
  • Fees: SWIFT payouts use a tiered fee that depends on the amount. The Quote response returns the exact fee for a given amount.

Validation errors

Beneficiary creation returns 400 with one of the messages below when the payload does not meet the SWIFT rules.

MessageCause
Currency must be USD for SWIFT transactionsdestination.type is SWIFT but currency is not USD.
Payment type must be SWIFT for USD beneficiariescurrency is USD but destination.type is not SWIFT (outside US/CN/HK/LR).
SwiftCode is required for SWIFT transactionsswiftCode missing.
Validation failedOne or more fields fail the schema. details lists each field and its message.
Beneficiary country is currently not availableThe country is not enabled for payouts.
Beneficiary with same reference existsreference already used.
Failed to create beneficiaryThe complianceDocument.proofOfIdentity reference could not be found in storage.

Example schema failure:

🔴 400 - Validation failed
{
  "error": "Validation failed",
  "code": "VALIDATION_FAILED",
  "details": [
    {
      "path": "destination.swiftCode",
      "message": "Invalid SWIFT/BIC format. Must be 8 or 11 characters: AAAABBCC or AAAABBCCDDD",
      "code": "invalid_pattern"
    },
    {
      "path": "destination.sender.phoneNumber",
      "message": "Sender phone number must be in the msisdn international format (+15551234567)",
      "code": "invalid_pattern"
    }
  ]
}