Pain001

Egyenes válaszok treasury-, fizetési működési, mérnöki és auditcsapatoknak. A kérdések úgy szerepelnek, ahogyan azokat valójában felteszik. Részletesebb műszaki leírásért lásd a műszaki referenciát.


Treasury- és pénzügyi vezetőknek#

Mi az a pain.001, egyetlen bekezdésben?

A pain.001 az az ISO 20022 üzenet, amelyet az ügyfél a bankjának küld átutalások indításához — a SWIFT MT101-hez és a hazai fix formátumú fájlokhoz hasonló formátumok XML-utódja. A bankja séma és sémaszabálykönyv alapján validálja, mielőtt befogadná. A Pain001 (a szoftver) a már meglévő adataiból állítja elő ezeket a fájlokat, és beküldés előtt bizonyítja, hogy érvényesek.

Mi a különbség a pain.001 és a pain.008 között?

A pénzmozgás iránya. A pain.001 átutalásokat indít — Ön küldi ki a pénzt. A pain.008 beszedéseket indít — Ön szedi be a felhatalmazás alapján Önt megillető összeget. A Pain001 mindkettőt generálja: a pain.001 tíz verzióját (a .001.03 verziótól a .001.12 verzióig) és a pain.008.001.02 üzenetet.

Még mindig MT101 fájlokat küldünk. Mennyire sürgős az átállás?

Sürgős. A SWIFT 2025 novemberében kivezette az 1-es, 2-es és 9-es kategóriájú MT üzeneteket a határon átnyúló bankközi fizetési megbízásoknál; azok a vállalati csatornák, amelyek még fogadnak MT-t, ezt az egyes bankok saját döntése alapján és kifutó időben teszik. Az MT101 betöltő a meglévő MT101 folyamatokat validált pain.001 üzenetekké alakítja, adatok újragépelése nélkül.

Mit jelent számunkra a 2026. novemberi, strukturált címekre vonatkozó határidő?

2026 novemberének végétől a teljesen strukturálatlan postai címek már nem fogadhatók el a CBPR+ határon átnyúló fizetésekben; a címeknek strukturáltnak vagy hibridnek kell lenniük — különálló elemek, például a település () és az ország (), a szabad szöveges sorok helyett. Ha a törzsadataiban a címek egybefüggő szövegként szerepelnek, a munka az adatokban van, nem a banki kapcsolatban. Kezdje ott. A 2026-os elemzés részletesen bemutatja az ütemtervet.

Mennyibe kerül a Pain001?

Semmibe. Az alapcsomag kettős, Apache-2.0 / MIT licencű; a kiegészítő csomagok Apache-2.0 licencűek. A kereskedelmi használat, a módosítás és a továbbterjesztés egyaránt megengedett. Nagyságrendi viszonyításként: önmagában a SWIFT fordítási SDK-jának listaára €10,000–30,000 évente.


Fizetési működési csapatoknak#

Miért utasítják el a bankok a fizetési fájlokat?

Négy visszatérő ok: sémasértések (rossz elem, rossz verzió, rossz névtér), hibás azonosítók (IBAN-ellenőrzőösszeg hibák, hibás felépítésű BIC-ek), elrontott ellenőrző összegek (a NbOfTxs / CtrlSum nem egyezik a tranzakciókkal), valamint az ISO 20022 latin készletén kívüli karakterek. A Pain001 mind a négyet ellenőrzi, még mielőtt a fájl létrejönne: rekordonkénti JSON Schema validálás, mod-97 IBAN- és ISO 9362 BIC-ellenőrzés, újraszámolt ellenőrző összegek, karakterkészlet-átírás, végül az előállított XML XSD-validálása.

Tudunk fájlt validálni anélkül, hogy bármit generálnánk?

Igen — pain001 --dry-run (vagy a validate alparancs, illetve a POST /api/v1/validate hívás). A 0 kilépési kód érvényes fájlt jelent, az 1 pedig azt, hogy a validálás mezőszintű hibákkal elbukott. Kösse be a CI-ba vagy egy beküldés előtti ellenőrzőlistába.

Mely SEPA szabálykönyveket fedi le?

Öt sémaszabálykönyv beépítve érkezik: SEPA Credit Transfer (sepa-sct), SEPA Instant (sepa-inst), SEPA Direct Debit Core (sepa-sdd), SEPA B2B (sepa-b2b) és határon átnyúló átutalás (xborder-ct). A --scheme --explain kapcsolóval megtekintheti az összes teljesült vagy megbukott szabályt.

