API - Remboursement
Les conventions générales s'appliquent : en-têtes, enveloppe de réponse, pagination et codes d'erreur. Les conditions d'éligibilité sont détaillées dans Remboursement.
Créer un remboursement
POST /api/public/v1/refunds/{transaction}/create-refund
La transaction à rembourser est passée dans l'URL.
Paramètres
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
amount | entier | Oui | Montant en ariary. Entre 300 et le reste remboursable de la transaction. |
comment | string | Oui | Motif du remboursement, 100 caractères maximum. |
custom_id | string | Non | Votre référence interne, pour le rapprochement. |
debited_wallet_id | uuid | Non | Portefeuille à débiter à la place de celui qui a encaissé. Doit appartenir au même compte. |
Exemple
curl --request POST \
"https://efn.efaina.com/api/public/v1/refunds/72b46ff8-1bc2-4a33-bc63-022eb743a4a5/create-refund" \
--header "Authorization: Bearer VOTRE_TOKEN" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data '{
"amount": 50000,
"comment": "Commande annulée par le client",
"custom_id": "REF-2024-02"
}'
Erreurs spécifiques
| Code | errorCode | Cas |
|---|---|---|
403 | UNAUTHORIZED | La transaction n'est pas remboursable : elle n'est pas de type money-in, n'est pas au statut success, ou provient d'un P2P, d'un remboursement ou d'un retrait. |
403 | PAYLOAD_VALIDATION | La transaction appartient à un autre compte. |
404 | NOT_FOUND_DATA | Transaction inexistante, ou debited_wallet_id inconnu. |
422 | PAYLOAD_VALIDATION | Montant supérieur au reste remboursable, ou solde du portefeuille insuffisant pour couvrir montant + frais. |
Consulter un remboursement
GET /api/public/v1/refunds/{refund}/show
Lister les remboursements
GET /api/public/v1/refunds
Résultat paginé, avec les filtres communs. Champs filtrables notables : filter[transaction_id], filter[status.slug], filter[transaction.ref], between[amount], between[created_at].