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

# Créer un abonnement

> Abonne un webhook existant à un type d'event

<Note>
  Un webhook ne peut être abonné qu'une seule fois au même `event_type`. Si vous retentez, vous recevrez actuellement une erreur serveur générique plutôt qu'un message dédié — vérifiez d'abord la liste de vos abonnements existants avant de créer.
</Note>


## OpenAPI

````yaml api-reference/openapi.json POST /merchant-webhook-subscriptions/
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:
  /merchant-webhook-subscriptions/:
    post:
      tags:
        - Webhooks
      summary: Créer un abonnement
      description: >-
        Un webhook ne peut être abonné qu'une seule fois au même event_type — un
        doublon renvoie actuellement une erreur serveur générique plutôt qu'un
        message dédié.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                webhook:
                  type: string
                  format: uuid
                event_type:
                  type: string
                  enum:
                    - transaction.created
                    - transaction.success
                    - transaction.failed
                    - transaction.cancelled
                    - settlement.requested
                    - settlement.approved
                    - settlement.success
                    - settlement.failed
                    - settlement.cancelled
                    - wallet_transfer.requested
                    - wallet_transfer.completed
                    - wallet_transfer.rejected
                    - webhook.test
              required:
                - webhook
                - event_type
            example:
              webhook: c1d2e3f4-1111-2222-3333-444455556666
              event_type: transaction.success
      responses:
        '201':
          description: Abonnement créé
          content:
            application/json:
              example:
                id: d2e3f4a5-1111-2222-3333-444455556666
                webhook: c1d2e3f4-1111-2222-3333-444455556666
                event_type: transaction.success
                created_at: '2026-08-01T09:05:00Z'
                updated_at: '2026-08-01T09:05:00Z'
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).

````