Возвраты
>
СерверККМ V4
>
REST API
>
Работа с ККМ
Дата обновления: 15 июня 2026 г.
POST check
Запрос: Возврат
URL: {{HTTPRoot}}/check
Печать чек возврата продажи или покупки.
Тело запроса
{
"DeviceName": "{device}",
"Cashier": {
"Name": "Матузова В.В.",
"Vatin": "381254994526"
},
"PaymentType": 2,
"TaxVariant": 1,
"Customer": {
"Email": "bvr@novator38.ru",
"Phone": ""
},
"Payments": {
"Cash": "90"
},
"Positions": [
{
"FiscalString": {
"Name": "TERRA труба с раструбом 50/250",
"Quantity": 1,
"MeasurementUnit": "шт",
"PriceWithDiscount": "2500",
"SumWithDiscount": "2500",
"DiscountSum": 0,
"Department": 1,
"Tax": "none",
"TaxSum": "0.00",
"SignMethodCalculation": 1,
"SignCalculationObject": 10
}
},
{
"FiscalString": {
"Name": "SIMTEK манжета переходная D50х32",
"Quantity": 1,
"MeasurementUnit": "шт",
"PriceWithDiscount": "21.85",
"SumWithDiscount": "21.85",
"DiscountSum": 0,
"Department": 1,
"Tax": "none",
"TaxSum": "0.00",
"SignMethodCalculation": 1,
"SignCalculationObject": 10
}
}
]
}
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| DeviceName |
string |
+ |
Название устройства |
“atol2” |
| PaymentType |
int |
+ |
Тип чека: 2 — возврат продажи, 4 — возврат покупки |
2 |
| TaxVariant |
int |
+ |
СНО: 0 — ОСН, 1 — УСН, 2 — УСНД_Р, 3 — ЕНВД, 4 — ЕСН, 5 — ПСН |
1 |
| Payments |
object |
+ |
Способы оплаты (Cash, ElectronicPayment и др.) |
{“Cash”: “90”} |
| Positions |
array |
+ |
Массив позиций |
[…] |
Поле Cashier
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Name |
string |
+ |
Имя кассира |
“Матузова В.В.” |
| Vatin |
string |
+ |
ИНН кассира |
“381254994526” |
Поле Customer
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Email |
string |
+ |
Электронная почта покупателя |
“bvr@novator38.ru” |
| Phone |
string |
+ |
Телефон покупателя |
”“ |
Поле Payments
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Cash |
decimal |
+ |
Сумма наличной оплаты |
90 |
Поле FiscalString
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Name |
string |
+ |
Название |
“TERRA труба с раструбом 50/250” |
| Quantity |
decimal |
+ |
Количество товара |
1 |
| MeasurementUnit |
string |
+ |
Единица измерения предмета расчета |
“шт” |
| PriceWithDiscount |
decimal |
+ |
Цена единицы товара с учетом скидок/наценок |
60.80 |
| SumWithDiscount |
decimal |
+ |
Конечная сумма по позиции чека с учетом всех скидок/наценок |
60.80 |
| DiscountSum |
decimal |
+ |
Сумма скидок и наценок |
0 |
| Department |
int |
+ |
Отдел, по которому ведется продажа |
1 |
| Tax |
string |
+ |
Ставка НДС |
“none” |
| TaxSum |
decimal |
+ |
Сумма НДС за предмет расчета |
0.00 |
| SignMethodCalculation |
int |
+ |
Признак способа расчета |
1 |
| SignCalculationObject |
int |
+ |
Признак предмета расчета |
10 |
Тело ответа
Успешный ответ (200 OK)
{
"Result": {
"datetime": "2026-05-24T04:34:32.2772086+08:00",
"deviceName": "Atol",
"docId": "d2a43efe-b4b9-4db5-aa7f-8358c31344ad",
"fnsUrl": "www.nalog.gov.ru",
"fnNumber": "9999078902010507",
"rnNumber": "0000000002005725",
"fiscalDatetime": "20260524043400",
"fiscalSign": "2447529010",
"shiftNumber": 41,
"fiscalNumber": 367
},
"Code": 0,
"Description": "OK",
"Success": true
}
Тип: объект FiscalParams
FiscalParams
| Имя поля |
Тип |
Назначение |
Пример |
| datetime |
datetime |
Время операции |
“2026-05-12T18:38:52” |
| deviceName |
string |
Название устройства |
“d83e0030-…” |
| docId |
string |
Идентификатор задания |
“d83e0030-…” |
| fnsUrl |
string |
Адрес сайта уполномоченного органа (ФНС) в сети «Интернет» |
“nalog.ru” |
| fnNumber |
string |
Номер фискального накопителя |
“0123123123123” |
| rnNumber |
string |
РНМ |
“00031415926” |
| fiscalDatetime |
string |
Дата и время документа по часам ФН |
“20260523234515” |
| shiftNumber |
int |
Номер смены |
41 |
| fiscalNumber |
int |
Номер фискального документа |
367 |
Примеры ошибок
709 — Устройство не найдено,
{
"Code": 709,
"Description": "Устройство не найдено",
"Success": false
}
8 — Недостаточная сумма оплаты,
{
"Code": 8,
"Description": "Недостаточная сумма оплаты",
"Success": false
}
4 — Не указано имя ККТ,
{
"Code": 4,
"Description": "Не указано имя ККТ",
"Success": false
}
14 — 24 часа кассовой смены истекли
{
"Code": 14,
"Description": "24 часа кассовой смены истекли",
"Success": false
}
POST check
Запрос: Возврат аванса
URL: {{HTTPRoot}}/check
Печать чека возврата аванса (предоплаты)
Тело запроса
{
"DeviceName": "{device}",
"Electronically": false,
"Cashier": {
"Name": "Иванова Марь Ванна",
"Vatin": ""
},
"CustomerEmail": "",
"CustomerPhone": "",
"PaymentType": 2,
"TaxVariant": 2,
"Payments": {
"AdvancePayment": 10,
"Cash": 0,
"CashProvision": 0,
"Credit": 0,
"ElectronicPayment": 0
},
"Positions": [
{
"FiscalString": {
"Department": 2,
"DiscountSum": 0,
"Name": "Выдано: Розничный покупатель",
"PriceWithDiscount": 10,
"Quantity": 1,
"SignCalculationObject": 10,
"SignMethodCalculation": 3,
"SumWithDiscount": 10,
"Tax": "120",
"TaxSum": 0
}
}
]
}
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| DeviceName |
string |
+ |
Название устройства |
“atol2” |
| Electronically |
bool |
+ |
Регистрация чека без печати на ленте |
false |
| PaymentType |
int |
+ |
Тип чека: 2 — возврат продажи, 4 — возврат покупки |
2 |
| TaxVariant |
int |
+ |
СНО: 0 — ОСН, 1 — УСН, 2 — УСНД_Р, 3 — ЕНВД, 4 — ЕСН, 5 — ПСН |
1 |
| Payments |
object |
+ |
Способы оплаты (Cash, ElectronicPayment и др.) |
{“Cash”: “90”} |
| Positions |
array |
+ |
Массив позиций |
[…] |
Поле Cashier
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Name |
string |
+ |
Имя кассира |
“Матузова В.В.” |
| Vatin |
string |
+ |
ИНН кассира |
“381254994526” |
Поле Customer
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Email |
string |
+ |
Электронная почта покупателя |
“bvr@novator38.ru” |
| Phone |
string |
+ |
Телефон покупателя |
”“ |
Поле Payments
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Cash |
decimal |
+ |
Сумма наличной оплаты |
0.0 |
| AdvancePayment |
decimal |
+ |
Сумма предоплатой (зачетом аванса) |
10.0 |
| CashProvision |
decimal |
+ |
Сумма встречным предоставлением |
0.0 |
| Credit |
decimal |
+ |
Сумма постоплатой (в кредит) |
0.0 |
| ElectronicPayment |
decimal |
+ |
Сумма безналичными средствами |
0.0 |
Поле FiscalString
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Name |
string |
+ |
Название |
“Выдано: Розничный покупатель” |
| Quantity |
decimal |
+ |
Количество товара |
1 |
| PriceWithDiscount |
decimal |
+ |
Цена единицы товара с учетом скидок/наценок |
60.80 |
| SumWithDiscount |
decimal |
+ |
Конечная сумма по позиции чека с учетом всех скидок/наценок |
10.0 |
| DiscountSum |
decimal |
+ |
Сумма скидок и наценок |
0 |
| Department |
int |
+ |
Отдел, по которому ведется продажа |
1 |
| Tax |
string |
+ |
Ставка НДС |
“120” |
| TaxSum |
decimal |
+ |
Сумма НДС за предмет расчета |
0 |
| SignMethodCalculation |
int |
+ |
Признак способа расчета |
3 |
| SignCalculationObject |
int |
+ |
Признак предмета расчета |
10 |
Тело ответа
Успешный ответ (200 OK)
{
"Result": {
"datetime": "2026-05-24T11:00:29.1706702+08:00",
"deviceName": "Atol",
"docId": "72b8e217-66d7-419d-b394-18cb9dc23a6a",
"fnsUrl": "www.nalog.gov.ru",
"fnNumber": "9999078902010507",
"rnNumber": "0000000002005725",
"fiscalDatetime": "20260524110000",
"fiscalSign": "1772113044",
"shiftNumber": 41,
"fiscalNumber": 368
},
"Code": 0,
"Description": "OK",
"Success": true
}
Тип: объект FiscalParams
FiscalParams
| Имя поля |
Тип |
Назначение |
Пример |
| datetime |
datetime |
Время операции |
“2026-05-12T18:38:52” |
| deviceName |
string |
Название устройства |
“Atol” |
| docId |
string |
Идентификатор задания |
“d83e0030-…” |
| fnsUrl |
string |
Адрес сайта уполномоченного органа (ФНС) в сети «Интернет» |
“nalog.ru” |
| fnNumber |
string |
Номер фискального накопителя |
“0123123123123” |
| rnNumber |
string |
РНМ |
“00031415926” |
| fiscalDatetime |
string |
Дата и время документа по часам ФН |
“20260523234515” |
| shiftNumber |
int |
Номер смены |
41 |
| fiscalNumber |
int |
Номер фискального документа |
368 |
Примеры ошибок
55 — Требуется открытая смена
{
"Code": 55,
"Description": "Требуется открытая смена",
"Success": false
}
7 — Сумма безналичной оплаты больше суммы
{
"Code": 7,
"Description": "Сумма безналичной оплаты больше суммы чека: Atol: драйвер: DeviceNetBase.Device.Atolv10FR: Сумма не наличных платежей превышает сумму чека",
"Success": false
}
709 — Устройство не найдено,
{
"Code": 709,
"Description": "Устройство не найдено",
"Success": false
}
4 — Не указано имя ККТ
{
"Code": 4,
"Description": "Не указано имя ККТ",
"Success": false
}
14 — 24 часа кассовой смены истекли
{
"Code": 14,
"Description": "24 часа кассовой смены истекли",
"Success": false
}
POST check/async
Запрос: Возврат по ФП (асинхронный)
URL: {{HTTPRoot}}/check/async
Асинхронно поставить чек возврата в очередь печати. Поддерживает привязку к исходному документу по фискальному признаку (ФП).
Тело запроса
{
"DeviceName": "{device}",
"DocId": "",
"Cashier": {
"Name": "Иванова Марь Ванна",
"Vatin": ""
},
"PaymentType": 2,
"TaxVariant": 0,
"Electronically": false,
"AdditionalAttribute": "1775661887",
"Payments": {
"Cash": 90,
"ElectronicPayment": 0,
"AdvancePayment": 0,
"Credit": 0,
"CashProvision": 0
},
"Positions": [
{
"FiscalString": {
"Name": "Наименование товара/услуги",
"Quantity": 1,
"PriceWithDiscount": 73.18,
"SumWithDiscount": 73.18,
"DiscountSum": 0,
"Department": 1,
"Tax": "20",
"TaxSum": 0,
"SignMethodCalculation": 4,
"SignCalculationObject": 4
}
}
]
}
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| DeviceName |
string |
+ |
Название устройства |
“atol2” |
| Electronically |
bool |
+ |
Регистрация чека без печати на ленте |
false |
| DocId |
string |
- |
идентификатор исходного документа |
”“ |
| AdditionalAttribute |
string |
- |
Фискальный признак (ФП) исходного документа |
“1775661887” |
| PaymentType |
int |
+ |
Тип чека: 2 — возврат продажи, 4 — возврат покупки |
2 |
| TaxVariant |
int |
+ |
СНО: 0 — ОСН, 1 — УСН, 2 — УСНД_Р, 3 — ЕНВД, 4 — ЕСН, 5 — ПСН |
1 |
| Payments |
object |
+ |
Способы оплаты (Cash, ElectronicPayment и др.) |
{“Cash”: “90”} |
| Positions |
array |
+ |
Массив позиций |
[…] |
Поле Cashier
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Name |
string |
+ |
Имя кассира |
“Матузова В.В.” |
| Vatin |
string |
+ |
ИНН кассира |
“381254994526” |
Поле Customer
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Email |
string |
+ |
Электронная почта покупателя |
“bvr@novator38.ru” |
| Phone |
string |
+ |
Телефон покупателя |
”“ |
Поле Payments
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Cash |
decimal |
+ |
Сумма наличной оплаты |
0.0 |
| AdvancePayment |
decimal |
+ |
Сумма предоплатой (зачетом аванса) |
10.0 |
| CashProvision |
decimal |
+ |
Сумма встречным предоставлением |
0.0 |
| Credit |
decimal |
+ |
Сумма постоплатой (в кредит) |
0.0 |
| ElectronicPayment |
decimal |
+ |
Сумма безналичными средствами |
0.0 |
Поле FiscalString
| Имя поля |
Тип |
Обяз |
Назначение |
Пример |
| Name |
string |
+ |
Название |
“Выдано: Розничный покупатель” |
| Quantity |
decimal |
+ |
Количество товара |
1 |
| PriceWithDiscount |
decimal |
+ |
Цена единицы товара с учетом скидок/наценок |
60.80 |
| SumWithDiscount |
decimal |
+ |
Конечная сумма по позиции чека с учетом всех скидок/наценок |
10.0 |
| DiscountSum |
decimal |
+ |
Сумма скидок и наценок |
0 |
| Department |
int |
+ |
Отдел, по которому ведется продажа |
1 |
| Tax |
string |
+ |
Ставка НДС |
“120” |
| TaxSum |
decimal |
+ |
Сумма НДС за предмет расчета |
0 |
| SignMethodCalculation |
int |
+ |
Признак способа расчета |
3 |
| SignCalculationObject |
int |
+ |
Признак предмета расчета |
10 |
Тело ответа
Успешный ответ (200 OK)
{
"Result": "1be955bd-593c-4b1a-a9e1-4fb4481398fa",
"Code": 0,
"Description": "OK",
"Success": true
}
Поле Result
| Имя поля |
Тип |
Назначение |
Пример |
| Result |
GUID |
Идентификатор задания |
“bed54268-b7ec-4982-b86c-b7f67841d883” |
Примеры ошибок
709 — Устройство не найдено,
{
"Code": 709,
"Description": "Устройство не найдено",
"Success": false
}
4 — Не указано имя ККТ
{
"Code": 4,
"Description": "Не указано имя ККТ",
"Success": false
}