RevenueCat Webhook Processing

RevenueCat Webhook Processing A workflow diagram generated by Archify. 01 / Webhook router 02 / revenuecat_service 03 / Postgres (Supabase) EX / Ack / reject exits Authenticate + claim Resolve + guard Persist RevenueCat · POST event · Webhook router › Authenticate + claim · retries on non-2xx RevenueCat POST event retries on non-2xx Bearer check · [redacted] · Webhook router › Authenticate + claim Bearer check [redacted] Dedupe + claim · insert event id first · Webhook router › Authenticate + claim · claim-first Dedupe + claim insert event id first claim-first Resolve parent · app_user_id, then aliases · revenuecat_service › Resolve + guard · numeric ids only Resolve parent app_user_id, then aliases numeric ids only Guards · entitlement, product, Stripe · revenuecat_service › Resolve + guard Guards entitlement, product, Stripe Apply mutation · per event type · revenuecat_service › Persist · JWT + premium sync Apply mutation per event type JWT + premium sync processed_webhook_events · PK = event id · Postgres (Supabase) › Authenticate + claim processed_webhook_events PK = event id payment_transactions · UNIQUE(gateway, payment id) · Postgres (Supabase) › Resolve + guard payment_transactions UNIQUE(gateway, payment id) user_subscriptions · UNIQUE(parent_id) · Postgres (Supabase) › Persist user_subscriptions UNIQUE(parent_id) 400 / 401 · bad secret or body · Ack / reject exits › Authenticate + claim 400 / 401 bad secret or body 200 already_processed · no apply · Ack / reject exits › Authenticate + claim 200 already_processed no apply 200 ghost parent · anonymous id dropped · Ack / reject exits › Resolve + guard · incident root cause 200 ghost parent anonymous id dropped incident root cause 200 skipped · guard failed, nothing saved · Ack / reject exits › Resolve + guard 200 skipped guard failed, nothing saved 500 + release claim · RevenueCat retries · Ack / reject exits › Persist 500 + release claim RevenueCat retries fail claimed insert id exception seen before no numeric id pass paid / refunded row HTTPS parent found fail upsert Legend Agent logic Policy Tool action Context / trace External system