# Отримання списку персоналу

Для отримання списку персоналу закладу, Expirenza надсилатиме наступне повідомлення:

<details>

<summary>usersInfo</summary>

{% code lineNumbers="true" %}

```json
{
    "rID" : "2021-03-13 00:32:04.942046#UP57RxE",
    "operation" : "usersInfo"
}
```

{% endcode %}

```
❗️ Обов'язкові елементи запиту: rID, operation.
```

</details>

Відповідь обробки операції необхідно надіслати в наступному вигляді:

{% openapi src="/files/YLlUXmd5ydsaINBtRe11" path="/callback/usersInfo" method="post" %}
[json.json](https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2F4xObaL3YU3CMgHkDXSIz%2Fjson.json?alt=media\&token=3abafd3a-355b-4295-8234-2b581e574c68)
{% endopenapi %}

<details>

<summary><strong>Payload example: <code>/callback/usersInfo</code></strong></summary>

{% code title="JSON" overflow="wrap" %}

```json
{
  "rID": "2021-04-01 09:39:06.021078#BpOI0gO",
  "users": [
    {
      "cellPhone": "+380961112233",
      "id": "ab863-78",
      "name": "Петро",
      "roles":["Кухар універсал","Су-шеф кухар"]
    }
  ]
}
```

{% endcode %}

</details>

***

## **Окремо реалізовано апі для проактивного отримання списку користувачів.**

***Цей функціонал також рекомендовано до реалізації.*** \
***Цей варіант є більш реактивним за usersInfo.***\
**Expirenza** очікує отримання хука про оновлення одного юзера кожен раз, коли юзер зазнав змін, видалився або був створений.

З використанням апі проактивного отримання списку користувачі - інтеграція сама ініціює оновлення користувачів в системі Expirenza.

### Вебхук для оновлення <mark style="color:red;">одного</mark> юзера.

{% openapi src="/files/mrbSE80xbKxObBlEMtTR" path="//api.shaketopay.com.ua/callback/webhook" method="post" %}
[forceUsersInfo.json](https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2FOx935xd1hkB0tSmJF2Gz%2FforceUsersInfo.json?alt=media\&token=ffba5012-382e-49d3-9880-d806df813eac)
{% endopenapi %}

<details>

<summary>Payload example <code>/callback/webhook:</code></summary>

```json
{
  "webhookType":"USER_CANGED",
  "eventTime":"2024-07-28T19:29:17Z",
  "action": "UPDATED",
  "user":{
    "id":"someId",
    "cellPhone":"+380631111111",
    "name":"Cat Expirenza"
  }
}
```

</details>

***

### Вебхук для оновлення <mark style="color:red;">всіх</mark> юзерів.

Передбачає оновлення всіх користувачів у системі POS.

**Expirenza** очікує отримання хука про оновлення всіх юзерів при запуску інтеграції і далі з переодичністю раз на добу.

Рекомендації щодо використання:

1. При запуску POS-системи.
2. З інтервалом на добу.

{% openapi src="/files/GxxEbmjHb4ywa5S3BHHi" path="//api.shaketopay.com.ua/callback/webhook" method="post" %}
[forceUpdateAllUsers.json](https://115752690-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUrrjxJkhEuwfb0dGwW06%2Fuploads%2Fj94GNxQuXJQlDHw1ElN8%2FforceUpdateAllUsers.json?alt=media\&token=597a747b-c249-4514-bf21-f43dba9ae1c5)
{% endopenapi %}

<details>

<summary>Payload example <code>/callback/webhook:</code></summary>

```json
{
    "webhookType": "UPDATE_ALL_USERS",
    "eventTime": "2024-09-19T12:05:35.2537443Z",
    "users": [
        {
            "id": "993332e8-bfea-460d-99c3-9fcba5f944ca",
            "cellPhone": "+380931234568",
            "name": "Cat Expirenza"
        },
        {
            "id": "someId",
            "cellPhone": "+380931234567",
            "name": "Cat Mono"
        }
    ]
}
```

</details>


---

# 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://docs.expirenza.com/api/messages/usersinfo.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.
