Tutorial: Purchase Remote Management Using API

This tutorial introduces the request parameters and provides a request example to show you how to purchase Remote Management using API.

Before you begin: Understand the request parameters

Before purchasing Remote Management using API, we recommend that you read the table below to understand the request parameters and collect the corresponding values.

Item Parameter Description
Operation Type operationType The operation type.

In this scenario, the value is fixed at purchase_plan.

Product ID productId Specify the product to which you want to subscribe.

The Product ID for Remote Management is 15.

Partner ID partnerId Specify the user for whom you want to purchase Remote Management.
Note: This parameter is required only when you purchase for a subordinate user. You will need to query the information as described in the following steps.
Billing Contact ID billingId Specify the contact who can receive the invoice after you purchase Remote Management.

You will need to query the Billing Contact ID as described in the following steps.

Plan Type & Service Type serviceType
  • When subscribing to plan, the value should be plan.
  • When subscribing to service, the value should be service.
Plan ID & Service ID serviceId Specify the specific plan and service to which you want to subscribe.

You will need to query the Plan ID and Service ID as described in the following steps.

Connection Plan ID connectionPlanId Specify the specific plan to which you want to subscribe.

You will need to query the Plan ID as described in the following steps.

Quantity quantity Specify the number of remote management connections to which you want to subscribe.
Purchase Type purchaseType The purchase type.

In this scenario, the value is fixed at purchase.

Billing Model billingModel The billing model.

In this scenario, the value is fixed at recurring.

Billing Cycle billingCycle The billing cycle.
  • For Remote Management Account, the value is fixed at annually.
  • For Remote Management Connection, the value is fixed at once.
Multi Cycle multiCycle The interval of recurring billing.
  • For Remote Management Account, the value is fixed at 1.
  • For Remote Management Connection, the value is fixed at 0.

(Optional) Step 1. Get subordinate user ID

  1. Make a request to the Query Subordinate User List API endpoint.
    GET {base_url}/user/openapi/user/v1/client/partner_list
  2. Note down the returned value of partnerId for the desired subordinate user.

Step 2. Get plan ID and service ID

  1. Make a request to the Query Available Subscription / Trial Plans and Services for a Product API endpoint with the Product ID 15.
    GET {base_url}/pricing/openapi/purchase/v1/purchase_product_info?productId=15
  2. Note down the returned value of planId and serviceId for the desired plan and service.

Step 3. Get billing contact ID

  1. Make a request to the Query Billing Contact List API endpoint.
    GET {base_url}/user/openapi/user/v1/client/billing_contact_list
  2. Note down the returned value of billingContactId for the desired billing contact.

Step 4. Purchase Remote Management

Make a request to the Create an Order API endpoint with the collected values.

POST {base_url}/order/openapi/order/v1/save

In this tutorial, the values we collect are shown below:

Item Parameter Value
Operation Type operationType purchase_plan
Product ID productId 15
Billing Contact ID billingId 3197218168379846218
Plan Type & Plan ID serviceType & serviceId
  • serviceType: plan
  • serviceId: 3049036224189325312 (for Remote Management Account plan)
Service Type & Service ID serviceType & serviceId
  • serviceType: service
  • serviceId: 3049037245301022720 (for Remote Management Connection service)
Connection Plan ID connectionPlanId 3049036224189325312
Quantity quantity 10
Purchase Type purchaseType purchase
Billing Model billingModel recurring
Billing Cycle billingCycle
  • billingCycle : annually (for Remote Management Account plan)
  • billingCycle: once (for Remote Management Connection service)
Multi Cycle multiCycle
  • multiCycle: 1 (for Remote Management Account plan)
  • multiCycle: 0 (for Remote Management Connection service)

The sample request to purchase a 1-year Remote Management with 10 connections is shown below:

POST /order/openapi/order/v1/save HTTP/1.1
Host: openapi.partner.yeastar.com
Content-Type: application/json
User-Agent: OpenAPI
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzMSJdLCJYLU1TLVVTRVIiOiJ7XCJleHByXCI6XCIwXCIsXCJ0eXBlXCI6XCJwYXJ0bmVyXCIsXCJ1Y0lkXCI6XCIzMDc2OTE1NDU0NDY4NzY3NzQ0XCIsXCJ1c2VyQ29kZVwiOlwiUGFydG5lclwiLFwidXNlcklkXCI6XCIzMDc2OTE1NDU0NDg5NzM5MjY0XCIsXCJ1c2VybmFtZVwiOlwicGFydG5lcmV4YW1wbGVAb3V0bG9vay5jb21cIn0iLCJ1c2VyX25hbWUiOiJwYXJ0bmVyZXhhbXBsZUBvdXRsb29rLmNvbSIsInNjb3BlIjpbImFsbCJdLCJleHAiOjE3Mzk3MTc5MjYsInRva2VuX3R5cGUiOiJvcGVuYXBpIiwianRpIjoidmlzMkh0QkxaUStNQmxPbS9UdThWR1pyNFljPSIsImF1dGhvcml0aWVzIjpbIjc5Il0sImNsaWVudF9pZCI6IjE0NDI5NjM2ODBiMjM0YjA0YmRjZDVjMTZmODcyOWQ2In0.RPRoTJRkXCB4krDSwGRpUFyCfUVv2LHjIiBICA1pCiY

{
  "operationType": "purchase_plan",
  "productId": 15,  
  "billingId": 3197218168379846218,
  "serviceList": [
    {
      "serviceType": "plan",
      "serviceId": 3049036224189325312,
      "purchaseType": "purchase",
      "billingModel": "recurring",
      "billingCycle": "annually",
      "multiCycle": 1    
      },
    {
      "connectionPlanId":3049036224189325312,
      "serviceId": 3049037245301022720,
      "serviceType": "service",
      "purchaseType": "purchase",
      "quantity": 10,
      "billingCycle": "once",
      "multiCycle": 0
    }
  ]
}

Result

The sample response is shown below:

{
    "code": "success",
    "detailMessage": "",
    "requestId": "44d7ca6e705ad86112b49c265949439b",
    "result": {
        "instanceId": "1946688",
        "orderId": "1780032",
        "orderNo": "DX3400813124199591936",
        "orderStatus": "succeed",
        "productNo": "3076913644890832896",
        "transactionNo": "EQ3400813125189447681"
    },
    "status": 200
}