Розробка системи податкового обліку криптовалют

Коли обсяг операцій з криптовалютами зростає, ручний облік перестає збігатися, а закриття періоду затягується. Ми розробляємо системи податкового обліку під ключ: збираємо операції, обчислюємо податкову базу й готуємо звітність, скорочуючи час закриття періоду в рази.
Часті запитання

Чому ручний податковий облік криптовалют ламається на обсязі

Поки угод десятки, таблиця зі зведенням закриває період. На обсязі процес рветься одразу в кількох місцях: операції розкидані по біржах, гаманцях і обмінниках, а кожен майданчик віддає своє вивантаження зі своїм набором полів.

Першим ламається зіставлення. Розрізнені вивантаження з бірж надходять у різних форматах: десь пара «актив — кількість», десь окремі рядки на комісію, мітки часу то в UTC, то в локальній зоні.

Одна операція потрапляє до зведення двічі — як виконання ордера і як запис у журналі поповнень, — а інша не потрапляє взагалі: виводи в мережі, внутрішні перекази, нарахування. Пропущені та подвоєні угоди дають помилку, яка не видна в самій таблиці.

Окрема категорія — обмін між власними гаманцями. Формально це не реалізація, але без ознаки належності адрес система бачить дві операції: списання та зарахування. У розрахунок потрапляє оборот, якого економічно не було, і база завищується.

Далі розрахунок бази вручну: вартість активу на момент угоди береться з одного вивантаження, комісії — з іншого, курси — з третього джерела.

На тисячах рядків це гарантовані розбіжності у звітності, які спливають при першій же звірці з даними майданчиків, і правка одного рядка тягне перерахунок усього ланцюжка за методом обліку.

Розбираємо, як це закривається системно.

Швидкість закриття періоду та якість даних щодо криптовалют

Швидкість закриття періоду визначається не кількістю бухгалтерів, а часткою операцій, які система зіставляє сама.

Реєстр будується так, щоб кожен рух надходив із першоджерела: дані вузлів мережі, вивантаження бірж і гаманців потрапляють в один шар з єдиним ідентифікатором транзакції за адресою, сумою та хешем.

Автоматичне зіставлення пов’язує цей потік із внутрішніми записами, а людина підключається лише до розбіжностей, які правила не розібрали.

Звідси вимірювані ефекти. На впроваджених контурах податкового обліку криптовалют частка операцій, закритих без ручного втручання, сягає 90–95%, а термін закриття періоду скорочується з двох-трьох тижнів до кількох днів — звірка перестає бути вузьким місцем у звітній даті.

Повнота реєстру підтверджується контрольними сумами: кількість операцій збігається з вихідними вивантаженнями, а будь-яка розбіжність пояснена й перелічена, а не розчиняється в таблиці.

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

Ручні таблиці цього не дають: підсумок залежить від того, хто і в якому порядку зводив аркуші. Ми спираємося на відкриті джерела цін і на атрибуцію адрес із Chainalysis, щоб вартість переказів і належність гаманців підтверджувались зовні, а не лише нашою внутрішньою логікою.

Знімається цілий клас помилок: подвійний облік одного переказу з двох джерел, загублені комісії, операції, прив’язані не до того гаманця, і незведені залишки на кінець періоду.

Варіанти організації процесу: порівняння підходів

Вибір підходу визначається не обсягом угод, а кількістю джерел і частотою зміни правил обліку. На десятку операцій на місяць ручний регламент тримається, на кількох майданчиках із щоденною торгівлею — розвалюється на першій же звірці. Нижче — варіанти, між якими реально обирають, з їхніми межами застосовності.

Варіант Коли підходить Обмеження
Ручний регламент Поодинокі операції, один гаманець, облік веде одна людина Не масштабується, вартість на дату угоди відновлюється заднім числом, аудиторського сліду немає
Таблиці з формулами Однотипні операції, одне-два джерела, правила обліку стабільні Перенесення виписок вручну, кожен новий майданчик ламає формули, перерахунок при уточненні правил робиться заново
Окрема система реєстрації Багато майданчиків і гаманців, потрібна історія та повторюваність розрахунку Потрібен програмний доступ до джерел, регламент зберігання ключів, супровід при зміні форматів вивантажень
Передача розрахунків підряднику Немає своєї фінансової команди, обсяг нестабільний Залежність від термінів виконавця, коректність первинних даних все одно на вас, підпис звітності залишається вашим
Гібридний підхід Є бухгалтерія, але немає інструмента для збору й перерахунку операцій Потрібно один раз описати правила на вході — зіставлення рахунків, порядок обліку — і тримати їх в актуальному стані

