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

# Choisir le mode de règlement

> Active le règlement automatique **T+0** (chaque jour) ou **T+1** (tous les deux jours) à l'heure indiquée
(fuseau `Africa/Abidjan`), ou repasse en **MANUAL**.

Pour `T0` / `T1` : `time` est obligatoire et un **compte de reversement principal** doit exister.
En mode automatique, les demandes manuelles (`POST /request-disbursement`) sont refusées.




## OpenAPI

````yaml /openapi.yaml patch /web-merchant/settlement-settings
openapi: 3.1.0
info:
  title: Djonanko Pay API
  version: 1.0.0
  description: >
    API de la passerelle de paiement mobile money **Djonanko Pay**.


    Deux modes d'authentification coexistent :


    - **Clé API** (`x-api-key` + `x-api-secret`) — pour l'intégration serveur à
    serveur :
      création de liens de paiement et de QR codes.
    - **Jeton marchand** (`authenticationtoken`) — un JWT obtenu via `POST
    /user/login-merchant`,
      utilisé par le dashboard marchand pour tout le reste (statut, solde, reversements, rapports…).

    Toutes les réponses sont en JSON. Les montants sont exprimés en **FCFA (XOF
    / XAF)** sans décimales.
  contact:
    name: Support Djonanko
    url: https://www.djonanko.ci/#contact
servers:
  - url: https://apidjonanko.tech
    description: Production
security: []
tags:
  - name: Authentification
  - name: Paiements
  - name: Solde & statistiques
  - name: Webhooks
  - name: Reversements
  - name: Sécurité
  - name: Rapports
  - name: Conformité
  - name: Compte marchand
paths:
  /web-merchant/settlement-settings:
    patch:
      tags:
        - Reversements
      summary: Choisir le mode de règlement
      description: >
        Active le règlement automatique **T+0** (chaque jour) ou **T+1** (tous
        les deux jours) à l'heure indiquée

        (fuseau `Africa/Abidjan`), ou repasse en **MANUAL**.


        Pour `T0` / `T1` : `time` est obligatoire et un **compte de reversement
        principal** doit exister.

        En mode automatique, les demandes manuelles (`POST
        /request-disbursement`) sont refusées.
      operationId: updateSettlementSettings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - merchant_reference
                - mode
              properties:
                merchant_reference:
                  type: string
                  example: beautyshop
                mode:
                  $ref: '#/components/schemas/SettlementMode'
                time:
                  type: string
                  pattern: ^([01]\d|2[0-3]):[0-5]\d$
                  description: >-
                    Heure du règlement `HH:mm` (Africa/Abidjan). Requis pour
                    `T0` et `T1`, ignoré pour `MANUAL`.
                  example: '18:00'
            examples:
              t0:
                summary: Règlement quotidien à 18h
                value:
                  merchant_reference: beautyshop
                  mode: T0
                  time: '18:00'
              manual:
                summary: Retour au mode manuel
                value:
                  merchant_reference: beautyshop
                  mode: MANUAL
      responses:
        '200':
          description: Paramètres mis à jour.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SettlementSettings'
        '400':
          description: Mode invalide, heure manquante ou aucun compte principal.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                heure:
                  value:
                    statusCode: 400
                    message: Heure de règlement invalide, format attendu HH:mm
                    error: Bad Request
                compte:
                  value:
                    statusCode: 400
                    message: >-
                      Définissez un moyen principal de reversement avant
                      d'activer le règlement automatique
                    error: Bad Request
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - MerchantToken: []
components:
  schemas:
    SettlementMode:
      type: string
      enum:
        - MANUAL
        - T0
        - T1
      description: >
        - `MANUAL` (défaut) — vous lancez vos demandes de reversement vous-même.

        - `T0` — reversement automatique **chaque jour** à l'heure choisie.

        - `T1` — reversement automatique **tous les deux jours** à l'heure
        choisie.
    SettlementSettings:
      type: object
      properties:
        mode:
          $ref: '#/components/schemas/SettlementMode'
        time:
          type: string
          nullable: true
          description: Heure du règlement automatique, `HH:mm`. `null` en mode `MANUAL`.
          example: '18:00'
        timezone:
          type: string
          example: Africa/Abidjan
        lastSettlementAt:
          type: string
          format: date-time
          nullable: true
          description: Date du dernier règlement automatique exécuté.
        hasPrimaryAccount:
          type: boolean
          description: Un compte de reversement principal est requis pour `T0` / `T1`.
        primaryAccountType:
          type: string
          nullable: true
          example: wave
        fees:
          type: object
          properties:
            mobileMoneyRate:
              type: number
              example: 0.02
            bankFixed:
              type: integer
              example: 1500
    Error:
      type: object
      properties:
        statusCode:
          type: integer
          example: 401
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: Invalid API credentials
        error:
          type: string
          example: Unauthorized
  responses:
    Unauthorized:
      description: Identifiants manquants ou invalides.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 401
            message: Invalid API credentials
            error: Unauthorized
  securitySchemes:
    MerchantToken:
      type: apiKey
      in: header
      name: authenticationtoken
      description: >-
        JWT obtenu via `POST /user/login-merchant`. À passer tel quel, **sans**
        préfixe `Bearer`.

````