Create ExternalBankAccount
https://bank.dattaremit.com/api/external_bank_accountsRequires a bank-scoped key.
Create an ExternalBankAccount.
## Account creation
Accounts can be created for a Bank or a Customer.
To create accounts for your Bank, omit the customer_guid parameter in the request body. To create accounts for your Customers, include the customer_guid parameter in the request body.
## State
| State | Description |
|---|---|
| storing | The Platform is storing the external bank account details in our private store |
| completed | The Platform has created the external bank account |
| unverified | The external bank account is created, but it has not yet been verified |
| failed | The Platform was not able to successfully create the external bank account |
| refresh_required | The Platform has created the external bank account, but needs to be refreshed |
| deleting | The Platform is deleting the external bank account |
| deleted | The Platform has deleted the external bank account |
## Failure codes
| Code | Description |
|---|---|
| invalid_routing_number | The provided routing number is invalid |
| invalid_account_number | The account number is invalid |
| invalid_account_type | The account type is invalid |
| duplicate | An account with the same details already exists |
| plaid_processor_token | An account could not be created due to an invalid Plaid processor token or an error with Plaid |
| plaid_multiple_accounts | The supplied Plaid token is associated with multiple accounts. Must only be a single account. |
| create_failed | The bank account and associated holder could not be created correctly |
| unverified_counterparty | The counterparty account is unverified |
Required scope: external_bank_accounts:execute
Body Params
requirednamestringrequiredThe name of the account.
account_kindplaid | plaid_processor_token | raw_routing_detailsrequiredThe account type
customer_guidstringThe customer identifier.
assetstringThe asset code. If not set will try and default to the Bank's configured fiat asset.
plaid_public_tokenstringThe public token for the account. Required for 'plaid' accounts. Required when account_kind is plaid.
plaid_account_idstringThe account identifier in plaid. Required for 'plaid' accounts. Required when account_kind is plaid.
plaid_processor_tokenstringThe Plaid processor token used to access the account. Required when account_kind is plaid_processor_token.
plaid_institution_idstringPlaid's institution ID for the account's institution. Required when account_kind is plaid_processor_token.
plaid_account_maskstringThe account mask for the account. Required when account_kind is plaid_processor_token.
plaid_account_namestringThe name of the account. Required when account_kind is plaid_processor_token.
counterparty_guidstringThe counterparty identifier. Optional when account_kind is raw_routing_details.
counterparty_bank_accountobjectThe counterparty's checking bank account information. Required when account_kind is raw_routing_details.
routing_number_typeCPA | ABA | IFSCThe type of routing number. Required when account_kind is raw_routing_details.
routing_numberstringThe routing number. Required when account_kind is raw_routing_details.
account_numberstringThe account number. Required when account_kind is raw_routing_details.
counterparty_nameobjectThe counterparty's name on their checking account. Required when account_kind is raw_routing_details and counterparty_guid is not present.
firststringThe counterparty's first name; used for individuals. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
middlestringThe counterparty's middle name; used for individuals. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
laststringThe counterparty's last name; used for individuals. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
fullstringThe counterparty's full name; used for businesses. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
counterparty_addressobjectThe counterparty's address on their checking account. Required when account_kind is raw_routing_details and counterparty_guid is not present.
streetstringThe first line of the address. Required when account_kind is raw_routing_details and counterparty_guid is not present.
street2stringThe optional second line of the address. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
citystringThe city of the address. Required when account_kind is raw_routing_details and counterparty_guid is not present.
subdivisionstringThe ISO 3166-2 subdivision code of the address. Applicable only for countries that use subnational states, provinces, lands, oblasts or regions. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
postal_codestringThe postal, zip or post code of the address. Applicable only for countries that use postal, zip or post codes. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
country_codestringThe ISO 3166 country 2-Alpha country code of the address. Required when account_kind is raw_routing_details and counterparty_guid is not present.
counterparty_email_addressstringThe counterparty's email address on their checking account. Optional when account_kind is raw_routing_details and counterparty_guid is not present.
Responses
201ExternalBankAccount created
400Bad Request
401Unauthorized - Authentication failed
403Invalid scope
422Unprocessable Content
Request
curl https://api.dattaremit.com/api/external_bank_accounts \
-X POST \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "string",
"account_kind": "plaid",
"customer_guid": "string",
"asset": "string",
"plaid_public_token": "string",
"plaid_account_id": "string",
"plaid_processor_token": "string",
"plaid_institution_id": "string",
"plaid_account_mask": "string",
"plaid_account_name": "string",
"counterparty_guid": "string",
"counterparty_bank_account": {
"routing_number_type": "CPA",
"routing_number": "string",
"account_number": "string"
},
"counterparty_name": {
"first": "string",
"middle": "string",
"last": "string",
"full": "string"
},
"counterparty_address": {
"street": "string",
"street2": "string",
"city": "string",
"subdivision": "string",
"postal_code": "string",
"country_code": "string"
},
"counterparty_email_address": "string"
}'Response
ExternalBankAccount created
{
"guid": "string",
"name": "string",
"asset": "string",
"account_kind": "string",
"environment": "string",
"bank_guid": "string",
"customer_guid": "string",
"counterparty_guid": "string",
"created_at": "2026-07-20T16:27:51.438Z",
"updated_at": "2026-07-20T16:27:51.438Z",
"plaid_institution_id": "string",
"plaid_account_mask": "string",
"plaid_account_name": "string",
"state": "string",
"failure_code": "string",
"balance_updated_at": "2026-07-20T16:27:51.438Z",
"balances": {
"available": 1,
"current": 1
},
"pii": [
{
"names": [
"string"
],
"addresses": [
{
"street": "string",
"street2": "string",
"city": "string",
"subdivision": "string",
"postal_code": "string",
"country_code": "string"
}
],
"email_addresses": [
"string"
],
"phone_numbers": [
"string"
],
"account_details": [
{
"account_number": "string"
}
],
"routing_details": [
{
"routing_number_type": "string",
"routing_number": "string",
"payment_rail": "EFT"
}
]
}
]
}