Skip to main content
POST
/
transfer
/
open
/
institution
/
v1
/
pay
/
charge
Create Charge
curl --request POST \
  --url https://openplatform.gateapi.io/transfer/open/institution/v1/pay/charge \
  --header 'Content-Type: application/json' \
  --header 'X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>' \
  --header 'X-GatePay-Nonce: <x-gatepay-nonce>' \
  --header 'X-GatePay-On-Behalf-Of: <x-gatepay-on-behalf-of>' \
  --header 'X-GatePay-Signature: <x-gatepay-signature>' \
  --header 'X-GatePay-Timestamp: <x-gatepay-timestamp>' \
  --data '
{
  "merchantBatchNo": "1234565454511231",
  "accountId": "1979044675",
  "currency": "USDT",
  "amount": "1"
}
'
{
  "status": "SUCCESS",
  "code": "000000",
  "errorMessage": "",
  "data": {
    "merchantBatchNo": "1234565454511231",
    "status": "PAID",
    "fromAccountId": "2124267192",
    "toAccountId": "1979044675",
    "currency": "USDT",
    "amount": "1",
    "createTime": 1763455435851
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.gate.com/llms.txt

Use this file to discover all available pages before exploring further.

Overview

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

Notes

  • Authentication uses the standard GatePay signed headers.
  • This dedicated institution endpoint requires X-GatePay-On-Behalf-Of, which identifies the initiating account for this charge and can be either an institution account ID or a sub-account ID.
  • In the request body, accountId means the payer account ID (the debited account).
  • In the current version, this endpoint returns the final execution result synchronously and no longer requires status polling through the detail endpoint.
  • For shared signing rules, see /api-reference/version/100/en/common/securityAndSignature.

Headers

X-GatePay-Certificate-ClientId
string
required

The clientId assigned when the merchant registers an application in the Gate merchant console.

Example:

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

X-GatePay-Timestamp
string
required

UTC timestamp in milliseconds when the request is generated. GatePay will not process requests where the difference from the receive time exceeds 10 seconds.

Example:

"1672905655498"

X-GatePay-Nonce
string
required

Random string. Must comply with HTTP header rules; recommended length is within 32 characters, composed of digits and letters.

Example:

"9578"

X-GatePay-Signature
string
required

Request signature. GatePay uses this signature to verify whether the request is valid.

X-GatePay-On-Behalf-Of
string
required

Required delegated subject header. Provide the initiating account ID for this transaction. It can be an institution account ID or a sub-account ID.

Body

application/json
merchantBatchNo
string
required

Unique batch ID from the merchant.

accountId
string
required

Payer account ID (the debited account).

currency
string
required

Transfer currency.

amount
string
required

Transfer amount.

Response

200 - application/json

Success

status
string
Example:

"SUCCESS"

code
string
Example:

"000000"

errorMessage
string
data
object

Synchronous execution result. Returns the final status and core result fields directly after successful submission.