Coupon-code attribution
Use Stripe promotion codes as a tracking mechanism alongside referral links.
Coupon-code attribution lets your affiliates share a redeemable string at checkout instead of a click-tracked URL. Useful when:
- Your affiliate posts in their podcast, video, or newsletter and viewers will type a code rather than click.
- The customer hits your site directly (search, brand awareness) but redeems a code at Stripe Checkout.
- You want a paper trail in Stripe that ties revenue back to a specific affiliate.
Rekomi creates the Stripe coupon for you, mints a unique promotion code per affiliate, and credits the right affiliate whenever a customer redeems one at checkout. Refunds clawback automatically.
How it works
- Brand creates a campaign coupon. Pick a discount (% off or fixed $ off), a duration, optional max redemptions and expiry. Rekomi creates the matching Stripe
couponunder the hood and stores its id. - Brand mints a per-affiliate code. From an affiliate's detail page, click "Generate" on the Coupons tab. Rekomi creates a Stripe
promotion_codethat points at the campaign coupon and is tagged with the affiliate's id in metadata. - Affiliate shares the code. The code shows on
/a/campaigns/{id}for them to copy. Optionally, brands let affiliates mint their own vanity codes from /a (theAllow affiliate self-service codestoggle on the campaign coupon). - Customer redeems at checkout. Stripe fires
invoice.paidorcustomer.subscription.createdwith the promotion code embedded. Rekomi sees it, credits the owning affiliate, records a conversion withattribution_method = "coupon". - You see it like any other sale. The conversion lands in your dashboard automatically, tagged in the Source column as "Coupon" with the redeemed code (for example "Coupon · SARAH20"), right alongside link and S2S conversions. No setup needed: coupon conversions are never silent. The same
attribution_method(and the code) is in the REST API, the CSV export (attribution_method+coupon_codecolumns), and theconversion.createdwebhook if you sync conversions to your own systems. - Refunds clawback.
charge.refundeddecrements the affiliate's redemption count and marks the conversion refunded.
When coupon beats click attribution
Each campaign coupon has an Overrides click attribution toggle (default on). When on, a coupon redemption credits the coupon's affiliate even if the customer also clicked another affiliate's tracking link. Use this when:
- You want code-based affiliates (influencers, podcast hosts) to win over generic site traffic.
- You want a deterministic, observable attribution path with no cookie ambiguity.
- Your affiliates drive purchase intent through audio/video where clicks are rare.
Turn it off when:
- Click tracking is your primary channel and codes are secondary.
- You run multiple-affiliate-touch flows where the first click should win and the coupon is a "thank you for redeeming" mechanic.
Multiple codes per affiliate
You can mint as many codes as you like for one affiliate. They all roll up to the same affiliate's stats; each code has its own redemption counter. Useful for:
- Campaign-specific codes (
SARAH-BLACKFRIDAYvsSARAH-SPRING). - A/B testing copy ("Try
SARAH20" vs "TrySARAHSPRING"). - Letting the affiliate brand variants without losing attribution.
Plan tier
Campaign coupons + per-affiliate coupons are available on the Growth tier and above. Trial users (14-day free trial on any tier) can use everything.
What gets created in Stripe
For every campaign coupon Rekomi creates:
- A Stripe
couponwith the discount you picked, optionalredeem_by(expiry), andmetadata.rekomi_campaign_coupon_idmatching the Rekomi row id.
For every per-affiliate coupon Rekomi creates:
- A Stripe
promotion_codeattached to the campaign coupon, with the code string you supplied (or one we generated), optionalmax_redemptionsinherited from the parent, andmetadata.rekomi_affiliate_coupon_idmatching the Rekomi row id.
If you delete a Rekomi row, Rekomi deactivates / deletes the Stripe object on a best-effort basis. The Rekomi row is the source of truth for attribution.
API access
Coupon endpoints are documented in the developer reference. Both /api/campaigns/{programId}/coupons and /api/affiliates/{affiliateId}/coupons are exposed under /api/v1/* for public-API callers with rk_live_* keys.
Affiliate self-service
When the brand enables Allow affiliate self-service codes on a campaign coupon, approved affiliates can mint vanity codes from /a/campaigns/{id} directly. Codes still need to satisfy ^[A-Z0-9_-]{3,32}$ and be unique within the brand. This is useful for:
- Influencer programs where you want each creator to control their personal brand string.
- Hands-off flows where you'd rather not gate every mint behind brand-side approval.
Self-mint can be turned off per coupon at any time without affecting codes already minted.
See also
- Sub-affiliate recruiting: the other affiliate-network feature, a hard-capped 1-tier override on top of normal commission. Works alongside coupon attribution; override fires whether the parent sale was attributed via click or coupon.