Kérdések

Pain001 GYIK: treasury, működés, mérnökök, audit

Egyenes válaszok treasury-, fizetési működési, mérnöki és auditcsapatoknak, úgy megfogalmazva, ahogyan a kérdéseket valójában felteszik.

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#

A pain.001 az az ISO 20022 üzenet, amelyet az ügyfél a bankjának küld átutalások indításához. Ez 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.

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.

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.

A Swift azt tervezte, hogy 2026 novemberétől nem fogadja el a teljesen strukturálatlan postai címeket a CBPR+ határon átnyúló fizetésekben. 2026 augusztusában elhalasztotta ezt a dátumot, és legkésőbb 2026 decemberéig bejelenti az újat, a szabály azonban nem változott: a címeknek strukturáltnak vagy hibridnek kell lenniük, azaz különálló elemeket kell használniuk, például a települést (<TwnNm>) és az országot (<Ctry>), 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.

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#

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.

Igen. Használja a pain001 --dry-run parancsot (vagy a validate alparancsot, illetve a POST /api/v1/validate hívást). 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.

Ö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 <name> --explain kapcsolóval megtekintheti az összes teljesült vagy megbukott szabályt.

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, így a sérülés a betöltéskor derül ki, nem a banknál.

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#

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.

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.

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.

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.

Igen, négy bővítményi belépésipont-csoporton keresztül (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#

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, és nem áll meg egy szállítói nyilatkozatnál.

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.

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.