Чеки коррекции¶
Чек коррекции нужен, когда расчет был совершен, но корректный кассовый чек не был сформирован или был сформирован с ошибкой, которую нельзя исправить обычным возвратом и новым расчетом. Это не универсальная кнопка "починить чек"; сначала нужно понять, какое фискальное событие произошло.
Когда рассматривать коррекцию¶
| Ситуация | Подход |
|---|---|
| Расчет был, чека не было | Обычно рассматривается чек коррекции. |
| Чек был, но сумма/реквизиты неверны | Проверить, исправляется ли через возврат и новый чек или нужна коррекция. |
| Возврат денег покупателю | Обычно это чек возврата, не коррекция. |
| Ошибка в тестовом payload | Сначала исправить payload; коррекция не должна маскировать системную ошибку интеграции. |
Что важно в ФФД¶
Для чеков коррекции важны основание, дата, номер документа основания, тип коррекции и состав реквизитов по версии ФФД. В ФФД 1.2 провайдеры на практике чаще требуют корзину items; aggregate-модель без корзины ненадежна.
Поведение провайдеров в тестах¶
| Провайдер | ФФД 1.05 | ФФД 1.2 |
|---|---|---|
| АТОЛ Онлайн | Проходят sell_correction и buy_correction в проверенных вариантах. | Aggregate без items не проходит; modern с items проходит. |
| Эвотор | sell_correction проходит при наличии cashier/cashier_inn; buy_correction не поддерживается. | С items и cashier проходят основные операции коррекции. |
| Ferma / OFD.RU | С items проходят sell_correction и buy_correction; aggregate без корзины не дает стабильного финального результата. | Проверенные modern-варианты не проходят регистрацию; aggregate ненадежен. |
| Бизнес.Ру | Коррекции не используются в текущем банковском контуре. | Коррекции не используются в текущем банковском контуре. |
Практическое правило¶
Перед запуском коррекции нужно собрать: исходное бизнес-событие, сумму, дату, способ оплаты, позиции, версию ФФД, провайдера, ответ регистрации, report и основание коррекции. Без этих данных коррекция может создать новый риск вместо исправления старого.