Skip to main content
This guide takes you from zero to a working payment in a few requests. Use a sk_sandbox_… key so nothing touches real money.
1

Create a product

Define what you sell. Omit recurringInterval for a one-time product.
The response data.id is your pro_… product id.
2

Create a customer (optional)

You can attach an existing customerId, or let the payment create one inline via customerData. To create one explicitly:
3

Take a payment

The simplest integration is a hosted checkout session — mint a cs_… token and redirect the buyer to its url.
Redirect the customer to data.url. For card test flows, use test card 4242 4242 4242 4242 with any future expiry and any CVC.
4

Register a webhook endpoint

Get notified as the payment progresses.
Store the returned data.secret (whsec_…) — it is shown once and is used to verify signatures.
5

Grant access

In your webhook handler, verify the signature and grant access on the right event (recommended strategy).

Direct (server-side) payment

If you collect the payment method yourself, call POST /v3/payments directly. Card flows return a checkout handle (redirect / 3DS); crypto flows return a deposit or wallet-connect instruction.

Full API reference

Every parameter and response field, endpoint by endpoint.