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

# Initier une demande de paiement direct

> Envoyez une demande de paiement directement sur le mobile d'un utilisateur.

## Endpoint

`POST /direct-pay`

Envoyez une demande de paiement directement sur le mobile d’un utilisateur. Vous êtes responsable de la création de votre propre formulaire de paiement et de la vérification du statut du paiement.

<Note>
  Les transactions de paiement direct ne peuvent et ne s'expirent pas. Par
  conséquent, leur état final est soit **SUCCESSFUL** soit **FAILED**.
</Note>

<Warning>
  Le paiement direct est désactivé par défaut dans l’environnement Live. Suivez les
  étapes du guide [Activer le paiement direct sur votre API Fapshi en mode Live](https://www.fapshi.com/fr/aide-et-support/how-to-activate-direct-pay-for-your-fapshi-api)
  pour activer le paiement direct en mode live.
</Warning>

<Danger>
  Manipulez ce point de terminaison avec précaution ; toute mauvaise utilisation
  peut entraîner la suspension de votre compte.
</Danger>

## Paramètres

| Nom        | Obligatoire | Type   | Description                                                                           |
| :--------- | :---------- | :----- | :------------------------------------------------------------------------------------ |
| amount     | Oui         | entier | Montant à payer (minimum 100 XAF).                                                    |
| phone      | Oui         | chaîne | Numéro de téléphone pour la demande de paiement (exemple : 67XXXXXXX).                |
| medium     | Non         | chaîne | `"mobile money"` ou `"orange money"`. À omettre pour détection automatique.           |
| name       | Non         | chaîne | Nom du payeur.                                                                        |
| email      | Non         | chaîne | Email du payeur pour recevoir le reçu.                                                |
| userId     | Non         | chaîne | ID utilisateur dans votre système (1–100 caractères; a–z, A–Z, 0–9, -, \_ autorisés). |
| externalId | Non         | chaîne | ID de transaction ou commande pour rapprochement (1–100 caractères; mêmes règles).    |
| message    | Non         | chaîne | Motif du paiement.                                                                    |

## Réponse

* `200 OK` avec un corps JSON contenant :

  * `message` : message de succès
  * `transId` : ID de la transaction pour suivre le paiement
  * `dateInitiated` : date de l’initiation du paiement

* En cas d’erreur, un code 4XX avec un message d’échec est retourné.


## OpenAPI

````yaml /fr/api-reference/openapi.json POST /direct-pay
openapi: 3.1.0
info:
  title: API de Paiement Fapshi
  description: >-
    API pour générer des liens de paiement, des paiements directs, la
    surveillance des transactions, les retraits, et plus encore.
  version: 1.0.0
servers:
  - url: https://sandbox.fapshi.com
security:
  - apiAuth: []
    apiKey: []
paths:
  /direct-pay:
    post:
      summary: Initier une Demande de Paiement Direct
      description: >-
        Envoyer une demande de paiement directement sur l'appareil mobile d'un
        utilisateur pour confirmation.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 100
                  description: Montant à payer (minimum 100 XAF).
                phone:
                  type: string
                  description: Numéro de téléphone où la demande de paiement est envoyée.
                medium:
                  type: string
                  enum:
                    - mobile money
                    - orange money
                  description: Moyen de paiement (facultatif).
                name:
                  type: string
                  description: Nom du payeur (facultatif).
                email:
                  type: string
                  format: email
                  description: Email du payeur pour les reçus (facultatif).
                userId:
                  type: string
                  pattern: ^[a-zA-Z0-9\-_]{1,100}$
                  description: Identifiant interne de l'utilisateur (facultatif).
                externalId:
                  type: string
                  pattern: ^[a-zA-Z0-9\-_]{1,100}$
                  description: >-
                    Identifiant de transaction/commande pour la réconciliation
                    (facultatif).
                message:
                  type: string
                  description: Motif du paiement (facultatif).
              required:
                - amount
                - phone
      responses:
        '200':
          description: Accepté
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Message de succès
                  transId:
                    type: string
                    description: Identifiant de la transaction pour le paiement.
                  dateInitiated:
                    type: string
                    format: date
                    description: Date à laquelle le paiement a été initié.
        4XX:
          description: Erreur client, par exemple, identifiants ou paramètres invalides.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
          description: Message d'erreur.
  securitySchemes:
    apiAuth:
      type: apiKey
      in: header
      name: apiuser
    apiKey:
      type: apiKey
      in: header
      name: apikey

````