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

# Disparar evento

> Dispara un evento e inicia las automatizaciones vinculadas.



## OpenAPI

````yaml /es/automations-api/api-reference/openapi-automations.json post /v1/events/send
openapi: 3.0.3
info:
  title: 'Notifique API v1: Automatizaciones y eventos'
  version: 1.0.0
  description: >-
    Definición de **eventos** (nombre + esquema `payload` opcional),
    **automatizaciones** como gráfico (activador por evento o **mensaje
    entrante** en un canal, retrasos, condiciones, incluido **`source:
    "message"`** en entrante, **`endFlow`** para finalizar una sucursal, envíos
    multicanal, actualizaciones de contactos, etc.) y **activador** mediante
    `POST /v1/events/send`. Autenticación: encabezado `Authorization: Bearer
    sk_live_...` o `x-api-key`. Todos los cuerpos usan **camelCase**.


    **Alcances:** `events:read` | `events:write` | `automations:read` |
    `automations:write`. Los pasos de envío (`sendTemplate`, correos
    electrónicos directos, etc.) aún requieren las claves de envío del canal
    correspondiente.


    **Paginación:** consulta `page` (≥1, predeterminado 1) y `limit` (1 a 100,
    predeterminado 20), como cadenas o números coherentes.


    **Espacio de trabajo bloqueado** devuelve **402** con `Payment Required`.


    **Incorporación:** en cualquier ruta `/v1`, si la incorporación está
    incompleta, el middleware devuelve **403** con `code: ONBOARDING_REQUIRED`
    (cuerpo similar a otros 403).
servers:
  - url: https://api.notifique.dev
    description: Producción
security:
  - ntfAutoBearerAuth: []
  - ntfAutoApiKeyHeader: []
tags:
  - name: Eventos
    description: CRUD de configuración de eventos + disparador `POST /v1/events/send`.
  - name: Automatizaciones
    description: CRUD de automatizaciones, listado de parada y ejecución.
  - name: Runs
    description: Historial y detalles de ejecuciones (`AutomationRun` + pasos).
paths:
  /v1/events/send:
    post:
      tags:
        - Eventos
      summary: Disparar evento
      description: Dispara un evento e inicia las automatizaciones vinculadas.
      operationId: ntfAuto_sendEvent
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          schema:
            type: string
            maxLength: 256
          description: Clave única por disparador lógico en el espacio de trabajo.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NtfAuto_EventSendBody'
      responses:
        '200':
          $ref: '#/components/responses/NtfAuto_EventSend200'
        '400':
          $ref: '#/components/responses/NtfAuto_EventSend400'
        '401':
          $ref: '#/components/responses/NtfAuto_401'
        '402':
          $ref: '#/components/responses/NtfAuto_402'
        '403':
          $ref: '#/components/responses/NtfAuto_403EventsWrite'
        '404':
          $ref: '#/components/responses/NtfAuto_EventSend404'
