# Rest API for SEAGM

> updated: 2025-06-20

## General API Information

* The base endpoint is: **<https://openapi.seagm.com/>**
* Sandbox service endpoint is: **<https://openapi.seagm.io/>**
* Business flow chart: **<https://www.processon.com/view/link/621445341efad407c7c3c850>**
* All endpoints return either a JSON object or array.
* Data is returned in **descending** order. newest first, oldest last.
* All time and timestamp related fields are in seconds.
* For `GET` endpoints, parameters must be sent as a `query string`.
* For `POST`, `PUT`, and `DELETE` endpoints, the parameters may be sent as a`query string` or in the `request body` with content type`application/x-www-form-urlencoded`. You may mix parameters between both the`query string` and `request body` if you wish to do so.
* Parameters may be sent in any order.
* If a parameter sent in both the `query string` and `request body`, the`query string` parameter will be used.
* API supports digital code (card) and direct top up purchases.

## SUCCESS CODE

* Any endpoint can retun an SUCCESS;
* The success payload is as follows:

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": [...]
}
```

## ERROR CODE

* Any endpoint can retun an ERROR.
* There will be an error\_info in the response when the code is not equal to 200.
* The error payload is as follows:

```javascript
{
    "code": 400,
    "msg": "Bad Request",
    "error_info": {
        "info_code": 20077,
        "info_message": "Card type doesn't exist."
    }
}
```

* Specific error codes

| **Code** | **Message**                    | **Description**                                                                                         |
| :------: | ------------------------------ | ------------------------------------------------------------------------------------------------------- |
|  **200** | **OK**                         | OK                                                                                                      |
|  **201** | **Created**                    | Created (Post request)                                                                                  |
|  **202** | **Accepted**                   | Accepted (Async request)                                                                                |
|  **204** | **No Content**                 | No Content                                                                                              |
|  **304** | **Not Modified**               | Not Modified                                                                                            |
|  **400** | **Bad Request**                | Bad Request                                                                                             |
|  **401** | **Unauthorized**               | Unauthorized                                                                                            |
|  **402** | **Payment Required**           | Payment Required                                                                                        |
|  **403** | **Forbidden**                  | The client is authenticated by the server but does not have permission to access the requested resource |
|  **404** | **Not Found**                  | The requested resource is invalid                                                                       |
|  **405** | **Method Not Allowed**         | Request method not allowed                                                                              |
|  **406** | **Missing Required Parameter** | Not Acceptable, Missing required parameter                                                              |
|  **408** | **Request Timeout**            | Request timed out                                                                                       |
|  **409** | **Invalid Signature**          | Resource conflict, Signature and data do not match                                                      |
|  **410** | **Gone**                       | Resource is archived and not accessible                                                                 |
|  **412** | **Precondition Failed**        | Header parameter verification failed                                                                    |
|  **413** | **Request Entity Too Large**   | Too many requested resources for paging display                                                         |
|  **415** | **Unsupported Media Type**     | Unsupported Media Type                                                                                  |
|  **416** | **Stock Out**                  | Stock out                                                                                               |
|  **422** | **Unprocessable Entity**       | The data format is ok, but the data verification failed                                                 |
|  **423** | **Locked**                     | Resources are locked                                                                                    |
|  **425** | **Too Early**                  | The server refuses to process the request in Early Data to avoid possible replay attacks                |
|  **428** | **Precondition Required**      | The necessary header is missing                                                                         |
|  **429** | **Too Many Requests**          | Request frequency exceeded                                                                              |
|  **500** | **Internal Server Error**      | Server-side processing error                                                                            |
|  **501** | **Not Implemented**            | The interface has not been developed yet.                                                               |
|  **502** | **Bad Gateway**                | Core service unavailable                                                                                |
|  **503** | **Service Unavailable**        | The requested service is currently busy                                                                 |
|  **598** | **Network Read Timeout**       | Core service read timeout error                                                                         |
|  **599** | **Network Connect Timeout**    | Core service connect timeout error                                                                      |

* Specific error code description
  * 1xx Informational
  * 2xx Success
  * 3xx Redirection
  * 4xx Client Error
  * 5xx Server Error

## ERROR INFO

* Specific error info list

| **info\_code** | **info\_message**                                                                                                            |
| :------------: | ---------------------------------------------------------------------------------------------------------------------------- |
|    **10201**   | **Created**                                                                                                                  |
|    **10202**   | **Accepted**                                                                                                                 |
|    **10204**   | **No Content**                                                                                                               |
|    **10304**   | **Not Modified**                                                                                                             |
|    **10400**   | **Bad Request**                                                                                                              |
|    **10401**   | **Unauthorized**                                                                                                             |
|    **10402**   | **Payment Required**                                                                                                         |
|    **10403**   | **Forbidden**                                                                                                                |
|    **10404**   | **Not Found**                                                                                                                |
|    **10405**   | **Method Not Allowed**                                                                                                       |
|    **10406**   | **Missing Required Parameter**                                                                                               |
|    **10408**   | **Request Timeout**                                                                                                          |
|    **10409**   | **Invalid Signature**                                                                                                        |
|    **10410**   | **Gone**                                                                                                                     |
|    **10412**   | **Precondition Failed**                                                                                                      |
|    **10413**   | **Request Entity Too Large**                                                                                                 |
|    **10415**   | **Unsupported Media Type**                                                                                                   |
|    **10416**   | **Stock Out**                                                                                                                |
|    **10417**   | **Order Quantity exceeded stock.**                                                                                           |
|    **10422**   | **Unprocessable Entity**                                                                                                     |
|    **10423**   | **Locked**                                                                                                                   |
|    **10425**   | **Too Early**                                                                                                                |
|    **10428**   | **Precondition Required**                                                                                                    |
|    **10429**   | **Too Many Requests**                                                                                                        |
|    **10500**   | **Internal Server Error**                                                                                                    |
|    **10501**   | **Not Implemented**                                                                                                          |
|    **10502**   | **Bad Gateway**                                                                                                              |
|    **10503**   | **Service Unavailable**                                                                                                      |
|    **10598**   | **Network Read Timeout**                                                                                                     |
|    **10599**   | **Network Connect Timeout**                                                                                                  |
|    **20002**   | **Dismiss a parameter.**                                                                                                     |
|    **20003**   | **Invalid Parameter.**                                                                                                       |
|    **20004**   | **Invalid parameter value.**                                                                                                 |
|    **20006**   | **Invalid Region.**                                                                                                          |
|    **20017**   | **Invalid Page No.**                                                                                                         |
|    **20018**   | **Quantity must be 1 or more.**                                                                                              |
|    **20019**   | **Quantity must less than MaxAmount.**                                                                                       |
|    **20021**   | **Payment exceeded your limit. This payment is cancelled.**                                                                  |
|    **20022**   | **Vietnamese Dong payment must be more than ₫2000.**                                                                         |
|    **20023**   | **All orders must be consistent with the currency.**                                                                         |
|    **20026**   | **Credits Account id is invalid.**                                                                                           |
|    **20030**   | **Invalid Currency.**                                                                                                        |
|    **20031**   | **This buy amount can't be modified.**                                                                                       |
|    **20032**   | **Quantity must be an integer.**                                                                                             |
|    **20033**   | **Insufficient Balance.**                                                                                                    |
|    **20035**   | **Invalid user id Or required user id.**                                                                                     |
|    **20037**   | **Signature parameter is required.**                                                                                         |
|    **20038**   | **Signature is invalid.**                                                                                                    |
|    **20039**   | **Req Timestamp header is required.**                                                                                        |
|    **20041**   | **Invalid order.**                                                                                                           |
|    **20042**   | **The number of operations exceeds the limit.**                                                                              |
|    **20049**   | **Unauthorized Request.**                                                                                                    |
|    **20050**   | **Account verified is required (email unverified).**                                                                         |
|    **20051**   | **Sorry. This product is currently not available for your region. Please return to home page for other product & services.** |
|    **20057**   | **The request is not allowed.**                                                                                              |
|    **20058**   | **This email is not allowed.**                                                                                               |
|    **20059**   | **Request be forbidden**                                                                                                     |
|    **20060**   | **Your account has been locked. You may try to reset your password.**                                                        |
|    **20061**   | **Your account has been suspended. Please contact customer support if this was a mistake.**                                  |
|    **20062**   | **Product has been off the shelf.**                                                                                          |
|    **20063**   | **Payment Order expired. Cannot make payment. Please place new order.**                                                      |
|    **20064**   | **Order has been paid.**                                                                                                     |
|    **20071**   | **Card service is not opened.**                                                                                              |
|    **20072**   | **Topup service is not opened.**                                                                                             |
|    **20073**   | **You have no access to this type of product.**                                                                              |
|    **20074**   | **Payment status is not allow to operate.**                                                                                  |
|    **20076**   | **The request is not exist.**                                                                                                |
|    **20077**   | **Card type doesn't exist.**                                                                                                 |
|    **20078**   | **Credits account doesn't exist.**                                                                                           |
|    **20079**   | **The product doesn't exist.**                                                                                               |
|    **20080**   | **This order doesn't exist.**                                                                                                |
|    **20081**   | **This trade doesn't exist.**                                                                                                |
|    **20089**   | **User is not exist.**                                                                                                       |
|    **20091**   | **Create Failed**                                                                                                            |
|    **20092**   | **Update Failed**                                                                                                            |
|    **20093**   | **500 Internal Server Error**                                                                                                |
|    **20098**   | **Create trade failed.**                                                                                                     |
|    **20099**   | **Create order failed.**                                                                                                     |
|    **20103**   | **Failed to get pins.**                                                                                                      |
|    **20107**   | **Order Quantity exceeded stock.**                                                                                           |
|    **20108**   | **Get products list failed.**                                                                                                |
|    **20109**   | **Failed to save the content.**                                                                                              |
|    **20110**   | **API version is not supported.**                                                                                            |
|    **20111**   | **Curl Failed**                                                                                                              |
|    **20112**   | **Balance payment Failed.**                                                                                                  |
|    **20115**   | **Your account is not allowed to make purchases**                                                                            |
|    **20116**   | **Your game top-up account has been blocked**                                                                                |
|    **20121**   | **Buy amount must be 1 or more**                                                                                             |
|    **20122**   | **Buy amount must be 1**                                                                                                     |
|    **20124**   | **Invalid Buy Amount**                                                                                                       |
|    **20125**   | **Current product stock out**                                                                                                |
|    **20126**   | **Can not buy directtopup product type**                                                                                     |
|    **20127**   | **verify sign failed**                                                                                                       |
|    **20129**   | **The Balance Amount is invalid**                                                                                            |
|    **20130**   | **ca-shd error**                                                                                                             |
|    **20131**   | **Website closed and service suspended**                                                                                     |
|    **20133**   | **Player id is invalid.**                                                                                                    |
|    **20134**   | **Failed to verify.**                                                                                                        |
|    **20135**   | **The mch order id already Exist.**                                                                                          |

## PAYMENT CURRENCY

* All purchases are paid with your account Balance in SEAGM Credits. For more information about SEAGM Credits please refer to this [link](https://help.seagm.com/hc/en-us/articles/229778207-What-is-SEAGM-Credits-).
* Merchants account reload (all supported currencies) will be automatically converted into SEAGM Credits based on our system FX rate. We do not publish our FX.

## PAYMENT ORDER CALLBACK

* For each transaction, we have an asynchronous callback to notify the merchant of the completion status of the order
* The merchant needs to provide us with an accessible callback address. If the merchant has set a whitelist access, you need to contact us and add our server IP to your whitelist list.
* Receive the callback, please give us the response string "success" to inform us of the callback result
* Example of callback content

```
{
    "id":"12563858",
    "trade_id":"11055829",
    "title":"HipVanS$30 HipVan",
    "category_id":"1006",
    "product_id":"6351",
    "type_id":"6351",
    "created":"1622444052",
    "created_time":"1622444052",
    "currency":"MYR",
    "unit_price":"1.09",
    "buy_amount":"1.00",
    "pay_amount":"1.09",
    "pay_amount_credits": "109",
    "refunded_amount":"0.00",
    "send_amount":"1.000",
    "paid_time":"1622444053",
    "sent_time":"1622444074",
    "pay_status_code":"2",
    "pay_status":"Paid",
    "send_status_code":"3",
    "send_status":"Done",
    "timestamp":1622444077,
    "status":"Done",
    "status_code":10003,
    "mch_order_id": "D2022031106",
    "signature":"fa79f96cf1bfce247cc592d7501a4c3d2d6014cf5ef1da0b75c5ab4535925c2e"
}
```

* The signature can be verified according to the signature field, signature verification method

  > 1.All the data fields of the callback, except the signature, are sorted according to natural (ksort).
  >
  > 2.Arrange the sorted parameters to form a queryString, for example：a=1\&b=34.....
  >
  > 3.Endpoints use HMAC SHA256 signatures. The HMAC SHA256 signature is a keyed HMAC SHA256 operation.Use your secretKey as the key and queryString as the value for the HMAC operation.

  ​

## LIMITS

* A 429 will be returned when either rather limit is violated.
* When a 429 is recieved, it's your obligation as an API to slow down and not spam the API.
* **Repeatedly violating rate limits and/or failing to back off after receiving 429s will result in an automated IP ban (http status 418).**
* IP bans are tracked and **scale in duration** for repeat offenders, **from 30 minutes to 3 days**.

## Endpoint security type

* uid are passed into the Rest API via the query string uid.
* secret\_key **are case sensitive**.

## SIGNED Endpoint security

* `SIGNED` endpoints require an additional parameter, `signature`, to be\
  sent in the `query string` or `request body`.
* Endpoints use `HMAC SHA256` signatures. The `HMAC SHA256 signature` is a keyed `HMAC SHA256` operation.\
  Use your `secretKey` as the key and `totalParams` as the value for the HMAC operation.
* The `signature` is **not case sensitive**.
* `totalParams` is defined as the `query string` concatenated with the`request body`, Key sort.

### Timing security

* A `SIGNED` endpoint also requires a parameter, `timestamp`, to be sent which\
  should be the second timestamp of when the request was created and sent.
* The logic is as follows:

  ```javascript
  if (timestamp < (serverTime + 120) && timestamp > (serverTime - 120)) {
    // process request
  } else {
    // reject request
  }
  ```

**Serious trading is about timing.** Networks can be unstable and unreliable,\
which can lead to requests taking varying amounts of time to reach the\
servers. With `recvWindow`, you can specify that the request must be\
processed within a certain number of milliseconds or be rejected by the\
server.

### Examples

#### SIGNED Endpoint Examples for GET /v1/me

Here is a step-by-step example of how to send a vaild signed payload from the\
Linux command line using `echo`, `openssl`, and `curl`.

| Key       | Value                                                            |
| --------- | ---------------------------------------------------------------- |
| uid       | 10001                                                            |
| secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |

| Parameter | Value      |
| --------- | ---------- |
| timestamp | 1645084639 |
| uid       | 10001      |

* **queryString:** timestamp=1645084639\&uid=10001
* **HMAC SHA256 signature:**

  ```
  [linux]$ echo -n "timestamp=1645084639&uid=10001" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
  (stdin)= c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71
  ```
* **curl command:**

  ```
  (HMAC SHA256)
  [linux]$ curl 'https://openapi.seagm.io/v1/me?timestamp=1645084639&uid=10001&signature=c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71'
  ```

#### SIGNED Endpoint Examples for POST /v1/card-orders

Here is a step-by-step example of how to send a vaild signed payload from the\
Linux command line using `echo`, `openssl`, and `curl`.

| Key       | Value                                                            |
| --------- | ---------------------------------------------------------------- |
| uid       | 10001                                                            |
| secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |

| Parameter | Value      |
| --------- | ---------- |
| timestamp | 1645084639 |
| uid       | 10001      |

| Field       | Value |
| ----------- | ----- |
| type\_id    | 1     |
| buy\_amount | 2     |

* **queryString:** uid=10001\&timestamp=1645084639\&signature=c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71
* **requestBody:** type\_id=1\&buy\_amount=2
* **HMAC SHA256 signature:**

  ```
  [linux]$ echo -n "buy_amount=2&timestamp=1645084639&type_id=1&uid=10001" | openssl dgst -sha256 -hmac "NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j"
  (stdin)= 0fd168b8ddb4876a0358a8d14d0c9f3da0e9b20c5d52b2a00fcf7d1c602f9a77
  ```
* **curl command:**

  ```
  (HMAC SHA256)
  [linux]$ curl -x 'POST' 'https://openapi.seagm.io/v1/card-orders?uid=10001&timestamp=1645084639&signature=c8db56825ae71d6d79447849e617115f4a920fa2acdcab2b053c4b2838bd6b71' -d 'type_id=1&buy_amount=2'
  ```

## Public API General endpoints

### Test connectivity

```
GET /ping
```

Test connectivity to the Rest API.

**Parameters:**\
NONE

**Response:**

```javascript
{
    "code": 200,
    "data": "pong"
}
```

### Check server time

```
GET /time
```

Test connectivity to the Rest API and get the current server time.

**Parameters:**\
NONE

**Response:**

```javascript
{
    "code": 200,
    "data": 1499827319
}
```

### Get account details

```
GET /v1/me?uid=10001&timestamp=xx&signature=xx
```

Get balance and other account information.

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 10001                                                            | Yes       |
| timestamp | 1614666821                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |

**Rresponse:**

```javascript
{
    "code": 200,
    "data": {
        "id": 10015,
        "email": "359889053@qq.com",
        "username": "ranhuan03",
        "credits": 9946382,
        "currency": "MYR",
        "balance": "99463.82"
    },
    "msg": "OK"
}
```

| Field         | Type   | Description                             |
| ------------- | ------ | --------------------------------------- |
| data.id       | int    | Account id                              |
| data.email    | string | email                                   |
| data.username | string | The user name                           |
| data.credits  | int    | Credit card balance                     |
| data.currency | string | Account default currency                |
| data.balance  | float  | Default currency balance of the account |

### Get account history

```
GET /v1/account-history?uid=10001&timestamp=xx&signature=xx
```

Get account history

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 1000                                                             | Yes       |
| timestamp | 1614666821                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| limit     | 12                                                               | No        |
| offset    | 0                                                                | No        |

**Rresponse:**

```javascript
{
    "code": 200,
    "data": {
        "total": 1000,
        "begin": 0,
        "end": 100,
        "logs": [
          {},
          ....
        ]
    }
}
```

| Field                     | Type   | Description                                              |
| ------------------------- | ------ | -------------------------------------------------------- |
| data.total                | int    | Total records                                            |
| data.begin                | int    | Return record start index this time, index starts from 0 |
| data.end                  | int    | Return record end index this time                        |
| data.logs\[]              | array  | Logs data                                                |
| data.logs\[].id           | int    | Log id                                                   |
| data.logs\[].account\_id  | int    | User account id                                          |
| data.logs\[].currency     | string | Currency                                                 |
| data.logs\[].action       | string | Action                                                   |
| data.logs\[].amount       | float  | Amount                                                   |
| data.logs\[].balance      | float  | Balance                                                  |
| data.logs\[].relative\_id | int    | Relative id, etc: order id, user id, payment id....      |
| data.logs\[].created      | int    | Log created (timestamp)                                  |

### Get card category list

```
GET /v1/card-categories
```

Gets a categorical list of point card products

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 1000                                                             | Yes       |
| timestamp | 1614666821                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |

```javascript
{
    "code": 200,
    "data": [
        {
            "id": 1,
            "name": "Cubizone Cubicards (MY)",
            "code": "cubizone-cubicards-my",
            "mode": "pin",
            "region": "",
            "publisher": "",
            "auto_delivery": true
        }
    ],
    "msg": "OK"
}
```

| Field                  | Type   | Description                                     |
| ---------------------- | ------ | ----------------------------------------------- |
| data\[].id             | int    | Category id                                     |
| data\[].name           | String | Category name                                   |
| data\[].code           | String | Category code                                   |
| data\[].auto\_delivery | bool   | Whether to delivery automatically after payment |

### Get card category details

```
GET /v1/card-categories/:category_id
```

**Attributes:**

| Attribute    | Value |
| ------------ | ----- |
| category\_id | 1     |

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 10000                                                            | Yes       |
| timestamp | 1000000000                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 1,
        "name": "Cubizone Cubicards (MY)",
        "code": "cubizone-cubicards-my",
        "mode": "pin",
        "region": "",
        "publisher": "",
        "auto_delivery": true
    },
    "msg": "OK"
}
```