Az adataink Excelben vannak. Mi ebben a buktató?

Az Excel csendben számmá alakítja az IBAN-szerű karakterláncokat. Az Excel betöltő közvetlenül olvassa a .xlsx/.xlsm fájlokat, és azonnal megáll, ha az IBAN-oszlopok numerikus cellákat tartalmaznak — a sérülés a betöltéskor derül ki, nem a banknál.

Hogyan kezel egy 500,000 soros köteget?

A --streaming memóriakorlátos darabokban dolgozza fel a bemenetet (alapértelmezetten 1,000 tranzakció), és mindegyiket önálló XML fájlként állítja elő, helyesen újraszámolt ellenőrző összegekkel. A REST API ugyanezért kínálja a POST /api/v1/generate/async végpontot, feladatállapot-lekérdezéssel.


Mérnököknek és architektáknak#

Hogyan integráljuk — könyvtárként, CLI-ként vagy API-ként?

Mindhárom teljes értékű felületként létezik: típusos Python API, CI-barát kilépési kódokat adó CLI, valamint FastAPI mikroszolgáltatás (pain001 serve) szinkron, aszinkron feladat-, állapot- és Prometheus metrikavégpontokkal. Alattuk ugyanaz a validálási folyamat fut, így az eredmények soha nem térnek el a felületek között.

Valóban védett az XML-generálás a lebegőpontos kerekítés ellen?

Az összegek végig decimal.Decimal típusúak a generálásban és a sémavalidálásban — pontos tizedes értékként értelmezve, pontos tizedes értékként összegezve, lebegőpontos ábrázolás nélkül megjelenítve. Az ellenőrző összegeket a rendszer a validált rekordokból számolja újra, soha nem veszi át a bemenetből.

Milyen a biztonsági felkészültség?

Minden XML-értelmezés a defusedxml könyvtáron keresztül történik (blokkolva az XXE- és az entitáskiterjesztéses támadásokat); a függőségi fában nincs lxml. A bemenetek útvonalbejárás elleni validátoron mennek át. A Docker-képfájl nem root felhasználóként fut. Az alapcsomag kiadásaihoz CycloneDX SBOM készül, a külső bővítmények felismerése pedig teljesen kikapcsolható a PAIN001_DISABLE_PLUGINS=1 beállítással.

Hogyan biztosítják a minőséget?

100%-os sor- és áglefedettség kemény CI-kapuként az alapcsomagon (ellenőrizhetően: 3,828 sor, 926 ág 100%-on), szigorú mypy, 100%-os docstring-lefedettség, Bandit és pip-audit biztonsági linterek, valamint CodeQL-vizsgálat. A kiegészítő csomagok ugyanezt a 100%-os lefedettségi fegyelmet követik.

Ki tudjuk egészíteni egy saját, egyedi formátumhoz?

Igen — négy bővítményi belépésipont-csoport áll rendelkezésre (pain001.loaders, pain001.validators, pain001.schemes, pain001.writers). Az Excel betöltő maga is bővítmény, amely a nyilvános protokollt használja, így egyben referenciaimplementációként is szolgál.


Auditoroknak és megfelelőségi csapatoknak#

Reprodukálni tudunk egy múlt negyedévben generált fájlt?

Igen. Rögzítse a csomag verzióját, játssza vissza ugyanazt a bemenetet, és a kimenet determinisztikus lesz. Mivel az eszközlánc nyílt forráskódú, az auditnyom magára a kód végrehajtási útvonalára is kiterjed — nem áll meg egy szállítói nyilatkozatnál.

Elhagyják a fizetési adatok a környezetünket?

Nem. Minden összetevő — CLI, könyvtár, REST API, MCP kiszolgáló, LSP — helyben fut. Nincs telemetria, nincs SaaS-visszahívás, nincs külső validáló szolgáltatás. Az MCP kiszolgáló kizárólag stdio-n kommunikál, és mind a 17 eszköze csak olvasható és idempotens jelöléssel rendelkezik.

Ki tartja karban a Pain001-et?

Sebastien Rousseau londoni fintech mérnökségi vezető, a közösség közreműködőivel együtt. A fejlesztés nyilvánosan zajlik a GitHubon, a kiadások a PyPI-ra kerülnek, a változásnapló pedig minden kiadással verziózásra kerül.