Skip to content

XaznaPass

XaznaPass — foydalanuvchi Xazna ilovasida ko‘rsatadigan bir martalik kod orqali to‘lovni qabul qilish. Merchant bu kodni API ga uzatadi, Xazna esa summani foydalanuvchi kartasidan yechadi. Har bir so‘rov tanasi RSA algoritmi bilan shifrlanadi va data maydonida yuboriladi.

Asosiy talablar

Merchant ma‘lumotlari

Ro‘yxatdan o‘tgandan so‘ng xizmat ko‘rsatuvchi API ga ulanish va so‘rov yuborish uchun quyidagi ma‘lumotlarni oladi:

#ParameterData typeDescription
1merchantIdUUIDMerchantning savdo ID si, ochiq holda uzatiladi
2secretKeyStringSo‘rov tanasi shifrlanadigan kalit
3usernameStringBasic avtorizatsiya uchun login
4passwordStringBasic avtorizatsiya uchun parol

Merchant kaliti

secretKey parametri maxfiy hisoblanadi va uning xavfsizligi uchun to‘liq javobgarlik xizmat ko‘rsatuvchining zimmasida. Kalitning oshkor bo‘lishi ma‘lumotlaringiz sizib chiqishiga olib kelishi mumkin.

Autentifikatsiya va sarlavhalar

So‘rovlar basic avtorizatsiya bilan yuboriladi — Auth: Basic sarlavhasi. timestamp — UNIX timestamp (epoch boshidan beri 10 xonali sekund).

#HeaderValue
1Acceptapplication/json
2AuthorizationBasic — ro‘yxatdan o‘tishda berilgan username va password
3Content-Typeapplication/json

Ma‘lumotlarni shifrlash

  • Barcha metodlarda so‘rov ma‘lumotlari RSA algoritmi yordamida shifrlanadi.
  • Ma‘lumotlar (json) oldindan berilgan secretKey bilan shifrlanadi va Base64 formatida yuboriladi.
  • Shifrlanadigan ma‘lumot hajmi 350 baytdan oshmasligi kerak.

Shifrlash natijasi data maydonida uzatiladi. Ochiq holda faqat merchantId yuboriladi — Xazna shu bo‘yicha deshifrlash kalitini tanlaydi.

Javob formati

Barcha metodlar bir xil konvertni qaytaradi: asosiy ma‘lumot data ichida, qayta ishlash natijasi esa code da bo‘ladi.

#ParameterData typeDescription
1dataObjectTranzaksiya ma‘lumotlari
2errorMessageStringXatolik tavsifi
3codeIntegerQayta ishlash kodi, kodlar ma‘lumotnomasiga qarang
4timestampLongVaqt belgisi

data maydonlari

#ParameterData typeDescription
1merchantIdUUIDMerchantning savdo ID si
2paymentIdUUIDXazna tranzaksiya ID si
3paymentStatusStringTo‘lov statusi: SUCCESS, ERROR, PENDING, REVERSED
4amountLongSumma tiyinlarda. 100000 = 1000.00 so‘m
5paymentTimeStringTo‘lov vaqti (yyyy-mm-dd hh:mm:ss)
6messageStringTranzaksiya tavsifi
7cardTypeStringKarta turi
8cardNumberStringNiqoblangan karta raqami
9phoneStringTelefon raqami

To‘lov statuslari

StatusDescription
SUCCESSTo‘lov amalga oshdi
PENDINGTo‘lov jarayonda — statusni qayta tekshirish kerak
ERRORTo‘lov o‘tmadi, sababi code va errorMessage da
REVERSEDTo‘lov bekor qilingan

To‘lov

Foydalanuvchi ilovada ko‘rsatgan bir martalik otpData kodi bo‘yicha summani yechadi.

json
POST {base_url}/api/v1/qr-pass/payment
Accept: application/json
Content-Type: application/json
Auth: Basic

{
  "merchantId": "string",
  "data": "your_hashing_data"
}

// your_hashing_data — RSA algoritmi bilan shifrlangan qiymat

So‘rov parametrlari

#ParameterData typeDescription
1merchantIdUUIDMerchantning savdo ID si
2dataStringRSA algoritmi asosida shifrlangan qiymat

Shifrlanadigan ma‘lumotlar

json
{
  "otpData": "70704778812456456092",
  "amount": 100000, // 1000.00 so‘m
  "transactionId": "123"
}
#ParameterData typeDescription
1otpDataStringTo‘lov uchun bir martalik kod
2amountLongSumma tiyinlarda. 100000 = 1000.00 so‘m
3transactionIdStringMerchant tranzaksiya ID si

Javob namunasi

json
{
  "data": {
    "merchantId": "string",
    "paymentId": "string",
    "paymentStatus": "SUCCESS",
    "amount": 100000,
    "paymentTime": "2025-08-01 14:22:02",
    "cardType": "HUMO",
    "cardNumber": "****3445",
    "phone": "998911234567",
    "message": "Успешная транзакция"
  },
  "errorMessage": "",
  "code": 0,
  "timestamp": 1754040127141
}

paymentId ni saqlang

Javobdagi paymentId statusni tekshirish, to‘lovni bekor qilish va fiskal chekni bog‘lash uchun kerak bo‘ladi. Uni o‘z transactionId ingiz bilan birga saqlang.

To‘lov statusini Xazna bo‘yicha tekshirish

Xazna tranzaksiya identifikatori (paymentId) bo‘yicha to‘lovning joriy statusini qaytaradi.

json
POST {base_url}/api/v1/qr-pass/check/xazna
Accept: application/json
Content-Type: application/json
Auth: Basic

