Payments and cards for every business on your platform.
Give each business its own account and cards. Onboard it in your branding, take a fee on every payment and earn the cashback on its card spend.
An example on a booking platform, Lumen Labs, with three connected accounts: Brightwell Studio, still onboarding; Halcyon & Co; and Fernbank Yoga. Tuppence verifies Halcyon & Co. A customer then pays Halcyon & Co $40.00 by card on Lumen Labs, which sets a $1.20 fee. Of the $40.00, our fee is $1.20 (2.49% + 20¢), Lumen Labs’ fee of $1.20 goes to its Connect balance, and Halcyon & Co keeps $37.60.
Three calls from sign-up to your first fee.
Create an account
One API call creates a connected account: a full Tuppence account, with a list of what’s needed to verify it.
POST /v1/accountsOnboard it
Send the business to a hosted page with your name, logo and color, or collect the details on your own screens through the API.
POST /v1/account_linksTake your fee
Set your fee on its payments. It’s swept into your own balance every day, or sent on to your accounts.
application_fee_amountOnboarding in your name.
An account link opens a Tuppence page with your name, logo and color. It asks only for what’s needed to verify the business, saves as it goes and returns the business to you when it’s done.
- Bank details, tokenisedTokenised in the browser, so the account number never reaches you or us.
- Identity checksPeople confirm who they are with photo ID and a selfie. Documents go straight to our verification partner.
- Your terms beside oursYour terms and privacy notice, linked next to ours.
Act as any of your businesses.
Every call for your own account works for a connected one. Add Tuppence-Account with its ID. Its payments, customers, bookings and cards are its own, visible only to it.
- With your own secret or restricted key, and your dashboard team
tuppenceAccountortuppence.as()in Node,as_account()in Python- An
accountargument on the MCP tools, for your agents - An account that isn’t yours is refused:
403 account_invalid
const halcyon = await tuppence.accounts.create({ email: "owner@halcyon.example", business_type: "company", }); // $40 for Halcyon & Co, with your $1.20 fee await tuppence.as(halcyon.id).payments.create({ amount: 4000, currency: "gbp", application_fee_amount: 120, });
halcyon = tuppence.accounts.create( email="owner@halcyon.example", business_type="company", ) # $40 for Halcyon & Co, with your $1.20 fee tuppence.as_account(halcyon.id).payments.create( amount=4000, currency="gbp", application_fee_amount=120, )
curl https://api.tuppence.ai/v1/payments \ -H "Authorization: Bearer $TUPPENCE_SECRET_KEY" \ -H "Tuppence-Account: acct_1…" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{"amount": 4000, "currency": "gbp", "application_fee_amount": 120}'
// Any tool, as one of your accounts { "name": "create_booking", "arguments": { "account": "acct_…", "items": [{ "service": "svc_…" }], "starts_at": "…", "idempotency_key": "…" } }
Issue cards as any of your businesses.
Your businesses get Tuppence cards through the calls you already use, and accept the card terms in your onboarding. You earn the 1% cashback on their spend and choose how much to pass on.
- Ask for cards when you create an account. The business accepts the card terms in your onboarding.
- Spend limits, policies and approvals work as on your own account. Your owners and admins approve.
- Pass on 0% to keep all the cashback, 1% to pass it all on, or more. It’s paid from your Connect balance each month.
const halcyon = await tuppence.accounts.create({ email: "owner@halcyon.example", capabilities: { card_issuing: { requested: true } }, settings: { cashback_share: "0.50" }, // pass on 0.50% }); // Once Halcyon accepts the card terms in your onboarding: await tuppence.as(halcyon.id).cards.create({ limits: { monthly: 50000 }, });
Set it for all your businesses, or one at a time.
How the cashback is paidYour fee, on every payment.
Set your fee on a business’s payments, links, plans and booking deposits, or set a default. Your fees are held in your Connect balance.
Application fees
A fixed amount or a percentage, on top of our card rate. Give some or all of a fee back with a refund.
The Connect balance
Fees wait there until they clear, then sweep into your own balance daily once there’s $1 to sweep.
Transfers
Send money from your Connect balance to any of your businesses, and reverse it while they still hold it.
Payouts on a schedule
Pay out each business daily, weekly, monthly or manually.
Who pays our fee
Each business pays our card rate on its payments, or your platform pays it. You choose when you create the account.
Losses are yours
Your platform covers a business that stays below zero, from your Connect balance first, then your own.
Verification built in.
Every business on your platform is checked before it takes a live payment. You don’t build identity checks, sanctions screening or card security yourself.
Identity checks
The people behind each business confirm who they are with a photo ID and a selfie, checked by our identity verification partner.
Business and owner checks
Onboarding collects the business, its owners and directors, and its bank account, and has them verified before payments are switched on.
Screening before going live
We screen each account for links to rejected businesses and blocklisted details. A person reviews anything flagged, usually within one business day.
Card data kept out
Customers type their card into secure fields that go straight to our PCI DSS Level 1 card processor. Card numbers never reach your servers or ours.
KYC records kept
We keep ID documents and bank details encrypted. Your API sees only whether each detail was given, never the detail itself.
Sanctions screening
Each business and the people behind it are screened against UK, UN, EU and US sanctions lists when they onboard, and again on an ongoing basis.
Payments that give more back.
Start in test mode in a minute. Go live once you’re verified.