v2026.10
OpenAPI 3.1.0

JCPlay Public API

JCPlay's SmileCoin-compatible Public API.

Request format

  • All operations use POST with application/x-www-form-urlencoded.
  • Send uid, email, api, time, and sign in the request body. sign is not an HTTP header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Every additional body parameter must be included in the signature. time must be within ±300 seconds of server time.

Create order

  • order_request_id is required in the signed body.
  • Reuse the same order_request_id when retrying a request.

Examples are included with each request body. Only documented Public API paths are included.

Server:https://bupati.org/smilecoin/api

Public API base URL

Client Libraries

Public API

​

Query the authenticated user's balance

​

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Body

required
application/json

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/querypoints
curl https://bupati.org/smilecoin/api/querypoints \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'uid=10001' \
  --data-urlencode 'email=merchant@example.com' \
  --data-urlencode 'api=demo-api-key' \
  --data-urlencode 'time=1793318400' \
  --data-urlencode 'sign=d0e1583edb0e774cd3fe406f4bbd00a2'
{
  "status": 200,
  "message": "success",
  "smile_points": "string"
}

List public product codes

​

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Body

required
application/json

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/product
curl https://bupati.org/smilecoin/api/product \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'uid=10001' \
  --data-urlencode 'email=merchant@example.com' \
  --data-urlencode 'api=demo-api-key' \
  --data-urlencode 'time=1793318400' \
  --data-urlencode 'sign=d0e1583edb0e774cd3fe406f4bbd00a2'
[
  "mobilelegends",
  "pubgmobilecoin"
]

List denominations for a public product

​

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Body

required
application/json

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

This request also includes product in the signed body.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/productlist
curl https://bupati.org/smilecoin/api/productlist \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'uid=10001' \
  --data-urlencode 'email=merchant@example.com' \
  --data-urlencode 'api=demo-api-key' \
  --data-urlencode 'time=1793318400' \
  --data-urlencode 'sign=d0e1583edb0e774cd3fe406f4bbd00a2' \
  --data-urlencode 'product=mobilelegends'
{
  "status": 200,
  "message": "success",
  "data": {
    "product": [
      {
        "id": "string",
        "spu": "string",
        "price": "string",
        "cost_price": "string",
        "discount": "string"
      }
    ]
  }
}

Get supplier server or zone data

​

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Body

required
application/json

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

This request also includes product in the signed body.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/getserver
curl https://bupati.org/smilecoin/api/getserver \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'uid=10001' \
  --data-urlencode 'email=merchant@example.com' \
  --data-urlencode 'api=demo-api-key' \
  --data-urlencode 'time=1793318400' \
  --data-urlencode 'sign=d0e1583edb0e774cd3fe406f4bbd00a2' \
  --data-urlencode 'product=mobilelegends'
{}

Verify a player account

​

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

Body

required
application/json

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

This request also includes product, productid, userid, and optional zoneid in the signed body.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/getrole
curl https://bupati.org/smilecoin/api/getrole \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'uid=10001' \
  --data-urlencode 'email=merchant@example.com' \
  --data-urlencode 'api=demo-api-key' \
  --data-urlencode 'time=1793318400' \
  --data-urlencode 'sign=d0e1583edb0e774cd3fe406f4bbd00a2' \
  --data-urlencode 'product=mobilelegends' \
  --data-urlencode 'productid=123456789' \
  --data-urlencode 'userid=player-42' \
  --data-urlencode 'zoneid=1'
{
  "status": 1,
  "username": "string",
  "message": null
}

Create an order

​

Create order

  • order_request_id is required in the signed body.
  • Include every body parameter in the signature.
  • Reuse the same order_request_id when retrying.
  • A different payload with the same ID returns 409.

qty defaults to 1; values above 1 are supported only for SmileCode products. The response price is the local charged total.

Body

required
application/json

Authentication

Send uid, email, api, time, and sign in the application/x-www-form-urlencoded body. sign is not a header.

Signature

  1. Exclude sign from the body parameters.
  2. Sort the remaining key=value pairs alphabetically.
  3. Append & and the API key.
  4. Calculate md5(md5(string_to_sign)).

Include every additional body parameter in the signature. time must be within ±300 seconds.

This request also includes product, productid, and order_request_id in the signed body.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/createorder
curl https://bupati.org/smilecoin/api/createorder \
  --request POST \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'uid=10001' \
  --data-urlencode 'email=merchant@example.com' \
  --data-urlencode 'api=demo-api-key' \
  --data-urlencode 'time=1793318400' \
  --data-urlencode 'product=smilecode' \
  --data-urlencode 'productid=100' \
  --data-urlencode 'qty=2' \
  --data-urlencode 'userid=player-42' \
  --data-urlencode 'sign=4fff3f91701112ba3516d12a95345b7f' \
  --data-urlencode 'order_request_id=order-2026-0001'
{
  "status": 1,
  "message": null,
  "order_id": null,
  "price": "string",
  "info": null,
  "codes": [
    "string"
  ],
  "provider_code": null
}