Skip to main content

What is non-custodial?

With a traditional payment processor like Stripe or PayPal, your customer’s money goes to the processor first. The processor holds it, takes a cut, and then sends you the rest days or weeks later. Your revenue sits in someone else’s bank account until they decide to release it. billing.io works differently. When your customer pays, the crypto goes directly from their wallet to yours. billing.io watches the blockchain, confirms the payment landed, and sends you a webhook notification. That’s it. We never hold, touch, or have access to your funds at any point.
Think of it like this: billing.io is a security camera watching your mailbox. It sees when a delivery arrives, confirms it’s the right package, and texts you — but it never opens or touches anything.

How traditional processors work

1

Customer pays

Your customer sends money to the processor’s account, not yours.
2

Processor holds the funds

The processor sits on your money. They decide when to release it — usually on a schedule (weekly, monthly, or with a rolling reserve).
3

Processor takes their cut

Fees are deducted before you see a penny.
4

You eventually get paid

Days or weeks later, the processor sends what’s left to your bank account. If they freeze your account, you might wait months — or never get it.

How billing.io works

1

Customer pays

Your customer sends crypto directly to your wallet address. The funds are yours the moment the transaction is confirmed on the blockchain.
2

billing.io watches the blockchain

Our chain watcher monitors the transaction, counts block confirmations, and tracks the payment status in real time.
3

You get notified

Once the payment is confirmed, billing.io fires a checkout.completed webhook to your server. That’s our only job.

See it in code

Here’s the entire non-custodial payment flow in code — create a checkout, and handle the confirmation webhook:
// 1. Create a checkout -- generates a deposit address
const checkout = await billing.checkouts.create({
  amount_usd: 100.00,
  chain: "tron",
  token: "USDT",
});
// Customer sends USDT directly to checkout.deposit_address
// Funds go straight to YOUR wallet -- billing.io never touches them

// 2. Handle the webhook when payment confirms
app.post("/webhooks/billing", (req, res) => {
  const event = req.body;
  if (event.type === "checkout.completed") {
    // Payment confirmed on-chain -- funds are already in your wallet
    console.log(`Received $${event.data.amount_usd} USDT`);
    console.log(`Tx: ${event.data.tx_hash}`);
  }
  res.sendStatus(200);
});
There is no step 4. Your funds are already in your wallet. There’s nothing to withdraw, no payout to wait for, and no one standing between you and your money.

Why this matters

No frozen accounts

Your money is in your wallet the moment it arrives. No processor can freeze your account, hold your funds, or shut you down overnight.

No payout delays

There’s no “payout schedule” because funds settle directly to you on-chain. You have your money in minutes, not days or weeks.

No counterparty risk

billing.io literally cannot lose your money because we never have it. If billing.io disappeared tomorrow, your funds would be unaffected.

Full transparency

Every transaction is verifiable on the public blockchain. You don’t have to trust anyone’s internal ledger — you can verify it yourself.

What billing.io actually does

If we never touch your money, what do we do? We handle everything around the payment:
  • Generate unique deposit addresses so each checkout maps to a specific payment
  • Monitor the blockchain in real time to detect incoming transactions
  • Count block confirmations to make sure payments are final and irreversible
  • Send webhook notifications so your backend knows the instant a payment is confirmed
  • Manage subscriptions by tracking renewal dates and creating checkout sessions automatically
  • Provide dashboards and APIs so you can manage everything programmatically
We’re the infrastructure layer that makes accepting crypto payments simple — without ever being in the flow of funds.

Next steps

Quickstart

Create your first checkout in under 5 minutes.

How it Works

Dive deeper into the architecture and payment flow.