Subscription billing,
built for the EU.
Plans, checkout, invoices, VAT and dunning over one REST API. BillKit drives your own Mollie account, so the money settles where it already does. Start in test mode with the same calls you will run in production.
Start here
All documentation →Your first call
Full quickstart →curl https://api.billkit.eu/v1/checkout/sessions \
-H "Authorization: Bearer $BILLKIT_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: first-call-3b7e19" \
-d '{
"customer_email": "ada@example.com",
"price_id": "price_7Hd3Wm9pQx2vRt5Kna",
"success_url": "https://example.com/welcome",
"cancel_url": "https://example.com/pricing"
}'{
"id": "cs_Rb4nZ8yQw1eTp6Lksv",
"object": "checkout.session",
"livemode": false,
"status": "open",
"ui_mode": "hosted",
"url": "https://www.mollie.com/checkout/select-method/...",
"customer_id": "cus_Ja7Ye2vMq9xN4TdWpr",
"price_id": "price_7Hd3Wm9pQx2vRt5Kna",
"subscription_id": null,
"payment_id": null,
"metadata": {}
}url. When the payment settles, BillKit creates the subscription and
emits checkout.session.completed. There is no POST /v1/subscriptions.
SDKs
All libraries →Node.js v1.0.0
TypeScript-first server client for every resource, with typed responses, typed webhook events, auto-pagination and per-request options.
Python v1.0.0
Sync and async clients over httpx, with typed responses, typed errors, typed webhook events and cursor auto-pagination.
PHP v1.0.0
Framework-agnostic client with a bundled curl transport and an optional PSR-18 seam.
Laravel v1.0.0
Cashier-shaped billing layer with a Billable trait, an Eloquent Subscription model and a verified webhook route.
Browser (JS) v1.0.0
Embedded checkout for the browser. Card fields render in a cross-origin iframe, so your page stays PCI SAQ A.
React v1.0.0
React bindings for the embedded checkout element. SSR-safe, shaped like @stripe/react-stripe-js.
Guides
All guides →Build a robust integration
The habits that keep a BillKit integration working as the API grows, a webhook arrives twice, or two events arrive in the wrong order.
Recover failed payments
What BillKit does when a renewal fails, how it retries, and the parts you have to build.
Metered billing, end to end
Charge for consumption. Create a per-unit price, post usage records, and let BillKit close the period and collect.
Free trials
Configure a trial on the price, override it per checkout, and handle the events around conversion.
BillKit