FirstMRRCentre d'aide
Développeurs

Provenance des paiements

Les clés à écrire sur chaque paiement pour relier un client payant à sa plateforme, son lien ou sa vidéo, outil par outil.

1 min de lecture

Le principe

À l'inscription, enregistre firstmrr.source() sur l'utilisateur. Quand tu crées son paiement, recopie-la dans les métadonnées avec les clés ci-dessous. Chaque nuit, FirstMRR lit ces clés par ta connexion en lecture seule à ton outil de paiement, et rien d'autre : toute autre clé est ignorée.

ChampTypeRequisDescription
fm_platformstringOptionnelLa plateforme : source().platform (tiktok, instagram…).
fm_methodstringOptionnelComment elle a été repérée : source().method (link, utm, in_app, referrer).
fm_refstringOptionnelLe lien suivi (slug /go) ou l'hôte référent : source().ref. Dans une app, la valeur du paramètre fm du lien d'ouverture.
fm_answerstringOptionnelApps : la réponse à « Où nous as-tu connus ? », parmi tiktok, instagram, youtube, x, threads, facebook, linkedin, snapchat, pinterest, google, app_store, friend, press, other.
fm_accountstringOptionnelApps : le compte cité, seulement si la personne l'a donné.
fm_variantstringOptionnelLes variantes A/B : "test:variante", plusieurs séparées par une virgule, 4 au plus.
fm_atstringOptionnelL'heure d'arrivée, source().at : pour tes propres relevés, FirstMRR date le client par son paiement.
javascript
// acquisition_source: what firstmrr.source() returned at signup, saved on the user
const origin = user.acquisition_source ?? {};
const fm = Object.fromEntries(
  Object.entries({
    fm_platform: origin.platform,
    fm_method: origin.method,
    fm_ref: origin.ref,
    fm_at: origin.at,
    fm_variant: user.ab_variants, // "pricing_page:b" (optional)
  }).filter(([, value]) => value != null), // never send a null value
);

Où les écrire, outil par outil

await stripe.checkout.sessions.create({
  mode: "subscription",
  line_items: [{ price: "price_123", quantity: 1 }],
  metadata: fm,                      // one-off payments
  subscription_data: { metadata: fm }, // subscriptions
  success_url: "https://example.com/success",
});
  • Stripe : metadata de la session Checkout et subscription_data.metadata pour un abonnement. FirstMRR lit l'abonnement, la session, puis le premier paiement.
  • Paddle : custom_data (customData dans Paddle.js), sur la transaction et l'abonnement.
  • Polar : metadata du checkout, recopiée sur la commande ; celle de l'abonnement ou du client est lue aussi.
  • Whop : metadata de la configuration de checkout, héritée par les paiements et les abonnements.
  • Superwall : attributs utilisateur (setUserAttributes), mêmes clés.
  • RevenueCat : attributs (setAttributes), mêmes clés. La clé en lecture seule de RevenueCat ne donne que des totaux : FirstMRR ne lit pas encore ces attributs, écris-les quand même pour la suite.