Payments
Remboursements
Effectuez des remboursements totaux ou partiels sur les transactions.
L’API Refunds permet de rembourser des transactions terminées. Les remboursements sont traités de façon asynchrone par le prestataire d’origine.
Les remboursements sont initiés immédiatement mais traités de manière asynchrone. Suivez le statut final via webhook (refund.completed ou refund.failed).
Initier un remboursement
Effectue un remboursement total ou partiel d’une transaction terminée.
Corps de la requête
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
transaction_id | string | Oui | ID de la transaction à rembourser |
amount | number | Non | Montant (remboursement total si omis) |
reason | string | Non | Motif du remboursement |
metadata | object | Non | Paires clé-valeur |
import { LomiSDK } from '@lomi./sdk';
const lomi = new LomiSDK({
apiKey: process.env.LOMI_API_KEY!,
environment: 'live',
});
const fullRefund = await lomi.refunds.create({
transaction_id: 'tx_abc123...',
reason: 'Customer requested refund',
});
const partialRefund = await lomi.refunds.create({
transaction_id: 'tx_abc123...',
amount: 5000,
reason: 'Partial product return',
metadata: {
ticket_id: 'TICKET-456',
},
});
console.log(`Refund initiated: ${partialRefund.id}, Status: ${partialRefund.status}`);from lomi import LomiClient
import os
client = LomiClient(
api_key=os.environ["LOMI_API_KEY"],
environment="test"
)
refund = client.refunds.create({
"transaction_id": "tx_abc123...",
"amount": 5000,
"reason": "Customer requested refund",
"metadata": {"ticket_id": "TICKET-456"}
})
print(f"Refund initiated: {refund['id']}, Status: {refund['status']}")curl -X POST "https://api.lomi.africa/refunds" \
-H "X-API-KEY: $LOMI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"transaction_id": "tx_abc123...",
"amount": 5000,
"reason": "Customer requested refund",
"metadata": {"ticket_id": "TICKET-456"}
}'Lister les remboursements
Récupère les remboursements avec filtrage optionnel.
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
status | string | Statut : pending, completed, failed, cancelled |
startDate | string | À partir de cette date (ISO 8601) |
endDate | string | Jusqu’à cette date (ISO 8601) |
limit | number | Résultats par page (défaut : 50) |
offset | number | Décalage (défaut : 0) |
const refunds = await lomi.refunds.list({
status: 'completed',
startDate: '2024-01-01T00:00:00Z',
limit: 20,
});refunds = client.refunds.list(
status="completed",
startDate="2024-01-01T00:00:00Z",
limit=20
)curl -X GET "https://api.lomi.africa/refunds?status=completed&startDate=2024-01-01T00:00:00Z&limit=20" \
-H "X-API-KEY: $LOMI_API_KEY"Obtenir un remboursement
Récupère le détail d’un remboursement.
const refund = await lomi.refunds.get('ref_abc123...');
console.log(`Status: ${refund.status}`);refund = client.refunds.get('ref_abc123...')curl -X GET "https://api.lomi.africa/refunds/ref_abc123..." \
-H "X-API-KEY: $LOMI_API_KEY"Objet Refund
| Champ | Type | Description |
|---|---|---|
id | string | Identifiant du remboursement |
transaction_id | string | Transaction d’origine |
amount | number | Montant remboursé |
currency_code | string | Devise |
status | string | pending, completed, failed, cancelled |
reason | string | Motif |
failure_reason | string | Motif d’échec (si échec) |
provider_code | string | Prestataire |
metadata | object | Métadonnées |
created_at | string | Horodatage de création |
Webhooks
Abonnez-vous à ces événements pour le suivi :
| Événement | Description |
|---|---|
refund.pending | Remboursement initié, attente prestataire |
refund.completed | Remboursement traité avec succès |
refund.failed | Échec (voir failure_reason) |
Réponses d’erreur
| Statut | Description |
|---|---|
400 | Entrée invalide ou montant supérieur à la transaction |
401 | Clé API invalide ou manquante |
404 | Transaction ou remboursement introuvable |