For the complete documentation index, see llms.txt. This page is also available as Markdown.

Lemon Squeezy

Connect Lemon Squeezy to Payments — keys, webhook URL and signing secret.

Lemon Squeezy is a merchant of record for digital products and subscriptions. Norbix gets its webhook events (orders, refunds, subscriptions and subscription payments).

Get your credentials

  1. Sign in to the Lemon Squeezy dashboard.

  2. Open Settings → Stores and note the store id (a number such as 12345).

  3. Open Settings → API, create an API key and copy it (see API requests).

  4. Save the integration in Cloud once (below) to get its Webhook URL.

  5. Open Settings → Webhooks → +, paste the webhook URL as Callback URL, choose a Signing secret (any long random text) and the events (see Webhooks and signing requests). Type the same secret into Webhook Signing Secret in Cloud, type the API key again, and Save.

Connect it in Cloud

Where: Payments → Integrations → Add New Integration → Lemon Squeezy → Connect · /projects/<project>/payments/integrations/new/lemon-squeezy

Field
Required
What it does
Example

Store ID

yes

Your Lemon Squeezy store.

12345

API Key

yes

Lets Norbix call Lemon Squeezy. Secret; encrypted on save and never shown again — type it again whenever you press Save.

eyJ0eXAiOiJKV1QiLCJhbGciOi…

Webhook Signing Secret

yes

Checks the X-Signature header of each call. Secret; encrypted on save and never shown again — type it again whenever you press Save.

your-signing-secret

Test Mode

no

Enable test mode to use the test-mode data of the store.

on

Integration Name

yes

The name in your integrations list.

Lemon Squeezy test store

New Lemon Squeezy Integration form filled with example values
The filled form (placeholder values).

Press Save. The page turns into Editing Lemon Squeezy integration with the badges ENABLED, NOT TESTED, NOT CONFIRMED, the integration id (int_3arT14C7MZ4pGvsSK1uTJj) and the Webhook URL — <Hub address>/v3/payments/webhooks/<account id>/<project id>/lemonsqueezy/<integration id>; outside PROD it ends with ?env=<ENV>. Copy it with its copy button and paste it at Lemon Squeezy (see Get your credentials). Received webhooks at the bottom lists every call Lemon Squeezy makes to it.

Editing Lemon Squeezy integration after Save: ENABLED, NOT TESTED, NOT CONFIRMED, the integration id and the Webhook URL
After save: the webhook URL to paste at Lemon Squeezy.

Events Norbix accepts from Lemon Squeezy (pick them at Lemon Squeezy and in your trigger): order_created, order_refunded, subscription_created, subscription_updated, subscription_cancelled, subscription_expired, subscription_payment_success, subscription_payment_failed.

Test and set as default

Test integration signs in to Lemon Squeezy with the API key. With the made-up key of this example it failed: Lemon Squeezy authentication failed for integration int_3arT14C7MZ4pGvsSK1uTJj: HTTP 401 Unauthorized. See Test an integration. Payments has no default integration — every enabled integration gets its own calls (Default integration).

Common errors

Message
Cause
Fix

Lemon Squeezy authentication failed … HTTP 401 Unauthorized

Wrong or deleted API key.

Create a new key, type it, Save, test again.

Received webhooks shows 400

The signing secret in Cloud is not the one set on the Lemon Squeezy webhook.

Type the same secret on both sides and Save.

Required

A required field is empty — secrets count too on every save.

Fill the field; type every secret again before Save.

Do it from code

The client setup is on the Payments page. API: Save Payments Integration

Last updated

Was this helpful?