| Field                  | Type   | Description                                     |
| ---------------------- | ------ | ----------------------------------------------- |
| data.id                | int    | Category id (Point card)                        |
| data.name              | String | Category name (Point card)                      |
| data.code              | String | Category code (Point card)                      |
| data\[].auto\_delivery | bool   | Whether to delivery automatically after payment |

### Get card type list of specified card category

```
GET /v1/card-categories/:category_id/card-types
```

Gets a list of products under a category

**Attributes:**

| Attribute    | Value |
| ------------ | ----- |
| category\_id | 1     |

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 10000                                                            | Yes       |
| timestamp | 1000000000                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": [
        {
            "id": 49,
            "name": "Cubizone 1000 Cubits",
            "category_id": 1,
            "category_name": "Cubizone Cubicards (MY)",
            "par_value_currency": "MYR",
            "par_value": 100,
            "currency": "MYR",
            "unit_price": 100,
            "max_amount": 100,
            "min_amount": 1,
            "origin_price": 100,
            "discount_rate": 0,
            "has_stock": true
        }
    ],
    "msg": "OK"
}
```

| Field                        | Type   | Description                        |
| ---------------------------- | ------ | ---------------------------------- |
| data\[].id                   | int    | Type ID (Point card)               |
| data\[].name                 | string | Type name (Point card)             |
| data\[].category\_id         | int    | Category ID (Point card)           |
| data\[].par\_value\_currency | string | Currency of par value              |
| data\[].par\_value           | float  | Par value                          |
| data\[].currency             | string | Currency                           |
| data\[].unit\_price          | float  | Unit price                         |
| data\[].max\_amount          | int    | Maximum single purchase quantity   |
| data\[].min\_amount          | int    | Minimum purchase quantity per time |
| data\[].origin\_price        | float  | Original price                     |
| data\[].discount\_rate       | float  | Discount percentage                |
| data\[].has\_stock           | bool   | Is in stock                        |

### Get card type details

```
GET /v1/card-types/:type_id
```

Get details of a point card product

**Attributes:**

| Attribute | Value |
| --------- | ----- |
| type\_id  | 10026 |

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 10000                                                            | Yes       |
| timestamp | 1000000000                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 49,
        "name": "Cubizone 1000 Cubits",
        "category_id": 1,
        "category_name": "Cubizone Cubicards (MY)",
        "par_value_currency": "MYR",
        "par_value": 100,
        "currency": "MYR",
        "unit_price": 100,
        "max_amount": 100,
        "min_amount": 1,
        "origin_price": 100,
        "discount_rate": 0,
        "has_stock": true
    },
    "msg": "OK"
}
```

