699 lines
13 KiB
Markdown
699 lines
13 KiB
Markdown
|
|
# Digital Ledger API Documentation
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
This document outlines all the APIs required for the Digital Ledger Mobile App backend implementation. The APIs are organized by feature modules.
|
||
|
|
|
||
|
|
## Base URL
|
||
|
|
```
|
||
|
|
https://api.pozo-accounts.com/v1
|
||
|
|
```
|
||
|
|
|
||
|
|
## Authentication
|
||
|
|
All APIs require Bearer token authentication:
|
||
|
|
```
|
||
|
|
Authorization: Bearer <jwt_token>
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 1. USER MANAGEMENT APIs
|
||
|
|
|
||
|
|
### 1.1 User Profile
|
||
|
|
```http
|
||
|
|
GET /user/profile
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"id": "user_123",
|
||
|
|
"name": "Ram Kumar",
|
||
|
|
"email": "ram@business.com",
|
||
|
|
"phone": "+91 98765 43210",
|
||
|
|
"avatar": "RK",
|
||
|
|
"businessName": "Ram's Store",
|
||
|
|
"role": "Business Owner",
|
||
|
|
"createdAt": "2024-01-15T10:30:00Z",
|
||
|
|
"updatedAt": "2024-12-03T14:20:00Z"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 1.2 Update User Profile
|
||
|
|
```http
|
||
|
|
PUT /user/profile
|
||
|
|
```
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "Ram Kumar",
|
||
|
|
"email": "ram@business.com",
|
||
|
|
"phone": "+91 98765 43210",
|
||
|
|
"businessName": "Ram's Store"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 2. DASHBOARD APIs
|
||
|
|
|
||
|
|
### 2.1 Dashboard Summary
|
||
|
|
```http
|
||
|
|
GET /dashboard/summary
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"transactionSummary": {
|
||
|
|
"pendingPayment": {
|
||
|
|
"count": 125,
|
||
|
|
"change": "+8%",
|
||
|
|
"positive": true
|
||
|
|
},
|
||
|
|
"received": {
|
||
|
|
"count": 456,
|
||
|
|
"change": "+12%",
|
||
|
|
"positive": true
|
||
|
|
},
|
||
|
|
"paidOut": {
|
||
|
|
"count": 234,
|
||
|
|
"change": "+5%",
|
||
|
|
"positive": true
|
||
|
|
},
|
||
|
|
"completed": {
|
||
|
|
"count": 892,
|
||
|
|
"change": "+15%",
|
||
|
|
"positive": true
|
||
|
|
},
|
||
|
|
"cancelled": {
|
||
|
|
"count": 23,
|
||
|
|
"change": "-3%",
|
||
|
|
"positive": false
|
||
|
|
}
|
||
|
|
},
|
||
|
|
"financialOverview": {
|
||
|
|
"totalIncome": 328000,
|
||
|
|
"totalExpense": 231000,
|
||
|
|
"netBalance": 97000,
|
||
|
|
"monthlyData": [
|
||
|
|
{
|
||
|
|
"month": "Jan",
|
||
|
|
"income": 45000,
|
||
|
|
"expense": 32000
|
||
|
|
}
|
||
|
|
]
|
||
|
|
},
|
||
|
|
"quickStats": {
|
||
|
|
"totalCustomers": 248,
|
||
|
|
"customerGrowth": "+12%",
|
||
|
|
"activeTransactions": 89,
|
||
|
|
"pendingApproval": 23,
|
||
|
|
"netBalance": 97000,
|
||
|
|
"cashflowStatus": "positive"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 3. CONTACT MANAGEMENT APIs (Customers & Suppliers)
|
||
|
|
|
||
|
|
### 3.1 Get All Contacts
|
||
|
|
```http
|
||
|
|
GET /contacts?page=1&limit=10&search=&balanceType=all&contactType=all
|
||
|
|
```
|
||
|
|
**Query Parameters:**
|
||
|
|
- `page`: Page number (default: 1)
|
||
|
|
- `limit`: Items per page (default: 10)
|
||
|
|
- `search`: Search by name/phone
|
||
|
|
- `balanceType`: all|credit|debit
|
||
|
|
- `contactType`: all|C|S (C=Customer, S=Supplier)
|
||
|
|
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"contacts": [
|
||
|
|
{
|
||
|
|
"id": "contact_001",
|
||
|
|
"name": "Deepa",
|
||
|
|
"phone": "98755 43210",
|
||
|
|
"email": "deepa@example.com",
|
||
|
|
"address": "123 Main St",
|
||
|
|
"avatar": "D",
|
||
|
|
"balance": 800,
|
||
|
|
"balanceType": "credit",
|
||
|
|
"contactType": "C",
|
||
|
|
"status": "Active",
|
||
|
|
"lastTransaction": "Payment received",
|
||
|
|
"lastTransactionDate": "2024-12-03T14:30:00Z",
|
||
|
|
"totalTransactions": 24,
|
||
|
|
"createdAt": "2024-01-15T10:30:00Z"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"pagination": {
|
||
|
|
"currentPage": 1,
|
||
|
|
"totalPages": 5,
|
||
|
|
"totalItems": 50,
|
||
|
|
"hasNext": true,
|
||
|
|
"hasPrev": false
|
||
|
|
},
|
||
|
|
"summary": {
|
||
|
|
"customers": {
|
||
|
|
"total": 30,
|
||
|
|
"totalReceivable": 82000,
|
||
|
|
"totalPayable": 16700,
|
||
|
|
"active": 28
|
||
|
|
},
|
||
|
|
"suppliers": {
|
||
|
|
"total": 20,
|
||
|
|
"totalReceivable": 5000,
|
||
|
|
"totalPayable": 62500,
|
||
|
|
"active": 18
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.2 Create Contact
|
||
|
|
```http
|
||
|
|
POST /contacts
|
||
|
|
```
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "John Doe",
|
||
|
|
"phone": "+91 98765 43210",
|
||
|
|
"email": "john@example.com",
|
||
|
|
"address": "123 Main St, City",
|
||
|
|
"contactType": "C",
|
||
|
|
"initialBalance": 0,
|
||
|
|
"balanceType": "credit"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.3 Get Contact Details
|
||
|
|
```http
|
||
|
|
GET /contacts/{contactId}
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"id": "contact_001",
|
||
|
|
"name": "Deepa",
|
||
|
|
"phone": "98755 43210",
|
||
|
|
"email": "deepa@example.com",
|
||
|
|
"address": "123 Main St",
|
||
|
|
"avatar": "D",
|
||
|
|
"balance": 800,
|
||
|
|
"balanceType": "credit",
|
||
|
|
"contactType": "C",
|
||
|
|
"status": "Active",
|
||
|
|
"createdAt": "2024-01-15T10:30:00Z",
|
||
|
|
"transactions": [
|
||
|
|
{
|
||
|
|
"id": "txn_001",
|
||
|
|
"date": "2024-12-02T00:00:00Z",
|
||
|
|
"type": "credit",
|
||
|
|
"amount": 500,
|
||
|
|
"note": "Invoice payment",
|
||
|
|
"paymentMethod": "UPI",
|
||
|
|
"status": "completed"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.4 Update Contact
|
||
|
|
```http
|
||
|
|
PUT /contacts/{contactId}
|
||
|
|
```
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"name": "John Doe Updated",
|
||
|
|
"phone": "+91 98765 43210",
|
||
|
|
"email": "john.updated@example.com",
|
||
|
|
"address": "456 New St, City"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 3.5 Delete Contact
|
||
|
|
```http
|
||
|
|
DELETE /contacts/{contactId}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 4. TRANSACTION MANAGEMENT APIs
|
||
|
|
|
||
|
|
### 4.1 Get All Transactions
|
||
|
|
```http
|
||
|
|
GET /transactions?page=1&limit=10&type=all&status=all&dateFrom=&dateTo=
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"transactions": [
|
||
|
|
{
|
||
|
|
"id": "txn_001",
|
||
|
|
"contactId": "contact_001",
|
||
|
|
"contactName": "Rajesh Kumar",
|
||
|
|
"contactAvatar": "RK",
|
||
|
|
"contactType": "C",
|
||
|
|
"category": "Payment",
|
||
|
|
"type": "Credit",
|
||
|
|
"amount": 45000,
|
||
|
|
"date": "2024-05-30T00:00:00Z",
|
||
|
|
"status": "Completed",
|
||
|
|
"paymentMethod": "UPI",
|
||
|
|
"note": "Invoice payment"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"pagination": {
|
||
|
|
"currentPage": 1,
|
||
|
|
"totalPages": 10,
|
||
|
|
"totalItems": 100
|
||
|
|
},
|
||
|
|
"summary": {
|
||
|
|
"pendingPayments": 34000,
|
||
|
|
"receivedPayments": 550870,
|
||
|
|
"statusCounts": {
|
||
|
|
"waitingPayment": 435,
|
||
|
|
"onProcess": 234,
|
||
|
|
"onDelivery": 456,
|
||
|
|
"completed": 675,
|
||
|
|
"cancelled": 675
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4.2 Create Transaction
|
||
|
|
```http
|
||
|
|
POST /transactions
|
||
|
|
```
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"contactId": "contact_001",
|
||
|
|
"type": "credit",
|
||
|
|
"amount": 1000,
|
||
|
|
"note": "Payment received",
|
||
|
|
"paymentMethod": "Cash",
|
||
|
|
"date": "2024-12-03T00:00:00Z",
|
||
|
|
"category": "Payment"
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4.3 Update Transaction
|
||
|
|
```http
|
||
|
|
PUT /transactions/{transactionId}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 4.4 Delete Transaction
|
||
|
|
```http
|
||
|
|
DELETE /transactions/{transactionId}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 5. CASHBOOK APIs
|
||
|
|
|
||
|
|
### 5.1 Get Cashbook Entries
|
||
|
|
```http
|
||
|
|
GET /cashbook?page=1&limit=10&type=all&dateFrom=&dateTo=
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"entries": [
|
||
|
|
{
|
||
|
|
"id": "cb_001",
|
||
|
|
"time": "10:22 AM",
|
||
|
|
"date": "2024-12-03T00:00:00Z",
|
||
|
|
"type": "out",
|
||
|
|
"paymentType": "ONLINE",
|
||
|
|
"description": "Office Supplies Purchase",
|
||
|
|
"category": "Expenses",
|
||
|
|
"amount": 1200,
|
||
|
|
"attachments": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"summary": {
|
||
|
|
"totalIn": 13500,
|
||
|
|
"totalOut": 1550,
|
||
|
|
"netBalance": 11950,
|
||
|
|
"totalTransactions": 4
|
||
|
|
},
|
||
|
|
"todaySummary": {
|
||
|
|
"todayIn": 5000,
|
||
|
|
"todayOut": 1200,
|
||
|
|
"netToday": 3800
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5.2 Create Cashbook Entry
|
||
|
|
```http
|
||
|
|
POST /cashbook
|
||
|
|
```
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"type": "in",
|
||
|
|
"amount": 5000,
|
||
|
|
"description": "Sales Revenue",
|
||
|
|
"category": "Income",
|
||
|
|
"paymentType": "CASH",
|
||
|
|
"date": "2024-12-03T00:00:00Z",
|
||
|
|
"attachments": ["file_url_1", "file_url_2"]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5.3 Update Cashbook Entry
|
||
|
|
```http
|
||
|
|
PUT /cashbook/{entryId}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5.4 Delete Cashbook Entry
|
||
|
|
```http
|
||
|
|
DELETE /cashbook/{entryId}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 6. EXPENSE MANAGEMENT APIs
|
||
|
|
|
||
|
|
### 6.1 Get All Expenses
|
||
|
|
```http
|
||
|
|
GET /expenses?page=1&limit=10&category=&status=&dateFrom=&dateTo=
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"expenses": [
|
||
|
|
{
|
||
|
|
"id": "exp_001",
|
||
|
|
"title": "Inventory Restock",
|
||
|
|
"vendor": "Fresh Farm Wholesale",
|
||
|
|
"category": "Inventory",
|
||
|
|
"date": "2024-12-03T00:00:00Z",
|
||
|
|
"paymentType": "UPI",
|
||
|
|
"amount": 18500,
|
||
|
|
"status": "Settled",
|
||
|
|
"isFixedCommitment": false,
|
||
|
|
"attachments": []
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"summary": {
|
||
|
|
"totalSpent": 65000,
|
||
|
|
"recurringExpenses": 37400,
|
||
|
|
"pendingAmount": 37650,
|
||
|
|
"totalExpenses": 5
|
||
|
|
},
|
||
|
|
"categories": ["Inventory", "Fixed Cost", "Logistics", "Utilities", "Supplies"]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6.2 Create Expense
|
||
|
|
```http
|
||
|
|
POST /expenses
|
||
|
|
```
|
||
|
|
**Request Body:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"title": "Office Rent",
|
||
|
|
"vendor": "Property Owner",
|
||
|
|
"category": "Fixed Cost",
|
||
|
|
"amount": 25000,
|
||
|
|
"paymentType": "Bank Transfer",
|
||
|
|
"date": "2024-12-01T00:00:00Z",
|
||
|
|
"status": "Scheduled",
|
||
|
|
"isFixedCommitment": true,
|
||
|
|
"attachments": []
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6.3 Update Expense
|
||
|
|
```http
|
||
|
|
PUT /expenses/{expenseId}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 6.4 Delete Expense
|
||
|
|
```http
|
||
|
|
DELETE /expenses/{expenseId}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 7. LEDGER APIs
|
||
|
|
|
||
|
|
### 7.1 Get Ledger Summary
|
||
|
|
```http
|
||
|
|
GET /ledger/summary
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"customers": {
|
||
|
|
"totalReceivable": 4800,
|
||
|
|
"totalPayable": 1700,
|
||
|
|
"count": 6
|
||
|
|
},
|
||
|
|
"suppliers": {
|
||
|
|
"totalReceivable": 5000,
|
||
|
|
"totalPayable": 62500,
|
||
|
|
"count": 5
|
||
|
|
},
|
||
|
|
"netBalance": -54400,
|
||
|
|
"recentActivity": [
|
||
|
|
{
|
||
|
|
"id": "act_001",
|
||
|
|
"type": "payment_received",
|
||
|
|
"description": "₹800 from Deepa",
|
||
|
|
"time": "2 hours ago",
|
||
|
|
"status": "completed"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 8. REPORTS APIs
|
||
|
|
|
||
|
|
### 8.1 Get Cashbook Report
|
||
|
|
```http
|
||
|
|
GET /reports/cashbook?dateFrom=2024-11-01&dateTo=2024-12-31
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"period": "1 Nov - 31 Dec 2024",
|
||
|
|
"summary": {
|
||
|
|
"totalIn": 125000,
|
||
|
|
"totalOut": 87000,
|
||
|
|
"netBalance": 38000,
|
||
|
|
"totalTransactions": 156
|
||
|
|
},
|
||
|
|
"chartData": [
|
||
|
|
{
|
||
|
|
"name": "Week 1",
|
||
|
|
"moneyIn": 25000,
|
||
|
|
"moneyOut": 18000
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"categoryBreakdown": [
|
||
|
|
{
|
||
|
|
"category": "Income",
|
||
|
|
"amount": 125000,
|
||
|
|
"percentage": 58.9
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 8.2 Get Transaction Report
|
||
|
|
```http
|
||
|
|
GET /reports/transactions?dateFrom=2024-11-01&dateTo=2024-12-31
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"period": "1 Nov - 31 Dec 2024",
|
||
|
|
"customers": {
|
||
|
|
"totalReceivable": 59550,
|
||
|
|
"totalReceived": 13500,
|
||
|
|
"pending": 46050,
|
||
|
|
"count": 6
|
||
|
|
},
|
||
|
|
"suppliers": {
|
||
|
|
"totalPayable": 9800,
|
||
|
|
"totalPaid": 1550,
|
||
|
|
"pending": 8250,
|
||
|
|
"count": 5
|
||
|
|
},
|
||
|
|
"chartData": [
|
||
|
|
{
|
||
|
|
"name": "Customers",
|
||
|
|
"receivable": 59550,
|
||
|
|
"received": 13500,
|
||
|
|
"pending": 46050
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 9. FILE UPLOAD APIs
|
||
|
|
|
||
|
|
### 9.1 Upload File
|
||
|
|
```http
|
||
|
|
POST /files/upload
|
||
|
|
```
|
||
|
|
**Request:** Multipart form data
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"fileId": "file_123",
|
||
|
|
"fileName": "receipt.jpg",
|
||
|
|
"fileUrl": "https://cdn.pozo-accounts.com/files/file_123.jpg",
|
||
|
|
"fileSize": 2048,
|
||
|
|
"mimeType": "image/jpeg"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## 10. NOTIFICATION APIs
|
||
|
|
|
||
|
|
### 10.1 Get Notifications
|
||
|
|
```http
|
||
|
|
GET /notifications?page=1&limit=10&unreadOnly=false
|
||
|
|
```
|
||
|
|
**Response:**
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": true,
|
||
|
|
"data": {
|
||
|
|
"notifications": [
|
||
|
|
{
|
||
|
|
"id": "notif_001",
|
||
|
|
"title": "Payment Received",
|
||
|
|
"message": "₹800 received from Deepa",
|
||
|
|
"type": "payment",
|
||
|
|
"isRead": false,
|
||
|
|
"createdAt": "2024-12-03T14:30:00Z"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"pagination": {
|
||
|
|
"currentPage": 1,
|
||
|
|
"totalPages": 3,
|
||
|
|
"totalItems": 25,
|
||
|
|
"unreadCount": 5
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
### 10.2 Mark as Read
|
||
|
|
```http
|
||
|
|
PUT /notifications/{notificationId}/read
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Error Response Format
|
||
|
|
All APIs return errors in this format:
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"success": false,
|
||
|
|
"error": {
|
||
|
|
"code": "VALIDATION_ERROR",
|
||
|
|
"message": "Invalid input data",
|
||
|
|
"details": {
|
||
|
|
"field": "email",
|
||
|
|
"message": "Invalid email format"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## API Summary
|
||
|
|
**Total APIs: 35+ endpoints**
|
||
|
|
- User Management: 2 APIs
|
||
|
|
- Dashboard: 1 API
|
||
|
|
- Contact Management (Customers & Suppliers): 5 APIs
|
||
|
|
- Transaction Management: 4 APIs
|
||
|
|
- Cashbook: 4 APIs
|
||
|
|
- Expense Management: 4 APIs
|
||
|
|
- Ledger: 1 API
|
||
|
|
- Reports: 2 APIs
|
||
|
|
- File Upload: 1 API
|
||
|
|
- Notifications: 2 APIs
|
||
|
|
|
||
|
|
## Key Benefits of Unified Contact API
|
||
|
|
- **Simplified Backend**: Single table/model for customers and suppliers
|
||
|
|
- **Consistent Data Structure**: Same fields and operations for both types
|
||
|
|
- **Easier Maintenance**: One set of CRUD operations instead of two
|
||
|
|
- **Flexible Filtering**: Can filter by contactType ('C'/'S') or get all contacts
|
||
|
|
- **Unified Search**: Search across both customers and suppliers simultaneously
|
||
|
|
|
||
|
|
## Common HTTP Status Codes
|
||
|
|
- `200` - Success
|
||
|
|
- `201` - Created
|
||
|
|
- `400` - Bad Request
|
||
|
|
- `401` - Unauthorized
|
||
|
|
- `403` - Forbidden
|
||
|
|
- `404` - Not Found
|
||
|
|
- `422` - Validation Error
|
||
|
|
- `500` - Internal Server Error
|
||
|
|
|
||
|
|
## Rate Limiting
|
||
|
|
- 1000 requests per hour per user
|
||
|
|
- 100 requests per minute per endpoint
|
||
|
|
|
||
|
|
## Pagination
|
||
|
|
All list APIs support pagination with these query parameters:
|
||
|
|
- `page`: Page number (default: 1)
|
||
|
|
- `limit`: Items per page (default: 10, max: 100)
|
||
|
|
|
||
|
|
## Date Format
|
||
|
|
All dates should be in ISO 8601 format: `2024-12-03T14:30:00Z`
|
||
|
|
|
||
|
|
## File Upload Constraints
|
||
|
|
- Maximum file size: 10MB
|
||
|
|
- Supported formats: JPG, PNG, PDF
|
||
|
|
- Files are automatically compressed and optimized
|