Identity Verification (NIN)
No user is ever issued a real, fundable account number automatically. They apply for one by submitting their NIN. Once Slimpay confirms it, the account is opened under the NIN-verified name — not whatever name the user typed at registration — matching how a bank account gets opened.
Check verification status
/kyc/status
Requires Auth
curl https://app.slimpay.ng/api/v1/kyc/status \
-H "Authorization: Bearer {token}"
/kyc/status
{
"status": true,
"data": {
"nin_verified": false,
"nin_verified_at": null,
"account_issued": false
}
}
Call this right after login, on every app launch — not just once after registration. An account that was verified can later be reset to unverified, so this needs to be checked every time, not cached indefinitely. If it does get reset, any deposit that still lands on the old account number is never auto-credited — it's held for manual review, so a stale cached account number isn't just wrong, it's a dead end for the payer.
Submit a NIN
/kyc/verify-nin
Requires Auth
curl https://app.slimpay.ng/api/v1/kyc/verify-nin \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{ "nin": "12345678901" }'
/kyc/verify-nin
{
"status": true,
"message": "Identity verified — your account number has been issued.",
"data": {
"account_issued": true,
"verified_name": "OBINNA JOHN SAMUEL",
"wallet": {
"virtual_account_number": "8123456789",
"virtual_account_bank": "Wema Bank",
"virtual_account_name": "SLIMPAY-OBINNA JOHN SAMUEL"
}
}
}
verified_name is whatever name comes back from the NIN lookup — it may differ from the name the user typed at registration. That's not an error; the app should surface it, not silently override the user's profile name.
docs