На практиці частіше сходиться гібрид: система веде реєстрацію операцій і фіксує вартість на момент угоди, а правила обліку й підпис звітності залишаються за фінансовою командою.

Тоді стик між ними описується один раз і не переписується при кожній зміні майданчика або формату вивантаження.

Етапи впровадження: від розбору операцій до передачі системи

Податковий облік ламається не на розрахунку, а на вході: операції надходять із біржових вивантажень, кастодіальних сервісів і гаманців, і кожен майданчик віддає свій формат, своє трактування часу та свої позначення операцій.

Тому роботи йдуть послідовно — від інвентаризації джерел до передачі регламентів вашій команді, щоб підсумок можна було перевірити, а не прийняти на віру.

  1. Аудит джерел даних. Збираємо перелік майданчиків, гаманців і типів операцій, фіксуємо спосіб вивантаження — програмний інтерфейс, файл або ручний експорт — і зазначаємо, яких даних не вистачає для обліку.
  2. Правила визнання операцій. Визначаємо, що вважається доходом, витратою, переказом між своїми рахунками та обміном, і в який момент операція визнається в обліку.
  3. Зіставлення операцій. Пов’язуємо покупки, продажі та перекази між майданчиками й гаманцями, прибираємо дублі та розриви, щоб одна й та сама операція не потрапила в розрахунок двічі.
  4. Налаштування розрахунку. Реалізуємо методику: черговість списання активів, переоцінка на дату операції, джерела курсів і порядок обробки неповних періодів.
  5. Контрольний перерахунок. Прогоняємо історичні періоди й звіряємо підсумки з первинними вивантаженнями та звітами майданчиків; розбіжності розбираємо, доки не залишиться непокритих позицій.
  6. Передача регламентів. Описуємо правила, джерела та порядок закриття періоду, передаємо конфігурацію й навчаємо вашу команду — система працює без нашої постійної участі.

Комплект артефактів, який залишається у вашої команди

Контур податкового обліку криптовалют — це не лише працюючий сервіс, а й комплект артефактів, за яким його можна супроводжувати, розширювати й передавати іншій команді.

Ми збираємо їх під час проєкту й передаємо у вашому репозиторії та базі знань, щоб інженер, який не брав участі у впровадженні, розібрався в логіці обліку без розкопок по коду.

  • Схема потоків даних — шлях операції від вивантаження біржі або гаманця до запису в податковому реєстрі: обов’язкові поля, момент фіксації курсу, точки нормалізації.
  • Правила зіставлення — за якими ознаками операції пов’язуються між майданчиками й гаманцями, що вважається дублем, а що окремою угодою, як обробляються комісії та внутрішні перекази.
  • Регламент перерахунку — що запускається при зміні правил або уточненні даних, як перераховується закритий період і як зберігається його попередня версія.
  • Інструкція для команди — запуск і налаштування контуру, розбір типових розбіжностей, підключення нового майданчика без правки ядра обліку.
  • Журнал змін — історія правок правил і ставок із датами набрання чинності: видно, чому цифра за період саме така і на якій підставі змінювалася.
  • Набір еталонних перевірок — контрольні набори операцій із наперед відомим результатом, за якими нова версія правил звіряється перед викаткою.

Що змінилося після впровадження: цифри до і після

Клієнт — платформа, яка приймає оплату в криптовалюті та тримає власний портфель на балансі.

До впровадження облік вели в електронних таблицях: вивантаження з бірж і гаманців зводили вручну, курс на дату кожної операції шукали окремо, а розбіжності розбирали вже на етапі підготовки звітності.

Точка відліку

Квартальний пакет збирався дев’ять робочих днів: три фахівці звіряли рухи за адресами, вручну розмічали тип операції та перераховували вартість у базовій валюті.

З 18 тисяч операцій за період автоматично розбиралося близько 40%, решту вводили руками — і на кожну сотню проводок стабільно припадало 5-6 неврахованих.

Що змінили і що отримали

Дані з бірж і публічних оглядачів блоків надходять за розкладом, курс на момент операції підтягується автоматично через CoinMarketCap.

Правила розмітки описують перекази між власними адресами, комісії, стейкінг і обмінні операції — спірні позиції не «дописуються» мовчки, а потрапляють в окрему чергу із зазначенням причини.

Термін підготовки звітності скоротився з дев’яти днів до одного: 93% операцій розбирається без участі людини, решту добирають в інтерфейсі розбору.

Неврахованих проводок за підсумками періоду — одиниці замість трьохсот з гаком, а кожна цифра у звіті розкривається до вихідної операції з курсом і адресою.

