# Remboursements
Source: https://docs.lomi.africa/build/money/refunds

Rembourser des transactions terminées (`POST /refunds`).

***

title: Remboursements
description: Rembourser des transactions terminées (`POST /refunds`).
---------------------------------------------------------------------

import { Tabs, Tab } from 'fumadocs-ui/components/tabs';
import { Callout } from '@/components/docs/docs-callout';

Utilisez **`POST /refunds`** pour rembourser une transaction **terminée**. Les prestataires pris en charge sont **carte bancaire**, **Wave** et **MTN** (mêmes flux que le tableau de bord). Votre **solde est mis à jour immédiatement** ; le crédit client dépend du type de paiement.

<TaskSurfaces task="refunds-and-disputes" />

<Callout type="info">
  **MTN (live) :** le paiement d'origine doit avoir une référence prestataire (`provider_checkout_id` issu du RequestToPay). Les remboursements passent par l'API Disbursement MTN (asynchrone côté MTN ; lomi. interroge le statut jusqu'à complétion). En **mode test**, le remboursement est uniquement comptable (pas d'appel MTN).
</Callout>

Listez et consultez les remboursements avec **`GET /refunds`** et **`GET /refunds/{id}`**.

<Callout type="info">
  Les remboursements carte sont enregistrés immédiatement sur votre compte. Le crédit sur le compte ou la carte du client apparaît en général sous plusieurs jours ouvrés.
</Callout>

## Créer un remboursement

<Tabs items={["TypeScript", "Python", "cURL"]}>
  <Tab value="TypeScript">
    ```typescript
    import { LomiSDK } from '@lomi./sdk';

    const lomi = new LomiSDK({
      apiKey: process.env.LOMI_SECRET_KEY!,
      environment: 'live',
    });

    const refund = await lomi.refunds.create({
      transaction_id: '123e4567-e89b-12d3-a456-426614174000',
      amount: 5000,
      reason: 'duplicate_charge',
      refund_type: 'partial', // optionnel : 'full' | 'partial'
    });
    ```
  </Tab>

  <Tab value="Python">
    ```python
    import requests, os

    r = requests.post(
        "https://api.lomi.africa/refunds",
        headers={"X-API-KEY": os.environ["LOMI_SECRET_KEY"], "Content-Type": "application/json"},
        json={
            "transaction_id": "123e4567-e89b-12d3-a456-426614174000",
            "amount": 5000,
            "reason": "duplicate_charge",
        },
    )
    print(r.status_code, r.json())
    ```
  </Tab>

  <Tab value="cURL">
    ```bash
    curl -X POST "https://api.lomi.africa/refunds" \
      -H "X-API-KEY: $LOMI_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "transaction_id": "123e4567-e89b-12d3-a456-426614174000",
        "amount": 5000,
        "reason": "duplicate_charge"
      }'
    ```
  </Tab>
</Tabs>

## Référence du corps

| Champ            | Type                    | Requis                                          |
| ---------------- | ----------------------- | ----------------------------------------------- |
| `transaction_id` | `string` (UUID)         | **Oui**                                         |
| `amount`         | `number`                | **Oui**                                         |
| `reason`         | `string`                | Non                                             |
| `refund_type`    | `'full'` \| `'partial'` | Non, déduit de `amount` vs montant brut si omis |

## Lister les remboursements

`GET /refunds?status=completed&limit=50&offset=0`

## Obtenir un remboursement

`GET /refunds/{refund_id}`
