9.0 KiB
LuckyChit API Documentation
Base URL
http://localhost:3000/api
Authentication
All protected endpoints require a JWT token in the Authorization header:
Authorization: Bearer <your-jwt-token>
Test Credentials
- Manager: Mobile:
9876543210, Password:password123 - Member: Mobile:
9876543211, Password:password123
Authentication Endpoints
Login
POST /auth/login
Request Body:
{
"mobile_number": "9876543210",
"password": "password123"
}
Response:
{
"success": true,
"message": "Login successful",
"data": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"user": {
"id": "user-id",
"mobile_number": "9876543210",
"full_name": "Test Manager",
"role": "manager"
}
}
}
Get Profile
GET /auth/profile
Headers: Authorization: Bearer <token>
Update Profile
PUT /auth/profile
Headers: Authorization: Bearer <token>
Change Password
PUT /auth/change-password
Headers: Authorization: Bearer <token>
Create Member (Manager Only)
POST /auth/create-member
Headers: Authorization: Bearer <token>
Request Body:
{
"mobile_number": "9876543211",
"full_name": "Test Member"
}
Chit Group Management
Create Chit Group (Manager Only)
POST /chit-groups
Headers: Authorization: Bearer <token>
Request Body:
{
"name": "Test Chit Group",
"total_value": 100000,
"monthly_installment": 5000,
"duration_months": 20,
"max_members": 20,
"foreman_commission_percentage": 5,
"draw_date": 15
}
Get Manager's Chit Groups (Manager Only)
GET /chit-groups/manager?status=forming&page=1&limit=10
Headers: Authorization: Bearer <token>
Get Member's Chit Groups
GET /chit-groups/member?status=active&page=1&limit=10
Headers: Authorization: Bearer <token>
Get Chit Group Details
GET /chit-groups/{groupId}
Headers: Authorization: Bearer <token>
Update Chit Group (Manager Only)
PUT /chit-groups/{groupId}
Headers: Authorization: Bearer <token>
Request Body:
{
"name": "Updated Chit Group Name",
"foreman_commission_percentage": 6
}
Delete Chit Group (Manager Only)
DELETE /chit-groups/{groupId}
Headers: Authorization: Bearer <token>
Start Chit Group (Manager Only)
POST /chit-groups/{groupId}/start
Headers: Authorization: Bearer <token>
Get Chit Group Statistics
GET /chit-groups/{groupId}/stats
Headers: Authorization: Bearer <token>
Member Management
Add Member to Group (Manager Only)
POST /members/{groupId}/members
Headers: Authorization: Bearer <token>
Request Body:
{
"mobile_number": "9876543211"
}
Remove Member from Group (Manager Only)
DELETE /members/{groupId}/members/{memberId}
Headers: Authorization: Bearer <token>
Get Group Members
GET /members/{groupId}/members?status=active&page=1&limit=20
Headers: Authorization: Bearer <token>
Get Member Details
GET /members/{groupId}/members/{memberId}
Headers: Authorization: Bearer <token>
Update Member Status (Manager Only)
PUT /members/{groupId}/members/{memberId}/status
Headers: Authorization: Bearer <token>
Request Body:
{
"status": "inactive"
}
Get Member Payment Summary
GET /members/{groupId}/members/{memberId}/payment-summary
Headers: Authorization: Bearer <token>
Payment Management
Record Payment (Manager Only)
POST /payments
Headers: Authorization: Bearer <token>
Request Body:
{
"group_id": "group-id",
"user_id": "user-id",
"month": 9,
"year": 2025,
"amount": 5000,
"payment_method": "upi",
"transaction_id": "TXN123456",
"notes": "Payment received via UPI"
}
Get Group Payments
GET /payments/group/{groupId}?status=success&month=9&year=2025&page=1&limit=20
Headers: Authorization: Bearer <token>
Get Member Payments
GET /payments/group/{groupId}/member/{memberId}?status=success&page=1&limit=20
Headers: Authorization: Bearer <token>
Update Payment Status (Manager Only)
PUT /payments/{paymentId}/status
Headers: Authorization: Bearer <token>
Request Body:
{
"status": "success",
"notes": "Payment confirmed"
}
Get Group Payment Summary
GET /payments/group/{groupId}/summary
Headers: Authorization: Bearer <token>
Get Pending Payments
GET /payments/group/{groupId}/pending
Headers: Authorization: Bearer <token>
WhatsApp Share Endpoints
Share Payment Receipt
POST /share/payment-receipt
Headers: Authorization: Bearer <token>
Request Body:
{
"paymentId": "payment-id"
}
Response:
{
"success": true,
"data": {
"whatsappUrl": "https://wa.me/919876543210?text=...",
"message": "🎉 Payment Successful!...",
"recipient": {
"name": "Member Name",
"mobile": "9876543210"
}
}
}
Share Draw Result
POST /share/draw-result
Headers: Authorization: Bearer <token>
Request Body:
{
"drawId": "draw-id",
"recipientPhone": "9876543210"
}
Share Group Invitation (Manager Only)
POST /share/group-invite
Headers: Authorization: Bearer <token>
Request Body:
{
"groupId": "group-id",
"recipientPhone": "9876543210"
}
Send Payment Reminder (Manager Only)
POST /share/payment-reminder
Headers: Authorization: Bearer <token>
Request Body:
{
"groupId": "group-id",
"memberId": "member-id"
}
Send Bulk Reminders (Manager Only)
POST /share/bulk-reminders
Headers: Authorization: Bearer <token>
Request Body:
{
"groupId": "group-id"
}
Response:
{
"success": true,
"message": "Generated 5 reminder(s)",
"data": {
"total_reminders": 5,
"reminders": [
{
"member": {
"id": "member-id",
"name": "John Doe",
"mobile": "9876543210"
},
"whatsappUrl": "https://wa.me/..."
}
]
}
}
Notification Management
Get Notifications
GET /notifications?page=1&limit=20&type=payment_reminder&status=sent
Headers: Authorization: Bearer <token>
Get Unread Count
GET /notifications/unread-count
Headers: Authorization: Bearer <token>
Response:
{
"success": true,
"data": {
"unread_count": 5
}
}
Mark Notification as Read
PUT /notifications/{notificationId}/read
Headers: Authorization: Bearer <token>
Mark All as Read
PUT /notifications/read-all
Headers: Authorization: Bearer <token>
Delete Notification
DELETE /notifications/{notificationId}
Headers: Authorization: Bearer <token>
Get Notification Stats
GET /notifications/stats
Headers: Authorization: Bearer <token>
Response Format
Success Response
{
"success": true,
"message": "Operation successful",
"data": {
// Response data
}
}
Error Response
{
"success": false,
"message": "Error description"
}
Paginated Response
{
"success": true,
"data": {
"items": [...],
"pagination": {
"currentPage": 1,
"totalPages": 5,
"totalItems": 100,
"itemsPerPage": 20
}
}
}
Status Codes
200- Success201- Created400- Bad Request401- Unauthorized403- Forbidden404- Not Found500- Internal Server Error
Data Models
Chit Group Status
forming- Group is being formed, members can be addedactive- Group is active and draws are happeningcompleted- Group has completed all draws
Member Status
active- Member is active in the groupinactive- Member is temporarily inactiveremoved- Member has been removed from the group
Payment Status
pending- Payment is pendingsuccess- Payment was successfulfailed- Payment failedcancelled- Payment was cancelled
Payment Methods
upi- UPI paymentbank_transfer- Bank transfercash- Cash paymentcheque- Cheque payment
Business Rules
-
Chit Group Creation:
- Total value must equal monthly installment × duration months
- Foreman commission must be between 0% and 20%
- Draw date must be between 1 and 31
-
Member Management:
- Members can only be added while group is in 'forming' status
- Group must have at least 2 members to start
- Members cannot be removed after group starts
-
Payment Management:
- Payment amount must match monthly installment
- Only one payment per member per month
- Payments are automatically linked to member's total paid amount
-
Access Control:
- Managers can manage their own groups only
- Members can view groups they belong to
- All operations require valid JWT token