pain.001 — сообщение ISO 20022, которым компания поручает своему банку выполнить один или несколько кредитовых переводов. Полное название — Customer Credit Transfer Initiation: "pain" — семейство сообщений для инициирования платежей, .001 — номер сообщения, а суффикс, например pain.001.001.09, — версия. Это XML, который проверяется по официальной схеме (XSD) и заменяет банковские форматы CSV и текстовое сообщение SWIFT MT101.
pain.001 за одну минуту#
- Кто отправляет: компания (плательщик или агент, действующий от его имени) отправляет его в свой банк (банк плательщика).
- Что содержит: один или несколько пакетов переводов, каждый со счётом плательщика, запрошенной датой исполнения и любым числом платежей получателям.
- Что приходит в ответ: банк отвечает сообщением pain.002 (Customer Payment Status Report), принимая или отклоняя файл или отдельные транзакции с кодами причин ISO.
- Что происходит дальше: после принятия банк превращает каждое поручение в межбанковские сообщения, такие как pacs.008, которых компания никогда не видит.
- Где используется: кредитовые переводы SEPA по правилам EPC, трансграничные платежи в сети Swift в рамках CBPR+ (
pain.001.001.09) и многие национальные платёжные системы. Корпус примеров Pain001 охватывает 42 сценария на 17 рынках.
Как устроено сообщение pain.001#
Все версии имеют одинаковый трёхуровневый каркас внутри элемента <CstmrCdtTrfInitn>.
| Уровень | Элемент | Что содержит |
|---|---|---|
| 1 | <GrpHdr> Group Header (заголовок группы) | Идентификатор сообщения, время создания, число транзакций (NbOfTxs), контрольная сумма (CtrlSum), инициирующая сторона |
| 2 | <PmtInf> Payment Information (информация о платеже) | Один пакет: способ платежа, запрошенная дата исполнения, плательщик, счёт и банк плательщика, распределение комиссий |
| 3 | <CdtTrfTxInf> Credit Transfer Transaction (транзакция перевода) | Один платёж: сквозная ссылка, сумма и валюта, получатель, счёт и банк получателя, назначение платежа |
Файл может содержать несколько пакетов <PmtInf>, а каждый пакет — много платежей <CdtTrfTxInf>. NbOfTxs и CtrlSum указываются и на уровне файла, и на уровне пакета и должны совпадать с платежами, которые они учитывают; это одна из самых частых причин отклонения файла банком.
Полный пример pain.001#
Это один кредитовый перевод SEPA в версии pain.001.001.09, взятый без изменений из корпуса примеров Pain001. Он проходит проверку по официальной XSD ISO 20022. Стороны, номера IBAN и коды BIC вымышлены.
OML-SCT-20260921
2026-09-21T12:00:00
1
2200.00
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
SCT-20260921-IT-01
TRF
false
1
2200.00
SEPA
2026-09-22
Officine Meccaniche Lombarde SpA
20123
Milano
IT
Via Torino 15
IT48T78971134594OGDKY5VXE41
TLAOIT60
SLEV
OML-2026-0921-01
2200.00
MHXHITI0
Fonderia Bresciana Srl
25121
Brescia
IT
IT23J14887404856NF3794IGWXN
Fattura 117/2026
Проверьте свои данные в демо в браузере: оно создаёт файл pain.001 из CSV и проверяет его по официальной схеме, не отправляя данные за пределы вашего компьютера.
Версии pain.001#
ISO выпускает новую версию, когда меняется модель сообщения. Банки и платёжные системы принимают определённые версии, поэтому отправлять нужно ту, которую указывает документация канала вашего банка.
| Версия | Примечания |
|---|---|
| pain.001.001.03 | Проверенная временем основа SEPA и CGI; банки обозначаются элементом <BIC> |
| .04, .05, .06, .07, .08 | Поддерживающие версии, используемые отдельными каналами |
| pain.001.001.09 | Версия 2019 года, выбранная CBPR+ для сети Swift; банки обозначаются элементом <BICFI>, добавлена передача LEI и UETR |
| .10, .11, .12 | Уточнения после 2019 года |
| pain.001.001.13 | Опубликована ISO 19 марта 2026 года; добавляет необязательный уникальный идентификатор транзакции (UnqTxIdr) |
Матрица совместимости показывает, какие версии Pain001 генерирует, проверяет и между какими выполняет миграцию.
pain.001 и связанные сообщения#
| Сообщение | Направление | Назначение |
|---|---|---|
| pain.001 | Компания — своему банку | Поручает кредитовые переводы (деньги уходят) |
| pain.002 | Банк — компании | Сообщает статус pain.001 или pain.008: принят, частично принят или отклонён, с кодами причин |
| pain.008 | Компания — своему банку | Поручает прямые дебетования (списывает средства по мандату) |
| pacs.008 | Банк — банку | Межбанковский кредитовый перевод, в который превращается поручение pain.001 |
| MT101 | Компания или банк, через Swift | Устаревшее текстовое сообщение "Request for Transfer", которое заменяет pain.001. В августе 2026 года Swift отложил вывод из эксплуатации межбанковской ретрансляции MT101 (Swift); см. MT101 в pain.001 |
В глоссарии остальные термины ISO 20022 объяснены простым языком.
Почему банки отклоняют файлы pain.001#
Файл может быть корректным XML и всё равно быть отклонён. Проверки накладываются слоями:
- Схема: файл должен проходить проверку по официальной XSD своей версии.
- Качество данных: контрольные цифры IBAN верны, коды BIC корректны, даты и суммы допустимы, а
NbOfTxsиCtrlSumсовпадают с платежами. - Правила платёжной системы: SEPA, CBPR+ и национальные системы добавляют собственные ограничения, например допустимый набор символов или структурированный почтовый адрес.
- Профиль и канал вашего банка: каждый банк публикует собственные правила использования поверх правил системы.
Pain001 проверяет первые три слоя до того, как файл попадёт в банк, и прямо указывает, что четвёртый должен подтвердить банк.
Как создать файл pain.001#
- Из электронной таблицы: Excel в pain.001 превращает список платежей в Excel или CSV в проверенный файл.
- В браузере: демо создаёт и проверяет файл локально, без загрузки на сервер.
- Из кода или командной строки: установите открытую библиотеку pain001 и выполните:
Техническая документация описывает все параметры, а FAQ отвечает на вопросы, которые чаще всего задают казначейства, операционные и инженерные команды.
Источники#
- Определения и архив сообщений ISO 20022: iso20022.org
- Правила кредитовых переводов SEPA: European Payments Council
- CBPR+ и ретрансляция MT101: Swift