| Field                     | Type   | Description                      |
| ------------------------- | ------ | -------------------------------- |
| data.id                   | int    | Type id                          |
| data.name                 | string | Type name                        |
| data.category\_id         | int    | Category id                      |
| data.par\_value\_currency | string | The currency of par value        |
| data.par\_value           | float  | Par value                        |
| data.currency             | string | Currency                         |
| data.unit\_price          | float  | Unit price (after discount)      |
| data.max\_amount          | int    | Maximum single purchase quantity |
| data.min\_amount          | int    | Minimum single purchase quantity |
| data.origin\_price        | float  | Original price                   |
| data.discount\_rate       | float  | Discount percentage              |

### Create card order

```
POST /v1/card-orders
```

**Parameters:**

| Parameter      | Value                                                            | Mandatory |
| -------------- | ---------------------------------------------------------------- | --------- |
| uid            | 10000                                                            | Yes       |
| timestamp      | 1000000000                                                       | Yes       |
| signature      | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| type\_id       | 49                                                               | Yes       |
| buy\_amount    | 1（The default is 1）                                              | No        |
| mch\_order\_id | D2022031106 (The merchant's order id)                            | No        |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 17401657,
        "trade_id": 15440844,
        "title": "Cubizone Cubicards (MY)<span/>Cubizone 1000 Cubits",
        "category_id": 1,
        "product_id": 49,
        "type_id": 49,
        "created": 1614669585,
        "created_time": 1614669585,
        "currency": "MYR",
        "unit_price": "100.00",
        "buy_amount": 1,
        "pay_amount": "100.00",
        "pay_amount_credits": 10000,
        "refunded_amount": "0.00",
        "send_amount": "1.000",
        "paid_time": 1614669585,
        "sent_time": 1614669586,
        "pay_status_code": 2,
        "pay_status": "Paid",
        "send_status_code": 3,
        "send_status": "Done",
        "status": "Done",
        "status_code": 10003,
        "mch_order_id": "D2022031106",
        "cards": [
            {
                "id": 8881121,
                "card_number": "MYF181221000093",
                "card_pin": "WMRKR9LGA6KN8SRNN3",
                "expired": "-"
            }
        ]
    },
    "msg": "OK"
}
```

| Field                      | Type   | Description               |
| -------------------------- | ------ | ------------------------- |
| data.id                    | int    | Order ID                  |
| data.trade\_id             | int    | Payment ID                |
| data.title                 | string | Order title               |
| data.category\_id          | int    | Category ID               |
| data.type\_id              | int    | Type ID                   |
| data.created               | int    | Order created (timestamp) |
| data.currency              | String | Currency                  |
| data.unit\_price           | float  | Unit price                |
| data.buy\_amount           | int    | Buy amunt                 |
| data.pay\_amount           | float  | Total payment             |
| data.pay\_amount           | float  | Total payment credits     |
| data.pay\_status\_code     | int    | Status for payment        |
| data.refunded\_amount      | float  | Amount refunded           |
| data.send\_status\_code    | int    | Status for delivery       |
| data.pay\_status           | string | Status text for payment   |
| data.sent\_amount          | float  | Quantity delivered        |
| data.send\_status          | string | Status text for delivery  |
| data.paid\_time            | int    | Paid (timestamp)          |
| data.sent\_time            | Int    | Delivered (timestamp)     |
| data.status                | string | Global status             |
| data.status\_code          | Int    | Status for order          |
| data.mch\_order\_id        | string | Merchant's order id       |
| data.cards\[]              | array  | Point cards data          |
| data.cards\[].card\_number | string | Serial number             |
| data.cards\[].card\_pin    | string | Pin                       |
| data.cards\[].expired      | string | Expired (YYYY-mm-dd)      |

### Get order list

```
GET /v1/card-orders
```

**Parameters:**

| Parameter | Value                                                            |
| --------- | ---------------------------------------------------------------- |
| offset    | 0                                                                |
| limit     | 12                                                               |
| uid       | 10000                                                            |
| timestamp | 10000000000                                                      |
| signature | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246 |

**Response:**

```javascript
{
 {
    "code": 200,
    "data": {
        "total": 61,
        "begin": 0,
        "end": 2,
        "orders": [
            {
                "id": 17401657,
                "trade_id": 15440844,
                "title": "Cubizone Cubicards (MY)<span/>Cubizone 1000 Cubits",
                "category_id": 1,
                "product_id": 49,
                "type_id": 49,
                "created": 1614669585,
                "created_time": 1614669585,
                "currency": "MYR",
                "unit_price": "100.00",
                "buy_amount": 1,
                "pay_amount": "100.00",
                "pay_amount_credits": 10000,
                "refunded_amount": "0.00",
                "send_amount": "1.000",
                "paid_time": 1614669585,
                "sent_time": 1614669586,
                "pay_status_code": 2,
                "pay_status": "Paid",
                "send_status_code": 3,
                "send_status": "Done",
                "status": "Done",
                "status_code": 10003,
                "mch_order_id": "D2022031106"
            },
            {
                "id": 17401656,
                "trade_id": 15440843,
                "title": "Cubizone Cubicards (MY)<span/>Cubizone 1000 Cubits",
                "category_id": 1,
                "product_id": 49,
                "type_id": 49,
                "created": 1614652180,
                "created_time": 1614652180,
                "currency": "MYR",
                "unit_price": "100.00",
                "buy_amount": 1,
                "pay_amount": "100.00",
                "pay_amount_credits": 10000,
                "refunded_amount": "0.00",
                "send_amount": "1.000",
                "paid_time": 1614652180,
                "sent_time": 1614652180,
                "pay_status_code": 2,
                "pay_status": "Paid",
                "send_status_code": 3,
                "send_status": "Done",
                "status": "Done",
                "status_code": 10003,
                "mch_order_id": "D2022031106"
            }
        ]
    },
    "msg": "OK"
}
```

| Field                               | Type   | Description                                              |
| ----------------------------------- | ------ | -------------------------------------------------------- |
| data.total                          | int    | Total records                                            |
| data.begin                          | Int    | Return record start index this time, index starts from 0 |
| data.end                            | int    | Return record end index this time                        |
| data.orders\[]                      | array  | Orders data                                              |
| data.orders\[].id                   | int    | Order ID                                                 |
| data.orders\[].trade\_id            | int    | Payment ID                                               |
| data.orders\[].title                | string | Order title                                              |
| data.orders\[].category\_id         | int    | Category ID                                              |
| data.orders\[].type\_id             | int    | Type ID                                                  |
| data.orders\[].created              | int    | Order created (timestamp)                                |
| data.orders\[].currency             | String | Currency for unit price                                  |
| data.orders\[].unit\_price          | float  | Unit price                                               |
| data.ordes\[].buy\_amount           | int    | Purchase quantity                                        |
| data.orders\[].pay\_amount          | float  | Total payment                                            |
| data.orders\[].pay\_amount\_credits | float  | Total payment credits                                    |
| data.orders\[].pay\_status\_code    | int    | Status for payment                                       |
| data.orders\[].refunded\_amount     | float  | Amount refunded                                          |
| data.orders\[].send\_status\_code   | int    | Status for delivery                                      |
| data.orders\[].pay\_status          | string | Status text for payment                                  |
| data.orders\[].sent\_amount         | float  | Quantity delivered                                       |
| data.orders\[].send\_status         | string | Status text for delivery                                 |
| data.orders\[].status               | string | Global status                                            |
| data.orders\[].status\_code         | int    | Status for order                                         |
| data.orders\[].mch\_order\_id       | string | Merchant's order id                                      |
| data.paid\_time                     | int    | Paid (timestamp)                                         |
| data.sent\_time                     | int    | Delivered (timestamp)                                    |

### Get order details

```
GET /v1/card-orders/:order_id
```

**Attributes:**

| Attribute | Value |
| --------- | ----- |
| order\_id | 10026 |

**Parameters:**

| Parameter   | Value                                                                                                                                        | Mandatory |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| uid         | 10000                                                                                                                                        | Yes       |
| timesteamp  | 1000000000                                                                                                                                   | Yes       |
| signature   | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246                                                                             | Yes       |
| query\_type | orderId (The default is orderId. The default query by seagm order id. This value is mchOrderId when you need to query by merchant order id.) | No        |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 17401657,
        "trade_id": 15440844,
        "title": "Cubizone Cubicards (MY)<span/>Cubizone 1000 Cubits",
        "category_id": 1,
        "product_id": 49,
        "type_id": 49,
        "created": 1614669585,
        "created_time": 1614669585,
        "currency": "MYR",
        "unit_price": "100.00",
        "buy_amount": 1,
        "pay_amount": "100.00",
        "pay_amount_credits": 10000,
        "refunded_amount": "0.00",
        "send_amount": "1.000",
        "paid_time": 1614669585,
        "sent_time": 1614669586,
        "pay_status_code": 2,
        "pay_status": "Paid",
        "send_status_code": 3,
        "send_status": "Done",
        "status": "Done",
        "status_code": 10003,
        "mch_order_id": "D2022031106",
        "cards": [
            {
                "id": 8881121,
                "card_number": "MYF181221000093",
                "card_pin": "WMRKR9LGA6KN8SRNN3",
                "expired": "-"
            }
        ]
    },
    "msg": "OK"
}
```

| Field                      | Type   | Description               |
| -------------------------- | ------ | ------------------------- |
| data.id                    | int    | Order ID                  |
| data.trade\_id             | int    | Payment ID                |
| data.title                 | string | Order title               |
| data.category\_id          | int    | Category\_id              |
| data.type\_id              | int    | Type id                   |
| data.created               | int    | Order created (timestamp) |
| data.currency              | String | Currency for unit price   |
| data.unit\_price           | float  | Unit price                |
| data.buy\_amount           | int    | Purchase quantity         |
| data.pay\_amount           | float  | Total payment             |
| data.pay\_amount\_credits  | float  | Total payment credits     |
| data.pay\_status\_code     | int    | Status for payment        |
| data.refunded\_amount      | float  | Amount refunded           |
| data.send\_status\_code    | int    | Status for delivery       |
| data.pay\_status           | string | Status text for payment   |
| data.sent\_amount          | float  | Quantity delivered        |
| data.send\_status          | string | Status text for delivery  |
| data.status                | string | Global status             |
| data.status\_code          | int    | Status for order          |
| data.mch\_order\_id        | string | Merchant's order id       |
| data.paid\_time            | int    | Paid (timestamp)          |
| data.sent\_time            | int    | Delivered (timestamp)     |
| data.cards\[]              | array  | Point cards data          |
| data.cards\[].card\_number | string | Serial number             |
| data.cards\[].card\_pin    | string | Pin                       |
| data.cards\[].expired      | string | Expired (YYYY-mm-dd)      |

### Get direct top up category list

```
GET /v1/recharge-categories
```

Gets a categorization list of products in the Direct Filling category

**Parameters:**

| Parameter  | Value                                                            | Mandatory |
| ---------- | ---------------------------------------------------------------- | --------- |
| uid        | 10000                                                            | Yes       |
| timesteamp | 1000000000                                                       | Yes       |
| signature  | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": [
        {
            "id": 631,
            "name": "QQ Coin Q币直充 (CN)",
            "code": "qq-qb-direct-top-up",
            "auto_delivery": false
        },
        {
            "id": 633,
            "name": "91wan网页游戏直充",
            "code": "91-wan-direct-top-up",
            "auto_delivery": false
        },
        {
            "id": 634,
            "name": "多玩游戏平台直充",
            "code": "duo-wan-direct-top-up",
            "auto_delivery": false
        },
        ...
    ]
}
```

| Field                  | Type   | Description                                     |
| ---------------------- | ------ | ----------------------------------------------- |
| data\[].id             | int    | direct top up category id                       |
| data\[].name           | string | direct top up category name                     |
| data\[].code           | string | direct top up category code                     |
| data\[].auto\_delivery | bool   | Whether to delivery automatically after payment |

### Get direct top up category details

```
GET /v1/recharge-categories/:category_id
```

**Attributes:**

| Attribute    | Value |
| ------------ | ----- |
| category\_id | 1     |

**Parameters:**

| Parameter  | Value                                                            | Mandatory |
| ---------- | ---------------------------------------------------------------- | --------- |
| uid        | 10000                                                            | Yes       |
| timesteamp | 1000000000                                                       | Yes       |
| signature  | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 631,
        "name": "QQ Coin Q币直充 (CN)",
        "code": "qq-qb-direct-top-up",
        "auto_delivery": false
    },
    "msg": "OK"
}
```

