Ushbu bo'lim jo'natma bo'yicha narxni hisoblash, buyurtma yaratish va jo'natmaning holatlar tarixini olish uchun API'larni tavsiflaydi.
Barcha so'rovlar {BASE_URL}/api/v2/orders/... manziliga yuboriladi.
Bazaviy URL va token Starex tomonidan beriladi.
Authorization: Bearer {TOKEN}
Content-Type: application/json
Accept: application/json
Accept-Language: uz
-401 xatoligi qaytadi.
Metodlar ro'yxati:
| Metod | Manzil | Vazifasi |
|---|---|---|
| POST | /api/v2/orders/calculate |
Yetkazish narxini hisoblash |
| POST | /api/v2/orders/create |
Buyurtma (jo'natma) yaratish |
| GET | /api/v2/orders/trace |
Jo'natmaning holatlar tarixi |
4500000 —
bu 45 000 so'm.
service maydoni jo'natma qayerga yetkazilishini belgilaydi va
boshqa qaysi maydonlar majburiy bo'lishini aniqlaydi.
service | Turi | Majburiy maydon |
|---|---|---|
1 |
Uyigacha (kuryer manzilga yetkazadi) | receiver_district_id + receiver_address |
2 |
PVZgacha (filialdan olib ketiladi) | receiver_branch_id |
Tuman va filial ID'lari Ma'lumotnomalar bo'limidagi API'lardan olinadi.
service = 1 bo'lganda receiver_branch_id e'tiborga
olinmaydi, service = 2 bo'lganda esa receiver_district_id
e'tiborga olinmaydi.
Jo'natma yaratishdan oldin yetkazish narxini hisoblab olish uchun.
POST
{BASE_URL}/api/v2/orders/calculate
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
sender_district_id | integer | Ha | Yuboruvchi tumani ID |
sender_address | string | Yo'q | Yuboruvchi manzili |
service | integer | Ha | 1 — uyigacha, 2 — PVZgacha |
receiver_district_id | integer | service=1 uchun ha | Qabul qiluvchi tumani ID |
receiver_branch_id | integer | service=2 uchun ha | Filial (PVZ) ID |
receiver_address | string | Yo'q | Qabul qiluvchi manzili |
weight | number | Ha | Og'irligi, kg (masalan 1.5) |
POST {BASE_URL}/api/v2/orders/calculate
Authorization: Bearer {TOKEN}
Content-Type: application/json
{
"sender_district_id": 12,
"sender_address": "Amir Temur ko'chasi, 1",
"receiver_district_id": 45,
"receiver_address": "Mustaqillik ko'chasi, 20",
"weight": 1.5,
"service": 1
}
{
"success": true,
"data": {
"price": 4500000,
"from_town": { "code": 3922, "name": "TASHKENT" },
"to_town": { "code": 3969, "name": "SAMARKAND" },
"mass": 1.5,
"service": { "code": 1, "name": "Kuryerlik yetkazish" }
}
}
| Maydon | Tur | Tavsif |
|---|---|---|
price | integer | Yetkazish narxi, tiyinda |
from_town.code | integer|null | Yuboruvchi shahri kodi (Starex ichki kodi) |
from_town.name | string|null | Yuboruvchi shahri nomi |
to_town.code | integer|null | Qabul qiluvchi shahri kodi |
to_town.name | string|null | Qabul qiluvchi shahri nomi |
mass | number|null | Hisobga olingan og'irlik (kg) |
service.code | integer|null | Yetkazish turi kodi |
service.name | string|null | Yetkazish turi nomi |
service = 2 (PVZ) bo'lganda to_town bo'sh qaytishi
mumkin — bu holda manzil filial orqali aniqlanadi.
Yangi jo'natma yaratadi va shtrix-kod (barcode) qaytaradi.
POST
{BASE_URL}/api/v2/orders/create
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
sender_district_id | integer | Ha | Yuboruvchi tumani ID |
sender_person | string | Yo'q | Yuboruvchi ismi |
sender_phone | string | Yo'q | Yuboruvchi telefoni |
sender_address | string | Yo'q | Yuboruvchi manzili |
service | integer | Ha* | 1 — uyigacha, 2 — PVZgacha |
receiver_district_id | integer | service=1 uchun ha | Qabul qiluvchi tumani ID |
receiver_branch_id | integer | service=2 uchun ha | Filial (PVZ) ID |
receiver_person | string | Ha** | Qabul qiluvchi ismi (jismoniy shaxs) |
receiver_company | string | Ha** | Qabul qiluvchi kompaniya nomi |
receiver_phone | string | Ha | Qabul qiluvchi telefoni |
receiver_address | string | Yo'q | Qabul qiluvchi manzili (uyigacha uchun kerak) |
weight | number | Yo'q | Og'irligi, kg |
* Texnik jihatdan bo'sh qoldirish mumkin, lekin bu holda jo'natma
manzilsiz ketadi — doim 1 yoki 2 yuboring.
** receiver_person yoki receiver_company
dan kamida bittasi bo'lishi shart.
receiver_person va
receiver_company ni bir vaqtda yubormang —
ikkalasi ham yuborilsa, qabul qiluvchi nomi jo'natmaga tushmay qoladi.
Jismoniy shaxs uchun faqat receiver_person, yuridik shaxs uchun
faqat receiver_company yuboring.
POST {BASE_URL}/api/v2/orders/create
Authorization: Bearer {TOKEN}
Content-Type: application/json
{
"sender_district_id": 12,
"sender_person": "Ali Valiyev",
"sender_phone": "998901234567",
"sender_address": "Amir Temur ko'chasi, 1",
"receiver_district_id": 45,
"receiver_person": "Vali Aliyev",
"receiver_phone": "998907654321",
"receiver_address": "Mustaqillik ko'chasi, 20",
"weight": 1.5,
"service": 1
}
{
"sender_district_id": 12,
"sender_person": "Ali Valiyev",
"sender_phone": "998901234567",
"receiver_branch_id": 7,
"receiver_person": "Vali Aliyev",
"receiver_phone": "998907654321",
"weight": 1.5,
"service": 2
}
{
"success": true,
"data": {
"order_code": "AB123456789UZ",
"price": 4500000,
"api_response": {
"orderNo": "123456",
"barcode": "AB123456789UZ",
"error": 0,
"errorMessage": null,
"errorMessageRu": null,
"orderPrice": 45000
}
}
}
| Maydon | Tur | Tavsif |
|---|---|---|
order_code | string|null | Shtrix-kod (barcode) — keyingi barcha so'rovlarda va webhook'da shu ishlatiladi |
price | integer|null | Jo'natma narxi, tiyinda |
api_response.orderNo | string|null | Jo'natmaning ichki raqami |
api_response.barcode | string|null | Shtrix-kod |
api_response.error | integer|null | 0 — muvaffaqiyatli, boshqa qiymat — xatolik |
api_response.errorMessage | string|null | Xatolik matni |
api_response.errorMessageRu | string|null | Xatolik matni (rus tilida) |
api_response.orderPrice | number|null | Narx (so'mda, tiyinsiz) |
"success": true bilan keladi. Shuning uchun har doim
data.api_response.error ni tekshiring:
0 bo'lsa — jo'natma yaratilgan, aks holda — yo'q.
Xatolik bilan qaytgan javob namunasi:
{
"success": true,
"data": {
"order_code": null,
"price": null,
"api_response": {
"orderNo": null,
"barcode": null,
"error": 1,
"errorMessage": "Wrong town code",
"errorMessageRu": "Неверный код города",
"orderPrice": null
}
}
}
Bitta jo'natma bo'yicha holatlar tarixini shtrix-kod orqali qaytaradi.
GET
{BASE_URL}/api/v2/orders/trace
| Parametr | Tur | Majburiy | Tavsif |
|---|---|---|---|
barcode | string | Ha | Jo'natmaning shtrix-kodi |
GET {BASE_URL}/api/v2/orders/trace?barcode=AB123456789UZ
Authorization: Bearer {TOKEN}
Accept: application/json
{
"success": true,
"data": {
"barcode": "AB123456789UZ",
"date": "2026-06-10 09:00:00",
"weight": 1.5,
"recipient": "Vali Aliyev",
"trace": [
{ "code": 1, "name": "Новый", "advanced": "NEW", "statetime": "2026-06-10 09:00:00", "branch": "Toshkent markaziy ombori", "description": "Buyurtma qabul qilindi" },
{ "code": 9, "name": "Доставлен", "advanced": "COMPLETE", "statetime": "2026-06-15 14:30:00", "branch": "Samarqand filiali", "description": "Qabul qiluvchiga topshirildi" }
]
}
}
| Maydon | Tur | Tavsif |
|---|---|---|
barcode | string | Jo'natmaning shtrix-kodi |
date | string|null | Qabul qilingan sana-vaqt |
weight | number|null | Og'irligi (kg) |
recipient | string|null | Qabul qiluvchi |
trace[] | array | Holatlar tarixi (vaqt bo'yicha o'sish tartibida) |
trace[].code | integer | Holat kodi (6-bo'lim) |
trace[].name | string|null | Holat nomi (rus tilida) |
trace[].advanced | string|null | Til-neytral mnemonik kod (masalan NEW) |
trace[].statetime | string|null | Holat vaqti |
trace[].branch | string|null | Holat qayd etilgan filial yoki ombor nomi |
trace[].description | string|null | Holat bo'yicha qo'shimcha izoh |
Shtrix-kod topilmasa:
{
"success": false,
"error": {
"code": -404,
"message": "Ma'lumot topilmadi"
}
}
Jo'natmaning har bir holati raqamli code bilan belgilanadi.
Bu kodlar bir xil ma'noda uchta joyda ishlatiladi:
trace[].code;state;code.Kodlarning ma'nosini olish uchun ma'lumotnoma so'rovi:
GET
{BASE_URL}/api/v2/dictionaries/states
{
"success": true,
"data": [
{ "code": 0, "name": "Ожидает синхронизации", "advanced": "AWAITING_SYNC" },
{ "code": 1, "name": "Новый", "advanced": "NEW" },
{ "code": 9, "name": "Доставлен", "advanced": "COMPLETE" }
]
}
| Maydon | Tur | Tavsif |
|---|---|---|
code | integer | Holat kodi |
name | string|null | Holat nomi (rus tilida) |
advanced | string|null | Barqaror, til-neytral mnemonik kod |
Xatolik bo'lganda javobda success = false bo'ladi va
error obyekti qaytadi:
{
"success": false,
"error": {
"code": -2006,
"message": "Tuman tanlanishi shart"
}
}
| Kod | HTTP | Sabab |
|---|---|---|
422 | 422 | Maydonlar validatsiyasi (masalan receiver_phone yo'q) |
401 | 401 | Token yuborilmagan yoki yaroqsiz |
-423 | 423 | Akkaunt bloklangan |
-401 | 200 | «Buyurtmalar» servisiga ruxsat yo'q |
-500 | 200 | Akkauntingiz uchun kirish sozlamalari to'liq emas — Starex bilan bog'laning |
-2001 | 200 | Yuboruvchi tumani topilmadi |
-2002 | 200 | Qabul qiluvchi tumani topilmadi |
-2004 | 200 | Qabul qiluvchi filiali topilmadi |
-2005 | 200 | receiver_person ham, receiver_company ham yuborilmagan |
-2006 | 200 | service=1, lekin receiver_district_id yo'q |
-2007 | 200 | service=2, lekin receiver_branch_id yo'q |
-404 | 200 | Jo'natma topilmadi (trace uchun) |
100 | 200 | Kutilmagan ichki xatolik |
Accept-Language sarlavhasiga qarab uz,
ru yoki en tilida qaytadi.