Skip to content

app.stripe_events

TableRow level security on

Stripe webhook events, stored once per Stripe event id so a redelivered event is never applied twice (idempotent ingestion). The payload is the provider payload (ADR 0002).

Primary key: id

Columns of app.stripe_events
ColumnTypeNullableDescription
iduuidNoPrimary key, UUID v7.
org_iduuidYesOrg the event concerns, resolved from the Stripe customer or subscription metadata when the event is stored; null for events of no org. It never changes afterwards.References app.organizations.id
stripe_event_idtextNoStripe event id (evt_...), unique.
event_typetextNoStripe event type, such as customer.subscription.updated.
livemodebooleanNoTrue for live mode events; test mode events never touch live orgs.
stripe_created_attimestamp with time zoneNoWhen Stripe created the event.
payloadjsonbNoEvent payload as Stripe sent it, after signature verification.
received_attimestamp with time zoneNoWhen the webhook arrived. Set by the database.
processed_attimestamp with time zoneYesWhen the event was applied.
processing_errortextYesWhy applying the event failed; it is retried.
attemptssmallintNoApply attempts so far.
created_attimestamp with time zoneNoWhen the row was inserted. Set by the database.
created_byuuidYesPerson who inserted the row, or null for a platform process. Set by the database.References app.people.id
updated_attimestamp with time zoneNoWhen the row last changed. Set by the database.
updated_byuuidYesPerson who last changed the row, or null for a platform process. Set by the database.References app.people.id
deleted_attimestamp with time zoneYesSoft delete time. A row with deleted_at set is ignored by every access helper.