Create ExternalBankAccount

POSThttps://bank.dattaremit.com/api/external_bank_accounts

Requires 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

StateDescription
storingThe Platform is storing the external bank account details in our private store
completedThe Platform has created the external bank account
unverifiedThe external bank account is created, but it has not yet been verified
failedThe Platform was not able to successfully create the external bank account
refresh_requiredThe Platform has created the external bank account, but needs to be refreshed
deletingThe Platform is deleting the external bank account
deletedThe Platform has deleted the external bank account

## Failure codes

CodeDescription
invalid_routing_numberThe provided routing number is invalid
invalid_account_numberThe account number is invalid
invalid_account_typeThe account type is invalid
duplicateAn account with the same details already exists
plaid_processor_tokenAn account could not be created due to an invalid Plaid processor token or an error with Plaid
plaid_multiple_accountsThe supplied Plaid token is associated with multiple accounts. Must only be a single account.
create_failedThe bank account and associated holder could not be created correctly
unverified_counterpartyThe counterparty account is unverified

Required scope: external_bank_accounts:execute

Body Params

required
namestringrequired

The name of the account.

account_kindplaid | plaid_processor_token | raw_routing_detailsrequired

The account type

customer_guidstring

The customer identifier.

assetstring

The asset code. If not set will try and default to the Bank's configured fiat asset.

plaid_public_tokenstring

The public token for the account. Required for 'plaid' accounts. Required when account_kind is plaid.

plaid_account_idstring

The account identifier in plaid. Required for 'plaid' accounts. Required when account_kind is plaid.

plaid_processor_tokenstring

The Plaid processor token used to access the account. Required when account_kind is plaid_processor_token.

plaid_institution_idstring

Plaid's institution ID for the account's institution. Required when account_kind is plaid_processor_token.

plaid_account_maskstring

The account mask for the account. Required when account_kind is plaid_processor_token.

plaid_account_namestring

The name of the account. Required when account_kind is plaid_processor_token.

counterparty_guidstring

The counterparty identifier. Optional when account_kind is raw_routing_details.

counterparty_bank_accountobject

The counterparty's checking bank account information. Required when account_kind is raw_routing_details.

routing_number_typeCPA | ABA | IFSC

The type of routing number. Required when account_kind is raw_routing_details.

routing_numberstring

The routing number. Required when account_kind is raw_routing_details.

account_numberstring

The account number. Required when account_kind is raw_routing_details.

counterparty_nameobject

The counterparty's name on their checking account. Required when account_kind is raw_routing_details and counterparty_guid is not present.

firststring

The counterparty's first name; used for individuals. Optional when account_kind is raw_routing_details and counterparty_guid is not present.

middlestring

The counterparty's middle name; used for individuals. Optional when account_kind is raw_routing_details and counterparty_guid is not present.

laststring

The counterparty's last name; used for individuals. Optional when account_kind is raw_routing_details and counterparty_guid is not present.

fullstring

The counterparty's full name; used for businesses. Optional when account_kind is raw_routing_details and counterparty_guid is not present.

counterparty_addressobject

The counterparty's address on their checking account. Required when account_kind is raw_routing_details and counterparty_guid is not present.

streetstring

The first line of the address. Required when account_kind is raw_routing_details and counterparty_guid is not present.

street2string

The optional second line of the address. Optional when account_kind is raw_routing_details and counterparty_guid is not present.

citystring

The city of the address. Required when account_kind is raw_routing_details and counterparty_guid is not present.

subdivisionstring

The 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_codestring

The 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_codestring

The 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_addressstring

The counterparty's email address on their checking account. Optional when account_kind is raw_routing_details and counterparty_guid is not present.

Responses

201

ExternalBankAccount created

400

Bad Request

401

Unauthorized - Authentication failed

403

Invalid scope

422

Unprocessable 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"
        }
      ]
    }
  ]
}