Billing

Connect Stripe to Licenzy for checkout

Configure Stripe credentials, products, prices, and mode-specific keys so Licenzy can create Stripe Checkout sessions and update entitlement state.

Start free in test mode. Go live when you're ready.

Category: Core Concepts5 sections

Licenzy uses your stored Stripe connection

Your app does not call stripe.checkout.sessions.create directly in the Licenzy integration flow. Instead, your backend calls Licenzy runtime APIs and Licenzy uses the Stripe credentials stored in the portal.

Licenzy sits on top of Stripe for checkout, entitlement state, access checks, and usage consumption. Stripe still collects payment. Licenzy uses the saved connection to create Stripe Checkout internally when your backend calls POST /v1/checkout/session.

Keep test and live separate

  • Test Stripe keys and test webhook secret belong to test mode only.
  • Live Stripe keys and live webhook secret belong to live mode only.
  • Price IDs must match the same mode as the product and API key.
Mode alignment
A product mapped to a test Stripe price cannot be used correctly with a live API key, and vice versa. Product catalog, Stripe connection and API key must all point at the same environment.

Setup sequence

A reliable setup keeps credentials, products, price IDs, and runtime keys aligned in the same environment before the first checkout request is sent.

  1. Connect Stripe credentials and webhook secrets in test mode first.
  2. Create or verify the matching Licenzy products for the Stripe price IDs you plan to sell.
  3. Create a test Licenzy API key and store it only in backend secrets.
  4. Call checkout from your backend using a product code from the same mode.
  5. Repeat the setup with live Stripe credentials, live products, and a live API key only when you are ready to follow the go live checklist.

Common setup mistakes

  • Using a live Licenzy API key with a test Stripe price ID.
  • Creating a product in one mode and trying to buy it from the other mode.
  • Saving Stripe credentials without the matching webhook secret for that mode.
  • Passing a Stripe price ID directly to runtime checkout instead of a Licenzy product code.
  • Calling Stripe Checkout directly and expecting Licenzy entitlement state to update from that separate flow.
Check the mode first
When checkout or access behaves unexpectedly, verify the API key, Stripe connection, product catalog, and price ID all belong to the same test or live mode before debugging request payloads.