> ## 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.

# Générer un lien de paiement

> Créez un lien de paiement pour rediriger les utilisateurs vers une page de paiement hébergée par Fapshi.

## Endpoint

`POST /initiate-pay`

Générez un lien de paiement où les utilisateurs pourront compléter leur paiement sur une page de paiement préconstruite par Fapshi.

## Paramètres

| Nom         | Obligatoire | Type   | Description                                                                               |
| :---------- | :---------- | :----- | :---------------------------------------------------------------------------------------- |
| amount      | Oui         | entier | Montant à payer (minimum 100 XAF).                                                        |
| email       | Non         | chaîne | Si renseigné, l’utilisateur n’aura pas à fournir son email lors du paiement.              |
| redirectUrl | Non         | chaîne | URL vers laquelle l’utilisateur sera redirigé après le paiement.                          |
| userId      | Non         | chaîne | ID utilisateur interne (1-100 caractères ; a-z, A-Z, 0-9, -, \_).                         |
| externalId  | Non         | chaîne | ID de transaction/commande pour réconciliation (1-100 caractères ; a-z, A-Z, 0-9, -, \_). |
| message     | Non         | chaîne | Raison du paiement.                                                                       |

## Réponse

* `200 OK` avec un corps JSON contenant :
  * `message` : message de succès
  * `link` : URL où l’utilisateur doit effectuer le paiement
  * `transId` : ID de la transaction pour suivre le statut du paiement
  * `dateInitiated` : date de début du paiement

* En cas d’erreur, retournera un code 4XX avec un message expliquant l’échec.

<Note>Les liens de paiement expirent au bout de 24 heures et ne peuvent plus être utilisés après cette période.</Note>


## OpenAPI

````yaml /fr/api-reference/openapi.json POST /initiate-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:
  /initiate-pay:
    post:
      summary: Générer un Lien de Paiement
      description: >-
        Créer un lien de paiement où les utilisateurs finalisent le paiement sur
        une page de paiement hébergée par Fapshi.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  minimum: 100
                  description: Montant à payer (minimum 100 XAF).
                email:
                  type: string
                  format: email
                  description: >-
                    Email de l'utilisateur facultatif à ignorer lors du
                    paiement.
                redirectUrl:
                  type: string
                  format: uri
                  description: URL de redirection après le paiement.
                userId:
                  type: string
                  pattern: ^[a-zA-Z0-9\-_]{1,100}$
                  description: >-
                    Identifiant interne de l'utilisateur (1-100 caractères ;
                    a-z, A-Z, 0-9, -, _).
                externalId:
                  type: string
                  pattern: ^[a-zA-Z0-9\-_]{1,100}$
                  description: >-
                    Identifiant de transaction/commande pour la réconciliation
                    (1-100 caractères ; a-z, A-Z, 0-9, -, _).
                message:
                  type: string
                  description: Motif du paiement.
              required:
                - amount
      responses:
        '200':
          description: Lien de paiement généré avec succès
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Message de succès
                  link:
                    type: string
                    format: uri
                    description: >-
                      URL pour rediriger l'utilisateur afin de compléter le
                      paiement.
                  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, requête 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

````