Skip to main content
Creem also has a built-in affiliate program that runs inside your Creem dashboard. This guide covers connecting a third-party affiliate platform instead, or alongside it.

Overview

Refgrow is affiliate and referral software for SaaS. A partner shares a link or a discount code, and when that visitor buys through your Creem checkout, Refgrow credits the sale to the partner. You connect with one API key. Refgrow uses it to add its own webhook to your Creem store and read the signing secret, so you don’t copy a URL or paste a secret. Sales, subscription renewals, refunds and chargebacks all arrive through that webhook.

What you'll need

  • A Creem account (production or Test Mode)
  • A Refgrow account (sign up)
  • A Creem API key with the webhooks:read and webhooks:write scopes

How It Works

Creem hosts checkout on its own domain, so the partner’s referral needs a way to travel from your site into the sale. It travels as one metadata field, referral_code, and on Creem payment links the Refgrow script adds it for you.
  • A visitor clicks a partner’s link and lands on your site. The Refgrow script stores the partner’s code in their browser for 30 days (you can change this in Refgrow).
  • They go to checkout with the code attached as metadata[referral_code]. The script adds it to every Creem payment link on your page, including links that appear after the page loads. If your server creates the checkout, you add it there.
  • Creem processes the payment and sends a signed webhook to Refgrow.
  • Refgrow matches the code, or the discount code used at checkout, to the partner and records the commission.
Creem copies checkout metadata onto the subscription, so once the code is on the first payment, every renewal is credited to the same partner.
Refgrow reads referral_code from checkout metadata. Creem’s built-in affiliate feature uses its own creem_ref URL token, which never ends up in your metadata, so you can run both side by side.

Integration Steps

1

Create your program in Refgrow

In Refgrow, create a project for your product and set your commission terms:
  • Commission: a percentage of each sale or a fixed amount, with different rates per product or per partner if you need them.
  • Renewals: whether subscription renewals pay commission too, and for how long.
  • Hold period: how many days a commission waits before it can be paid out. Set it longer than your refund window.
Then invite partners, or share your program’s sign-up page so they can join.
2

Create a restricted API key in Creem

In your Creem dashboard, go to Developers > API Keys and create a key. Switch Full access off and grant only the scopes Refgrow uses:Renewal amounts come in each subscription.paid event, so Refgrow needs no other scope. With these scopes the key can’t change your products, customers or orders.
3

Connect Creem in Refgrow

In Refgrow, open Integration, choose Creem, paste the key and click Connect. Refgrow then adds a webhook named Refgrow (project ID) to your Creem store, subscribed to:
  • checkout.completed
  • subscription.paid
  • refund.created
  • dispute.created
  • subscription.canceled
Refgrow keeps the webhook’s signing secret and checks it on every event. Nothing else in your store changes, and connecting again later reuses the same webhook.
Prefer to create the webhook yourself? Point it at https://refgrow.com/webhook/creem/YOUR_PROJECT_ID with the five events above, then choose Paste its signing secret instead on Refgrow’s Integration page.
4

Add the Refgrow script to your site

Add the script to the pages that link to Creem. For a referred visitor it adds the partner’s code to every creem.io payment link:
If your payment links use a custom domain, add the class refgrow-creem-link to those links so the script picks them up too.The script adds the code when a link is clicked, not to a URL your code opens with window.open or window.location. Add metadata[referral_code] to those URLs yourself, with the value of window.Refgrow.getReferralCode().
5

Pass the code from your server (optional)

If your server creates checkout sessions, read the code in the browser and send it with your checkout request:
6

Report signups (optional)

If people create an account on your site before they pay, report the signup while the partner’s code is still in their browser:
Refgrow records the signup under the partner. A later Creem payment with the same email is credited to that partner even if the checkout carries no metadata, for example when the buyer pays from your app a week later on another device.
7

Test, then go live

Create a key in Creem’s Test Mode (it starts with creem_test_) and connect it to a separate Refgrow project, so test sales stay out of your real program. Open your site with ?ref=PARTNER_CODE, click a payment link and pay with a test card. The sale appears under the partner, and Refgrow’s Integration page lists every webhook it received and what it did with it. Then refund the payment in Creem and check that the commission is reversed.Use a real test payment rather than Send test event in Creem. Test events carry no metadata, so they can’t be credited to a partner.When it works, create a live key the same way and connect it to your real Refgrow project.

Partner discount codes

A discount code credits a partner without a link, for partners who promote by voice or video. Create the discount in your Creem store, then give the same code to the partner in Refgrow. A sale that uses the code is credited to that partner, with or without metadata.

What Gets Tracked

Percentage commissions use what the customer paid after discounts, minus the tax Creem collected. Every payment is keyed by its Creem transaction, so webhook retries and manual resends don’t count twice.

Good to Know

  • Short links and storefronts. The script also adds the code to l.creem.io short links and storefront pages, but Creem drops it before checkout. On your site, link to the payment link itself.
  • Partners who link to Creem directly. A partner link that skips your site never loads the script, so no code is attached. Give those partners a discount code.
  • Won disputes. Creem sends no event when you win a dispute, so Refgrow doesn’t restore a commission it reversed on dispute.created. To pay the partner anyway, open the partner’s menu under Affiliates in Refgrow and choose Add a sale manually.
  • Signature failures. Each Creem webhook has its own signing secret. If you re-create Refgrow’s webhook by hand, or add a second webhook pointing at Refgrow, deliveries signed with the other secret fail. Keep one webhook for Refgrow, then connect again or paste that webhook’s secret.
  • Disconnecting. Click Disconnect next to Creem on Refgrow’s Integration page. Refgrow removes its webhook from your store, and does the same when you delete the Refgrow project. If Creem can’t be reached at that moment, Refgrow names the webhook for you to delete.
  • Webhook log. Refgrow’s Integration page shows each Creem event it received and what it did with it, which is the quickest way to see why a sale was or wasn’t credited.

Refgrow's Creem guide

Refgrow’s own setup guide for the Creem integration, with troubleshooting.