Sell every product and package from Your Game Store on your own website. Your site calls our API, we deliver the top-up, and the cost is taken from your wallet at your reseller price.
Monthly plan: up to 500 calls per day (admin can change it per account), and a fee of ₹1 per order (refunded if the order fails). When the plan ends the API stops working until you renew or the admin activates it again.
Base URL: https://www.krtachouofficial.shop/api/v1 (HTTPS only). Send your key in a header on every request:
Authorization: Bearer YOUR_API_KEY
(X-API-Key: YOUR_API_KEY also works.) Keep the key on your server — never put it in website JavaScript or an app. If a key leaks, delete it in your dashboard and create a new one.
Responses are JSON: {"success":true,"data":…} or {"success":false,"error":{"code":"…","message":"…"}}. Every response carries X-RateLimit-Limit and X-RateLimit-Remaining (your daily calls; every authenticated call counts).
processing being delivered · pending manual delivery in progress · completed delivered · failed rejected — price and fee are refunded to your wallet automatically · cancelled cancelled by admin and refunded. Poll GET /orders/{order_id} until the status is final.
/meAccount & plan — Your plan, wallet balance, today's usage and fee per order.
{"success":true,"data":{"name":"Shop","balance":1250.5,"currency":"INR","plan":"monthly","status":"active","plan_expires_at":"2026-11-12 10:00:00","days_left":29,"daily_limit":500,"calls_today":12,"fee_per_order":1}}
/balanceWallet balance — Current wallet balance (orders are paid from it).
{"success":true,"data":{"balance":1250.5,"currency":"INR"}}
/productsList products — All products that have at least one available package.
{"success":true,"count":1,"data":[{"id":3,"name":"Mobile Legends","publisher":"MONTOON","category":"MLBB","image":"https://…/uploads/img.png","delivery_type":"uid_zone","fields":{"player_id":{"label":"User ID","required":true},"server_id":{"label":"Zone ID","required":true,"used":true}},"can_verify":true,"packages_count":12}]}
/products/{id}Product + packages — One product with all its packages and your reseller prices.
{"success":true,"data":{"id":3,"name":"Mobile Legends","packages":[{"id":41,"name":"86 Diamonds","price":68.5,"image":null,"auto_delivery":true}]}}
/verifyVerify a player — Checks that the account exists and returns the in-game name. Optional but recommended — orders are verified automatically too.
{"product_id":3,"package_id":41,"player_id":"123456789","server_id":"2345"} {"success":true,"data":{"verified":true,"can_verify":true,"player_name":"ProGamer","region":"IN"}}
/ordersCreate an order — Buys a package. The price + fee is taken from your wallet. Send a unique client_ref (your own order number): sending the same one again never creates a second order.
{"product_id":3,"package_id":41,"player_id":"123456789","server_id":"2345","client_ref":"SHOP-10042"} {"success":true,"duplicate":false,"data":{"order_id":9871,"reference":"JG9871AB12CD","client_ref":"SHOP-10042","status":"completed","refunded":false,"product":"Mobile Legends","package":"86 Diamonds","player_name":"ProGamer","price":68.5,"fee":1,"total_charged":69.5,"created_at":"2026-10-13 10:15:00"},"balance":1181}
/orders/{order_id}Order status — Check one order. You can also use GET /orders?client_ref=SHOP-10042.
{"success":true,"data":{"order_id":9871,"status":"completed", "…":"…"}}
/ordersList orders — Your API orders, newest first. Query: page, limit (max 100), status, client_ref.
{"success":true,"page":1,"per_page":25,"total":240,"data":[{"order_id":9871,"status":"completed","…":"…"}]}
curl -X POST https://www.krtachouofficial.shop/api/v1/orders \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id":3,"package_id":41,"player_id":"123456789","server_id":"2345","client_ref":"SHOP-10042"}'
$ch = curl_init('https://www.krtachouofficial.shop/api/v1/orders');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . $apiKey, 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['product_id'=>3,'package_id'=>41,'player_id'=>'123456789','server_id'=>'2345','client_ref'=>'SHOP-10042']),
]);
$res = json_decode(curl_exec($ch), true);
const res = await fetch('https://www.krtachouofficial.shop/api/v1/orders', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.JOU_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ product_id: 3, package_id: 41, player_id: '123456789', server_id: '2345', client_ref: 'SHOP-10042' })
}).then(r => r.json());
| HTTP | Code | Meaning |
|---|---|---|
| 401 | MISSING_API_KEY / INVALID_API_KEY | No key sent, or the key is wrong / deleted / disabled. |
| 403 | PLAN_EXPIRED | Monthly plan ended. API is paused until you renew or the admin activates it. |
| 403 | ACCOUNT_NOT_ACTIVE | No plan activated yet (or request still pending). |
| 403 | ACCOUNT_DEACTIVATED | The admin switched your API access off. |
| 402 | INSUFFICIENT_BALANCE | Wallet too low for price + fee. Top up your wallet. |
| 404 | PRODUCT_NOT_FOUND / PACKAGE_NOT_FOUND / ORDER_NOT_FOUND | The ID does not exist. |
| 422 | INVALID_REQUEST / INVALID_PLAYER / PLAYER_NOT_FOUND | Missing field, bad ID format, or the player account does not exist. |
| 429 | DAILY_LIMIT_REACHED | Your daily call limit is used up. Resets at midnight IST (see Retry-After). |
| 503 | VERIFY_UNAVAILABLE | Player check is temporarily down — retry shortly. No money was taken. |
client_ref. If your request times out, repeat it with the same client_ref — you will get the original order back instead of being charged twice.processing; check its status instead./products/{id} instead of hard-coding, and add your own margin on top.