Beneficiary Management Guide
Create validated beneficiary records with the merged Beneficiary service, manage readiness states, and reuse approved beneficiaries safely across payout flows.
Scaling Beneficiary Management
Create validated beneficiary records with the merged Beneficiary service, match the right bank-routing or stablecoin fields to each corridor, and reuse approved beneficiaries safely across payout flows.
✅ Before you create a beneficiary
Complete these steps first:
- Confirm the payout country and currency for the transfer you want to send.
- Collect the bank-routing fields required for that corridor.
- Decide whether you are creating a bank beneficiary or a stablecoin beneficiary.
- Get the
currencyIdand choose the correctpaymentModefor the destination. - Use the Beneficiary sandbox host:
https://api-beneficiary-sandbox.vertofx.com.
graph TD
A[Partner App] -->|Query| B{Country Rules}
B -->|US| C[ABA/Routing]
B -->|UK| D[Sort Code]
B -->|EU| E[IBAN]
C --> F[POST /recipients]
D --> F
E --> F
1️⃣ Match the corridor to the correct destination data
| Destination type | Required setup | What to validate |
|---|---|---|
| Local bank | accountNumber, bankCode, bankName, and bankAddress.countryCode | Account number and bank-code format for the currency corridor. |
| International bank | Local bank fields plus beneficiaryAddress.addressLine1 and beneficiaryAddress.countryCode | SWIFT, IBAN, routing, address, and country requirements where applicable. |
| Mobile money | Bank-style account fields using the supported mobile money format | Currency-specific account number format, such as mobile number rules. |
| Stablecoin | Wallet address, blockchain, stablecoin currency, and wallet hosting details | Valid 0x wallet address, supported token, and hosting information. |
| HK bank | Bank-style account fields for Hong Kong bank destinations | Bank code, account number, and address data required by the corridor. |
Validate these fields before you create the beneficiary. Most payout failures start with incorrect, incomplete, or stale destination data.
🧬 Beneficiary Status Workflow
When a beneficiary is created, it enters a validation state machine. Use only approved, active beneficiaries for payout selection unless your workflow explicitly supports review handling.
- Pending: Beneficiary has been submitted and is awaiting review or verification.
- Approved: Beneficiary is available for supported payment flows, subject to
isAccountActive,isArchived, andisUpdateRequiredchecks. - Rejected: Beneficiary failed verification or cannot be used without correction.
Check these readiness fields before showing a beneficiary in a payment UI:
| Field | How to use it |
|---|---|
verificationState | Use approved beneficiaries for payment flows. Treat pending and rejected as non-ready states. |
isAccountActive | Hide or disable inactive beneficiary accounts. |
isArchived | Hide archived beneficiaries from selection flows. |
isUpdateRequired | Route beneficiaries that require updates into a remediation flow before use. |
paymentMode | Confirm the beneficiary supports the required payout or FX payment mode. |
2️⃣ Create the beneficiary object
Create the beneficiary before you initiate the payout so you can validate and store the destination details once.
curl --request POST https://api-beneficiary-sandbox.vertofx.com/recipients \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"currencyId": 4,
"beneficiaryType": "company",
"paymentMode": "LOCAL",
"partyType": "Third_Party",
"accountNumber": "9988001122",
"bankCode": "112233",
"bankName": "Beneficiary Bank",
"companyName": "Jane Doe Consulting",
"bankAddress": {
"countryCode": "GB"
},
"beneficiaryAddress": {
"countryCode": "GB",
"city": "London",
"postCode": "SW1A 1AA",
"addressLine1": "10 Example Street",
"email": "[email protected]"
}
}'When this request succeeds, store the returned beneficiary id, reference, paymentMode, and verificationState. Reuse the beneficiary for later payouts instead of recreating the same recipient every time.
3️⃣ Verify the account where supported
For supported regions, Verto can perform account-name validation to help confirm destination details before you create or use a beneficiary.
For Nigerian bank accounts, use Get account name before beneficiary creation when you need to confirm the account name tied to an account number and bank code.
Scoped beneficiaries for platform flows
For Atlas Platform partners, keep beneficiary ownership and payment context explicit in your system. Store the beneficiary id, reference, associated customer or company context, and allowed paymentMode so downstream payment flows select the correct destination.
Manage existing beneficiaries
Use the merged Beneficiary service for the full beneficiary lifecycle:
| Task | Endpoint |
|---|---|
| List beneficiaries | Fetch user beneficiaries |
| Create beneficiary | Create beneficiary |
| Retrieve beneficiary details | Fetch beneficiary by ID |
| Update beneficiary | Update beneficiary |
| Delete beneficiary | Delete beneficiary |
Use Fetch beneficiary by ID before payment submission if you need the latest readiness state.
Troubleshooting
| Issue | What to check |
|---|---|
| Beneficiary is rejected | Confirm the routing fields, account number format, stablecoin wallet details, and country or currency data match the target corridor. |
| Beneficiary stays pending | Check whether the corridor requires additional compliance review before approval. |
| Beneficiary cannot be selected for payout | Check verificationState, isAccountActive, isArchived, isUpdateRequired, and paymentMode. |
| Beneficiary needs remediation | Use Update beneficiary and store the latest updateReason. |
| Repeated duplicate beneficiaries | Store and reuse the returned beneficiary id and reference for recurring recipients. |
Updated 10 days ago
