Aller au contenu principal

Overview — Business

GET /api/v1/business/dashboard/overview 🔒​

Agrégats sur les transactions mobile money, calculés à la volée (pas de table dédiée).

{
"data": {
"all_time": {
"deposits": { "completed": 120, "failed": 3, "pending": 1, "total": 124 },
"payouts": { "completed": 45, "failed": 2, "pending": 0, "total": 47 },
"deposit_success_rate_percent": 96.77,
"payout_success_rate_percent": 95.74
},
"last_30_days": { "...": "mĂŞme structure" }
}
}

*_success_rate_percent vaut null si total === 0.

GET /api/v1/business/dashboard/transactions 🔒​

Historique paginé.

Query : page (défaut 1), limit (défaut 20, max 100)

{
"data": [
{ "transaction_id": "TXN-...", "type": "mobile_money_deposit", "status": "completed", "provider": "pawapay", "metadata": {}, "created_at": "...", "completed_at": "..." }
],
"meta": { "total": 37, "page": 1, "limit": 20 }
}

Notifications — Business

Table notifications réelle (pas un placeholder) — branchée sur les événements réels : dépôt/retrait complété ou échoué, KYC approuvé/rejeté, business approuvé/suspendu/réactivé/résilié.

GET /api/v1/business/dashboard/notifications 🔒​

Query : page, limit, unread=true (filtre non-lues uniquement)

{
"data": [
{
"id": 5, "type": "mobile_money_deposit.completed", "title": "Deposit completed",
"message": "Your deposit of 50000 USD was credited to your wallet.",
"data": { "transaction_id": "TXN-...", "wallet_id": 55 },
"read": false, "created_at": "..."
}
],
"meta": { "total": 2, "page": 1, "limit": 20, "unread_count": 2 }
}

PATCH /api/v1/business/dashboard/notifications/:id/read 🔒​

POST /api/v1/business/dashboard/notifications/read-all 🔒​

:::note Limite connue Un business suspended/terminated reçoit bien une notification (business.suspended/business.terminated), mais ne peut plus se connecter pour la lire (login bloqué par le statut). Pour ce cas précis, seul un canal externe (email/SMS) atteindrait réellement le destinataire — pas encore branché. :::