Orders with Tocler Pay from your own site
Create an order of your shop from your server and take its crypto payment — with the store owner’s key, Tocler’s fee as in the shop.
| Where the crypto goes | What happens when it is paid |
|---|---|
| Tocler Pay’s addresses (every shop, by default) | Your Tocler Wallet is credited the order minus Tocler’s fee; ask for a payout when you like. |
| Your own addresses (after Tocler approves your request) | The coins go straight to your wallet; Tocler’s fee for the order is added to “fees owed”. |
Create the order
POST /v1/checkoutwith the buyer’s email, the lines (product, option, quantity, answers to its questions), the billing country if your shop collects tax, a shipping address for physical goods, and"payment": "tocler_pay". You get the order (pending), the coins you can take and a pay link in your shop.Send the buyer to the pay link…
pay_urlopens your shop’s own crypto page for that order — nothing more to build.…or show the payment in your own page
POST /v1/orders/{id}/tocler-paywith a coin → the address, the exact amount, the network and the time left. Show them with a QR code of the address. The buyer must send exactly that amount, in one transfer, on that network.Wait for “paid”
Tocler Pay checks the blockchain (five checks and the confirmations). Get the
order.paidwebhook, or followGET /v1/orders/{id}— the status becomespaid, and what can be delivered at once (keys, files, accounts…) goes to the buyer’s order page and email.
const api = (path, body, idem) => fetch('https://api.tocler.com/v1' + path, {
method: body ? 'POST' : 'GET',
headers: { Authorization: `Bearer ${process.env.TOCLER_KEY}`, 'Content-Type': 'application/json', ...(idem ? { 'Idempotency-Key': idem } : {}) },
body: body ? JSON.stringify(body) : undefined,
}).then((r) => r.json());
// 1. the order — your own cart id as the Idempotency-Key, so a retry never makes two orders
const { order, pay_url } = await api('/checkout', {
email: 'buyer@example.com', payment: 'tocler_pay', billing: { country: 'DE' },
items: [{ product_id: '665f1c2e9b1e8a00aaaaaaaa', variant_id: '665f1c2e9b1e8a00bbbbbbbb', quantity: 1 }],
}, 'cart-1042');
// 2. its payment, to show in your own page (or send the buyer to pay_url)
const { payment } = await api(`/orders/${order.id}/tocler-pay`, { coin: 'usdt_tron' }, `pay-${order.id}-usdt_tron`);
console.log(payment.address, payment.amount, payment.network.name, payment.expires_at);curl https://api.tocler.com/v1/checkout \
-H "Authorization: Bearer $TOCLER_KEY" \
-H 'Content-Type: application/json' -H 'Idempotency-Key: cart-1042' \
-d '{"email":"buyer@example.com","payment":"tocler_pay","billing":{"country":"DE"},"items":[{"product_id":"665f1c2e9b1e8a00aaaaaaaa","quantity":1}]}' Can I take a payment without an order?
No — on purpose. A payment always belongs to an order of your shop, so the buyer is protected, your stock and reports are right and Tocler’s fee is accounted for.
Does the buyer need an account?
No. The order belongs to the buyer’s email (like guest checkout). Keys and accounts appear on the order page after the buyer opens the link in the order email. Memberships and courses need an account, so they can’t be bought this way.
What do I see of Tocler’s fee?
Nothing in the API — shoppers never see it either. The store owner sees it in Dashboard → Payments → Tocler’s fee.
Can I use a Tocler Pay merchant key for my shop?
No. Tocler Pay merchants are a separate service Tocler sets up for other businesses. A shop’s crypto always goes through the shop (this API or the storefront), so it reaches your wallet and your shop’s records.