Nordlet

← Документация / Глоссарий

Что такое неизменяемый реестр (immutable ledger)? Аудиторские следы и почему удаление проводок - это ошибка

Почему проведенные бухгалтерские проводки никогда нельзя редактировать или удалять, как работают исправления в реестре только для добавления (append-only ledger) и что на самом деле гарантируют закрытия периодов и журналы аудита.

Неизменяемый реестр (immutable ledger) - это реестр, в котором проведенные проводки никогда не изменяются и не удаляются. Исправления вносятся путем добавления новых проводок, которые сторнируют или корректируют старые, благодаря чему история учета становится частью самого учета.

Это не техническое предпочтение. Именно это превращает бухгалтерскую отчетность в доказательство, а не в текущее мнение о прошлом, и именно поэтому на просьбу "добавить кнопку удаления для журнала проводок" следует отвечать отказом.

Почему редактирование и удаление разрушают все

Аудиторский след (audit trail) - это и есть продукт. Смысл двойной записи заключается в том, что каждое сальдо раскладывается на составляющие его проводки. Если проводки можно незаметно изменить, такое разложение ничего не доказывает: след показывает лишь то, что кто-то посчитал нужным отразить в последний момент.

Сданные показатели перестают совпадать с учетными данными. Декларация по НДС, поданная в марте, содержит мартовские цифры. Отредактируйте мартовский счет в июне, и ваша главная книга перестанет соответствовать документу, уже представленному в налоговый орган. Никто не замечает этого до сверки, а к тому моменту причина кроется в месяцах проведенных транзакций.

Мошенничество становится невидимым. Выявление манипуляций зависит от возможности увидеть факт изменений. Если проводки можно редактировать на месте, смотреть не на что - именно поэтому налоговые органы по всему ЕС требуют, чтобы бухгалтерские записи защищали от несанкционированного вмешательства (tamper-evident), а несколько стран сертифицируют программное обеспечение для выставления счетов именно на основе этого свойства.

Распределенное состояние расходится. Если счет был отправлен клиенту, выгружен в банковский файл, передан на платформу электронного выставления счетов и прочитан через API партнера, редактирование вашей копии никак не повлияет на их копии. Вы не исправили ошибку, вы создали расхождение.

Как на самом деле работают исправления

Любое правомерное исправление - это добавление:

Ситуация Правильный механизм
Неправильная проводка в журнале Провести ее сторно, а затем правильную проводку
Неверная сумма в счете Выставить кредитовое авизо, а при необходимости - новый счет
Неверный период Провести операцию в текущем открытом периоде с датой совершения исправления
Устаревшая оценка Сторнировать начисление, отразить факт - см. начисленный доход

Результат читается как повествование: вот что мы предполагали, вот когда мы узнали правду, вот исправление. Аудитор, задающий вопрос "что случилось со счетом S-1041?", получает исчерпывающий ответ вместо цифры, которая, судя по записям, была таковой всегда.

Цена такого подхода заключается в том, что реестр навсегда сохраняет ошибки. В этом и суть: компания, в учетом регистре которой нет исправлений, либо исключительно удачлива, либо редактирует свои книги.

Чем неизменяемость не является

  • Не означает "нельзя ничего исправить". Исправить можно что угодно; исправление достигается добавлением, а не перезаписью.
  • Не является блокчейном. Криптографическая цепочка - лишь один из способов защиты от несанкционированного вмешательства (tamper-evidence); реляционный реестр только для добавления (append-only) с принудительными ограничениями и журналом аудита дает вам бухгалтерские свойства без сопутствующей сложности распределенного консенсуса.
  • Не заменяет журнал аудита. Журнал аудита фиксирует, кто и что сделал. Неизменяемость означает, что сами бухгалтерские данные не меняются. Вам нужны оба компонента, поскольку они отвечают на разные вопросы.
  • Не применяется к черновикам. Черновик счета является рабочим документом и может свободно редактироваться. Неизменяемость начинается с момента выставления - того дня, когда документ становится значимым для кого-то еще.

Как Nordlet обеспечивает соблюдение правил

Три механизма, носящие структурный, а не условный характер:

Проведенные проводки доступны только для добавления. Записи в журнале создаются один раз. Нет ни одной конечной точки (endpoint), которая редактирует или удаляет проведенную транзакцию, а POST /v1/ledger/journal/transactions/create выполняет валидацию перед записью: дебет должен равняться кредиту, счета должны существовать и допускать проводки, период должен быть открытым. Несбалансированная проводка не может быть представлена в базе данных.

Периоды блокируются. POST /v1/ledger/periods/lock закрывает месяц, и любая транзакция с датой в заблокированном периоде отклоняется - независимо от того, поступает ли она из ручной проводки, счета, банковского импорта или автоматизированного процесса начисления. Блокировка гарантирует постоянное соответствие сданной декларации данным учета, а разблокировка сама по себе является аудируемым действием. Рабочий процесс описан в статье об отчетном периоде.

Аудируется все. Операции, изменяющие состояние, записываются в журнал аудита с указанием субъекта (actor), действия, сущности и различий (diff), включая автоматизированные операции, которые фиксируют системного агента, а не создают видимость выполнения человеком. Когда зеркалирование между аффилированными лицами создает счет, журналы обеих компаний отражают это событие.

Документы подчиняются тому же правилу: выставление счета на продажу резервирует номер из сплошной последовательности (gapless series) и проводит документ; последующее исправление означает создание кредитового авизо, но никак не редактирование. Первоначальный счет, кредитовое авизо и результирующее сальдо остаются видимыми в истории клиента.

Черновики документов остаются полностью доступными для редактирования, а удаление представляет собой мягкое удаление (soft delete) - метку времени deletedAt, которая скрывает запись из активных запросов, сохраняя ее в системе.

FAQ

Что такое неизменяемый реестр (immutable ledger)?

Бухгалтерский реестр, в котором проведенные проводки никогда не изменяются и не удаляются. Исправления вносятся путем добавления сторнирующих или корректирующих проводок, благодаря чему полная история, включая ошибки и исправления, остается частью учетных данных.

Почему нельзя просто удалить неправильную проводку в журнале?

Потому что эта проводка уже может быть отражена в поданной налоговой декларации, документе, отправленном клиенту, или в записях другой системы. Ее удаление приведет к молчаливому расхождению ваших книг со всеми этими данными. Сторнирование исправляет цифры, сохраняя при этом свидетельство того, что произошло на самом деле.

Требует ли неизменяемый реестр использования блокчейна?

Нет. Блокчейн - это лишь один из способов защиты записей от несанкционированного вмешательства. Проектирование базы данных только для добавления (append-only) с принудительными ограничениями баланса, блокировками периодов и журналом аудита обеспечивает необходимые бухгалтерские свойства без использования распределенного консенсуса.

Могу ли я отредактировать черновик счета?

Да. Неизменяемость действует с момента выставления документа и обретения им юридической силы для третьих лиц. Черновики являются рабочими документами и могут свободно изменяться или удаляться.

Как исправить проводку в закрытом периоде?

Проведите исправление в текущем открытом периоде с датой совершения исправления. Если отчетные показатели закрытого периоды были существенно неверными, альтернативным вариантом является намеренное открытие периода, исправление, повторная сдача отчетности и повторная блокировка - это аудируемое действие, представляющее собой честный способ пересчета (restate).