Crypto payments and payouts for business
Accept crypto payments. Keys stay out of the internet's reach.
Invoices by API or in the dashboard, payouts to whitelisted addresses, signed webhooks. Transactions are signed by a separate server that accepts no incoming connections.
- TRON
- Ethereum
- BNB Smart Chain
- Polygon PoS
- Base
- Arbitrum One
- OP Mainnet
- Avalanche C-Chain
- TON
- Solana
- USDT
- USDC
- USDT0
- TRX
- ETH
- BNB
- POL
- AVAX
- GRAM
- SOL
Networks and tokens
USDT, USDC and native coins on TRON, EVM networks, TON and Solana
Leave the token out of the invoice, and the customer chooses the network, then the coin on the payment page. The choice is final.
TRON
Token standard: TRC-20- USDT
- USDC
- TRX
Ethereum
Token standard: ERC-20- USDT
- USDC
- ETH
BNB Smart Chain
Token standard: BEP-20- USDT
- USDC
- BNB
Polygon PoS
Token standard: ERC-20- USDT0
- USDC
- POL
Base
Token standard: ERC-20- USDC
- ETH
Arbitrum One
Token standard: ERC-20- USDT0
- USDC
- ETH
OP Mainnet
Token standard: ERC-20- USDT0
- USDC
- ETH
Avalanche C-Chain
Token standard: ERC-20- USDT
- USDC
- AVAX
TON
Token standard: Jetton- USDT
- GRAM
Solana
Token standard: SPL- USDC
- USDT
- SOL
Send exactly this asset on this network: the payment page warns the customer about it before paying.
How a payment works
From the invoice to the customer's return to your site
The watcher changes the invoice status, and a webhook tells you when a payment is detected or confirmed and when an invoice expires.
Invoice
By API or by hand in the dashboard: the response has the address, the amount and a link to the payment page.
POST /v1/invoicesLearn more: InvoiceCoin and network
The customer chooses the network, then the coin on the payment page.
checkout_urlLearn more: Coin and networkPayment
The amount to pay, a QR code and the full address, with copy buttons.
addressLearn more: PaymentConfirmations
A transfer becomes visible within a few seconds; confirmation on TRON takes 20 blocks, about a minute.
20 blocksLearn more: ConfirmationsWebhook and return
A webhook signed with HMAC-SHA256, and a signed redirect of the customer back to your site.
invoice.confirmedLearn more: Webhook and return
Product
Payments, payouts, a dashboard and webhooks in one account
Payment page
The customer chooses the network, then the coin, and the page follows the payment by itself.
Learn more: Payment pagePayouts
Payouts go only to whitelisted addresses, checked by the API and again by the signing server.
Learn more: PayoutsDashboard
Invoices by hand, and the turnover and balance of every project in each asset.
Sign up for the dashboardWebhooks
Events signed with HMAC-SHA256, sent again when your server does not answer
Learn more: Webhooks2xx.
Developers
Documented for people and for AI assistants
The documentation is published in English and Russian: pages for people, and Markdown for AI assistants.
- The key goes in the
X-Api-Keyheader; the API is described byGET /v1/openapi.jsonin OpenAPI 3.1. order_idis the idempotency key: repeating the request returns the same invoice.- Amounts are strings in units of the asset: parsing into a floating-point number loses cents.
curl -s -X POST https://api.stons.io/v1/invoices \
-H "X-Api-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"order_id": "ord_1002", "amount": "49.9",
"currencies": ["USDT_TRON"]}'Hand the integration to your AI assistant
Give one prompt to Claude Code or another assistant in your project: it reads the documentation as one file and connects payments step by step.
Files for AI assistants
Add payments through STONS to this project. Read the documentation at https://stons.io/llms-full.txt and follow the “Turnkey integration with an AI assistant” document step by step: first ask me for the API key, the webhook secret and how the payment should be shown, then implement invoice creation, a webhook handler that verifies the signature, and a status check through the API.
Money and keys
Private keys live where the internet cannot reach them
Private keys are not kept on a machine reachable from the internet: transactions are signed by a separate server that listens on no port.
- Your serverCreates invoices with the API key and receives signed webhooks.
- Payment serverThe API and the blockchain watcher. Only public keys: it derives addresses and cannot sign.
- Signing serverKeeps the private keys. Listens on no port and opens every connection itself.
- BlockchainCustomers pay here, and signed transactions land here.
- Cold treasuryReceived funds are moved here. Its keys are offline, and the service does not have them.
The payment server holds only extended public keys (xpub): it derives addresses, and there are no private keys on it.
Where received funds are moved is set in the signing server's configuration: a task says only from where, which asset and how much.
The hot wallet for payouts and the treasury have different keys.
A balance is never stored as a number: it is always computed from an immutable double-entry ledger.
Onboarding
Sign up today, accept payments after the review
You can issue API keys right away and build the integration while the review is under way.
Sign-up is open; payments start after the project is reviewed.
Sign-up
An email, a name and a password of at least 12 characters.
Two-factor authentication
An authenticator app is required. A remembered device signs in with a PIN for 30 days.
Project application
The project's website and what the business sells, in its own words.
Review
A staff member approves the project, and it starts accepting payments. A rejected project sees the reason, and a corrected application goes back to review.
Questions
What merchants ask
Create a project and build the integration while it is reviewed
Sign-up is open; payments start after the project is reviewed.