---
updatedAt: 2026-10-14T19:00:18.000Z
agentTools:
  projectIndex: https://docs.cybrid.xyz/llms.txt
---

# Deposit Bank Account Requirement

What does every customer fiat account need before it can move funds?

Every customer fiat account on the Cybrid platform must have its own `main` deposit bank account before any funding transfer can complete. This requirement provides per-customer visibility into the flow of funds.

> ❗️ Required for all partners
>
> Every customer fiat account must have a `main` deposit bank account. A deposit or withdrawal on a customer fiat account without one is rejected.

## What's required

A deposit bank account is a routable bank account linked one-to-one to a single customer fiat account. USD accounts use Wire, ACH push, or RTP/FedNow; CAD accounts use EFT. A customer fiat account without a `main` deposit bank account cannot deposit or withdraw — the transfer is rejected.

* **One per fiat account.** Exactly one `main` deposit bank account is created for each customer platform fiat account.
* **US and Canadian banks.** Deposit bank accounts are supported for US and CA banks.
* **Beneficiary details are automatic.** Beneficial owner information is populated from the PII collected during KYC — no extra input required.

## How to provision a deposit bank account

Add one step to your customer onboarding flow: once a customer's fiat account reaches `state: created`, provision a `main` deposit bank account for it, then wait for the deposit bank account to reach `state: created` before initiating transfers.

### 1. Create the deposit bank account

Once the customer's fiat account has reached `state: created`, call `POST /api/deposit_bank_accounts` for it.

```http Request
POST /api/deposit_bank_accounts
Content-Type: application/json
Authorization: Bearer YOUR_TOKEN

{
  "type": "main",
  "customer_guid": "customer_guid",
  "account_guid": "customer_fiat_account_guid"
}
```

### 2. Wait for the deposit bank account to reach `state: created`

The deposit bank account is created asynchronously. Poll `GET /api/deposit_bank_accounts/{deposit_bank_account_guid}` until `state: created`. This is typically quick.

### 3. Fund and withdraw as normal

Once `state: created`, the customer can deposit and withdraw.

## Resolving the no\_deposit\_bank\_account error

Any deposit or withdrawal for a customer fiat account that has no `main` deposit bank account is rejected with:

```json Response
{
  "status": 422,
  "error_message": "Fiat account missing required deposit bank account",
  "message_code": "no_deposit_bank_account"
}
```

A single code — `no_deposit_bank_account` — covers both deposits and withdrawals. To resolve:

1. Create the `main` deposit bank account (see above).
2. Poll `GET /api/deposit_bank_accounts/{deposit_bank_account_guid}` until `state: created`.
3. Retry the transfer.

> ✅ Build automatic recovery
>
> On a `no_deposit_bank_account` response, provision the deposit bank account, wait for `state: created`, and retry — so customers self-heal on their first transfer.

## Next steps

* [Customer Deposit Bank Accounts](https://docs.cybrid.xyz/docs/customer-deposit-bank-accounts) — full reference, fields, and examples.
* [Fund via Deposit Bank Account](https://docs.cybrid.xyz/docs/deposit-bank-account-funding) — funding and withdrawal flows.

Questions? Reach out through your shared Slack channel or your Cybrid contact — our team is happy to help.