Authentication
Token-Based Authentication
Login: Use the /auth/login endpoint to authenticate with email and password (base64-encoded) to receive X-Access-Token and X-Refresh-Token.
Refresh Tokens: Use /auth/refresh/token with the X-Refresh-Token to obtain new access tokens.
Logout: Invalidate tokens via /auth/logout.
Headers:
X-Access-Token: Required for authenticated requests.
X-Refresh-Token: Used for token refresh.
Example: X-Access-Token: {{access-token}}
Sample Login Request
{
"email": "bWVyY2hhbnQxQG1haWxpbmF0b3IuY29t",
"password": "cGFzc3dvcmQ="
}
Sample Response
{
"status": true,
"data": {
"id": "425bc461-9b6c-4036-b47a-9d96e4f21eba",
"role": "USER",
"email": "[email protected]",
"lastName": "Obagunwa",
"firstName": "Samson",
"createdAt": "2021-08-16T22:59:27.026Z",
"updatedAt": "2022-05-03T11:01:11.923Z"
},
"merchant": {
"email": "[email protected]",
"id": "e84a4677-3158-40ba-8967-f523c2315cf9",
"lastName": "Obagunwa",
"mode": "SANDBOX",
"role": "Admin",
"firstName": "Samson",
"owner": false,
"review": "PENDING",
"businessName": "Caleb",
"businessType": "Restaurants",
"createdAt": "2022-05-03T10:18:19.172Z",
"updatedAt": "2022-05-03T10:18:19.172Z"
}
}
Headers include X-Access-Token and X-Refresh-Token for subsequent requests.
API Endpoints
Authentication
Login
Endpoint: {{base-url}}/auth/login
Method: POST
Description: Authenticate a merchant and receive access and refresh tokens.
Request Body:
{ "email": "bWVyY2hhbnQxQG1haWxpbmF0b3IuY29t", "password": "cGFzc3dvcmQ=" }
Response: 200 OK with token headers and user/merchant data (see above).
Logout
Endpoint: {{base-url}}/auth/logout
Method: POST
Description: Invalidate the current session tokens.
Headers:
X-Access-Token: {{access-token}}
X-Refresh-Token: {{refresh-token}}
Response: 200 OK (no body).
Forget Password
Endpoint: {{base-url}}/auth/password/forget
Method: POST
Description: Request a password reset code via email.
Request Body:
{ "email": "[email protected]" }
Response: 200 OK
{ "status": true, "message": "Your reset code has been sent to your email. It expires in 24 hours." }
Reset Password
Endpoint: {{base-url}}/auth/password/reset
Method: POST
Description: Reset the password using a reset code.
Request Body:
{ "resetCode": "3122489", "password": "password" }
Response: 200 OK
{ "status": true, "message": "Password reset successfully" }
Refresh Tokens
Endpoint: {{base-url}}/auth/refresh/token
Method: POST
Description: Refresh access tokens using a valid refresh token.
Headers: X-Refresh-Token: Cx9AH9ubWqG3JyBz8DZr-E6aTa8GKruNerzJRCDUFbyjM6ef
Response: 200 OK with new X-Access-Token and X-Refresh-Token.
HTTP Method: POST
Headers:
Accept: application/json
Content-Type: application/json
Request Parameters (JSON):
{
"accountNumber": "1018996198",
"beneficiaryBank": "110000",
"userName": "test",
"password": "test"
}
{
"bankCode": "110000",
"accountName": "NNAJI, JOSHUA & VIVIAN",
"transactionReference": "",
"bvn": "",
"responseMessage": "Approved or completed successfully",
"accountNumber": "1018996198",
"responseCode": "00"
}
Sample Implementation
curl -X POST http://154.113.16.142:8882/postingrest/GetNIPAccount \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"accountNumber":"1018996198","beneficiaryBank":"110000","userName":"test","password":"test"}'
The above command returns JSON structured like this:
{
"bankCode": "110000",
"accountName": "NNAJI, JOSHUA & VIVIAN",
"transactionReference": "",
"bvn": "",
"responseMessage": "Approved or completed successfully",
"accountNumber": "1018996198",
"responseCode": "00"
}
Last updated