# Касса

## Список касс

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/shops/{id}/cash-registers`

Возвращает список доступных касс для мастерской. Для получения списка касс у API должен быть настроен доступ к соответствующей мастерской

#### Path Parameters

| Name                                 | Type   | Description   |
| ------------------------------------ | ------ | ------------- |
| id<mark style="color:red;">\*</mark> | string | id мастерской |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

{% tabs %}
{% tab title="200 В случае если у API не настроен доступ Может видеть деньги в кассе, значения cashMoney и bankMoney будут отсутствовать" %}

```json
{
  data: [
    {
      id: "5e2871b46b9502040ef6ad3a",
      name: "Касса",
      cashMoney: 10000,
      bankMoney: 5000,
      bankPercent: 0,
      isEnableCash: true,
      isEnableBank: true,
      isEnableNegative: true,
      shopId: "5e29bdba6d76c77b5b8714a6",
      isEnableInternalMove: true,
      isDefault: false
    }
  ],
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Список транзакций

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/cash-registers/{id}/cash`

Возвращает список транзакций по кассе. Для доступа к списку транзакций у API должен быть настроен доступ к соответствующей кассе\
\
Для сортировки результата необходимо в параметре **sort** передать строку "**<название\_поля> ASC**" или "**<название\_поля> DESC**". Где **ASC** - сортировать по возрастанию, **DESC** - сортировать по убыванию, **<название\_поля>** - поле по которому осуществляется сортировка, может быть одно из: **node**, **customer**, **id**, **cashRegister**, **date**, **money**, **isBankTransfer**, **counteragent**, **cashItem**, **number, dateChange**. По умолчанию транзакции сортируются от новых к старым\
\
Фильтры по датам передаются в виде массива из двух чисел в формате Unix (**в миллисекундах**), где первый число - это начало диапазона, а второе - конец диапазона. Если какая-то граница диапазона отсутствует, то вместо нее нужно передать null. Например \[1690837200000,1693515599999] или \[null,1693515599999]

Из списка с любым заданным набором фильтров можно получить максимум 10000 элементов, то есть максимальное значение для **page** \* **pageSize** = 10000. Чтобы получить другие элементы, нужно либо изменить фильтр, либо изменить сортировку

#### Path Parameters

| Name                                 | Type   | Description |
| ------------------------------------ | ------ | ----------- |
| id<mark style="color:red;">\*</mark> | string | id кассы    |

#### Query Parameters

| Name           | Type    | Description                                                                                                                                                                        |
| -------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| type           | string  | Фильтр по типу транзакций. Может быть delete - будут считаны удаленные транзакции, active - будут считаны не удаленные транзакции, если отсутствует - будут считаны все транзакции |
| sort           | string  | Сортировка                                                                                                                                                                         |
| filter         | string  | Текст для поиска по транзакциям                                                                                                                                                    |
| counteragentId | string  | Фильтр по контрагенту                                                                                                                                                              |
| customerId     | string  | Фильтр по ответственному сотруднику                                                                                                                                                |
| isBankTransfer | boolean | Фильтр по типу операции (true - только безналичные операции, false - только операции с наличными)                                                                                  |
| cashItemId     | string  | Фильтр по статье движения денежных средств                                                                                                                                         |
| date           | array   | Фильтр по дате операции                                                                                                                                                            |
| page           | number  | Номер страницы выборки (по умолчанию - 1)                                                                                                                                          |
| pageSize       | number  | Количество элементов в выборке (по умолчанию - 10, максимум - 50)                                                                                                                  |
| dateChange     | array   | Фильтр по дате изменения                                                                                                                                                           |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

{% tabs %}
{% tab title="200 " %}

```json
{
  data: [
    {
      date: "2022-12-13T09:42:29.259Z",
      money: 500,
      isBankTransfer: true,
      remain: 3000,
      cashRegister: {
        name: "Касса",
        id: "63c015adcce57401c832fb68"
      },
      shopId: "63c015adcce57401c832faee",
      cashItem: {
        isIncome: true,
        name: "Оплата чека",
        id: "63c015adcce57401c832fbdc",
        type: "sale"
      },
      type: "sale",
      customer: {
        name: "Фамилия Имя",
        id: "63c015adcce57401c832fab4"
      },
      id: "63c127859bb329405df8b404",
      document: {
        id: "63c125aca0360d3ba1fd3747",
        number: "B000001"
      }
    },
    {
      date: "2022-12-12T14:14:08.229Z",
      money: 2500,
      isBankTransfer: false,
      remain: 2500,
      cashRegister: {
        name: "Касса",
        id: "63c015adcce57401c832fb68"
      },
      counteragent: {
        name: "Иванов Василий Петрович",
        id: "63c015afcce57401c832fc9c"
      },
      shopId: "63c015adcce57401c832faee",
      cashItem: {
        isIncome: true,
        name: "Оплата за заказ",
        id: "63c015adcce57401c832fbdb",
        type: "order"
      },
      type: "order",
      customer: {
        name: "Фамилия Имя",
        id: "63c015adcce57401c832fab4"
      },
      id: "63c015b0cce57401c832fd06",
      order: {
        id: "63c015afcce57401c832fca2",
        number: "A000001"
      }
    }
  ],
  total: 2,
  page: 1,
  pageSize: 10,
  sort: {
    field: "date",
    dir: "DESC"
  },
  summ: {
    income: {
      money: 7800,
      bank: 1500
    },
    consumption: {
      bank: 0,
      money: 0
    }
  },
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Список транзакций

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/cash`

Возвращает массив транзакций для выбранного списка касс\
\
Для сортировки результата необходимо в параметре **sort** передать строку "**<название\_поля> ASC**" или "**<название\_поля> DESC**". Где **ASC** - сортировать по возрастанию, **DESC** - сортировать по убыванию, **<название\_поля>** - поле по которому осуществляется сортировка, может быть одно из: **node**, **customer**, **id**, **cashRegister**, **date**, **money**, **isBankTransfer**, **counteragent**, **cashItem**, **number, dateChange**. По умолчанию транзакции сортируются от новых к старым\
\
Фильтры по датам передаются в виде массива из двух чисел в формате Unix (**в миллисекундах**), где первый число - это начало диапазона, а второе - конец диапазона. Если какая-то граница диапазона отсутствует, то вместо нее нужно передать null. Например \[1690837200000,1693515599999] или \[null,1693515599999]

Из списка с любым заданным набором фильтров можно получить максимум 10000 элементов, то есть максимальное значение для **page** \* **pageSize** = 10000. Чтобы получить другие элементы, нужно либо изменить фильтр, либо изменить сортировку

#### Query Parameters

| Name            | Type   | Description                                                                                                                                |
| --------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
| sort            | string | Сортировка                                                                                                                                 |
| cashRegisterIds | array  | Список касс по которым нужно найти транзакции, передается в виде массива id касс. Если не указать этот параметр, то вернется пустой массив |
| filter          | string | Текст для поиска по транзакциям                                                                                                            |
| counteragentId  | string | Фильтр по контрагенту                                                                                                                      |
| customerId      | string | Фильтр по ответственному сотруднику                                                                                                        |
| isBankTransfer  | string | Фильтр по типу операции (true - только безналичные операции, false - только операции с наличными)                                          |
| cashItemId      | string | Фильтр по статье движения денежных средств                                                                                                 |
| date            | array  | Фильтр по дате операции                                                                                                                    |
| page            | string | Номер страницы выборки (по умолчанию - 1)                                                                                                  |
| pageSize        | string | Количество элементов в выборке (по умолчанию - 10, максимум - 50)                                                                          |
| dateChange      | array  | Фильтр по дате изменения                                                                                                                   |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | Токен авторизации |

{% tabs %}
{% tab title="200 " %}

```json
{
  data: [
    {
      date: "2022-12-13T09:42:29.259Z",
      money: 500,
      isBankTransfer: true,
      remain: 3000,
      cashRegister: {
        name: "Касса",
        id: "63c015adcce57401c832fb68"
      },
      shopId: "63c015adcce57401c832faee",
      cashItem: {
        isIncome: true,
        name: "Оплата чека",
        id: "63c015adcce57401c832fbdc",
        type: "sale"
      },
      type: "sale",
      customer: {
        name: "Фамилия Имя",
        id: "63c015adcce57401c832fab4"
      },
      id: "63c127859bb329405df8b404",
      document: {
        id: "63c125aca0360d3ba1fd3747",
        number: "B000001"
      }
    },
    {
      date: "2022-12-12T14:14:08.229Z",
      money: 2500,
      isBankTransfer: false,
      remain: 2500,
      cashRegister: {
        name: "Касса",
        id: "63c015adcce57401c832fb68"
      },
      counteragent: {
        name: "Иванов Василий Петрович",
        id: "63c015afcce57401c832fc9c"
      },
      shopId: "63c015adcce57401c832faee",
      cashItem: {
        isIncome: true,
        name: "Оплата за заказ",
        id: "63c015adcce57401c832fbdb",
        type: "order"
      },
      type: "order",
      customer: {
        name: "Фамилия Имя",
        id: "63c015adcce57401c832fab4"
      },
      id: "63c015b0cce57401c832fd06",
      order: {
        id: "63c015afcce57401c832fca2",
        number: "A000001"
      }
    }
  ],
  total: 2,
  page: 1,
  pageSize: 10,
  sort: {
    field: "date",
    dir: "DESC"
  },
  summ: {
    income: {
      money: 7800,
      bank: 1500
    },
    consumption: {
      bank: 0,
      money: 0
    }
  },
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}

## Список статей движения денег

<mark style="color:blue;">`GET`</mark> `https://api.livesklad.com/cash-items`

#### Headers

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | string | Токен авторизации |

{% tabs %}
{% tab title="200 " %}

```json
{
  data: [
    {
      name: "Оплата за заказ",
      isIncome: true,
      type: "order",
      id: "5d0cb1178ede076111d797e3"
    },
    {
      name: "Предоплата за заказ",
      isIncome: true,
      type: "orderPrepayment",
      id: "5d0cb1178ede076111d797e4"
    },
    {
      name: "Выдача работнику",
      isIncome: false,
      id: "5d63957ac66f681fcacfbb7e"
    },
    {
      name: "Инкассация",
      isIncome: false,
      type: "collection",
      id: "5d0cb1178ede076111d797ec"
    }
  ],
  version: "2.0.0.0",
  remainRequest: 50,
  expireDate: "2022-12-13T09:09:20.861Z"
}
```

{% endtab %}

{% tab title="401 Доступ запрещен" %}

```json
{
  error: {
    statusCode: 401,
    name: "Error",
    message: "Access denied"
  }
}
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.livesklad.com/api/cash.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
