Skip to content

Business & payments

Bank account verification and NUBAN name enquiry

Resolve the holder name on a 10-digit NUBAN account through NIBSS name enquiry and match it to the name you expect before paying out.

What it does

Bank Account Verification, in detail.

Name match, not just lookup

Send the expected name and receive name_match with a masked account name, so mismatched payouts can be blocked.

Banks and wallets

Commercial banks, microfinance banks and mobile money operators, addressed by CBN bank code from GET /v1/banks.

Bulk before payouts

Verify thousands of accounts in one bulk job before a disbursement run.

Priced for volume

Account verification is priced to run on every beneficiary, every time.

How it works

From request to decision.

  1. 1

    Collect account and bank

    Take the 10-digit NUBAN and the bank code.

  2. 2

    POST /v1/verify/account

    Optionally include match.name.

  3. 3

    Release or hold

    Release on name_match true and route mismatches to review.

Routing and providers

Account names are resolved through NIBSS ICAD Name Enquiry.

Use it

One request. One normalized response.

Call POST /v1/verify/account through @speedmap/node, speedmap for Python, or the verify_account tool in Speedmap Connect.

Request
curl -X POST http://localhost:4000/v1/verify/account \
  -H "Authorization: Bearer sk_test_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "account_number": "0123456789",
  "bank_code": "058",
  "match": {
    "name": "Clarke Griffin"
  }
}'
Response · 200 OK
{
  "reference_id": "spm_a4061a21d1d5360c4ea736ba",
  "object": "verification",
  "product": "account",
  "method": "account_name_enquiry",
  "status": "verified",
  "match": true,
  "mode": "sandbox",
  "subject": "******6789",
  "summary": {
    "account_name_masked": "A***** C***** O*****",
    "bank_name": "Guaranty Trust Bank",
    "name_match": true
  },
  "consent": {
    "mechanism": "not_required",
    "consent_id": null
  }
}

Use cases

Where Nigerian teams use it.

Disbursements and payouts

Stop misdirected transfers by confirming the beneficiary before money moves.

Seller settlement

Check the settlement account belongs to the verified seller, at onboarding and on every change.

Payroll and vendor setup

Verify supplier and employee accounts in bulk at setup.

Refunds and claims

Confirm a customer-supplied refund or claim account belongs to them.

Part of:LendingPayments & payoutsMarketplacesInsuranceHR & gig platformsGovernment & agencies

What you get back

The fields you will read.

  • summary.account_name_masked

    Meaning
    The holder name, masked
  • summary.name_match

    Meaning
    Word-by-word comparison with the name you sent (null when you sent none)
  • summary.bank_name

    Meaning
    Resolved from the bank code
  • subject

    Meaning
    The account number, masked

Assertion tier

Masked name and match flag.

Full tier

Adds data.account_name in clear and data.bvn_linked for workspaces on the full tier.

Pricing

Billed per live check on the Scale up plan. Failed calls and idempotent retries are never billed.

FAQ

Bank Account Verification questions.

Need more detail? Read the documentation or talk to our team.

How is the name compared?
Every word you send must appear in the account name, ignoring case, punctuation and order. “Griffin Clarke” matches “CLARKE ELIZA GRIFFIN”.
Can I verify accounts in bulk?
Yes. Up to 10,000 accounts per job through the API, a dashboard CSV upload or Speedmap Connect.

Start verifying in minutes. Go live when you’re ready.

Create your account in under a minute and explore the full dashboard. We switch your workspace live after a short compliance review.