pain.001 — це повідомлення ISO 20022, яке компанія надсилає своєму банку, щоб доручити один або кілька кредитових переказів. Його повна назва — Customer Credit Transfer Initiation (ініціювання кредитового переказу клієнтом): "pain" — родина повідомлень ініціювання платежів, .001 — номер повідомлення, а суфікс, наприклад pain.001.001.09, — версія. Це XML, воно перевіряється за офіційною схемою (XSD) і замінює власні CSV-формати банків та текстове повідомлення SWIFT MT101.
pain.001 за хвилину#
- Хто надсилає: компанія (платник або агент, що діє від його імені) надсилає його своєму банку (банку платника).
- Що містить: один або кілька пакетів кредитових переказів, кожен із рахунком платника, запитаною датою виконання та будь-якою кількістю платежів отримувачам.
- Що надходить у відповідь: банк відповідає повідомленням pain.002 — звітом про статус платежів клієнта, який приймає або відхиляє файл чи окремі транзакції з кодами причин ISO.
- Що відбувається далі: після прийняття банк перетворює кожне доручення на міжбанківські повідомлення, як-от pacs.008, яких компанія ніколи не бачить.
- Де використовується: кредитові перекази SEPA за правилами EPC, транскордонні платежі в Swift за CBPR+ (
pain.001.001.09) і багато національних платіжних схем. Корпус прикладів Pain001 охоплює 42 сценарії на 17 ринках.
Структура повідомлення pain.001#
Усі версії мають однаковий трирівневий каркас усередині елемента <CstmrCdtTrfInitn>.
| Рівень | Елемент | Що містить |
|---|---|---|
| 1 | <GrpHdr> Заголовок групи | Ідентифікатор повідомлення, час створення, кількість транзакцій (NbOfTxs), контрольна сума (CtrlSum), ініціатор |
| 2 | <PmtInf> Платіжна інформація | Один пакет: спосіб платежу, запитана дата виконання, платник, рахунок і банк платника, сторона, що сплачує комісії |
| 3 | <CdtTrfTxInf> Транзакція кредитового переказу | Один платіж: наскрізний ідентифікатор, сума й валюта, отримувач, рахунок і банк отримувача, призначення платежу |
Файл може містити кілька пакетів <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 і виконайте:
Технічний довідник описує всі параметри, а поширені запитання відповідають на те, що найчастіше запитують команди казначейства, операцій та розробки.
Джерела#
- Визначення та архів повідомлень ISO 20022: iso20022.org
- Правила кредитових переказів SEPA: European Payments Council
- CBPR+ і ретрансляція MT101: Swift