Skip to main content
XPayLabs exposes a RESTful API over HTTP. Every request uses a standard signed envelope format (ReqPayload), and every response follows a consistent structure (R<T>). This page covers the foundational concepts that apply across all endpoints.

Base URL

All API requests target your self-hosted gateway via the nginx gateway. The default external port is 180:
If you are running behind a reverse proxy (Nginx, Caddy), use your configured HTTPS domain.

Request Format

Every POST request must use the standard ReqPayload<T> envelope:
See the Authentication page for details on computing the sign value.

Response Format

All responses use the standard R<T> envelope:

Error Response

Authentication

All requests must be signed with your merchant token using HMAC-SHA256. There are no Bearer tokens or cookies involved. The merchant token is configured in your gateway and never transmitted over the network. See the Authentication page for the full signing reference.

HTTP Methods

Rate Limits

Rate limits are configurable per merchant in the gateway configuration. Defaults: Exceeding the limit returns a 429 Too Many Requests response.

Amounts

All monetary amounts are expressed as string-formatted decimals (e.g., "100.00" for 100 USDT). The number of decimal places depends on the token’s configured decimals — USDT uses 2 decimal places on most chains (shown as "100.00"), while the internal representation uses the token’s native decimals.
Last modified on June 26, 2026