{
  "merchantId": "string",
  "data": "your_hashing_data"
}

// your_hashing_data — RSA algoritmi bilan shifrlangan qiymat

Shifrlanadigan ma‘lumotlar

json
{
  "paymentId": "string"
}
#ParameterData typeDescription
1paymentIdUUIDXazna tranzaksiya ID si

Javob namunasi

json
{
  "data": {
    "merchantId": "string",
    "paymentId": "string",
    "paymentStatus": "PENDING",
    "amount": 100000,
    "paymentTime": "2025-08-01 14:22:02",
    "cardType": "HUMO",
    "cardNumber": "****3445",
    "phone": "998911234567",
    "message": "Транзакция в ожидании"
  },
  "errorMessage": "",
  "code": 0,
  "timestamp": 1754040127141
}

To‘lov statusini merchant bo‘yicha tekshirish

Xuddi shu narsa, faqat qidiruv merchant tranzaksiya identifikatori — to‘lov paytida yuborilgan transactionId bo‘yicha olib boriladi.

json
POST {base_url}/api/v1/qr-pass/check/merchant
Accept: application/json
Content-Type: application/json
Auth: Basic

{
  "merchantId": "string",
  "data": "your_hashing_data"
}

// your_hashing_data — RSA algoritmi bilan shifrlangan qiymat

Shifrlanadigan ma‘lumotlar

json
{
  "paymentId": "string"
}
#ParameterData typeDescription
1paymentIdUUIDMerchant tranzaksiya ID si

Maydon nomi

Bu metodda maydon paymentId deb nomlanadi, lekin unda Xazna emas, merchant tranzaksiyasining identifikatori uzatiladi.

Javob namunasi

json
{
  "data": {
    "merchantId": "string",
    "paymentId": "string",
    "paymentStatus": "PENDING",
    "amount": 100000,
    "paymentTime": "2025-08-01 14:22:02",
    "cardType": "HUMO",
    "cardNumber": "****3445",
    "phone": "998911234567",
    "message": "Транзакция в ожидании"
  },
  "errorMessage": "",
  "code": 0,
  "timestamp": 1754040127141
}

To‘lovni bekor qilish

Mablag‘ni foydalanuvchiga qaytaradi. Muvaffaqiyatli bekor qilingandan so‘ng to‘lov statusi REVERSED bo‘ladi.

json
POST {base_url}/api/v1/qr-pass/reverse
Accept: application/json
Content-Type: application/json
Auth: Basic

{
  "merchantId": "string",
  "data": "your_hashing_data"
}

// your_hashing_data — RSA algoritmi bilan shifrlangan qiymat

Shifrlanadigan ma‘lumotlar

json
{
  "paymentId": "string"
}
#ParameterData typeDescription
1paymentIdUUIDXazna tranzaksiya ID si

Javob namunasi

json
{
  "data": {
    "merchantId": "string",
    "paymentId": "string",
    "paymentStatus": "REVERSED",
    "amount": 100000,
    "paymentTime": "2025-08-01 14:22:02",
    "cardType": "HUMO",
    "cardNumber": "****3445",
    "phone": "998911234567",
    "message": "Транзакция отменена"
  },
  "errorMessage": "",
  "code": 0,
  "timestamp": 1754040127141
}

Fiskal ma‘lumotlarni to‘lovga bog‘lash

Amalga oshirilgan to‘lovga fiskal chek havolasini bog‘laydi.

Metod manzili

XaznaPass hujjatining dastlabki nusxasida (1.0-versiya) bu metodning URL manzili ko‘rsatilmagan — integratsiyadan oldin Xazna menejeridan aniqlashtiring. So‘rov va javob tanasi formati quyida keltirilgan.

json
Accept: application/json
Content-Type: application/json
Auth: Basic

{
  "merchantId": "string",
  "data": "your_hashing_data"
}

// your_hashing_data — RSA algoritmi bilan shifrlangan qiymat

So‘rov parametrlari

#ParameterData typeDescription
1merchantIdUUIDMerchantning savdo ID si
2dataStringRSA algoritmi asosida shifrlangan qiymat

Shifrlanadigan ma‘lumotlar

json
{
  "paymentId": "string",
  "qrUrl": ""
}
#ParameterData typeDescription
1paymentIdUUIDXazna tranzaksiya ID si
2qrUrlStringFiskal chek havolasi

Javob namunasi

json
{
  "data": {
    "message": "Успешно"
  },
  "errorMessage": "",
  "code": 0,
  "timestamp": 1769422251103
}
#ParameterData typeDescription
1messageStringNatija tavsifi
2errorMessageStringXatolik tavsifi
3codeIntegerQayta ishlash kodi, kodlar ma‘lumotnomasiga qarang
4timestampLongVaqt belgisi

Kodlar ma‘lumotnomasi

Javobdagi code maydoni qiymatlari:

#KodXabar
10Muvaffaqiyatli tranzaksiya
2-1QR kod muddati tugagan
3-2Foydalanuvchi topilmadi
4-3Karta topilmadi
5-4Servis topilmadi
6-5Servis faol emas
7-6Operatsiya turi topilmadi
8-7Noto‘g‘ri summa
9-8Tranzaksiyada xatolik
10-9Operatsiya topilmadi
11-10Operatsiya statusi faol emas
12-11Bekor qilishda xatolik
13-12Xatolik. Parametrlar yetishmaydi
14-13Ma‘lumotlarni dekodlashda xatolik
15-14Ulanishda xatolik
16999Tizim xatoligi

АК «Халқ банки» — платежная система Xazna