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

# Enrôler un client

> Enrôler un nouvel usager en fournissant ses informations personnelles et complémentaires tel que le KYC, le terminal utilisé et l'instrument de paiement utilisé pour le premier enrôlement.



## OpenAPI

````yaml /openapi.json post /api/v1/users
openapi: 3.0.1
info:
  title: Registre des APIs (GIM Gar Sud)
  version: 1.0.7
servers:
  - url: https://egimgarsud.gimpayapp.com
    description: Serveur de production
security: []
tags:
  - name: Favorite beneficiaries and mini marketplaces
    description: >-
      Une mini market place est une plateforme de vente de produits et de
      services locaux. On les utilise dans les APIs ...
paths:
  /api/v1/users:
    post:
      tags:
        - Enrollment
      summary: Enrôler un client
      description: >-
        Enrôler un nouvel usager en fournissant ses informations personnelles et
        complémentaires tel que le KYC, le terminal utilisé et l'instrument de
        paiement utilisé pour le premier enrôlement.
      operationId: enrollClient
      parameters:
        - name: Authorization
          in: header
          required: false
          schema:
            type: string
      requestBody:
        description: Objet contenant les informations nécessaires à l'enrôlement du client.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EnrollClientRequest'
        required: true
      responses:
        '201':
          description: Client enrôlé avec succès.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResponseApi'
        '400':
          description: Requête invalide (données manquantes ou mal formées).
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResponseApi'
        '401':
          description: 'Non autorisé : le token d''authentification est manquant ou invalide.'
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResponseApi'
        '404':
          description: Ressource introuvable (Une référence indiquée est introuvable).
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResponseApi'
        '409':
          description: 'Conflit : le client existe déjà.'
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResponseApi'
        '500':
          description: Erreur interne du serveur.
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ResponseApi'
      security:
        - bearerAuth: []
components:
  schemas:
    EnrollClientRequest:
      required:
        - kyc
        - refContributeurDemandeur
        - refContributeurEmetteur
        - terminal
        - wallet
      type: object
      properties:
        kyc:
          $ref: '#/components/schemas/Kyc'
        refContributeurEmetteur:
          type: string
          description: La réference du contributeur émetteur de l'instrument de paiement
        refContributeurDemandeur:
          type: string
          description: >-
            La réference du contributeur demandeur qui demande l'enrôlement de
            l'instrument de paiement
        terminal:
          $ref: '#/components/schemas/Terminal'
        wallet:
          $ref: '#/components/schemas/Wallet'
    ResponseApi:
      type: object
      properties:
        message:
          type: string
        status:
          type: integer
          format: int32
        body:
          type: object
        timestamp:
          type: string
          format: date-time
    Kyc:
      required:
        - codeIso
        - nom
        - prenoms
      type: object
      properties:
        nom:
          type: string
        prenoms:
          type: string
        dateNaissance:
          type: string
        lieuNaissance:
          type: string
        paysNaissance:
          type: string
        sexe:
          type: string
        profession:
          type: string
        nomEmployeur:
          type: string
        adresseGeographiqueEmployeur:
          type: string
        nomDuPere:
          type: string
        nomDeLaMere:
          type: string
        adressePostale:
          type: string
        adresseGeographique:
          type: string
        adresseEmail:
          type: string
        contactMobile1:
          type: string
        contactMobile2:
          type: string
        nomPrenomConjoint:
          type: string
        contactMobileConjoint:
          type: string
        situationMatrimoniale:
          type: string
        nationalite:
          type: string
        codeIso:
          type: string
    Terminal:
      required:
        - marque
        - modele
        - numeroSerie
      type: object
      properties:
        marque:
          type: string
          description: La marque du terminal
          example: Samsung
        modele:
          type: string
          description: Le modèle du terminal
          example: S20
        numeroSerie:
          type: string
          description: Le numéro de série du terminal
          example: MLN789
    Wallet:
      type: object
      properties:
        numeroRib:
          type: string
        msisdn:
          type: string
        pan:
          type: string
        cvv:
          type: string
        codeClient:
          type: string
        typeCarteBancaire:
          type: string
        typeCompteBancaire:
          type: string
        dateExpiration:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````