| Field               | Type   | Description                                     |
| ------------------- | ------ | ----------------------------------------------- |
| data.id             | int    | Category ID                                     |
| data.name           | string | Category name                                   |
| data.code           | string | Category code                                   |
| data.auto\_delivery | bool   | Whether to delivery automatically after payment |

### Get direct top up type list of specified direct top up category

```
GET /v1/recharge-categories/:category_id/recharge-types
```

Gets a list of products under a category

**Attributes:**

| Attribute    | Value |
| ------------ | ----- |
| category\_id | 1     |

**Parameters:**

| Parameter  | Value                                                            | Mandatory |
| ---------- | ---------------------------------------------------------------- | --------- |
| uid        | 10000                                                            | Yes       |
| timesteamp | 1000000000                                                       | Yes       |
| signature  | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": [
        {
            "id": 1,
            "categoryId": 1,
            "name": "Cubizone 100 Cubits",
            "unitPrice": 0,
            "parValue": 10,
            "parValueCurrency": "MYR",
            "maxAmount": 0,
          	"fields": [
              ...
            ],
        },
        {
            "id": 2,
            "categoryId": 1,
            "name": "Cubizone 200 Cubits",
            "unitPrice": 0,
            "parValue": 20,
            "parValueCurrency": "MYR",
            "maxAmount": 0
        },
        ...
    ]
 }
