Pular para o conteúdo

Webhooks overview

Webhooks let your integration receive a signed HTTPS request when supported data changes in célula.in. They are useful when you need to synchronize people, cells, coaching groups, or cell meetings without repeatedly polling the API.

The signing protocol is Standard Webhooks 1.0.0 using the v1 HMAC-SHA256 signature scheme. The authoritative contract is the Standard Webhooks specification pinned at revision bece768d960f09e242f5cd5686d859e475d6b478. Cross-language receivers should use a verifier compatible with that revision.

Webhook payloads use JSON:API 1.0 and contain a snapshot of the affected resource at the time the event occurred.

  1. A full account administrator creates an endpoint and chooses its event subscriptions.
  2. célula.in returns a signing secret once and places the endpoint in pending-verification.
  3. célula.in sends a signed verification request. Your server echoes its challenge in a 2xx response.
  4. The endpoint becomes active and starts receiving subscribed events.
  5. Your server verifies every signature, processes each event idempotently, and returns a 2xx response.

Webhook capture and delivery are retry-capable but best-effort, not guaranteed. A capture or fan-out failure, or an endpoint lifecycle or eligibility check, can prevent an HTTP attempt. Continue reconciling your data through the API so that a missed webhook does not become a missed update.

For eligible requests that reach HTTP transport, timeouts, lost responses, and retries can cause the same event to be sent more than once. Deliveries can also arrive out of order. Use Webhook-Id as the event’s idempotency key and do not depend on delivery order.

  • person.created
  • person.updated
  • person.merged
  • cell.created
  • cell.updated
  • coaching-group.created
  • coaching-group.updated
  • cell-meeting.created
  • cell-meeting.updated

All current event types use schema version 1. You can also discover the live catalog with GET /v1/webhook-event-types.

  • Only public HTTPS destinations are accepted. URLs containing credentials or fragments, local hostnames, and private or otherwise non-public IP addresses are rejected.
  • An account can have up to 10 live webhook endpoints, and each live destination URL must be unique within the account.
  • Endpoint secrets are returned only when an endpoint is created, its URL changes, or its secret is rotated. Store them securely when returned.
  • Events that occur while an endpoint is pending verification or paused are suppressed and are not sent later. Adding a subscription does not backfill earlier events.
  • An event and all of its delivery and attempt history expire 30 days after the original event was captured. Manual redelivery does not start or extend this window, so a redelivery requested near expiration may have only the remaining hours for retries and inspection.
  • Event payloads are limited to 256 KiB. Each to-many relationship contains at most 500 identifiers and reports truncation metadata when capped.