NeratPay Docs

Core API

Virtual accounts

Create one dedicated account per customer from your product. The dashboard lists accounts; creation is API-only.

Create an account

POST /virtual-accounts

Idempotency-Key is required (max 200 characters). The same key returns the original account and does not create another. customerReference is your user id — the same reference returns the account already issued for that user.

FieldRequiredNotes
customerNameYesDisplay name on the account
customerEmailYesCustomer email
customerPhoneYesNigerian phone number
customerBvn or customerNinOne ofExactly 11 digits. Encrypted at rest; never returned
preferredBankYespalmpay, wema-bank, titan-paystack, or test-bank
customerReferenceRecommendedYour stable user id
curl https://api.nerat.app/api/virtual-accounts \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 7c9e2a14-6b31-4f08-9d2e-1a0b6c4d8e11" \
  -d '{
    "customerName": "Amaka Okafor",
    "customerEmail": "amaka@example.com",
    "customerPhone": "08012345678",
    "customerBvn": "12345678901",
    "preferredBank": "palmpay",
    "customerReference": "user-42"
  }'

Response codes

  • 201 — account is active (typical for PalmPay). Number is in the response.
  • 202 — waiting for the number (Wema / Paystack-Titan). Listen for virtualaccount.active.

The account name is your business name, a slash, and the customer name. Limit: 500 new accounts per business per hour.

List accounts

GET/virtual-accounts?page=1&pageSize=8&q=

Get one account

GET/virtual-accounts/:id

Deactivate

POST/virtual-accounts/:id/deactivate

Recheck deposits

Ask NeratPay to look again for a deposit that may not have been recorded.

POST/virtual-accounts/:id/recheck