Going live
Test mode and live mode are the same API. Going live means verifying your business and swapping keys.
- Verifybusiness, people, bank
- Swap keys
sk_test_…→sk_live_… - Checklistwebhooks, retries, alerts
- Take paymentsProbation, then reviewed
1. Verify your business
Section titled “1. Verify your business”The card networks need to know who is taking the money. Going live in the Tuppence app walks you
through it, ending with an identity check: a photo of your ID and a selfie. Until it’s
complete, live keys refuse payments (onboarding_incomplete) and the dashboard’s Live switch
stays off.
The identity check is run by Stripe, which processes Tuppence’s card payments, so you may see its name on that screen. You don’t need a Stripe account. Tuppence keeps its own encrypted copy of what you provide (the details you type, your bank account number, your ID photos and documents), as its terms describe (“Your verification records”), so you’re never asked twice.
What you’re asked for depends on your account’s country (the header’s region switch picks which you see here):
- The business: its Companies House number (or, for a sole trader, your own details), and its address in the UK.
- The people: each director and owner of 25% or more, with their date of birth and home address.
- The bank account payouts go to: a sort code and account number in the business’s name.
- Social Security number (SSN) or EIN: an EIN for a company; your SSN for a sole proprietor. The last four digits of the SSN for each owner and representative.
- The business: its legal name, address (with state and ZIP code) and a matching statement descriptor.
- The bank account payouts go to: a US routing number and account number.
- The business: its legal name, an address in its country, and the company number as its country names it, with an example on the form (Handelsregisternummer in Germany, numéro SIREN in France, CRO number in Ireland, KvK-nummer in the Netherlands). A sole trader gives their own details instead, as their country’s rules ask.
- A VAT number, if you have one: optional, and checked against the EU’s VIES register when you enter it.
- The people: a representative (with nationality in Italy and Spain) and each owner of 25% or more, with their date of birth and home address. Identity is checked by Stripe Identity, except in Slovakia, where you upload your documents.
- The bank account payouts go to: an IBAN in the business’s name, checked for your country’s length and its check digits as you type it.
2. Swap the keys
Section titled “2. Swap the keys”In live mode, create live keys (sk_live_…) under Developers → API keys, store them like any
production secret, and replace the test keys in production. Test keys never touch live data, and
live keys never touch test data.
Prefer restricted keys (rk_live_…) with only the scopes each service needs, plus an IP
allowlist where callers’ addresses are fixed.
3. Checklist
Section titled “3. Checklist”| Check | Where |
|---|---|
Webhook endpoints created in live mode, https://, live secrets stored | Webhooks |
Every POST sends an Idempotency-Key (the SDKs do) | Idempotency |
You branch on error code and retry only what should be retried | Errors |
| Branding shows who you are on the pay page, receipts and emails. Payers dispute what they don’t recognise | Settings → Branding |
| Someone gets alerts: disputes have deadlines | Settings → Notifications |
| You know your payout schedule: daily, whatever has cleared, once it’s £1$1€1 or more. Or pay out yourself, any time, from the same page | Balance → Payouts, Payouts |
| You know a new account’s limits: nothing leaves in the first 168 hours, payments clear in seven days until seasoned, then three (or next day, if you switch it on) | below |
| For money sooner: instant payouts, 0.99%0.99%1.5%, within 30 minutes, pending money included | Balance → Get it now |
| You know live payments may start before our review, in Probation, and payouts after it | below |
Payouts and limits for new accounts
Section titled “Payouts and limits for new accounts”A person at Tuppence reviews every new business before its first payout. You can trade in the meantime: once verified, you take payments within an allowance, and the money waits in your balance.
- Probation£100 a payment, £500 in all
- Reviewusually 1 business day
- 168 h, then 7-day clearinguntil £1,000 seasons
- 3-day clearing
standard
- Probation$100 a payment, $500 in all
- Reviewusually 1 business day
- 168 h, then 7-day clearinguntil $1,000 seasons
- 3-day clearing
standard
- Probation€100 a payment, €500 in all
- Reviewusually 1 business day
- 168 h, then 7-day clearinguntil €1,000 seasons
- 3-day clearing
standard
While we review you (Probation)
Section titled “While we review you (Probation)”Once you’re verified and our automatic checks pass, live payments switch on in Probation
(account.probation_started): up to £100$100€100 a payment, and £500$500€500 and 20 payments in all,
with no payouts yet. Home and Balance (dashboard and app) show what’s left. Payouts start
once we’ve reviewed you, usually within one business day. If the review hasn’t finished within 30
days, new payments pause with 503 account_review_pending (account.probation_expired; refunds
still work) until it has.
When we need something from you, Tuppence needs something from you appears on Home (and as a step in the app), with an email and a push. Answer there in words and files (PDF, JPEG or PNG, up to 10 MB each). We keep an encrypted copy for our checks and pass it on for verification. The review resumes as soon as you answer.
After the review, your limits grow
Section titled “After the review, your limits grow”Approved accounts start on Starter and move up automatically as trading history builds and disputes stay low.
| Starter | Established | Trusted | |
|---|---|---|---|
| Most in one payment | £1,000 | £2,500 | £10,000 |
| Payments per day · per 30 days | £1,500 · £10,000 | £5,000 · £50,000 | £20,000 · £200,000 |
| Paid out and still open to chargebacks, at most | £2,000 | from £5,000, growing with your volume | from £15,000, growing with your volume |
| Paid out per day | £1,000 | £5,000 | £20,000 |
| Rolling reserve | 10% of 60 days’ takings | 5% of 30 days’ takings | none |
| Instant payouts | no | no | yes |
| Starter | Established | Trusted | |
|---|---|---|---|
| Most in one payment | $1,000 | $2,500 | $10,000 |
| Payments per day · per 30 days | $1,500 · $10,000 | $5,000 · $50,000 | $20,000 · $200,000 |
| Paid out and still open to chargebacks, at most | $2,000 | from $5,000, growing with your volume | from $15,000, growing with your volume |
| Paid out per day | $1,000 | $5,000 | $20,000 |
| Rolling reserve | 10% of 60 days’ takings | 5% of 30 days’ takings | none |
| Instant payouts | no | no | yes |
| Starter | Established | Trusted | |
|---|---|---|---|
| Most in one payment | €1,000 | €2,500 | €10,000 |
| Payments per day · per 30 days | €1,500 · €10,000 | €5,000 · €50,000 | €20,000 · €200,000 |
| Paid out and still open to chargebacks, at most | €2,000 | from €5,000, growing with your volume | from €15,000, growing with your volume |
| Paid out per day | €1,000 | €5,000 | €20,000 |
| Rolling reserve | 10% of 60 days’ takings | 5% of 30 days’ takings | none |
| Instant payouts | no | no | yes |
Need more now? Balance → Ask for higher limits tells our review team what’s coming. We usually answer within one business day.
Nothing leaves in the first 168 hours
Section titled “Nothing leaves in the first 168 hours”No money leaves a new account until 168 hours (to the minute) after the latest of: signing up,
going live, our review, and your first payment. That covers payouts (scheduled, on demand or
instant), moving earnings onto your cards, Connect transfers and sweeps. Nobody can shorten it.
A payout you request is refused with 403 new_account_floor (available_from is when it opens);
scheduled payouts wait and pay out on the first run after. new_account_floor.ends_at on
GET /v1/payout_settings is that moment; Balance says Payouts start on ….
Then every payment waits seven days, until 1,000 has seasoned
Section titled “Then every payment waits seven days, until 1,000 has seasoned”A new account’s payments (settlement_tier: new_account) clear seven days after they’re taken
until £1,000$1,000€1,000 of its card payments have seasoned: at least seven days old, not refunded,
disputed or flagged for fraud, at most £250$250€250 from any one card (so at least four cards). From then
on, payments clear after three days (standard); earlier ones keep their seven. This stops
stolen-card money leaving before the fraud comes to light.
On GET /v1/payout_settings → seasoning | |
|---|---|
seasoned_amount of seasoning_threshold, cards_counted | Progress so far |
expected_at | When the payments so far will get it there |
seasoned_at | When it got there; account.settlement_seasoned is sent then |
Instant payouts open only after seasoning (reason: seasoning), as do
next-day payouts. After 90 days with no payments,
seasoning starts again.
What can be held back, and why
Section titled “What can be held back, and why”Balance shows what isn’t being paid out and why. On GET /v1/payout_settings:
| Reason | What happens | Field |
|---|---|---|
| Reserve | A share of takings is kept back (see the tiers) | limits |
| Payout limit | The rest follows as recent payments age, or tomorrow | limits: tier, payouts_approved, exposure_cap, exposure, headroom, daily_payout_limit, paid_out_today, per_payout_limit |
| Review of recent activity | Payments carry on; payouts restart once we’re done | hold.kind: review |
| Cooling-off after you change the payout bank account | Payouts restart by themselves | hold.kind: cooling_off, hold.ends_at |
hold.kind is review, cooling_off or account. A scheduled payout held back by a limit pays what it can and sends payout.limited.
Errors from these limits
Section titled “Errors from these limits”| Code | Status | When |
|---|---|---|
account_ticket_limit | 402 | The payment is more than your account can take in one payment |
account_probation_limit | 402 | The payment would exceed the new-account allowance while we review yours |
account_volume_limit | 429 | The payment would exceed your daily or 30-day limit (window: day or 30_days); Retry-After says when it fits |
account_review_pending | 503 | Probation ran 30 days without a finished review: new payments pause |
payouts_not_approved | 403 | A payout before we’ve reviewed your account |
payout_limit | 403 | A payout above your limits (limit_type, headroom, and resets_at for the daily limit) |
new_account_floor | 403 | Money leaving in the first 168 hours: a payout (instant or not), a transfer, or moving earnings to your cards (available_from says when) |
Payers never see your limits. They’re told only that the business can’t take the payment right now.
| Event | Sent when |
|---|---|
account.probation_started, account.probation_expired | Probation begins; it ran 30 days without a review |
account.review_started, account.review_info_requested (with what we asked), account.review_completed (outcome) | The review moves |
payout.limited | A scheduled payout paid what the limits allowed (or nothing), and why |
payout.held | Held, with the reason (code: not_approved before review) |
The fee is fixed when a card is presented, and every payment shows it with how it was worked out. A refund gives the payer everything back but doesn’t return our fee. A dispute costs a fee only if it’s lost (pricing). Your monthly statement (Reports → Monthly statements) reconciles every penny or cent to the balance held for you.
- Payouts and settlement
- Testing: rehearse it all in test mode first.