Русский O'zbek English

API Hujjatlari

SmartPay ni bir necha daqiqada REST API, webhook va to‘lov havolalari orqali saytga ulang.

Autentifikatsiya

Foydalanuvchi so‘rovlari (invoice yaratishdan tashqari) quyidagi sarlavhani talab qiladi:

X-Api-Key: spk_sizning_api_kalitingiz

API kalitini Boshqaruv paneli → Sozlamalar bo‘limida toping.

To‘lov yaratish (invoice)

POST /api/create

Invoice yaratib, to‘lov sahifasiga havolani qaytaradi.

Parametr Turi Majburiy Tavsif
merchant_id string Sizning merchant UUID
amount float To‘lov summasi
currency string Valyuta kodi (UZS, USD, EUR...)
order_id string Sizdagi noyob buyurtma ID
sign string SHA256 imzo (pastda aytilganidek)
description string To‘lov tavsifi
success_url string Muvaffaqiyatli qaytish URL
fail_url string Rad etilganda qaytish URL
webhook_url string Webhook URL ni almashtirish
lang string To‘lov sahifasi tili (ru/uz/en)
email string Mijozning emaili (majburiy emas)
user_data string Qo‘shimcha ma’lumot

Imzo hosil qilish (sign)

sign = SHA256(merchant_id:amount:currency:secret_key1:order_id)

// PHP example
$sign = hash('sha256',
    $merchant_id.':'.$amount.':'.$currency.':'.$secret_key1.':'.$order_id
);

Javob namunasi

{
  "type": "success",
  "invoice_id": "SP3a7f...",
  "url": "https://your-domain.com/pay/?id=SP3a7f...",
  "amount": 50000,
  "currency": "UZS",
  "order_id": "ORD-123",
  "expires_at": "2024-01-01 12:00:00"
}

To‘lov holatini olish

GET /api/info?invoice_id=SP...

X-Api-Key va invoice_id parametrlari talab qilinadi.

{
  "type": "success",
  "invoice_id": "SP3a7f...",
  "order_id": "ORD-123",
  "amount": 50000,
  "currency": "UZS",
  "status": "paid",
  "paid_at": "2024-01-01 11:45:00"
}

Mumkin holatlar: pending, awaiting, checking, paid, rejected, expired.

To‘lov usullari

GET /api/methods faollashtirilgan kassirlarni qaytaradi.

Webhook xabarnomalari

SmartPay to‘lov holati o‘zgarganda webhook URL ga POST yuboradi.

POST https://yoursite.com/webhook
Content-Type: application/x-www-form-urlencoded

invoice_id=SP3a7f...&order_id=ORD-123&amount=50000¤cy=UZS&status=paid&sign=SHA256...

Webhook imzosini tekshirish

sign = SHA256(tartiblangan qiymatlar + ":" + secret_key2).

$data = ['invoice_id'=>..., 'order_id'=>..., 'amount'=>..., 'currency'=>..., 'status'=>...];
ksort($data);
$sign = hash('sha256', implode(':', array_values($data)).':'.$secret_key2);

Integratsiya bosqichlari

  1. Merchant hisob yarating va UUID/API kalitlarini oling.
  2. Kassirlar qo‘shing, valyuta va limitlarni belgilang.
  3. Invoice ni /api/create orqali yarating: summa, order_id, description va imzo bilan.
  4. Mijozni qaytgan URL ga yo‘naltiring va holatni /api/info yoki webhook orqali kuzating.

Platforma bilan ishlash