Skip to content
STONS

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.

An example of the payment page: the customer has chosen USDT on TRON (TRC-20) and sees the amount, the full address and the time left. Next to it is what your server receives: webhooks about the payment and the customer's signed return to your site.
  • 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.

All networks and tokens
  • 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.

  1. 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: Invoice
  2. Coin and network

    The customer chooses the network, then the coin on the payment page.

    checkout_urlLearn more: Coin and network
  3. Payment

    The amount to pay, a QR code and the full address, with copy buttons.

    addressLearn more: Payment
  4. Confirmations

    A transfer becomes visible within a few seconds; confirmation on TRON takes 20 blocks, about a minute.

    20 blocksLearn more: Confirmations
  5. Webhook 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 page
  • Payouts

    Payouts go only to whitelisted addresses, checked by the API and again by the signing server.

    Learn more: Payouts
  • Dashboard

    Invoices by hand, and the turnover and balance of every project in each asset.

    Sign up for the dashboard
  • Webhooks

    Events signed with HMAC-SHA256, sent again when your server does not answer 2xx.

    Learn more: Webhooks

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-Key header; the API is described by GET /v1/openapi.json in OpenAPI 3.1.
  • order_id is 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.

Prompt for an AI assistant

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.

How security works
  • 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.

Get started

Sign-up is open; payments start after the project is reviewed.

  1. Sign-up

    An email, a name and a password of at least 12 characters.

  2. Two-factor authentication

    An authenticator app is required. A remembered device signs in with a PIN for 30 days.

  3. Project application

    The project's website and what the business sells, in its own words.

  4. 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.