```

| Field                                                                    | Type   | Description                               |
| ------------------------------------------------------------------------ | ------ | ----------------------------------------- |
| data\[].id                                                               | int    | Type id                                   |
| data\[].name                                                             | string | Type name                                 |
| data\[].category\_id                                                     | int    | Category ID                               |
| data\[].par\_value\_currency                                             | string | Currency of par value                     |
| data\[].par\_value                                                       | float  | Par value                                 |
| data\[].currency                                                         | string | Currency of unit price                    |
| data\[].unit\_price                                                      | float  | Unti price                                |
| data\[].max\_amount                                                      | int    | Maximum quantity per purchase             |
| data\[].min\_amount                                                      | int    | Minimum quantity per purchase             |
| data\[].origin\_price                                                    | float  | Original price                            |
| data\[].discount\_rate                                                   | float  | Discount percentage                       |
| data\[].fields\[]                                                        | array  | Attribute fields                          |
| data\[].fields\[].type                                                   | string | Input type                                |
| data\[].fields\[].label                                                  | string | Input lable                               |
| data\[].fields\[].multiline                                              | Bool   | Multiline                                 |
| data\[].fields\[].name                                                   | String | Field name                                |
| data\[].fields\[].placeholder                                            | string | Field placeholder                         |
| data\[].fields\[].prefix                                                 | string | Field prefix                              |
| data\[].fields\[].position                                               | int    | Suggested layout order of attribute field |
| data\[].fields\[].options\[]                                             | array  | Select options, only for type=select      |
| data\[].fields\[].options\[].lable                                       | string | Option label                              |
| data\[].fields\[].options\[].value                                       | string | Option value                              |
| data\[].fields\[].options\[].child\[]                                    | array  | Child Select (Optional)                   |
| data\[].fields\[].options\[].child\[].name                               | string | Select name                               |
| data\[].fields\[].options\[].child\[].label                              | string | Select label                              |
| data\[].fields\[].options\[].child\[].prefix                             | string | Select prefix                             |
| data\[].fields\[].options\[].child\[].options\[]                         | array  | Child select options data                 |
| data\[].fields\[].options\[].child\[].options\[].parent\_value           | string | Parent select value                       |
| data\[].fields\[].options\[].child\[].options\[].child\_options\[]       | array  | Child select options                      |
| data\[].fields\[].options\[].child\[].options\[].child\_options\[].label | string | Child select option label                 |
| data\[].fields\[].options\[].child\[].options\[].child\_options\[].value | string | Child select option value                 |

### Get direct top up type details

```
GET /v1/recharge-types/:type_id
```

**Attributes:**

| Attribute | Value |
| --------- | ----- |
| type\_id  | 10026 |

**Parameters:**

| Parameter  | Value                                                            | Mandatory |
| ---------- | ---------------------------------------------------------------- | --------- |
| uid        | 10000                                                            | Yes       |
| timesteamp | 1000000000                                                       | Yes       |
| signature  | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246 | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 2987,
        "name": "多玩游戏平台_90Y币_100元(直充)",
        "category_id": 634,
        "par_value_currency": "CNY",
        "par_value": "100.00",
        "currency": "MYR",
        "unit_price": 60.28,
        "max_amount": 10,
        "min_amount": 1,
        "origin_price": 60.28,
        "discount_rate": 0,
        "fields": [
            {
                "name": "charge_account",
                "type": "input",
                "label": "玩家账号",
                "multiline": false,
                "placeholder": "Please enter 玩家账号",
                "prefix": "",
                "position": 1
            }
        ]
    },
    "msg": "OK"
}
```

| Field                                                                 | Type   | Description                               |
| --------------------------------------------------------------------- | ------ | ----------------------------------------- |
| data.id                                                               | int    | Type ID                                   |
| data.name                                                             | string | Type name                                 |
| data.category\_id                                                     | int    | Category ID                               |
| data.par\_value\_currency                                             | string | Currency of par value                     |
| data.par\_value                                                       | float  | Par value                                 |
| data.currency                                                         | string | Currency of unit\_price                   |
| data.unit\_price                                                      | float  | Unit Price                                |
| data.max\_amount                                                      | int    | Maximum quantity per purchase             |
| data.min\_amount                                                      | int    | Minimum quantity per purchase             |
| data.origin\_price                                                    | float  | Original price                            |
| data.discount\_rate                                                   | float  | Discount percentage                       |
| data.fields\[]                                                        | array  | Attribute fields                          |
| data.fields\[].type                                                   | string | Input type                                |
| data.fields\[].label                                                  | string | Input lable                               |
| data.fields\[].multiline                                              | Bool   | Multiline                                 |
| data.fields\[].name                                                   | String | Field name                                |
| data.fields\[].placeholder                                            | string | Field placeholder                         |
| data.fields\[].prefix                                                 | string | Field prefix                              |
| data.fields\[].position                                               | int    | Suggested layout order of attribute field |
| data.fields\[].options\[]                                             | array  | Select options, only for type=select      |
| data.fields\[].options\[].lable                                       | string | Option label                              |
| data.fields\[].options\[].value                                       | string | Option value                              |
| data.fields\[].options\[].child\[]                                    | array  | Child Select (Optional)                   |
| data.fields\[].options\[].child\[].name                               | string | Select name                               |
| data.fields\[].options\[].child\[].label                              | string | Select label                              |
| data.fields\[].options\[].child\[].prefix                             | string | Select prefix                             |
| data.fields\[].options\[].child\[].options\[]                         | array  | Child select options data                 |
| data.fields\[].options\[].child\[].options\[].parent\_value           | string | Parent select value                       |
| data.fields\[].options\[].child\[].options\[].child\_options\[]       | array  | Child select options                      |
| data.fields\[].options\[].child\[].options\[].child\_options\[].label | string | Child select option label                 |
| data.fields\[].options\[].child\[].options\[].child\_options\[].value | string | Child select option value                 |

### Create direct top up order

```
POST /v1/recharge-orders
```

**Parameters:**

| Parameter      | Value                                                            | Mandatory |
| -------------- | ---------------------------------------------------------------- | --------- |
| uid            | 10000                                                            | Yes       |
| timestamp      | 1000000000                                                       | Yes       |
| signature      | df577f1a153cfcc24791a1de8487f68e3ee3864c5abf19f10ee6e06f4be83246 | Yes       |
| type\_id       | 2987                                                             | Yes       |
| buy\_amount    | 1(The default is 1)                                              | No        |
| mch\_order\_id | D2022031106 (The merchant's order id)                            | No        |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 17401675,
        "trade_id": 15440860,
        "title": "多玩游戏平台直充<span/>多玩游戏平台_90Y币_100元(直充)",
        "category_id": 634,
        "product_id": 2987,
        "type_id": 2987,
        "created": 1614677031,
        "created_time": 1614677031,
        "currency": "MYR",
        "unit_price": "60.28",
        "buy_amount": 1,
        "pay_amount": "60.28",
        "pay_amount_credits": 6028,
        "refunded_amount": "0.00",
        "send_amount": "0.000",
        "paid_time": 1614677031,
        "sent_time": 0,
        "pay_status_code": 2,
        "pay_status": "Paid",
        "send_status_code": 1,
        "send_status": "Wait send",
        "status": "Wait send",
        "status_code": 10001,
        "mch_order_id": "D2022031106",
        "fields": {
            "charge_account": "dd"
        }
    },
    "msg": "OK"
}
```

| Field                     | Type   | Description              |
| ------------------------- | ------ | ------------------------ |
| data.id                   | int    | Order ID                 |
| data.trade\_id            | int    | Payment ID               |
| data.title                | string | Order title              |
| data.category\_id         | int    | Category ID              |
| data.product\_id          | int    | Type ID                  |
| data.created              | int    | Order created timestamp  |
| data.currency             | String | Currency                 |
| data.unit\_price          | float  | Unit price               |
| data.buy\_amount          | int    | Buy amount               |
| data.pay\_amount          | float  | Total payment            |
| data.pay\_amount\_credits | float  | Total payment credits    |
| data.pay\_status\_code    | int    | Status for payment       |
| data.refunded\_amount     | float  | Amount refunded          |
| data.send\_status\_code   | int    | Status for delivery      |
| data.pay\_status          | string | Status text for payment  |
| data.sent\_amount         | float  | Quantity delivered       |
| data.send\_status         | string | Status text for delivery |
| data.status               | string | Global status text       |
| data.status\_code         | int    | status for order         |
| data.mch\_order\_id       | string | Merchant's order id      |
| data.paid\_time           | int    | Paid (timestamp)         |
| data.sent\_time           | int    | Delivered (timestamp)    |
| data.fields\[].title      | string | Title of custom field    |
| data.fields\[].name       | string | Name of custom field     |
| data.fields\[].value      | string | Value of custom field    |

### Get direct top up order list

```
GET /v1/recharge-orders
```

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 10000                                                            | Yes       |
| timestamp | 10000000000                                                      | Yes       |
| signature | b9c28c897d52695a38d096b1db7d4062a37490c64c020ec48c5a120cf786d34f | Yes       |
| offset    | 0                                                                | No        |
| limit     | 12                                                               | No        |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "total": 109,
        "begin": 0,
        "end": 2,
        "orders": [
            {
                "id": 17401675,
                "trade_id": 15440860,
                "title": "多玩游戏平台直充<span/>多玩游戏平台_90Y币_100元(直充)",
                "category_id": 634,
                "product_id": 2987,
                "type_id": 2987,
                "created": 1614677031,
                "created_time": 1614677031,
                "currency": "MYR",
                "unit_price": "60.28",
                "buy_amount": 1,
                "pay_amount": "60.28",
                "pay_amount_credits": 6028,
                "refunded_amount": "0.00",
                "send_amount": "0.000",
                "paid_time": 1614677031,
                "sent_time": 0,
                "pay_status_code": 2,
                "pay_status": "Paid",
                "send_status_code": 1,
                "send_status": "Wait send",
                "status": "Wait send",
                "status_code": 10001,
                "mch_order_id": "D2022031106",
                "fields": {
                    "charge_account": "dd"
                }
            },
            {
                "id": 17401674,
                "trade_id": 15440859,
                "title": "多玩游戏平台直充<span/>多玩游戏平台_90Y币_100元(直充)",
                "category_id": 634,
                "product_id": 2987,
                "type_id": 2987,
                "created": 1614676998,
                "created_time": 1614676998,
                "currency": "MYR",
                "unit_price": "60.28",
                "buy_amount": 1,
                "pay_amount": "60.28",
                "pay_amount_credits": 6028,
                "refunded_amount": "0.00",
                "send_amount": "0.000",
                "paid_time": 1614676998,
                "sent_time": 0,
                "pay_status_code": 2,
                "pay_status": "Paid",
                "send_status_code": 1,
                "send_status": "Wait send",
                "status": "Wait send",
                "status_code": 10001,
                "mch_order_id": "D2022031106",
                "fields": {
                    "charge_account": "dd"
                }
            }
        ]
    },
    "msg": "OK"
}
```

