Aller au contenu principal

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)

ChampTypeObligatoireDescription
typestringNonFiltre par type : pack-purchase, pronostic-debit, …
statusstringNonFiltre par statut : pending, success, cancelled
per_pageintegerNonRésultats par page (défaut : 10, max : 50)
pageintegerNonNumé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)

ChampTypeObligatoireDescription
pack_idintegerOuiIdentifiant du pack à acheter
phonestringOuiNuméro Mobile Money (format E.164)
methodobjectOuiOpé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."]
}
}