Five minutes from sign-up to your first payment. Everything here happens in this dashboard — no server to run.
Open Settings → Sweep destination and paste the Solana wallet address where you want payments to land (your treasury, an exchange deposit address, a Phantom wallet — anything you control).
This is the single most important setting. Funds are swept here as soon as a payment is confirmed. It's a public address — safe to paste. If it isn't set, payments can't settle.
Optionally also configure:
Click Save.
Open API keys → Create key, give it a name (e.g. production), and copy the
key. It looks like:
sk_live_9f2c... (or sk_test_... for a test account)
You only see the full key once. Store it in your backend's secrets now. If you lose it, revoke it and create a new one. Keep it server-side — never ship it to a browser or mobile app.
From your backend, create a payment intent. You get back a deposit address and
a derivation_index to track it:
curl -X POST https://api-processing.zuuppa.com/intents \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "expected_lamports": 500000000, "reference": "order-1001", "expires_in_secs": 900 }'
{
"derivation_index": 42,
"address": "9xQe...pump",
"expected_lamports": 500000000,
"status": "pending",
"reference": "order-1001"
}
Show address (and a QR of it) to your payer, then either wait for a
webhook or poll GET /status?index=42 until it's swept.
That's the whole loop. The Integration guide walks through a complete checkout with code.
The Payments page in this dashboard lists your intents live — status,
expected vs. received amount, and the deposit address — so you can watch a
payment move from pending to swept as you test.
You can also try the whole flow with no code on the Demo page in this dashboard.
Next: Concepts →