Bank Deposit Bank Accounts

How do I fund my bank's fiat account via a routable deposit bank account?

Deposit bank accounts are routable bank accounts that support transfers on and off the platform. They
include complete routing details and beneficial owner information. The rails available depend on the account's
currency: USD accounts support Wire, ACH push, and RTP/FedNow; CAD accounts support EFT. See
Rails for the supported rails by region.

Each deposit bank account links to a single bank-level platform fiat account. Funds deposited or withdrawn flow
through the linked fiat account's platform_balance and platform_available. Deposit bank accounts do not hold
funds directly.

Key points:

  • Deposit bank accounts can be created for US and Canadian banks.
  • Only one deposit bank account can be created for each platform fiat account.
  • Transfers into a deposit bank account are never initiated by the Cybrid platform; they are always initiated
    externally.

Overview

Partners can create a bank-level deposit bank account to deposit funds into their bank-level fiat account. Follow
these steps:

Step 1: Verify your fiat platform account

Ensure your bank has a fiat platform account. List existing accounts with:

GET /api/accounts?owner=bank&type=fiat

{
  "total": 1,
  "page": 0,
  "per_page": 10,
  "objects": [
    {
      "created_at": "datetime",
      "updated_at": "datetime",
      "type": "fiat",
      "guid": "bank_fiat_account_guid",
      "asset": "USD",
      "name": "string",
      "bank_guid": "bank_guid",
      "platform_balance": 0,
      "platform_available": 0,
      "state": "created",
      "labels": null
    }
  ]
}

If no fiat account exists, create one via POST /api/accounts:

{
  "type": "fiat",
  "asset": "USD",
  "name": "string"
}
{
  "created_at": "datetime",
  "updated_at": "datetime",
  "type": "fiat",
  "guid": "account_guid",
  "asset": "USD",
  "name": "string",
  "bank_guid": "bank_guid",
  "platform_balance": 0,
  "platform_available": 0,
  "state": "storing",
  "labels": null
}

Step 2: Create the deposit bank account

Create a main type deposit bank account linked to the fiat account. Cybrid opens a routable bank account at the
partner bank on your behalf, including routing details.

POST /api/deposit_bank_accounts

{
  "type": "main",
  "account_guid": "bank_fiat_account_guid"
}
{
  "created_at": "datetime",
  "updated_at": "datetime",
  "guid": "deposit_bank_account_guid",
  "type": "main",
  "bank_guid": "bank_guid",
  "customer_guid": null,
  "account_guid": "bank_fiat_account_guid",
  "asset": "USD",
  "state": "created",
  "unique_memo_id": "unique_memo_id",
  "counterparty_name": "PARTNER NAME",
  "counterparty_address": {
    "street": "123 Main St.",
    "street2": null,
    "city": "New York",
    "subdivision": "NY",
    "postal_code": "10001",
    "country_code": "US"
  },
  "account_details": [
    {
      "account_number": "XXXXXXXXX"
    }
  ],
  "routing_details": [
    {
      "routing_number": "XXXXXXXXX",
      "routing_number_type": "ABA"
    }
  ],
  "labels": null
}

The example above shows a US account with ABA routing details. A Canadian bank-level account linked to a CAD
fiat account returns asset: CAD with CPA routing details (an 8-digit Canadian institution and transit number)
instead.

Step 3: Provide beneficiary details

The counterparty details are not automatically populated for bank-level deposit bank accounts. Contact Cybrid support
via your Slack channel and provide:

  • Legal Business Name
  • Registered Business Address
  • Contact Email Address
  • Contact Phone Number

After Cybrid updates the information, the account is ready for use.

ℹ️

Manual PII setup

PII must be manually provided and set for bank-level deposit bank accounts.

Delete a deposit bank account

Delete a deposit bank account when it is no longer needed. Deletion also closes the associated account at the
underlying provider.

DELETE /api/deposit_bank_accounts/{deposit_bank_account_guid}

This request requires the deposit_bank_accounts:execute scope.

DELETE /api/deposit_bank_accounts/{deposit_bank_account_guid}
Authorization: Bearer YOUR_TOKEN
{
  "guid": "deposit_bank_account_guid",
  "state": "deleting"
}

The request returns the deposit bank account in state: deleting (HTTP 200). The platform then closes the account
asynchronously. Poll GET /api/deposit_bank_accounts/{deposit_bank_account_guid} until state: deleted.

Deleting an account that is not in a deletable state returns HTTP 422, and deleting an account that does not exist
returns HTTP 404.

State

StateDescription
deletingThe Platform is deleting the deposit bank account and closing the associated provider account
deletedThe Platform has deleted the deposit bank account

Deleted deposit bank accounts remain in GET /api/deposit_bank_accounts listings with state: deleted. Because
each fiat account can have only one deposit bank account, delete the existing account before creating a replacement
for the same fiat account.

Funding your reserve account

This deposit bank account is linked to your bank-level fiat account and is separate from the deposit bank account
used to fund your reserve account.

Your reserve account has its own deposit bank account, which is automatically created and associated with it when
your production bank is provisioned. To fund your reserve, use that account's routing details directly — no book
transfer is required. See Reserve Account for full details.


Did this page help you?