# 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>                  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.openapi.seagm.io/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
