Subscriptions

Use subscriptions to bill a customer on a recurring lifecycle instead of collecting a single one-time payment. A correct subscription integration creates or collects the first payment, stores the right Paypercut IDs, listens for server-side events, and keeps product access in sync when renewal payments succeed or fail.

Most first subscription integrations should start with Checkout. Checkout lets Paypercut collect the customer payment details, create the subscription signup flow, and save a reusable payment method for renewal billing.

Access rule A Checkout success redirect is not the production source of truth for access. Use backend-confirmed events and retrieved API objects to decide when to grant, extend, recover, or revoke access.

Start here

How subscriptions work


Learn the object model, actor ownership, billing-period signals, and common misunderstandings. Read more

Choose a flow


Compare Checkout-created subscriptions, direct API creation, and schedules before you build. Read more

Quickstart


Create a subscription with Checkout and handle the minimum server-side events. Read more

Build your integration

Create with Checkout


Use Checkout when the customer needs to enter or confirm payment details. Read more

Create directly


Use the Subscriptions API when your backend already has a customer and reusable payment method. Read more

Webhooks for subscription integrations


Handle Checkout, invoice, and payment events without assuming public subscription event names exist. Read more

Understand billing

Lifecycle and statuses


Understand subscription states before defining access, recovery, and cancellation behavior. Read more

Invoices and payment collection


Use invoice events as the paid-period signal for subscription access and renewal handling. Read more

Subscription schedules


Model advanced phase-based billing such as future starts, intro pricing, and fixed-duration plans. Read more

Operate and troubleshoot

Manage subscriptions


Update, cancel, and resume subscriptions after creation. Read more

Testing and troubleshooting


Test subscription creation, renewal, failed payment, and webhook handling. Read more

Object map

Object What it does Store this
Customer Owns the subscription and reusable payment method. customer_id and your internal user or account ID.
Product / Price Defines what the customer buys and the recurring amount or interval. product_id, price_id, and your internal plan ID.
Checkout Session Hosts or embeds the signup flow and links to the created subscription. checkout_session_id and subscription when returned after completion.
Subscription Represents the recurring billing relationship. subscription_id, current status, and the internal account it unlocks.
Invoice Represents a billing period and payment collection result. Relevant invoice_id values for fulfillment, access, and support.
Payment / PaymentIntent Represents payment-level collection and reconciliation details. Payment identifiers when needed for support or reconciliation.
Webhook event Tells your backend that Checkout, invoice, or payment state changed. Event ID or delivery ID for idempotency.

Most integrations should start here

  1. Create or select a recurring Price for the plan.
  2. Create a Checkout Session in subscription mode.
  3. Send the customer to Checkout.
  4. Handle checkout_session.completed on your backend and retrieve the session.
  5. Store the linked subscription_id.
  6. Use invoice.paid to grant or extend access for paid billing periods.
  7. Use invoice.payment_failed to start recovery and reconcile state.

Next: Quickstart: Create a subscription with Checkout.