Developer API Hub v5.0 • REST JSON Protocol

API Documentation & Integration Manual

Automate wallet balance checks, live product catalog synchronization, player nickname checks, Double Diamond promotion validation, and high-speed diamond order fulfillment programmatically.

Developer VIP Subscription Policy REQUIREMENT

API execution endpoints (such as programmatic balance requests and automated order creation) require an active VIP plan (Best, Pro, or Extreme). Public price catalog checks and storefront browsing remain free.

View VIP Plans

System Architecture & Overview

Version 5.0

The Kendy Gaming Reseller API provides external platforms, e-commerce storefronts, and automated bots with low-latency RESTful access to verify gaming player usernames, check real-time wallet balances, fetch discounted reseller pricing, validate Double Diamond bonus eligibility, and fulfill game recharge orders in sub-second speed.

Standard Reseller Integration Lifecycle
01. BALANCE

Query wallet balance before processing incoming requests.

02. PRODUCTS

Sync active catalog packages and specific reseller prices.

03. USERNAME

Validate in-game player nickname to prevent failed top-ups.

04. 2X DIAMOND

Check player Double Diamond tier eligibility.

05. ORDER

Submit order payload for instant automated delivery.

Instant Publisher Execution

Direct connection to Moonton publisher gateways ensures sub-second diamond delivery.

Key-Pair Authentication

Cryptographic public/private key verification ensures wallet balances are only debited by authorized systems.

Authentication & Credentials

Secure HMAC

Authentication is performed using your unique API Key pair. Pass both public_key and private_key in your JSON request body or URL parameters.

Field Type Required Description
public_key String Yes Your Reseller Public Key ID (identifies your reseller account).
private_key String Yes Your Reseller Private Secret Signature (verifies wallet debit permission).

Crucial Security Requirement

Never expose your private_key in client-side code, mobile applications, or public repositories. If your key is ever compromised, regenerate it immediately from your User Dashboard.

Base API Endpoint

HTTPS Production

All API requests must be transmitted securely over HTTPS. Standard request payload format is JSON (Content-Type: application/json).

Root https://kendyenterprises.in/api/

API Endpoints Reference

Complete technical specs for all 5 reseller functions.

5 Active Endpoints
POST GET Supported

1. Fetch Wallet Balance

/api/fatchbalance

Retrieves your live reseller wallet balance, account creation date, and status. Call this endpoint before submitting order batches to ensure sufficient credit is available.

Request Parameters Body (JSON) or Query Parameters
Field Type Required Description
public_key String Yes Your Reseller Public Key ID.
private_key String Yes Your Reseller Private Secret Signature.
Request Body (JSON)
{
  "public_key": "knd_pub_8a92f01c",
  "private_key": "knd_sec_99b34a17ef"
}
200 OK Response (JSON) Success
{
  "success": true,
  "balance": 5420.50,
  "created_at": "2026-01-15T10:30:00"
}
POST GET Supported

2. Fetch Products List

/api/products-list

Fetches all currently active recharge products, packages, categories, and custom reseller rates. If your account is an authorized reseller, the returned price automatically reflects your discounted tier rate.

Request Parameters Body (JSON) or Query Parameters
Field Type Required Description
public_key String Yes Your Reseller Public Key ID.
private_key String Yes Your Reseller Private Secret Signature.

Integration Note: Use the returned id integer (e.g. 1, 5) as the product_id value when calling the Create Order endpoint.

Request Body (JSON)
{
  "public_key": "knd_pub_8a92f01c",
  "private_key": "knd_sec_99b34a17ef"
}
200 OK Response (JSON) Success
{
  "success": true,
  "total_products": 24,
  "is_reseller": true,
  "products": [
    {
      "id": 1,
      "product_name": "MLBB 86 Diamonds",
      "category": "Mobile Legends",
      "price": 125.00,
      "status": "active"
    },
    {
      "id": 2,
      "product_name": "Weekly Diamond Pass",
      "category": "Mobile Legends",
      "price": 160.00,
      "status": "active"
    }
  ]
}
POST GET Supported

3. Check Player Username

/api/check-username Alias: /api/get_username

Verifies game player credentials and returns the registered in-game nickname (e.g. Mobile Legends player name) directly from publisher servers before placing top-ups. This prevents failed orders and ensures 100% correct delivery.

Request Parameters Body (JSON) or Query String
Field Type Required Description
userid String / Int Yes In-game player User ID (e.g. 12345678). Also accepts user_id or USERID.
zoneid String / Int Yes In-game Zone / Server ID (e.g. 1234). Also accepts zone_id, ZONEID, or server_id.
Request Body (JSON)
{
  "userid": "12345678",
  "zoneid": "1234"
}
GET query alternative: /api/check-username?userid=12345678&zoneid=1234
200 OK Response (JSON) Success
{
  "success": true,
  "ok": true,
  "username": "KendyResellerPro",
  "userid": "12345678",
  "zoneid": "1234"
}
POST GET Supported

4. Check Double Diamond Availability (MLBB)

/api/check-double-diamond Alias: /api/double-diamond-check

Verifies whether a Mobile Legends: Bang Bang player account is eligible for the promotional Double Diamond (2x) packages (50+50, 150+150, 250+250, 500+500). Returns individual tier status, player nickname, and regional eligibility.

