This page is for the moment mid-build when subscriptions work in RevenueCat and the next question is "now what do I do with a subscriber?" The answer this integration ships: every purchase, renewal, cancellation, and expiration RevenueCat observes becomes server-side state in Amba — an entitlement your app gates features on, subscription properties segments filter by, and events that can trigger rewards and push. You write no webhook handler, host no server, and parse no receipts. The setup below is the whole shipped surface, verified against the live pipeline; the step-by-step depth lives in the docs, linked throughout.
What does the RevenueCat integration sync?
One direction, continuously: RevenueCat delivers signed webhook events to a hosted Amba endpoint, and Amba applies each one durably. A purchase-class event writes entitlement rows (both the entitlement IDs RevenueCat sends and any extra entitlements your own product map declares), an expiration-class event deactivates them, and every fresh event updates neutral subscription properties on the user — subscription_active, subscription_last_event, subscription_product_id, subscription_store. The pipeline dedupes redelivered events on RevenueCat's event ID and carries an ordering watermark, so a delayed EXPIRATION arriving after a newer RENEWAL cannot clobber the newer state. After anything changes, affected segments re-evaluate.
How do entitlements drive segments and push?
Three shipped hops, no glue code. First, a genuine purchase or renewal emits canonical, provider-neutral events — entitlement.granted plus subscription.started or subscription.renewed — which fan out to your event subscribers and can drive currency or XP reward rules (amba_currency_grant_rules_create binds to those exact event names). Second, segments filter on what the sync wrote: a rule on properties.subscription_active = true is a live "active subscribers" cohort, re-evaluated when subscription state changes. Third, push campaigns target any segment — so "lapsed subscribers get a win-back push" is two tool calls, not a cron job and a queue.
Does Amba replace RevenueCat?
No, and it does not try to. RevenueCat stays the system of record for billing: receipt validation, store products, offerings and paywalls, revenue analytics. Amba is the layer that acts on subscription state — feature gates, cohorts, messaging, rewards, data. For teams managing RevenueCat config itself, Amba also ships a monetization control plane: amba_monetization_export snapshots the live config as declarative code, plan diffs it, drift watches for dashboard edits, and apply pushes declared changes back — with destructive operations gated behind explicit confirmation and store-side steps (pricing, agreements, review) returned as a human checklist rather than pretended away.
Verified against the shipped webhook pipeline, June 2026. Every fresh event also updates the neutral subscription_* user properties; redeliveries dedupe on the event ID, and an ordering watermark stops a stale event from overwriting newer state.
How do you connect RevenueCat to Amba?
Configure the integration
Call amba_integrations_configure with provider "revenuecat" and your secret REST API key (not the publishable SDK key) plus a webhook_secret you choose. The response includes the exact webhook_url for your project. Keys are stored server-side and never returned to a client.
One tool call — returns your webhook URL
Register the webhook in RevenueCat
Paste the returned webhook_url into your RevenueCat project's webhook settings, and set the webhook's Authorization header value to `Bearer <webhook_secret>` — the literal word Bearer, a space, then the secret. Amba compares the full header on every delivery and rejects anything that does not match.
Declare the entitlement contract
Define the entitlement your app gates on and the products that grant it. Features check the entitlement, never a product or a store — so you can change how it is sold without touching app code.
Entitlement + product map — real tools, schema-true arguments
amba_entitlements_map_product adds extra entitlements to a product (bundles). The webhook union-joins the entitlements RevenueCat sends with the ones this map declares.
Test the connection and gate a feature
amba_integrations_test verifies the stored credential can reach RevenueCat. In the app, read entitlement state with one SDK call — no receipt parsing client-side.
Wire the activation loop
Create a segment on the synced subscription properties, point a push campaign at it, and optionally bind a reward rule to entitlement.granted. From here, subscription state drives engagement automatically.
Segments + push from subscription state
Can an AI agent wire this end to end?
Paste this to your coding agent
Every tool name and argument above is schema-true against the live registry. If the agent has no Amba project yet, amba_developer_signup provisions one first — no browser needed.
What does the app read?
In the app — entitlements are server-synced state
Same surface in @layers/amba-web, -node, -react-native, and the native SDKs.
Which MCP tools cover this integration?
What stays with RevenueCat?
- Receipt validation and billing truth
- RevenueCat validates App Store and Play purchases and remains the system of record for subscription status. Amba consumes the outcomes via webhooks; it does not re-validate receipts or second-guess billing state.
- Paywalls, offerings, and price testing
- RevenueCat's paywall tooling, offering experiments, and revenue analytics (MRR, churn, LTV) stay in RevenueCat. Amba's offerings API exists for provider-neutral paywall data, but it composes with — and does not replace — what RevenueCat ships.
- Store-side human floor
- Store product pricing, agreements, banking, tax, and app review cannot be driven by any API. The monetization control plane is honest about this: those steps come back as an explicit human checklist with exact console locations, never silently skipped.
The step-by-step depth lives in the docs
RevenueCat + Amba — FAQ
Does Amba replace RevenueCat?
No. RevenueCat stays the billing system of record — receipt validation, store products, paywalls, revenue analytics. Amba configures the connection and acts on the subscription state RevenueCat reports: entitlements your app reads, segments, push, and rewards. The two compose by design; removing RevenueCat is not the goal of this integration.
Which RevenueCat webhook events does Amba handle?
Every webhook event is accepted; nine have documented semantics. INITIAL_PURCHASE, RENEWAL, NON_RENEWING_PURCHASE, PRODUCT_CHANGE, and UNCANCELLATION grant entitlements and fire the reward cascade; CANCELLATION keeps access until the paid period ends; EXPIRATION, REFUND, and SUBSCRIPTION_PAUSED deactivate. Other event types carrying entitlement IDs are treated conservatively as grants, and every fresh event updates the subscription_* properties.
What happens if a webhook arrives twice or out of order?
Nothing wrong, by construction. Deliveries dedupe on RevenueCat's immutable event ID, so a redelivered event whose first run succeeded is acknowledged without reprocessing — while a delivery that failed mid-way retries cleanly. An ordering watermark ranks events by timestamp, so a delayed EXPIRATION arriving after a newer RENEWAL cannot deactivate the renewed subscription.
How do RevenueCat users map to Amba users?
By a shared identifier: the webhook resolves RevenueCat's app_user_id against the Amba user's external_id (or a previously synced customer ID). Use one stable user key on both sides — set it as external_id in Amba and pass the same value to RevenueCat's logIn — and every event lands on the right person.
Can web purchases grant the same entitlements?
Yes. The web-subscriptions integration ingests web checkout events through the same pipeline, and amba_entitlements_grant covers server-side cases with no webhook at all — gift codes, support grants, migrations from a legacy system. Every path writes the same entitlement rows, so the app reads one truth regardless of where the purchase happened.
Do I need RevenueCat to use Amba entitlements?
For store subscriptions, RevenueCat is the path this integration is built around: it owns receipt validation and paywalls, and its webhooks drive Amba entitlements automatically. Amba-side grants exist for the cases stores never see — comped access, promotional unlocks, server-side trials — and they compose with RevenueCat-granted entitlements rather than replacing them.
Sources for this guide
- RevenueCat docs: webhooks as of 2026-06
- RevenueCat docs: webhook event types and fields as of 2026-06
- Amba docs: RevenueCat integration as of 2026-06