---
url: /docs/fiat/virtual-accounts.md
description: >-
  What a BlindPay virtual account is, the available account types, the approval
  flow, and what each status means.
---

A virtual account is a dedicated bank account issued in a customer's name. US virtual accounts come with their own routing number and account number, so payers can send ACH, wire, or SWIFT transfers directly to your customer. Brazilian virtual accounts support local rails such as Pix, TED, and Boleto. Every incoming deposit to a virtual account automatically creates a payin, and settlement lands in the stablecoin wallet you linked when you created the account.

## How it works

Each virtual account belongs to one customer and is linked to one blockchain wallet, which is where the settled stablecoin lands. A customer can hold multiple virtual accounts. Behind the scenes, deposits convert to stablecoin automatically; as a bank-rails integration you only need to think in terms of the account's routing and account number, or Pix key.

### Available account types

| Type | Payment methods | Countries | SLA | Cost |
| --- | --- | --- | --- | --- |
| US (individuals and businesses) | ACH, Wire, SWIFT | US and foreign | 24 hours | $1.50/mo per account |
| US (businesses, foreign senders) | ACH, RTP, Wire, SWIFT | Foreign only | 3-5 business days | $1.50/mo per account |
| US (businesses, US senders) | ACH, Wire, SWIFT | US only | 3-5 business days | $1.50/mo per account |
| Brazil | Pix, TED, Boleto | Brazil and foreign | Instant | TBD |

### Approval process

After a virtual account is created via the API, it goes through a two-stage review:

1. **Compliance review.** The virtual account starts in `pending_review` status while BlindPay's compliance team reviews the application.
2. **Bank review.** Once compliance approves, the account moves to `verifying` while BlindPay's banking partner does final approval.

Issuance SLAs vary by account type, see the table above. Approval is not guaranteed at either stage: both BlindPay's compliance team and the banking partner reserve the right to reject an application. On a development instance, virtual accounts skip both stages and are created directly in `approved` status.

### Statuses

| Status | Description |
| --- | --- |
| `pending_review` | The virtual account has been created and is awaiting compliance review. |
| `verifying` | Compliance approved. The virtual account has been submitted to the bank. |
| `approved` | The bank has approved the virtual account. It is now active, with real routing and account numbers, and the `virtualAccount.complete` webhook has fired. |
| `rejected` | The virtual account was rejected during compliance or bank review. |

## Next

* [Create a virtual account](/fiat/virtual-accounts-create): prerequisites, required fields, the create request, and webhooks.

## Related

* [Bank transfer in](/fiat/receive)
* [Blockchain wallets](/stablecoin/blockchain-wallets)
* [Knowledge base: virtual account requirements](/kb/virtual-accounts)
* [Learn: webhooks](/learn/webhooks)
