API Продумáн.Касса позволяет интегрировать ваш интерфейс с кассой, а также взаимодействовать с данными, доступными в кабинете пользователя.
- URL-адрес для вызова методов API -
https://api.produman.org/kassa
- Кодировка запросов -
UTF-8
Для удобства разработана и поддерживается PHP-библиотека.
Для прохождения процедуры аутентификации необходимо передавать HTTP-заголовок X-CLIENT-TOKEN
с токеном, полученным в личном кабинете пользователя, а также заголовки X-APP-ID
и X-APP-SECRET
с данными, полученными при создании приложения. Для создания приложения напишите на почту kassa@produman.org.
Разбивка на страницы осуществляется на основе курсоров, чтобы упростить постепенный сбор информации. Ответы будут включать атрибут nextCursor
с ненулевым значением, если существуют последующие записи. Используя это значение в качестве параметра cursor
в следующем запросе, вы можете начать выборку с нужной вам позиции.
Во избежание перегрузки нашей инфраструктуры, введены ограничения на кол-во и частоту запросов к API по алгоритму "скользящего окна":
- Не более 60 запросов в минуту.
- Запросы
Список операций
,Данные операции
,Список касс
иДанные кассы
считаются как 15 за 1. - Запрос
Тестирование эндпоинта
считается как 30 за 1. - Для оперативного получения данных по операциям и командам необходимо использовать вебхуки.
Квота и ее остаток указывается в заголовках ответа от сервиса в полях RateLimit-Limit
и RateLimit-Remaining
соответственно.
RateLimit считается не для всего приложения, а для каждого clientToken
.
При возникновении ошибки обработки или выполнения запроса в качестве ответа будет возвращен один из отличных от 200
кодов ответа, а также тело ответа в JSON-формате с иденитификатором и описанием ошибки. Например, ошибка валидации параметров запрос вернется ответ 400 Bad Request
и тело ответа:
{
"message": "Request params validation error. Check request params.",
"code": "VALIDATION_ERROR",
"details": [
"status: The value you selected is not a valid choice."
]
}
Возоможные http-коды ответов:
200
ОК201
ОК (создано)204
ОК (нет содержимого)400
Запрос не прошел валидацию401
Не задан токен аутентификации402
Нет действующей подписки на кассу403
Недействительный токен аутентификации404
Ресурс не найден429
Исчерпан лимит запросов500
Внутренняя ошибка сервера
Создание интеграции
Метод позволяет создать интеграцию приложения с пользователем Продуман. Аккаунт пользователя определяется по переданному email
Authorizations:
Request Body schema: application/json
email required | string <email> Email аккаунта Продуман |
Responses
Request samples
- Payload
{- "email": "test@test.ru"
}
Response samples
- 201
- 400
- 403
{- "requestConnectionId": "1eee17aa-9ae2-6f18-b8ee-d99dbe8ae3ed",
- "requestConnectionUrl": "https://kassa.produman.org/integrations/connect/1eee17aa-9ae2-6f18-b8ee-d99dbe8ae3ed"
}
Данные интеграции
Метод позволяет получить подробные данные об интеграции
Authorizations:
path Parameters
id required | string <uuid> ID интеграции |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "clientToken": "on7ejt36x2otjprsayh6tgudm7jvr65dg6joesiitnsu4r5yxp",
- "access": [ ]
}
Деактивация интеграции
Метод позволяет деактивировать текущую интеграцию
Authorizations:
path Parameters
id required | string <uuid> ID интеграции |
Responses
Response samples
- 400
- 403
- 404
{- "message": "Request params validation error",
- "code": "VALIDATION_ERROR",
- "details": [
- "param: This value should not be blank."
]
}
Список касс
Метод позволяет получить список касс пользователя
Authorizations:
query Parameters
status | string Enum: "ACTIVE" "INACTIVE" Фильтрация по статусу
|
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "АТОЛ 30Ф Тестовская",
- "driver": "PRODUMAN",
- "status": "ACTIVE",
- "serialNumber": "0001222233334455",
- "regNumber": "0001222233334455",
- "fnNumber": "9961001244556677",
- "ofdInn": "7841465198",
- "ffdVersionKkm": "1.0",
- "lineLength": 50,
- "cashBalance": 1000,
- "availableTaxationSystems": [ ],
- "availablePaymentMethods": [ ],
- "availablePaymentObjects": [ ],
- "availableOperations": [
- {
- "operationType": "KKT_INFO",
- "actionTypes": [ ]
}, - {
- "operationType": "X_REPORT",
- "actionTypes": [ ]
}, - {
- "operationType": "SELL",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "SHIFT_OPEN",
- "actionTypes": [ ]
}, - {
- "operationType": "SHIFT_CLOSE",
- "actionTypes": [ ]
}, - {
- "operationType": "ACQUIRING_REPORT",
- "actionTypes": [ ]
}, - {
- "operationType": "CASH_IN",
- "actionTypes": [ ]
}, - {
- "operationType": "CASH_OUT",
- "actionTypes": [ ]
}, - {
- "operationType": "COPY_RECEIPT",
- "actionTypes": [ ]
}, - {
- "operationType": "CORRECTION_SELL",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "CORRECTION_BUY",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "CORRECTION_SELL_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "CORRECTION_BUY_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "PRINT_SLIP",
- "actionTypes": [ ]
}, - {
- "operationType": "SET_DATETIME",
- "actionTypes": [ ]
}, - {
- "operationType": "SELL_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "BUY",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "BUY_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}
], - "availablePaymentSolutions": [
- {
- "id": 1,
- "name": "Наличные",
- "availableInInterface": true,
- "integrated": true,
- "fiscalType": "CASH",
- "original": true
}, - {
- "id": 8,
- "name": "POS-терминал",
- "availableInInterface": true,
- "integrated": true,
- "fiscalType": "CASHLESS",
- "original": false
}
]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Данные о кассе
Метод позволяет получить подробные данные о кассе
Authorizations:
path Parameters
id required | string <uuid> ID кассы |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "АТОЛ 30Ф Тестовская",
- "driver": "PRODUMAN",
- "status": "ACTIVE",
- "serialNumber": "0001222233334455",
- "regNumber": "0001222233334455",
- "fnNumber": "9961001244556677",
- "ofdInn": "7841465198",
- "ffdVersionKkm": "1.0",
- "lineLength": 50,
- "cashBalance": 1000,
- "availableTaxationSystems": [ ],
- "availablePaymentMethods": [ ],
- "availablePaymentObjects": [ ],
- "availableOperations": [
- {
- "operationType": "KKT_INFO",
- "actionTypes": [ ]
}, - {
- "operationType": "X_REPORT",
- "actionTypes": [ ]
}, - {
- "operationType": "SELL",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "SHIFT_OPEN",
- "actionTypes": [ ]
}, - {
- "operationType": "SHIFT_CLOSE",
- "actionTypes": [ ]
}, - {
- "operationType": "ACQUIRING_REPORT",
- "actionTypes": [ ]
}, - {
- "operationType": "CASH_IN",
- "actionTypes": [ ]
}, - {
- "operationType": "CASH_OUT",
- "actionTypes": [ ]
}, - {
- "operationType": "COPY_RECEIPT",
- "actionTypes": [ ]
}, - {
- "operationType": "CORRECTION_SELL",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "CORRECTION_BUY",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "CORRECTION_SELL_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "CORRECTION_BUY_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "PRINT_SLIP",
- "actionTypes": [ ]
}, - {
- "operationType": "SET_DATETIME",
- "actionTypes": [ ]
}, - {
- "operationType": "SELL_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "BUY",
- "actionTypes": [
- "EXECUTE"
]
}, - {
- "operationType": "BUY_RETURN",
- "actionTypes": [
- "EXECUTE"
]
}
], - "availablePaymentSolutions": [
- {
- "id": 1,
- "name": "Наличные",
- "availableInInterface": true,
- "integrated": true,
- "fiscalType": "CASH",
- "original": true
}, - {
- "id": 8,
- "name": "POS-терминал",
- "availableInInterface": true,
- "integrated": true,
- "fiscalType": "CASHLESS",
- "original": false
}
]
}
Список контрагентов
Метод позволяет получить список контрагентов
Authorizations:
query Parameters
search | string <= 255 characters Фильтрация по названию, ИНН или номеру телефона |
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "ООО \"ТЕСТ\"",
- "phone": "+74952345577",
- "inn": "9704211100",
- "kpp": "770401001",
- "legalAddress": "Москва, Тестовская ул, 12",
- "accounts": [ ]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Список сотрудников
Метод позволяет получить список сотрудников, включая владельца
Authorizations:
query Parameters
status | string Enum: "ACTIVE" "INACTIVE" Фильтрация по статусу
|
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Петров Иван Иванович",
- "inn": "253714317119",
- "status": "ACTIVE",
- "role": "OWNER",
- "cashboxIds": [ ]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Список категорий выплат и внесений
Метод позволяет получить список категорий выплат и внесений (для операций выплат и внесений)
Authorizations:
query Parameters
type | string Enum: "OUT" "IN" Фильтрация по типу
|
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Размен",
- "types": [ ]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Список операций
Метод позволяет получить список операций
Authorizations:
query Parameters
status | string Enum: "DRAFT" "IN_PROGRESS" "COMPLETE" "FAIL" Фильтрация по статусу
|
operationType | string Enum: "X_REPORT" "SHIFT_OPEN" "SHIFT_CLOSE" "KKT_INFO" "SELL" "CASH_IN" "CASH_OUT" "SELL_RETURN" "COPY_RECEIPT" "PRINT_SLIP" "CORRECTION_SELL" "CORRECTION_BUY" "CORRECTION_SELL_RETURN" "CORRECTION_BUY_RETURN" "SET_DATETIME" "ACQUIRING_REPORT" "BUY" "BUY_RETURN" Фильтрация по типу
|
cashboxId | string <uuid> Фильтрация по кассе |
createdById | string <uuid> Фильтрация по сотруднику |
orderId | string <uuid> |
cashMovementCategoryId | string <uuid> Фильтрация по категории выплат и внесений (для операций выплат и внесений) |
createdAtFrom | string <Y-m-d H:i:s> Фильтрация по дате создания ОТ |
createdAtTo | string <Y-m-d H:i:s> Фильтрация по дате создания ДО |
operationIds[] | Array of strings <uuid> [ 1 .. 50 ] items Фильтрация по ID операций |
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "number": 1,
- "createdAt": "2023-01-01T00:00:00+03:00",
- "operationType": "X_REPORT",
- "status": "DRAFT",
- "message": null,
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "details": { }
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Создание операции
Метод создает операцию с заданным типом operationType
Authorizations:
Request Body schema: application/json
operationType required | string Тип операции
|
cashboxId required | string <uuid> ID кассы |
createdById required | string <uuid> ID сотрудника |
Responses
Request samples
- Payload
{- "operationType": "X_REPORT",
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9"
}
Response samples
- 201
- 400
- 402
- 403
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "number": 1,
- "createdAt": "2023-01-01T00:00:00+03:00",
- "operationType": "X_REPORT",
- "status": "DRAFT",
- "message": null,
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "details": {
- "cashBalance": 1000
}
}
Данные об операции
Метод позволяет получить подробные данные об операции
Authorizations:
path Parameters
id required | string <uuid> ID операции |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "number": 1,
- "createdAt": "2023-01-01T00:00:00+03:00",
- "operationType": "X_REPORT",
- "status": "DRAFT",
- "message": null,
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "details": {
- "cashBalance": 1000
}
}
Повторение операции
Метод позволяет запустить повтор выполнения операции, находящейся в статусе Не выполнена
Authorizations:
path Parameters
id required | string <uuid> ID операции |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "number": 1,
- "createdAt": "2023-01-01T00:00:00+03:00",
- "operationType": "X_REPORT",
- "status": "DRAFT",
- "message": null,
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "details": {
- "cashBalance": 1000
}
}
Редактирование операции с наличными на кассе
Метод редактирует операцию с наличными на кассе
Authorizations:
path Parameters
id required | string |
Request Body schema: application/json
cashMovementCategoryId | string or null <uuid> Категория выплаты или внесения |
comment | string or null <= 255 characters Комментарий к операции |
Responses
Request samples
- Payload
{- "cashMovementCategoryId": "2e5b12b6-55b8-4299-86d4-e678aeca28a2",
- "comment": null
}
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "number": 1,
- "createdAt": "2023-01-01T00:00:00+03:00",
- "operationType": "X_REPORT",
- "status": "DRAFT",
- "message": null,
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "details": {
- "cashBalance": 1000
}
}
Список заказов
Метод позволяет получить список заказов
Authorizations:
query Parameters
id | string <= 255 characters Фильтрация по ID, номеру или внешнему ID |
createdAtFrom | string <Y-m-d H:i:s> Фильтрация по дате создания ОТ |
createdAtTo | string <Y-m-d H:i:s> Фильтрация по дате создания ДО |
totalAmountFrom | number <float> Фильтрация по общей сумме ОТ |
totalAmountTo | number <float> Фильтрация по общей сумме ДО |
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "externalId": "6719516710",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "number": 1,
- "totalAmount": 100,
- "taxationSystem": "OSN",
- "client": {
- "name": "Алексей",
- "inn": null,
- "phone": "+79034445577",
- "email": "alex@email.com"
}, - "delivery": {
- "courierId": "4ef18856-d747-4217-97a8-4e86491a8e20",
- "address": "Москва, Петровская ул, 3",
- "dateFrom": "2023-01-01T00:00:00+03:00",
- "dateTo": "2023-01-01T00:00:00+03:00",
- "status": "NEW",
- "comment": "Предварительно звонок за 1 час",
- "prepaid": false
}, - "positions": [ ]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Создание заказа
Метод создает новый заказ
Authorizations:
Request Body schema: application/json
required | Array of objects (CreateOrderPosition) Номенклатура заказа |
createdById required | string <uuid> ID сотрудника |
externalId required | string Внешний ID заказа
|
taxationSystem required | string Enum: "OSN" "USN_INCOME" "USN_INCOME_OUTCOME" "ESN" "PATENT" Система налогообложения
|
(CreateOrderClient (object or null)) | |
(CreateOrderDelivery (object or null)) |
Responses
Request samples
- Payload
{- "positions": [
- {
- "name": "Кружка Walmer 150 мл. (круглая)",
- "quantity": 1,
- "price": 100,
- "paymentVat": "WITHOUT",
- "paymentObject": "PRODUCT",
- "paymentMethod": "FULL_PREPAYMENT",
- "excisable": false,
- "marks": [
- "010290000005737121oUbNp4ImG7'3xa.R'X:W91TEST92dGVzdOmMebPKZi7YvQhSZnNuz4pbVmlMw/vkk3TktoA="
], - "agentScheme": {
- "agentSign": "ANOTHER_AGENT",
- "supplier": {
- "name": "ООО \"ПРИНЦИПАЛ\"",
- "inn": "7814494697",
- "phone": "+74993346678"
}
}
}
], - "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "externalId": "6719516710",
- "taxationSystem": "OSN",
- "client": {
- "name": "Алексей",
- "inn": null,
- "email": "alex@email.com",
- "phone": "+79034445577"
}, - "delivery": {
- "courierId": "4ef18856-d747-4217-97a8-4e86491a8e20",
- "address": "Москва, Петровская ул, 3",
- "dateFrom": "2023-01-01 00:01",
- "dateTo": "2023-01-01 00:02",
- "status": "NEW",
- "comment": "Предварительно звонок за 1 час",
- "prepaid": false
}
}
Response samples
- 201
- 400
- 403
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "externalId": "6719516710",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "number": 1,
- "totalAmount": 100,
- "taxationSystem": "OSN",
- "client": {
- "name": "Алексей",
- "inn": null,
- "phone": "+79034445577",
- "email": "alex@email.com"
}, - "delivery": {
- "courierId": "4ef18856-d747-4217-97a8-4e86491a8e20",
- "address": "Москва, Петровская ул, 3",
- "dateFrom": "2023-01-01T00:00:00+03:00",
- "dateTo": "2023-01-01T00:00:00+03:00",
- "status": "NEW",
- "comment": "Предварительно звонок за 1 час",
- "prepaid": false
}, - "positions": [ ]
}
Данные о заказе
Метод позволяет получить подробные данные о заказе
Authorizations:
path Parameters
id required | string <uuid> ID заказа |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "externalId": "6719516710",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "number": 1,
- "totalAmount": 100,
- "taxationSystem": "OSN",
- "client": {
- "name": "Алексей",
- "inn": null,
- "phone": "+79034445577",
- "email": "alex@email.com"
}, - "delivery": {
- "courierId": "4ef18856-d747-4217-97a8-4e86491a8e20",
- "address": "Москва, Петровская ул, 3",
- "dateFrom": "2023-01-01T00:00:00+03:00",
- "dateTo": "2023-01-01T00:00:00+03:00",
- "status": "NEW",
- "comment": "Предварительно звонок за 1 час",
- "prepaid": false
}, - "positions": [ ]
}
Обновление заказа
Метод обновляет существующий заказ (перезаписываются все данные заказа)
Authorizations:
path Parameters
id required | string <uuid> ID заказа |
Request Body schema: application/json
required | Array of objects (CreateOrderPosition) Номенклатура заказа |
createdById required | string <uuid> ID сотрудника |
externalId required | string Внешний ID заказа
|
taxationSystem required | string Enum: "OSN" "USN_INCOME" "USN_INCOME_OUTCOME" "ESN" "PATENT" Система налогообложения
|
(CreateOrderClient (object or null)) | |
(CreateOrderDelivery (object or null)) |
Responses
Request samples
- Payload
{- "positions": [
- {
- "name": "Кружка Walmer 150 мл. (круглая)",
- "quantity": 1,
- "price": 100,
- "paymentVat": "WITHOUT",
- "paymentObject": "PRODUCT",
- "paymentMethod": "FULL_PREPAYMENT",
- "excisable": false,
- "marks": [
- "010290000005737121oUbNp4ImG7'3xa.R'X:W91TEST92dGVzdOmMebPKZi7YvQhSZnNuz4pbVmlMw/vkk3TktoA="
], - "agentScheme": {
- "agentSign": "ANOTHER_AGENT",
- "supplier": {
- "name": "ООО \"ПРИНЦИПАЛ\"",
- "inn": "7814494697",
- "phone": "+74993346678"
}
}
}
], - "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "externalId": "6719516710",
- "taxationSystem": "OSN",
- "client": {
- "name": "Алексей",
- "inn": null,
- "email": "alex@email.com",
- "phone": "+79034445577"
}, - "delivery": {
- "courierId": "4ef18856-d747-4217-97a8-4e86491a8e20",
- "address": "Москва, Петровская ул, 3",
- "dateFrom": "2023-01-01 00:01",
- "dateTo": "2023-01-01 00:02",
- "status": "NEW",
- "comment": "Предварительно звонок за 1 час",
- "prepaid": false
}
}
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "externalId": "6719516710",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "number": 1,
- "totalAmount": 100,
- "taxationSystem": "OSN",
- "client": {
- "name": "Алексей",
- "inn": null,
- "phone": "+79034445577",
- "email": "alex@email.com"
}, - "delivery": {
- "courierId": "4ef18856-d747-4217-97a8-4e86491a8e20",
- "address": "Москва, Петровская ул, 3",
- "dateFrom": "2023-01-01T00:00:00+03:00",
- "dateTo": "2023-01-01T00:00:00+03:00",
- "status": "NEW",
- "comment": "Предварительно звонок за 1 час",
- "prepaid": false
}, - "positions": [ ]
}
Удаление заказа
Метод позволяет удалить заказ
Authorizations:
path Parameters
id required | string <uuid> ID заказа |
Responses
Response samples
- 400
- 403
- 404
{- "message": "Request params validation error",
- "code": "VALIDATION_ERROR",
- "details": [
- "param: This value should not be blank."
]
}
Вебхуки и методы для работы с эндпоинтами вебхуков приложений
Приложение может добавить эндпоинты, на которые в будущем будут отправляться вебхуки при наступлении каких-то событий.
Недоставленные вебхуки имеют механизм повторной отправки. Частота зависит от типа события event
:
CASHBOX_DATA_CHANGED
иINTEGRATION_*
- повторные 2 попытки сразу же после первой неудачной.OPERATION_*
- повторные 2 попытки сразу после первой неудачной, а далее через минуту после начала, через 5 мин, 15 мин, 6 часов, 12 часов, 24 часа.
Тайм-аут получения ответа на вебхук - 1,5 секунды. Если за это время запрос не прошел, он считается недоставленным.
Вебхук для событий
Вебхук используется для получения данных при наступлении событий, заданных в эндпоинтах
header Parameters
Content-Type required | string Default: application/json;charset=utf-8 Формат и способ предоставления данных |
Authorization | string^(Bearer|Basic) [a-zA-Z0-9_=-]+$ Example: Bearer dG9rZW4= Секретный ключ для авторизации вебхуков Продуман в стороннем сервисе
Параметр необязателен - допускается работа с вебхуками без авторизации |
Request Body schema: application/json
event required | string Событие, по которому отправляется вебхук
|
createdAt required | string <date-time> Дата и время события |
(WebhookOperationCompleted (object or null)) |
Responses
Request samples
- Payload
{- "event": "OPERATION_COMPLETED",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "content": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "number": 1,
- "createdAt": "2023-01-01T00:00:00+03:00",
- "operationType": "SELL",
- "status": "COMPLETE",
- "message": null,
- "cashboxId": "41fae9c8-dabb-4c22-b6b4-e0ba388688f1",
- "createdById": "e13e432a-5323-4484-a91d-b5969bc564d9",
- "details": {
- "order": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "externalId": "6719516710",
- "number": 1,
- "orderAmount": 100,
- "groups": [ ]
}, - "paymentSolutions": [
- {
- "id": 1,
- "amount": 60,
- "details": null
}, - {
- "id": 8,
- "amount": 40,
- "details": {
- "slip": " 14.08.23 18:09 \r\nОрганизация: ИП Петров Петр Петрович\r\nИНН: 778866112233\r\nТерминал: 1111\r\nМерчант: 0001\r\n------------------------------------------\r\n СЛИП \r\n------------------------------------------\r\nСтатус: Успешно\r\nНомер чека: 1\r\n",
- "referenceData": "rrn=402208627472&receiptNumber=214&authorizationCode=200116&amount=100"
}
}
], - "fiscalAmounts": [
- {
- "type": "CASH",
- "amount": 60
}, - {
- "type": "CASHLESS",
- "amount": 40
}
], - "operationAmount": 100,
- "actionType": "EXECUTE",
- "fdNumber": "151",
- "fdSign": "2760124643",
- "fdCreatedAt": "2023-01-01 00:00",
- "slip": " 14.08.23 18:09 \r\nОрганизация: ИП Петров Петр Петрович\r\nИНН: 778866112233\r\nТерминал: 1111\r\nМерчант: 0001\r\n------------------------------------------\r\n СЛИП \r\n------------------------------------------\r\nСтатус: Успешно\r\nНомер чека: 1\r\n",
- "fnNumber": "9961001244556677"
}
}
}
Список эндпоинтов
Метод позволяет получить список эндпоинтов для вебхуков
Authorizations:
query Parameters
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
cursor | string <uuid> ID первой записи выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "status": "ACTIVE",
- "authType": "NO",
- "events": [ ]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Создание эндпоинта
Метод создает новый эндпоинт для вебхука
Authorizations:
Request Body schema: application/json
status required | string Enum: "ACTIVE" "INACTIVE" Статус
|
url required | string <= 255 characters URL
|
authType required | string Тип авторизации
|
events required | Array of strings non-empty Items Enum: "OPERATION_COMPLETED" "OPERATION_FAILED" "INTEGRATION_TERMINATED" "INTEGRATION_REQUEST_COMPLETED" "CASHBOX_DATA_CHANGED" События, по которым отправляется вебхук
|
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "authType": "NO",
- "events": [
- "OPERATION_COMPLETED"
]
}
Response samples
- 201
- 400
- 403
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "status": "ACTIVE",
- "authType": "NO",
- "events": [ ]
}
Данные об эндпоинте
Метод позволяет получить подробные данные об эндпоинте для вебхука
Authorizations:
path Parameters
id required | string <uuid> ID эндпоинта для вебхука |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "status": "ACTIVE",
- "authType": "NO",
- "events": [ ]
}
Обновление эндпоинта
Метод обновляет существующий эндпоинт для вебхука (перезаписываются все данные эндпоинта)
Authorizations:
path Parameters
id required | string <uuid> ID эндпоинта для вебхука |
Request Body schema: application/json
status required | string Enum: "ACTIVE" "INACTIVE" Статус
|
url required | string <= 255 characters URL
|
authType required | string Тип авторизации
|
events required | Array of strings non-empty Items Enum: "OPERATION_COMPLETED" "OPERATION_FAILED" "INTEGRATION_TERMINATED" "INTEGRATION_REQUEST_COMPLETED" "CASHBOX_DATA_CHANGED" События, по которым отправляется вебхук
|
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "authType": "NO",
- "events": [
- "OPERATION_COMPLETED"
]
}
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2023-01-01T00:00:00+03:00",
- "status": "ACTIVE",
- "authType": "NO",
- "events": [ ]
}
Удаление эндпоинта
Метод позволяет удалить эндпоинт для вебхука
Authorizations:
path Parameters
id required | string <uuid> ID эндпоинта для вебхука |
Responses
Response samples
- 400
- 403
- 404
{- "message": "Request params validation error",
- "code": "VALIDATION_ERROR",
- "details": [
- "param: This value should not be blank."
]
}
Тестирование эндпоинта
Метод отправляет вебхук с тестовыми данными (при наличии ранее добавленного эндпоинта с заданным событием)
Authorizations:
Request Body schema: application/json
event required | string Enum: "OPERATION_COMPLETED" "OPERATION_FAILED" "INTEGRATION_TERMINATED" "INTEGRATION_REQUEST_COMPLETED" "CASHBOX_DATA_CHANGED" Событие, по которому отправляется вебхук
|
skipVerify | boolean Default: false Игнорировать ли проверку SSL при отправке тестового вебхука |
Responses
Request samples
- Payload
{- "event": "OPERATION_COMPLETED",
- "skipVerify": false
}
Response samples
- 400
- 403
- 404
{- "message": "Request params validation error",
- "code": "VALIDATION_ERROR",
- "details": [
- "param: This value should not be blank."
]
}
Список асинхронных операций
Метод позволяет получить список асинхронных операций согласно заданному фильтру
Authorizations:
query Parameters
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 401
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2024-01-01T00:00:00+03:00",
- "updatedAt": "2024-01-01T00:00:00+03:00",
- "status": "CREATED",
- "type": "PRODUCTS_EXPORT_OPERATION",
- "asyncTasks": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2024-01-01T00:00:00+03:00",
- "updatedAt": "2024-01-01T00:00:00+03:00",
- "startedAt": "2024-01-01T00:00:00+03:00",
- "finishedAt": "2024-01-01T00:00:00+03:00",
- "status": "CREATED",
- "type": "PRODUCTS_EXPORT_TASK",
- "details": "Тестовая задача успешно выполнена"
}
]
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Создание асинхронной операции
Метод позволяет создать новую асинхронную операцию
- При неудачном выполнении какой-либо задачи, остальные задачи будут установлены в статус
CANCELED
Authorizations:
Request Body schema: application/json
type required | string Value: "PRODUCTS_EXPORT_OPERATION" Тип асинхронной операции
|
Responses
Request samples
- Payload
{- "type": "PRODUCTS_EXPORT_OPERATION"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2024-01-01T00:00:00+03:00",
- "updatedAt": "2024-01-01T00:00:00+03:00",
- "status": "CREATED",
- "type": "PRODUCTS_EXPORT_OPERATION",
- "asyncTasks": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2024-01-01T00:00:00+03:00",
- "updatedAt": "2024-01-01T00:00:00+03:00",
- "startedAt": "2024-01-01T00:00:00+03:00",
- "finishedAt": "2024-01-01T00:00:00+03:00",
- "status": "CREATED",
- "type": "PRODUCTS_EXPORT_TASK",
- "details": "Тестовая задача успешно выполнена"
}
]
}
Просмотр асинхронной операции
Метод позволяет получить данные об асинхронной операции по id
Authorizations:
path Parameters
id required | string <uuid> ID асинхронной задачи |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2024-01-01T00:00:00+03:00",
- "updatedAt": "2024-01-01T00:00:00+03:00",
- "status": "CREATED",
- "type": "PRODUCTS_EXPORT_OPERATION",
- "asyncTasks": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "createdAt": "2024-01-01T00:00:00+03:00",
- "updatedAt": "2024-01-01T00:00:00+03:00",
- "startedAt": "2024-01-01T00:00:00+03:00",
- "finishedAt": "2024-01-01T00:00:00+03:00",
- "status": "CREATED",
- "type": "PRODUCTS_EXPORT_TASK",
- "details": "Тестовая задача успешно выполнена"
}
]
}
Список категорий товаров и услуг
Метод позволяет получить список категорий товаров и услуг
Authorizations:
query Parameters
cursor | string <uuid> ID первой записи выборки |
limit | integer [ 1 .. 50 ] Default: 10 Ограничение на размер выборки |
Responses
Response samples
- 200
- 400
- 403
{- "items": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Одежда",
- "parentCategoryId": "acdf37b5-b785-42a1-be6f-0a9504c832f1",
- "taxationSystem": "OSN",
- "vat": "string"
}
], - "nextCursor": "53a4a333-2825-45a4-80d2-5f430d088f36"
}
Создание категории товаров и услуг
Метод создает новую категорию товаров и услуг
Authorizations:
Request Body schema: application/json
name required | string <= 64 characters Название категории товаров и услуг |
taxationSystem | string or null Enum: "OSN" "USN_INCOME" "USN_INCOME_OUTCOME" "ESN" "PATENT" Система налогообложения
|
vat | string or null Enum: "WITHOUT" "0" "5" "5_105" "7" "7_107" "10" "10_110" "20" "20_120" Ставка НДС
|
parentCategoryId | string or null <uuid> ID родительской категории товаров и услуг |
Responses
Request samples
- Payload
{- "name": "Одежда",
- "taxationSystem": "OSN",
- "vat": "WITHOUT",
- "parentCategoryId": "acdf37b5-b785-42a1-be6f-0a9504c832f1"
}
Response samples
- 201
- 400
- 403
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Одежда",
- "parentCategoryId": "acdf37b5-b785-42a1-be6f-0a9504c832f1",
- "taxationSystem": "OSN",
- "vat": "string"
}
Данные о категории товаров и услуг
Метод позволяет получить подробные данные о категории товаров и услуг
Authorizations:
path Parameters
id required | string <uuid> ID категории товаров и услуг |
Responses
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Одежда",
- "parentCategoryId": "acdf37b5-b785-42a1-be6f-0a9504c832f1",
- "taxationSystem": "OSN",
- "vat": "string"
}
Обновление категории товаров и услуг
Метод обновляет существующую категорию товаров и услуг (перезаписываются все данные категории товаров и услуг)
Authorizations:
path Parameters
id required | string <uuid> ID категории товаров и услуг |
Request Body schema: application/json
name required | string <= 64 characters Название категории товаров и услуг |
taxationSystem | string or null Enum: "OSN" "USN_INCOME" "USN_INCOME_OUTCOME" "ESN" "PATENT" Система налогообложения
|
vat | string or null Enum: "WITHOUT" "0" "5" "5_105" "7" "7_107" "10" "10_110" "20" "20_120" Ставка НДС
|
parentCategoryId | string or null <uuid> ID родительской категории товаров и услуг |
Responses
Request samples
- Payload
{- "name": "Одежда",
- "taxationSystem": "OSN",
- "vat": "WITHOUT",
- "parentCategoryId": "acdf37b5-b785-42a1-be6f-0a9504c832f1"
}
Response samples
- 200
- 400
- 403
- 404
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "Одежда",
- "parentCategoryId": "acdf37b5-b785-42a1-be6f-0a9504c832f1",
- "taxationSystem": "OSN",
- "vat": "string"
}
Удаление категории товаров и услуг
Метод позволяет удалить категорию товаров и услуг
Authorizations:
path Parameters
id required | string <uuid> ID категории товаров и услуг |
Responses
Response samples
- 400
- 403
- 404
{- "message": "Request params validation error",
- "code": "VALIDATION_ERROR",
- "details": [
- "param: This value should not be blank."
]
}