Ferndesk

Webhooks

Crear un endpoint de webhook

Registra un endpoint para recibir entregas de eventos. La URL debe usar https:// (se permite http:// para localhost durante el desarrollo). La respuesta incluye el secret de firma; guárdalo para verificar las firmas de las entregas. Requiere el scope webhooks:manage.

Scope requerido: webhooks:manage

POST /webhooks

Crear un endpoint de webhook

curl --request POST \
  --url 'https://api.ferndesk.com/v1/webhooks' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "key": "value"
}'
{
  "id": "<string>",
  "url": "<string>",
  "events": [
    "<string>"
  ],
  "enabled": true,
  "description": "<string>",
  "failureCount": 1,
  "lastSuccessAt": "<string>",
  "lastFailureAt": "<string>",
  "disabledAt": "<string>",
  "createdAt": "<string>",
  "updatedAt": "<string>",
  "secret": "<string>"
}

Endpoint creado (con secret de firma)

Authorizations

  • Authorization string obligatorio header

    Todas las solicitudes requieren un token Bearer en el encabezado Authorization. Las claves de API tienen el prefijo fdsk_ y deben mantenerse secretas. Puedes generar y administrar claves desde la página de configuración del desarrollador.

    Las claves pueden restringirse a cualquier subconjunto de estos scopes (cada endpoint indica el scope que requiere mediante x-required-scopes):

    • content:read: Leer y buscar artículos, colecciones, secciones y traducciones del centro de ayuda
    • content:write: Crear y editar borradores de artículos, usuarios y tareas; mover artículos y colecciones
    • content:publish: Publicar, retirar la publicación, restaurar y enviar contenido a la papelera (aplicar cambios)
    • analytics:read: Leer informes, análisis y comentarios sobre artículos del centro de ayuda
    • conversations:read: Leer conversaciones y transcripciones del asistente de IA
    • webhooks:manage: Crear y administrar suscripciones a webhooks salientes

    Otorgar content:write o content:publish implica content:read. Las claves creadas antes de la definición de scopes tienen scopes nulos = acceso total (modo heredado).

Request Body

application/json
  • url string obligatorio

    URL de destino. Debe usar https://; http:// solo se acepta para localhost durante el desarrollo.

  • events[] string obligatorio array

    Tipos de eventos a los que se suscribe este endpoint. Usa cadenas de tipo exactas (por ejemplo, article.published) o el comodín * para recibir todos los eventos.

  • description string | null

    Etiqueta legible opcional para el endpoint.

Response

application/json
  • id string

    ID del endpoint de webhook (whep_...).

  • url string

    URL HTTPS que recibe cargas de webhook mediante POST.

  • events[] string array

    Tipos de eventos suscritos (o *).

  • enabled boolean

    Indica si el endpoint recibe entregas actualmente. Los endpoints se desactivan automáticamente después de fallos sostenidos.

  • description string | null

    Etiqueta legible opcional.

  • failureCount integer

    Fallos consecutivos de entrega. Se restablece a 0 tras cualquier éxito o al volver a habilitarse.

  • lastSuccessAt string | null
  • lastFailureAt string | null
  • disabledAt string | null

    Cuándo se desactivó automáticamente el endpoint, si corresponde.

  • createdAt string

    Marca de tiempo ISO 8601 en UTC.

  • updatedAt string

    Marca de tiempo ISO 8601 en UTC.

  • secret string

    Secret de firma (whsec_...) utilizado para verificar las firmas de las entregas. Se devuelve una sola vez, cuando se crea el endpoint; guárdalo para verificar el encabezado webhook-signature (nunca se vuelve a devolver al leerlo).