Request Parameters Body (JSON) or Query String
Field Type Required Description
userid String / Int Yes Mobile Legends Player User ID (e.g. 12345678).
zoneid String / Int Yes Mobile Legends Server / Zone ID (e.g. 1234).
country String Optional Region code for promo server check. Defaults to "BR".
Request Body (JSON)
{
  "userid": "12345678",
  "zoneid": "1234"
}
GET query alternative: /api/check-double-diamond?userid=12345678&zoneid=1234
200 OK Response (JSON) Success
{
  "success": true,
  "user_id": "12345678",
  "zone_id": "1234",
  "username": "KendyResellerPro",
  "country": "BR",
  "double_diamond_available": true,
  "status_label": "AVAILABLE",
  "tiers": [
    {
      "name": "50 + 50 Diamonds",
      "amount": "50+50",
      "diamonds": 100,
      "available": true,
      "status": "Available"
    },
    {
      "name": "150 + 150 Diamonds",
      "amount": "150+150",
      "diamonds": 300,
      "available": true,
      "status": "Available"
    },
    {
      "name": "250 + 250 Diamonds",
      "amount": "250+250",
      "diamonds": 500,
      "available": true,
      "status": "Available"
    },
    {
      "name": "500 + 500 Diamonds",
      "amount": "500+500",
      "diamonds": 1000,
      "available": false,
      "status": "Not Available"
    }
  ],
  "checked_at": "2026-09-23 21:40:00"
}
POST GET Supported

5. Create Top-up Order

/api/create-order

Submits an automated top-up order. Deducts the product price from your wallet balance and triggers instantaneous execution through upstream game publisher APIs.

Request Parameters Body (JSON) or Form Encoded
Field Type Required Description
public_key String Yes Your Reseller Public Key ID.
private_key String Yes Your Reseller Private Secret Signature.
userid String / Int Yes Player In-Game User ID.
zoneid String / Int Yes Player In-Game Server / Zone ID (for games without Zone, pass 1 or same as userid).
product_id Integer Yes Internal Product ID from /api/products-list (e.g. 1).
payment_method String Optional Default is "wallet".
Request Body (JSON)
{
  "public_key": "knd_pub_8a92f01c",
  "private_key": "knd_sec_99b34a17ef",
  "userid": "12345678",
  "zoneid": "1234",
  "product_id": 1,
  "payment_method": "wallet"
}
200 OK Response (Instant Success) Success
{
  "success": true,
  "order_id": 98452,
  "status": "success",
  "balance_before": 2500.00,
  "balance_after": 2375.00,
  "message": "Order created successfully"
}
Status Variations
status: "success"

Automated API order was immediately confirmed and diamonds credited to player account.

status: "processing" / "pending"

Order accepted, wallet deducted, and routed to priority fulfillment queue.

Code Snippets & Integration Examples

Complete ready-to-run scripts in popular programming languages.

1. Balance & Products
# Fetch Wallet Balance
curl -X POST https://kendyenterprises.in/api/fatchbalance \
  -H "Content-Type: application/json" \
  -d '{"public_key": "YOUR_PUBLIC_KEY", "private_key": "YOUR_PRIVATE_KEY"}'

# Fetch Products List & Reseller Pricing
curl -X POST https://kendyenterprises.in/api/products-list \
  -H "Content-Type: application/json" \
  -d '{"public_key": "YOUR_PUBLIC_KEY", "private_key": "YOUR_PRIVATE_KEY"}'
2. Username Check, Double Diamond & Order
# Verify Player Username (MLBB)
curl -X POST https://kendyenterprises.in/api/check-username \
  -H "Content-Type: application/json" \
  -d '{"userid": "12345678", "zoneid": "1234"}'

# Check MLBB Double Diamond Availability
curl -X POST https://kendyenterprises.in/api/check-double-diamond \
  -H "Content-Type: application/json" \
  -d '{"userid": "12345678", "zoneid": "1234"}'

# Create Game Top-up Order
curl -X POST https://kendyenterprises.in/api/create-order \
  -H "Content-Type: application/json" \
  -d '{
    "public_key": "YOUR_PUBLIC_KEY",
    "private_key": "YOUR_PRIVATE_KEY",
    "userid": "12345678",
    "zoneid": "1234",
    "product_id": 1,
    "payment_method": "wallet"
  }'

Status & Error Codes Reference

RFC 7231

The API uses conventional HTTP response codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success, 4xx range indicate errors caused by invalid parameters or unauthorized keys, and 5xx range indicate upstream publisher or server issues.

Code Status Meaning & Resolution
200 OK SUCCESS Request completed successfully. Look for "success": true in payload.
400 Bad Request INVALID_PARAMS Missing required parameters (e.g. userid/zoneid) or insufficient wallet balance for order.
401 Unauthorized INVALID_KEYS The provided public_key or private_key does not match any registered reseller account.
404 Not Found NOT_FOUND The requested product ID does not exist or player username could not be found for given UID/Zone.
500 Server Error SERVER_ERROR Internal processing error or upstream publisher gateway timeout. Retry in a few seconds.

Interactive Live API Sandbox

Execute real-time API queries directly in your browser.

Live Console
Sign in to automatically load and view your Public Key & Private Key inside this live test sandbox.
Sign In Now
Live Response Output Idle
// Click "Execute Request" to test endpoint response in real-time...