Documentación APIv1

API de Webhook Interceptor

Captura de webhooks, Pipe Studio (flows, versiones, ejecutar), gestión de endpoints, privacidad, enlaces compartidos y límites por plan.

Las rutas protegidas aceptan tu sesión en el navegador o una clave API desde Cuenta: Authorization: Bearer <evp_…> o X-Api-Key.

Producto

Pipe Studio y Event Pipe

Un flow es un handler versionado asociado a tu endpoint de webhook. Defines disparadores, publicas TypeScript (y opcionalmente un pipe declarativo en JSON), versiones inmutables y ejecuciones de prueba sobre el grafo publicado—lo mismo que el panel, vía API.

  • Lista y crea flows por endpoint; cada flow tiene historial de versiones lineal.
  • Publica bundles con `settings.pipe` validado (v3) y artefactos de código; los webhooks de producción invocan la versión activa del flow habilitado.
  • Execute simula la versión publicada con un cuerpo JSON—útil antes y después del deploy.

Aplican límites por plan: flows por endpoint, timeout de ejecución, cajas code y pasos HTTP—ver Precios. El acceso programático usa la misma auth que el dashboard (cookie o clave API).

Empieza aquí

Inicio rápido en 60 segundos

Tres pasos para ver tu primer evento en el inspector. Los enlaces usan tu origen actual: http://localhost:3000.

Todas las URLs de captura y fragmentos de esta página usan el ID de ejemplo … (único en cada visita) para no chocar con tus endpoints reales.

1

Crea tu endpoint

En la home elige un ID único (ej. stripe-orders-prod) y crea el endpoint. Sin servidor ni tarjeta.

2

Envía un webhook de prueba

Haz POST con JSON a la URL de captura usando el ID de ejemplo …. Solo sirve para esta documentación; en producción usa tu propio ID.

3

Abre el inspector

Revisa cabeceras, cuerpo y línea de tiempo en vivo. El enlace de demo usa el mismo ID de ejemplo ….

Generando un ID de ejemplo único…

POST/api/webhook/{id}

Capturar webhook

Captura cualquier petición entrante para inspeccionar el payload.

Auth: No requerida. Endpoints privados exigen x-webhook-key.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true, "webhookId": "uuid" }
GET/api/webhook/{id}?_dashboard=1

Lectura dashboard

Devuelve el historial del endpoint para UI/dashboard.

Auth: Sesión o clave API en endpoints privados (propietario o colaborador aprobado).

Petición

Generando un ID de ejemplo único…

Respuesta

{ "endpoint": {...}, "events": [...] }
POST/api/webhook/register

Registrar endpoint (auth)

Registra un ID de webhook para un usuario autenticado.

Auth: Cookie de sesión o clave API (Bearer / X-Api-Key). Respeta límites del plan y ownership.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
POST/api/webhook/register-guest

Registrar endpoint (invitado)

Registra un endpoint en modo invitado y emite guest_id firmado.

Auth: No requerida. Límites free vía cookie firmada.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
GET/api/account

Resumen de cuenta

Resumen de plan, política y uso (endpoints + solicitudes mensuales).

Auth: Opcional. Sesión, clave API o sin auth (contexto invitado/free).

Petición

Generando un ID de ejemplo único…

Respuesta

{ "tier": "FREE", "policy": {...} }
GET/api/account/endpoints

Listar endpoints propios

Lista endpoints del propietario con privacidad y metadatos.

Auth: Sesión o clave API.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "endpoints": [...] }
DELETE/api/account/endpoints/{id}

docsApi.endpoints.delete-endpoint.title

docsApi.endpoints.delete-endpoint.description

Auth: docsApi.endpoints.delete-endpoint.auth

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
PATCH/api/account/endpoints/{id}/privacy

Alternar privacidad

Activa o desactiva endpoint privado y devuelve accessKey cuando aplica.

Auth: Sesión o clave API. Endpoints privados desde plan STARTER.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true, "isPrivate": true, "accessKey": "hex" }
POST/api/account/endpoints/{id}/share

Crear enlace compartido

Genera enlace compartido para endpoint privado con caducidad.

Auth: Sesión o clave API. Solo propietario.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
DELETE/api/account/endpoints/{id}/access

Listar/revocar acceso

Lista colaboradores con acceso y revoca por userId.

Auth: Sesión o clave API. Solo propietario.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
GET/api/account/access-requests

Bandeja de solicitudes

Solicitudes de acceso pendientes a tus endpoints.

Auth: Sesión o clave API.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "requests": [...] }
PATCH/api/account/access-requests/{requestId}

Aprobar/rechazar solicitud

Aprueba o rechaza una solicitud de acceso (approve | reject).

Auth: Sesión o clave API. Solo propietario del endpoint.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
POST/api/share/{token}/accept

Aceptar token compartido

Convierte un token compartido en solicitud de acceso pendiente.

Auth: Sesión o clave API.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true }
GET/api/account/flows

Listar flows

Devuelve los flows del usuario autenticado, opcionalmente filtrados por endpointId.

Auth: Sesión o clave API.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "flows": [ { "id", "endpoint_id", "name", "status", "current_version_id" } ] }
POST/api/account/flows

Crear flow

Crea un flow en un endpoint tuyo; genera versión inicial si tiene éxito.

Auth: Sesión o clave API. El plan debe permitir automatización (ver límites).

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true, "flowId": "uuid", "version": 1 }
GET/api/account/flows/{flowId}

Obtener flow y versiones

Devuelve la fila del flow y todas las versiones (incluye settings.pipe si existe).

Auth: Sesión o clave API. Solo propietario.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "flow": {...}, "versions": [ { "version", "settings", "build_status" } ] }
POST/api/account/flows/{flowId}/versions

Publicar versión del flow

Crea una nueva versión con bundleCode y settings (pipe validado en servidor).

Auth: Sesión o clave API. Solo propietario.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true, "version": { "version": 2 } }
POST/api/account/flows/{flowId}/execute

Ejecutar flow (prueba)

Ejecuta la versión publicada con un cuerpo sintético—mismo runtime que producción, acotado a tu cuenta.

Auth: Sesión o clave API. Solo propietario.

Petición

Generando un ID de ejemplo único…

Respuesta

{ "success": true, "result": { "status", "output", "logs", "durationMs" } }

Errores estándar

CódigoCuándo ocurreEjemplo
400Cuerpo inválido o falta un campo obligatorio{ "error": "webhookId is required" }
401Usuario no autenticado en rutas protegidas{ "error": "Unauthorized" }
402Límite del plan o función no disponible{ "error": "Private endpoints are available from STARTER tier" }
403Sin permiso sobre el recurso del propietario{ "error": "Forbidden" }
404Recurso no encontrado{ "error": "Endpoint not found" }
409Conflicto de ownership o ID de webhook en uso{ "error": "This webhook ID is already owned by another user" }
410Enlace compartido caducado{ "error": "Share link expired" }

Fragmentos de integración

Usa el mismo ID de ejemplo que el inicio rápido: ….

Generando un ID de ejemplo único…