Polar is a merchant of record: it sells to your customer, collects and remits sales tax and VAT, and pays you the rest. ProductLense records the amount the customer paid and the part the merchant of record kept as the fee, so profit is based on what reaches you.

Setup steps

  1. In Polar, open Settings → Developers and create an organization access token with the four read scopes.
  2. In ProductLense, open Settings → Billing connections → Polar and paste the token and organization id.
  3. In Polar → Settings → Webhooks, add a webhook endpoint with the URL ProductLense shows after you save the connection (pattern https://api.productlense.app/api/webhooks/{provider}/{connection_id}).
  4. Select the events listed below and paste the generated secret into ProductLense.
  5. ProductLense backfills 12 months of orders.

Credentials and permissions

Credentials ProductLense asks for
FieldSecretWhere to find it
Organization access tokenYes, encrypted at restSettings → Developers → New token with customers:read, subscriptions:read, orders:read and organizations:read.
Organization IDNoThe UUID shown in Settings → General.
Webhook secretYes, encrypted at restThe secret generated when you add the webhook endpoint pointing at ProductLense.

Webhook

URL pattern, shown with your connection id after you save:

text
https://api.productlense.app/api/webhooks/polar/{connection_id}

Events: order.created, order.paid, order.updated, order.refunded, subscription.created, subscription.updated, subscription.active, customer.created, customer.updated, customer.state_changed

Verification: Standard Webhooks signature headers.

What ProductLense reads

Customers
Customers with email and external id.
Subscriptions
Subscriptions with status and interval.
Payments
Orders.
Refunds
The refunded amount on each order, plus refunded tax.
Fees
The platform fee amount when present on the order, otherwise 0.

What ProductLense never touches

  • Never creates, changes, refunds or cancels anything: read-only API calls and incoming webhooks only.
  • Never moves money, issues payouts, or reads bank account details.
  • Never sees full card numbers; providers do not expose them.
  • Never sends your customer data to the AI model: Ask and the daily insight see aggregates only.

Match payments to your users

Set the Polar customer external id to the id you pass to identify.

server: create a Polar checkout
await fetch('https://api.polar.sh/v1/checkouts/', {
  method: 'POST',
  headers: { Authorization: `Bearer ${process.env.POLAR_ACCESS_TOKEN}`, 'Content-Type': 'application/json' },
  body: JSON.stringify({ products: [PRODUCT_ID], external_customer_id: user.id }),
});

Polar and ProductLense: questions

Does ProductLense work with Polar?
Yes. ProductLense connects to Polar with organization access token, organization ID, webhook secret, backfills 12 months of history, and stays current through signed webhooks plus a nightly reconcile. One connection is included on Starter; Growth and Scale allow every provider at once on the same site.
What data does ProductLense read from Polar?
Customers, subscriptions, payments, refunds and fees, read-only. Payments: orders. Refunds: the refunded amount on each order, plus refunded tax. Fees: the platform fee amount when present on the order, otherwise 0.
Can ProductLense change anything in my Polar account?
No. ProductLense only makes read calls and receives webhooks. It never creates, changes, refunds or cancels anything, never moves money, and never sees card numbers. Credentials are encrypted at rest, and the AI features only ever see aggregated numbers, never your customers’ data.
How does ProductLense match Polar payments to visitors?
Set the Polar customer external id to the id you pass to identify. Your site calls identify with the same user id after signup, and ProductLense follows the payment to that visitor’s first touch: source, medium, campaign and landing page.
How are Polar fees and taxes handled?
Polar is a merchant of record: it sells to your customer, collects and remits sales tax and VAT, and pays you the rest. ProductLense records the amount the customer paid and the part the merchant of record kept as the fee, so profit is based on what reaches you. The platform fee amount when present on the order, otherwise 0.

Connect Polar and see revenue by channel today.

Add the script, connect Stripe or any of 14 other billing providers, and see revenue by channel the same day.