pain.001 adalah pesan ISO 20022 yang dikirim perusahaan ke banknya untuk memerintahkan satu atau beberapa transfer kredit. Nama lengkapnya Customer Credit Transfer Initiation: "pain" adalah keluarga pesan inisiasi pembayaran, .001 adalah nomor pesan, dan akhiran seperti pain.001.001.09 adalah versinya. Pesan ini berformat XML, divalidasi terhadap skema resmi (XSD), dan menggantikan format CSV khusus tiap bank serta pesan teks SWIFT MT101.
pain.001 dalam satu menit#
- Siapa yang mengirim: perusahaan (debitur, atau agen yang bertindak atas namanya) mengirimkannya ke banknya sendiri (bank debitur).
- Isinya: satu atau beberapa batch transfer kredit, masing-masing dengan rekening debitur, tanggal eksekusi yang diminta, dan sejumlah pembayaran kepada kreditur.
- Balasannya: bank menjawab dengan pain.002, Customer Payment Status Report, yang menerima atau menolak file atau transaksi tertentu dengan kode alasan ISO.
- Selanjutnya: setelah diterima, bank mengubah setiap instruksi menjadi pesan antarbank seperti pacs.008, yang tidak pernah dilihat perusahaan.
- Tempat penggunaannya: transfer kredit SEPA berdasarkan rulebook EPC, pembayaran lintas negara di Swift berdasarkan CBPR+ (
pain.001.001.09), dan banyak skema domestik. Korpus contoh Pain001 mencakup 42 skenario di 17 pasar.
Struktur pesan pain.001#
Setiap versi memiliki kerangka tiga tingkat yang sama di dalam elemen <CstmrCdtTrfInitn>.
| Tingkat | Elemen | Isinya |
|---|---|---|
| 1 | <GrpHdr> Header Grup | ID pesan, stempel waktu pembuatan, jumlah transaksi (NbOfTxs), jumlah kontrol (CtrlSum), pihak pemrakarsa |
| 2 | <PmtInf> Informasi Pembayaran | Satu batch: metode pembayaran, tanggal eksekusi yang diminta, debitur, rekening dan bank debitur, penanggung biaya |
| 3 | <CdtTrfTxInf> Transaksi Transfer Kredit | Satu pembayaran: referensi end-to-end, jumlah dan mata uang, kreditur, rekening dan bank kreditur, informasi remitansi |
Satu file dapat memuat beberapa batch <PmtInf>, dan setiap batch memuat banyak pembayaran <CdtTrfTxInf>. NbOfTxs dan CtrlSum muncul di tingkat file maupun batch dan harus cocok dengan pembayaran yang dihitungnya; ini salah satu alasan paling umum bank menolak file.
Contoh lengkap pain.001#
Ini adalah satu transfer kredit SEPA dalam pain.001.001.09, diambil tanpa perubahan dari korpus contoh Pain001. File ini lolos validasi terhadap XSD resmi ISO 20022. Para pihak, IBAN, dan BIC bersifat fiktif.
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
Coba data Anda sendiri di demo browser: demo ini membuat file pain.001 dari CSV dan memvalidasinya terhadap skema resmi tanpa data meninggalkan komputer Anda.
Versi pain.001#
ISO menerbitkan versi baru saat model pesan berubah. Setiap bank dan skema menerima versi tertentu, jadi versi yang Anda kirim adalah versi yang disebutkan dalam dokumentasi kanal bank Anda.
| Versi | Catatan |
|---|---|
| pain.001.001.03 | Andalan lama SEPA dan CGI; mengidentifikasi bank dengan <BIC> |
| .04, .05, .06, .07, .08 | Versi pemeliharaan yang digunakan oleh kanal tertentu |
| pain.001.001.09 | Versi 2019 yang dipilih CBPR+ untuk Swift; mengidentifikasi bank dengan <BICFI>, menambahkan dukungan LEI dan UETR |
| .10, .11, .12 | Penyempurnaan setelah 2019 |
| pain.001.001.13 | Diterbitkan ISO pada 19 Maret 2026; menambahkan pengenal transaksi unik opsional (UnqTxIdr) |
Matriks kompatibilitas menunjukkan versi mana yang dihasilkan, divalidasi, dan dimigrasikan oleh Pain001.
pain.001 dibandingkan dengan pesan terkait#
| Pesan | Arah | Tujuan |
|---|---|---|
| pain.001 | Perusahaan ke banknya | Memerintahkan transfer kredit (mengirim dana keluar) |
| pain.002 | Bank ke perusahaan | Melaporkan status pain.001 atau pain.008: diterima, diterima sebagian, atau ditolak, dengan kode alasan |
| pain.008 | Perusahaan ke banknya | Memerintahkan debit langsung (menagih dana berdasarkan mandat) |
| pacs.008 | Bank ke bank | Transfer kredit antarbank yang menjadi wujud instruksi pain.001 |
| MT101 | Perusahaan atau bank, melalui Swift | Pesan teks lama "Request for Transfer" yang digantikan pain.001. Swift menunda penghentian relai MT101 antarbank pada Agustus 2026 (Swift); lihat MT101 ke pain.001 |
Glosarium menjelaskan kosakata ISO 20022 lainnya dengan bahasa sederhana.
Mengapa bank menolak file pain.001#
Sebuah file bisa berupa XML yang valid secara format namun tetap ditolak. Pemeriksaannya bertumpuk dalam beberapa lapisan:
- Skema: file harus lolos validasi terhadap XSD resmi untuk versinya.
- Kualitas data: digit periksa IBAN valid, BIC berformat benar, tanggal dan jumlah valid, serta
NbOfTxsdanCtrlSumcocok dengan pembayarannya. - Aturan skema: SEPA, CBPR+, dan skema domestik menambahkan batasan sendiri, seperti set karakter yang diizinkan atau alamat pos terstruktur.
- Profil dan kanal bank Anda: setiap bank menerbitkan panduan penggunaannya sendiri di atas skema.
Pain001 memeriksa tiga lapisan pertama sebelum file sampai ke bank dan menyatakan dengan jelas bahwa lapisan keempat harus dikonfirmasi oleh bank.
Cara membuat file pain.001#
- Dari spreadsheet: Excel ke pain.001 mengubah daftar pembayaran Excel atau CSV menjadi file yang tervalidasi.
- Di browser: demo membuat dan memvalidasi file secara lokal, tanpa unggahan.
- Dari kode atau baris perintah: pasang pustaka pain001 sumber terbuka dan jalankan:
Referensi teknis mencakup setiap opsi, dan FAQ menjawab pertanyaan yang paling sering diajukan tim treasury, operasional, dan engineering.
Sumber#
- Definisi dan arsip pesan ISO 20022: iso20022.org
- Rulebook SEPA Credit Transfer: European Payments Council
- CBPR+ dan relai MT101: Swift