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: 3e9b2c7d1f0a4b8c
json
{
  "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 a payout.completed callback.
  • Debits amount from 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