# Virements
Source: https://docs.lomi.africa/build/money/payouts

Retraits vers vos comptes enregistrés ou paiements bénéficiaires (`POST /payouts`).

***

title: Virements
description: Retraits vers vos comptes enregistrés ou paiements bénéficiaires (`POST /payouts`).
------------------------------------------------------------------------------------------------

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

Utilisez **`POST /payouts`** pour tous les virements sortants.

<TaskSurfaces task="pay-out" />

<DocsScreenshot name="build/payouts" alt="Paramètres de reversements dans le tableau de bord lomi." />

* **`destination: "self"`**: retrait vers un **moyen de paiement enregistré** (`payout_method_id` requis). Rails : `bank`, `spi`, `wave`.
* **`destination: "beneficiary"`**: paiement à un tiers sur **mobile money** (`wave` aujourd’hui). `recipient.name` et `recipient.phone` requis (numéro libre ; **sans** lien avec `payout_method_id`).

<Callout type="warn">
  **Les virements Wave (`rail: "wave"`) exigent une clé API live** (`lomi_sk_live_…`). Les clés test renvoient `400` pour les virements self et beneficiary Wave, aucun appel Wave réel.
</Callout>

<Callout type="info">
  Les virements MTN renvoient `400` jusqu’à prise en charge.
</Callout>

## Créer un virement

<Tabs items={["TypeScript", "cURL"]}>
  <Tab value="TypeScript">
    ```typescript
    await lomi.payouts.create({
      destination: 'self',
      rail: 'wave',
      amount: 50000,
      currency_code: 'XOF',
      payout_method_id: '550e8400-e29b-41d4-a716-446655440000',
    });
    ```
  </Tab>

  <Tab value="cURL">
    ```bash
    curl -X POST "https://api.lomi.africa/payouts" \
      -H "X-API-KEY: $LOMI_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '{"destination":"beneficiary","rail":"wave","amount":10000,"currency_code":"XOF","recipient":{"name":"Ada","phone":"+221771234567"}}'
    ```
  </Tab>
</Tabs>

## Référence du corps de requête

| Champ              | Type                                       | Requis                                              |
| ------------------ | ------------------------------------------ | --------------------------------------------------- |
| `destination`      | `'self'` \| `'beneficiary'`                | **Oui**                                             |
| `rail`             | `'wave'` \| `'spi'` \| `'bank'` \| `'mtn'` | **Oui**                                             |
| `amount`           | `number`                                   | **Oui**                                             |
| `currency_code`    | `string`                                   | **Oui**                                             |
| `payout_method_id` | UUID                                       | **Oui** pour `self` ; requis pour beneficiary `spi` |
| `recipient`        | `{ name, phone }`                          | **Oui** pour beneficiary `wave`                     |
| `reason`           | `string`                                   | Non                                                 |

## Lister et obtenir

* `GET /payouts`, retraits et virements bénéficiaires (`kind`). Les clés test ne listent que les retraits test ; les bénéficiaires live sont exclus.
* `GET /payouts/{id}`, retrait marchand ou bénéficiaire, limité à l’organisation de la clé.

## Retrait bloqué par les contrôles de risque plateforme

Les retraits importants ou très fréquents peuvent être retenus automatiquement. En cas d’erreur liée au risque sur `POST /payouts`, réessayez plus tard ou [contactez le support](/start/support).

<Callout type="info">
  Pour l’analyse des risques sur les **paiements entrants** (carte et mobile money), voir [lomi. Radar](/build/money/radar).
</Callout>
