Lemon Squeezy integration

Connect Lemon Squeezy to tie orders, refunds, and subscription lifecycle events back to acquisition and product journeys.

Connect Lemon Squeezy

  1. In your OnRamp project, open Integrations then Revenue.
  2. Select Lemon Squeezy and paste an API key from Lemon Squeezy.
  3. Choose an identity strategy. Email is the default for web billing.
  4. Copy the webhook URL and signing secret generated by OnRamp.
  5. In Lemon Squeezy, create a webhook using that URL and secret.
  6. Enable order_created, order_refunded, subscription_created, subscription_payment_success, subscription_cancelled, and subscription_expired.

What gets recorded

OnRamp records orders, refunds, subscription starts, successful renewals, cancellations, and expirations. Amount, currency, product reference, and event time stay attached to each record.

Match customers to journeys

For the normal email strategy, identify the signed-in customer before checkout:

ts
identify({ email: user.email })

You can also use the OnRamp anonymous_id or a custom property when your own ID is available in both systems. See identity resolution.

Use the same signing secret

Lemon Squeezy and OnRamp must use the same webhook signing secret. Generate one in OnRamp, copy it into Lemon Squeezy, then save it in the integration panel.

Troubleshooting

If an event is missing, first check the webhook delivery in Lemon Squeezy. If it arrives but has no user attached, the email or custom identity value does not match the journey data in OnRamp.