Skip to main content
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 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

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. 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.
  • 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.

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. 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.

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. 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.

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. 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.

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. 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.

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. 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.

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. 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.

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. 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.

GHS (Ghana)

Payment rail: Bank transfer. Account types: dedicated. When it is ready: Ready immediately. The create call returns the account number. 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.

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. 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.

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. 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.