Большая часть операций api выполняется в привязке к пользователю: на нем загружаются и хранятся данные (продукты, операции, чеки), начисляется кешбек.

Данные пользователей изолированы друг от друга, но в рамках api можно работать как с отдельными пользователями, так и всеми сразу.

Работа со списком пользователей

Пользователей можно добавлять (POST /users/add), удалять (DELETE /users/{user_id}), просматривать список (GET /users) и конкретного пользователя (GET /users/{user_id}). 

Пример добавления:

Запрос
{
    "email": "test@cashoff.ru",
}
Ответ
{
    "id": 1330588,
    "name": "test_api/66d912b16bb5417f93ae6ff5583ce8ad/1553693879",
    "created": "2019-03-27T13:37:59Z",
    "is_cashback_enabled": false
}

Где name - это сгенерированное уникальное имя пользователя в сервисе, id - идентификатор пользователя. Поле email, задаваемое при создании, информационное и не требуется.

Пользовательская сессия

По пользователям возможно выпускать отдельные сессии, которые дадут на ограниченное время доступ к данным пользователя. Их можно использовать либо через api, либо через UI модуль CASHOFF. 

Сессии возможно использовать на клиентской части приложения и являются альтернативой серверной авторизации. Сессии можно выпускать (POST /users/sessions/add), удалять (DELETE /users/sessions/{session_key}) и просматривать (GET /users/sessions/{session_key}). Время сессии ограничено и задается при создании, однако сессию можно досрочно удалить.

В API пользовательские сессии используются через заголовок co-session, вместо co-auth. Такие сессии привязаны к одному пользователю и не дают возможности получить данные по другим.

Сессия всегда выпускается на ограниченное время (по умолчанию - 24 часа). Желаемое время жизни сессии можно указать при создании в атрибуте ttl.