Why the Klaviyo plugin is not enough
The native Klaviyo plugin sends orders. It does not send the moments that decide whether a subscriber stays: a declined card, a cancel, a pause or an upcoming charge. Those only exist in Checkout Champ as postback triggers. The plugin side is covered in our integration guide.
The 8 events we bring into Klaviyo

| Postback trigger | What it means | Flow it powers |
|---|---|---|
| Subscription Started | A new subscription was created | Subscriber onboarding, cross-sell |
| Pre-Billing | A rebill is coming up | Upcoming payment reminder |
| Recurring Order | A rebill went through | Exits for dunning, renewal reporting |
| Rebill Decline | A rebill was declined | Failed payment, first emails |
| Recycle Failed | Recycle billing ran out of retries | Failed payment, last emails |
| Cancel | The subscription was cancelled | Cancel save and winback |
| Pause | The subscription was paused | Paused subscriber flow |
| Reactivate | A cancelled or paused subscription restarted | Exits for winback and paused flows |
In Klaviyo each becomes its own metric, named so it is obvious where it came from, for example "Checkout Champ - Rebill Decline".
There is no Skip trigger in Checkout Champ's postback list. So an "order skipped" flow, common on Recharge and Loop, can't be built from Checkout Champ events.
How postbacks work in Checkout Champ
You create postbacks in Checkout Champ under Admin, then Exports. Each profile has a destination, field mappings and routings. A routing says which trigger and which campaign fire the profile.
What Checkout Champ's docs confirm:
- Postbacks can be sent as GET or POST, and with a JSON body.
- You can add static values and custom headers.
- Checkout Champ sends them in runs roughly every 15 minutes.
- A postback is resent until the receiving side accepts it.
- Test Card orders do not export through webhooks, so test with a real low-value order.
What goes wrong if you send postbacks straight in
You can point a postback at a generic webhook tool and push it into Klaviyo. Most of the problems show up a week later.
Retries create duplicates. Checkout Champ resends until it gets a success response. If the first send landed but the response timed out, Klaviyo gets the same decline twice and the subscriber gets 2 failed payment emails. Every event needs a stable ID, so Klaviyo keeps only the first copy.
Fields are missing. The postback field list has no next bill date and no portal link, and a pre-billing email without the date is half a flow. We look these up from Checkout Champ separately and add them to the event. The Cancel postback does carry a cancel_reason, which can be a preset reason or whatever the customer typed, so a cancel flow can tell "too much product" from "too expensive" once you group the reasons.
Other brands leak in. Many Checkout Champ accounts hold more than one brand or a white-label campaign. If the routing is set to all campaigns, another brand's orders and cancels end up in your Klaviyo, and your flows email their customers. We have found this on a live account. Every event must be checked against the brand's own campaigns before it is sent.
Revenue gets counted twice. If a decline or cancel carries a value, Klaviyo can count it as revenue. Only events where money moved, like Subscription Started and Recurring Order, should carry a value.
A ~15-minute delay. Postbacks are batched. Fine for emails. Don't promise "instant" SMS on a decline.
What a clean setup looks like
Each event that reaches Klaviyo should have:
- The customer's email and name on the profile.
- Purchase ID, order ID and campaign, to tie it to one subscription.
- Product name, SKU, price and billing cycle number.
- Decline reason and response type, on Rebill Decline and Recycle Failed.
- Next bill date, on everything except failures and cancels.
- Portal buttons for the email: update card, resume, reactivate and pause. Each opens the right page in the customer's Checkout Champ portal.
We also keep the next bill date on the Klaviyo profile and clear it on cancel or pause. That lets Klaviyo run a date-based reminder that stops by itself when someone leaves.
How we set it up for HolySwish
HolySwish moved its subscriptions off Loop to Checkout Champ in September 2026. Klaviyo only had first orders. In October we set up the postbacks and our event bridge, and subscription events were flowing into Klaviyo within days. The onboarding, failed payment, cancelled, paused, upcoming payment, order reminder and cross-sell flows now run on them.
We keep the technical side, the service that receives the postbacks, as our own work. Clients get the events in Klaviyo and the flows on top.
Before you switch flows on
- Turn off Checkout Champ's own autoresponders for cancellation, pause, pre-billing and declined rebills, or customers get both.
- Send one real low-value test order through each trigger you can reproduce.
- Check the first real events in Klaviyo: one per subscription, the right brand, the right fields.
- Only then set the flows live.
Book your free Checkout Champ check
A 20-minute call. We look at what your Checkout Champ sends to Klaviyo, whether rebills reach it, which subscription emails are missing and whether Checkout Champ autoresponders double-send.
Book your free Checkout Champ check
Prefer a written review of your whole Klaviyo account? Get a free Klaviyo audit.














