
- Recurring subscriptions
- One-time payments
- Free trials
- Refunds (for voiding partner commissions)
- Cancellations/churn
- Usage expansion
Installing the Pearset Stripe integration
Find Pearset on the Stripe App Marketplace
Navigate to the Pearset Stripe Integration on the Stripe App Marketplace.

Install the Stripe app
On the top right, click on Install app to install the Pearset app on your Stripe account.
Once the app is installed, click on Continue to app settings to finish the installation.


Connect Stripe to your Pearset workspace
In the app settings page, click on Connect workspace to connect your Stripe account with your Pearset workspace.
This will redirect you to the Pearset OAuth flow, where you can select the Pearset workspace you want to connect to your Stripe account.
Once you click on Authorize, you will be redirected back to the Pearset app settings page on Stripe, where you should see that the integration is now installed.



customer.created: When a new customer is createdcustomer.updated: When a customer is updatedcheckout.session.completed: When a customer completes a checkout sessioninvoice.paid: When an invoice is paid (for tracking recurring subscriptions)charge.refunded: When a charge is refunded (for voiding partner commissions)
Tracking sales with the Pearset Stripe integration
Depending on your setup, there are a few ways you can track sales with the Pearset Stripe integration.- Option 1: Using Stripe Payment Links
- Option 2: Using Stripe Checkout (recommended)
- Option 3: Using Stripe Customers
Option 1: Using Stripe Payment Links
When using Stripe Payment Links, lead and sale events are tracked but lead
webhooks and lead
rewards will not be
generated. Sale
rewards (both
recurring and one time rewards) will still be generated as usual.
?dub_client_reference_id=1 query parameter to your Stripe Payment Link when shortening it on Pearset.
Then, when a user clicks on the shortened link, Pearset will automatically append the unique click ID as the client_reference_id query parameter to the payment link.

customerExternalId with their Stripe customer ID for future reference.
Alternatively, if you have a marketing site that you’re redirecting your users to first, you can do this instead:
-
Install the Pearset Tracking script, which automatically detects the
dub_idin the URL and stores it as a first-party cookie on your site. -
Then, retrieve and append the
dub_idvalue as theclient_reference_idparameter to the payment links on your pricing page / CTA button (prefixed withdub_id_).
What if I'm using Stripe Pricing Tables?
What if I'm using Stripe Pricing Tables?
If you’re using Stripe Pricing Tables – you’d want to pass the Pearset click ID as a
client-reference-id attribute instead:What if I'm using Stripe's Checkout Sessions API?
What if I'm using Stripe's Checkout Sessions API?
If you’re using Stripe’s Checkout Sessions API for a recurring subscription service, you might want to check out our Stripe Checkout option instead.If your setup doesn’t involve a lead/signup event and goes straight to the Stripe checkout flow (e.g. for one-time purchases), you can simply pass the Pearset click ID (prefixed with
dub_id_) as the client_reference_id parameter to enable conversion tracking with Pearset.Option 2: Using Stripe Checkout (recommended)
If you have a custom checkout flow that uses Stripe’scheckout.sessions.create API, you’d want to associate the Stripe customer object with the user’s unique ID in your database (which we tracked in the lead conversion tracking step).
This will allow Pearset to automatically listen for purchase events from Stripe and associate them with the original click event (and by extension, the link that the user came from).
How does this work?
How does this work?
Remember in the lead conversion tracking guide, we passed the user’s unique user ID along with the click event ID in the Under the hood, Pearset records the user as a customer and associates them with the click event that they came from.Then, when the user makes a purchase, Pearset will automatically associate the checkout session details (invoice amount, currency, etc.) with the customer – and by extension, the original click event.
pearset.track.lead call?Node.js
- Install the Pearset Stripe integration
- Install the Pearset Tracking script
- Install the Pearset server-side SDK
dubCustomerExternalId value in the metadata field.
Node.js
Option 3: Using Stripe Customers
Alternatively, if you don’t use Stripe’s checkout session creation flow, you can also pass the user ID and the click event ID (dub_id) in the Stripe customer creation flow.
First, you’ll need to complete the following prerequisites:
- Install the Pearset Stripe integration
- Enable conversion tracking for your links
- Install the Pearset Tracking script
dubCustomerExternalId value in the metadata field.
Node.js
dubCustomerExternalId and dubClickId values in the metadata field of the Stripe customer update flow:
Node.js
When using Stripe Customers, lead and sale events are tracked but lead
rewards will not be
generated. Sale
rewards (both
recurring and one-time rewards) will still be generated as usual.
Tracking free trials
Pearset supports tracking subscription free trials as lead events on Pearset. This is useful for products with free trials since you might want to track trial activations as part of your attribution flow. To enable free trial tracking, go to your Stripe integration settings and enable the Track Free Trials option:
Tax handling
When tracking sale conversions from Stripe, Pearset automatically excludes taxes from the final sale amount to ensure accurate revenue reporting. For checkout sessions, Pearset calculates the sale amount by subtracting the tax amount from the total:total_excluding_tax field when available:
- Revenue tracking and reporting
- Partner commission calculations
- Analytics and conversion metrics
Tax amounts are automatically excluded from all sale events tracked through
the Stripe integration, including one-time purchases, subscriptions, and
recurring invoices.
Currency conversion support
If you’re using Stripe’s Adaptive Pricing feature, Pearset will record the sale amount using the currency of your Stripe account:checkout.session.completed
checkout.session.completed
The default currency for all Pearset workspaces is currently set to
USD. We will
add the ability to customize that in the future.Multiple line items per invoice
When a Stripe invoice or checkout session contains multiple line items (e.g. a base subscription plus an add-on, or several products purchased in a single transaction), Pearset processes each line item individually to calculate the correct commission amount. For each line item, Pearset:- Resolves the Stripe product ID for that line item.
- Matches it against any product-specific reward modifiers configured for the partner’s group.
- Calculates the commission for that line item using the matching reward rate (falling back to the default reward if no modifier matches).
saleAmount recorded on Pearset still reflects the full invoice total (after tax exclusion and currency conversion), so your revenue analytics remain accurate.
View conversion results
And that’s it – you’re all set! You can now sit back, relax, and watch your conversion revenue grow. We provide 3 different views to help you understand your conversions:- Time-series: A time-series view of the number clicks, leads and sales.

- Funnel chart: A funnel chart view visualizing the conversion & dropoff rates across the different steps in the conversion funnel (clicks → leads → sales).

- Real-time events stream: A real-time events stream of every single conversion event that occurs across all your links in your workspace.

Example apps
Pearset + Stripe Demo App
See the full example on GitHub.