Що робити, якщо операції вже рознесені по різних сервісах?

Ситуація типова: біржі, гаманці та кастодіальні сервіси вже розгорнуті й працюють, а історія операцій розкладена по вивантаженнях у різних форматах. Питання не в тому, чи можна її перенести, а з якої глибини вона потрібна для розрахунку. Звідси два режими та гібрид між ними.

Варіант Коли підходить Обмеження
Перенесення всієї історії Потрібні розрахунки за минулі періоди Вивантаження перетинаються, частина операцій відновлюється вручну
Старт із дати впровадження Минулі періоди закриті в іншій системі Не покриває вхідні залишки
Поетапний перехід Основний сценарій: свіжі періоди, потім поглиблення в старі Звірка розбіжностей після кожного етапу

Складність перенесення не в обсязі, а в стикуванні: переказ між власними гаманцями потрапляє у два вивантаження одразу, а частина операцій не має пари. Звірка розбіжностей тому обов’язкова — зіставляємо суми та час, позначаємо внутрішні перекази і лише потім рахуємо базу. Без цього кроку база подвоюється.

Старт із дати впровадження швидший: вхідні залишки фіксуються знімком і беруться як початкові, минулі розрахунки залишаються в попередній системі. Обмеження одне — періоди до впровадження в новій системі не відновити, тому знімок вивіряється за всіма рахунками.

На практиці ведемо поетапний перехід: підключаємо поточні операції, потім довантажуємо історію блоками й кожну порцію закриваємо звіркою. У конфігурації задається дата відсікання та правило довантаження, а повторний імпорт розпізнає вже завантажену операцію і не створює дубль.

Технічні сумніви перед стартом проєкту

Старт гальмують не задачі обліку, а побоювання щодо доступу й даних. Приватні ключі ми не запитуємо: інтеграція будується на публічних адресах і доступі до бірж лише на читання, підпис операцій залишається у вас.

Вивантаження надходять із пропусками — недостатні рухи добираємо з блокчейну, залишки звіряємо на кожну звітну дату.

Перекази між власними гаманцями та зміна правил — друга зона сумнівів. Такі переміщення не створюють податкової події: позначаємо їх внутрішніми й переносимо собівартість на отримувальну адресу, щоб база не подвоювалася. Кластеризацію адрес ведемо через Chainalysis — одна й та сама монета не рахується двічі.

Біржа віддала неповну історію операцій — що тоді?

Добираємо недостатні рухи з блокчейну й звіряємо із залишками на рахунку. Розбіжності не згладжуємо, а показуємо окремим списком: видно, звідки взялася кожна цифра.

Що робити, якщо правила обліку зміняться?

Правила лежать у налаштовуваному шарі, а не зашиті в код. Перераховуємо історію за тими самими вихідними операціями й показуємо, які суми змінилися, — переписувати систему не потрібно.

Наскільки точний підсумковий розрахунок?

Кожна операція проходить подвійну звірку — за блокчейном і за даними біржі. Сходження підтверджуємо контрольними сумами та журналом правок, щоб результат витримав перевірку.

Обговоримо вашу задачу й повернемося з планом

Щоб повернутися з оцінкою, а не із загальними словами, потрібен мінімум ввідних: які майданчики та гаманці використовує компанія, як зараз зводяться угоди, комісії та перекази між своїми рахунками і який звіт чекає бухгалтерія. Цього достатньо, щоб визначити обсяг робіт без багатосторінкового технічного завдання.

  • Опис задачі — перелік майданчиків, мереж і типів операцій: торгівля, стейкінг, перекази між своїми рахунками, комісії, виплати.
  • Склад робіт — які модулі закриваємо: завантаження даних, зіставлення угод, розрахунок вартості за FIFO або за середньою, формування звітності.
  • План впровадження — етапи з результатом на кожному: підключення джерел, довідник курсів на дату операції, правила зіставлення, звірка з поточним обліком.
  • Порядок оцінки — трудомісткість за етапами, припущення та ризики, окремо те, що уточнюємо під час роботи.
  • Зона відповідальності — що робимо ми, а що залишається на боці замовника: доступи, вивантаження, приймання результату.
  • Старт проєкту — узгоджуємо перший етап і точки контролю, далі йдуть ітерації з показом працюючого результату.

За підсумками розмови ви отримаєте план робіт: склад етапів, терміни, відповідальних з нашого боку та спосіб перевірки результату на кожному кроці. Опишіть задачу у вільній формі — повернемося з оцінкою та планом.

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142