API Authentication

Every merchant API request carries a secret key as a bearer token:

Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • Keys are shown once at creation and stored only as a SHA-256 hash.
  • Revoked and expired keys return 401 invalid_api_key.
  • Keys are scoped to one merchant and one environment; every resource you fetch is filtered by both.
  • Rotate a key from the dashboard: a new secret is issued and the old one revoked in the same operation.

Check a key with:

curl https://api.usdtpay.ge/api/v1/me -H "Authorization: Bearer sk_test_xxx"

Rate limits

Requests are limited per API key, per merchant and per IP (defaults: 120 / 300 / 60 per minute). Exceeding a limit returns 429 rate_limit_exceeded with a Retry-After header.

Request IDs

Every response carries X-Request-ID. Send your own (X-Request-ID: my-trace-123) to correlate logs, and quote it when contacting support.