Through the API
With Recurly, your server reports the sale to Meritt through the API, in three calls, as soon as Recurly confirms the payment. Attribution and the ledger are the same as for Stripe.
POST /v1/conversions to report the sale, POST /v1/identify to tie a customer to a visit, POST /v1/conversions/reverse for a refund. A sale sent twice is counted once.custom_fields) at checkout.charge_invoice.paid is only sent when Credit Invoices are enabled, and custom fields depend on the plan: none on Starter, 5 on Pro, 10 on Elite.custom_fields).charge_invoice.paid, call POST /v1/conversions with the amount, the currency, the click and the customer id.successful_refund_notification, call POST /v1/conversions/reverse with the payment reference.One key, and two calls added to your webhook handling.
At that moment the payment is not confirmed, and when it is, in the webhook, the cookie is gone. The Recurly passthrough field carries the click between the two.
No. With the same reference, the second call answers “already received” and nothing is added.
No: according to Recurly it only carries the id and the invoice number. Your server reads the invoice through the Recurly API before reporting the sale to us.
The successful payment notification (successful_payment_notification) does the same job.
Recurly documentation checked on October 19, 2026: docs.recurly.com › charge invoice notifications, docs.recurly.com › payment notifications, docs.recurly.com › custom fields
Your affiliates' links run through your site, so ad blockers do not cut them.
An affiliate program on Chargebee: the click in meta_data, payment_succeeded and payment_refunded reported to Meritt through the API.
An affiliate program on Braintree: the click in custom_fields, renewals and card payments reported to Meritt through the API.
Free until your first commission. No card asked for.