The infrastructure layer
for crypto payments
Take payments in crypto, know the instant they land, and run your own logic the moment they do. Money settles straight to a wallet you control: no KYC, no bank account, no processor in the middle.
Invite-only while we're in beta. Already invited? Sign in.
Everything a payment processor does.
None of the banking.
A card processor sits between you and your money. Underwriting, a list of supported countries, payout delays, chargebacks, and a compliance file on every merchant, all of it before a single customer pays you.
Zuuppa does the work a processor does: prices a checkout, watches for the payment, confirms it really arrived, and tells your backend so it can act. It does none of the work a bank does. There is no account for anyone to freeze and no payout to wait for, because the money moves on-chain from your buyer into a wallet you already control.
We are the layer that makes crypto usable as a payment rail, not a wallet, not an exchange, not a token. Solana today; the API is the product.
No bank account
No processor, no merchant account, no underwriting.
No KYC on you
Set a destination wallet and start taking payments.
No key handling
We derive, detect and sweep. Your keys stay yours.
Three calls from end to end
Your backend creates a payment and reacts when it settles. Everything between those two moments (address derivation, on-chain detection, conversion, sweeping, refunds) is ours.
Create the payment
One POST from your server, priced in USD, listing the tokens you'll accept. You get back a deposit address unique to this payment, and a client secret for the buyer's side.
The buyer pays in what they hold
They choose a token; we convert the USD price at spot and lock it. From creation they have 10 minutes. After that the checkout cancels itself and anything already sent comes back.
You hear about it, and act
We detect the transfer, sweep it to your wallet, and POST a signed event to your endpoint. It carries the exact amounts that landed and the on-chain signatures, so fulfilment and bookkeeping run off the same source of truth.
Your backend → Zuuppa
POST /intents
{
"amount_usd_cents": 1250,
"accepted_tokens": [
{ "kind": "sol" },
{ "kind": "spl", "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" }
],
"reference": "order-1003"
}Zuuppa → your webhook
{
"type": "intent.swept",
"intent": { "reference": "order-1003", "status": "swept" },
"settlement": {
"asset": "USDC",
"decimals": 6,
"destination_amount": 12375000,
"platform_fee_amount": 125000,
"signatures": ["4bd..."]
}
}Prefer not to run an endpoint? Poll for status instead. Same information, same guarantees. Full API reference.
What you get
A fresh address per payment
Every checkout derives its own deposit address, never reused. No shared wallet to untangle later, and no guessing which payment a transfer belonged to.
Priced in USD, paid in tokens
You quote $12.50. The buyer picks SOL, USDC or any SPL token you accept; we convert at spot and lock the amount for a 10-minute window.
Settles to your wallet
Detected on-chain and swept to the destination you set, a wallet whose keys are yours. You never hold a seed, run a node or touch an RPC endpoint.
Your backend finds out
HMAC-signed webhooks for paid, swept, refunded and failures: one event per transition, each with a stable id to dedupe retries on. Or skip them and poll for status.
Numbers you can account for
A settled payment reports the exact amounts delivered, the asset, the fee deducted and the transaction signatures. Verifiable against the chain, not just our word.
The awkward cases, handled
Overpayments refund the excess. Underpayments wait, then refund. The wrong token arrives, or nobody pays at all? Returned automatically. None of it needs a human.
What people build on it
Anywhere money needs to change hands and something needs to happen afterwards.
Online checkout
Sell physical or digital goods for crypto. Keep a catalogue of items and let us price the cart server-side, so the total can't be tampered with in the browser.
Credits and top-ups
Let people fund a balance, buy credits or add money to an account. The settled webhook is your signal to credit them, for the exact amount that landed.
In-app purchases
Drop the SwiftUI checkout sheet into an iOS app. The buyer chooses a token, pays, and the sheet reports back. No web view, no redirect out of your app.
Anything that unlocks on payment
Metered APIs, game items, access passes, releases. Attach your own id to a payment and run whatever you like the moment your backend hears it settled.
One percent. That's the pricing.
1%
per settled payment
- Plus the Solana network fee: a fraction of a cent per sweep, and we front it on token payments so you receive the full amount.
- No monthly fee, no setup fee, no minimum volume.
- Nothing held back for chargebacks, because on-chain payments can't be reversed by the payer.
- Taken in the same transaction as the sweep, and reported on every payment, so the amount you netted is never a calculation you have to do.
Start taking crypto payments
We're onboarding accounts by invite while we're in beta. Tell us what you're building and we'll get back to you.