The billing layer on top of your own Stripe account

Everything Stripe leaves you to build, on the Stripe account you already have. Subscriptions, licence keys, usage credits and signed webhooks — one API, and the money stays in your account.

Build the whole integration in test mode today — its own database, its own keys, no approval needed

You stay the sellerYour own Stripe account Hosted & embedded checkoutSubscriptions Licence keysUsage creditsSigned webhooks
How it works

You bring your own Stripe account. You stay the seller of record, Stripe verifies you and pays you on your own schedule, and CANDI runs the billing on top of it.

CANDI is not a payment processor and does not want to become one. It is the product layer Stripe leaves you to build yourself.

How the money moves

Properties of the model, not features we toggle on.
  • It is your Stripe account. You connect the account you already have, and it stays yours — your keys, your Stripe dashboard, your customers, your payout schedule.
  • Stripe verifies you, not us. KYC and KYB run on Stripe's own hosted onboarding against Stripe's own requirements. There is no review queue of ours in the way.
  • You are the seller of record. Your name is on the charge and on the invoice, the customer relationship is yours, and so is the tax obligation that comes with it.
  • CANDI never holds your money. Charges settle on your account and Stripe pays you directly. There is no CANDI balance to wait on and no payout schedule of ours to work around.

What CANDI adds on top

Checkable against our API and our docs.
  • Hosted and embedded checkout — a redirect flow with signed returns, or an inline modal on your own page via the embed SDK.
  • Subscriptions that behave — trials, proration on upgrade and downgrade, pause and resume, and dunning that retries a failed renewal before it cancels.
  • Licence keys, prepaid credits and file delivery — issued the moment the payment clears, with activation limits, expiry and token-gated downloads.
  • One contract, two data planes. A single OpenAPI spec behind the API, dashboard, checkout and portal, and two physically separate databases for live and test.

Where the line falls. Everything to do with the money is Stripe's and yours; everything to do with the billing model is ours.

On one saleStripe, on your account CANDI
Taking the card paymentStripe processes it
Verifying you (KYC / KYB)Stripe hosts it and decides
Where the money landsyour own account never holds it
Getting paid outyour own payout schedule
Sales tax, VAT, GSTStripe Tax, if you enable it not calculated by CANDI
Refunds and disputesStripe's terms, your balance reported to you on a signed event
Subscriptions, trials, dunning CANDI runs it
Licence keys, credits, files CANDI runs it
Discounts, splits, affiliates CANDI runs it
Checkout page and customer portal CANDI runs it
Signed webhooks and delivery log CANDI runs it
Fees on the saleStripe's processing fee 1% on top
The seller of recordnot Stripe not CANDI — it is you
What you cannot do yet. Connect is enabled on our Stripe platform account and the webhook path is live and signature-verified, but the onboarding flow you would use to connect your account is not built yet — so nobody is taking live money through CANDI today. What is open right now is test mode: sign up and build the entire integration against its own database with its own keys. Ask us where the connection stands before you plan a launch date around it.
Pricing

Stripe's fees, plus 1% to CANDI. That is the whole structure, and the whole number — two charges land on a sale and no others.

Stripe's own processing fee, taken by Stripe on your account at whatever your Stripe agreement says, and a flat 1% platform fee to CANDI for the billing layer. No monthly fee, no setup fee, no minimum, and nothing on a payment that fails.

How the 1% works

One line on the same charge. Nothing to reconcile.
  • ·Stripe's fee is between you and Stripe. It comes off on your own account at whatever your Stripe agreement says. CANDI does not mark it up and does not see a different number than you do.
  • ·CANDI's platform fee rides on the same charge as Stripe's application fee, so there is no invoice from us to pay and nothing to reconcile at the end of the month.
  • ·Nothing on a failed payment. The platform fee exists only on a charge that succeeded.
  • ·Refunds and disputes are Stripe's process, on your account. The disputed amount and Stripe's own dispute fee come off your balance under Stripe's terms — CANDI is not in the middle of that.

What 1% actually costs you

Worked through, on your own Stripe rate.
  • ·A $29 sale. Stripe takes its fee on your account at your rate; CANDI takes 29¢. On a $290 sale, $2.90.
  • ·It scales with the sale, not with seats or volume tiers. There is no plan to outgrow and no negotiation to have at a threshold.
  • ·Nothing on a failed payment, nothing monthly, nothing to set up. If you sell nothing in a month, CANDI costs nothing.
  • Not yet chargeable. Nobody can take a live payment through CANDI today — the Stripe connection above is not built — so 1% is what it will be, on a thing you cannot buy yet. Build against test mode for nothing and decide afterwards.
When you do not need CANDI. If all you need is a card payment — one price, nothing to renew, no licence to issue, no credits to meter, no affiliate to attribute — Stripe on its own already does that, and CANDI is a layer you would be paying for and not using. This is worth 1% when the thing you sell has a billing model around it: renewals, entitlements, metering, partners. If it doesn't, use Stripe directly and keep the 1%.
Everything to sell software

From checkout to renewal, on your own account. The billing stack behind a single API, on top of the payments you already have.

The primitives you would otherwise assemble from a subscription tool, a licensing service, a credits ledger and an affiliate platform — behind one integration and one contract.

Hosted & embedded checkout

Send the customer to a hosted page and get them back on a signature-verified redirect, or keep them put and open it as an inline modal with the embed SDK.

Subscriptions

