| Holat | Misol |
|---|---|
| Masofadan mijozni identifikatsiya qilish (KYC) | Bank, mikromoliya yoki sug'urta kompaniyasi ofisga kelmasdan onlayn hisob ochadi. |
| Muhim amal oldidan shaxsni tasdiqlash | Yirik o'tkazma, parolni tiklash yoki telefon raqamini almashtirishdan oldin akkaunt egasini tasdiqlash. |
| Onlayn shartnoma imzolash | Kredit yoki ijara shartnomasini aynan shu fuqaro imzolayotganini tekshirish. |
| Yosh / shaxsni tekshirish | Yoshni yoki haqiqiy shaxsni tasdiqlashi kerak bo'lgan marketpleyslar, telekom, o'yin yoki yetkazib berish xizmatlari. |
| Ro'yxatdan o'tishni avtomatik to'ldirish | Foydalanuvchi faqat selfi oladi; formangiz tasdiqlangan F.I.Sh., hujjat va tug'ilgan sana bilan to'ldiriladi. |
| Atama | Kim |
|---|---|
| Mijoz (Client) | RS-ID'ni integratsiya qilayotgan kompaniya (siz). RS-ID'da ro'yxatdan o'tgan va client_id / client_secret olgan. Mijoz backendi (RS-ID API ni chaqiradi) va mijoz frontendini (foydalanuvchini RS-ID sahifasiga yo'naltiradigan saytingiz) o'z ichiga oladi. |
| Foydalanuvchi | Identifikatsiya qilinayotgan inson — sizning mijozingiz, O'zbekiston fuqarosi. |
| Server | RS-ID serveri: Web SDK API va foydalanuvchi selfi oladigan RS-ID sahifasi (<rsid_base_url>). |
| Sessiya | Mijoz backendi yaratgan bitta identifikatsiya urinishi. session_id (UUID) bilan aniqlanadi. Amal qilish muddati va urinishlar soni cheklangan. |
| JSHSHIR (PINFL) | Jismoniy shaxsning shaxsiy identifikatsiya raqami — 14 ta raqam. |
Hujjat raqami (id_number) | Pasport yoki ID-karta seriyasi va raqami, masalan AA1234567. |
redirect_url manzilingizga qaytaradi.<iframe> ichiga joylashtiradi va foydalanuvchi saytingizni tark etmaydi.allow="camera" majburiy — usiz brauzer iframe ichida kamerani bloklaydi.redirect_url manzilingizga o'tadi. redirect_url sifatida o'z domeningizdagi ota oynani xabardor qiladigan kichik sahifani ko'rsating, masalan:| Muhit | API bazaviy URL | RS-ID sahifasi |
|---|---|---|
| Stage (test) | https://sdk.stage.rsid.uz/web/api | https://sdk.stage.rsid.uz/?session_id={session_id} |
| Production | https://sdk.rsid.uz/web/api | https://sdk.rsid.uz/?session_id={session_id} |
client_id / client_secret ishlatiladi. Stage'da yaratilgan sessiya faqat stage sahifasida ochiladi va aksincha.{ "data": { }, "code": 0, "message": "Success" }| Maydon | Turi | Tavsif |
|---|---|---|
code | integer | 0 — muvaffaqiyat. Boshqa har qanday qiymat — xato (xatolar jadvaliga qarang). Faqat HTTP-statusni emas, har doim code ni tekshiring. |
message | string | So'rov tilidagi matn (uz / ru / en). Uni dasturiy tahlil qilmang. |
data | any | Javob ma'lumotlari. Xato bo'lganda yo'q. |
| Sarlavha | Qiymat | Qayerda ishlatiladi |
|---|---|---|
Content-Type | application/json | Barcha POST so'rovlar |
Authorization | Bearer {access_token} | sign-in dan tashqari barcha so'rovlar |
Accept-Language | uz / ru / en | Ixtiyoriy — message tili |
Xavfsizlik. client_secretvaaccess_tokenfaqat mijoz backendida saqlanishi kerak. Ularni hech qachon brauzerga yubormang. Mijoz frontendiga faqatsession_idkerak.
POST{base_url}/v1/auth/sign-in — Authorization sarlavhasisizapplication/json| Maydon | Turi | Majburiy | Uzunlik / format | Tavsif |
|---|---|---|---|---|
client_id | string | Ha | Bo'sh emas; raqam bilan boshlanmaydi | RS-ID bergan mijoz identifikatori. |
client_secret | string | Ha | Bo'sh emas | RS-ID bergan mijoz siri. |
{
"client_id": "web-sdk-client",
"client_secret": "s3cr3t-value"
}| Maydon | Turi | Tavsif |
|---|---|---|
data.access_token | string (JWT) | Authorization: Bearer sarlavhasi uchun token. |
data.token_type | string | Har doim Bearer. |
data.expires_in | integer | Tokenning amal qilish muddati, soniyalarda. |
data.scope | string | Berilgan huquqlar, bo'sh joy bilan ajratilgan. |
data.refresh_token | string (JWT) | Hisob ma'lumotlarini qayta yubormasdan yangi access_token olish uchun token. |
code | integer | Muvaffaqiyatda 0. |
message | string | Natija matni. |
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "read write",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
},
"code": 0,
"message": "Success"
}POST {base_url}/v1/auth/refresh?token={refresh_token}. Har bir sessiya uchun qayta avtorizatsiya qilmang — tokendan muddati tugaguncha qayta foydalaning.refresh_token orqali qayta avtorizatsiyasiz yangi access_token beradi. access_token muddati tugaganda (expires_in soniyadan keyin) chaqiring.POST{base_url}/v1/auth/refresh?token={refresh_token} — Authorization sarlavhasisiz.application/json| Maydon | Turi | Majburiy | Uzunlik / format | Tavsif |
|---|---|---|---|---|
token | string | Ha | JWT | Avtorizatsiyadan (7.1) yoki oldingi yangilash javobidan olingan refresh_token. |
client_id | string | Ha | Bo'sh emas | RS-ID bergan mijoz identifikatori. |
| Maydon | Turi | Tavsif |
|---|---|---|
data.access_token | string (JWT) | Authorization: Bearer sarlavhasi uchun yangi token. |
data.token_type | string | Har doim Bearer. |
data.expires_in | integer | Tokenning amal qilish muddati, soniyalarda. |
data.scope | string | Berilgan huquqlar, bo'sh joy bilan ajratilgan. |
code | integer | Muvaffaqiyatda 0. |
message | string | Natija matni. |
{
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "read write"
},
"code": 0,
"message": "Success"
}ip_address qiymatiga bog'lanadi. Bu sessiya faqat foydalanuvchining joriy qurilmasida va faqat bir marta ishlashini ta'minlaydi.POST{base_url}/v1/sessionsBearer {access_token}application/json| Maydon | Turi | Majburiy | Uzunlik / format | Tavsif |
|---|---|---|---|---|
client_type | string (enum) | Ha | WEB | Integratsiya kanali. Web SDK uchun har doim WEB. |
ip_address | string | Ha | IPv4 / IPv6 | Foydalanuvchining ommaviy IP-manzili (foydalanuvchining backendingizga so'rovidan oling). RS-ID sahifasi faqat shu IP dan ishlaydi — quyidagi izohga qarang. |
user_info | object | Yo'q | — | Fuqaro ma'lumotlari. user_info bilan sessiya yaratish uchun yuboring; user_info siz sessiya uchun yubormang. |
user_info.pinfl | string | Shartli | Aniq 14 ta raqam | JSHSHIR. Yoki pinfl, yoki id_number yuboring, ikkalasini emas. |
user_info.id_number | string | Shartli | 9 belgi: 2 ta harf + 7 ta raqam, masalan AA1234567 | Pasport / ID-karta raqami. Yoki pinfl, yoki id_number yuboring, ikkalasini emas. |
user_info.birth_date | string | user_info yuborilsa, ha | dd.MM.yyyy | Tug'ilgan sana. Foydalanuvchi kamida 16 yoshda bo'lishi kerak. |
external_id | string | Yo'q | — | Sessiyani o'z ma'lumotlaringiz bilan bog'lash uchun o'z identifikatoringiz (buyurtma, ariza yoki mijoz). Tasodifiy uuid tavsiya etiladi. |
retry_count | integer | Yo'q | > 0 | Maksimal urinishlar soni. Yuborilmasa, 0 yoki tizim maksimumidan katta bo'lsa, tizim maksimumi ishlatiladi. |
threshold | number | Yo'q | 0.0 – 1.0 | O'tish uchun yuzlar o'xshashligining minimal chegarasi. Yuborilmasa, standart qiymat ishlatiladi. |
locale | string (enum) | Yo'q | UZ, RU, EN | Standart qiymat UZ. |
additional_params | object | Yo'q | Faqat quyidagi kalitlar | RS-ID sahifasi sozlamalari. Boshqa har qanday kalit rad etiladi. |
additional_params.redirect_url | string | Tavsiya etiladi | URL | Muvaffaqiyatli identifikatsiyadan so'ng foydalanuvchi yuboriladigan manzil (7.6 ga qarang). |
additional_params.lang | string | Yo'q | uz, ru, en | RS-ID sahifasi tili. |
additional_params.theme | string | Yo'q | masalan light, dark | RS-ID sahifasi mavzusi. |
additional_params.primary_color | string | Yo'q | HEX rang, masalan #1A73E8 | RS-ID sahifasining asosiy rangi. |
Chegara (threshold). threshold— identifikatsiyadan o'tish uchun selfi pasport fotosurati bilan taqqoslanganda olishi kerak bo'lgan minimal o'xshashlik bahosi (0.0dan1.0gacha). Parametr yuborilmasa, standart qiymat0.5ishlatiladi. Agar o'zingiz yuborsangiz,0.5dan yuqori qiymat tavsiya etiladi. Yuqori aniqlikdagi (qat'iy) identifikatsiya uchun0.7dan yuqori qiymat yuboring. Qiymat qanchalik yuqori bo'lsa, tekshiruv shunchalik qat'iy va boshqa odamning o'tib ketish xavfi past bo'ladi, lekin haqiqiy foydalanuvchilarga ko'proq urinish kerak bo'lishi mumkin.
IP ga bog'lanish. Sessiya ip_addressga bog'lanadi. Foydalanuvchi RS-ID sahifasini ochganda, RS-ID uning IP manzilini shu qiymat bilan solishtiradi. Mos kelmasa, sahifa xato ko'rsatadi (-1028). Serveringiz IP manzilini emas, foydalanuvchining haqiqiy ommaviy IP manzilini yuboring.
| Maydon | Turi | Uzunlik / format | Tavsif |
|---|---|---|---|
data | string | UUID, 36 belgi | session_id. RS-ID sahifasini ochish va natijani olish uchun ishlating. |
code | integer | Muvaffaqiyatda 0. | |
message | string | Natija matni. |
{
"data": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"code": 0,
"message": "Success"
}| Kod | Sabab |
|---|---|
-1000 | Noto'g'ri so'rov — masalan, user_info da pinfl / id_number ikkalasi ham yuborilgan yoki hech biri yuborilmagan. |
-1002 | Hisob ma'lumotlari Web SDK mijoziga tegishli emas. |
-1024 | id_number formati noto'g'ri. |
-1025 | pinfl formati noto'g'ri. |
-1026 | birth_date yuborilmagan. |
-1034 | additional_params da noma'lum kalit. |
-1052 | threshold 0–1 oralig'idan tashqarida. |
-1090 | Foydalanuvchi 16 yoshga to'lmagan. |
400 | Maydon validatsiyasi xatosi, masalan ip address cannot be blank. |
session_id bilan mijoz frontendi RS-ID sahifasini ochadi — yo'naltirish (3.1) yoki iFrame (3.2) orqali:| Muhit | URL |
|---|---|
| Stage | https://sdk.stage.rsid.uz/?session_id={session_id} |
| Production | https://sdk.rsid.uz/?session_id={session_id} |
| Sahifa rejimi | Qachon ko'rsatiladi | Foydalanuvchi nima qiladi |
|---|---|---|
| with_info | Sessiya user_info siz yaratilgan (2-variant) | Ma'lumotlarini kiritadi, so'ng selfi oladi |
| without_info | Sessiya user_info bilan yaratilgan (1-variant) | Faqat selfi oladi |
dd.mm.yyyy) kiritadi, so'ng Davom etish tugmasini bosadi.redirect_url ga yo'naltiriladi (7.6).redirect_url ga yo'naltiriladi (7.6).retry_count), qayta urinish imkonini beradi. Urinishlar tugaganda yoki sessiya muddati o'tganda sahifa xato ko'rsatadi va mijoz yangi sessiya yaratishi kerak.additional_params.redirect_url ga yo'naltiradi.redirect_url ga o'tadi; undan ota sahifani xabardor qilish uchun foydalaning (3.2 ga qarang).redirect_url ga o'z identifikatoringizni qo'shing (masalan ?order=ORDER-123). So'ng mijoz backendi natijani oladi (7.7).Yo'naltirishning o'zini identifikatsiya tasdig'i deb hisoblamang — bu URL ni istalgan kishi ochishi mumkin. Natijani har doim backendingizdan 7.7 orqali tasdiqlang.
GET{base_url}/v1/user/{session_id}Bearer {access_token}| Maydon | Turi | Majburiy | Uzunlik / format | Tavsif |
|---|---|---|---|---|
session_id | string | Ha | UUID, 36 belgi | 7.3 dan. |
| Maydon | Turi | Tavsif |
|---|---|---|
data.session_id | string | Sessiya identifikatori. |
data.comparison_value | number | Yuzlar o'xshashligi bahosi, 0–1. |
data.note | string | Xato haqida izoh, agar bo'lsa. |
data.profile.user_info.first_name | string | Ism. |
data.profile.user_info.last_name | string | Familiya. |
data.profile.user_info.middle_name | string | Otasining ismi. |
data.profile.user_info.pinfl | string | JSHSHIR, 14 ta raqam. |
data.profile.user_info.gender | string | Jinsi. |
data.profile.user_info.birth_date | string | yyyy-MM-dd. |
data.profile.user_info.birth_place | string | Tug'ilgan joyi. |
data.profile.user_info.birth_country | string | Tug'ilgan mamlakati. |
data.profile.user_info.nationality | string | Millati. |
data.profile.user_info.citizenship | string | Fuqaroligi. |
data.profile.document_info.document | string | Hujjat seriyasi va raqami. |
data.profile.document_info.type | string | Hujjat turi. |
data.profile.document_info.issued_by | string | Kim tomonidan berilgan. |
data.profile.document_info.issued_at | string | Berilgan sana, yyyy-MM-dd. |
data.profile.document_info.expiry_at | string | Amal qilish muddati, yyyy-MM-dd. |
data.profile.permanent_address | object | country, country_id, region_id, district_id, address. |
data.profile.temporary_address | object | null bo'lishi mumkin. |
{
"data": {
"session_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"comparison_value": 0.93,
"profile": {
"user_info": {
"first_name": "ALISHER",
"last_name": "KARIMOV",
"middle_name": "BAXTIYOROVICH",
"pinfl": "12345678901234",
"gender": "MALE",
"birth_date": "1990-01-01",
"birth_place": "TOSHKENT",
"birth_country": "UZBEKISTAN",
"nationality": "UZBEK",
"citizenship": "UZBEKISTAN"
},
"document_info": {
"document": "AA1234567",
"type": "PASSPORT",
"issued_by": "IIV 26283",
"issued_at": "2018-05-10",
"expiry_at": "2028-05-09"
},
"contact_info": {},
"permanent_address": {
"country": "UZBEKISTAN",
"country_id": 182,
"region_id": 26,
"district_id": 2603,
"address": "..."
},
"temporary_address": null
}
},
"code": 0,
"message": "Success"
}| Kod | Sabab |
|---|---|
-1005 | Identifikatsiya muvaffaqiyatsiz. |
-1027 | Sessiya muddati tugagan — natijani yo'naltirishdan so'ng darhol so'rang. |
-1029 | Sessiya topilmadi. |
-1002 | Sessiya boshqa mijozga tegishli. |
| Kod | Nomi | Ma'nosi |
|---|---|---|
0 | SUCCESS | Muvaffaqiyat. |
-5 | BAD_CREDENTIALS | Hisob ma'lumotlari noto'g'ri yoki token foydalanuvchisi topilmadi. |
-9 | SYSTEM_ERROR | Kutilmagan server xatosi. |
-1000 | BAD_REQUEST | Noto'g'ri so'rov. |
-1002 | CLIENT_NOT_PERMITTED | Bu mijoz uchun ruxsat yo'q. |
-1005 | UNSUCCESS_JOB | Identifikatsiya muvaffaqiyatsiz. |
-1008 | IDENTIFICATION_FAILED | Yuz mos kelmadi. |
-1024 | INVALID_ID_NUMBER | Hujjat raqami noto'g'ri. |
-1025 | INVALID_PINFL | JSHSHIR noto'g'ri. |
-1026 | BIRTH_DATE_NOT_NULL | Tug'ilgan sana talab qilinadi. |
-1027 | SESSION_EXPIRED | Sessiya muddati tugagan. |
-1028 | IP_RESTRICTED_FOR_SESSION | Foydalanuvchi IP manzili sessiyaning ip_address bilan mos kelmaydi. |
-1029 | JOB_SESSION_NOT_FOUND | Sessiya topilmadi. |
-1031 | RETRY_COUNT_EXPIRED | Urinishlar tugadi. |
-1032 | SUCCESS_JOB_EXISTS_FOR_SESSION | Sessiya allaqachon muvaffaqiyatli o'tilgan. |
-1033 | SPOOFED_FILE_DETECTED | "Tiriklik" tekshiruvidan o'tilmadi. |
-1034 | ADDITIONAL_PARAMS_INVALID | additional_params da noma'lum kalit. |
-1052 | INVALID_THRESHOLD_LIMIT | threshold 0–1 oralig'idan tashqarida. |
-1090 | USER_AGE_OLDER_THAN_16 | Foydalanuvchi kamida 16 yoshda bo'lishi kerak. |
-2001 | AI_ERROR | Yuzni aniqlash servisida xato. |