# Dasturchilar uchun API

> Dasturchilar uchun API hujjatlari. API yordamida WorkPanni o'z dasturingiz yoki saytingiz bilan integratsiya qilishingiz mumkin

https://workpan.com/uz/doc/api/  
Chop etilgan: 2018-11-29  
Yangilangan: 2026-09-11

---

«WorkPan» API chaqiriladigan metodlar to'plamini o'z ichiga oladi.

API orqali ma'lumotlar bazasiga kirish huquqini olib, «WorkPan»ni istalgan ilova bilan integratsiya qilishingiz mumkin.

Barcha so'rovlarga miqdoriy cheklov qo'llanadi: sekundiga 8 tadan ortiq so'rov yuborib bo'lmaydi.

**API**dan foydalanishdan avval uni yoqib, `token` kalitini generatsiya qilish kerak — buni boshqaruv panelining «Modullar» bo'limida bajarish mumkin. Shundan so'ng APIga yuboriladigan barcha so'rovlar shu `token` parametrini o'z ichiga olishi shart.

So'rovlarni `GET|POST` metodi bilan yuborish mumkin.

Barcha javoblar `JSON` formatida qaytariladi.

`URL:` — bu sizning tizimingiz joylashgan manzil, masalan `https://_SIZNING_LOGININGIZ_.workpan.com`.

Ushbu darsda quyidagi ma'lumotlarga ega **DEMO-tizimdan** foydalanamiz

<dl>
  <dt><code>URL:</code></dt>
  <dd>https://demo.workpan.com</dd>
  <dt><code>token:</code></dt>
  <dd>wt3sctw89sl</dd>
  </dl> 
#### Mundarija:

