Accept USDT payments for your invoices

You issue an invoice in US dollars through the API or in the dashboard. The payer pays it in USDT on a ProfitPay page, on Tron or one of the EVM networks. When the invoice status changes, your server receives a signed webhook.

Invoice 8d41c0e7

Order #1042

Amount due Paid

150.00 USDT

Invoice amount
150.00 USD
Network
Tron (TRC-20)
Address
TQ7bXj8Yr3kP9sLmN2vW5cA1dF6gH4jKzE
Incoming transfers
Time Transaction USDT
14:21:07 7c1e2f9a…c3d4a94f 150.00
Paid 150.00

Webhook invoice.completed delivered at 14:22:05, response 200.

An example of a paid invoice.

What ProfitPay does

Invoices
Created through the REST API or in the dashboard from your products. The amount is set in US dollars, and the payer pays in USDT at 1 USDT = 1 USD. Every invoice has a payment deadline.
Payment page
The payer opens the invoice link, picks a network and gets a deposit address with a QR code. While the invoice is being paid, the address is reserved for it. The page updates the status and the time left by itself.
Networks
USDT on Tron (TRC-20) and on the EVM networks Ethereum (ERC-20), BNB Smart Chain (BEP-20), Polygon PoS, Arbitrum One.
Confirmations
A transfer counts once it has the number of confirmations set for its network. Underpaid and overpaid invoices get statuses of their own.
Webhooks
Invoice and payment events, for example: invoice.completed, invoice.overpaid, invoice.expired. Each request is signed with HMAC-SHA256 or HMAC-SHA512. If your server does not reply with a 2xx code, the delivery is retried at growing intervals, and any delivery in the log can be sent again from the dashboard.
Dashboard
Invoices, payments, products, addresses, wallet balances and sales statistics. Invoice and payment lists export to CSV with the current filters.
API keys
Issued in the dashboard, with an optional expiry date. The full key is shown once, when it is created. A key can be revoked.