Skip to main content
Outbound webhooks are not available yet. This page describes what is planned so you can design your integration without having to redo it later.

In the meantime: incremental polling

For almost every case, polling every 30 seconds with updated_since or since gives you the same information at far lower complexity. See Pagination. With a quota of 120 requests per minute, polling every 30 seconds uses two.

What is planned

Events that will be emitted:

Formats

Alongside the native JSON format, there will be direct output to Discord and Slack via their incoming webhooks, so operational alerts can be dropped into a team channel without writing code: duplicate accreditations, denied access at a specific door, or blocked wristbands.

Delivery

  • HMAC-SHA256 signature in the X-Ventry-Signature header, over the raw body.
  • Retries with exponential backoff on non-2xx responses.
  • Manual redelivery from the VENTRY dashboard.
  • At-least-once delivery: your receiver will need to be idempotent and deduplicate by event identifier.

What you can do now to prepare

Whether by polling or by webhook, you will see the same record more than once. Deduplicate by the resource id, not by arrival order.
A terminal without connectivity syncs in bulk. You may receive a 22:00 sale after a 23:00 one. Sort by occurred_at on your side.
Store what you receive and process it separately. That is what will let you swap polling for webhooks without touching your business logic.