To‘lovlarni loyihangizga
oson ulang.
To‘lov havolasini yarating, mijozni to‘lovga yo‘naltiring va natijani avtomatik qabul qiling. Integratsiya uchun kerakli qo‘llanma va tayyor kodlar — bir joyda.
https://firepay.uz/api/v1- 01
Kassa oching
Faol kassangizdan ID va API kalitini oling.
- 02
Havola yarating
Summani yuboring va pay_url manzilini oling.
- 03
Natijani oling
To‘lovni API yoki callback orqali tekshiring.
Autentifikatsiya
Har bir /api/v1/* so'rovi kassa hisobingizning
cashier_id va api_key qiymatlarini
talab qiladi.
Autentifikatsiya ma'lumotlarini 3 xil usulda uzatishingiz mumkin:
X-Cashier-Id: YOUR_CASHIER_ID
X-Api-Key: YOUR_API_KEY
Content-Type: application/jsonTo‘lov havolasini yaratish
/api/v1/payment-create
Yangi to'lov havolasini yaratadi. Qaytgan pay_url manziliga mijozni yo'naltirasiz. Quyida POST + JSON namunasi berilgan; GET va forma parametrlari ham qabul qilinadi.
Parametrlar
| Nomi | Majburiy | Izoh |
|---|---|---|
| amount | Ha | To'lov summasi (so'm, masalan: 50000) |
| order_id | Yo'q | Sizning tizimingizdagi buyurtma ID raqami |
| callback_url | Yo'q | To'lov o'tganda xabar yuboriladigan Callback URL |
| return_url | Yo'q | Mijoz to'lovdan so'ng qaytariladigan URL manzil |
cURL so'rov namunasi (JSON)
curl -X POST https://firepay.uz/api/v1/payment-create \
-H "Content-Type: application/json" \
-H "X-Cashier-Id: YOUR_CASHIER_ID" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"amount": 50000,
"order_id": "INV-1002",
"callback_url": "https://myshop.uz/callback",
"return_url": "https://myshop.uz/success"
}'Muvaffaqiyatli javob
{
"success": true,
"token": "6aa50c7c0ba-6ga50c7ca61eb0",
"pay_url": "https://firepay.uz/pay/6aa50c7c0ba-6ga50c7ca61eb0",
"order_id": "INV-1002"
}To‘lov holatini tekshirish
/api/v1/payment-status
To'lov holatini token orqali tekshirish. GET yoki POST so‘rovidan foydalanishingiz mumkin.
Parametrlar
token: To'lov yaratilganda qaytgan unikal token.
curl -X GET "https://firepay.uz/api/v1/payment-status?token=6aa50c7c0ba-6ga50c7ca61eb0" \
-H "X-Cashier-Id: YOUR_CASHIER_ID" \
-H "X-Api-Key: YOUR_API_KEY"Javob namunasi
{
"success": true,
"token": "6aa50c7c0ba-6ga50c7ca61eb0",
"amount": 50000,
"commission": 4500,
"net_amount": 45500,
"status": "paid",
"order_id": "INV-1002",
"callback_status": "sent",
"created_at": "2026-09-23 20:10:00",
"paid_at": "2026-09-23 20:12:30"
}Kassa balansi
/api/v1/balance
Kassaning joriy hisob balansini bilish. GET yoki POST so‘rovidan foydalanishingiz mumkin.
curl -X GET https://firepay.uz/api/v1/balance \
-H "X-Cashier-Id: YOUR_CASHIER_ID" \
-H "X-Api-Key: YOUR_API_KEY"{
"success": true,
"balance": 1450000
}Kassa ma’lumotlari
/api/v1/cashierKassa nomi, holati, balansi va integratsiya manzillarini qaytaradi. Autentifikatsiya headerlaridan tashqari qo‘shimcha parametr talab qilinmaydi.
curl -X GET https://firepay.uz/api/v1/cashier \
-H "X-Cashier-Id: YOUR_CASHIER_ID" \
-H "X-Api-Key: YOUR_API_KEY"Javob namunasi
{
"success": true,
"cashier_id": "YOUR_CASHIER_ID",
"display_name": "Mening do‘konim",
"status": "active",
"balance": 1450000,
"logo": null,
"callback_url": "https://myshop.uz/callback",
"return_url": "https://myshop.uz/success"
}Callback orqali xabarnoma
Har bir xabarnomaning X-FirePay-Signature imzosini tekshiring. Quyida tayyor PHP namunasi bor.
Mijoz to'lovni muvaffaqiyatli amalga oshirishi bilan, FirePay serveringizdagi callback_url manziliga POST so'rovi yuboradi.
Callback JSON tanasi (Payload)
{
"event": "payment.paid",
"token": "6aa50c7c0ba-6ga50c7ca61eb0",
"order_id": "INV-1002",
"amount": 50000,
"net_amount": 45500,
"currency": "UZS",
"status": "paid",
"paid_at": "2026-09-23 20:12:30",
"cashier_id": "YOUR_CASHIER_ID"
}Imzoni tekshirish (PHP namunasi)
Xavfsizlik uchun so'rov headerida X-FirePay-Signature jo'natiladi. Uni o'zingizning api_key ingiz orqali tekshirasiz:
$rawInput = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_FIREPAY_SIGNATURE'] ?? '';
$apiKey = 'YOUR_API_KEY';
$expectedSignature = hash_hmac('sha256', $rawInput, $apiKey);
if (!hash_equals($expectedSignature, $signature)) {
http_response_code(400);
die('Invalid signature');
}
$data = json_decode($rawInput, true);
if ($data['status'] === 'paid') {
http_response_code(200);
echo json_encode(['status' => 'ok']);
}Xatoliklarni tushunish
So‘rov bajarilmasa, HTTP status kodi va error maydonidagi izohni tekshiring.
400Noto‘g‘ri so‘rovSumma, token yoki yuborilgan URL parametrlarini tekshiring.
401Autentifikatsiya xatosiKassa ID, API kaliti va kassa faolligini tekshiring.
403Ruxsat yo‘qTo‘lov ushbu kassaga tegishli emas.
404To‘lov topilmadiYuborilgan to‘lov tokenini tekshiring.
{
"success": false,
"error": "Missing token parameter."
}