← Документация / Руководства
Модуль НДС в ЕС
Определение места реализации, декларации OSS/IOSS, освобождение для малых предприятий и лимиты дистанционных продаж.
Правила исчисления трансграничного НДС при продаже товаров и услуг в ЕС/ЕЭП: определение места реализации, обратное начисление (reverse charge), учет роли торговых площадок (marketplace deemed-supplier), справочник ставок по странам и декларации OSS/IOSS. Все функции ниже работают по принципу API-first; для каждого эндпоинта указаны необходимые скоупы.
Справочник ставок
POST /v1/reference/eu-vat-rates/list (reference:read) - стандартные ставки НДС для всех 27 стран ЕС с возможностью фильтрации по параметрам countryCode и date. Периоды действия ставок отслеживаются с 2024-01-01 (Эстония: 24 % с 2025-07; Румыния: 21 %/11 % с 2025-08; Словакия: 23 %/19 % с 2025-01; Финляндия: 13,5 % и Литва: 12 % с 2026-01; Чехия: 12 % с 2024-01).
Источник: база данных Европейской комиссии "Taxes in Europe" (TEDB, https://ec.europa.eu/taxation_customs/tedb/), данные получены 2026-07-16; изменения в Литве на 2026 год сверены с налоговой службой VMI (https://www.vmi.lt/evmi/pvm-tarifai), изменения в Финляндии - с ресурсом vero.fi. Область применения: только ставки для материковой части и стандартных территорий. Региональные особенности (австрийский Юнгхольц, греческие острова, Азорские острова и Мадейра, заморские территории Франции и Корсика) не моделируются.
Эндпоинт POST /v1/reference/vat-classifiers/list теперь возвращает countryCode для каждого классификатора (существующие коды iSAF PVM* имеют значение LT); метод POST /v1/reference/vat-classifiers/upsert (reference:write) загружает наборы классификаторов для дополнительных стран, что закладывает основу для будущих страновых пакетов.
Определение режима налогообложения
Эндпоинт POST /v1/reference/vat/resolve (reference:read) определяет применимую ставку НДС для конкретной поставки. Входные параметры: partnerId или customerCountryCode (плюс опциональный флаг переопределения customerIsBusiness, в противном случае статус определяется на основе VAT-номера контрагента), supplyType (goods | services | digital), date, а также флаги ситуации: belowDistanceSalesThreshold, facilitatedByMarketplace (продажа через платформу, признаваемую налоговым агентом), actingAsMarketplace (вы сами являетесь платформой), sellerEstablishedInEu, importedConsignmentValueEur.
Входные данные для правил, добавленных Директивой Совета (ЕС) 2025/516 (НДС в цифровую эпоху, ViDA):
serviceKind(short_term_accommodation|passenger_road_transport) вместе сserviceCountryCode(страна нахождения объекта недвижимости или осуществления перевозки). Оба параметра требуют значенияsupplyType: "services".underlyingSupplierGaveVatNumberиunderlyingSupplierChargesVat: предоставил ли арендодатель или водитель платформе свой VAT-номер в стране поставки и подтвердил ли учисление НДС. Только одновременное наличие обоих параметров освобождает платформу от статуса налогового агента (п. 1 ст. 28a).goodsKind(installed|energy_network) для товаров, требующих монтажа или сборки у покупателя (ст. 36), а также для газа, электроэнергии, тепла или холода, поставляемых через сети (ст. 38, 39).goodsLocationCountryCode- страна, в которой товары находятся в момент продажи или отправки, если она отличается от страны регистрации компании.
Результат работы: scheme, vatCountryCode, reverseCharge, deemedSupplier, zeroRated, ставки для страны назначения, правовое основание (статья Директивы 2006/112/ЕС) и информационные примечания (например, напоминание о том, что для льготы по ст. 138 требуется действующий в системе VIES VAT-номер покупателя).
Реализованные правила:
| Ситуация | Результат |
|---|---|
| Поставка внутри одной страны | domestic, ставки страны отправления |
| ВнутрисообщеB2B-поставка товаров | intra_eu_b2b - поставка по ст. 138 по нулевой ставке, покупатель начисляет НДС самостоятельно |
| ВнутрисообщеB2B-поставка услуг | reverse_charge - ст. 44/196 |
| ВнутрисообщеB2C-поставка товаров/цифровых услуг сверх €10 000 | oss_union - ставки страны назначения, ст. 33(a)/58 |
ВнутрисообщеB2C-поставка товаров/цифровых услуг до €10 000 (belowDistanceSalesThreshold) |
domestic по стране отправления, ст. 59c |
| Общие внутрисообщеB2C-услуги | domestic, ст. 45 |
| Экспорт товаров за пределы ЕС | export - нулевая ставка по ст. 146(1) |
| Услуги и цифровые услуги покупателям вне ЕС | out_of_scope (ст. 44/59) |
Продажа через маркетплейс - налогового агента (facilitatedByMarketplace) |
marketplace_deemed - освобожденная от НДС поставка в адрес платформы по ст. 136a |
| Импортированная посылка B2C стоимостью ≤ €150 | ioss - НДС страны назначения при продаже, ст. 369l–369x; статус налогового агента при actingAsMarketplace (ст. 14a(1)) |
| Малое предприятие с освобождением (компания не платит НДС), внутренние продажи | sme_exempt - без НДС, ст. 284(1) |
| Малое предприятие с освобождением, трансграничный B2C в ЕС, наличие трансграничного номера EX | sme_exempt - ст. 284(2); действует при соблюдении лимита страны назначения и общегодового оборота в ЕС до €100 000 |
| Малое предприятие с освобождением, трансграничный B2C в ЕС, без номера EX | применяется режим oss_union/по стране отправления с примечанием о возможности освобождения при наличии трансграничного номера EX |
Платформа (actingAsMarketplace), организующая краткосрочное проживание (до 30 ночей) или пассажирские автоперевозки, начиная с 1 июля 2028 года |
deemedSupplier: true, налог уплачивается там, где находится недвижимость или осуществляется перевозка (ст. 28a, 47, 48): domestic, oss_union для потребителей из другой страны (ст. 369b(c)) или reverse_charge для бизнеса |
Арендодатель или водитель, продающие через такую платформу (facilitatedByMarketplace), начиная с 1 июля 2028 года |
marketplace_deemed - льготная поставка в адрес платформы, ст. 136b |
| Любой из двух предыдущих сценариев до 1 июля 2028 года, либо если арендодатель или водитель предоставили свой VAT-номер и самостоятельно уплачивают НДС | место реализации определяется по ст. 47 или 48, платформа налоговым агентом не признается |
| Товары, хранящиеся в другом государстве-члене и проданные местному потребителю, начиная с 1 июля 2028 года | oss_union, ст. 369b(e); до этой даты - domestic в соответствующей стране с примечанием о необходимости постановки на учет |
| Аналогичная операция в адрес бизнеса в той же стране | reverse_charge, ст. 194 |
| Товары, отправленные из другого государства-члена ЕС | oss_union для потребителя (ст. 33(a)) или intra_eu_b2b для бизнеса с примечанием о необходимости регистрации по НДС в соответствующей стране |
| Товары с монтажом для потребителя в другом государстве-члене | oss_union с 1 июля 2028 года (ст. 36, 369b(d)), до этого - domestic в стране назначения |
| Поставка газа, электроэнергии, тепла или холода потребителю в другом государстве-члене | oss_union с 1 января 2027 года (ст. 39, 369aa, затем 369b(d)); reverse_charge для бизнеса (ст. 195) |
Лимит в €10 000 (ст. 59c) можно передать явно через параметр belowDistanceSalesThreshold; если параметр не указан, система отслеживает его автоматически по данным бухгалтерского учета (см. эндпоинт лимитов ниже) и дополняет результаты расчетов текущими итогами.
Освобождение для малых предприятий (Директива 2020/285, действует с 2025 года). Если компания не зарегистрирована в качестве плательщика НДС, модуль расчетов рассматривает ее как малое предприятие, использующее освобождение: внутренние поставки получают статус sme_exempt (без НДС), а трансграничные B2C-поставки в ЕС также получают статус sme_exempt, если у компании есть трансграничный номер EX (smeExemptionNumber в профиле компании). В противном случае сохраняется стандартный режим OSS / по стране отправления с подсказкой о возможности применения трансграничной схемы. Контроль соответствия критериям (непревышение лимита страны назначения и общегодового оборота по ЕС в €100 000) лежит на налогоплательщике; модуль выводит соответствующие предупреждения. Задать номер EX можно через эндпоинт account/companies/update (поле smeExemptionNumber).
Счета-фактуры
Методы sales/invoices/create|update принимают параметры vatScheme (один из указанных выше режимов), vatCountryCode (государство потребления; обязательно для схем oss_union/ioss, проходит проверку на принадлежность к ЕС) и deemedSupplier. Заказы электронной коммерции принимают shipToCountryCode и marketplace; метод orders/fulfill автоматически определяет режим налогообложения на основе страны доставки и проставляет его в черновик счета-фактуры (предполагается отгрузка товаров с превышением лимита дистанционных продаж - при необходимости скорректируйте черновик перед выставлением).
Поле выбора режима НДС на странице создания счета-фактуры
Поле "Режим НДС" (VAT scheme) на странице нового счета-фактуры предлагает варианты, перечисленные ниже. Процент НДС, указанный в строке, определяет сумму налога в документе. Выбор варианта с пометкой "без НДС" (no VAT) обнуляет ставку во всех строках (при возврате к стандартному режиму восстанавливается исходная ставка). В PDF-файле автоматически печатается формулировка, требуемая законодательством для выбранного режима. Режим "Автоматически" вызывает описанный выше модуль расчета при сохранении документа, используя страну и VAT-номер партнера, а также выбранный тип поставки (товары, услуги или цифровые услуги). Если у партнера не указана страна или VAT-номер, сохранение завершится ошибкой, и вам потребуется выбрать режим вручную.
| Значение в форме | Режим | Когда применять | НДС в счете-фактуре |
|---|---|---|---|
| Автоматически (по партнеру и типу поставки) | определяется при сохранении | Вы хотите, чтобы режим подбирался автоматически на основе данных партнера и типа поставки | Устанавливается расчетным путем; для безналоговых режимов строки обнуляются |
| Внутренний | domestic |
Покупатель находится в вашей стране | Ставки вашей страны |
| ВнутрисообщеB2B товаров (0%, ст. 138) | intra_eu_b2b |
Товары отправляются компании с VAT-номером в другой стране ЕС; номер покупателя должен быть валидным в VIES | Без НДС; в PDF указывается ссылка на льготу по ст. 138 |
| ВнутрисообщеB2B услуг (обратное начисление) | reverse_charge |
Услуги оказываются компании с VAT-номером в другой стране ЕС | Без НДС; в PDF печатается текст "Обратное начисление" (Reverse charge, ст. 196) |
| Союзный режим OSS (потребители в ЕС, НДС страны назначения) | oss_union |
Товары или цифровые услуги потребителям в другой стране ЕС при превышении общесоюзного лимита в €10 000; требуется указать страну потребления | Ставка страны потребления, указывается в каждой строке; отражается в квартальной декларации OSS |
| IOSS (импорт стоимостью до €150) | ioss |
Товары импортируются из-за пределов ЕС для потребителя в ЕС, посылка до €150; требуется страна потребления | Ставка страны потребления, указывается в каждой строке; отражается в ежемесячной декларации IOSS |
| Маркетплейс (налоговый агент) | marketplace_deemed |
Продажа через платформу, которая выступает налоговым агентом | Без НДС на вашу поставку в адрес платформы (ст. 136a) |
| Экспорт (нулевая ставка) | export |
Товары отправляются за пределы ЕС | Без НДС; в PDF указывается ссылка на льготу по ст. 146 |
| За пределами ЕС (услуги вне ЕС) | out_of_scope |
Услуги оказываются заказчику за пределами ЕС | Без НДС; в PDF указывается, что операция вне сферы действия НДС ЕС (ст. 44/59) |
| Освобождение для МСП (не плательщик НДС) | sme_exempt |
Ваша компания не является плательщиком НДС и применяет освобождение для малых предприятий | Без НДС; в PDF указывается ссылка на ст. 284 |
Два внутрисообщеB2B-варианта отличаются только объектом поставки. Товары подпадают под освобождение по ст. 138: покупатель декларирует внутрисообщеB2B приобретение. Услуги подпадают под обратное начисление по ст. 44/196: покупатель рассчитывает НДС самостоятельно. Оба варианта формируют счет без НДС, но примечания в PDF и разделы в декларации покупателя различаются, поэтому выбор имеет значение.
Декларации OSS / IOSS
POST /v1/declarations/eu/oss/compute (declarations:read) { year, quarter } - квартальная декларация по Союзной схеме в соответствии с Приложением III Имплементационного регламента Комиссии (ЕС) 2020/194: строки в разрезе стран потребления × тип ставки (STANDARD / REDUCED) × ставка с указанием налогооблагаемой базы и суммы НДС, с учетом зачета кредитовых нот и итоговых сумм. В расчет включаются только проведенные документы с признаком vatScheme: "oss_union". Предупреждения фиксируют применение нестандартных ставок для страны и периода, пропущенные строки с нулевой ставкой, документы без указания vatCountryCode, а также операции, облагаемые в государстве регистрации.
POST /v1/declarations/eu/ioss/compute { year, month } - аналогичная ежемесячная декларация для режима vatScheme: "ioss" (импортированные посылки стоимостью ≤ €150).
Оба ответа содержат массив corrections (а также поле correctionsTotal): кредитовая нота, выписанная в текущем периоде, но связанная (через поле creditedInvoiceId) с исходным документом из прошлого периода OSS/IOSS, переносится из строк текущего периода и отражается как корректировка за прошлые периоды (с указанием страны, исходного года, квартала для OSS или месяца для ИОСС, а также дельты НДС) в соответствии с Приложением III регламента 2020/194. Кредитовые ноты без поля creditedInvoiceId зачитываются в текущем периоде, и по ним выводится предупреждение о необходимости привязки; корректировки старше трех лет также помечаются предупреждением (ст. 61 Регламента 282/2011).
Функция доступна для любых компаний, учрежденных в ЕС (не ограничена только Литвой).
Декларация о перемещении собственных товаров
POST /v1/declarations/eu/own-goods-transfers/compute (declarations:read) { year, month } - ежемесячная декларация по специальной схеме для перемещения собственных товаров (Директива 2006/112/ЕС, ст. 369xa-369xk, действует с 1 июля 2028 года), подаваемая в государстве регистрации бизнеса до конца месяца, следующего за отчетным (dueDate). В строках указывается стоимость перемещений по себестоимости (ст. 76) в евро в разрезе стран назначения и стран отправления, пересчитанная по курсу на последний день месяца (ст. 369xh). Перемещение представляет собой перевод запасов (POST /v1/inventory/stock/transfer) между складами в двух разных государствах ЕС; страна склада задается параметром countryCode при вызове /v1/inventory/warehouses/create или /v1/inventory/warehouses/update (склад без указания страны считается находящимся в стране компании).
Цифровая отчетность в ЕС
POST /v1/declarations/eu/digital-reporting/list (declarations:read) { fromDate, toDate } выводит список всех транзакций, которые ст. 262 Директивы 2006/112/ЕС предписывает отчитывать в индивидуальном порядке во всех 27 странах ЕС начиная с 1 июля 2030 года:
- выставленные расходные счета-фактуры и кредитовые ноты с режимом НДС
intra_eu_b2b(п. 1(a) ст. 262) илиreverse_charge(п. 1(c) ст. 262), со сроком подачи на дату выставления счета; - зарегистрированные входящие счета от поставщиков из других стран ЕС, по которым компания самостоятельно начисляет НДС (п. 1(b) ст. 262 для товаров, п. 1(d) для услуг), со сроком подачи 5 дней с момента получения счета.
Каждая транзакция содержит данные по ст. 264: дата и номер счета, VAT-номера поставщика и покупателя, позиции, налогооблагаемая база, ссылка на освобождение от налога, номер исправленного счета для кредитовых нот (п. 16 ст. 226), банковские счета поставщика (п. 17 ст. 226), ставка и сумма НДС для приобретений, государство отчетности (страна выдачи использованного VAT-номера, п. 2 ст. 262), крайний срок подачи, а также поле missing с перечнем отсутствующих обязательных реквизитов. Государства ЕС обязаны принимать эти данные в формате электронного счета EN 16931 (п. 3 ст. 263); эндпоинт POST /v1/sales/invoices/peppol-xml формирует такой файл для каждой поставки. Унифицированное сообщение ЕС (п. 4 ст. 263) и национальные каналы передачи данных еще не опубликованы, поэтому платформа Nordlet не осуществляет их отправку.
Лимит дистанционных продаж
POST /v1/declarations/eu/distance-sales-threshold/get (declarations:read) { date? } - отслеживает общесоюзный лимит в €10 000 по ст. 59c на основе данных бухгалтерского учета: итоговые показатели трансграничных B2C дистанционных продаж за текущий и предшествующий календарные годы (счета по схеме OSS плюс трансграничные потребительские счета без специального режима), статус превышения лимита и остаток доступного лимита. Документы в валютах, отличных от евро, суммируются по номиналу с выводом предупреждения. Модуль расчета НДС автоматически обращается к этому эндпоинту, если параметр belowDistanceSalesThreshold не задан явно.
Пороги освобождения для малых предприятий
POST /v1/declarations/eu/sme-thresholds/list возвращает национальные пороги освобождения от НДС для малых предприятий по Директиве (ЕС) 2020/285 (включая национальный лимит в €85 000 и общесоюзный лимит оборота в €100 000). Данные берутся со страновых страниц портала ЕС для МСП; если на страновой странице указана отсылка к TEDB без конкретной суммы, возвращается значение null вместо предположений. Некоторые лимиты установлены в национальных валютах (DKK, HUF, RON), а некоторые страны публикуют отраслевые лимиты (например, в Ирландии: услуги €42 500, товары €85 000).
POST /v1/declarations/eu/sme-threshold/get { date? } оценивает показатели компании, не являющейся плательщиком НДС, относительно лимита своей страны: оборот за текущий календарный год плюс оборот за предыдущий год (precedingTurnover), status (below / approaching при достижении 80% / exceeded, либо not_applicable для плательщиков НДС, или unknown, если порог отсутствует в базе или используется другая валюта), остаток лимита и предупреждения. Включены рекомендации по карантинным периодам: при превышении лимита освобождение блокируется на оставшуюся часть текущего и на следующий календарный год; если в текущем году компания находится в пределах лимита, но превысила его в прошлом году, система предупредит, что возобновить освобождение можно будет только через год (оба года должны оставаться ниже лимита - механика п. 2 ст. 284; эндпоинт общесоюзного оборота содержит аналогичное предупреждение для лимита в €100 000). Для стран с национальным внутрисообщественным триггером (в Литве - €14 000 для услуг, оказанных в другие страны ЕС, и товаров/услуг, приобретенных из них) ответ включает детализацию intraEu (приобретения у поставщиков из ЕС + услуги с обратным начислением) с собственным статусом и предупреждениями.
Трансграничная схема для МСП: общесоюзный оборот и квартальный отчет
POST /v1/declarations/eu/union-turnover/get { date? } отслеживает общесоюзный лимит оборота в €100 000 для трансграничной схемы МСП (ст. 284(2)) на основе данных бухучета - общую стоимость поставок, осуществленных внутри ЕС (экспорт и операции вне сферы действия налога исключаются), за текущий и предшествующий календарные годы. Возвращает итоги за оба года, status, остаток лимита и предупреждения (значение not_applicable для плательщиков НДС).
POST /v1/declarations/eu/sme-cross-border-report/compute { year, quarter } формирует квартальный отчет, который малое предприятие на данной схеме обязано предоставить в налоговые органы своей страны (ст. 284b): общую стоимость поставок в каждом государстве-члене за квартал, по одной строке на страну (страна поставки = страна потребления из счета, либо страна партнера, либо домашняя страна), а также итоговую сумму. Операции за пределами ЕС исключаются.
Национальные пакеты деклараций по НДС
POST /v1/declarations/eu/vat-return/packs/list выводит список доступных страновых пакетов; метод POST /v1/declarations/eu/vat-return/compute { countryCode, year, month, months? } обращается к пакету, зарегистрированному для указанной страны, и формирует декларацию в виде нумерованных строк ({ code, label, amount }), дополняя ее предупреждениями, примечаниями и официальным источником source. Требуется регистрация компании в соответствующей стране (в противном случае возвращается код 422). Литва (форма FR0600) поставляется в качестве первого пакета и использует существующий генератор FR0600; другие страны будут добавляться в виде модулей данных по мере верификации официальных форматов отчетности.
Устаревший сводный эндпоинт POST /v1/reports/oss сохранен как эвристический аналитический инструмент (на основе страны партнера, без проверки режима); декларационные эндпоинты являются основным средством для подготовки официальной отчетности. Оба метода определяют домашнюю страну по данным компании, а не предполагают автоматически Литву.