Что показывает эта демонстрация — и что добавляет полный конвейер
Каждый пример пакета можно также скачать в виде CSV-файла и использовать как шаблон для выгрузки из вашей ERP-системы или электронной таблицы — строка заголовков и есть контракт.
Демонстрация выше реализует уровень fail-fast конвейера Pain001: проверку обязательных полей, контрольные суммы IBAN по ISO 13616 (mod-97), структуру BIC по ISO 9362, форматы сумм и дат, а также контрольные итоги (NbOfTxs, CtrlSum), пересчитанные по самим записям, а не принятые на веру. Попробуйте меню „Добавить ошибку…“ — каждый сценарий вносит ровно один реалистичный дефект (переставленная цифра в IBAN, некорректный BIC, отсутствующий столбец, сумма с европейской десятичной запятой, невозможная дата) и показывает то самое замечание на уровне строки, о котором банковский шлюз иначе сообщил бы лишь через несколько дней.
Установленный набор инструментов выполняет куда более глубокую проверку: валидацию каждой записи по JSON Schema с нормализацией псевдонимов полей, пять сводов правил платёжных схем (SEPA SCT, Instant, SDD Core, B2B, трансграничные платежи) с выводом --explain по каждому правилу, а также финальную валидацию готового документа по официальной XSD ISO 20022 до записи первого байта. Десять версий pain.001 и pain.008.001.02 полностью поддерживаются.
pip install pain001
pain001 -t pain.001.001.09 -d payments.csv -o out/ --scheme sepa-sct --dry-run
Шаг 3 выше — не имитация: он запускает среду выполнения Python в WebAssembly и выполняет xmlschema по официальной схеме pain.001.001.09, размещённой на этом сайте, — тот же класс проверки XSD, который применяет CLI. Только в CLI остаётся всё остальное: нормализация по JSON Schema, пять сводов правил платёжных схем с --explain, а также остальные десять определений сообщений.