Guide
Sell your product
From an API key to a live checkout, fulfilled by webhooks. Every step checks out in test mode.
What you'll build
- Your server → QBitFlow API: Creates a checkout for the order
- QBitFlow API → Your server: Its link and pay@… id
- Your server → Customer wallet: Sends your customer to the link
- QBitFlow API → Customer wallet: Prepares the transaction
- Customer wallet → Payment contract, on-chain: Pays, signed once
- Payment contract → Your wallet, on-chain: Your share, QBitFlow's fee split off
- QBitFlow API → Your server: payment.completed
- Your server → Customer wallet: Fulfils the order
- A checkout for your product, fulfilled when payment.completed arrives, never on a redirect
- Payments, refunds and an accounting export, with errors and retries handled safely
- The same integration in live, with nothing left behind in test
For a store, an app or a game selling its own goods once: an order, a licence, a lifetime plan. Billing every month too? The subscriptions guide builds on the same set-up.
The steps
- Step 1: Set up your account, test mode and an API keyAn account, the dashboard in test mode, a wallet to be paid in and an API key, then a client that checks the key on start-up.
- Step 2: Products, or inline onesPut what you sell in your catalog, with your own reference, or skip the catalog and describe each order inline at checkout.
- Step 3: Take a paymentCreate a checkout for an order, send your customer to its link, follow its status, and pay it yourself with test tokens.
- Step 4: Fulfil orders from webhooksCreate a webhook endpoint, handle payment.completed in your framework, and fulfil each order once, even when an event comes twice.
- Step 5: After the saleRead your payments and their exact amounts, refund one in full or in part, and export everything for your accountant.
- Step 6: Make it robustHandle errors by their code, retry without ever opening a second checkout, walk long lists page by page, and back off when rate limited.
- Step 7: Test and go livePay your checkouts with test tokens, know what test mode does differently, then redo in live what your integration needs, row by row.
Before you start
- A server that keeps a secret (your API key) and receives HTTPS requests from the internet (your webhooks).
- A wallet of your own on a network QBitFlow supports (Ethereum, Base and Solana), and the same wallet on its test network.
- One of the four SDKs (TypeScript, Python, Go and PHP), or plain HTTP: every example has its cURL.