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

# Message programmé

> Programme un message texte en one-shot, persisté dans Redis (survit aux redémarrages)

<Note>
  Le quota journalier est consommé **au moment de la programmation**, pas à
  l'envoi. Si `sendAt` est dans le passé, le message est envoyé immédiatement.
</Note>

Pour suivre le statut d'un message programmé, utilisez [Historique](/api-reference/messages/history) avec le filtre `?status=PENDING`. Une fois traité, le statut passe à `SENT` ou `FAILED`.


## OpenAPI

````yaml api-reference/openapi.json POST /sessions/{sessionId}/messages/schedule
openapi: 3.1.0
info:
  title: WaaConnect API
  description: >-
    API WhatsApp multi-sessions de WaaConnect. Toutes les routes de messagerie
    sont préfixées par /sessions/:sessionId/ et nécessitent le header x-api-key.
  version: 1.0.0
servers:
  - url: https://api.waaconnect.com/v1
security:
  - apiKey: []
paths:
  /sessions/{sessionId}/messages/schedule:
    post:
      tags:
        - Campagnes
      summary: Programmation de message (one-shot)
      description: >-
        Le job est persisté dans Redis via BullMQ — survit aux redémarrages du
        serveur.
      parameters:
        - name: sessionId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - to
                - message
              properties:
                to:
                  type: string
                message:
                  type: string
                sendAt:
                  type: string
                  description: ISO 8601, prioritaire sur delayMs
                delayMs:
                  type: integer
                isGroup:
                  type: boolean
            examples:
              Avec date précise (recommandé):
                value:
                  to: '22997000000'
                  message: 'Rappel : votre rendez-vous est dans 1h.'
                  sendAt: '2026-05-21T18:00:00Z'
              Avec délai relatif:
                value:
                  to: '22997000000'
                  message: Message dans 10 minutes
                  delayMs: 600000
      responses:
        '200':
          description: Programmé
          content:
            application/json:
              example:
                ok: true
                scheduledInMs: 3600000
                sendAt: '2026-05-21T18:00:00.000Z'
                messageId: uuid-du-message-en-base
                jobId: '42'
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key

````