Stripe
Data flow
How an event travels from Stripe into Verlix, by webhook and by polling.
Verlix learns about Stripe activity in two independent ways. Either one alone would work. Together they cover each other's gaps.
Stripe event
|
|--- webhook, pushed within seconds ---+
| v
| verify signature
| |
|--- polled about every 5 minutes ------+
v
stored unchanged in VerlixWebhooks#
When something happens in your Stripe account, Stripe posts the event to a URL that is unique to your connection. Verlix checks the signature, stores the event, and only then answers Stripe. That order matters: if storing fails, Stripe sees an error and retries, so an acknowledged event is a stored event.
The details, including the responses Stripe can receive, are on Webhook delivery.
Polling#
Webhooks can be missed, for example during an outage on either side. So Verlix also asks Stripe for recent events on a schedule.
- Cadence. About every five minutes. While the account is quiet the wait stretches, up to one hour.
- Paging. Events are read newest first, 100 at a time. Verlix remembers the last event it saw and resumes from there on the next run.
- Overlap. Each run reaches slightly back so nothing falls between two runs. That means an event can be seen twice.
- Pressure. If Stripe answers that Verlix is going too fast, Verlix waits and tries later. Repeated failures pause polling for that source for 10, then 30, then 60 minutes.
What is stored#
Every event is kept with its body untouched. Verlix does not reformat, re-serialise or reinterpret it, so an amount such as 1.10 stays 1.10. Alongside the body, Verlix records which tenant and connection it belongs to, when it arrived, and the event's own creation date, which decides where it is filed.
Treat delivery as at least once
The same Stripe event can arrive more than once, through a webhook retry or a polling overlap, and events are not guaranteed to arrive in order. Make anything you build on top idempotent, and use the event's Stripe id as the key.
What is not here#
This connector lands events. It does not map Stripe fields onto other objects, match customers, or convert currencies. Those are separate concerns and are not described in this section.