All API requests require an API key and a Bearer token for authentication.
Authorization: Bearer YOUR_TOKEN
X-API-KEY: YOUR_API_KEY
Endpoint: POST /api/v1/register
Request Body:
{
"name": "XXX Sacco",
"email": "xxx@sacco.pro",
"password": "Xxxxx@2025!"
}
Response:
{
"status": "success",
"message": "User registered successfully",
"api_key": "your_api_key_here"
}
Endpoint: POST /api/v1/login
Request Body:
{
"email": "mangu@sacco.pro",
"api_key": "your_api_key_here"
}
Response:
{
"status": "success",
"message": "Login successful",
"token": "your_jwt_token_here"
}
Endpoint: POST /api/v1/cig
Response:
{
"success": true,
"message": "Common Interest Groups",
"data": {
"cig": [
{ "code": "C001", "name": "CIG One", "members": "1" }
]
}
}
Endpoint: POST /api/v1/member
Response:
{
"success": true,
"message": "Members",
"data": [
{
"code": "N001",
"name": "PETER MUCHEMI",
"cig": "C001",
"email": "pmuchemi@gmail.com"
}
]
}
Endpoint: POST /api/v1/contribution
Response:
{
"success": true,
"message": "Contributions",
"data": {
"total": [
{ "member": "N001", "name": "PETER MUCHEMI", "amount": "20000.00" }
]
}
}
Endpoint: POST /api/v1/loan
Response:
{
"success": true,
"message": "Loans",
"data": [
{
"loan": "NVL00001",
"type": "NAVCDP LOANS",
"principal": "12000.00",
"balance": "12000.00",
"status": "Active"
}
]
}
Endpoint: POST /api/v1/repayment
Response:
{
"success": true,
"message": "Repayments",
"data": [
{ "no": "NVLR00001", "member": "N001", "amount": "1250.00", "status": "Pending" }
]
}