> ## Documentation Index
> Fetch the complete documentation index at: https://dev-docs.pagoramp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Virtual Account Requirements

What a customer must have on file before you can open a virtual account, what you get back, and what to expect, by currency. This page is generated from the same definitions the API enforces. To check live availability and requirements for your account, call `GET /virtual-accounts/availability`.

Add any missing detail with `PATCH /customers/{uuid}` and retry. A missing field returns `400` with the exact field names. See the [customers guide](https://dev-docs.pagoramp.com/customers) for the field reference.

**Dedicated** accounts are permanent and belong to one customer. **Dynamic** accounts are temporary and expect one exact amount.

## At a glance

| Currency | Country | Rail | Account types | Customers | Availability | Guide |
| - | - | - | - | - | - | - |
| NGN | Nigeria | Nigerian bank account (NUBAN) | dedicated, dynamic | Individuals and businesses | Standard | [NGN flow](https://dev-docs.pagoramp.com/ngn-virtual-account.md) |
| USD | United States | ACH, FedNow and wire | dedicated | Individuals and businesses | Standard | [USD flow](https://dev-docs.pagoramp.com/usd-virtual-account.md) |
| EUR | Eurozone | SEPA | dedicated | Individuals and businesses | Standard | [EUR flow](https://dev-docs.pagoramp.com/eur-virtual-account.md) |
| GBP | United Kingdom | Faster Payments | dedicated | Businesses only | Standard | [GBP flow](https://dev-docs.pagoramp.com/gbp-virtual-account.md) |
| MXN | Mexico | SPEI (CLABE) | dedicated | Individuals and businesses | On request | [MXN flow](https://dev-docs.pagoramp.com/mxn-virtual-account.md) |
| BRL | Brazil | Pix (BR code) | dedicated | Individuals and businesses | On request | [BRL flow](https://dev-docs.pagoramp.com/brl-virtual-account.md) |
| COP | Colombia | Bre-B (key) | dedicated | Individuals and businesses | On request | [COP flow](https://dev-docs.pagoramp.com/cop-virtual-account.md) |
| KES | Kenya | Bank transfer | dedicated, dynamic | Individuals and businesses | Standard | [KES flow](https://dev-docs.pagoramp.com/kes-virtual-account.md) |
| GHS | Ghana | Bank transfer | dedicated | Individuals and businesses | Standard | [GHS flow](https://dev-docs.pagoramp.com/ghs-virtual-account.md) |
| CAD | Canada | Interac e-Transfer | dedicated | Individuals and businesses | On request | [CAD flow](https://dev-docs.pagoramp.com/cad-virtual-account.md) |
| TZS | Tanzania | Bank transfer (TIPS, TISS, mobile money) | dedicated | Individuals and businesses | Standard | [TZS flow](https://dev-docs.pagoramp.com/tzs-virtual-account.md) |

## NGN (Nigeria)

Payment rail: Nigerian bank account (NUBAN).

Account types: dedicated, dynamic.

When it is ready: Ready immediately. The create call returns the account number.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email`, `identification.type`, `identification.number` | None |
| individual | dynamic | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email`, `identification.type`, `identification.number` | None |
| business | dynamic | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`nuban` account with `accountName`, `accountNumber`, `bankName`.

If your account is routed through a different bank partner for NGN, it may also ask for `phone`.

* A BVN or NIN is checked when the account is issued, so it must be on the customer first. See [Identification requirements](https://dev-docs.pagoramp.com/identification-requirements-by-country.md).
* Dedicated accounts are permanent. By default any amount from any sender is credited; Pagoramp can hold payments from senders whose name does not match the customer.

Integration steps and examples: [NGN flow](https://dev-docs.pagoramp.com/ngn-virtual-account.md).

## USD (United States)

Payment rail: ACH, FedNow and wire.

Account types: dedicated.

When it is ready: The customer verifies their identity first. The account is ready once that is approved, which can take longer for some customers.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`ach` account with `accountName`, `accountNumber`, `routingNumber`, `bankName`.

* Verification happens on a secure page. The create call returns `status: requires_action` and a `nextStep.url`; send it to your customer. Pass `redirectUrl` to choose where they return afterwards.
* The account stays `requires_action` until verification passes, then becomes `active` and you receive `virtual_account.created`. If it is declined you receive `virtual_account.failed` with the reason.

Integration steps and examples: [USD flow](https://dev-docs.pagoramp.com/usd-virtual-account.md).

## EUR (Eurozone)

Payment rail: SEPA.

Account types: dedicated.

When it is ready: The customer verifies first, then the account goes through an extra review, so it can show `pending` for a while after verification.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`sepa` account with `accountName`, `iban`, `bic`, `bankName`.

* EUR needs extra approval for the customer, on top of the identity check. The create call returns a verification link for it. Business customers are asked for more detail about the business.
* Payments are converted to USD when they arrive, at the rate in force at that moment. `destinationAmount` is what you are settled.

Integration steps and examples: [EUR flow](https://dev-docs.pagoramp.com/eur-virtual-account.md).

## GBP (United Kingdom)

Payment rail: Faster Payments.

Account types: dedicated.

When it is ready: The business verifies first, then the account goes through an extra review, so it can show `pending` for a while after verification.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`faster_payments` account with `accountName`, `accountNumber`, `sortCode`, `bankName`.

* GBP accounts are only available to business customers. Requesting one for an individual returns `422` with `type_unavailable` from the API, and the dashboard marks the currency as not available for that customer.
* The verification asks for business details, owners and directors, and supporting documents.

Integration steps and examples: [GBP flow](https://dev-docs.pagoramp.com/gbp-virtual-account.md).

## MXN (Mexico)

Payment rail: SPEI (CLABE).

Account types: dedicated.

**Enabled on request.** SPEI accounts are switched on per account. Ask Pagoramp to turn them on.

When it is ready: The customer verifies first. The account is ready once they are approved.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`spei` account with `accountName`, `clabe`.

* The CLABE is also returned as `accountNumber`.
* Payments are converted to USD when they arrive, at the rate in force at that moment. `destinationAmount` is what you are settled.

Integration steps and examples: [MXN flow](https://dev-docs.pagoramp.com/mxn-virtual-account.md).

## BRL (Brazil)

Payment rail: Pix (BR code).

Account types: dedicated.

**Enabled on request.** Pix accounts are in beta and are switched on per account. Ask Pagoramp to turn them on.

When it is ready: The customer verifies first. Business customers also supply formation, source of funds and address documents. The account is ready once they are approved.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`pix` account with `pixCode`.

* Pix supports payments from the account holder and from approved third parties only, so payments from other senders may be held for review.
* The Pix code can also be shown as a QR code by your own UI.

Integration steps and examples: [BRL flow](https://dev-docs.pagoramp.com/brl-virtual-account.md).

## COP (Colombia)

Payment rail: Bre-B (key).

Account types: dedicated.

**Enabled on request.** Bre-B accounts are in beta and are switched on per account. Ask Pagoramp to turn them on.

When it is ready: The customer verifies first. The account is ready once they are approved.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`bre_b` account with `breBKey`.

* The key is returned as `breBKey`.
* Payments are converted to USD when they arrive, at the rate in force at that moment. `destinationAmount` is what you are settled.

Integration steps and examples: [COP flow](https://dev-docs.pagoramp.com/cop-virtual-account.md).

## KES (Kenya)

Payment rail: Bank transfer.

Account types: dedicated, dynamic.

When it is ready: Dedicated accounts are issued shortly after the request and show `pending` until then. Dynamic accounts are ready immediately.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | `phone` |
| individual | dynamic | `firstname`, `lastname`, `email` | `phone` |
| business | dedicated | `businessName`, `email` | `phone` |
| business | dynamic | `businessName`, `email` | `phone` |

**You get back** (`bankDetails`):

`bank_transfer` account with `accountName`, `accountNumber`, `bankName`.

* A dedicated account is permanent. A dynamic account expects one exact amount and expires (7200 seconds by default, set with `expiresIn`).
* When a dedicated account is still `pending`, wait for `virtual_account.created` before showing details to your customer.

Integration steps and examples: [KES flow](https://dev-docs.pagoramp.com/kes-virtual-account.md).

## GHS (Ghana)

Payment rail: Bank transfer.

Account types: dedicated.

When it is ready: Ready immediately. The create call returns the account number.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email` | None |
| business | dedicated | `businessName`, `email` | None |

**You get back** (`bankDetails`):

`bank_transfer` account with `accountName`, `accountNumber`, `bankName`.

* GHS accounts are dedicated only. Dynamic GHS accounts are not available.
* The account name is the customer's name.

Integration steps and examples: [GHS flow](https://dev-docs.pagoramp.com/ghs-virtual-account.md).

## CAD (Canada)

Payment rail: Interac e-Transfer.

Account types: dedicated.

**Enabled on request.** Foreign currency accounts have to be enabled for your account first. Ask Pagoramp to request it.

When it is ready: The customer or business is reviewed before approval, so the account shows `pending` until then.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname`, `email`, `phone`, `dateOfBirth`, `nationality`, `occupation`, `address.line1`, `address.city`, `address.state`, `address.postalCode`, `address.country`, `documents (type id_document)`, `documents (type utility_bill)` | None |
| business | dedicated | `businessName`, `email`, `registrationNumber`, `address.line1`, `address.city`, `address.state`, `address.postalCode`, `address.country`, `owners`, `documents (type incorporation)` | None |

**You get back** (`bankDetails`):

`interac_e_transfer` account with `interacEmail`.

* CAD needs the most detail: date of birth, address, an ID document and a utility bill for individuals, and registration details, owners and incorporation documents for businesses. Documents are https links.
* You confirm that the customer accepted the account terms: `termsAcceptance` on the API, a checkbox in the dashboard.
* Approval takes time. You receive `virtual_account.created` when it is approved or `virtual_account.failed` with the reason.

Integration steps and examples: [CAD flow](https://dev-docs.pagoramp.com/cad-virtual-account.md).

## TZS (Tanzania)

Payment rail: Bank transfer (TIPS, TISS, mobile money).

Account types: dedicated.

When it is ready: Ready immediately. The create call returns the account number.

| Customer type | Account type | Required | Optional |
| - | - | - | - |
| individual | dedicated | `firstname`, `lastname` | None |
| business | dedicated | `businessName` | None |

**You get back** (`bankDetails`):

`bank_transfer` account with `accountName`, `accountNumber`, `bankName`.

* TZS accounts are dedicated only, and need only the customer's name.

Integration steps and examples: [TZS flow](https://dev-docs.pagoramp.com/tzs-virtual-account.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.