API documentation

Authentication

Use JWT bearer token from login, or an API key via X-API-Key header for public endpoints.

POST /api/auth/login
GET  /api/wallet          Authorization: Bearer <token>
GET  /api/v1/products     X-API-Key: dublogs_<key>
Wallet & payments
POST /api/wallet/deposit
  { "amount": 50, "provider": "simulated" }

POST /api/webhooks/paystack
POST /api/webhooks/flutterwave
Orders & products
GET  /api/products
POST /api/orders/checkout
  { "items": [{ "product_id": 1, "quantity": 1 }] }
SMS & admin
GET  /api/sms/numbers
POST /api/sms/allocate
GET  /api/admin/stats     (admin JWT)