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

# Enviar confirmación o recordatorio de cita

> Envía una notificación al paciente por WhatsApp usando una plantilla aprobada por Meta, referenciada por `templateId`.

- Úsalo para enviar la **confirmación de cita** justo después de agendar.
- Úsalo también para enviar el **recordatorio** antes del día de la cita.
- Las plantillas y sus variables se configuran en el panel de Omniloy.




## OpenAPI

````yaml /openapi/openapi-maria.yaml post /whatsapp/messages/template
openapi: 3.1.0
info:
  title: marIA API
  version: 1.0.0
  description: >
    marIA es el agente de voz de Omniloy que atiende llamadas entrantes de
    pacientes en hospitales y clínicas.

    - Voice / Telefonía: el paciente llama y marIA responde, gestiona citas con
    el EHR/HIS, responde FAQs y escala a humano cuando es necesario.

    - Notificaciones WhatsApp: confirmaciones y recordatorios de cita por
    plantilla aprobada.

    - Centros y servicios: consulta y gestión de centros, especialidades y
    coberturas configuradas en marIA.

    - Base de conocimiento FAQ: documentos que alimentan el conocimiento del
    agente sobre centros y servicios.

    - Llamadas salientes y cuestionarios: programación outbound y cuestionarios
    de seguimiento.

    - Integración EHR/HIS mediante webhooks: marIA ⇄ Hospital para beneficios,
    huecos y citas.

    - Gestión de webhooks: registro y configuración de endpoints para recibir
    eventos de marIA.

    Los webhooks top‑level notifican eventos (p. ej. estado de llamadas, citas)
    firmados con `webhookHmac`.
servers:
  - url: https://{your-prod-endpoint}
    description: Producción
    variables:
      your-prod-endpoint:
        default: your-prod-endpoint
        description: Sustituye este valor por el host real antes de probar la petición.
  - url: https://{your-dev-endpoint}
    description: Staging
    variables:
      your-dev-endpoint:
        default: your-dev-endpoint
        description: Sustituye este valor por el host de staging o desarrollo.
security: []
tags:
  - name: Health
    description: Estado y disponibilidad del servicio.
  - name: Centers
    description: Centros médicos con sus servicios y coberturas configurados en marIA.
  - name: WhatsApp Notifications
    description: Envío de confirmaciones y recordatorios de cita por plantilla de WhatsApp.
  - name: FAQ
    description: >-
      Documentos FAQ para que el agente pueda responder preguntas sobre centros
      y servicios.
  - name: Webhooks - Appointments
    description: Eventos de citas integradas con el EHR/HIS.
  - name: Webhooks - Voice
    description: >-
      Eventos de telefonía (estado de llamada, escalado, respuestas y
      transcripciones).
  - name: Voice Calls
    description: Gestión de llamadas entrantes y salientes registradas en MarIA Core.
  - name: Voice Answers
    description: Acceso y filtrado de respuestas capturadas durante llamadas.
  - name: Voice Transcripts
    description: Acceso a transcripciones y enlaces de grabación.
  - name: Content - Questionnaires
    description: Definición de cuestionarios para llamadas salientes.
  - name: Questionnaire Instances
    description: Estado, revisión y resultados de instancias de cuestionario.
  - name: Scheduling - Time Ranges
    description: Rangos horarios reutilizables para programar llamadas.
  - name: Gestión de webhooks
    description: Configuración y gestión de webhooks; endpoints para integradores.
paths:
  /whatsapp/messages/template:
    post:
      tags:
        - WhatsApp Notifications
      summary: Enviar confirmación o recordatorio de cita
      description: >
        Envía una notificación al paciente por WhatsApp usando una plantilla
        aprobada por Meta, referenciada por `templateId`.


        - Úsalo para enviar la **confirmación de cita** justo después de
        agendar.

        - Úsalo también para enviar el **recordatorio** antes del día de la
        cita.

        - Las plantillas y sus variables se configuran en el panel de Omniloy.
      operationId: send-whatsapp-template
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TemplateIdMessage'
            examples:
              confirmacion:
                summary: Confirmación de cita
                value:
                  phoneNumber: '+34600111222'
                  templateId: 2f3f8e64-2a1d-4b73-b7e4-9f0a7d6f8e10
                  params:
                    - Dr. García
                    - martes 15 de julio
                    - '11:00'
                    - Cardiología - Centro Norte
              recordatorio:
                summary: Recordatorio de cita
                value:
                  phoneNumber: '+34600111222'
                  templateId: 8a1c3d22-5f9e-4b12-a7c1-0e3f2a8b9d44
                  params:
                    - mañana martes 15 de julio
                    - '11:00'
      responses:
        '202':
          description: Notificación aceptada para envío
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotificationResponse'
        '401':
          description: No autorizado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDto'
      security:
        - apiKeyAuth: []
components:
  schemas:
    TemplateIdMessage:
      type: object
      description: Notificación por plantilla de WhatsApp referenciada por UUID.
      required:
        - phoneNumber
        - templateId
      properties:
        phoneNumber:
          type: string
          description: Número E.164 del destinatario.
        templateId:
          type: string
          format: uuid
          description: UUID de la plantilla aprobada por Meta.
        params:
          type: array
          description: Valores (en orden) para las variables de la plantilla.
          items:
            type: string
        mediaUrl:
          type: string
          format: uri
          description: URL de media opcional.
    NotificationResponse:
      type: object
      description: Respuesta al enviar notificación.
      properties:
        messageId:
          type: string
          description: ID interno.
        status:
          type: string
          enum:
            - queued
            - sent
          description: Estado inicial.
    ErrorDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - error
        code:
          type: integer
        error_code:
          type: string
        message:
          type: string
      required:
        - status
        - code
        - error_code
        - message
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: >-
        API Key proporcionada por Omniloy. La misma key se usa para llamadas
        entrantes y salientes.

````