Tuppence
Tuppence takes card payments for software: an API a developer calls, a link a person pays, a route an agent pays for. You get the money in your bank; we keep a published fee.
How it fits together
Section titled “How it fits together”- Payments — create one, a card pays it: on our hosted page, in your checkout, or saved for later. Take a payment →
- Payment links — a URL that takes a payment. No code on the payer’s side. Payment links →
- Webhooks — we tell your server what happened, signed. Webhooks →
- Agents — an MCP server your agent can use, and HTTP 402: one line puts a price on an API route.
- Money out — your balance, explained line by line from our ledger, paid to your bank on a schedule or when you ask.
Things that are true everywhere
Section titled “Things that are true everywhere”- Test and live mode. A key is one or the other (
sk_test_…,sk_live_…). Test mode moves no money and has helpers for what time and banks would do. - Amounts are integers, in the currency’s minor unit:
2000is £20.00. The API never sends a float. - Every write is safe to retry. Send an
Idempotency-Keyand a retry returns the first result instead of acting twice. The SDKs do it for you. - Versions are dates. Your account is pinned to the version current when it was created;
send
Tuppence-Version: 2026-09-20to choose. Breaking changes only ever arrive in a new version. - Errors have stable codes — branch on
code, never onmessage. Errors →
Every code block marked as runnable in these docs is executed against the real API in our CI, on every change. If one breaks, we find out before you do.
Next: the quickstart — a payment link in two minutes.