Authentication
Slimpay uses Laravel Sanctum bearer tokens. Register or log in to get a token, then send it on every authenticated request.
Register
/auth/register
Public
curl https://app.slimpay.ng/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{
"first_name": "Amaka",
"last_name": "Okonkwo",
"email": "amaka@example.com",
"phone": "08012345678",
"password": "a-strong-password",
"password_confirmation": "a-strong-password"
}'
/auth/register
A wallet is created immediately with a placeholder account number (0000000000). A real, fundable account number is only issued after NIN verification — see Identity Verification. This is deliberate: no account is ever issued without a verified identity attached to it.
Login
/auth/login
Public
curl https://app.slimpay.ng/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{ "email": "amaka@example.com", "password": "a-strong-password" }'
/auth/login
{
"status": true,
"message": "Login successful",
"data": {
"token": "1|k3j2h4g5f6...",
"user": { "id": 1, "first_name": "Amaka", "last_name": "Okonkwo", "email": "amaka@example.com" }
}
}
Using the token
Send the token on every authenticated request as a Bearer header:
curl https://app.slimpay.ng/api/v1/wallet \
-H "Authorization: Bearer 1|k3j2h4g5f6..."
Other account endpoints
| Method | Path | Purpose |
|---|---|---|
| POST | /auth/forgot-password | Send a password reset link |
| POST | /auth/reset-password | Complete a password reset |
| POST | /auth/logout | Revoke the current token |
| GET | /auth/me | Get the authenticated user's profile |
| PUT | /auth/profile | Update name, phone, address, photo |
| PUT | /auth/password | Change account password |
| PUT | /auth/pin | Set or change the 4-digit transaction PIN |
| POST | /auth/verify-pin | Confirm the transaction PIN (used before sensitive actions) |
| POST | /auth/verify-phone | Send an OTP to the account phone number |
| POST | /auth/verify-phone/confirm | Confirm the OTP |
| POST | /auth/device-token | Register an FCM/APNs push token |
/auth/forgot-password
/auth/reset-password
/auth/logout
/auth/me
/auth/profile
/auth/password
/auth/pin
/auth/verify-pin
/auth/verify-phone
/auth/verify-phone/confirm
/auth/device-token
A 4-digit PIN is required on every money-movement endpoint — transfers, withdrawals, and bill purchases. Set it via PUT /auth/pin before attempting those.
docs