Skip to main content
POST
/
open
/
v1
/
plan
/
save
cURL
curl --request POST \
  --url http://sandbox.mintlify.com/open/v1/plan/save \
  --header 'Content-Type: application/json' \
  --header 'X-GatePay-Certificate-ClientId: <x-gatepay-certificate-clientid>' \
  --header 'X-GatePay-Nonce: <x-gatepay-nonce>' \
  --header 'X-GatePay-Signature: <x-gatepay-signature>' \
  --header 'X-GatePay-Timestamp: <x-gatepay-timestamp>' \
  --data '
{
  "merchantPlanNo": "plan031004",
  "planName": "Plan 01",
  "planDesc": "Plan Description 01",
  "priceNo": "3"
}
'
{
  "code": "0",
  "message": "",
  "data": {
    "merchantPlanNo": "plan031004",
    "planNo": "63784604430893064"
  },
  "success": true
}

Headers

X-GatePay-Certificate-ClientId
string
required

Merchant client ID, obtained from GatePay platform application

Example:

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

X-GatePay-Signature
string
required

HMAC-SHA256 signature, used to verify request legitimacy

Example:

"672d5650dcc9bb22ebf25fa16c28d03c0e159d742a9176d4340a5da326d75dc8a2ec24c97fa6fc5d1533dd6e968863747e1d86a45e562cbe899f9ed7e9ca7f77"

X-GatePay-Timestamp
string
required

Timestamp (milliseconds), time difference with server cannot exceed 5 minutes

Example:

"1672905655498"

X-GatePay-Nonce
string
required

Random number, used to prevent replay attacks

Example:

"9578"

Body

application/json

Create subscription plan parameters

merchantPlanNo
string
required

Merchant subscription plan number, globally unique identifier

Example:

"PLAN20231024001"

planName
string
required

Subscription plan name, maximum 20 characters

Example:

"Premium Monthly Membership"

planDesc
string
required

Subscription plan description, maximum 100 characters

Example:

"Unlock all premium platform features and unlimited download permissions"

priceNo
string
required

Associated price number

Example:

"PRICE_10023"

trialDays
integer<int32>

Trial days, deduction immediately after authorization by default

Example:

7

totalPayCount
integer<int32>

Total number of deductions, treated as long-term if not filled

Example:

12

endTime
integer<int64>

Subscription end time, millisecond timestamp; treated as long-term if not filled

Example:

1735660800000

authorizedAmount
string

Authorized amount, the number of tokens users need to authorize

Example:

"200.000000"

Response

200 - application/json

Create subscription plan successful

code
string

Response code, 0 indicates success

Example:

"0"

message
string

Response description, empty when successful

Example:

""

success
boolean

Whether the request was successful

Example:

true

data
object

Response data