- [1-bo'lim: Buyurtma holatini olish](#menu_orderStatus)
- [2-bo'lim: Barcha buyurtmalar ID sini olish](#menu_orderIds)
- [3-bo'lim: ID bo'yicha buyurtma ma'lumotlarini olish](#menu_orderById)
- [4-bo'lim: ID bo'yicha kontakt ma'lumotlarini olish](#menu_contactById)
- [5-bo'lim: ID bo'yicha holat ma'lumotlarini olish](#menu_statusById)
- [6-bo'lim: ID bo'yicha xodim ma'lumotlarini olish](#menu_userById)
- [7-bo'lim: ID bo'yicha matn ma'lumotlarini olish (\_tid bilan tugaydigan maydonlar)](#menu_textById)
- [8-bo'lim: ID bo'yicha ma'lumotnomadan ma'lumot olish (\_rid bilan tugaydigan maydonlar)](#menu_rosterById)

### 1-bo'lim: Buyurtma holatini olish

##### So'rov tavsifi:

|                               |                          |
|-------------------------------|--------------------------|
| `Metod`                       | `/api/order-status/`     |
| `token` <sup>(required)</sup> | `(string)` token         |
| `id` <sup>(required)</sup>    | `(integer)` Buyurtma raqami |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|----------|-------------|---------------------------------|
| `status` | `(boolean)` | So'rov holati: **TRUE\|FALSE** |
| `data`   | `(object)`  | Ma'lumotlar obyekti                  |

`data` obyekti haqida batafsil ma'lumot.

<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<thead>
<tr>
<th>Kalit</th>
<th>Tavsif</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>id</code></td>
<td>Buyurtma kaliti</td>
</tr>
<tr>
<td><code>contacts_id</code></td>
<td>Kontakt kaliti</td>
</tr>
<tr>
<td><code>contacts_name</code></td>
<td>Kontakt nomi</td>
</tr>
<tr>
<td><code>global_sid</code></td>
<td>Holat kaliti</td>
</tr>
<tr>
<td><code>global_status_name</code></td>
<td>Holatning to'liq tavsifi</td>
</tr>
<tr>
<td><code>global_status_name_sm</code></td>
<td>Holatning qisqa tavsifi</td>
</tr>
<tr>
<td><code>global_status_class</code></td>
<td>Holat klassi: <code>('none','warning','success','important','info','inverse')</code></td>
</tr>
<tr>
<td><code>global_status_type</code></td>
<td>Holat turi: <code>(1 = kutish, 2 = ochiq, 3 = ishda, 4 = muvaffaqiyat, 5 = xato, 6 = yopiq)</code></td>
</tr>
<tr>
<td><code>gid</code></td>
<td>Qurilma turi kaliti</td>
</tr>
<tr>
<td><code>g_name</code></td>
<td>Qurilma turi</td>
</tr>
<tr>
<td><code>bid</code></td>
<td>Brend kaliti</td>
</tr>
<tr>
<td><code>b_name</code></td>
<td>Brend</td>
</tr>
<tr>
<td><code>models_id</code></td>
<td>Model kaliti</td>
</tr>
<tr>
<td><code>m_name</code></td>
<td>Model</td>
</tr>
<tr>
<td><code>imei</code></td>
<td>Qurilma IMEI si</td>
</tr>
<tr>
<td><code>bt_data</code></td>
<td>Nosozlik tavsifi</td>
</tr>
<tr>
<td><code>nt_data</code></td>
<td>Buyurtmaga izoh</td>
</tr>
<tr>
<td><code>discount_name</code></td>
<td>Chegirma</td>
</tr>
<tr>
<td><code>sumPrice</code></td>
<td>Xizmatlar summasi</td>
</tr>
<tr>
<td><code>sumDiscount</code></td>
<td>Chegirma summasi</td>
</tr>
<tr>
<td><code>sumTotal</code></td>
<td>Yakuniy summa</td>
</tr>
<tr>
<td><code>repairs</code></td>
<td>Ta'mir turlari obyektlari massivi:<br />
<br />
&#10;<ul>
<li><code>orders_repairs_id</code> — ta'mir tiketi</li>
<li><code>products_rosters_id</code> — ta'mir turi kaliti</li>
<li><code>products_rosters_name</code> — nomi</li>
<li><code>price</code> — narxi</li>
</ul></td>
</tr>
<tr>
<td><code>details</code></td>
<td>Butlovchi qismlar obyektlari massivi:<br />
<br />
&#10;<ul>
<li><code>orders_details_id</code> — xarid tiketi</li>
<li><code>details_rosters_id</code> — detal kaliti</li>
<li><code>details_rosters_name</code> — nomi</li>
<li><code>price</code> — narxi</li>
</ul></td>
</tr>
</tbody>
</table>

#### [So'rov namunasi:](#request_orderStatus)

    <?php
    $url = 'https://demo.workpan.com/api/order-status/';
    $token = 'wt3sctw89sl'; // Namunaviy token, uni shaxsiy kabinetdan olish mumkin
    $id = 10; // Namunaviy buyurtma kaliti
    $postData = array(
        'token' => $token,
        'id' => $id
    );
    $post = http_build_query($postData);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $response = curl_exec($ch);
    curl_close($ch);

    // Ma'lumotlarni chiqarish
    $obj = json_decode($response);
    var_dump($obj);

#### [Javob namunasi:](#result_orderStatus)

    {
        "data": {
            "id": "10",
            "contacts_id": "23",
            "contacts_name": "Мария",
            "global_sid": "27",
            "global_status_name": "Выдан с ремонтом",
            "global_status_name_sm": "Выдан с ремонтом",
            "global_status_class": "info",
            "global_status_type": "4",
            "gid": "2",
            "g_name": "Планшет",
            "bid": "1",
            "b_name": "3Q",
            "models_id": "17",
            "m_name": "3Q Q-pad MT0729D",
            "imei": null,
            "bt_data": "После попадания воды планшет не включается, так же разбит дисплей",
            "nt_data": null,
            "discount_name": null,
            "sumPrice": "7500.00",
            "sumDiscount": "0.00",
            "sumTotal": "7500.00",
            "repairs": [
                {
                    "orders_repairs_id": "34",
                    "products_rosters_id": "1",
                    "products_rosters_name": "Диагностика",
                    "price": "0"
                },
                {
                    "orders_repairs_id": "35",
                    "products_rosters_id": "2",
                    "products_rosters_name": "Чистка после попадания воды",
                    "price": "1500"
                },
                {
                    "orders_repairs_id": "36",
                    "products_rosters_id": "85",
                    "products_rosters_name": "Замена модуля (стекло, тачскрин и дисплей)",
                    "price": "1500"
                }
            ],
            "details": [
                {
                    "orders_details_id": "5",
                    "details_rosters_id": "48",
                    "details_rosters_name": "Модуль (стекло, тачскрин и дисплей)",
                    "price": "4500"
                }
            ]
        },
        "status": true
    }

### 2-bo'lim: Barcha buyurtmalar ID sini olish

##### So'rov tavsifi:

|  |  |
|----|----|
| `Metod` | `/api/get-orders-ids/` |
| `token` <sup>(required)</sup> | `(string)` token |
| `page` | `(integer)` Sahifa raqami |
| `create_date_start` | `(integer)` Buyurtma yaratilgan sana, boshlanish (UNIXTIMESTAMP) |
| `create_date_end` | `(integer)` Buyurtma yaratilgan sana, tugash (UNIXTIMESTAMP) |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|-------------|------------|-----------------------------------------------------|
| `paginator` | `(object)` | So'rov bo'yicha sahifalash ma'lumotlari obyekti              |
| `items`     | `(object)` | Buyurtmalar ID si — keyinchalik to'liq ma'lumot olish uchun |

#### [Javob namunasi:](#result_orderIds)

    {
      "paginator": {
        "pageCount": 2,
        "itemCountPerPage": 10,
        "first": 1,
        "current": 1,
        "last": 2,
        "next": 2,
        "pagesInRange": {
          "1": 1,
          "2": 2
        },
        "firstPageInRange": 1,
        "lastPageInRange": 2,
        "currentItemCount": 10,
        "totalItemCount": 11,
        "firstItemNumber": 1,
        "lastItemNumber": 10
      },
      "items": [
        "1",
        "2",
        "9",
        "22",
        "29",
        "30",
        "31",
        "32",
        "33",
        "34"
      ]
    }

### 3-bo'lim: ID bo'yicha buyurtma ma'lumotlarini olish

##### So'rov tavsifi:

|                               |                          |
|-------------------------------|--------------------------|
| `Metod`                       | `/api/get-order-by-id/`  |
| `token` <sup>(required)</sup> | `(string)` token         |
| `id` <sup>(required)</sup>    | `(integer)` Buyurtma raqami |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|----|----|----|
| `id` | `(integer)` | Buyurtma ID si |
| `contacts_id` | `(integer)` | Kontakt/mijoz ID si <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `models_id` | `(integer)` | Model ID si |
| `models_name` | `(string)` | Model nomi |
| `models_gadgets_id` | `(integer)` | Qurilma turi ID si |
| `models_gadgets_name` | `(string)` | Qurilma turi nomi |
| `models_brands_id` | `(integer)` | Brend ID si |
| `models_brands_name` | `(string)` | Brend nomi |
| `services_id` | `(integer)` | Servis markazi ID si |
| `create_uid` | `(integer)` | Buyurtmani yaratgan foydalanuvchi ID si (ma'lumot uchun tegishli bo'limga qarang) |
| `create_date` | `(datetime)` | Buyurtma yaratilgan sana |
| `create_date_u` | `(integer)` | Buyurtma yaratilgan sana (UNIXTIMESTAMP) |
| `priority` | `(integer)` | Buyurtma ustuvorligi `(1, 2, 3)` |
| `isService` | `(boolean)` | Qurilma qayerda `(0 => mijozda, 1 => servis markazida)` |
| `isWarranty` | `(boolean)` | Kafolatli buyurtmami? `(0 => yo'q, 1 => ha)` |
| `isClose` | `(boolean)` | Buyurtma yopilganmi? `(0 => yo'q, tahrirlash mumkin, 1 => ha, yopiq)` |
| `bug_tid` | `(integer)` | Nosozlik tavsifi kaliti <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `note_tid` | `(integer)` | Buyurtmaga izoh <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `color_rid` | `(integer)` | Qurilma rangi <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `discount_rid` | `(integer)` | Buyurtma bo'yicha chegirma <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `discount_type` | `(integer)` | Chegirma turi `(1 => ishga, 2 => hammasiga)` |
| `oriented` | `(integer)` | Kelishilgan summa |
| `imei` | `(string)` | Qurilmaning seriya raqami |
| `cond` | `(string)` | Holati |
| `appearance` | `(string)` | Tashqi ko'rinishi |
| `complete` | `(string)` | Butlanmasi |
| `global_sid` | `(integer)` | Buyurtmaning global holati <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `client_sid` | `(integer)` | Mijoz holati <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `acceptance_sid` | `(integer)` | Qabul holati <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `detail_sid` | `(integer)` | Detallar holati <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `repair_sid` | `(integer)` | Ta'mirlar holati <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `delivery_sid` | `(integer)` | Topshirish holati <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `acceptance_uid` | `(integer)` | Qurilmani qabul qilgan xodim ID si <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `acceptance_date` | `(datetime)` | Qabul sanasi |
| `acceptance_date_u` | `(integer)` | Qabul sanasi (UNIXTIMESTAMP) |
| `delivery_uid` | `(integer)` | Qurilmani topshirgan foydalanuvchi ID si <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |
| `delivery_date` | `(datetime)` | Topshirish sanasi |
| `delivery_date_u` | `(integer)` | Topshirish sanasi (UNIXTIMESTAMP) |
| `delivery_type` | `(integer)` | Topshirish turi `(1 => ta'mir bilan, 2 => ta'mirsiz)` |
| `expect_date` | `(date)` | Kutilayotgan topshirish sanasi |
| `expect_date_u` | `(integer)` | Kutilayotgan topshirish sanasi (UNIXTIMESTAMP) |
| `sumPrice` | `(float)` | Barcha xizmatlar summasi |
| `sumDiscount` | `(float)` | Chegirma summasi |
| `sumTotal` | `(float)` | Yakuniy summa (xizmatlar summasi minus chegirma) |
| `sumExpense` | `(float)` | Xarajatlar summasi |
| `sumPaid` | `(float)` | To'langan |
| `sumIncome` | `(string)` | Foyda |
| `guarantee_rid` | `(string)` | Kafolat kaliti ID si <sup>(to'liq ma'lumot uchun tegishli bo'limga qarang)</sup> |

#### [Javob namunasi:](#result_orderById)

    {
      "id": "31",
      "contacts_id": "23",
      "models_id": "1928",
      "models_name": "Apple iPhone 2G",
      "models_gadgets_id": "1",
      "models_gadgets_name": "Apple",
      "models_brands_id": "5",
      "models_brands_name": "Телефон",
      "services_id": "2",
      "create_uid": "1",
      "create_date": "2018-07-05 16:30:55",
      "create_date_u": "1530790255",
      "priority": "2",
      "isService": "1",
      "isWarranty": "0",
      "isClose": "0",
      "bug_tid": "10",
      "note_tid": null,
      "color_rid": "107",
      "discount_rid": null,
      "discount_type": null,
      "oriented": "0",
      "imei": "",
      "cond": "Б/У",
      "appearance": "Потертости,Царапины",
      "complete": "Без упаковки,Без флешки,Без СЗУ,Без аккумлятора",
      "global_sid": "14",
      "client_sid": "7",
      "acceptance_sid": "10",
      "detail_sid": "14",
      "repair_sid": "21",
      "delivery_sid": null,
      "acceptance_uid": "1",
      "acceptance_date": "2019-01-19 14:36:40",
      "acceptance_date_u": "1547890600",
      "delivery_uid": null,
      "delivery_date": null,
      "delivery_date_u": null,
      "delivery_type": null,
      "expect_date": "2019-03-11",
      "expect_date_u": "1552244400",
      "sumPrice": "1000.00",
      "sumDiscount": "0.00",
      "sumTotal": "1000.00",
      "sumExpense": "0.00",
      "sumPaid": "1000.00",
      "sumIncome": "1000.00",
      "guarantee_rid": null
    }

### 4-bo'lim: ID bo'yicha kontakt ma'lumotlarini olish

##### So'rov tavsifi:

|                               |                            |
|-------------------------------|----------------------------|
| `Metod`                       | `/api/get-contact-by-id/`  |
| `token` <sup>(required)</sup> | `(string)` token           |
| `id` <sup>(required)</sup>    | `(integer)` Kontakt raqami |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|----|----|----|
| `id` | `(integer)` | Kontakt ID si |
| `name` | `(string)` | Nomi |
| `create_users_id` | `(integer)` | Kontaktni yaratgan foydalanuvchi |
| `date_create` | `(datetime)` | Yaratilgan sana |
| `date_create_u` | `(integer)` | Yaratilgan sana (UNIXTIMESTAMP) |
| `date_update` | `(datetime)` | Yangilangan sana |
| `date_update_u` | `(integer)` | Yangilangan sana (UNIXTIMESTAMP) |
| `types` | `(string)` | Kontakt turi `(ENUM('client','organization','provider'))` |
| `status` | `(integer)` | Holati |
| `update_users_id` | `(integer)` | Kontaktni yangilagan foydalanuvchi ID si |
| `communications` | `(object)` | Kontakt bilan aloqa ma'lumotlari massivi (telefon, sayt, manzil va boshqalar) |

#### [Javob namunasi:](#result_contactById)

    {
      "id": "23",
      "name": "Мария",
      "create_users_id": "1",
      "date_create": "2018-06-11 18:38:11",
      "date_create_u": "1528724291",
      "date_update": "2019-03-29 16:44:23",
      "date_update_u": "1553859863",
      "types": "client",
      "status": "1",
      "update_users_id": "1",
      "communications": [
        {
          "rosters_id": "1",
          "rosters_name": "Телефон",
          "rosters_type_id": "17",
          "rosters_type_name": "Мобильный",
          "data": "78124987856"
        },
        {
          "rosters_id": "1",
          "rosters_name": "Телефон",
          "rosters_type_id": "16",
          "rosters_type_name": "Рабочий",
          "data": "7495123456"
        }
      ]
    }

### 5-bo'lim: ID bo'yicha holat ma'lumotlarini olish

##### So'rov tavsifi:

|                               |                          |
|-------------------------------|--------------------------|
| `Metod`                       | `/api/get-status-by-id/` |
| `token` <sup>(required)</sup> | `(string)` token         |
| `id` <sup>(required)</sup>    | `(integer)` Holat ID si   |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|----|----|----|
| `id` | `(integer)` | Holat ID si |
| `name` | `(string)` | Nomi |
| `name_small` | `(string)` | Qisqa nomi |
| `status_groups_id` | `(integer)` | Holat guruhi ID si |
| `status_groups_name` | `(string)` | Holat guruhi nomi |
| `class` | `(string)` | class `ENUM('none','warning','success','important','info','inverse')` |
| `class_i` | `(integer)` | class integer |
| `type` | `(string)` | type `ENUM(kutish, ochiq, ishda, muvaffaqiyat, xato, yopiq)` |
| `type_i` | `(integer)` | type integer |

#### [Javob namunasi:](#result_statusById)

    {
      "id": "14",
      "name": "Требуется назначить закупщика",
      "name_small": "Тр. назначить закупщика",
      "status_groups_id": "4",
      "status_groups_name": "Запчасти",
      "class": "warning",
      "class_i": "2",
      "type": "ожидание",
      "type_i": "1"
    }

### 6-bo'lim: ID bo'yicha xodim ma'lumotlarini olish

##### So'rov tavsifi:

|                               |                           |
|-------------------------------|---------------------------|
| `Metod`                       | `/api/get-user-by-id/`    |
| `token` <sup>(required)</sup> | `(string)` token          |
| `id` <sup>(required)</sup>    | `(integer)` Xodim ID si |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|------------|-------------|---------------|
| `id`       | `(integer)` | Xodim ID si |
| `name`     | `(string)`  | Ismi |
| `lastname` | `(string)`  | Familiyasi |

#### [Javob namunasi:](#result_userById)

    {
      "id": "1",
      "create_date": "2018-04-18 19:11:42",
      "create_date_u": "1524060702",
      "create_uid": "1",
      "name": "Иван",
      "lastname": "Иванов",
      "patronymic": null,
      "login": "ivanov123",
      "auths_groups_id": "1",
      "isAdmin": "1",
      "services_id": "1",
      "status_id": "50",
      "rosters_posts_id": "1",
      "date_birth": "1989-01-01",
      "date_birth_u": "614372400",
      "note": null,
      "career_start": "2018-02-01",
      "career_end": null,
      "communications": [
        {
          "rosters_id": "1",
          "rosters_name": "Телефон",
          "rosters_type_id": null,
          "rosters_type_name": null,
          "data": "+749512346"
        },
        {
          "rosters_id": "3",
          "rosters_name": "E-mail",
          "rosters_type_id": null,
          "rosters_type_name": null,
          "data": "info@example.com"
        },
        {
          "rosters_id": "12",
          "rosters_name": "Мессенджер",
          "rosters_type_id": null,
          "rosters_type_name": null,
          "data": "skype_name"
        }
      ]
    }

### 7-bo'lim: ID bo'yicha matn ma'lumotlarini olish (\_tid bilan tugaydigan maydonlar)

##### So'rov tavsifi:

|  |  |
|----|----|
| `Metod` | `/api/get-text-by-id/` |
| `token` <sup>(required)</sup> | `(string)` token |
| `id` <sup>(required)</sup> | `(integer)` Kerakli yozuv ID si \| yuqoridagi so'rovlardagi `_tid` maydonlari |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|--------|-------------|----------|
| `id`   | `(integer)` | ID       |
| `data` | `(string)`  | Ma'lumot |

#### [Javob namunasi:](#result_textById)

    {
      "id": "15",
      "data": "Не заряжается"
    }

### 8-bo'lim: ID bo'yicha ma'lumotnomadan ma'lumot olish (\_rid bilan tugaydigan maydonlar)

##### So'rov tavsifi:

|  |  |
|----|----|
| `Metod` | `/api/get-roster-by-id/` |
| `token` <sup>(required)</sup> | `(string)` token |
| `id` <sup>(required)</sup> | `(integer)` Kerakli yozuv ID si \| yuqoridagi so'rovlardagi `_rid` maydonlari |

##### Javob tavsifi:

| Kalit | Turi | Tavsif |
|--------|-------------|----------|
| `id`   | `(integer)` | ID       |
| `name` | `(string)`  | Nomi |

#### [Javob namunasi:](#result_rosterById)

    {
      "id": "15",
      "name": "Банковские реквизиты"
    }