Remboursements
Refund a transaction, fully or partially, directly through the API.
Create a refund
POST
https://api.germinopay.com/v1/paiement/{reference}/rembourser
| Field | Type | Required | Description |
|---|---|---|---|
montant |
number | No | Amount to refund. If omitted, the full amount is refunded. |
raison |
string | No | Reason for the refund (shown to the customer). |
curl -X POST https://api.germinopay.com/v1/paiement/GP-20251001-ABC123/rembourser \
-H "Content-Type: application/json" \
-H "X-Public-Key: pk_live_xxxx" \
-H "X-Timestamp: 1730000000" \
-H "X-Signature: hmac_sha256_signature" \
-d '{
"raison": "Client a demandé un remboursement"
}'
200 OK
{
"success": true,
"message": "Refund initiated",
"data": {
"refund_id": "rfd_a1b2c3d4e5",
"reference": "GP-20251001-ABC123",
"montant_rembourse": 5000,
"devise": "XOF",
"statut": "en_cours",
"raison": "Client a demandé un remboursement",
"created_at": "2025-10-01T15:00:00Z"
}
}
Partial refund
curl -X POST https://api.germinopay.com/v1/paiement/GP-20251001-ABC123/rembourser \
-H "Content-Type: application/json" \
-H "X-Public-Key: pk_live_xxxx" \
-H "X-Timestamp: 1730000000" \
-H "X-Signature: hmac_sha256_signature" \
-d '{
"montant": 2000,
"raison": "Article retourné partiellement"
}'
Statuts de remboursement
| Status | Meaning |
|---|---|
| en_cours | Refund is being processed by the provider. |
| rembourse | Refund completed. Amount has been deducted from your balance. |
| echoue | Refund failed (insufficient balance, time limit exceeded...). |
Rules & limits
- You can refund up to the full amount of the original transaction.
- Multiple partial refunds are allowed as long as the cumulative amount doesn't exceed the original.
- Refund window: 180 days for PayPal, 90 days for mobile money providers.
- Fees on the original transaction are not refunded.
Balance requirement
Your merchant balance must be sufficient to cover the refund. Otherwise the request is rejected.