Skip to content

API bilan ishlash ​

Integration API — bu integratsiyangiz mijoz ma'lumotini o'qiydigan va yozadigan yuza. Bitta bazaviy URL, bitta javob formati va 464 ta endpoint.

MuhitBazaviy URL
Prodhttps://api.bito.uz/integration-api/integration/api/v2/
Devhttps://api.systematicdev.uz/integration-api/integration/api/v2/

To'liq endpointlar ro'yxati, har biri uchun so'rov va javob sxemalari bilan — API ma'lumotnomasida.

Avtorizatsiyaning ikki usuli ​

Ikkalasi ham bir xil endpointlarga va bir xil ma'lumotga olib boradi. Tanlov nechta mijozga xizmat qilishingizga bog'liq.

API kalitOAuth 2.0
Sarlavhaapi-key: <username>:<secret>Authorization: Bearer <access_token>
Nechta akkauntBitta — o'zingiznikiKo'p
MuddatCheksizAccess 24 soat, refresh 90 kun
SozlashIntegratsiyadan ko'chirib olishMijoz o'rnatadi va tasdiqlaydi
QachonO'z bekofisingiz, skriptlar, bitta mijoz uchun integratsiyaMarketplace integratsiyalari

API kalit ​

api_key'ni api-key sarlavhasida yuboring. Token almashish ham, amal qilish muddati ham yo'q.

http
POST https://api.bito.uz/integration-api/integration/api/v2/product/get-paging
api-key: mycompany:9ad41c0e7b3f28d5610ac94e7f1b26d8
Content-Type: application/json

{ "page": 1, "limit": 20 }

OAuth 2.0 ​

Har bir o'rnatish o'z token juftligini beradi, token esa akkaunt kontekstini olib yuradi — shuning uchun har bir murojaat avtomatik ravishda kerakli mijoz ma'lumoti bilan cheklanadi va akkaunt identifikatorini yuborish shart emas.

http
POST https://api.bito.uz/integration-api/integration/api/v2/product/get-paging
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
Content-Type: application/json

{ "page": 1, "limit": 20 }

Tokenni qanday olish — OAuth 2.0: umumiy bo'limida.

Oldindan bilishingiz kerak bo'lgan qoidalar ​

HTTP metodlar ​

Metod har bir endpoint shartnomasining bir qismi:

MetodNima uchunMisol
POSTYozuv yaratish va har qanday ro'yxat yoki filtr so'roviPOST /product/create, POST /product/get-paging
PUTYozuvni yangilash yoki holatini o'zgartirishPUT /product/update, PUT /production-operation/set-state
GETBitta yozuvni id bo'yicha o'qish va tanasiz so'rovlarGET /product/get-by-id/{id}, GET /product/get-deleted
DELETEYozuvni o'chirishDELETE /product/delete/{id}

Ro'yxatlar POST orqali ishlaydi, chunki filtrlar so'rov satrida emas, JSON tanasida yuboriladi. Har bir endpointning metodi API ma'lumotnomasidagi o'z sahifasida ko'rsatilgan.

WARNING

Bito'ning admin API'si — veb-panel murojaat qiladigani — faqat POST qabul qiladi. Integration API boshqacha, bu taxminni unga ko'chirmang.

So'rov sarlavhalari ​

SarlavhaMajburiyTavsif
api-key yoki AuthorizationHaYuqoridagi ikki usuldan biri
Content-TypeHaapplication/json
Accept-LanguageYo'quz, uz_cyrillic, ru, en, kk, tg, ky. Standart — uz. message maydonining tilini belgilaydi.
organization_idYo'qAkkaunt ichidagi tashkilot. Faqat integratsiya sozlamalarida (fields) organization_id maydoni bo'lsa ishlatiladi — aks holda sarlavha e'tiborga olinmaydi. Yuborilmasa, o'sha maydon qiymati olinadi.
warehouse_idYo'qOmbor. Faqat integratsiya sozlamalarida (fields) warehouse_id maydoni bo'lsa ishlatiladi — aks holda sarlavha e'tiborga olinmaydi. Yuborilmasa, o'sha maydon qiymati olinadi.
price_idYo'qNarxlar olinadigan narx ro'yxati. Faqat integratsiya sozlamalarida (fields) price_id maydoni bo'lsa ishlatiladi — aks holda sarlavha e'tiborga olinmaydi. Yuborilmasa, o'sha maydon qiymati olinadi.
role_idYo'qSo'rov bajariladigan rol. Faqat integratsiya sozlamalarida (fields) role_id maydoni bo'lsa ishlatiladi — aks holda sarlavha e'tiborga olinmaydi. Yuborilmasa, o'sha maydon qiymati olinadi.
user_idYo'qSo'rovni shu foydalanuvchi nomidan bajarish. Foydalanuvchi shu akkauntga tegishli va bloklanmagan bo'lishi shart, aks holda so'rov rad etiladi. Yuborilmasa — akkaunt egasi nomidan.

