How do TON payments settle?
There is no deposit address: the buyer's wallet pays your TON treasury wallet directly. The buyer connects with TON Connect (Tonkeeper, Telegram Wallet or MyTonWallet) and approves the Jetton transfer.
Which tokens can I accept on TON?
Tether USD (USDT, Jetton, 6 decimals).
- USDT contract: EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs
What does it cost to accept payments on TON?
There is no setup fee, no monthly minimum and no charge on failed, expired or cancelled payments. A platform fee applies only when a payment settles, and it is recalculated automatically from your settled volume over the last 30 days: 0.5% under $50,000, 0.4% from $50,000 to $250,000, and 0.3% from $250,000.
For example, on a $1,000 payment the fee is $5 at 0.5%, $4 at 0.4%, $3 at 0.3%. Above the public floor, custom rates are available by contact.
How do I set it up?
- Create a merchant account. Sign up at app.infraio.xyz and verify your email.
- Connect a TON treasury wallet. Add a TON treasury wallet in the dashboard (one wallet per network family).
- Enable TON. Turn on TON in Settings → Networks so buyers can choose it.
- Share a payment link or open a checkout. Create a payment link in the dashboard or open a session with the SDK.
Open a hosted checkout; buyers choose TON there
import { loadInfraIo } from "@lartech/infraio-checkout-js";
// 1. On your server: POST /b2b/v1/checkout-sessions/quick (HMAC-signed with
// your secret key) returns { session_key, checkout_url }.
// 2. In the browser, open the hosted checkout with those two values:
const sdk = await loadInfraIo("pk_live_yourkeyhere");
sdk.checkout({
sessionId: session_key,
checkoutUrl: checkout_url,
mode: "popup", // or "redirect" / "embed"
onSuccess: () => showThanks(), // UX only: fulfil from the webhook
});