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
railsparameter.
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
A few notes:
- Account Holder Address: The address cannot be a PO Box or PMB (Private Mailbox). 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 their first and last name. If the account holder is a business, you will always need to provide the business name
- Account Type: If the country you're sending money to doesn't use the concept of Checking vs. Savings accounts, we recommend you default to
Checking - Bank Name: Some countries require the bank name. In a subset of these countries, they even require it to be spelled exactly. When this is the case, please use the enum returned in the GET endpoint below; otherwise, free-form entry is allowed
API EndpointWe recommend you use the https://docs.walapay.io/reference/accountscontroller_getexternalaccountrequirements#/ endpoint to get the most up-to-date requirements (which may also differ by bank partner). Note that this endpoint will only return fields that are country/currency dependent; fields that are always required (as discussed in the notes above or as marked in the API reference) will not be included
Local Payments
This table shows only the fields that are not already marked as required in the API Reference or discussed in the notes above.
| Bank Country | Required Fields |
|---|---|
| United Arab Emirates (AED), Andorra (EUR), Austria (EUR), Belgium (EUR), Bulgaria (EUR), Switzerland (CHF), Cyprus (EUR), Czech Republic (CZK), Denmark (DKK), Estonia (EUR), Spain (EUR), Finland (EUR), France (EUR), Germany (EUR), Greece (EUR), Hungary (EUR), Croatia (EUR), Ireland (IE), Iceland (IS), Italy (EUR), Latvia (EUR), Liechtenstein (EUR), Lithuania (EUR), Luxembourg (EUR), Malta (EUR), Monaco (EUR), Netherlands (EUR), Norway (NOK), Portugal (EUR), Romania (RON), Slovakia (EUR), Slovenia (EUR), Saudi Arabia (SAR), Turkey (TRY), Poland (PLN) |
|
| Australia (AUD) |
|
Argentina (ARS) Account Holder Tax Number:
|
|
| Bangladesh (BDT) |
|
| Bolivia (BOB) |
|
| Brazil (BRL) |
|
| Canada (CAD) |
|
| Chile (CLP) |
|
| China (CNY) |
|
| Colombia (COP) |
|
Costa Rica (CRC) Account Holder Tax Number options:
|
|
Dominican Republic (DOP), Ecuador (USD) Account Holder Tax Number:
|
|
| Egypt (EGP) |
|
| El Salvador (USD), Guatemala (GTQ), Honduras (HNL), Malaysia (MYR), Singapore (SGD) |
|
| South Africa (ZAR) |
|
| Ghana (GHS), Indonesia (IDR), Kenya (KES), South Korea (KRW), Philippines (PHP), Thailand (THB), Tanzania (TZS), Vietnam (VND) |
|
| Hong Kong (HKD) |
|
| India (INR) |
|
| Jamaica (JMD) |
|
| Japan (JPY) |
|
| Mexico (MXN) |
|
| New Zealand (NZD) |
|
| Nigeria (NGN) |
|
| Israel (ILS), Jordan (JOD), Pakistan (PKR) |
|
Peru (PEN) Account Number:
|
|
| Sri Lanka (LKR) |
|
| Sri Lanka (USD) |
|
| Qatar (QAR) |
|
| Sweden (SEK) |
|
| United Kingdom (GBP) |
|
| United States (USD) |
|
SWIFT Payments
For SWIFT payments, you need to pass in the iban field for countries that accept IBAN or the accountNumber+ bicSwift combo for all other countries. The account holder address is also required.
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"
}
}'