> ## Documentation Index
> Fetch the complete documentation index at: https://docs.payfonte.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Exemples de payloads Direct Charge

> Payloads Direct Charge prêts à l'emploi pour les flux mobile money standards, Bank Transfer et Orange pre-OTP.

Utilisez ces modèles de payload lorsque vous appelez :

`POST /payments/v1/payments/direct-charge`

## Payload commun, la plupart des providers

```json theme={null}
{
  "reference": "ORDER-1001",
  "amount": 10000,
  "provider": "mtn-momo-ivory-coast",
  "webhook": "https://yourapp.com/webhooks/payfonte",
  "narration": "Order payment",
  "customerInput": {
    "phoneNumber": "2250512345678"
  }
}
```

## Payload Orange pre-OTP

Les providers Orange peuvent exiger un code généré par le client avant l'envoi de la requête.

### Indications USSD

* Orange Senegal : `#144#391#`
* Orange Mali : `#144#77#`
* Orange Burkina Faso : `*144*4*6*amount#`

En sandbox, n'importe quel code aléatoire à 6 chiffres peut être utilisé pour les tests.

```json theme={null}
{
  "reference": "ORDER-1003",
  "amount": 10000,
  "provider": "orange-senegal",
  "webhook": "https://yourapp.com/webhooks/payfonte",
  "narration": "Order payment",
  "customerInput": {
    "phoneNumber": "786175702",
    "customerCode": "<6-digit-code>"
  }
}
```

## Référence des champs

| Champ                        | Type    | Requis                 | Notes                                                   |
| ---------------------------- | ------- | ---------------------- | ------------------------------------------------------- |
| `reference`                  | string  | Recommandé             | Doit être unique par transaction                        |
| `amount`                     | integer | Oui                    | Valeur en sous-unités uniquement                        |
| `provider`                   | string  | Oui                    | Utilisez le slug provenant des providers pris en charge |
| `webhook`                    | string  | Non                    | Surcharge de webhook par requête                        |
| `narration`                  | string  | Non                    | Note de transaction lisible par humain                  |
| `customerInput.phoneNumber`  | string  | Généralement oui       | Format selon le provider et le pays                     |
| `customerInput.network`      | string  | Spécifique au provider | Requis pour certains flux comme le bank transfer        |
| `customerInput.customerCode` | string  | Spécifique au provider | Requis pour les flux Orange pre-OTP                     |

## Checklist de validation avant l'envoi

<AccordionGroup>
  <Accordion title="Format du montant" icon="hashtag" defaultOpen>
    Envoyez uniquement des montants entiers en sous-unités. Les décimales ne sont pas prises en charge.
  </Accordion>

  <Accordion title="Slug provider" icon="tag">
    Assurez-vous que `provider` correspond a un slug valide de [Providers pris en charge](/fr/guides/introductions/supported-providers).
  </Accordion>

  <Accordion title="Champs `customerInput` requis" icon="list-check">
    Confirmez la présence des champs spécifiques au provider, comme `phoneNumber`, `network` ou `customerCode`, avant d'envoyer la requête.
  </Accordion>

  <Accordion title="Unicite de la reference" icon="fingerprint">
    Générez des références uniques afin d'éviter les erreurs de transaction en double.
  </Accordion>
</AccordionGroup>

## Documentation associée

<CardGroup cols={3}>
  <Card title="API Direct Charge" icon="bolt" href="/fr/guides/collections/direct-charge-api">
    Flux de requête et gestion des réponses et actions.
  </Card>

  <Card title="Flux de traitement" icon="bolt" href="/fr/guides/collections/direct-charge/response-types">
    Comportements processing, redirect, bankTransfer et pre-OTP.
  </Card>

  <Card title="Specification des montants" icon="hashtag" href="/fr/guides/introductions/amount-specification">
    Règles de conversion en sous-unités pour tous les montants.
  </Card>
</CardGroup>
