ISDOC, UBL и CII
Три семейства стандартов электронного выставления счетов. Они отличаются происхождением, но не тем, что могут выразить — по содержанию они очень похожи. Мы можем обрабатывать все на входе и на выходе.
ISDOC
Чешский стандарт, на сегодняшний день в версии 6.0.2. Его преимущество в том, что его поддерживает практически каждая чешская бухгалтерская программа. Недостаток в том, что за пределами Чехии о нём никто не слышал.
Мы генерируем версию 6.0.2 как отдельный файл .isdoc. На входе читаем и более старые версии 5.x и пакет ISDOCX, то есть ZIP с XML и приложенным PDF — из него PDF сохраняется как оригинал документа. ISDOCX на выходе не генерируем.
UBL 2.1
Международный стандарт от OASIS. На его основе работает европейская сеть Peppol (профиль BIS Billing 3.0) и немецкая XRechnung (3.0.2). Когда вы отправляете счет за границу или в государственные органы ЕС, почти наверняка они хотят именно это.
Кредит-нота в UBL идет как отдельный документ CreditNote, не как счет со знаком минус. Суммы считаются из суммы позиций, а не из прочитанных итогов — иначе документ не пройдет проверку внутренней согласованности у получателя. Адрес и электронный адрес сторон выводятся из DIČ.
CII D16B
Стандарт от UN/CEFACT. Его используют немецкий ZUGFeRD и французский Factur-X. Оба являются гибридными: результатом является PDF, внутри которого встроен XML. Человек видит счет, машина считывает данные. У вас есть выбор: голый XML (ZUGFeRD) или полноценный PDF/A-3b с встроенным XML (ZUGFeRD PDF). Такой PDF на входе мы распознаем и читаем из него XML без модели.
Какой выбрать
| Ситуация | Формат |
|---|---|
| Чешская бухгалтерская программа | ISDOC, или непосредственно Pohoda или Money S3 |
| Государственные органы ЕС | Peppol BIS 3.0 |
| Немецкий покупатель | XRechnung или ZUGFeRD PDF |
| Французский покупатель | ZUGFeRD PDF (Factur-X) |
| Собственная система | JSON |
Валидация
Форма и бизнес-правила выхода (XSD, Schematron EN 16931 и Peppol) мы контролируем во время разработки, а не при каждой загрузке. То, что можно проверить перед загрузкой, — это данные: результаты проверки показывают, что не сходятся итоговые суммы или отсутствует DIČ, и документ другого типа вообще не конвертируется в счетный формат. Если получатель всё же отклоняет файл, отправьте нам его сообщение и идентификатор документа.