| Field                               | Type   | Description                                        |
| ----------------------------------- | ------ | -------------------------------------------------- |
| data.total                          | int    | Total records                                      |
| data.begin                          | Int    | Return the start index of the order list this time |
| data.end                            | int    | Return the end index of the order list this time   |
| data.orders\[]                      | array  | Orders data                                        |
| data.orders\[].id                   | int    | Order ID                                           |
| data.orders\[].trade\_id            | int    | Payment ID                                         |
| data.orders\[].title                | string | Order title                                        |
| data.orders\[].category\_id         | int    | Card category\_id                                  |
| data.orders\[].product\_id          | int    | Card category type id                              |
| data.orders\[].created              | int    | Order created timestamp                            |
| data.orders\[].currency             | String | Currency for unit price                            |
| data.orders\[].unit\_price          | float  | Unit price                                         |
| data.orders\[].buy\_amount          | int    | Purchase quantity                                  |
| data.orders\[].pay\_amount          | float  | Total payment                                      |
| data.orders\[].pay\_amount\_credits | float  | Total payment credits                              |
| data.orders\[].pay\_status\_code    | int    | Status for Payment                                 |
| data.orders\[].refunded\_amount     | float  | Amount Refunded                                    |
| data.orders\[].send\_status\_code   | int    | Status for Delivery                                |
| data.orders\[].pay\_status          | string | Status text for Payment                            |
| data.orders\[].sent\_amount         | float  | Quantity delivered                                 |
| data.orders\[].send\_status         | string | Status text for delivery                           |
| data.orders\[].status               | string | Global status text                                 |
| data.orders\[].status\_code         | int    | status for order                                   |
| data.orders\[].mch\_order\_id       | string | Merchant's order id                                |
| data.orders\[].paid\_time           | int    | Paid (timestamp)                                   |
| data.orders\[].sent\_time           | int    | Delivered (timestamp)                              |
| data.orders\[].fields\[].title      | string | Title of custom field                              |
| data.orders\[].fields\[].name       | string | Name of custom field                               |
| data.orders\[].fields\[].value      | string | Value of custom field                              |

### Get direct top up order details

```
GET /v1/recharge-orders/:order_id
```

**Attributes:**

| Attribute | Value |
| --------- | ----- |
| order\_id | 10026 |

**Parameters:**

| Parameter   | Value                                                                                                                                        | Mandatory |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| uid         | 10000                                                                                                                                        | Yes       |
| timesteamp  | 1000000000                                                                                                                                   | Yes       |
| signature   | ec9058d2352247ea7a03c48e7ffdb87877c5832dfc4a9578a5edd715d7215741                                                                             | Yes       |
| query\_type | orderId (The default is orderId. The default query by seagm order id. This value is mchOrderId when you need to query by merchant order id.) | No        |

**Response:**

```javascript
{
    "code": 200,
    "data": {
        "id": 17401675,
        "trade_id": 15440860,
        "title": "多玩游戏平台直充<span/>多玩游戏平台_90Y币_100元(直充)",
        "category_id": 634,
        "product_id": 2987,
        "type_id": 2987,
        "created": 1614677031,
        "created_time": 1614677031,
        "currency": "MYR",
        "unit_price": "60.28",
        "buy_amount": 1,
        "pay_amount": "60.28",
        "pay_amount_credits": 6028,
        "refunded_amount": "0.00",
        "send_amount": "0.000",
        "paid_time": 1614677031,
        "sent_time": 0,
        "pay_status_code": 2,
        "pay_status": "Paid",
        "send_status_code": 1,
        "send_status": "Wait send",
        "status": "Wait send",
        "status_code": 10001,
        "mch_order_id": "D2022031106",
        "fields": {
            "charge_account": "dd"
        }
    },
    "msg": "OK"
}
```

| Field                     | Type   | Description              |
| ------------------------- | ------ | ------------------------ |
| data.id                   | int    | Order ID                 |
| data.trade\_id            | int    | Payment ID               |
| data.title                | string | Order title              |
| data.category\_id         | int    | Category\_id             |
| data.type\_id             | int    | Type id                  |
| data.created              | int    | Order created timestamp  |
| data.currency             | String | Currency for unit price  |
| data.unit\_price          | float  | Unit price               |
| data.buy\_amount          | int    | Purchase quantity        |
| data.pay\_amount          | float  | Total payment            |
| data.pay\_amount\_credits | float  | Total payment credits    |
| data.pay\_status\_code    | int    | Status for Payment       |
| data.refunded\_amount     | float  | Amount Refunded          |
| data.send\_status\_code   | int    | Status for Delivery      |
| data.pay\_status          | string | Status text for Payment  |
| data.sent\_amount         | float  | Quantity delivered       |
| data.send\_status         | string | Status text for delivery |
| data.status               | string | Global status text       |
| data.status\_code         | int    | status for order         |
| data.mch\_order\_id       | string | Merchant's order id      |
| data.paid\_time           | int    | Paid (timestamp)         |
| data.sent\_time           | int    | Delivered (timestamp)    |
| data.fields\[].title      | string | Title of custom field    |
| data.fields\[].name       | string | Name of custom field     |
| data.fields\[].value      | string | Value of custom field    |

### Get mobile recharge country list

```
GET /v1/mobile-recharge/countries
```

Get a list of countries available for mobile recharge

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 1000                                                             | Yes       |
| timestamp | 1614666821                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": [
        {
            "id": 12,
            "icon": "https://seagm-media.seagmcdn.com/mobile-recharge/region/flag-id.svg",
            "code": "id",
            "name": "Indonesia",
            "calling_code": "62"
        },
        {
            "id": 1,
            "icon": "https://seagm-media.seagmcdn.com/mobile-recharge/region/flag-my.svg",
            "code": "my",
            "name": "Malaysia",
            "calling_code": "60"
        },
    ]
}
```

| Field                 | Type   | Description          |
| --------------------- | ------ | -------------------- |
| data\[].id            | int    | Country id           |
| data\[].icon          | String | Country flag image   |
| data\[].code          | String | Country code         |
| data\[].name          | String | Country name         |
| data\[].calling\_code | String | Country calling code |

### Get mobile recharge country's operator list

```
GET /v1/mobile-recharge/operators
```

Get a list of mobile operators for a specific country for mobile recharge

**Parameters:**

| Parameter     | Value                                                            | Mandatory |
| ------------- | ---------------------------------------------------------------- | --------- |
| uid           | 10000                                                            | Yes       |
| timestamp     | 1000000000                                                       | Yes       |
| signature     | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| country\_code | my                                                               | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": [
        {
            "id": 248,
            "logo": "https://seagm-media.seagmcdn.com/mobile-recharge/operator/logo-Celcom-Malaysia.png",
            "name": "Celcom Malaysia",
            "code": "Celcom-Malaysia",
            "country_name": "Malaysia",
            "country_code": "my"
        },
        {
            "id": 249,
            "logo": "https://seagm-media.seagmcdn.com/mobile-recharge/operator/logo-DiGi-Malaysia.png",
            "name": "DiGi Malaysia",
            "code": "DiGi-Malaysia",
            "country_name": "Malaysia",
            "country_code": "my"
        },
        {
            "id": 252,
            "logo": "https://seagm-media.seagmcdn.com/mobile-recharge/operator/logo-UMobile-Malaysia.png",
            "name": "UMobile Malaysia",
            "code": "UMobile-Malaysia",
            "country_name": "Malaysia",
            "country_code": "my"
        }
    ]
}
```

| Field              | Type   | Description           |
| ------------------ | ------ | --------------------- |
| data.id            | int    | Operator id           |
| data.logo          | string | Operator logo image   |
| data.name          | String | Operator name         |
| data.code          | String | Operator code         |
| data.country\_name | string | Operator country name |
| data.country\_code | String | Operator country code |

### Get mobile recharge operator's product list

```
GET /v1/mobile-recharge/products
```

Get a list of mobile recharge products for a specific operator

**Parameters:**

