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

# Agendar mensagem

> Agenda uma mensagem para envio futuro. O body deve ser enviado como `multipart/form-data`. Em integrações WhatsApp Oficial, use `type: template` com `templateName` e variáveis.



## OpenAPI

````yaml https://api.jurichat.com/docs/client/openapi.json post /scheduled-message/
openapi: 3.1.0
info:
  title: JuriChat API — Documentação para Integradores
  description: ''
  version: 1.0.0
servers:
  - url: https://api.jurichat.com
    description: Production server
security:
  - apiKeyAuth: []
tags: []
paths:
  /scheduled-message/:
    post:
      tags:
        - ScheduledMessages
      summary: Agendar mensagem
      description: >-
        Agenda uma mensagem para envio futuro. O body deve ser enviado como
        `multipart/form-data`. Em integrações WhatsApp Oficial, use `type:
        template` com `templateName` e variáveis.
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                conversationId:
                  description: >-
                    ID da conversa. Enviado como campo de formulário
                    (`multipart/form-data`).
                message:
                  description: Texto da mensagem. Obrigatório quando `type` for `text`.
                type:
                  description: >-
                    Tipo da mensagem: `text`, `audio`, `image`, `video`,
                    `document`, `contact` ou `template`.
                file:
                  description: Arquivo de mídia. Obrigatório para tipos de mídia.
                caption:
                  description: Legenda da mídia. Opcional.
                fileName:
                  description: Nome do arquivo para documentos. Opcional.
                contactName:
                  description: Nome do contato. Obrigatório quando `type` for `contact`.
                contactPhoneNumber:
                  description: >-
                    Telefone do contato. Obrigatório quando `type` for
                    `contact`.
                scheduledAt:
                  description: Data e hora de envio no formato ISO 8601.
                templateName:
                  description: >-
                    Nome do template WhatsApp. Obrigatório quando `type` for
                    `template`.
                variables:
                  description: >-
                    Variáveis do corpo do template em JSON array ou lista
                    separada por vírgula.
                headerVariables:
                  description: >-
                    Variáveis do cabeçalho do template em JSON array ou lista
                    separada por vírgula.
                headerVariableNames:
                  description: Nomes das variáveis do cabeçalho em JSON array.
                bodyVariableNames:
                  description: Nomes das variáveis do corpo em JSON array.
                buttonVariables:
                  description: Variáveis de botões dinâmicos do template em JSON array.
                headerMedia:
                  description: Mídia do cabeçalho do template em JSON.
              additionalProperties: false
      responses:
        '201':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: ID do agendamento.
                      conversationId:
                        type: string
                        description: ID da conversa vinculada.
                      userId:
                        type: string
                        nullable: true
                        description: >-
                          ID do usuário que criou o agendamento (null quando
                          criado por automação).
                      content:
                        description: Conteúdo da mensagem agendada.
                      type:
                        type: string
                        description: Tipo da mensagem (texto, imagem, etc.).
                      metadata:
                        nullable: true
                        description: Dados adicionais da mensagem. Null se não houver.
                      scheduledAt:
                        type: string
                        format: date-time
                        description: Data e hora programada para o envio.
                      status:
                        type: string
                        enum:
                          - PENDING
                          - SENT
                          - CANCELLED
                        description: Status do agendamento.
                      sentAt:
                        type: string
                        format: date-time
                        nullable: true
                        description: >-
                          Data e hora do envio efetivo. Null se ainda não
                          enviado.
                      createdAt:
                        type: string
                        format: date-time
                        description: Data e hora de criação.
                      updatedAt:
                        type: string
                        format: date-time
                        description: Data e hora da última atualização.
                    required:
                      - id
                      - conversationId
                      - userId
                      - type
                      - scheduledAt
                      - status
                      - sentAt
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  statusCode:
                    type: number
                  details: {}
                required:
                  - message
                  - statusCode
                additionalProperties: false
      security:
        - apiKeyAuth: []
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-jurichat-api-key
      description: >-
        Chave de API do escritório (criada no painel). Envie o valor no header
        x-jurichat-api-key.

````