Payments

Understand how Verto supports inbound collections across wallets, local rails, card flows, and approved third-party acceptance models.

Payments Engine

Use the Payments layer to understand how Verto handles inbound collection flows across local accounts, cards, and approved third-party acceptance models.

✅ Before you build a collection flow

Complete these steps before you accept inbound money:

  1. Decide whether your collection flow uses local account details, cards, or another approved acceptance method.
  2. Create the wallet that will receive the funds.
  3. If you are collecting for downstream customers, create and approve the relevant sub-account first.
  4. Register webhook endpoints so you can reconcile inbound payment events.

🔀 Payments vs. Send — What's the Difference?

These are two distinct outbound money flow primitives:

Concept💳 Payments🚀 Send
What it isCollection infrastructure — accepting inbound money via virtual accounts or card rails.Real-time external payouts — dispatching capital to beneficiary bank accounts.
DirectionInbound (money comes IN)Outbound (money goes OUT)
When to useAccepting payments from customers.Disbursing funds to suppliers, users, or partners.
💡

Payments = money arriving. Send = money leaving.


🚀 Acceptance Rails

Verto supports three primary collection methods:

1️⃣ Virtual Accounts (Local Rails)

Provide domestic banking details to your customers.

  • Rails: FPS (UK), SEPA (EU), ACH (US), NIP (Nigeria).
  • Pro: Feels domestic to the sender; no cross-border fees.

2️⃣ Card Acceptance

Accept Visa/Mastercard payments natively.

  • Use Case: E-commerce checkout or on-demand invoice payment.

3️⃣ Third-Party Acceptance

Accept funds from entities other than the account owner.

  • Requirement: ⚠️ Advanced Approval.

🗺️ Global Coverage Matrix

CurrencyLocal AccountDirect Debit
GBP (UK)✅ FPS/BACS✅ Yes
EUR (EU)✅ SEPA Instant✅ Yes
USD (US)✅ ACH/Wire✅ Yes
NGN (NG)✅ NIP❌ No
KES (KE)✅ M-Pesa/Bank❌ No

⏱️ Settlement Timelines

When does the capital hit your wallet?

  • Real-Time: KES (M-Pesa), AUD (NPP), SGD (PayNow).
  • T+1 (Next Day): GBP, EUR, NGN.
  • T+2 (Standard): USD Card/ACH.

⚖️ Compliance Guardrails & RFIs

Your ability to collect depends on your Atlas verification level.

  • Standard Partner: Can collect funds for their own corporate operations.
  • Atlas Platform: Can issue unique collection funnels (Virtual Accounts) to thousands of sub-accounts simultaneously.

Programmatic RFIs (Request for Information)

On rare occasions, a high-value transaction may be held pending additional documentation (e.g., an invoice). The RFI process is fully programmatic:

  1. Notification: Verto sends a webhook with subState: "rfi_required".
  2. Submission: You submit the required JSON data and file metadata to POST /payments/{reference}/documents.
  3. Upload: You use the returned secure S3 link to upload the document.
  4. Acceptance: Verto sends a webhook with subState: "rfi_accepted" once verified.

[!IMPORTANT] Settlement Check There may be situations where state: "completed" but subState: "rfi_required". This means funds have moved internally but are blocked from final settlement. Do not provide value to your customer until you receive subState: "rfi_accepted".

Global Clearing Requirements

[!IMPORTANT] Global Clearing: Ultimate Sender is Mandatory If you are operating in Global Clearing mode (i.e., acting as a pass-through entity for your underlying clients), you must include the ultimate_sender object in every outbound payment. This is a regulatory requirement at the correspondent bank level.

Payments missing ultimate_sender in Global Clearing contexts may be rejected by the receiving bank.

Troubleshooting

IssueWhat to check
Funds are collected but your app does not updateConfirm your webhook consumer is subscribed to inbound payment events and only marks funds available at the correct final state.
Customer cannot receive fundsVerify the wallet exists, the account details were issued correctly, and the currency rail is supported.
Transaction is held for reviewCheck whether an RFI is required and do not release value until the hold is resolved.

🎯 Next Steps

Receive (Deep Dive) →
Explore specific regional rails and inbound wallet credit flows.
Exchange →
Swap your collections for other value.