---
updatedAt: 2026-02-17T10:17:57.000Z
agentTools:
  projectIndex: https://docs.getanchor.co/llms.txt
---

# 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` | `/pay/reserved-account` |

<Callout icon="ℹ️" theme="info">
  Currently, the `/pay/reserved-account` endpoint is only available to organizations with payment program in production environment.
</Callout>

Sample request payload and response payloads.

```curl Create Reserved Account
curl --location 'https://api.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@email.com",
                    "bvn": "22222222226"
                }
            }
        }
    }
}'
```
```curl Response Payload
{
    "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

1. Please visit [Onboarding ](https://docs.getanchor.co/docs/overview-15)on how to send a POST request to Create a Customer.
2. 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` | `/pay/reserved-account` |

Sample request payload and response payloads.

```curl Create Reserved Account
curl --location 'https://api.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": "17256183549438442741-anc_ind_cst",
                    "type": "IndividualCustomer"
                }
            }
        }
    }
'
```
```curl Response Payload
{
    "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 <support@getanchor.co>

<br />

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

<br />

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

```json
curl --location 'https://api.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@email.com",
                    "bvn": "22222222226"
                }
            }
        },
        "relationships": {
            "payoutAccount":{
                "data":{
                    "id": "17266513044500-anc_subacc",
                    "type": "SubAccount"
                }
            }
        }
    }
}'
```