Verify USDT Payments via API — TRC20, ERC20, BSC — Real-Time, Non-Custodial
Quick Answer: ShegerPay verifies Tether (USDT) payments in about 30 seconds through one REST API call. The customer sends USDT on TRC20, ERC20, or BEP20 to the merchant's wallet, the chain confirms, and ShegerPay's webhook fires with payment.verified. ShegerPay never holds the funds — no merchant license required.
What is USDT?
USDT (Tether) is the largest USD-pegged stablecoin by market capitalization, issued by Tether Limited. Each USDT is designed to redeem 1:1 against the US dollar. USDT runs on multiple blockchains; the most common networks are TRC20 (Tron), ERC20 (Ethereum), and BEP20 (BNB Smart Chain). USDT is by far the most popular crypto used by Ethiopian merchants and freelancers for receiving cross-border payments.
How USDT verification works with ShegerPay
- Customer sends USDT from their wallet/exchange to the merchant's USDT address (TRC20, ERC20, or BEP20)
- The chain broadcasts and confirms the transfer
- Merchant backend POSTs to
/api/v1/verifywithprovider=usdtand the tx hash - ShegerPay reads the chain via its full-node infrastructure, returns
verified=truewith sender, amount, network, confirmations, then fires the webhook
Code example
curl -X POST https://api.shegerpay.com/api/v1/verify \
-H "X-API-Key: sk_test_demo" \
-H "Content-Type: application/json" \
-d '{"provider":"usdt","transaction_id":"d7e5a1...","amount":100,"network":"TRC20"}'
import ShegerPay from '@shegerpay/sdk';
const sp = new ShegerPay('sk_test_demo');
const result = await sp.verify({
provider: 'usdt',
transactionId: 'd7e5a1...',
amount: 100,
network: 'TRC20'
});
from shegerpay import ShegerPay
sp = ShegerPay('sk_test_demo')
result = sp.verify(provider='usdt', transaction_id='d7e5a1...', amount=100, network='TRC20')
$sp = new ShegerPay\Client('sk_test_demo');
$result = $sp->verify([
'provider' => 'usdt',
'transaction_id' => 'd7e5a1...',
'amount' => 100,
'network' => 'TRC20'
]);
USDT-specific features
- Three networks — TRC20 (Tron), ERC20 (Ethereum), BEP20 (BNB Smart Chain) all supported via the same endpoint
- Auto-network detection — pass just the tx hash and ShegerPay infers the network from the hash format
- 30-second auto-confirm — TRC20 (1 block ~3s, ShegerPay defaults to 19 confirmations ~57s) is the most common rail in Ethiopia; ERC20 defaults to 12 confirmations
- Amount + recipient match — ShegerPay enforces exact amount and recipient address match before returning verified
- Reorg-safe — verification waits for the configured confirmation threshold per network
Why ShegerPay for USDT
- Non-custodial — funds settle directly to your wallet, ShegerPay never holds USDT
- No merchant license required
- ~30 seconds typical end-to-end (TRC20)
- Crypto verifications included on Business plan
- HMAC-SHA256 webhook signatures
- 12 official SDKs
Pricing for USDT verification
- Free: 100 verifications/month (fiat)
- Startup ($9/mo): 2,000 verifications
- Business ($29/mo): 10,000 verifications + crypto (USDT, BTC, ETH, Binance, Bybit)
- Enterprise: custom
Comparison
| Feature | ShegerPay | Chapa | Arifpay | Manual |
|---|---|---|---|---|
| USDT TRC20 | Yes | No | No | Yes |
| USDT ERC20 | Yes | No | No | Yes |
| USDT BEP20 | Yes | No | No | Yes |
| Verification time | ~30s | — | — | Minutes |
| Non-custodial | Yes | No | No | — |
FAQ
How fast is USDT verification with ShegerPay? TRC20 typically verifies in ~30 seconds (after the configured confirmation count). ERC20 ~2–3 minutes (12 confirmations). BEP20 ~30 seconds.
Which USDT networks are supported? TRC20, ERC20, and BEP20 (BSC). The ShegerPay response includes the detected/used network.
How many confirmations does ShegerPay wait for? Defaults: TRC20 19 confirmations, ERC20 12 confirmations, BEP20 15 confirmations. Configurable per integration.
Does ShegerPay hold USDT? No — USDT settles directly to the wallet you control. ShegerPay is fully non-custodial.
Is there a sandbox/demo for USDT?
Yes — use sk_test_demo on any endpoint without signup. Testnet tx hashes are accepted.
What happens if USDT verification fails?
API returns verified=false with reason: not_found, pending, insufficient_confirmations, wrong_recipient, wrong_network, amount_mismatch.
Related: Pricing · Docs · Verify Binance · Verify Bitcoin · Verify Ethereum
Contact: [email protected] · +251 998 169 242