Takaitaccen bayani / mahimman bayanai
- ISO 20022 pain.001 (CustomerCreditTransferInitiation) shi ne structured XML message format da ake amfani da shi don fara credit transfer a ƙarƙashin SEPA (EPC SCT rulebook) da CBPR+ (standard ɗin SWIFT na cross-border messaging, wajibi ga correspondent banks daga Nuwamba 2025).
- pain001 ⧉ yana karanta payment data daga CSV ko SQLite, yana map rows zuwa hierarchy na pain.001.001.09 (GrpHdr -> PmtInf -> CdtTrfTxInf), sannan yana render XML file mai bin ƙa'ida ta templated generator — layuka uku na Python daga data zuwa validated XML.
- XSD validation yana gudana a kan kowane generated file kafin a rubuta output; library ɗin yana ɗaga descriptive exception da ke nuna failing element, cardinality ko type mismatch, don haka ana kama kuskure yayin generation maimakon lokacin bank submission.
- CtrlSum da NbOfTxs ana lissafa su daga transaction set, ba a shigar da su da hannu ba — yana kawar da mafi yawan dalilin rejection na payment file a SEPA da CBPR+ processing gateways.
- Ana goyon bayan SEPA Credit Transfer (EUR, a cikin yankin SEPA) da CBPR+ (cross-border, multi-currency) ta
message_typeparameter, tare da kula da field-level validation differences a ciki.
pain001 ⧉ ɗakin karatu ne na Python na open-source don samar da ISO 20022 payment initiation files. Yana karanta payment data daga structured input (CSV ko SQLite), yana tantance data, yana render pain.001.001.09 XML document mai bin ƙa'ida, sannan yana tantance output da ISO 20022 XSD schema — duk a function call guda.
Wannan labarin yana bayyana tsarin ISO 20022 pain.001 message, yadda pain001 ke map input data zuwa message elements, validation pipeline, da zaɓuɓɓukan configuration na SEPA da CBPR+.
Tsarin saƙon ISO 20022 pain.001
Saƙon ISO 20022 pain.001.001.09 (CustomerCreditTransferInitiation) yana da matakai uku:
GrpHdr (Group Header) — ɗaya a kowane fayil:
| Element | Bayani | Misali |
|---|---|---|
MsgId |
Unique message identifier | ACME20240115-001 |
CreDtTm |
Ranar da lokacin ƙirƙira | 2024-01-15T09:00:00 |
NbOfTxs |
Jimillar adadin transactions | 3 |
CtrlSum |
Jimlar duk instructed amounts | 15000.00 |
InitgPty/Nm |
Sunan initiating party | Acme Corp |
PmtInf (Payment Information) — ɗaya ko fiye a kowane fayil; yana tara transactions bisa debtor account da payment date:
| Element | Bayani |
|---|---|
PmtInfId |
Payment information identifier |
PmtMtd |
Payment method — koyaushe TRF ne don credit transfer |
ReqdExctnDt/Dt |
Requested execution date |
Dbtr/Nm |
Sunan debtor (sender) |
DbtrAcct/Id/IBAN |
Debtor IBAN |
DbtrAgt/FinInstnId/BICFI |
Debtor bank BIC |
CdtTrfTxInf (Credit Transfer Transaction Information) — ɗaya ko fiye a kowane PmtInf block:
| Element | Bayani |
|---|---|
PmtId/EndToEndId |
End-to-end reference da ake riƙewa a duk chain |
Amt/InstdAmt |
Instructed amount tare da currency attribute |
CdtrAgt/FinInstnId/BICFI |
Creditor bank BIC |
Cdtr/Nm |
Sunan creditor (receiver) |
CdtrAcct/Id/IBAN |
Creditor IBAN |
RmtInf/Ustrd |
Unstructured remittance information, kamar invoice reference |
Samar da XML daga CSV
Ƙaramin pain001 invocation:
from pain001 import create_xml_v9
create_xml_v9(
data_file="payments.csv",
data_file_type="csv",
xml_file_path="output/pain001.xml"
)
CSV file yana map column names zuwa message fields. Misali mafi sauƙi:
id,date,nb_of_txs,ctrl_sum,initiating_party_name,debtor_name,debtor_account_IBAN,debtor_agent_BIC,creditor_name,creditor_account_IBAN,creditor_agent_BIC,instd_amt,instd_amt_ccy,end_to_end_id,remittance_info
1,2024-01-15,1,1000.00,Acme Corp,Acme Corp,GB29NWBK60161331926819,NWBKGB2L,Supplier Ltd,DE89370400440532013000,COBADEFFXXX,1000.00,EUR,ACME20240115001,INV-2024-0042
Library ɗin yana karanta ctrl_sum da nb_of_txs daga CSV row ga fayilolin single-row. Ga multi-row files (transactions da yawa a batch ɗaya), pain001 yana lissafa waɗannan values daga transaction set maimakon dogaro da input values, wanda ke hana mismatch.
SQLite interface yana amfani da column-name convention ɗaya. A bayar da data_file_type="sqlite" da path ɗin data_file zuwa SQLite database file; pain001 yana karanta payment table by default.
Tsarin XML da aka samar
Pain.001.001.09 document da aka render daidai ga CSV row da ke sama:
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.09">
<CstmrCdtTrfInitn>
<GrpHdr>
<MsgId>ACME20240115-001</MsgId>
<CreDtTm>2024-01-15T09:00:00</CreDtTm>
<NbOfTxs>1</NbOfTxs>
<CtrlSum>1000.00</CtrlSum>
<InitgPty><Nm>Acme Corp</Nm></InitgPty>
</GrpHdr>
<PmtInf>
<PmtInfId>ACME20240115-PMT-001</PmtInfId>
<PmtMtd>TRF</PmtMtd>
<ReqdExctnDt><Dt>2024-01-16</Dt></ReqdExctnDt>
<Dbtr><Nm>Acme Corp</Nm></Dbtr>
<DbtrAcct><Id><IBAN>GB29NWBK60161331926819</IBAN></Id></DbtrAcct>
<DbtrAgt><FinInstnId><BICFI>NWBKGB2L</BICFI></FinInstnId></DbtrAgt>
<CdtTrfTxInf>
<PmtId><EndToEndId>ACME20240115001</EndToEndId></PmtId>
<Amt><InstdAmt Ccy="EUR">1000.00</InstdAmt></Amt>
<CdtrAgt><FinInstnId><BICFI>COBADEFFXXX</BICFI></FinInstnId></CdtrAgt>
<Cdtr><Nm>Supplier Ltd</Nm></Cdtr>
<CdtrAcct><Id><IBAN>DE89370400440532013000</IBAN></Id></CdtrAcct>
<RmtInf><Ustrd>INV-2024-0042</Ustrd></RmtInf>
</CdtTrfTxInf>
</PmtInf>
</CstmrCdtTrfInitn>
</Document>
XSD validation pipeline
Bayan rendering, pain001 yana tantance output da ISO 20022 pain.001.001.09 XSD schema. Validation yana bincika:
- Mandatory element presence: GrpHdr/MsgId, GrpHdr/CreDtTm, GrpHdr/NbOfTxs da GrpHdr/CtrlSum duk wajibi ne; idan ɗaya ya ɓace, validation error zai tashi.
- Type constraints: IBAN format, BIC format (characters 8 ko 11), amount precision (matsakaicin digits 18, decimal places 5).
- Cardinality: aƙalla
CdtTrfTxInfɗaya a kowanePmtInf; aƙallaPmtInfɗaya a kowane document. - Enumeration values:
PmtMtddole ya zamaTRFdon credit transfers;Ccydole ya zama valid ISO 4217 currency code.
Idan validation ya gaza, pain001 yana ɗaga ValidationError tare da lxml error message da ke nuna failing XPath expression, element name da constraint. Wannan yana bayyana misconfiguration lokacin generation maimakon lokacin bank submission, inda rejection codes yawanci ba su da cikakken bayani.
SEPA da CBPR+ configuration
SEPA Credit Transfer (ISO 20022 pain.001.001.09 a ƙarƙashin EPC SCT rulebook) da CBPR+ (standard ɗin SWIFT Cross-Border Payments and Reporting Plus) suna amfani da message schema ɗaya, amma suna bambanta a mandatory field sets da value constraints:
| Aspect | SEPA SCT | CBPR+ |
|---|---|---|
| Currency | EUR kaɗai | Multi-currency |
| IBAN mandatory | E | E (creditor) |
| BIC mandatory | A'a (SEPA zone routing) | E |
Charge bearer (ChrgBr) |
SLEV |
DEBT, CRED, ko SHAR |
| Scope | SEPA zone (ƙasashe 36) | Global correspondent banking |
A saita message type ta payment_initiation_message_type parameter:
create_xml_v9(
data_file="payments.csv",
data_file_type="csv",
xml_file_path="output/pain001.xml",
payment_initiation_message_type="pain.001.001.09" # default; also accepts "pain.001.001.03" for legacy SEPA
)
CBPR+ compliance ya zama wajibi ga SWIFT correspondent banking a Nuwamba 2023 don inbound messages da Nuwamba 2025 don outbound. Samar da pain.001 files masu bin CBPR+ yana buƙatar a cika BIC field kuma ChrgBr element ya kasance.
Tambayoyin da ake yawan yi
Menene bambanci tsakanin pain.001 da pain.008? pain.001 (CustomerCreditTransferInitiation) yana fara credit transfer — bankin sender yana debit account ɗin sender kuma yana credit receiver. pain.008 (CustomerDirectDebitInitiation) yana fara direct debit — bankin creditor yana karɓar kuɗi daga debtor. Library ɗin pain001 yana samar da pain.001 files kaɗai.
Wane ISO 20022 version pain001 yake nufi?
Primary target shi ne pain.001.001.09, version da ake buƙata ga CBPR+ kuma EPC ta wajabta ga sabbin SEPA implementations. Library ɗin yana kuma support pain.001.001.03 (legacy SEPA version) ta payment_initiation_message_type parameter ga ƙungiyoyin da har yanzu suke amfani da tsofaffin bank interfaces.
pain001 zai iya sarrafa debtor accounts da yawa a fayil guda?
E. Ana iya samar da PmtInf blocks da yawa masu debtor IBAN daban-daban ta grouping CSV rows masu debtor account values daban. pain001 yana ƙirƙirar PmtInf block ɗaya ga kowane unique combination na (debtor IBAN, execution date), tare da duk matching transactions a matsayin CdtTrfTxInf children.
Me ke faruwa idan XSD validation ya gaza?
pain001 yana ɗaga pain001.exceptions.ValidationError tare da lxml validation message. Ba a rubuta XML file zuwa disk idan validation ya gaza, don haka valid files kaɗai ke isa output path. Dalilan failure da aka fi gani su ne: IBAN a format mara daidai, BIC ba characters 8 ko 11 ba, currency code baya cikin ISO 4217, ko mandatory elements sun ɓace saboda required CSV column baya nan.
Manazarta
- European Payments Council. SEPA Credit Transfer Scheme Customer-to-Bank Implementation Guidelines (v1.1). EPC, 2023. https://www.europeanpaymentscouncil.eu/document-library/implementation-guidelines/sepa-credit-transfer-scheme-customer-bank
- SWIFT. CBPR+ Usage Guidelines — Customer Credit Transfer Initiation (pain.001). SWIFT Standards, 2023. https://www.swift.com/standards/iso-20022/cbpr-plus-usage-guidelines
- ISO. ISO 20022 — Financial services — Universal financial industry message scheme. ISO.org, 2023. https://www.iso20022.org/
- Rousseau, S. pain001 — ISO 20022 payment file generator. GitHub, 2023. https://github.com/sebastienrousseau/pain001
An sake dubawa na ƙarshe .
Bita ta ƙarshe .
Sake buga wannan labarin
Kwafa tsarin Medium
# Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau > Originally published at [https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/](https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/) pain001 ɗakin karatu ne na Python na open-source da ke samar da fayilolin biyan kuɗi na XML ISO 20022 pain.001.001.09 daga bayanan CSV ko SQLite, tare da tantancewar XSD ta atomatik, lissafin control-sum, da goyon bayan tsarin saƙonni na SEPA SCT da CBPR+ na biyan kuɗi ƙetare. Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/
Kwafa tsarin Mastodon
Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau pain001 ɗakin karatu ne na Python na open-source da ke samar da fayilolin biyan kuɗi na XML ISO 20022 pain.001.001.09 daga bayanan CSV ko SQLite, tare da tantancewar XSD ta atomatik, lissafin control-sum, da goyon bayan tsarin saƙonni na SEPA SCT da CBPR+ na biyan kuɗi ƙetare. https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/
Kwafa an tsara don LinkedIn
Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau pain001 ɗakin karatu ne na Python na open-source da ke samar da fayilolin biyan kuɗi na XML ISO 20022 pain.001.001.09 daga bayanan CSV ko SQLite, tare da tantancewar XSD ta atomatik, lissafin control-sum, da goyon bayan tsarin saƙonni na SEPA SCT da CBPR+ na biyan kuɗi ƙetare. Ga abubuwan da ya kamata a lura da su na dabarun: - Tsarin saƙon ISO 20022 pain.001. Saƙon ISO 20022 pain.001.001.09 (CustomerCreditTransferInitiation) yana da matakai uku:. - Samar da XML daga CSV. Ƙaramin pain001 invocation:. - Tsarin XML da aka samar. Pain.001.001.09 document da aka render daidai ga CSV row da ke sama:. - XSD validation pipeline. Bayan rendering, pain001 yana tantance output da ISO 20022 pain.001.001.09 XSD schema. Menene hanyar ƙungiyar ku wajen magance ƙalubalen da aka kawo a wannan rubuce-rubucen? → https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/ #Pain001 #Iso20022 #Pain.001.001.09 #Customercredittransferinitiation #SepaCreditTransfer Sebastien Rousseau | CC-BY-4.0
Buga wannan labari
Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau
pain001 ɗakin karatu ne na Python na open-source da ke samar da fayilolin biyan kuɗi na XML ISO 20022 pain.001.001.09 daga bayanan CSV ko SQLite, tare da tantancewar XSD ta atomatik, lissafin control-sum, da goyon bayan tsarin saƙonni na SEPA SCT da CBPR+ na biyan kuɗi ƙetare.
BibTeX
@online{rousseau2023sarrafawa,
author = {Rousseau, Sebastien},
title = {{Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau}},
year = {2023},
url = {https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/},
urldate = {2023}
}RIS
TY - GEN AU - Rousseau, Sebastien TI - Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau PY - 2023 UR - https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/ ER -
Vancouver
Rousseau S. Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau. sebastienrousseau.com. 2023 Sep 29. Available from: https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/
Chicago
Rousseau, Sebastien. "Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau." sebastienrousseau.com. September 29, 2023. https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/.
APA
Rousseau, S. (2023, September 29). Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/
Sake buga wannan labari
Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau
pain001 ɗakin karatu ne na Python na open-source da ke samar da fayilolin biyan kuɗi na XML ISO 20022 pain.001.001.09 daga bayanan CSV ko SQLite, tare da tantancewar XSD ta atomatik, lissafin control-sum, da goyon bayan tsarin saƙonni na SEPA SCT da CBPR+ na biyan kuɗi ƙetare.
An lasisin wannan labari a karkashin Creative Commons Attribution 4.0 International. Sake bugawa na bukatar nuna asalin URL na asali.
Sarrafawa ta atomatik don ƙirƙirar fayilolin biyan kuɗi na ISO 20022 da pain001 — Sebastien Rousseau pain001 ɗakin karatu ne na Python na open-source da ke samar da fayilolin biyan kuɗi na XML ISO 20022 pain.001.001.09 daga bayanan CSV ko SQLite, tare da tantancewar XSD ta atomatik, lissafin control-sum, da goyon bayan tsarin saƙonni na SEPA SCT da CBPR+ na biyan kuɗi ƙetare. Originally published at https://sebastienrousseau.com/ha/2023-09-29-automating-iso-20022-compliant-payment-file-creation-with-pain001/ by Sebastien Rousseau. Licensed under CC-BY-4.0.
