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

# Générer un code OTP

> Envoyer un code à usage unique au numéro rattaché à un instrument de paiement, pour sécuriser une opération de débit.

Cet appel demande au contributeur émetteur d'envoyer un **code à usage unique** au numéro de téléphone associé à l'instrument de paiement. Ce code authentifie l'usager au moment de valider le débit : il constitue l'avant-dernière étape avant [l'exécution de l'opération](https://sandbox.it-centrex.com/endpoints/operations/execute.md).

## Où il s'insère dans le parcours

**1. Vous générez l'OTP**

Cet appel. GIMpay déclenche l'envoi du code vers le téléphone de l'usager.

**2. L'usager saisit le code**

Dans votre application. GIMpay ne fournit pas d'interface de saisie.

**3. Vous transmettez le code**

Dans le champ `authData` de [l'exécution de l'opération](https://sandbox.it-centrex.com/endpoints/operations/execute.md).

> [!NOTE]
>
> Ne confondez pas cet endpoint avec [la vérification d'un OTP](https://sandbox.it-centrex.com/endpoints/otp/verify.md) (`POST /otp/confirm`), qui répond à un besoin distinct : valider un code auprès d'un contributeur tiers dans le cadre d'un enrôlement.

## Points de vigilance

> **L'instrument doit être disponible**
>
> Un `400` est retourné si `refInstrumentPaiement` est manquant **ou si l'instrument de paiement est indisponible**, par exemple verrouillé ou désenrôlé. Vérifiez son statut au préalable via `GET /wallets/{referenceWallet}/authorization`.

## Réponses

Un `200` confirme que l'OTP a été généré et transmis. Le corps utile est un booléen dans `body`, à l'intérieur de l'enveloppe commune `{ message, status, body, timestamp }`.

Le succès de cet appel signifie que **la demande d'envoi a abouti**, il ne garantit pas la réception effective du SMS par l'usager. Prévoyez dans votre interface une porte de sortie si l'usager ne reçoit rien.

## Et ensuite ?

> **[Exécuter l'opération](https://sandbox.it-centrex.com/endpoints/operations/execute.md)**
>
> Transmettez le code saisi dans `authData`.

> **[Codes d'erreur](https://sandbox.it-centrex.com/getting-started/errors.md)**
>
> Signification des `400`, `404` et `500` sur cet endpoint.


## OpenAPI

````yaml openapi.json POST /api/v1/otp/debit
openapi: 3.0.3
info:
  title: Registre des APIs GIM Gar Sud
  version: 1.0.9-sdk0.3.0
  description: >
    APIs exposées par GIM Gar Sud pour permettre aux Contributeurs Tiers de
    Service Financier (CTSF) de consommer les services de GIMpay : enrôlement
    d'usagers et d'instruments de paiement, opérations financières, OTP,
    consentements, documents d'identité et fidélité.
  contact:
    name: Support intégrateurs GimPay
    email: support@it-centrex.com
servers:
  - url: https://egimgarsud.gimpayapp.com
    variables:
      environnement:
        default: egimgarsud
        description: Sous-domaine de l'environnement (sandbox ou production).
security:
  - bearerAuth: []
tags:
  - name: Authentification
  - name: Wallets
    description: Instruments de paiement (cartes, comptes bancaires, mobile wallets)
  - name: Opérations
  - name: OTP
  - name: Usagers
  - name: Bénéficiaires
  - name: MMP favorites
  - name: Pays
  - name: Contributeurs
  - name: Mini-places de marché
  - name: Services
  - name: Terminaux
  - name: Documents
  - name: Consentements & demandes
paths:
  /api/v1/otp/debit:
    post:
      tags:
        - OTP
      summary: Générer un OTP de débit
      operationId: generateDebitOtp
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OtpDebitRequest'
      responses:
        '200':
          $ref: '#/components/responses/BooleanBody'
        '401':
          $ref: '#/components/responses/Error401'
        '404':
          $ref: '#/components/responses/Error404'
        '500':
          $ref: '#/components/responses/Error500'
components:
  schemas:
    OtpDebitRequest:
      type: object
      required:
        - refInstrumentPaiement
      properties:
        refInstrumentPaiement:
          type: string
          description: >-
            Référence GIMpay de l'instrument de paiement pour lequel générer le
            code OTP.
    ApiEnvelope:
      type: object
      description: Enveloppe standard de toutes les réponses (sauf auth).
      properties:
        message:
          type: string
          description: Message technique décrivant le résultat de l'appel.
        status:
          type: integer
          description: Code de statut HTTP de la réponse.
        timestamp:
          type: string
          format: date-time
          description: Horodatage de la réponse.
    ErrorEnvelope:
      allOf:
        - $ref: '#/components/schemas/ApiEnvelope'
        - type: object
          properties:
            body:
              nullable: true
  responses:
    BooleanBody:
      description: Succès. Le `body` de l'enveloppe est un booléen.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/ApiEnvelope'
              - type: object
                properties:
                  body:
                    type: boolean
    Error401:
      description: Non autorisé — jeton manquant, invalide ou expiré.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Error404:
      description: Ressource introuvable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
    Error500:
      description: Erreur interne du serveur.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Jeton émis par `POST /api/v1/auth/token`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.