Javob formati ​

Har bir javob — muvaffaqiyatli yoki xatoli — bir xil tuzilishga ega.

json
{
    "code": 0,
    "message": "Success",
    "status_code": 200,
    "messages": { "uz": "Muvaffaqiyatli", "ru": "Успешно", "en": "Successful" },
    "data": { },
    "time": "2025-05-01T12:00:00Z"
}
MaydonMa'nosi
codeMuvaffaqiyatda 0, aks holda xato kodi. Mantiqni shu bo'yicha quring.
messageAccept-Language tilidagi matn. Uni tahlil qilmang.
messagesXuddi shu matn uz, ru va en tillarida.
status_codeHTTP status.
dataFoydali yuk. Xatoda bo'lmaydi.
timeServer vaqti, ISO 8601.

Sahifalash ​

Har bir get-paging endpointi page va limit qabul qiladi va yozuvlar bilan birga umumiy sonni qaytaradi.

So'rov

json
{ "page": 1, "limit": 50 }
MaydonTurStandartChegara
pagenumber1≥ 1
limitnumber201 – 200

Javob

json
{
    "code": 0,
    "message": "Success",
    "status_code": 200,
    "data": {
        "total": 1043,
        "data": [ { "_id": "6712f0a9c4d1e87b3a0f9911", "name": "Espresso" } ]
    },
    "time": "2025-05-01T12:00:00Z"
}

Ichma-ichlikka e'tibor bering: yozuvlar data.data da, soni data.total da. page * limit >= total bo'lguncha varaqlang.

TIP

Ko'pchilik get-paging endpointlari page/limit yonida filtrlarni ham qabul qiladi — xususan updated_at oxirgi sinxronizatsiyadan beri o'zgarganini olish imkonini beradi. Kerakli metodni API ma'lumotnomasida tekshiring.

O'chirish doim yumshoq ​

Bito yozuvlarni jismonan o'chirmaydi: delete chaqiruvi yozuvni o'chirilgan deb belgilaydi. Bu siz uchun ikki narsani anglatadi — ko'p resurslarda get-deleted endpointi bor va saqlab qo'ygan id yo'qolmasdan, o'chirilgan holatda qaytishi mumkin.

Identifikatorlar ​

Har bir _id — 24 belgili MongoDB ObjectId, masalan 6712f0a9c4d1e87b3a0f9911. Uni shunchaki satr deb qarang.

Xatolar ​

Xato javobida code noldan farqli bo'ladi va data bo'lmaydi.

json
{
    "code": 401,
    "message": "Unauthorized user",
    "status_code": 401,
    "messages": { "uz": "...", "ru": "...", "en": "Unauthorized user" },
    "time": "2025-05-01T12:00:00Z"
}
HTTPNima bo'ldiNima qilish kerak
400Validatsiya o'tmadi yoki ko'rsatilgan yozuv yo'qmessage'ni o'qing, so'rov tanasini tuzating
401Kalit yo'q, noto'g'ri yoki muddati tugaganSarlavhani tekshiring, tokenni yangilang
403Integratsiyada bu amal uchun huquq yo'qXabarda kerakli huquq kaliti ko'rsatilgan; uni required_permissions ga qo'shing
404Bunday endpoint yo'qYo'lni API ma'lumotnomasi bilan solishtiring
429So'rovlar chegarasiTezlikni pasaytiring va qayta urinib ko'ring
500Bito tomonidagi nosozlikKechikish bilan qayta urinib ko'ring; takrorlansa — qo'llab-quvvatlashga yozing

WARNING

400 xatosini o'zgartirmasdan qayta yubormang va yozuv so'rovini ko'r-ko'rona takrorlamang: Bito'ning ko'p yozuv metodlari idempotent emas, shuning uchun takroriy create ikkinchi yozuv yaratadi.

Keyingi qadam ​

Bito 2.0 Integration API