← Slimpay.ng

Used by every "Try It" panel across these docs to call app.slimpay.ng for real. Get one from Authentication — register or log in, then paste the token here. Stored only in this browser (localStorage), never sent anywhere but the Slimpay API, and auto-cleared after 8 hours.

Wallet

Identity Verification (NIN)

In a nutshell

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

GET /kyc/status Requires Auth
bash
curl https://app.slimpay.ng/api/v1/kyc/status \
  -H "Authorization: Bearer {token}"
GET /kyc/status
json
{
  "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

POST /kyc/verify-nin Requires Auth
bash
curl https://app.slimpay.ng/api/v1/kyc/verify-nin \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{ "nin": "12345678901" }'
POST /kyc/verify-nin
json
{
  "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"
    }
  }
}
Name mismatches are expected

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.