⭐️ Stars💎 Premium🎮 Steam🕹 9 ta o'yin — PUBG · Mobile Legends · Free Fire · va boshqalar
Boshlanish nuqtasi
Base URL
Autentifikatsiya
X-API-Key: sj_...
27endpoint
USDTyagona balans
24/7avto yetkazish
Boshlash
Integratsiya
Tashqi tizimlar ushbu API orqali Telegram Stars, Premium, Steam hamyoni, o'yin akkauntlari va gift card kodlarini sotadi.
Mahsulot
Endpoint
Yetkazish
⭐️ Telegram Stars
POST /v1/stars
sinxron (javobda natija)
💎 Telegram Premium
POST /v1/premium
sinxron
🎮 Steam hamyoni
POST /v1/steam
asinxron bo'lishi mumkin (202 → polling)
🕹 O'yin akkaunti (24 ta o'yin)
POST /v1/games/{code}/order
asinxron (~1–2 daqiqa, 202 → polling)
🎁 Gift card kodi (16 brend)
POST /v1/giftcards/{category_id}/order
asinxron (~23 sekund, 202 → polling)
Hammasi bitta USDT balansdan yechiladi va javob shakli bir xil skeletda (success, order_id, status, usdt_charged, balance_remaining_usdt) — bitta parser hammasiga yetadi.
Gift card boshqalardan TUBDAN farq qiladi: mahsulot qabul qiluvchi hisobiga tushmaydi, u matn ko'rinishidagi kod sifatida qaytariladi va xaridor uni o'zi aktivlashtiradi. Kod FAQAT GET /v1/giftcards/orders/{order_id} javobida beriladi — buyurtmalar ro'yxatida u yo'q, chunki kod bearer instrument: kim ko'rsa, o'sha ishlatib yuboradi va qaytarib bo'lmaydi.
Sotuvdagi o'yinlar
Ro'yxat kodda qattiq yozilmasin — GET /v1/games dan oling, biz o'yin qo'shsak integratsiyangiz o'zgarishsiz ko'radi. Hozirgi holat:
O'yin
code
Valyuta
server_id
PUBG Mobile
pubgm
UC
—
Mobile Legends
mlbb_global
olmos
majburiy
Magic Chess Gogo
magic_chess_gogo
olmos
majburiy
Delta Force
deltaforce
Coins
—
Free Fire
freefire_global
olmos
—
Bigo Live
bigo
olmos
—
Honor of Kings
hok
token
—
Asphalt 9
asphalt9
token
majburiy — platforma
CoD Mobile
codm_sgmy
CP
—
Honkai: Star Rail
honkai_star_rail
Oneiric Shard
majburiy
Zenless Zone Zero
zenless
Monochrome
majburiy
Arena Breakout
arena_breakout
Bond
—
Arena Breakout: Infinite
arena_breakout_inf
Bond
—
Age of Empire Mobile
age_of_empire
Gem
majburiy
Ace Racer
ace_racer
Token
majburiy
Football Master 2
football_master2
FMP
—
Legend of Neverland
legend_neverland
paket
—
Modern Strike Online
modern_strike
Credit
—
Modern Warships
modern_warships
Gold
—
PUBG: New State
pubg_new_state
NC
—
Rainbow Six Mobile
r6_mobile
Platinum
—
IMO
imo
olmos
—
Likee
likee
olmos
—
CapCut
capcut
obuna
—
MINTAQA CHEKLOVI BU JADVALDA YO'Q — ATAYLAB. Uni GET /v1/games javobidagi notes maydonidan o'qing, chunki cheklov BIZ ISHLATAYOTGAN yetkazib beruvchiga qarab o'zgaradi va bu yerda qotirib qo'yilsa eskirib qoladi. O'lchangan misol: mlbb_global bir yetkazib beruvchida "faqat Indoneziya", boshqasida "barcha mintaqa". notes esa HAR DOIM amaldagi holatni ko'rsatadi.
Noto'g'ri mintaqadagi o'yinchiga yuborsangiz buyurtma failed bo'ladi — mablag' qaytadi, lekin xaridor kutib qoladi. Mintaqasi notes da ko'rsatilgan o'yinlarda buni xaridorga OLDIN aytib qo'ying.
Asphalt 9'da server_id — o'yin serveri emas, platforma. Qiymatlarni GET /v1/games javobidagi servers obyektidan oling (Android/Windows/iOS); "ios" kichik harf bilan yozilsa buyurtma yiqiladi.
Autentifikatsiya
🔑 Kalitni qayerdan olasiz —@StarsPaymee_Api_bot. Telegram'da botni oching va /start bosing: ro'yxatdan o'tasiz, kalit darhol beriladi, balansni to'ldirish yo'riqnomasi ham o'sha yerda. Kalit faqat bir marta ko'rsatiladi — bazada uning o'zi emas, SHA-256 xeshi saqlanadi. Ya'ni yo'qotsangiz biz ham tiklay olmaymiz, botdan yangisini olasiz (eskisi shu zahoti ishlamay qoladi).
Har bir so'rovda API kalit beriladi (ikki xil usul, biri yetarli):
X-API-Key: sj_...
yoki
Authorization: Bearer sj_...
Kalit — mijozning USDT hamyoni: balans yetarli bo'lsa yechiladi va yetkaziladi, aks holda 402. Fragment xatosida balans avtomatik qaytariladi (502).
Kalit turlari
Ikki xil kalit bor. Ular bir xil manzillar, bir xil so'rov va bir xil javob formatidan foydalanadi — quyidagi hamma narsa ikkalasiga ham tegishli, integratsiyada faqat kalitni almashtirasiz.
Tur
Mablag' manbai
402 qachon
standard (oddiy mijoz)
o'zining ichki USDT balansi
balans yetmasa
owner (tizim kaliti)
to'g'ridan-to'g'ri StarsPaymee hamyoni — balans limiti yo'q
hamyonda mablag' yetmasa (yoki admin qo'ygan kunlik/buyurtma chegarasidan oshsa)
owner kalitida GET /v1/balance ichki balansni emas, hamyonda xaridga sarflash mumkin bo'lgan summani qaytaradi (balance_usdt — o'sha maydon, o'sha number turi) va qo'shimcha unlimited: true beriladi.
Idempotency
Har buyurtmaga unikalidempotency_key bering — takroriy so'rov bir marta pul yechadi. Tarmoq uzilsa xavfsiz qayta yuborasiz.
Takror deb faqat aynan bir xil so'rov hisoblanadi: o'sha kalit + o'sha mahsulot, qabul qiluvchi va miqdor. Bitta API kalitini bir nechta botingiz ishlatsa va kalitlar tasodifan mos kelib qolsa (masalan, ikki bot ham order-<raqam> qilsa), boshqa qabul qiluvchi yoki miqdorli so'rov yangi alohida buyurtma sifatida bajariladi — boshqa botning eski buyurtmasi qaytarilmaydi. Javobdagi idempotency_key siz yuborgan qiymat bo'lib qoladi. Shunda ham har botga o'z prefiksini bergan ma'qul (bot2-order-123).
"Bir xil so'rov" maydonlari: Stars/Premium — username + stars/months; Steam — login + amount_usd; o'yin — o'yin + denomination + player_id + server_id; gift card — brend + card_id + quantity; sovg'a — recipient + gift_id + hide_name + message. Qayta yuborishda so'rov tanasini o'zgartirmang. ⚠️ Gift cardda qabul qiluvchi yo'q: bir kalitda ikki bot bir xil nominalni olsa, ular bir buyurtma deb hisoblanadi — gift card uchun har botga alohida prefiks shart.
30 soniyada integratsiya
Bu — oddiy REST + JSON API. PHP, Node.js, Python yoki istalgan til HTTP request orqali ulanadi.
0-qadam — kalit oling:@StarsPaymee_Api_bot → /start. Quyidagi misollardagi sj_... o'rniga o'sha kalitni qo'ying.
import requests
res = requests.post(
"https://api.starstg.uz/api/purchase/v1/stars",
headers={"X-API-Key": "sj_..."},
json={"username": "durov", "stars": 500, "idempotency_key": "order-12345"},
timeout=240, # yetkazish xato bergach blockchain tarixi tekshiriladi — kamdan-kam holatda uzoqroq davom etadi
)
print(res.status_code, res.json())
🎮 Steam to'ldirish — to'liq oqim
Steam login bo'yicha, USD nominalda ishlaydi. O'zbekiston uchun ham to'liq qo'llab-quvvatlanadi: Steam UZ akkauntlari USD hamyonda, shuning uchun valyuta konvertatsiyasi yo'q.
Boshqa mahsulotlardan yagona jiddiy farqi — yetkazish asinxron bo'lishi mumkin. Shuning uchun 202 javobini ham qayta ishlang:
Narx qanday hisoblanadi. Ustama nominalga emas, tannarxga (nominal + provayder komissiyasi) qo'llanadi:
202 xato emas.status: "processing" — buyurtma qabul qilingan. Terminal holat faqat completed yoki failed.
login — aynan login. Email yoki /profiles/765611... (SteamID) ishlamaydi. https://steamcommunity.com/id/<login> havolasi qabul qilinadi.
idempotency_key majburiy darajada tavsiya etiladi va u SIZNING barqaror invoice id'ingiz bo'lishi kerak. Tasodifiy qiymat bilan qayta yuborsangiz ikkinchi buyurtma yaratiladi va pul ikki marta ketadi.
Timeout — "yiqildi" degani emas. Javob kelmasa, refund qilmang: aynan o'sha idempotency_key bilan qayta yuboring yoki holatni so'rang.
Narxni /v1/steam/pricing dan oling. Ustama foizi sizning kalitingizga xos bo'lishi mumkin (oborotga qarab shaxsiy tarif).
O'yin to'ldirish (9 ta o'yin — ro'yxat GET /v1/games da)
To'liq oqim — ID tekshiruvidan yakunigacha:
JS
const H = { "X-API-Key": "sj_...", "Content-Type": "application/json" };
const GAME = "pubgm"; // kodni GET /v1/games dan oling
// 1) Narxni JONLI oling — kurs bilan o'zgaradi
const cat = await (await fetch(`https://api.starstg.uz/api/purchase/v1/games/${GAME}/catalogue`, { headers: H })).json();
const item = cat.denominations.find((d) => d.name === "60"); // AYNAN nom bo'yicha!
// item.price_usdt — balansdan shuncha yechiladi
// 2) O'yinchini tekshiring va nikni XARIDORGA KO'RSATING (bepul)
const who = await (await fetch(`https://api.starstg.uz/api/purchase/v1/games/${GAME}/check-player`, {
method: "POST", headers: H,
body: JSON.stringify({ player_id: "51221257198" }),
})).json();
if (!who.valid) throw new Error("ID noto'g'ri");
// who.player_name → "MirshodforwarD" — tasdiqlatmasdan davom etmang
// 3) Buyurtma
let order = await (await fetch(`https://api.starstg.uz/api/purchase/v1/games/${GAME}/order`, {
method: "POST", headers: H,
body: JSON.stringify({
denomination: item.name,
player_id: "51221257198",
idempotency_key: "invoice-1042", // SIZNING barqaror invoice id
}),
})).json();
// 4) 202 → tugagunicha kuzatamiz (PUBG ~2 daq, MLBB ~1 daq)
while (order.status === "processing") {
await new Promise((r) => setTimeout(r, 5000));
order = await (await fetch(`https://api.starstg.uz/api/purchase/v1/games/orders/${order.order_id}`, { headers: H })).json();
}
console.log(order.status, order.usdt_charged); // "completed" 0.9167
O'yin to'ldirish uchun 6 ta qoida
ID ni tekshirmasdan sotmang. Noto'g'ri ID ga tushgan UC/olmosni hech kim qaytara olmaydi — na biz, na provayder, na o'yin ishlab chiqaruvchisi. check-player bepul va bir soniya oladi.
denomination — aynan katalogdagi name. Prefiks bo'yicha qidirmang, aks holda mijoz boshqa mahsulot oladi: - PUBG: "60" (haqiqiy UC) va "60 WOW Coins" — butunlay boshqa narsa - Delta Force: "Meltdown Supplies" ($0.46) ⊂ "Meltdown Supplies - Advanced" ($1.37) - Honor of Kings: "Weekly Card" ⊂ "Weekly Card Plus" - Bigo Live: "5" ⊂ "50" ⊂ "500" ⊂ "5000" — bu yerda startsWithming barobar qimmat nominalni tanlab yuborishi mumkin
Narxni har safar qayta o'qing. Katalog narxi valyuta kursi bilan o'zgaradi; eskirgan narxni xaridorga aytib qo'ysangiz farqni o'zingiz to'laysiz.
server_id — o'yinga bog'liq. Mobile Legends, Magic Chess va Asphalt 9'da majburiy, qolganlarida umuman kerak emas. GET /v1/games javobidagi required_fields ga qarang. Agar o'sha javobda servers obyekti bo'lsa — qiymatni aynan o'sha ro'yxatdan oling (Asphalt 9'da bu platforma).
202 xato emas va timeout — "yiqildi" degani emas. Javob kelmasa refund qilmang: aynan o'sha idempotency_key bilan qayta yuboring yoki holatni so'rang.
O'yinlar mintaqaviy cheklangan bo'lishi mumkin — notes ni o'qing.GET /v1/games javobidagi notes har o'yin qaysi mintaqaga ishlashini aytadi va bu kod nomiga MOS KELMASLIGI mumkin (codm_sgmy — faqat SG/MY, freefire_global — CIS). Cheklov yetkazib beruvchiga qarab O'ZGARADI, shuning uchun uni kodingizda qotirib qo'ymang: har doim jonli notes ni o'qing. Cheklangan mintaqadagi o'yinchiga yuborilgan buyurtma failed bo'ladi (mablag' qaytariladi, lekin xaridor kutib qoladi).
💡 Avval Sandbox bilan sinang — /test/v1/stars, /test/v1/premium, /test/v1/steam: balans yechilmaydi, hech narsa yetkazilmaydi.
/v1/pricing bilan bir xil USDT tariflar, lekin jonli TON→USD kursi (TONAPI'dan, ~60s keshlanadi) hamda har mahsulot uchun hisoblangan TON va UZS ekvivalentlari bilan. Asosiy narx har doim USDT — faqat ton/uzs maydonlari kursga qarab o'zgaradi. TON provider mavjud bo'lmasa ton maydonlari null qaytadi (USDT/UZS baribir keladi).
So'rov
cURL
curl -X GET "https://api.starstg.uz/api/purchase/v1/rates" \
-H "X-API-Key: sj_..."
Telegram Stars yetkazadi. Balans atomik yechiladi, Fragment orqali yetkaziladi. Fragment xatosida balans avtomatik qaytariladi (502). Idempotency uchun idempotency_key bering.
So'rov tanasi
Maydon
Tur
Tavsif
username
string
majburiy
Telegram @username ( @ ixtiyoriy, 3–32 belgi )
stars
integer
majburiy
Stars soni (50–10000)
idempotency_key
string
ixtiyoriy
Takroriy so'rovda bir xil natija qaytadi — bir buyurtmaga bir unikal kalit. Takror = o'sha kalit + o'sha qabul qiluvchi va miqdor; boshqasi bilan kelsa yangi buyurtma bo'ladi. Tarmoq xatosida xavfsiz qayta yuborish uchun majburiy tavsiya etiladi.
O'zbekiston uchun ham to'liq ishlaydi: Steam UZ akkauntlari USD_CIS narx zonasida va hamyon USD'da, shuning uchun valyuta konvertatsiyasi umuman yo'q (FX ustamasi nol).
Boshqa mahsulotlardan farqi — yetkazish asinxron bo'lishi mumkin: javob 202 va status: "processing" bo'lsa, yakunni GET /v1/steam/{order_id} bilan kuzating.
Steam login bo'yicha hamyonni USD nominalda to'ldiradi.
Balansdan yechiladigan summa = amount_usd + ustama. Aniq qiymatni oldindan GET /v1/steam/pricing?amount_usd=... beradi.
Javob kodlari — muhim farq
Kod
Ma'nosi
Nima qilish
200
completed — Steam to'ldirildi
tugadi
202
processing — provayder navbatida
GET /v1/steam/{order_id} bilan kuzating
402
balans yetarli emas
pul yechilmagan
502
provayder rad etdi
pul qaytarildi (refunded: true)
503
vaqtincha mavjud emas
keyinroq qayta urining
202 ni xato deb hisoblamang — buyurtma qabul qilingan va bajarilmoqda.
Idempotentlik
idempotency_key bering. Tarmoq uzilib, javobni olmasangiz — aynan o'sha kalit bilan qayta yuboring: ikkinchi marta pul yechilmaydi, avvalgi buyurtma qaytadi.
So'rov tanasi
Maydon
Tur
Tavsif
login
string
majburiy
Steam akkaunt login'i (email yoki ko'rinadigan nik EMAS).
Kechirimli qabul qilinadi: mylogin, https://steamcommunity.com/id/mylogin. Email va /profiles/7656119... (SteamID) rad etiladi — ular bilan to'ldirib bo'lmaydi.
amount_usd
number
majburiy
Steam hamyoniga tushadigan nominal summa (USD, ko'pi bilan 2 kasr xona). Amaldagi chegaralarni GET /v1/steam/pricing beradi (hozir $1–$400).
Bu balansdan yechiladigan summa emas — yechiladigani nominal + ustama (usdt_charged).
idempotency_key
string
ixtiyoriy
Takroriy so'rovda bir xil natija qaytadi. Steam'da ayniqsa muhim: yetkazish asinxron, shuning uchun tarmoq uzilsa xavfsiz qayta yuborishning yagona yo'li shu.
Ro'yxatni kodga yozib qo'ymang — GET /v1/games dan oling.
Voucher kod emas: kredit o'yinchi ID si bo'yicha akkauntga to'g'ridan-to'g'ri yoziladi. Xaridor hech narsa aktivlashtirmaydi.
To'g'ri oqim
GET /v1/games — o'yinlar va har biri qanday maydon talab qilishi
GET /v1/games/{code}/catalogue — nominallar va siz to'laydigan narx
POST /v1/games/{code}/check-player — ID ni tekshiring, nikni xaridorga ko'rsating
POST /v1/games/{code}/order — buyurtma
GET /v1/games/orders/{order_id} — yakunni kuzating
3-qadamni o'tkazib yubormang. Noto'g'ri ID ga yuborilgan UC yoki olmosni qaytarib bo'lmaydi — na biz, na provayder, na o'yin ishlab chiqaruvchisi uni bekor qila oladi.
Yetkazish asinxron: javob 202 va status: "processing" bo'lishi normal holat. O'lchangan vaqt — PUBG ~2 daqiqa, qolganlari ~1 daqiqa.
O'yinlar mintaqaviy cheklangan bo'lishi mumkin.GET /v1/games javobidagi notes ni o'qing — cheklov KOD NOMIGA MOS KELMASLIGI mumkin (masalan codm_sgmy faqat Singapur/Malayziya, freefire_global esa CIS). Cheklov yetkazib beruvchiga qarab o'zgaradi, shuning uchun yagona ishonchli manba — jonli notes. Cheklangan mintaqadagi o'yinchiga yuborilgan buyurtma failed bo'ladi.
Qo'llab-quvvatlanadigan o'yinlar va har biri qanday maydon talab qilishi.
required_fields ni o'qing va formani shunga qarab chizing: server_id ba'zi o'yinlarda majburiy (Mobile Legends), ba'zilarida umuman ishlatilmaydi (PUBG Mobile).
So'rov
cURL
curl -X GET "https://api.starstg.uz/api/purchase/v1/games" \
-H "X-API-Key: sj_..."
Nominallar va siz to'laydigan yakuniy narx (price_usdt). Hisobni o'zingizda takrorlamang — ustama va yaxlitlash shu yerda qo'llanadi.
Narx valyuta kursi bilan o'zgaradi. Buyurtmadan oldin qayta o'qing: eskirgan narx bo'yicha xaridorga aytilgan summa haqiqiy yechilgan summadan farq qilishi mumkin.
name ni aynan uzating. Katalogda o'xshash nomlar yonma-yon turadi — PUBG'da "60" (haqiqiy UC) va "60 WOW Coins" (boshqa mahsulot). Prefiks bo'yicha moslashtirish xato mahsulot sotishga olib keladi.
Yo'l parametrlari
Nom
Tur
Tavsif
code
string
majburiy
O'yin kodi — GET /v1/games dan oling (pubgm, mlbb_global)
So'rov parametrlari
Nom
Tur
Tavsif
eta
string
ixtiyoriy
1 bo'lsa har nominal uchun yetkazish vaqti bashorati ham qo'shiladi (sekinroq)
So'rov
cURL
curl -X GET "https://api.starstg.uz/api/purchase/v1/games/pubgm/catalogue" \
-H "X-API-Key: sj_..."
O'yinchi ID sini tekshiradi va in-game nikni qaytaradi. Pul yechilmaydi.
Buni har doim buyurtmadan oldin chaqiring
Noto'g'ri ID ga yuborilgan UC yoki olmosni qaytarib bo'lmaydi — na biz, na provayder, na o'yin ishlab chiqaruvchisi uni bekor qila oladi. Nikni xaridorga ko'rsatib tasdiqlating: bir qadamlik tekshiruv eng qimmat xatoning oldini oladi.
Yo'l parametrlari
Nom
Tur
Tavsif
code
string
majburiy
O'yin kodi — GET /v1/games dan oling (pubgm, mlbb_global)
So'rov tanasi
Maydon
Tur
Tavsif
player_id
string
majburiy
O'yinchining in-game ID si
server_id
string | null
ixtiyoriy
Faqat talab qiladigan o'yinlarda (needs_server: true) — masalan Mobile Legends
Kreditni o'yinchi akkauntiga to'g'ridan-to'g'ri yozadi.
Balansdan yechiladigan summa = katalogdagi price_usdt.
Javob kodlari — muhim farq
Kod
Ma'nosi
Nima qilish
200
completed — akkauntga tushdi
tugadi
202
processing — bajarilmoqda
GET /v1/games/orders/{order_id} bilan kuzating
400
ID/nominal noto'g'ri
pul yechilmagan
402
balans yetarli emas
pul yechilmagan
502
provayder rad etdi
pul qaytarildi (refunded: true)
503
vaqtincha mavjud emas
keyinroq qayta urining
202 ni xato deb hisoblamang — buyurtma qabul qilingan. O'lchangan yetkazish vaqti: PUBG Mobile ~2 daqiqa, Mobile Legends ~1 daqiqa.
Idempotentlik
idempotency_key bering. Tarmoq uzilib javobni olmasangiz — aynan o'sha kalit bilan qayta yuboring: ikkinchi marta pul yechilmaydi va ikkinchi buyurtma yaratilmaydi.
Yo'l parametrlari
Nom
Tur
Tavsif
code
string
majburiy
O'yin kodi — GET /v1/games dan oling (pubgm, mlbb_global)
So'rov tanasi
Maydon
Tur
Tavsif
denomination
string
majburiy
Katalogdagi name satri, o'zgartirilmagan holda. GET /v1/games/{code}/catalogue javobidan aynan nusxa oling.
player_id
string
majburiy
—
server_id
string | null
ixtiyoriy
Talab qiladigan o'yinlarda majburiy
idempotency_key
string | null
ixtiyoriy
Takroriy so'rovda bir xil natija qaytadi — pul ikki marta yechilmaydi. Tarmoq uzilsa aynan shu kalit bilan qayta yuboring.
Gift card kodlari — App Store & iTunes (TR/RU/US), Google Play (TR/US), Roblox, Xbox (TR/US), Microsoft Windows, Minecraft (Java & Bedrock / Minecoins), Epic Games, Fortnite (US/EU), Standoff 2, Discord Nitro.
Ro'yxatni kodga yozib qo'ymang — GET /v1/giftcards dan oling.
Boshqa mahsulotlardan TUBDAN farq qiladi
Bu yerda mahsulot qabul qiluvchi hisobiga tushmaydi — u matn ko'rinishidagi kod sifatida sizga qaytariladi va uni xaridor o'zi aktivlashtiradi. Shuning uchun player_id / username kabi maydonlar yo'q va noto'g'ri ID xavfi ham yo'q.
To'g'ri oqim
GET /v1/giftcards — brendlar va mintaqa izohlari (notes)
GET /v1/giftcards/{category_id}/catalogue — nominallar, narx va zaxira
POST /v1/giftcards/{category_id}/order — buyurtma (202 processing)
GET /v1/giftcards/orders/{order_id} — kod AYNAN shu yerda qaytadi
Kod faqat 4-qadamda beriladi. Buyurtma javobida ham, buyurtmalar ro'yxatida (GET /v1/orders) ham codes maydoni yo'q — kod bearer instrument, ya'ni kim ko'rsa o'sha ishlatib yuboradi. O'lchangan tayyorlanish vaqti — ~23 sekund.
Kodni qaytarib bo'lmaydi. Bir marta berilgandan keyin "ishlamadi" degan da'voni tekshirishning texnik imkoni yo'q va provayder ham uni bekor qila olmaydi. Kodni olgach o'zingizda xavfsiz saqlang.
MINTAQAGA e'tibor bering.notes da "Region: TR" kabi izoh bo'ladi — boshqa mamlakat akkauntida kod ishlamaydi.
ZAXIRA cheklangan va notekis (stock): ba'zi nominalda mingdan ortiq, ba'zisida 2 dona. quantity > stock bo'lgan so'rov 400 bilan rad etiladi va pul yechilmaydi.
Nominallar, siz to'laydigan yakuniy narx (price_usdt) va zaxira (stock). Hisobni o'zingizda takrorlamang — ustama va yaxlitlash shu yerda qo'llanadi.
stock ni tekshiring. Gift card o'yin to'ldirishdan aynan shu bilan farq qiladi: mahsulot omborda sanoqli va zaxira juda notekis (ba'zi nominalda 2 dona). quantity > stock bo'lgan buyurtma 400 bilan rad etiladi va pul yechilmaydi.
card_id ni aynan uzating ("10_try"), nomni emas — nomlar takrorlanishi mumkin.
Narx valyuta kursi bilan o'zgaradi — buyurtmadan oldin qayta o'qing.
Yo'l parametrlari
Nom
Tur
Tavsif
category_id
string
majburiy
Brend kodi — GET /v1/giftcards dan oling
So'rov
cURL
curl -X GET "https://api.starstg.uz/api/purchase/v1/giftcards/app_store_itunes_tr/catalogue" \
-H "X-API-Key: sj_..."
Balansdan yechiladigan summa = katalogdagi price_usdt × quantity.
⚠️ Kod bu javobda QAYTMAYDI
Xarid 202 processing bilan boshlanadi va kodlar o'lchangan holatda ~23 sekundda tayyor bo'ladi. Kodni faqat GET /v1/giftcards/orders/{order_id} beradi — bu ataylab yagona joy, kod buyurtmalar ro'yxatida hech qachon ko'rinmaydi.
Javob kodlari — muhim farq
Kod
Ma'nosi
Nima qilish
200
completed — kodlar tayyor
bitta buyurtma endpointidan oling
202
processing — tayyorlanmoqda
GET /v1/giftcards/orders/{order_id} bilan kuzating
400
nominal/miqdor noto'g'ri yoki zaxira yetmaydi
pul yechilmagan
402
balans yetarli emas
pul yechilmagan
502
provayder rad etdi
pul qaytarildi (refunded: true)
503
vaqtincha mavjud emas
keyinroq qayta urining
Idempotentlik
idempotency_key bering. Tarmoq uzilib javobni olmasangiz — aynan o'sha kalit bilan qayta yuboring: ikkinchi marta pul yechilmaydi va ikkinchi kod sotib olinmaydi.
Yo'l parametrlari
Nom
Tur
Tavsif
category_id
string
majburiy
Brend kodi — GET /v1/giftcards dan oling
So'rov tanasi
Maydon
Tur
Tavsif
card_id
string
majburiy
Katalogdagi card_id, o'zgartirilmagan holda. GET /v1/giftcards/{category_id}/catalogue dan oling.
quantity
integer
ixtiyoriy
Kodlar soni. Katalogdagi stock, min_quantity va max_quantity chegaralariga sig'ishi kerak — aks holda 400 (pul yechilmaydi).
idempotency_key
string | null
ixtiyoriy
Takroriy so'rovda bir xil natija qaytadi — pul ikki marta yechilmaydi. Tarmoq uzilsa aynan shu kalit bilan qayta yuboring.
Bu — kodni beradigan yagona endpoint. Buyurtmalar ro'yxati (GET /v1/orders) codes maydonini hech qachon qaytarmaydi: kod bearer instrument, ya'ni kim ko'rsa o'sha ishlatib yuboradi.
Buyurtma hali processing bo'lsa provayderdan jonli holat so'raladi — javob har doim eng yangi.
Tavsiya: 3–5 soniyada bir marta. status: "completed" kelganda codes massivi to'la bo'ladi va uzunligi quantity ga teng — shundan keyin so'rash shart emas.
Kodni olgach o'zingizda xavfsiz saqlang: uni qaytarib bo'lmaydi.
failed bo'lsa mablag' avtomatik qaytarilgan (refunded: true).
Yo'l parametrlari
Nom
Tur
Tavsif
order_id
integer
majburiy
BIZNING buyurtma id (order_id), provayderniki emas
So'rov
cURL
curl -X GET "https://api.starstg.uz/api/purchase/v1/giftcards/orders/1" \
-H "X-API-Key: sj_..."
Javob
200 Buyurtma holati (va `completed` bo'lsa `codes`)
Test rejimi — xuddi real kabi javob qaytaradi, lekin balans yechilmaydi va yetkazilmaydi.
So'rov formati real endpoint bilan bir xil. Javobda "test": true qo'shiladi va transaction_idtest_... bilan boshlanadi. Integratsiyani xavfsiz sinash uchun ishlating.
Real /v1/stars bilan bir xil so'rov formati. Balans yechilmaydi, Fragment chaqirilmaydi.
Javobda "test": true va "transaction_id": "test_..." bo'ladi.
So'rov tanasi
Maydon
Tur
Tavsif
username
string
majburiy
Telegram @username ( @ ixtiyoriy, 3–32 belgi )
stars
integer
majburiy
Stars soni (50–10000)
idempotency_key
string
ixtiyoriy
Takroriy so'rovda bir xil natija qaytadi — bir buyurtmaga bir unikal kalit. Takror = o'sha kalit + o'sha qabul qiluvchi va miqdor; boshqasi bilan kelsa yangi buyurtma bo'ladi. Tarmoq xatosida xavfsiz qayta yuborish uchun majburiy tavsiya etiladi.
Real /v1/steam bilan bir xil so'rov va javob formati. Balans yechilmaydi, provayder chaqirilmaydi, hech qanday Steam akkaunt to'ldirilmaydi.
Javobda "test": true va transaction_idtest_... bilan boshlanadi.
Sandbox har doim darhol completed qaytaradi. Realda buyurtma avval processing (202) bo'lishi mumkin — integratsiyangiz ikkala yo'lni ham qo'llab-quvvatlasin.
So'rov tanasi
Maydon
Tur
Tavsif
login
string
majburiy
Steam akkaunt login'i (email yoki ko'rinadigan nik EMAS).
Kechirimli qabul qilinadi: mylogin, https://steamcommunity.com/id/mylogin. Email va /profiles/7656119... (SteamID) rad etiladi — ular bilan to'ldirib bo'lmaydi.
amount_usd
number
majburiy
Steam hamyoniga tushadigan nominal summa (USD, ko'pi bilan 2 kasr xona). Amaldagi chegaralarni GET /v1/steam/pricing beradi (hozir $1–$400).
Bu balansdan yechiladigan summa emas — yechiladigani nominal + ustama (usdt_charged).
idempotency_key
string
ixtiyoriy
Takroriy so'rovda bir xil natija qaytadi. Steam'da ayniqsa muhim: yetkazish asinxron, shuning uchun tarmoq uzilsa xavfsiz qayta yuborishning yagona yo'li shu.
Telegram sovg'asini yuboradi. Yetkazish sinxron va odatda bir soniyadan tez — javob kelganda sovg'a allaqachon qabul qiluvchida bo'ladi.
Muhim: ba'zi foydalanuvchilar Telegram maxfiylik sozlamasida sovg'a qabul qilishni yopib qo'ygan bo'ladi. Bunday holatda 400 va error_code: "recipient_refuses" qaytadi — balans yechilmaydi. Bu tizim nosozligi emas, qabul qiluvchining tanlovi.
hide_name: true — jo'natuvchi qabul qiluvchining ommaviy profilida ko'rinmaydi (qabul qiluvchining o'zi baribir kimdan kelganini ko'radi).
So'rov tanasi
Maydon
Tur
Tavsif
recipient
string
majburiy
Telegram @username ( @ ixtiyoriy )
gift_id
string
majburiy
GET /v1/gifts dan olingan satr
hide_name
boolean
ixtiyoriy
true — jo'natuvchi ommaviy profilda ko'rinmaydi (qabul qiluvchining o'zi baribir ko'radi)
Javob Content-Encoding: gzip bilan keladi — brauzer uni o'zi ochadi va sizga tayyor Lottie JSON tegadi (pako kabi kutubxona kerak emas). lottie-web ga to'g'ridan-to'g'ri path sifatida bering.
Yo'l parametrlari
Nom
Tur
Tavsif
gift_id
string
majburiy
—
So'rov
cURL
curl -X GET "https://api.starstg.uz/api/purchase/v1/gifts/5170145012310081615/sticker" \
-H "X-API-Key: sj_..."