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

# Disparar un webhook

> Recibe un callback de webhook y dispara la ejecución del workflow asociado. La ruta se resuelve dinámicamente contra el registro de webhooks; cada workflow puede registrar su propia ruta de webhook. En tiempo de ejecución también se aceptan los métodos GET, PUT, DELETE y PATCH, así como rutas anidadas con múltiples segmentos.



## OpenAPI

````yaml es/openapi/v3-current/flowker.yaml post /v1/webhooks/{path}
openapi: 3.1.0
info:
  description: >-
    Referencia completa de la API para los servicios de orquestación de
    workflows de Flowker, incluyendo gestión de catálogo, definiciones de
    workflows, configuraciones de executor, configuraciones de provider y
    ejecuciones de workflows.
  title: API de Flowker
  version: 1.2.0
servers:
  - url: https://flowker.sandbox.lerian.net
security:
  - BearerAuth: []
tags:
  - name: Catalog API
    description: >-
      Explora los providers, executors y triggers integrados disponibles en el
      catálogo de Flowker.
  - name: Workflows API
    description: >-
      Crea, actualiza, activa, desactiva, clona y elimina definiciones de
      workflows.
  - name: Executions API
    description: Inicia ejecuciones de workflows y rastrea su estado y sus resultados.
  - name: Executor Configurations API
    description: >-
      Lista, consulta, actualiza y elimina los registros de configuración de
      executor que mantiene un despliegue.
  - name: Provider Configurations API
    description: >-
      Crea, actualiza, habilita y deshabilita las configuraciones de provider
      por las que llaman los nodes de workflow.
  - name: Dashboard API
    description: >-
      Recupera resúmenes agregados de workflows y ejecuciones para dashboards
      operacionales.
  - name: Webhooks API
    description: >-
      Recibe callbacks de webhooks desde sistemas externos para disparar
      ejecuciones de workflows.
  - name: Schedule API
    description: >-
      Inspecciona las ocurrencias programadas próximas, omitidas y retenidas de
      un workflow, y ejecuta o descarta las retenidas.
  - name: Schema Registry API
    description: >-
      Publica versiones globales de especificación OpenAPI para servicios
      nativos y fija la versión que resuelve cada tenant.
  - name: OpenAPI Schemas API
    description: >-
      Sube, consulta y elimina los esquemas OpenAPI externos del tenant, y
      deriva el contrato de una operación concreta.
  - name: XSD Schemas API
    description: >-
      Sube, consulta y elimina los esquemas XSD del tenant que validan las
      cargas XML de los webhooks.
paths:
  /v1/webhooks/{path}:
    post:
      tags:
        - Webhooks API
      summary: Disparar un webhook
      description: >-
        Recibe un callback de webhook y dispara la ejecución del workflow
        asociado. La ruta se resuelve dinámicamente contra el registro de
        webhooks; cada workflow puede registrar su propia ruta de webhook. En
        tiempo de ejecución también se aceptan los métodos GET, PUT, DELETE y
        PATCH, así como rutas anidadas con múltiples segmentos.
      operationId: triggerWebhook
      parameters:
        - description: >-
            Ruta de webhook registrada por un workflow. Soporta rutas anidadas
            con múltiples segmentos en tiempo de ejecución. Las barras
            diagonales dentro de la ruta deben codificarse como `%2F` según RFC
            3986/OpenAPI 3.1 (por ejemplo, use `orders%2Fpaid` para
            `orders/paid`).
          in: path
          name: path
          required: true
          schema:
            type: string
        - description: >-
            Clave de idempotencia opcional para evitar ejecuciones duplicadas a
            partir de la misma entrega de webhook.
          in: header
          name: Idempotency-Key
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              description: >-
                Payload del webhook proveniente del sistema externo. Flowker
                inyecta metadatos del webhook (clave `_webhook` con método,
                ruta, headers, parámetros de query e IP remota) antes de pasarlo
                al workflow.
          application/xml:
            schema:
              type: object
              additionalProperties: true
              description: >-
                Payload del webhook del sistema externo, codificado como XML
                cuando el trigger ejecuta un contrato XML de XSD u OpenAPI.
        description: Payload del webhook. Tamaño máximo de 1 MB.
        required: false
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionResultsOutput'
          description: >-
            El workflow terminó dentro de la ventana síncrona. El cuerpo lleva
            los resultados de negocio finales. Una ruta XML devuelve el
            documento `<results>` equivalente.
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
            application/xml:
              schema:
                $ref: '#/components/schemas/ExecutionCreateOutput'
          description: >-
            Ejecución aceptada. El cuerpo lleva el comprobante de una ejecución
            asíncrona, o de una ejecución síncrona que superó su ventana de
            espera. Una ruta XML devuelve el documento `<execution>`
            equivalente.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: >-
            Indica que el cuerpo de la solicitud está mal formado o no pudo ser
            procesado.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: >-
            No autorizado. La solicitud no lleva un token Bearer válido, o quien
            llama no tiene el permiso `execute` sobre el recurso `webhooks`.
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: >-
            No hay ningún webhook registrado para esta ruta y método HTTP, o el
            workflow asociado no fue encontrado.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: >-
            Clave de idempotencia duplicada; esta entrega de webhook ya fue
            procesada.
        '413':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: El payload del webhook excede el límite de tamaño de 1 MB.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: >-
            El workflow asociado no está en estado activo y no puede ser
            ejecutado.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookErrorResponse'
          description: >-
            Indica un error interno inesperado. Si persiste, contacta al
            soporte.
