Wallet & Finance
Endpoints de recharge via Mobile Money et consultation des transactions.
Authentification requise
Tous les endpoints de cette section nécessitent Authorization: Bearer {token}.
GET /api/user/wallet/transactions/latest
Retourne les 5 dernières opérations de l'utilisateur (toutes natures confondues).
Réponse 200
{
"user": {},
"message": "Dernières transactions.",
"data": {
"operations": [
{
"id": 42,
"type": "pack-purchase",
"status": "success",
"payment_method": "orange_money",
"pack_id": 2,
"money_amount": 2500,
"money_operation": "debit",
"credit_amount": 30,
"credit_operation": "credit",
"metadata": {},
"created_at": "2026-03-10T08:00:00.000000Z"
}
]
},
"errors": []
}
GET /api/user/wallet/operations
Retourne la liste paginée de toutes les opérations avec filtres.
Paramètres (query string)
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
type | string | Non | Filtre par type : pack-purchase, pronostic-debit, … |
status | string | Non | Filtre par statut : pending, success, cancelled |
per_page | integer | Non | Résultats par page (défaut : 10, max : 50) |
page | integer | Non | Numéro de page (défaut : 1) |
Réponse 200
{
"user": {},
"message": "Historique de vos opérations.",
"data": {
"operations": [{ "...": "..." }],
"meta": {
"current_page": 1,
"last_page": 3,
"per_page": 10,
"total": 28,
"has_more": true
}
},
"errors": []
}
POST /api/user/wallet/checkout
Initie l'achat d'un pack de crédits via Mobile Money (Yabetoo). L'opération est créée en pending et passe automatiquement en success ou cancelled après vérification du paiement.
Paramètres (body JSON)
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
pack_id | integer | Oui | Identifiant du pack à acheter |
phone | string | Oui | Numéro Mobile Money (format E.164) |
method | object | Oui | Opérateur sélectionné avec ses attributs techniques |
Exemple
{
"pack_id": 2,
"phone": "+237690000000",
"method": {
"payload": {
"db_method_type": "orange_money",
"core_method_attribute": "orange"
}
}
}
Réponses
201 — Commande placée :
{
"user": {},
"message": "Commande placée. Les crédits seront ajoutés dès validation du paiement.",
"data": {
"operation": {
"id": 43,
"type": "pack-purchase",
"status": "pending",
"pack_id": 2,
"money_amount": 2500,
"money_operation": "debit",
"created_at": "2026-03-10T09:00:00.000000Z"
}
},
"errors": []
}
402 — Échec de l'initiation du paiement :
{
"user": {},
"message": "Erreur lors de la tentative de paiement.",
"data": [],
"errors": []
}
422 — Paramètres invalides :
{
"user": null,
"message": "Données invalides.",
"errors": {
"pack_id": ["The selected pack id is invalid."]
}
}