Skip to main content
Assess whether someone can borrow, using nothing but their BVN. Numero fronts Nigeria’s credit bureaus — CRC, CreditRegistry, FirstCentral and FICO — so you can pull a full credit picture in one call.

Which endpoint should I use?

credit-summary aggregates all four bureaus in a single request — it’s the one to reach for unless you specifically need a named bureau. Calling the four individually costs more and takes longer.
Pricing is per merchant — check your own rates rather than assuming a list price. Every response tells you exactly what that call cost you in data.walletAmount, and the debit carries data.walletTransactionReference. That’s the authoritative figure; bill your customers from it, not from a number in a doc.

Endpoints

Every one takes the same body — a BVN — and is signed like other money-adjacent calls.

Request

Signature required: Yes

Response

Results come back in the response — credit checks are synchronous, not webhook-driven. The VERIFICATION_NOTIFICATION webhook also fires afterwards carrying the charge, for your own reconciliation; you don’t need to handle it to use these endpoints.
Expect gaps. A bureau returns only what it holds — if someone has no history with a lender, fields come back as null. The field is still there: we return every field the bureau sends, null included, so the shape doesn’t shift between subjects. Treat null as “no data”, not zero.

Getting a numeric score

If you need a number to derive a lending band, use credit-score (or credit-summary, which nests the same score alongside all four bureaus). This is the complete response — exactly what credit-score returns in test mode for BVN 22222222222:
The score is at score.ficoScore.score — a string ("720"), because every normalizedResult value is a string or null. In credit-summary the same values sit one level deeper, under ficodata.score.ficoScore.*. walletAmount above is what this call cost on this account — yours depends on your own pricing. Read it from the response; don’t hard-code it.

The thin-file case — a score you must handle being absent

Same call, BVN 11111111111 (a borrower the bureau knows but has never scored). Every key is still present; the values are null:
success is still true and you are still charged — the bureau answered; the answer is “no score”. Branch on score.ficoScore.score == null, not on success.

Not found

BVN 00000000000. normalizedResult is null — there are no fields, so there’s no map — and you are not charged (walletAmount: null):
The per-bureau endpoints are reports, not scores. credit-crc, credit-registry and credit-first-central return that bureau’s own summary figures — loan counts, amounts borrowed, amounts overdue. A numeric score is not guaranteed on them and can be null even for a borrower with an extensive credit history. Don’t build a band on them; use credit-score or credit-summary.Remember every value is a string"658", not 658. Parse before comparing.

Billing

Each call is billable on success and debited from your wallet (walletAmount in the response). Send an idempotencyKey so a network retry doesn’t bill you twice.