Payments
Payouts
Send USDT from your developer wallet to an HTP user.
Payouts let you pay users — rewards, winnings, withdrawals from your platform, settlements. They need payouts allowed in your approved terms; ask for it when you apply for payments (PAYOUT_NOT_ALLOWED otherwise).
http
POST /open/v1/payouts
Idempotency-Key: 3e9b2c7d1f0a4b8cjson
{
"out_order_no": "P20261107-0001",
"amount": "25.00",
"currency": "USDT",
"payee_sub": "2f6c0d1e8a9b4c7d",
"description": "Referral reward"
}| Field | Required | Notes |
|---|---|---|
out_order_no |
✓ | Unique among your payouts per environment |
amount |
✓ | USDT, at most 2 decimals |
currency |
✓ | USDT |
payee_sub |
✓ | The user's OIDC sub |
description |
Max 255, shown to the user |
Behaviour
- Completes synchronously with
status: "SUCCEEDED"and sends apayout.completedcallback. - Debits
amountfrom your wallet and credits the user the same amount. No fee. - The user must have signed in to one of your apps and not revoked access (
USER_NOT_AUTHORIZED). You cannot pay yourself (SELF_PAYMENT_FORBIDDEN). - Payouts use your single / daily / monthly limits, counted separately from payments (
LIMIT_EXCEEDED). - In the sandbox, only test users can be paid (
SANDBOX_USER_ONLY).
Payouts move your money instantly
Protect the code path that triggers payouts like any other money transfer: authorize it, rate-limit it, and log who triggered it. Use the Idempotency-Key so a double click or retry never pays twice.
Recovering from timeouts
http
GET /open/v1/orders?out_order_no=P20261107-0001&order_type=PAYOUT