Trials, proration on upgrade or downgrade, pause and resume, seat counts, and dunning that retries a failed renewal before it cancels.

License keys

Issue keys on purchase, activate and validate per device with activation limits and expiry — no extra service to run.

Usage credits

Prepaid wallets and metered billing with durable idempotency — perfect for AI tokens, API calls and loyalty points.

Digital file delivery

Attach files to a product and the buyer gets a token-gated download the moment payment clears, re-issued as a fresh signed link from their portal.

Discounts

Percentage or fixed-amount codes with expiry, redemption caps and per-product scope, validated at checkout before the customer pays.

Signed webhooks

Twelve HMAC-signed events with retries at 30s, 1m, 5m and 1h, a full delivery log, dedupe on event id, and one-click resend.

Revenue splits & affiliates

Attribute a sale to an affiliate or split it across partners, with each party's share computed on the order and reported back to you line by line.

Customer billing portal

A magic-link portal where your customer sees their subscriptions, orders and invoices, updates a card, and cancels or resumes without emailing you.

By the numbers

The plumbing under every sale. Two isolated data planes, twelve signed events, and one OpenAPI contract behind every surface.

These are properties of the platform you can check against our API and our docs — not traction claims. CANDI has no customer logos to show you yet, and we are not going to borrow anyone else's.

12
HMAC-signed webhook events, with retries at 30s, 1m, 5m and 1h, a delivery log and one-click resend.
2
Physically separate databases for live and test — mode isolation, not a boolean flag.
25
MCP tools your agent can call, from create_product to get_metrics_summary.
1
OpenAPI contract behind all four surfaces: API, dashboard, checkout and customer portal.
For developers

Two calls, and you are taking money. One OpenAPI contract, a test mode on its own database with its own keys, and an error envelope that tells you what actually went wrong.

Connect to what you already run. The charge goes to your Stripe account; CANDI runs the subscription, the licence, the credits and the entitlement behind it — you listen on one webhook.

Your app Your AI agent
Hosted checkout MCP · 25 tools
CANDI
Your Stripe account Subscription state License · credits · files
Signed webhook Stripe pays you

This is the whole integration. Open a checkout, then fulfil on the signed event — the renewal, the licence and the credits are ours to run.

# 1 — open a checkout
curl -X POST https://api.usecandi.com/v1/checkouts \
  -H "x-api-key: candi_test_…" \
  -d '{"product_id":"prod_…","success_url":"https://yourapp.com/done"}'
→ { "url": "https://checkout.usecandi.com/chk_…" }

# 2 — fulfil on the signed webhook (candi-signature: HMAC_SHA256)
POST /your/webhook   checkout.completed
→ grant access. Stripe pays you on your own schedule.
Getting started

Integrate this afternoon, without asking us first. Test mode runs on its own database with its own keys — sign up and the whole API is available immediately.

Nothing about building against CANDI waits on us. Connecting a Stripe account is what turns it into live money, and that step is not open yet.

Create a product

Define a one-time or recurring product with its pricing, and attach any licence, file or credit behaviour it needs.

Open a checkout

Call the API for a hosted checkout URL, or embed it as a modal on your own page. The charge is created on your connected Stripe account.

POST /v1/checkouts
→ checkout.usecandi.com/{id}

Fulfil on the webhook

Listen for checkout.completed, verify the candi-signature HMAC, and grant access. The renewal and the entitlement are then ours to run.

Agent-native

Your coding agent can wire this up on its own. An MCP server with 25 tools and a machine-readable SKILL.md mean an agent can create a product, open a checkout and read your MRR without a human reading the docs first.

Point Claude, Cursor or your own agent at the SKILL.md and let it do the integration. Billing tools built before agents existed make you read a reference manual; we publish one for the machine as well.

# connect the CANDI MCP server
npx candi-mcp

# then, from any agent:
create_product(name, price)
create_checkout(product_id)
get_metrics_summary()  → MRR
Roadmap & limits

What is not built, and what we are not going to build. Listed here rather than implied in a feature grid, so you can tell the difference between what CANDI does today and what it will do.

CANDI is new. The billing layer on this page is live and testable in your account right now; the Stripe connection that turns it into real money is not — and we would rather you heard that from us than found out during an integration.

Connecting your Stripe account

In build. Not available today.
  • Connect is enabled on our platform account and the webhook path is live and signature-verified, but the onboarding flow you would use to connect your account is not built. No live money moves through CANDI yet.
  • What is open today is test mode — its own database, its own keys, the whole API. Build the integration now and connect the account when the flow lands.
  • More payment methods. Cards are what the checkout takes today; wallet buttons and local methods are not wired up yet.
  • More currencies. USD and EUR are the only two supported today.

Tax — yours, not ours

Not a roadmap item. A boundary.
  • You are the seller of record, so the tax obligation is yours. Where you have to register, calculate, collect and file is between you and the jurisdiction.
  • Stripe Tax is available to you directly on your own account if you want it calculated and collected at checkout — you enable it in Stripe, not in CANDI.
  • CANDI does not calculate, collect, remit or file tax, and is not going to on your behalf. Orders are recorded with a zero tax line.
  • If you were looking for someone to take the tax liability off you entirely, that is a merchant of record, and CANDI is not one.
Get started

Build against it before you commit to it. Test mode is open the moment you sign up — integrate the whole thing, decide afterwards whether the economics work for you.

Your own Stripe account, your own money · Stripe's fees plus a platform fee, and nothing else · How pricing works