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

# Annuler un retrait

> Annule un retrait tant qu'il est encore en attente et recrédite le wallet

<Note>
  Fonctionne uniquement si le retrait est encore `PENDING`. Dans tout autre statut, renvoie `409` :

  ```json theme={null}
  { "message": "Settlement '<status>', attendu 'PENDING'.", "code": "invalid_status" }
  ```
</Note>


## OpenAPI

````yaml api-reference/openapi.json POST /settlements/{id}/cancel/
openapi: 3.1.0
info:
  title: SasPay API
  description: >-
    API d'encaissement et de paiement mobile money/carte pour l'Afrique de
    l'Ouest et du Centre. Toutes les routes marchand nécessitent une clé API
    secrète (header Authorization: Bearer sk_...).
  version: 1.0.0
servers:
  - url: https://api.saspay.me/api/v1
security:
  - bearerAuth: []
paths:
  /settlements/{id}/cancel/:
    post:
      tags:
        - Retraits
      summary: Annuler un retrait
      description: >-
        Fonctionne uniquement si le retrait est encore PENDING. Recrédite le
        wallet automatiquement.
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
            example:
              reason: Erreur de montant
      responses:
        '200':
          description: Retrait annulé
          content:
            application/json:
              example:
                id: 9f0a1b2c-1111-2222-3333-444455556666
                reference: 6c9e1a2b-3333-4444-5555-666677778888
                merchant: 8a1f5c3e-0000-1111-2222-333344445555
                payout_method: b3e1c2d4-1111-2222-3333-444455556666
                country: BJ
                requested_amount: '150000.00'
                fee_charge_mode: DEDUCTED
                client_fee: '1500.00'
                gateway_fee: '500.00'
                platform_fee: '1000.00'
                fee_config: standard_payout_fee
                debited_amount: '150000.00'
                net_amount: '148500.00'
                currency: XOF
                status: CANCELLED
                approved_by_admin: null
                approved_at: null
                executed_at: null
                completed_at: null
                proof_url: null
                failure_reason: null
                created_at: '2026-08-12T10:05:00Z'
                updated_at: '2026-08-12T10:05:00Z'
        '409':
          description: Le retrait n'est pas (ou plus) PENDING
          content:
            application/json:
              example:
                message: Settlement 'SUCCESS', attendu 'PENDING'.
                code: invalid_status
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: sk_live_... / sk_test_...
      description: >-
        Clé API secrète du marchand — header Authorization: Bearer sk_live_xxx
        (ou sk_test_xxx en environnement de test).

````