| Parameter    | Value                                                            | Mandatory |
| ------------ | ---------------------------------------------------------------- | --------- |
| uid          | 10000                                                            | Yes       |
| timestamp    | 1000000000                                                       | Yes       |
| signature    | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| operator\_id | 196                                                              | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": {
        "airtime": [
            {
                "product_id": 4525,
                "product_name": "50000 IDR Credits",
                "product_type": "airtime",
                "product_desc": "50000 IDR",
                "currency": "MYR",
                "origin_price": 24.16,
                "discount_rate": 2,
                "unit_price": 23.68,
                "validity": "45 Days",
                "local_tax": "0",
                "local_received": "50000 IDR Credits"
            },
            {
                "product_id": 10826,
                "product_name": "100000 IDR Credits",
                "product_type": "airtime",
                "product_desc": "IDR 100000.00",
                "currency": "MYR",
                "origin_price": 34.94,
                "discount_rate": 2,
                "unit_price": 34.24,
                "validity": "",
                "local_tax": "0",
                "local_received": "100000 IDR Credits"
            }
        ],
        "data": [
            {
                "product_id": 4513,
                "product_name": "Xtra Hotrod Special XL, 7hr",
                "product_type": "data",
                "product_desc": "Main Quota 3.5GB + Area Quota up to 19.5GB + YouTube 24 hours 5.5GB. Active period 7 days. Automatic renewal does not apply.",
                "currency": "MYR",
                "origin_price": 13.98,
                "discount_rate": 2,
                "unit_price": 13.7,
                "validity": "7 Days",
                "local_tax": "0",
                "local_received": "Main Quota 3.5GB + Area Quota up to 19.5GB + YouTube 24 hours 5.5GB. Active period 7 days. Automatic renewal does not apply."
            },
            {
                "product_id": 4514,
                "product_name": "XL Indonesia Internet - HotRod 24hr 1.5GB, 30 Days",
                "product_type": "data",
                "product_desc": "1.5GB data, 30 days",
                "currency": "MYR",
                "origin_price": 22.67,
                "discount_rate": 2,
                "unit_price": 22.22,
                "validity": "30 Days",
                "local_tax": "0",
                "local_received": "1.5GB data, 30 days"
            }
        ],
        "bundle": [
            {
                "product_id": 4516,
                "product_name": "Xtra Combo 59000",
                "product_type": "bundle",
                "product_desc": "5GB data + 10GB YouTube + Free YouTube access (0100-0600 WIB), 20 minutes talktime to all operators, 30 days",
                "currency": "MYR",
                "origin_price": 26.51,
                "discount_rate": 2,
                "unit_price": 25.98,
                "validity": "30 Days",
                "local_tax": "0",
                "local_received": "5GB data + 10GB YouTube + Free YouTube access (0100-0600 WIB), 20 minutes talktime to all operators, 30 days"
            },
            {
                "product_id": 4517,
                "product_name": "Xtra Combo 89000",
                "product_type": "bundle",
                "product_desc": "10GB data + 10GB YouTube + Free YouTube access (0100-0600 WIB), 40 minutes talktime to all operators, 30 days",
                "currency": "MYR",
                "origin_price": 39.52,
                "discount_rate": 2,
                "unit_price": 38.73,
                "validity": "30 Days",
                "local_tax": "0",
                "local_received": "10GB data + 10GB YouTube + Free YouTube access (0100-0600 WIB), 40 minutes talktime to all operators, 30 days"
            }
        ]
    }
}
```

| Field                           | Type   | Description                 |
| ------------------------------- | ------ | --------------------------- |
| data.airtime\[]                 | array  | Airtime product information |
| data.airtime\[].product\_id     | int    | Product ID                  |
| data.airtime\[].product\_name   | String | Product name                |
| data.airtime\[].product\_type   | String | Product type                |
| data.airtime\[].product\_desc   | string | Product description         |
| data.airtime\[].currency        | String | Currency                    |
| data.airtime\[].origin\_price   | Float  | Origin price                |
| data.airtime\[].discount\_rate  | Float  | Discount rate               |
| data.airtime\[].unit\_price     | Float  | Unit price                  |
| data.airtime\[].validity        | string | Validity                    |
| data.airtime\[].local\_tax      | String | Tax                         |
| data.airtime\[].local\_received | String | Actual amount               |
| data.data\[]                    | array  | Data product information    |
| data.data\[].product\_id        | int    | Product ID                  |
| data.data\[].product\_name      | String | Product name                |
| data.data\[].product\_type      | String | Product type                |
| data.data\[].product\_desc      | string | Product description         |
| data.data\[].currency           | String | Currency                    |
| data.data\[].origin\_price      | Float  | Origin price                |
| data.data\[].discount\_rate     | Float  | Discount rate               |
| data.data\[].unit\_price        | Float  | Unit price                  |
| data.data\[].validity           | string | Validity                    |
| data.data\[].local\_tax         | String | Tax                         |
| data.data\[].local\_received    | String | Actual amount               |
| data.bundle\[]                  | array  | Bundle product information  |
| data.bundle\[].product\_id      | int    | Product ID                  |
| data.bundle\[].product\_name    | String | Product name                |
| data.bundle\[].product\_type    | String | Product type                |
| data.bundle\[].product\_desc    | string | Product description         |
| data.bundle\[].currency         | String | Currency                    |
| data.bundle\[].origin\_price    | Float  | Origin price                |
| data.bundle\[].discount\_rate   | Float  | Discount rate               |
| data.bundle\[].unit\_price      | Float  | Unit price                  |
| data.bundle\[].validity         | string | Validity                    |
| data.bundle\[].local\_tax       | String | Tax                         |
| data.bundle\[].local\_received  | String | Actual amount               |

### Verify mobile recharge

```
POST /v1/mobile-recharge/verify
```

Verify mobile recharge before proceed with order creation. You may skip this step if not required.

**Parameters:**

| Parameter     | Value                                                            | Mandatory |
| ------------- | ---------------------------------------------------------------- | --------- |
| uid           | 10000                                                            | Yes       |
| timestamp     | 1000000000                                                       | Yes       |
| signature     | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| calling\_code | 86                                                               | Yes       |
| phone\_number | 18701341079                                                      | Yes       |
| product\_id   | 1896                                                             | Yes       |

**Response:**

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": {
        "product_id": 1896,
        "calling_code": "86",
        "phone_number": "18701341079",
        "product": {
            "product_id": 1896,
            "product_name": "50 CNY Credits",
            "product_type": "airtime", 
            "product_desc": "50 CNY",
            "currency": "MYR",
            "origin_price": 55.99,
            "discount_rate": 0,
            "unit_price": 55.99,
            "validity": "",
            "local_tax": "0",
            "local_received": "50 CNY Credits"
        },
        "operator": {
            "id": 80,
            "logo": "https://seagm-media.seagmcdn.com/mobile-recharge/operator/logo-China-Mobile-China.png",
            "name": "China Mobile China",
            "code": "China-Mobile-China",
            "country_name": "China",
            "country_code": "cn"
        }
    }
}
```

| Field                           | Type   | Description           |
| ------------------------------- | ------ | --------------------- |
| data.product\_id                | int    | Product ID            |
| data.calling\_code              | string | Calling code          |
| data.phone\_number              | string | Phone number          |
| data.product\[]                 | array  | Product data          |
| data.product\[].product\_id     | int    | Product ID            |
| data.product\[].product\_name   | string | Product name          |
| data.product\[].product\_type   | string | Product type          |
| data.product\[].product\_desc   | string | Product description   |
| data.product\[].currency        | string | Currency              |
| data.product\[].origin\_price   | float  | Origin price          |
| data.product\[].discount\_rate  | float  | Discount rate         |
| data.product\[].unit\_price     | float  | Unit price            |
| data.product\[].validity        | string | Validity              |
| data.product\[].local\_tax      | string | Tax                   |
| data.product\[].local\_received | string | Actual amount         |
| data.operator\[]                | array  | Operator information  |
| data.operator\[].id             | int    | Operator ID           |
| data.operator\[].logo           | string | Operator logo         |
| data.operator\[].name           | string | Operator name         |
| data.operator\[].code           | string | Operator code         |
| data.operator\[].country\_name  | string | Operator country name |
| data.operator\[].country\_code  | string | Operator country code |

### Create mobile recharge order

```
POST /v1/mobile-recharge/create
```

Submit mobile recharge confirmation. Create order.

**Parameters:**

