Winback / Integrations / Connect RevenueCat

Integrations

Connect RevenueCat by webhook

RevenueCat tells Winback when a subscriber cancels, hits a billing problem, pauses or lets a subscription or trial expire. Winback reads those events only. It never changes a subscription, grants access or creates an offer in RevenueCat.

Updated 22 Oct 2026. Setup takes about five minutes.

1. Get your endpoint

We issue each app its own webhook URL and Authorization header value. Ask through the setup form or email support@winbackhq.com. You get two things:

WhatLooks like
Webhook URLhttps://winbackhq.com/hooks/revenuecat.php?t=your-endpoint-id
Authorization header valuewbrc_ followed by a long random string

Keep the header value private. We store only a one-way hash of it, so we cannot show it to you again; if you lose it we issue a new one.

2. Add the webhook in RevenueCat

The steps follow RevenueCat's own guide, Webhooks.

  1. Open your project in the RevenueCat dashboard. In the left menu, under Integrations, choose Webhooks.
  2. Choose Add new configuration and name it Winback.
  3. Paste your Webhook URL from step 1.
  4. In the Authorization header value field, paste your Authorization header value from step 1, exactly as given. RevenueCat sends it with every request and Winback refuses any request without it.
  5. Environment: choose production purchases. Add sandbox only if you want to test with sandbox purchases.
  6. Apps: send events for the app you want win-backs for, or for all apps in the project.
  7. Event types: if you filter them, keep CANCELLATION, BILLING_ISSUE, EXPIRATION and SUBSCRIPTION_PAUSED, plus INITIAL_PURCHASE, RENEWAL and UNCANCELLATION so Winback can see who came back. If you leave every type on, Winback ignores the rest.
  8. Save. If you send RevenueCat's TEST event, Winback answers 200 with "Test event received. Winback is connected."

What Winback keeps from each event

Field names are RevenueCat's (event types and fields).

EventKept
CANCELLATION, BILLING_ISSUE, EXPIRATION, SUBSCRIPTION_PAUSEDAlways
INITIAL_PURCHASE, RENEWAL, UNCANCELLATIONOnly for a subscriber Winback already has from one of the events above, to record that they came back
TESTOnly the time it arrived
Anything elseNothing. Answered with 200 and dropped

From a kept event Winback stores: event id and type, app_user_id, the subscriber's email (the reserved $email subscriber attribute, if you set it), product_id, period_type, cancel_reason, expiration_reason, expiration_at_ms, price, price_in_purchased_currency, currency, store, environment and the event time.

Not stored: names, other subscriber attributes, device or advertising ids, IP addresses and transaction ids. Emails and events are kept outside the public web folder, used only to send the win-back message you approved, never sold, and kept until you disconnect Winback or ask us to delete them. See privacy.

Who gets a message

A webhook only tells Winback that something happened. Winback writes one personal message per lost subscriber, and it is sent only to people you are allowed to contact: people who gave you their address or opted in to hear from you. You set the limits: who may get an offer, the largest discount, and how many messages anyone gets. You approve the first batch before anything goes out. Winback takes the address from the $email subscriber attribute you set in RevenueCat; a subscriber without one is not emailed.

Winback never adds fake timers or pressure tactics. See Apple-safe win-back and security.

Reliability and removal

  • Winback answers within a second. RevenueCat counts anything other than 200 as a failure and retries up to five times over about 80 minutes, so a short outage on our side loses nothing.
  • Delivery can repeat. Winback drops an event id it already has.
  • To stop, delete the Winback configuration under Integrations, Webhooks in RevenueCat. To have stored events deleted, email support@winbackhq.com.

Pay only when someone comes back

No monthly fee: 15% of revenue from subscribers who come back, for 6 months. See pricing.