Anar al contingut
Sursa Developers

Visió general dels webhooks

Sursa registra un esdeveniment per cada canvi important: es publica, es verifica o s’arxiva una entrada, es llegeix un avís, una pregunta es queda sense resposta. Podeu rebre els esdeveniments de dues maneres, i podeu fer servir totes dues alhora:

WebhooksCanal d’esdeveniments
ComSursa envia cada esdeveniment a la vostra adreça HTTPS en el moment que es produeix.Llegiu GET /v1/webhook-events quan vulgueu.
LatènciaSegons.Tan sovint com consulteu el canal.
RequisitsUn receptor HTTPS públic.Només una clau d’API amb el rol admin i l’àmbit webhooks:manage.
Adequat per aReaccionar als canvis: notificar, sincronitzar, iniciar un flux de treball.Treballs per lots, posar-se al dia després d’una interrupció del servei, conciliació.

Tots dos porten els mateixos esdeveniments amb els mateixos ID. Cada esdeveniment es conserva al canal durant 30 dies, tant si hi havia algun webhook subscrit com si no.

L’esdeveniment

{
  "id": "evt_0123456789abcdef0123456789abcdef",
  "type": "card.updated",
  "created_at": "2026-10-24T10:00:03Z",
  "org_id": 1,
  "api_version": "1.60.0",
  "sequence": 1042,
  "object": {"type": "card", "id": "3f2c9a7e-5b1d-4c8e-9f0a-1b2c3d4e5f60"},
  "payload": "full",
  "data": {
    "card": {"id": "3f2c9a7e-5b1d-4c8e-9f0a-1b2c3d4e5f60", "title": "Refund policy", "collection": "support", "version": 4},
    "actor_id": 7,
    "previous_attributes": {"title": "Refunds"}
  },
  "test": false
}
CampSignificat
idL’ID de l’esdeveniment, evt_ i 32 caràcters hexadecimals. És el mateix en cada intent de lliurament i al canal.
typeQuè ha passat, en la forma <object>.<past-tense verb>: card.updated, access_request.resolved.
created_atQuan s’ha produït el canvi, en UTC.
api_versionLa versió de l’API de l’esquema que segueix data.
objectEl tipus i l’ID de l’objecte a què fa referència l’esdeveniment.
dataEls detalls. La seva forma depèn del tipus i es descriu al catàleg d’esdeveniments.
data.previous_attributesEn els esdeveniments *.updated: els valors anteriors dels camps que han canviat.
sequence, payload, testNomés als lliuraments dels webhooks: la posició en l’ordre del webhook, el mode de càrrega útil i si és un esdeveniment de prova.

data només conté el que qualsevol lector de l’objecte podria veure a través de l’API. No conté mai llistes d’accés, els permisos d’altres persones ni camps ocults. Els motius dels esdeveniments són codis neutres breus, com ara no_hits, restricted o index_failed.

Tipus d’esdeveniment

Els esdeveniments cobreixen aquestes àrees:

ÀreaExemples
Entradescard.created, card.updated, card.published, card.archived, card.deleted, card.indexed, card.index_failed
Verificaciócard.verified, card.unverified, verification.expired, verification.requested
Estructuracollection.created, folder.updated
Col·laboraciócomment.created, draft.publish_requested, announcement.sent, announcement.read
Respostesquestion.unanswered, question.feedback_created, access_request.created
Persones i accésuser.created, user.deactivated, group.member_added, api_key.expiring
Fonts i importaciósource.sync_completed, import.sync_completed, import.document_failed
Treballsjob.completed, job.failed, export.ready
Webhookswebhook.endpoint_disabled, webhook.ping

La llista completa, amb l’esquema i un exemple de cada esdeveniment, és al catàleg d’esdeveniments de la referència de l’API. GET /v1/webhooks/catalog retorna els tipus disponibles a la vostra instal·lació.

Amb el temps s’afegeixen tipus d’esdeveniment nous, i els esdeveniments existents guanyen camps. Els tipus d’esdeveniment no es reanomenen ni s’eliminen mai. El vostre receptor ha d’ometre els tipus i els camps que no conegui.

Qui rep què

Un webhook només rep un esdeveniment si l’objecte de l’esdeveniment és visible per al webhook, de la mateixa manera que per a una clau d’API: segons el seu rol, el seu perfil de dades i les seves col·leccions. Un webhook limitat a la col·lecció support no rep mai esdeveniments sobre entrades de finance. Els esdeveniments sobre persones, claus, fonts, importacions, treballs, exportacions, facturació, aplicacions i els mateixos webhooks només van als webhooks amb el rol admin.

Dins d’aquests límits, cada webhook tria els seus esdeveniments:

  • per tipus, amb màscares: card.* per a tots els esdeveniments d’entrades, * per a tots els esdeveniments;
  • per col·lecció i per etiqueta, per als esdeveniments d’entrades.

El mode de càrrega útil d’un webhook és full (l’esdeveniment amb data, per defecte) o thin (l’esdeveniment sense data: el vostre receptor llegeix l’objecte a través de l’API amb la seva pròpia clau i en veu sempre l’estat actual).

El lliurament, en resum

  • Un POST HTTPS amb l’esdeveniment en JSON, signat amb el secret del webhook en dos formats: Standard Webhooks (webhook-signature) i l’anterior X-KB-Signature.
  • Qualsevol resposta 2xx en menys de 10 segons és un èxit.
  • Un lliurament fallit es reintenta durant gairebé tres dies amb pauses cada vegada més llargues. Es respecta Retry-After en una resposta 429 o 503; 410 desactiva el webhook; 10 errors seguits el posen en pausa fins que es reprèn.
  • Els lliuraments a un webhook s’envien estrictament en ordre. Un webhook lent no endarrereix els altres.
  • El mateix esdeveniment pot arribar més d’una vegada: descarteu els duplicats per webhook-id.

Rebre webhooks explica pas a pas un receptor complet, amb la comprovació de signatures en Node.js, Python i Go.

Gestionar els webhooks

TascaPunt final
Crear un webhook i obtenir-ne el secretPOST /v1/webhooks
Canviar l’adreça, els esdeveniments o l’estatPATCH /v1/webhooks/{webhook_id}
Enviar un esdeveniment de provaPOST /v1/webhooks/{webhook_id}/test
Fer rotar el secretPOST /v1/webhooks/{webhook_id}/rotate-secret
Reprendre un webhook en pausaPOST /v1/webhooks/{webhook_id}/resume
Veure els lliuraments i les respostesGET /v1/webhooks/{webhook_id}/deliveries
Tornar a enviar un lliuramentPOST /v1/webhooks/{webhook_id}/deliveries/{delivery_id}/redeliver

Per gestionar els webhooks cal una clau amb el rol admin i l’àmbit webhooks:manage, o bé un administrador a la interfície d’administració. Una organització pot tenir fins a 20 webhooks. Els webhooks formen part del pla de l’organització; sense aquesta funció, aquests punts finals responen 403 amb el codi webhooks.feature_disabled.