> For the complete documentation index, see [llms.txt](https://developer.livesklad.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.livesklad.com/api/cash.md).

# Касса

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

<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 %}
