easyway
Create account

Cross-border payments for a business: a stablecoin playbook

Getting paid by a client in another country usually means an international bank transfer: intermediary banks, a currency conversion you do not control, and money that arrives days later, sometimes short. Stablecoins such as USDT and USDC move the same dollar amount over a public network instead, any day of the week. This post walks through how a business invoices foreign clients in stablecoins with easyway, and is honest about what that does and does not solve.

What changes compared with a bank transfer

A stablecoin payment goes straight from the client's wallet or exchange account to the deposit address shown on your invoice. There is no correspondent bank in between, no cut-off time and no weekend: the payment is credited once the network has confirmed it. The sender pays the network fee, and the invoice waits for the exact amount it asked for. Because the invoice is priced in US dollars and stablecoins are counted at exactly 1 USD, a $2,400 invoice asks for 2,400 USDT or USDC — no exchange rate is involved on either end.

Step 1: pick the networks your clients can pay on

USDT on TRON and USDT on BNB Smart Chain are the same dollar, but they are separate tokens on separate networks, and a transfer on the wrong one does not arrive. Ask your client which network their exchange or wallet supports, then accept only those. These are the stablecoin options today, with the confirmations needed before a payment counts and the fee for withdrawing that balance later:

Asset idStablecoin and networkConfirmationsWithdrawal feeMin. withdrawal
USDT_TRC20USDT on TRON · TRC-20191 USDT0.5 USDT
USDT_BEP20USDT on BNB Smart Chain · BEP-20150.1 USDT0.5 USDT
USDT_TONUSDT on TON · Jetton10.1 USDT0.5 USDT
USDT_ERC20USDT on Ethereum · ERC-20121.5 USDT0.5 USDT
USDC_ERC20USDC on Ethereum · ERC-20121.5 USDC0.5 USDC
USDC_BEP20USDC on BNB Smart Chain · BEP-20150.1 USDC0.5 USDC
USDT_SOLUSDT on Solana · SPL10.3 USDT0.5 USDT
USDC_SOLUSDC on Solana · SPL10.3 USDC0.5 USDC
USDT_POLYGONUSDT on Polygon · PoS640.1 USDT0.5 USDT
USDC_POLYGONUSDC on Polygon · PoS640.1 USDC0.5 USDC
USDT_AVAXUSDT on Avalanche · C-Chain100.1 USDT0.5 USDT
USDC_AVAXUSDC on Avalanche · C-Chain100.1 USDC0.5 USDC
DAI_ERC20DAI on Ethereum · ERC-20121.5 DAI0.5 DAI
FDUSD_BEP20FDUSD on BNB Smart Chain · BEP-20150.1 FDUSD0.5 FDUSD
PYUSD_ERC20PYUSD on Ethereum · ERC-20121.5 PYUSD0.5 PYUSD

For regular invoices the withdrawal fee matters more than it looks, because you pay it every time you move money out. The cheapest networks to withdraw from are BNB Smart Chain, TON, Polygon, Avalanche; Ethereum is the most expensive. The per-coin pages, such as USDT on TRON and USDC, explain each network in more detail.

Step 2: send an invoice the client can pay from anywhere

Without code, create a payment link or a one-off invoice in the dashboard and send the link. If your billing system creates invoices, call the API: price the invoice in USD, limit it to the networks you chose with allowed_assets, and put your own invoice number in order_id. A lifetime of 1440 minutes (the maximum, 24 hours) suits an invoice sent by e-mail, where the client may not pay right away:

curl -X POST https://api.easyway.cash/v1/invoices \
  -H "Authorization: Bearer $EASYWAY_API_KEY" \
  -H "Idempotency-Key: inv-2026-0142" \
  -H "Content-Type: application/json" \
  -d '{"amount":"2400.00","currency":"USD","allowed_assets":["USDT_TRC20","USDT_BEP20"],"order_id":"INV-2026-0142","lifetime":1440,"metadata":{"client":"acme-gmbh"}}'

The response contains a payment_url. The client opens it, picks a network, and gets a deposit address (plus a memo on TON), a QR code and the exact amount. Clients who pay from an exchange often receive a little less than they sent because the exchange deducts its withdrawal fee; by default a shortfall of up to 1 % (adjustable from 0 to 5 %) still counts as paid, and anything more is marked underpaid with the remaining amount shown to the client. A payment that arrives after the invoice expired is still watched for 7 days and credited.

Step 3: reconcile without guesswork

Every invoice keeps your order_id and up to 20 metadata keys, so a payment always maps back to the right client and invoice number. Your server can react to the signed invoice.paid webhook (see verifying webhook signatures), and for the books you can export payments and withdrawals as CSV from the dashboard, or list them through the API, for any date range. Each payment shows the amount received, the 0.5% platform fee and the net credited — on a 2,400 USDT invoice that is a fee of 12 USDT and 2388 USDT credited.

Step 4: withdraw to your own wallet

Payments are credited to your easyway balance in the coin and network the client used. easyway holds that balance until you withdraw it to one of your whitelisted wallet addresses, from the dashboard or with the payouts API. Withdrawals are in crypto only: easyway does not convert to a local currency or pay out to a bank account. If you need local currency, you send the stablecoins to an exchange you already use and sell them there.

What stablecoins do not solve

Be clear-eyed about the trade-offs before you move your invoicing over:

ConcernWhat it means for you
Your client needs cryptoThey must hold USDT or USDC, or buy it on an exchange first. Offer it next to your usual payment method, not instead of it.
Taxes and local rulesReceiving crypto is treated differently from country to country. Check with an accountant where you are based; this post is not tax or legal advice.
Issuer riskA stablecoin is a promise by its issuer to stay at $1. The gateway counts it as $1; if a token ever lost its peg, the loss would be yours.
Cashing outTurning stablecoins into local currency happens on an exchange of your choice, with its own fees and limits.
Mistakes are finalA transfer on a network the invoice does not accept cannot be reversed by the gateway. Clear instructions (one invoice, one network list) prevent most of them.

In short

Agree on a stablecoin and a network with your client, invoice in USD so the amount is unambiguous, let the order id and webhooks do the reconciliation, and withdraw on a schedule to a wallet you control. To try the whole flow without real funds, create a test key and follow the sandbox guide; the pricing page lists every coin and fee.

Create a merchant accountRead the API docs
Cross-border business payments with stablecoins | easyway