Skip to main content
POST
Create prepay order

Overview

This page documents the POST /v1/pay/transactions/native endpoint. The full schema, parameters, and examples are rendered from the linked OpenAPI definition above.

Notes

  • Authentication uses the standard GatePay signed headers.
  • This page documents the standard merchant endpoint.
  • For shared signing rules, see /eu/api-reference/version/100/en/common/securityAndSignature.
  • EU site: Pass only fiatCurrency and fiatAmount when creating an order. Do not pass crypto currency / orderAmount. Settlement defaults to USDC.

Headers

X-GatePay-Certificate-ClientId
string
required

Merchant client ID, obtained from GatePay platform

Example:

"4186d0c6-6a35-55a9-8dc6-5312769dbff8"

X-GatePay-Signature
string
required

HMAC-SHA512 signature for request validation

Example:

"672d5650dcc9bb22ebf25fa16c28d03c0e159d742a9176d4340a5da326d75dc8a2ec24c97fa6fc5d1533dd6e968863747e1d86a45e562cbe899f9ed7e9ca7f77"

X-GatePay-Timestamp
string
required

Millisecond timestamp; the difference from server time must not exceed 30 seconds.

Example:

"1672905655498"

X-GatePay-Nonce
string
required

Random nonce for replay attack prevention

Example:

"3525756760"

Body

application/json

Request body for creating a Web payment prepay order. On the EU site, pass fiat currency and amount only (fiatCurrency / fiatAmount). Do not pass crypto currency / orderAmount. Settlement defaults to USDC.

merchantTradeNo
string
required

Merchant order number, up to 100 bytes.

fiatCurrency
string
required

Fiat order currency in uppercase (required on the EU site), such as EUR, GBP, USD, JPY, AUD, CAD, CHF.

fiatAmount
string
required

Fiat order amount (required on the EU site). Minimum 0.01 with maximum precision of 2 decimal places. The system converts to USDC at the real-time rate for collection/settlement.

env
object
required

Transaction source information.

goods
object
required

Goods information.

currency
string

Deprecated on the EU site — do not pass. Use fiatCurrency instead. Settlement defaults to USDC.

orderAmount
string

Deprecated on the EU site — do not pass. Use fiatAmount instead.

orderExpireTime
integer<int64>

Order expiration time, UTC timestamp in milliseconds. Defaults to 1 hour if omitted. If the provided value exceeds current time + 1 day, it is truncated to current time + 1 day.

returnUrl
string

The return URL for the order after successful payment, up to 256 characters long.

cancelUrl
string

The return URL for the order after payment failure, up to 256 characters long.

channelId
string

Client name.

sourceType
string

Source type of the order.

Response

200 - application/json

Prepay order created successfully

Response body for creating a prepay order.

status
string
required

SUCCESS or FAIL.

code
string
required

Error code.

errorMessage
string

Error message.

data
object

Prepay order data.