components:
  schemas:
    ExecutionResultsOutput:
      example:
        executionId: f7e6d5c4-b3a2-1098-7654-321fedcba098
        workflowId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        status: completed
        stepResults:
          - stepNumber: 1
            stepName: action_log-event
            nodeId: log-event
            status: completed
            output:
              action: log
            executedAt: '2026-03-17T14:35:00Z'
            durationMs: 0
        finalOutput:
          workflow:
            transactionId: txn-98765
            amount: 1500
            currency: BRL
            customerId: cust-12345
            message: Payment received
        startedAt: '2026-03-17T14:35:00Z'
        completedAt: '2026-03-17T14:35:00Z'
      properties:
        completedAt:
          description: Marca de tiempo de cuando finalizó la ejecución.
          example: '2026-03-17T14:35:12Z'
          format: date-time
          type: string
        executionId:
          description: Identificador único de la ejecución.
          example: f7e6d5c4-b3a2-1098-7654-321fedcba098
          format: uuid
          type: string
        finalOutput:
          additionalProperties:
            type: object
          description: Salida agregada del último paso o el resultado final del workflow.
          example:
            workflow:
              transactionId: txn-98765
              amount: 1500
              currency: BRL
              customerId: cust-12345
              message: Payment received
          type: object
        startedAt:
          description: Marca de tiempo de cuando se inició la ejecución.
          example: '2026-03-17T14:35:00Z'
          format: date-time
          type: string
        status:
          description: Estado final de la ejecución.
          example: completed
          type: string
        stepResults:
          description: Lista ordenada de resultados para cada paso ejecutado.
          items:
            $ref: '#/components/schemas/StepResultOutput'
          type: array
        workflowId:
          description: ID del workflow que fue ejecutado.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          format: uuid
          type: string
      type: object
    ExecutionCreateOutput:
      properties:
        executionId:
          description: Identificador único de la ejecución.
          example: f7e6d5c4-b3a2-1098-7654-321fedcba098
          format: uuid
          type: string
        startedAt:
          description: Marca de tiempo de cuando se inició la ejecución.
          example: '2026-03-17T14:35:00Z'
          format: date-time
          type: string
        status:
          description: Estado inicial de la ejecución (siempre `pending`).
          example: running
          type: string
        workflowId:
          description: ID del workflow que se está ejecutando.
          example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
          format: uuid
          type: string
      type: object
    WebhookErrorResponse:
      description: Cuerpo de error que devuelve una ruta de webhook JSON.
      properties:
        code:
          description: Código de error de Flowker, estable y legible por máquina.
          example: FLK-0361
          type: string
        message:
          description: Explicación legible de esta ocurrencia.
          example: no webhook registered for this path and method
          type: string
        title:
          description: >-
            Frase de estado HTTP estándar correspondiente al status de la
            respuesta.
          example: Not Found
          type: string
      type: object
    StepResultOutput:
      properties:
        durationMs:
          description: Tiempo empleado para ejecutar este paso, en milisegundos.
          example: 0
          type: integer
        errorMessage:
          description: Mensaje de error si el paso falló. Nulo en caso de éxito.
          type: string
        executedAt:
          description: Marca de tiempo de cuando se ejecutó este paso.
          example: '2026-03-17T14:35:02Z'
          format: date-time
          type: string
        nodeId:
          description: ID del node del workflow que fue ejecutado.
          example: log-event
          type: string
        output:
          additionalProperties:
            type: object
          description: Datos de salida producidos por este paso.
          example:
            action: log
          type: object
        status:
          description: 'Estado de este paso: `completed`, `failed` o `skipped`.'
          example: completed
          type: string
        stepName:
          description: Nombre legible por humanos del paso.
          example: action_log-event
          type: string
        stepNumber:
          description: >-
            Posición de este paso en la secuencia de ejecución (indexado desde
            1).
          example: 1
          type: integer
      type: object
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Token bearer JWT emitido por el provider de identidad. Envíalo en la
        cabecera Authorization como `Bearer <token>`.

````