PayHook Get started
Non-custodial crypto payment gateway

Accept USDT.
Keep control.

A checkout for your customers. Payment records for your team. USDT goes directly to your wallet on BSC, TRON or Ethereum.

Non-custodial No percentage fees No KYC

50 confirmed payments free every 30 days. No card required.

Why PayHook

Your wallet. Your orders. One payment flow.

Funds go to your wallet

Customers pay addresses you control. PayHook monitors the transfer without holding your funds or private keys.

Your server gets the confirmation

Signed webhooks connect a confirmed payment to its order. Check delivery status and retry notifications from your dashboard.

Fees follow payment volume

Start with 50 free payments every 30 days. After that, prepaid packs from 9 USDT for 5,000 payments. No subscription, and payments never expire.

your payment workspace

A clear view of every payment.

Track incoming payments, check webhook deliveries, and manage your sites in one place.

Merchant dashboardSample data
Sample dashboard with payment totals, recent payments, and webhook delivery status.
Payment activity and delivery status in one view.View full size (opens in a new tab) ↗
Customer checkout

Make the next step clear.

Your customer sees the amount, network, and wallet address together. The page updates as their payment is detected and confirmed.

  1. Pay on the right networkA QR code and copyable address connect the customer to your wallet.
  2. Follow the payment statusConfirmation progress explains what is happening after they send.
  3. Return to the orderAfter confirmation, customers can continue to your website.
Create your own test payment →
Hosted checkout Demo
Example Store

Amount to pay

50.00 USDT

BNB Smart Chain · BEP-20

Wallet address · example

0x7a3f…2d5f8a

Use the BNB Smart Chain network.

Awaiting payment

Powered by PayHook

Customers scan a QR code or copy the wallet address to pay.Illustrative preview. No funds can be sent here.
How it works

Three steps to your first payment.

01

Create a site and connect your wallet

Create a site to get its API key, then add the public wallet addresses you control. Try a test site first without addresses or funds.

02

Create a payment

Call POST /api/v1/payments/ from your backend. PayHook assigns a unique deposit address and returns a hosted checkout link your customer can pay through.

03

Connect confirmation to your order

Add your webhook URL in your site settings. When payment confirms on-chain, we notify your server. Failed deliveries retry automatically.

built for developers

One API call. A reliable confirmation.

Create a payment from your backend. PayHook watches the chain and delivers the signed event to your server.

POST  /api/v1/payments/ Request
{
  "amount_usd_cents": 50000,
  "network": "bsc",
  "currency": "usdt",
  "external_order_id": "order_8f3c1a",
  "redirect_url": "https://yoursite.com/orders/8f3c1a/thanks"
}
Example payment events sample
  1. POST /api/v1/payments/ 201 PAY-8F3C1A · 500 USDT
  2. awaiting transfer to 0x7a1f…c9e2
  3. tx 0x9a4f…e21b seen · 500.000000 USDT
  4. confirmations 15/15
  5. payment.confirmed · block 41,982,113
  6. POST https://yoursite.com/payhook 200 142ms · signed
Read the integration guide →
Supported networks

USDT on three chains.

BSC · 0x

BNB Smart Chain

  • USDT (BEP-20)

Confirmed after 15 blocks

TRON · T

TRON

  • USDT (TRC-20)

Confirmed after 20 blocks

ETH · 0x

Ethereum

  • USDT (ERC-20)

Confirmed after 12 blocks

FAQ

Common questions.

Are funds held by PayHook?

No. Customer crypto is sent directly to the wallet address you provide. PayHook never sees private keys or holds funds. It only sees the public addresses needed to watch the chain.

What if two customers pay at the same time?

Each pending payment is assigned its own deposit address from your address pool. The address is locked to that payment until it confirms or expires, so two customers paying the same amount can't collide: they're paying to different addresses. Once a payment terminates, the address goes back into the pool for the next one.

What happens if my server is down when a webhook fires?

Deliveries retry with exponential backoff, up to 10 times over about 30 minutes. Every attempt is logged, and any delivery can be replayed from the dashboard.

Which networks and tokens are supported?

USDT on BSC (BEP-20), TRON (TRC-20) and Ethereum (ERC-20). More tokens and networks are added based on merchant demand.

How does billing work?

Prepaid payments, paid in USDT. Every account gets 50 free payments every 30 days; after that, buy a pack from the dashboard: Starter 9 USDT for 5,000 payments, Growth 29 USDT for 20,000, Business 49 USDT for 40,000, or Scale 99 USDT for 100,000. Payments never expire. No subscription, no card, no fiat onramp. Custom checkout branding unlocks with your first top-up.

Do I need a developer to use PayHook?

Yes. A developer wires up the REST API and a webhook endpoint, which typically takes about 30 minutes. Once integrated, you monitor payments, webhook deliveries, and billing from the dashboard without touching code.

Start with a test payment

See the full payment flow for yourself.

Create a test site and follow a sample payment from checkout to webhook. No funds needed.