Skip to main content

API Endpoints Reference

Dokumentasi lengkap API endpoints yang digunakan oleh MStore Mobile.

🌐 Base URL

🔐 Authentication

Semua endpoint (kecuali public endpoints) memerlukan authentication token.

Headers

📚 API Endpoints

Authentication

POST /api/v1/auth/login

Login dengan email dan password. Request:
Response:

POST /api/v1/auth/refresh-token

Refresh access token. Request:
Response:

POST /api/v1/auth/register-device

Register device untuk push notifications. Request:
Response:

POST /api/v1/auth/logout

Logout user. Response:

Products

GET /api/v1/products

Get list of products. Query Parameters:
  • page (int): Page number (default: 1)
  • limit (int): Items per page (default: 20)
  • search (string): Search query
  • category (string): Filter by category
  • branchId (string): Filter by branch
Response:

GET /api/v1/products/

Get product by ID. Response:

POST /api/v1/products

Create new product. Request:
Response:

PUT /api/v1/products/

Update product. Request: Same as POST Response:

DELETE /api/v1/products/

Delete product. Response:

Transactions

POST /api/v1/transactions

Create new transaction. Request:
Response:

GET /api/v1/transactions

Get transaction history. Query Parameters:
  • page (int): Page number
  • limit (int): Items per page
  • startDate (string): Start date (ISO 8601)
  • endDate (string): End date (ISO 8601)
  • branchId (string): Filter by branch
  • status (string): Filter by status
Response:

GET /api/v1/transactions/

Get transaction detail. Response:

Inventory

GET /api/v1/inventory

Get inventory list. Query Parameters:
  • branchId (string): Filter by branch
  • lowStock (boolean): Show only low stock items
Response:

POST /api/v1/inventory/adjustment

Create inventory adjustment. Request:
Response:

Dashboard

GET /api/v1/dashboard/summary

Get dashboard summary. Query Parameters:
  • branchId (string): Filter by branch
  • startDate (string): Start date
  • endDate (string): End date
Response:

Reports

GET /api/v1/reports/sales

Get sales report. Query Parameters:
  • branchId (string): Filter by branch
  • startDate (string): Start date (required)
  • endDate (string): End date (required)
  • groupBy (string): day|week|month
Response:

❌ Error Responses

Standard Error Format

HTTP Status Codes

  • 200 - OK
  • 201 - Created
  • 400 - Bad Request
  • 401 - Unauthorized
  • 403 - Forbidden
  • 404 - Not Found
  • 422 - Validation Error
  • 429 - Too Many Requests
  • 500 - Internal Server Error
  • 503 - Service Unavailable

Common Error Codes

🔄 Pagination

Standard pagination format:

🚀 Rate Limiting

  • Rate Limit: 100 requests per minute per user
  • Headers:
    • X-RateLimit-Limit: 100
    • X-RateLimit-Remaining: 95
    • X-RateLimit-Reset: 1697270400

📊 Versioning

API menggunakan versioning di URL path:
  • Current: /api/v1/
  • Future: /api/v2/

Next Steps


API Best Practices:
  • ✅ Gunakan HTTPS untuk semua requests
  • ✅ Include correlation ID untuk tracking
  • ✅ Handle rate limiting gracefully
  • ✅ Implement retry logic untuk network errors
  • ✅ Cache responses when appropriate