Commerce API
The API commerce runs on.
Orders, checkout, subscriptions, refunds by line item, and payouts, on one record you never reconcile. You bring the storefront. Flint runs everything between add to cart and money in the bank. Nothing to self-host, no separate processor to contract.
free sandbox · no credit card · keys in minutes
01The dashboard
The back office is already built.
Payments, orders, returns, payouts, and a developer console from the day you sign up. You still build your storefront; you never build this. It runs on the same public API you integrate, so it can never fall behind.

02The checkout
A checkout buyers already know how to use.
Express wallets, cards, bank debit, and Affirm on one page that works on any phone. Point a customer at a hosted page or a reusable link, or embed the payment fields in your own front end.
03After the sale
Refund the croissant, not the order.
One call returns the item, reprorates its tax, restocks it, and updates the balance. Returns, disputes, and renewals run as workflows on the record, not tickets in your queue.
POST /v1/orders2 line items · tax computed201POST /v1/checkout-sessionshosted checkout · pays $19.43201POST /v1/refundsCroissant ×1 · −$5.36201A return, end to end
Renewals bill as orders too, so a subscription refunds like any other sale. Try the billing simulator on the subscriptions page →
04The model
The order is the system of record.
A payments API gives you a charge: an amount, a currency, and nothing about what was sold. The cart, the totals, the tax, and the refund logic all become your code, and your database has to agree with the processor forever.
Coming from a payments processor
With Flint there is one system. Payments, tax, promotions, subscriptions, and refunds compute on the order, with one audit trail. Your database keeps your product; Flint’s keeps the sale. The full payments argument →
Coming from a commerce platform
Same seam, one layer up. You get the catalog and the order, then contract a processor separately and wire it in yourself, and the money lands in a system the order cannot see. Most of them hand you the servers as well. How Flint replaces that stack →
ord_1kmn0aExampleGET /v1/orders/{order_id}
- status · closed
- payment_status · paid
- refund_status · partially_refunded
- total · $19.43
- refunded · $5.36
The hero's receipt, the checkout, and the refund above all read and write this record. There is nothing to reconcile, because there is one system.
payment_intentPOST /v1/orders/{order_id}/payment-intents
Money lands on the order. The amount comes from its balance.
checkout_sessionPOST /v1/checkout-sessions
A hosted page over the order the buyer already has.
refundPOST /v1/refunds
Returns line items, not an amount. Tax follows the item.
subscriptionPOST /v1/subscriptions
Each renewal is an order, so it reports like any other sale.
disputeGET /v1/disputes
Attached to the payment that attached to the order.
payoutGET /v1/payouts
The money-out half, on the same ledger as the sale.
The systems you don’t build.
The cart and order service
POST /v1/ordersTax math, per line item and per refund
order.pricing_amounts.tax_moneyThe nightly job diffing your DB against the processor
GET /v1/balance-transactionsSupport tooling mapping charges back to items
POST /v1/refunds · line_items[]Retries, ordering, idempotency and replay between services
Idempotency-Key · webhook_event_idInventory decrement on payment, restock on refund
POST /v1/inventory-reservationsreviewed 2026-08-07 against the published API · corrections: support@withflintpay.com
The scale of the surface
Settlement runs on Stripe’s rails. The commerce layer is Flint’s.
every API sample on this page is validated against the published OpenAPI spec at build time
05AI agents
Agents can run the store, safely.
An order is legible to a model in a way a charge never is. Every money-moving call carries machine-readable hints, so an agent knows what is irreversible before it acts, and a human approves anything financial.
An agent is only as capable as the API you hand it.
A payments API gives an agent two verbs: charge and refund. The asks that actually land are bigger, and agents can carry them now. The ceiling is the API, not the model.
Charge my card $19.43.
a payments API can: the verb it has
POST /v1/payment-intentsRefund the croissant, not the whole order.
a payments API cannot: no order to read
POST /v1/refunds · line_items[]Add a bag of beans before it ships.
a payments API cannot: no order to read
POST /v1/orders/{id}/line-itemsIs the dark roast back in stock?
a payments API cannot: no order to read
GET /v1/productsHas my order shipped yet?
a payments API cannot: no order to read
GET /v1/orders/{id}What sold best this week?
a payments API cannot: no order to read
GET /v1/ordersfive of the six need something a payments API does not have: the order
agent_hints · POST /v1/refunds
- Side effect
- Financial
- Human confirmation
- Required
- Idempotent
- Yes, per Idempotency-Key
- Terminal states
- succeeded · failed
The hint travels with the method, so an agent reads it before it calls. Two MCP servers ship today: one reads the docs, one does the work, and the one that does the work fails closed. The MCP servers and the rest of the agent surface →
06Developers
Four calls from nothing to settled.
Create the order, hand the buyer a hosted page, read the settled state back. Plain HTTP and JSON, a typed Node SDK, and a CLI that streams sandbox webhooks to localhost.
# 1. the order: line items in, totals computed
curl -X POST https://api.withflintpay.com/v1/orders \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{ "line_items": [ ... ] }'
# 2. a hosted page over that order
curl -X POST https://api.withflintpay.com/v1/checkout-sessions \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"order_id": "ord_1kmn0aExample",
"redirects": {
"success_redirect_url": "https://example.com/thanks",
"cancel_redirect_url": "https://example.com/cart"
}
}'
# 3. send the buyer to data.url, exactly as returned
# 4. confirm it from your own backend
curl https://api.withflintpay.com/v1/orders/ord_1kmn0aExample \
-H "Authorization: Bearer YOUR_API_KEY"{
"data": {
"order_id": "ord_1kmn0aExample",
"status": "closed",
"payment_status": "paid",
"settlement_amounts": {
"paid_money": { "amount": 1943, "currency": "USD" },
"outstanding_money": { "amount": 0, "currency": "USD" }
}
}
}The same order, settled. Your backend reads state, never a webhook race.

