Reserved Accounts
Anchor Reserved Accounts is a feature that lets you create permanent virtual account numbers for each of your customers, making it easy to receive payments via bank transfers. Every customer gets their own unique 10-digits account number in their name, so payments are automatically linked to them—no need for manual reconciliation or payment references.
Why Use Reserved Accounts?
✔ Instant Payment Matching – Every transfer is tied to a customer, so no mix-ups.
✔ Faster Settlements – Receive payments in real-time.
✔ Better Customer Experience – Customers pay as they would to any regular bank account.
✔ Simpler Reconciliation – No more searching for who sent what.
Supported banks
We currently support 9 Payment Service Bank and Providus Bank.
How to Create a Reserve Account
You can integrate Reserved Accounts using one of two approaches.
Single Request
With single request, you send a request to create a Reserved Account, and we take care of setting up both the customer and the account in one go. You need to pass the customer data and the preferred provider:
Method | Endpoint |
---|---|
POST | {{baseUrl}}/pay/reserved-account |
Sample request payload and response payloads.
curl --location 'https://payment.getanchor.co/pay/reserved-account' \
--header 'Content-Type: application/json' \
--header 'x-anchor-key: .' \
--data '{
"data": {
"type": "ReservedAccount",
"attributes": {
"provider": "ninepsb",
"customer": {
"individualCustomer": {
"fullName": {
"firstName": "Bright",
"lastName": "John-Olorunoje"
},
"email": "[email protected]",
"bvn": "22222222226"
}
}
}
}
}'
{
"data": {
"id": "17292389118727809633-anc_ra",
"type": "ReservedAccount",
"attributes": {
"bank": {
"provider": "ninepsb",
"name": "9 Payment Service Bank"
},
"accountName": "John Doe",
"accountNumber": "5031000017"
},
"relationships": {
"merchant": {
"data": {
"id": "17218985830710-anc_og",
"type": "Merchant"
}
},
"customer": {
"data": {
"id": "17256183549438442741-anc_ind_cst",
"type": "Customer"
}
}
}
}
}
Multi Request
- Please visit Onboarding on how to send a POST request to Create a Customer.
- To create a reserved virtual account for a customer, send a POST request to our Create Reserved Account endpoint. You only need to pass the preferred provider and
customerid
as relationship object
Method | Endpoint |
---|---|
POST | {{baseUrl}}/pay/reserved-account |
Sample request payload and response payloads.
curl --location 'https://payment.getanchor.co/pay/reserved-account' \
--header 'Content-Type: application/json' \
--header 'x-anchor-key: .' \
--data '{
"data": {
"type": "ReservedAccount",
"attributes": {
"provider": "ninepsb"
},
"relationships": {
"customer": {
"data": {
"id": "17256183549ew438442741-anc_ind_cst",
"type": "IndividualCustomer"
}
}
}
}
'
{
"data": {
"id": "17292389118727809633-anc_ra",
"type": "ReservedAccount",
"attributes": {
"bank": {
"provider": "ninepsb",
"name": "9 Payment Service Bank"
},
"accountName": "John Doe",
"accountNumber": "5031000017"
},
"relationships": {
"merchant": {
"data": {
"id": "17218985830710-anc_og",
"type": "Merchant"
}
},
"customer": {
"data": {
"id": "17256183549438442741-anc_ind_cst",
"type": "Customer"
}
}
}
}
}
When the customer attempts to make a transfer to the created account number, the account name will follow the format, Merchant Name / Customer Name.
Account Limit
By default, you can generate up to 1000 reserved accounts for your customers. This limit can be increased upon review of your business and use-case. To increase the limit for your business, please send an email to [email protected]
Handling events
The reservedAccount.created
event is sent on the successful creation of a Reserved Account, while the reservedAccount.failed
event is sent when the account couldn't be created.
Events | Description |
---|---|
reservedAccount.created | This event is delivered to you when a reserved account is created. |
reservedAccount.failed | This event is sent when a request to create deposit account fails. |
Split Payout to a Sub Account from your Reserved Account
For customer that use our sub-ledger account solution, Payout to SubAccount allows you to automatically send the payins received into a Reserved Account to your sub account instead of the main Payout/Settlement account you set on your dashboard.
Add a Subaccount when creating a Reserved account
You can add a subaccount ID
as a relationship to the payload when you're creating a reserved account
curl --location 'https://payment.getanchor.co/pay/reserved-account' \
--header 'Content-Type: application/json' \
--header 'x-anchor-key: .' \
--data '{
"data": {
"type": "ReservedAccount",
"attributes": {
"provider": "ninepsb",
"customer": {
"individualCustomer": {
"fullName": {
"firstName": "Bright",
"lastName": "John-Olorunoje"
},
"email": "[email protected]",
"bvn": "22222222226"
}
}
},
"relationships": {
"payoutAccount":{
"data":{
"id": "17266513044500-anc_subacc",
"type": "SubAccount"
}
}
}
}
}
Updated 10 days ago