components:
  schemas:
    NtfAuto_EventSendBody:
      type: object
      required:
        - event
      properties:
        event:
          type: string
          maxLength: 256
          description: Nombre igual que el registro en `POST /v1/events`.
        payload:
          type: object
          additionalProperties: true
          description: Objeto; Los campos y tipos obligatorios provienen de `schemaJson`.
        contactId:
          type: string
          description: Mutuamente excluyentes con correo electrónico/teléfono.
        email:
          type: string
          format: email
        phone:
          type: string
          description: Se recomienda E.164 (ej. +5511999990000).
      description: Se debe enviar exactamente **uno** entre `contactId`, `email`, `phone`.
    NtfAuto_EventSendResponse:
      type: object
      required:
        - success
        - data
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          type: object
          required:
            - runs
          properties:
            runs:
              type: array
              items:
                type: object
                required:
                  - runId
                  - automationId
                properties:
                  runId:
                    type: string
                  automationId:
                    type: string
            idempotentReplay:
              type: boolean
              description: Presente cuando la respuesta provino del caché de idempotencia.
    NtfAuto_ErrorSend400:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: string
          description: Mensaje humano (puede repetir el significado de `code`).
        code:
          type: string
          enum:
            - RESERVED_EVENT
            - RECIPIENT_REQUIRED
            - INVALID_PAYLOAD
            - MISSING_PAYLOAD_FIELD
            - PAYLOAD_TYPE_MISMATCH
            - EVENT_NOT_DEFINED
            - CONTACT_NOT_FOUND
            - INVALID_EVENT_SCHEMA
    NtfAuto_ErrorEnvelope401:
      type: object
      required:
        - success
        - error
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: string
          example: Unauthorized
        message:
          type: string
    NtfAuto_ErrorPaymentRequired:
      type: object
      required:
        - success
        - error
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: string
          enum:
            - Payment Required
        message:
          type: string
          example: Plan expired or suspended
    NtfAuto_ErrorForbiddenScope:
      type: object
      required:
        - success
        - error
        - message
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          type: string
          enum:
            - Forbidden
        message:
          type: string
  responses:
    NtfAuto_EventSend200:
      description: >-
        Disparo aceptado. `runs` puede estar vacío; `idempotentReplay` cuando el
        mismo `Idempotency-Key` ya ha sido procesado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAuto_EventSendResponse'
          examples:
            withRuns:
              value:
                success: true
                data:
                  runs:
                    - runId: clrunxxxxxxxxxxxxxxxxx
                      automationId: clautyyyyyyyyyyyyyyyyy
            idempotent:
              value:
                success: true
                data:
                  runs:
                    - runId: clrunxxxxxxxxxxxxxxxxx
                      automationId: clautyyyyyyyyyyyyyyyyy
                  idempotentReplay: true
            noAutomations:
              value:
                success: true
                data:
                  runs: []
    NtfAuto_EventSend400:
      description: >-
        Falta `event`, prefijo reservado, `payload` no válido para el esquema o
        destinatario no válido.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAuto_ErrorSend400'
          examples:
            missingEvent:
              value:
                success: false
                error: Bad Request
                message: event is required
                code: BAD_REQUEST
            reserved:
              value:
                success: false
                error: Event name uses reserved prefix
                code: RESERVED_EVENT
                message: Event name uses reserved prefix
            recipient:
              value:
                success: false
                error: Provide exactly one of contactId, email, or phone
                code: RECIPIENT_REQUIRED
                message: Provide exactly one of contactId, email, or phone
            payloadObject:
              value:
                success: false
                error: payload must be an object
                code: INVALID_PAYLOAD
                message: payload must be an object
            missingField:
              value:
                success: false
                error: 'Missing required field: plan'
                code: MISSING_PAYLOAD_FIELD
                message: 'Missing required field: plan'
            typeMismatch:
              value:
                success: false
                error: Field userId must be a string
                code: PAYLOAD_TYPE_MISMATCH
                message: Field userId must be a string
    NtfAuto_401:
      description: >-
        Clave faltante o no válida. En el middleware global de `/v1` también
        ocurre cuando no hay una clave API.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAuto_ErrorEnvelope401'
          examples:
            route:
              value:
                success: false
                error: Unauthorized
                message: Invalid or missing API Key
                code: UNAUTHORIZED
            middleware:
              value:
                success: false
                error: Unauthorized
                message: >-
                  API Key is required. Provide Authorization: Bearer <key> or
                  x-api-key header.
                code: UNAUTHORIZED
    NtfAuto_402:
      description: Plano caducado o espacio de trabajo suspendido.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAuto_ErrorPaymentRequired'
          example:
            success: false
            error: Payment Required
            message: Plan expired or suspended
            code: WORKSPACE_BLOCKED
    NtfAuto_403EventsWrite:
      description: Sin alcance `events:write`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAuto_ErrorForbiddenScope'
          example:
            success: false
            error: Forbidden
            message: 'Missing scope: events:write'
            code: FORBIDDEN
    NtfAuto_EventSend404:
      description: Evento no registrado o contacto no encontrado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/NtfAuto_ErrorSend400'
          examples:
            event:
              value:
                success: false
                error: Event is not registered for this workspace
                code: EVENT_NOT_DEFINED
                message: Event is not registered for this workspace
            contact:
              value:
                success: false
                error: Contact not found
                code: CONTACT_NOT_FOUND
                message: Contact not found
  securitySchemes:
    ntfAutoBearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: '`Authorization: Bearer sk_live_...`'
    ntfAutoApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: Mismo valor de clave, sin prefijo de portador.

````