To'rt oddiy qadamda — bir necha soniyada.
Voucher va promokod o'yinlari. Tez orada sotuvga chiqadi.
Sotib olish uchun mahsulotni tanlang
API kalit olish uchun admin bilan bog'laning.
Har bir so'rovga API kalitingizni qo'shing:
X-API-Key: your_api_key_here
Telegram username mavjudligi va formatini tekshiradi. API kaliti shart emas.
curl -X POST "https://gamepin.uz/v1/check-username/" \
-H "Content-Type: application/json" \
-d '{"username": "durov"}'| Parametr | Turi | Majburiy | Tavsif |
|---|---|---|---|
username | string | ✓ | Telegram username |
quantity | int | ✓ | Stars soni (50 - 10,000,000) |
type | string | ✓ | "stars" |
callback_url | string | Ixtiyoriy | Holat uchun webhook URL |
curl -X POST "https://gamepin.uz/v1/buy-order/" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"username":"@johndoe","quantity":1000,"type":"stars"}'| Parametr | Turi | Majburiy | Tavsif |
|---|---|---|---|
username | string | ✓ | Telegram username |
quantity | int | ✓ | Oylar (3, 6 yoki 12) |
type | string | ✓ | "premium" |
callback_url | string | ✓ | Webhook URL (Premium uchun majburiy) |
curl -X POST "https://gamepin.uz/v1/buy-order/" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"username": "@johndoe",
"quantity": 3,
"type": "premium",
"callback_url": "https://sizning-sayt.uz/webhook"
}'So'rov darhol pending holatda javob qaytaradi:
{
"success": true,
"order_id": "1b2c3d4e-...-uuid",
"status": "pending"
}Buyurtma bajarilgach (yoki xato bo'lsa), tizim siz bergan callback_url manziliga avtomatik POST yuboradi. Bu zanjirning eng oxirgi qadami — pirovard natija shu yerda keladi.
{
"order_id": "1b2c3d4e-...-uuid",
"status": "success", // yoki "cancelled"
"username": "johndoe",
"quantity": 3,
"order_type": "premium",
"ledger_id": "tx_abc123", // tranzaksiya ID (muvaffaqiyatda)
"amount": "12.5",
"error_message": null, // xato bo'lsa — sababi
"created_at": "2026-06-21T10:00:00",
"completed_at": "2026-06-21T10:00:08",
"timestamp": "2026-06-21T10:00:08.123456"
}Content-Type: application/json User-Agent: Telegram-Stars-Bot/3.0.0
@app.post("/webhook")
async def webhook(request: Request):
data = await request.json()
if data["status"] == "success":
# buyurtmani yakunlangan deb belgilang
notify_user(data["username"], data["ledger_id"])
else:
# status == "cancelled" → error_message ni tekshiring
log_error(data["error_message"])
return {"received": True} # 200 qaytaringTo'liq oqim: o'yinlar → mahsulotlar → o'yinchini tekshirish → buyurtma → natija (webhook). To'lov API kalit egasining balansidan olinadi.
Har bir API kalit bitta foydalanuvchiga bog'langan. Buyurtma berilganda narx (UZS) shu kalit egasining balansidan yechiladi. Balans yetarli bo'lmasa — 400 xato. Buyurtma bajarilmasa (rad etilsa) — balans avtomatik qaytariladi.
Buyurtma darhol tugamaydi: avval processing holatida qaytadi, natija (bajarildi/bekor) keyinroq callback_url (webhook) orqali keladi yoki status endpointidan tekshiriladi.
| # | Qadam | Endpoint |
|---|---|---|
| 1 | O'yinlar ro'yxati | GET /v1/topup/games/ |
| 2 | O'yin mahsulotlari | GET /v1/topup/games/{id}/products/ |
| 3 | O'yinchini tekshirish | POST /v1/topup/check-player/ |
| 4 | Buyurtma berish | POST /v1/topup/order/ |
| 5 | Buyurtma holati | GET /v1/topup/order/{id}/ |
Sotuvga tayyor to'ldirish o'yinlarini qaytaradi. needs_server_id — bu o'yin uchun server ID kerakligini bildiradi. Har bir o'yinning id sini keyingi qadamda ishlating.
curl "https://gamepin.uz/v1/topup/games/" \ -H "X-API-Key: your_api_key_here"
{
"success": true,
"games": [
{ "id": 1, "name": "Mobile Legends", "needs_server_id": true, "needs_charname": false, "maintenance": false },
{ "id": 6, "name": "Mobile Legends Adventure", "needs_server_id": false, "needs_charname": false, "maintenance": false }
]
}Tanlangan o'yinning mahsulotlari va narxlarini (UZS) qaytaradi. Sotib olish uchun product_id ni oling. Narxlar arzonidan boshlab tartiblangan.
curl "https://gamepin.uz/v1/topup/games/1/products/" \ -H "X-API-Key: your_api_key_here"
{
"success": true,
"game": "Mobile Legends",
"needs_server_id": true,
"needs_charname": false,
"products": [
{ "id": 101, "name": "55", "price": 12400 },
{ "id": 102, "name": "165", "price": 36900 }
]
}Buyurtmadan oldin user_id (va kerak bo'lsa server_id) haqiqiy akkauntga tegishliligini tekshiradi va o'yinchining ismini qaytaradi — buyuruvchi qabul qiluvchini tasdiqlashi uchun. Server ID kerak bo'lgan o'yinlarda u majburiy.
| Parametr | Turi | Majburiy | Tavsif |
|---|---|---|---|
game_id | int | ✓ | O'yin id (1-qadamdan) |
user_id | string | ✓ | O'yinchining o'yin ichidagi ID si |
server_id | string | shartli | Server ID — agar o'yin talab qilsa (needs_server_id=true) |
charname | string | shartli | Akkaunt/belgi nomi — agar o'yin talab qilsa |
curl -X POST "https://gamepin.uz/v1/topup/check-player/" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"game_id": 1, "user_id": "123456789", "server_id": "2001"}'{
"success": true,
"valid": true,
"name": "John Doe" // o'yinchining ismi
}O'yinchi topilmasa — 404, {"success": false, "valid": false}.
Balansdan to'lov olinadi va buyurtma yaratiladi. Javob processing bo'lib qaytadi. Yakuniy natija (bajarildi/bekor) sizning callback_url ingizga POST qilinadi va status endpointidan ham ko'rinadi. Xatolik bo'lsa balans avtomatik qaytariladi.
| Parametr | Turi | Majburiy | Tavsif |
|---|---|---|---|
product_id | int | ✓ | Mahsulot id (2-qadamdan) |
user_id | string | ✓ | O'yinchining ID si (3-qadamda tekshirilgan) |
server_id | string | shartli | Server ID — o'yin talab qilsa |
charname | string | shartli | Akkaunt nomi — o'yin talab qilsa |
callback_url | string | — | Natija yuboriladigan webhook (ixtiyoriy) |
curl -X POST "https://gamepin.uz/v1/topup/order/" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"product_id": 101,
"user_id": "123456789",
"server_id": "2001",
"callback_url": "https://sizning-sayt.uz/webhook"
}'Javob — buyurtma qabul qilindi (jarayonda):
{
"success": true,
"message": "Order accepted, processing",
"order_id": "1b2c3d4e-...-uuid",
"total": 12400,
"status": "processing"
}Xatolik (balans yetmasa / sotuvda yo'q / rad etilsa) — 4xx/502 va balans qaytariladi.
Buyurtma holatini tekshiradi: processing (jarayonda), success (bajarildi), cancelled (bekor — balans qaytarilgan).
curl "https://gamepin.uz/v1/topup/order/1b2c3d4e-...-uuid/" \ -H "X-API-Key: your_api_key_here"
{
"success": true,
"order_id": "1b2c3d4e-...-uuid",
"status": "success",
"player_id": "123456789",
"player_name": "John Doe",
"total": 12400,
"error": null
}Buyurtmada callback_url bersangiz, buyurtma yakuniy holatga (success yoki cancelled) yetganda biz o'sha manzilga POST yuboramiz. Pollingsiz — natija o'zi keladi. 2xx bilan javob bering.
{
"order_id": "1b2c3d4e-...-uuid",
"game": "Mobile Legends",
"product": "55",
"player_id": "123456789",
"server_id": "2001",
"player_name": "John Doe",
"status": "success", // yoki "cancelled"
"total": 12400,
"error": null
}Promokod o'yinlari uchun: raqamli kodlar sotib olinadi. Balansdan to'lov olinadi, kodlar delivery_items da darhol qaytadi.
curl -X POST "https://gamepin.uz/v1/simple/buy/" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{"product_id": 12, "quantity": 2}'{
"success": true,
"order_id": "1b2c3d4e-...-uuid",
"total": 24400,
"quantity": 2,
"status": "success",
"delivery_items": ["CODE-AAAA-1111", "CODE-BBBB-2222"]
}X-API-Key sarlavhasida yuboring.