External Accounts
External Bank Accounts
These accounts are existing bank accounts that belong to your customers (e.g., an HSBC bank account that an Individual has for their own personal use). They are not created or managed by Walapay.
Creation
Rails Parameter
Certain countries have multiple payment rails and not all rails require the same information or not all banks accept all rails. For countries like Brazil, the two available rails (PIX and TED) require different fields, so you can specify which rail you would like to create the account for by using the
rails
parameter.
curl --request POST \
--url 'https://sandbox-api.walapay.io/v1/accounts/<customerId>' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'X-Api-Key: fa15de08-f1af-4c41-a74b-2302b6785c13' \
--data '{
"type": "EXTERNAL_BANK_ACCOUNT",
"currencyCode": "USD",
"isThirdParty": true, // true means the account does not belong to the customer
"rails": ["ACH"], // optional (see API reference for details)
"bank": {
"name": "U.S. Bank",
"accountNumber": "123456789",
"routingNumber": "021000089",
"type": "CHECKING",
"address": {
"streetLine1": "425 Walnut Street",
"city": "Cincinnati",
"stateRegionOrProvince": "OH",
"postalCode": "45202",
"countryCode": "US"
}
},
"accountHolder": {
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"address": {
"streetLine1": "123 Main Street",
"city": "Cincinnati",
"stateRegionOrProvince": "OH",
"postalCode": "45202",
"countryCode": "US"
},
"type": "INDIVIDUAL"
}
}'
curl --request POST \
--url 'https://sandbox-api.walapay.io/v1/accounts/<customerId>' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'X-Api-Key: fa15de08-f1af-4c41-a74b-2302b6785c13' \
--data '{
"type": "EXTERNAL_BANK_ACCOUNT",
"currencyCode": "PHP",
"isThirdParty": true,
"bank": {
"name": "Bank Of Philippines Islands",
"accountNumber": "1234567890",
"type": "SAVING",
"address": {
"streetLine1": "Ayala Avenue",
"city": "Makati",
"stateRegionOrProvince": "Metro Manila",
"postalCode": "1226",
"countryCode": "PH"
}
},
"accountHolder": {
"firstName": "Juan",
"lastName": "Dela Cruz",
"email": "[email protected]",
"address": {
"streetLine1": "456 Quezon Street",
"city": "Quezon City",
"stateRegionOrProvince": "Metro Manila",
"postalCode": "1100",
"countryCode": "PH"
},
"type": "INDIVIDUAL"
}
}'
Requirements by Region
The sections below will show you the country-specific requirements for both local and SWIFT payments. Note that only the active corridors outlined in the countries & rails page are included.
Fields required to receive Local payments
This table shows only the fields that are not already marked as required in the API Reference. A few notes:
- Account Holder email: Emails are required for all countries. However, this is purely for record keeping purposes. Emails will not be sent to the account holder. If you do not have the account holder's email, you may put an email that belongs to the sender (i.e., your customer)
- Account Holder address: The address cannot be a PO Box or PMB. This will cause issues when attempting to send a payment.
- First/Last or Business name: If the account holder is an individual, you will always need to provide the first and last name. If the account holder is a business, you will always need to provide the business name
- Bank names: Some countries require the bank name to be spelled exactly. Please use the following document to see which countries have this requirement. If you do not find a country on this list, it means the bank name does not need a specific spelling (i.e., it won't matter if you write "Citibank NA" or "Citi", as long as it's obvious to a human what bank you're referring to)
API EndpointIf you would like to receive this data by API, please use the https://docs.walapay.io/reference/accountscontroller_getexternalaccountrequirements#/ We recommend you use this for the most up-to-date requirements and for the following scenarios:
- If the table below has the country marked as having differences between providers, the endpoint will return the details for the provider assigned to you
- If the country in question has more than one accepted currency (USD in CN), the endpoint will return the correct details depending on which currency code you input
- If the bank country code and account holder country code do not match (the below table assumes these are the same), the endpoint will return the correct details no matter the combination (i.e., China-based bank account with a Nigerian account holder)
Country | Required Fields |
---|---|
Mexico (MX) |
|
Bangladesh (BD), Indonesia (ID), Sri Lanka (LK), New Zealand (NZ), Thailand (TH) |
|
Jamaica (JM), Japan (JP) |
|
Ghana (GH), Kenya (KE), South Korea (KR), Morocco (MA), Philippines (PH), Singapore (SG), Tanzania (TZ), Vietnam (VN) |
|
China (CN) |
|
Honduras (HN), Malaysia (MY), South Africa (ZA) |
|
Nigeria (NG) |
|
United Arab Emirates (AE), Andorra (AD), Austria (AT), Belgium (BE), Bulgaria (BG), Switzerland (CH), Cyprus (CY), Denmark (DK), Estonia (EE), Spain (ES), Finland (FI), France (FR), Germany (DE), Greece (GR), Hungary (HU), Croatia (HR), Israel (IL), Ireland (IE), Iceland (IS), Italy (IT), Latvia (LV), Liechtenstein (LI), Lithuania (LT), Luxembourg (LU), Malta (MT), Monaco (MC), Netherlands (NL), Norway (NO), Pakistan (PK), Portugal (PT), Romania (RO), Slovakia (SK), Slovenia (SI), El Salvador (SV), Saudi Arabia (SA), Turkey (TR) |
|
Czech Republic (CZ) |
|
Egypt (EG) |
|
United Kingdom (GB) |
|
Poland (PL), Sweden (SE) |
|
India (IN) |
|
United States (US) |
|
Canada (CA) |
|
Australia (AU) |
|
Brazil (BR) |
|
Bolivia (BO), Ecuador (EC), Peru (PE) |
|
Chile (CL) |
|
Argentina (AR) |
|
Colombia (CO) |
|
Dominican Republic (DO) |
|
Costa Rica (CR) |
|
Hong Kong (HK) |
|
Fields required to receive International Wires (SWIFT)
When you send an international wire, you'll need all the information for a local transfer (see above), plus:
- SWIFT/BIC code: A unique identifier for the recipient's bank (8-11 characters).
- IBAN number (not all countries, see list below): An international bank account number (up to 34 characters).
A SWIFT code ensures the transfer reaches the correct bank. An IBAN identifies the specific account within that bank. Countries that do not require an IBAN will use another field as the account specifier (e.g., CLABE in Mexico).
External Digital Asset Wallets
These accounts are not created and managed by Walapay, but are instead existing digital asset wallets that belong to your customers (e.g., a MetaMask wallet for Ethereum that an Individual has for their own personal use).
Creation
Network SelectionNote that in Sandbox, all chains will be converted to their testnet equivalent:
- Polygon --> Polygon Amoy
- Ethereum --> Ethereum Sepolia
- Base --> Base Sepolia
- Solana --> Solana Devnet
curl --request POST \
--url 'https://sandbox-api.walapay.io/v1/accounts/<customerId>' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'X-Api-Key: fa15de08-f1af-4c41-a74b-2302b6785c13' \
--data '{
"type": "EXTERNAL_DIGITAL_ASSET_WALLET",
"isThirdParty": true,
"currencyCode": "USDC",
"digitalAssetWallet": {
"address": "0x95222290DD7278Aa3Ddd389Cc1E1d165CC4BAfe5",
"chain": "ETHEREUM"
},
"accountHolder": {
"firstName": "Joseph",
"lastName": "Fajagut",
"address": {
"countryCode": "PH" // Required for compliance with the Travel Rule
},
"type": "INDIVIDUAL"
}
}'
Updated 2 days ago