Skip to main content

Non-custodial crypto payments, built for developers

billing.io lets merchants accept USDT and USDC across multiple blockchains. Payments go directly to your wallet — billing.io never holds your funds.

Accept Payments

Create checkouts, generate payment links, and accept USDT/USDC on Tron, Arbitrum, and Base.

Subscription Billing

Recurring billing with plans, trials, automated renewals, and feature entitlements.

Payout Orchestration

Define payout intents, execute on-chain, and let billing.io verify and reconcile.

API Reference

RESTful API with cursor-based pagination, idempotency, HMAC-signed webhooks, and OpenAPI spec.

How it works

1

Create a checkout

Your backend calls POST /checkouts with an amount, chain, and token. billing.io returns a unique deposit address.
2

Customer sends crypto

The customer sends stablecoins to the deposit address. billing.io monitors the blockchain for the transaction.
3

Payment confirmed

Once the required block confirmations are reached, the checkout status becomes confirmed and a checkout.completed webhook fires.
4

Funds in your wallet

Since billing.io is non-custodial, funds were sent directly to your wallet. No withdrawal step needed.

Quick example

curl -X POST https://api.billing.io/v1/checkouts \
  -H "Authorization: Bearer $BILLING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount_usd": 49.99,
    "chain": "tron",
    "token": "USDT"
  }'

Supported chains and tokens

ChainTokensSupported
TronUSDT, USDCProduction
ArbitrumUSDT, USDCProduction
BaseUSDT, USDCProduction
All tokens are USD-pegged stablecoins — no exchange rate risk.

Next steps

Quickstart

Create your first checkout in under 5 minutes.

Webhooks

Set up webhook endpoints and verify signatures.

Sandbox Testing

Test your integration without real funds.

SDKs

Official SDKs for JavaScript, Python, Go, React, Ruby, and Java.