| Parameter      | Value                                                            | Mandatory |
| -------------- | ---------------------------------------------------------------- | --------- |
| uid            | 10000                                                            | Yes       |
| timestamp      | 1000000000                                                       | Yes       |
| signature      | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| calling\_code  | 86                                                               | Yes       |
| phone\_number  | 18701341079                                                      | Yes       |
| product\_id    | 1896                                                             | Yes       |
| mch\_order\_id | D2022031106 (The merchant's order id)                            | No        |

**Response:**

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": {
        "id": 12601370,
        "trade_id": 11073497,
        "title": "China Mobile China<span/>50 CNY Credits",
        "category_id": 80,
        "product_id": 1896,
        "type_id": 1896,
        "created": 1715417579,
        "created_time": 1715417579,
        "currency": "MYR",
        "unit_price": "55.99",
        "buy_amount": 1,
        "pay_amount": "55.99",
        "pay_amount_credits": 5599,
        "refunded_amount": "0.00",
        "send_amount": "0.000",
        "paid_time": 1715417580,
        "sent_time": 0,
        "pay_status_code": 2,
        "pay_status": "Paid",
        "send_status_code": 1,
        "send_status": "Wait send",
        "status": "Wait send",
        "status_code": 10001,
        "mch_order_id": "TEST111144",
        "fields": {
            "calling_code": "86",
            "phone_number": "18701341079",
            "validity": "",
            "local_tax": "0.00",
            "local_received": "50 CNY Credits"
        }
    }
}
```

| Field                          | Type   | Description                 |
| ------------------------------ | ------ | --------------------------- |
| data.id                        | int    | Order ID                    |
| data.trade\_id                 | int    | Payment ID                  |
| data.title                     | string | Order title                 |
| data.category\_id              | int    | Category\_id                |
| data.type\_id                  | int    | Type id                     |
| data.created                   | int    | Order created (timestamp)   |
| data.currency                  | String | Unit price currency         |
| data.unit\_price               | float  | Unit price                  |
| data.buy\_amount               | int    | Purchase quantity           |
| data.pay\_amount               | float  | Total payment               |
| data.pay\_amount\_credits      | float  | Total payment credits       |
| data.refunded\_amount          | float  | Amount refunded             |
| data.sent\_amount              | float  | Quantity delivered          |
| data.paid\_time                | int    | Paid (timestamp)            |
| data.sent\_time                | int    | Delivered (timestamp)       |
| data.pay\_status\_code         | int    | Payment status              |
| data.pay\_status               | string | Payment status description  |
| data.send\_status\_code        | int    | Delivery status             |
| data.send\_status              | string | Delivery status description |
| data.status                    | string | Global status               |
| data.status\_code              | int    | Order status                |
| data.mch\_order\_id            | string | Merchant's order id         |
| data.fields\[]                 | array  | Recharge information        |
| data.fields\[].calling\_code   | string | Calling code                |
| data.fields\[].phone\_number   | string | Phone number                |
| data.fields\[].validity        | string | Validity                    |
| data.fields\[].local\_tax      | string | Tax                         |
| data.fields\[].local\_received | string | Actual amount               |

### Get mobile recharge order list

```
GET /v1/mobile-recharge/orders
```

Get mobile phone recharge order list

**Parameters:**

| Parameter | Value                                                            | Mandatory |
| --------- | ---------------------------------------------------------------- | --------- |
| uid       | 10000                                                            | Yes       |
| timestamp | 1000000000                                                       | Yes       |
| signature | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914 | Yes       |
| offset    | 0                                                                | No        |
| limit     | 12                                                               | No        |

**Response:**

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": {
        "total": 11,
        "begin": 0,
        "end": 11,
        "orders": [
            {
                "id": 12600958,
                "trade_id": 11073085,
                "title": "China Mobile China<span/>50 CNY Credits",
                "category_id": 80,
                "product_id": 1896,
                "type_id": 1896,
                "created": 1712045848,
                "created_time": 1712045848,
                "currency": "MYR",
                "unit_price": "55.99",
                "buy_amount": 1,
                "pay_amount": "55.99",
                "pay_amount_credits": 5599,
                "refunded_amount": "0.00",
                "send_amount": "0.000",
                "paid_time": 1712045848,
                "sent_time": 0,
                "pay_status_code": 2,
                "pay_status": "Paid",
                "send_status_code": 1,
                "send_status": "Wait send",
                "status": "Wait send",
                "status_code": 10001,
                "mch_order_id": "TEST111116",
                "fields": {
                    "calling_code": "86",
                    "phone_number": "18701341079",
                    "validity": "",
                    "local_tax": "0.00",
                    "local_received": ""
                }
            },
            {
                "id": 12598570,
                "trade_id": 11070703,
                "title": "Telkomsel Indonesia<span/>50000 IDR Credits",
                "category_id": 199,
                "product_id": 4579,
                "type_id": 4579,
                "created": 1706007177,
                "created_time": 1706007177,
                "currency": "SGD",
                "unit_price": "7.23",
                "buy_amount": 1,
                "pay_amount": "7.23",
                "pay_amount_credits": 2480,
                "refunded_amount": "0.00",
                "send_amount": "0.000",
                "paid_time": 1706007178,
                "sent_time": 0,
                "pay_status_code": 2,
                "pay_status": "Paid",
                "send_status_code": 1,
                "send_status": "Wait send",
                "status": "Wait send",
                "status_code": 10001,
                "mch_order_id": "",
                "fields": {
                    "calling_code": "62",
                    "phone_number": "821389857",
                    "validity": "",
                    "local_tax": "0.00",
                    "local_received": ""
                }
            }
        ]
    }
}
```

| Field                                    | Type   | Description                                              |
| ---------------------------------------- | ------ | -------------------------------------------------------- |
| data.total                               | int    | Total records                                            |
| data.begin                               | Int    | Return record start index this time, index starts from 0 |
| data.end                                 | int    | Return record end index this time                        |
| data.orders\[]                           | array  | Orders information                                       |
| data.orders\[].id                        | int    | Order ID                                                 |
| data.orders\[].trade\_id                 | int    | Payment ID                                               |
| data.orders\[].title                     | string | Order title                                              |
| data.orders\[].category\_id              | int    | Category\_id                                             |
| data.orders\[].type\_id                  | int    | Type id                                                  |
| data.orders\[].created                   | int    | Order created (timestamp)                                |
| data.orders\[].currency                  | String | Unit price currency                                      |
| data.orders\[].unit\_price               | float  | Unit price                                               |
| data.orders\[].buy\_amount               | int    | Purchase quantity                                        |
| data.orders\[].pay\_amount               | float  | Total payment                                            |
| data.orders\[].pay\_amount\_credits      | float  | Total payment credits                                    |
| data.orders\[].refunded\_amount          | float  | Amount refunded                                          |
| data.orders\[].sent\_amount              | float  | Quantity delivered                                       |
| data.orders\[].paid\_time                | int    | Paid (timestamp)                                         |
| data.orders\[].sent\_time                | int    | Delivered (timestamp)                                    |
| data.orders\[].pay\_status\_code         | int    | Payment status                                           |
| data.orders\[].pay\_status               | string | Payment status description                               |
| data.orders\[].send\_status\_code        | int    | Delivery status                                          |
| data.orders\[].send\_status              | string | Delivery status description                              |
| data.orders\[].status                    | string | Global status                                            |
| data.orders\[].status\_code              | int    | Order status                                             |
| data.orders\[].mch\_order\_id            | string | Merchant's order id                                      |
| data.orders\[].fields\[]                 | array  | Recharge information                                     |
| data.orders\[].fields\[].calling\_code   | string | Calling code                                             |
| data.orders\[].fields\[].phone\_number   | string | Phone number                                             |
| data.orders\[].fields\[].validity        | string | Validity                                                 |
| data.orders\[].fields\[].local\_tax      | string | Tax                                                      |
| data.orders\[].fields\[].local\_received | string | Actual amount                                            |

### Get mobile recharge order details

```
GET /v1/mobile-recharge/order_info
```

Get mobile recharge order detail

**Parameters:**

| Parameter   | Value                                                                                                                                        | Mandatory |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------- | --------- |
| uid         | 10000                                                                                                                                        | Yes       |
| timestamp   | 1000000000                                                                                                                                   | Yes       |
| signature   | 8d4a4fe7f08b19616f73c1355da6816dac6f0da893d1e55cc2d7940c86fc0914                                                                             | Yes       |
| order\_id   | 12598570                                                                                                                                     | Yes       |
| query\_type | orderId (The default is orderId. The default query by seagm order id. This value is mchOrderId when you need to query by merchant order id.) | No        |

**Response:**

```javascript
{
    "code": 200,
    "msg": "OK",
    "data": {
        "id": 12601192,
        "trade_id": 11073319,
        "title": "China Mobile China<span/>50 CNY Credits",
        "category_id": 80,
        "product_id": 1896,
        "type_id": 1896,
        "created": 1712720420,
        "created_time": 1712720420,
        "currency": "MYR",
        "unit_price": "55.99",
        "buy_amount": 1,
        "pay_amount": "55.99",
        "pay_amount_credits": 5599,
        "refunded_amount": "0.00",
        "send_amount": "0.000",
        "paid_time": 1712720420,
        "sent_time": 0,
        "pay_status_code": 2,
        "pay_status": "Paid",
        "send_status_code": 1,
        "send_status": "Wait send",
        "status": "Wait send",
        "status_code": 10001,
        "mch_order_id": "TEST111132",
        "fields": {
            "calling_code": "86",
            "phone_number": "18701341079",
            "validity": "",
            "local_tax": "0.00",
            "local_received": ""
        }
    }
}
```

| Field                          | Type   | Description                 |
| ------------------------------ | ------ | --------------------------- |
| data.id                        | int    | Order ID                    |
| data.trade\_id                 | int    | Payment ID                  |
| data.title                     | string | Order title                 |
| data.category\_id              | int    | Category id                 |
| data.type\_id                  | int    | Type id                     |
| data.created                   | int    | Order created (timestamp)   |
| data.currency                  | String | Unit price currency         |
| data.unit\_price               | float  | Unit price                  |
| data.buy\_amount               | int    | Purchase quantity           |
| data.pay\_amount               | float  | Total payment               |
| data.pay\_amount\_credits      | float  | Total payment credits       |
| data.refunded\_amount          | float  | Amount refunded             |
| data.sent\_amount              | float  | Quantity delivered          |
| data.paid\_time                | int    | Paid (timestamp)            |
| data.sent\_time                | int    | Delivered (timestamp)       |
| data.pay\_status\_code         | int    | Payment status              |
| data.pay\_status               | string | Payment status description  |
| data.send\_status\_code        | int    | Delivery status             |
| data.send\_status              | string | Delivery status description |
| data.status                    | string | Global status               |
| data.status\_code              | int    | Status for order            |
| data.mch\_order\_id            | string | Merchant's order id         |
| data.fields\[]                 | array  | Recharge information        |
| data.fields\[].calling\_code   | string | Calling code                |
| data.fields\[].phone\_number   | string | Phone number                |
| data.fields\[].validity        | string | Validity                    |
| data.fields\[].local\_tax      | string | Tax                         |
| data.fields\[].local\_received | string | Actual amount               |

## Public API ENUM definitions

**Order status code:**

| status\_code | status         | Description                   |
| :----------: | -------------- | ----------------------------- |
|   **10000**  | **Unpaid**     | unpaid                        |
|   **10001**  | **Wait send**  | Paid and waiting to be sended |
|   **10002**  | **Sending...** | Sending...                    |
|   **10003**  | **Done**       | Order completed               |
|   **10004**  | **Refunded**   | Order has been refunded       |

**Order payment status code:**

| Field              | Type | Description                                                                                                  |
| ------------------ | ---- | ------------------------------------------------------------------------------------------------------------ |
| pay\_status\_code  | int  | <p>Payment status code:<br>1=>Unpaid;<br>2=>Paid;<br>3=>Refunded;<br>4=>Payment Requested;<br>5=>Expired</p> |
| send\_status\_code | int  | <p>Delivery status code:<br>1=>Wait send;<br>2=>Sending...;<br>3=>Done;<br>4=> Received</p>                  |