Node SDK
CLI
Live sandbox events, to localhost
07Pricing
One all-in processing price. The whole stack.
Your approved Flint agreement sets one all-in processing price. Provider costs are not added later as a separate merchant charge. Full details are on the pricing page.
Developer
$0/mo, forever3.79% + 30¢
cards and wallets · one flat rate, any volume
- ACH 0.70%, min $1, max $700 per payment
- Subscriptions & invoicing 0% platform fee
- Every public API endpoint, including the B2B suite
- Unlimited test mode, unlimited seats
- No processing-volume ceiling, no automatic upgrades
- 20 externally or manually paid orders per month
- One business · community + email support
For developers, side projects, and businesses validating Flint.
free sandbox · no card · keys in minutes
Growth
lower rate3.59% + 30¢
$399/mo, or $299/mo billed annually
- ACH 0.60%, min $1, max $700 per payment
- Subscriptions & invoicing 0% platform fee
- Everything in Developer, at a lower card and ACH rate
- Unlimited externally or manually paid orders
- Priority support, launch review, higher rate limits
- 12-month rate protection with annual billing
- Pays for itself at ~$200k/mo, or ~$150k/mo billed annually
For growing shops and SaaS, ~$100k–$500k/mo. Month-to-month available.
$399/mo · $299 annually · switch anytime
Scale
volume3.39% + 30¢
from $1,499/mo · one-year agreement
- ACH 0.50%, min $1, max $700 per payment
- Subscriptions & invoicing 0% platform fee
- Everything in Growth, at a lower card and ACH rate
- Named technical contact and incident escalation
- 99.95% contractual SLA
- Technical onboarding and payment-rate reviews
- Contract-term rate protection
- Net terms, price lists, quotes, and purchase-order workflows
- Card savings cover the step up from Growth at ~$550k/mo
For high-volume single businesses, ~$400k/mo and up.
a human replies · usually same day
Enterprise
from $2,499/moFor multiple businesses and submerchants, platform and marketplace payouts, HIPAA or SOC 2 commitments, data residency, and SCIM. Cards, ACH, payouts, and contract terms are all custom on top of the floor. Tell us what you are running and we will price it.
08Limits
What Flint does not do, and why.
Five hard limits. Better you find them now than a week into an integration.
No storefront. Flint has no themes and no page builder. You build and host the storefront; Flint holds the order and collects the money.
No card-present. No terminals, no card readers, no tap to pay, and no promised date for them. Flint fits counter service, online ordering, kiosks, and pay-at-table on the guest’s own phone. If your counter needs a physical reader today, use Square, Toast, or Stripe Terminal.
No bring-your-own processor. Flint provisions and operates its own Stripe-based processing; today you cannot attach a Stripe account you already have. Bringing your own is a work in progress: if your integration depends on it, ask sales where it stands.
No revenue share. The API has no application-fee or revenue-share field, so a platform cannot take a cut of its merchants’ payments. Platforms on Flint charge for their software instead. If a share of each transaction is your business model, talk to sales before you build, not after.
US merchants only. Flint onboards US businesses today, and pricing is in USD. Your buyers are not limited: cards from anywhere in the world work.
FAQ
Questions worth asking first.
Is Flint a Stripe alternative, or built on Stripe?
Flint is the commerce layer most payments APIs leave you to build: orders, catalog, tax, subscriptions, line-item refunds, and payouts on one record. A charge-only API gives you two verbs, charge and refund; Flint gives you the whole transaction. Settlement runs on Stripe's rails underneath, so it is one integration, not a migration to a new processor.
What's the best payment API for AI agents and agentic commerce?
Flint is built for AI agents to transact safely. The order is a semantic record (line items, balances, and refund state, not an opaque charge), so an agent can read exactly what was bought and reason about it. Every money-moving call ships agent_hints: machine-readable side-effect levels, idempotency, required scopes, and terminal states, so an agent knows what’s irreversible before it acts, and anything financial can require human confirmation. It’s plain HTTP and JSON.
How is Flint different from a commerce platform like Medusa, Saleor, or commercetools?
Those platforms model commerce well, but none of them move money: you contract a payment processor separately and integrate it yourself, so the payment ends up in a system the order cannot see and you reconcile the two. Flint is one contract for both, so the money lands on the order as a field rather than arriving from somewhere else. The open-source ones (Medusa, Saleor, Vendure, Magento Open Source) also expect you to run the servers, the database, and the upgrades, or to buy their hosted cloud. Flint is an API: there is no cluster to operate, though you still build and host your own storefront.
Do I need to build my own order or cart service if I use a payments API?
With a charge-only payments API, yes: you end up building the order and cart service, tax math, reconciliation jobs, and refund tooling yourself, then keeping your database and the processor in sync. Flint removes that work. The order is the system of record, so totals, tax, discounts, and refunds compute on one object with one audit trail. There is nothing to reconcile, because there is one source of truth, not two.
Can I refund a single line item instead of the whole charge?
Yes. Flint refunds against the order, line by line: one POST /v1/refunds with the line items returns the money, recomputes the balance and tax, and restocks inventory automatically. A charge-only payments API can only refund an amount, so you map charges back to items by hand. Flint never loses the link between what was charged and what was bought.
Do I have to adopt the whole order model on day one?
No. Charge a card with one POST /v1/payment-intents call and stop there if that’s all you need. Orders, checkout, subscriptions, and payouts are the same API and the same keys when you want them. No migration, no new account.
Does Flint handle tax and totals?
Yes. Flint computes tax per line item on the order, so totals come back correct and refunds return the right tax automatically. You set policy; the order does the math, every time it changes.
How does money out work with Flint?
Flint breaks balances out as available, pending, and reserved; payouts run on the standard schedule; and every movement lands in one transaction ledger, behind the same API as the commerce that generated it.
Is there an SDK or a CLI?
Yes. @flintpay/node is the TypeScript and JavaScript SDK, and @flintpay/cli is a command-line client where every command maps to a documented /v1 route. The CLI forwards live sandbox webhook events to localhost with flint listen, so you can build against real events without a tunnel, and it exposes the same command surface to AI agents over MCP. The API itself is plain HTTP and JSON, so neither is required.
How do I get started with Flint?
Create an account and grab sandbox keys: free, no credit card, no sales call. The quickstart takes you from first order to paid checkout in minutes.
Start with one order.
Free sandbox, no credit card. The record you create today is the same one your dashboard, your buyers, and your agents will read.
Prefer the terminal? npm install -g @flintpay/cli && flint signup creates the account and the sandbox key without leaving it. CLI docs →
POST /v1/orders · everything else follows



