Pain001

Àwọn ìdáhùn tààrà fún àwọn olùṣàkóso ìṣúna, iṣẹ́ ìsanwó, ẹnjinnià, àti olùṣàyẹ̀wò. A kọ àwọn ìbéèrè náà bí àwọn ènìyàn ṣe ń bèèrè wọn ní ti gidi. Fún àlàyé ìmọ̀-ẹ̀rọ tí ó jinlẹ̀ sí i, ẹ wo Ìtọ́kasí Ìmọ̀-ẹ̀rọ.


Fún àwọn aṣáájú ìṣúna àti owó#

Kí ni pain.001, ní ìpínrọ̀ kan?

pain.001 ni ìránṣẹ́ ISO 20022 tí oníbàárà ń fi ránṣẹ́ sí báńkì rẹ̀ láti bẹ̀rẹ̀ ìfiránṣẹ́ owó — arọ́pò XML fún àwọn ìlànà bí SWIFT MT101 àti àwọn fáìlì pẹlẹbẹ ti ilé. Báńkì yín ń ṣàyẹ̀wò rẹ̀ lòdì sí schema àti ìwé òfin ètò kí ó tó gbà á. Pain001 (sọ́fítíwéà náà) ń ṣẹ̀dá àwọn fáìlì wọ̀nyí láti inú dátà tí ẹ ti ní, ó sì ń fi hàn pé wọ́n tọ́ kí ẹ tó fi wọ́n sílẹ̀.

Kí ni ìyàtọ̀ láàrin pain.001 àti pain.008?

Ìtọ́sọ́nà owó ni ìyàtọ̀ náà. pain.001 ń bẹ̀rẹ̀ ìfiránṣẹ́ owó — ẹ̀yin ni ẹ ń fi owó ránṣẹ́ jáde. pain.008 ń bẹ̀rẹ̀ ìgbà owó tààrà — ẹ ń gba owó tí wọ́n jẹ yín lábẹ́ àṣẹ ìfàṣẹ́sí. Pain001 ń ṣẹ̀dá méjèèjì: ẹ̀yà mẹ́wàá ti pain.001 (láti .001.03.001.12) àti pain.008.001.02.

A ṣì ń fi àwọn fáìlì MT101 ránṣẹ́. Báwo ni ìyípadà náà ṣe kánjú tó?

Ó kánjú gan-an. SWIFT fi àwọn ìránṣẹ́ MT ẹ̀ka 1, 2 àti 9 fún àwọn àṣẹ ìsanwó ààlà-kọjá láàrin àwọn báńkì sílẹ̀ ní November 2025; àwọn ọ̀nà ilé-iṣẹ́ tí wọ́n ṣì ń gba MT ń ṣe bẹ́ẹ̀ lábẹ́ ìpinnu báńkì kọ̀ọ̀kan, fún àkókò díẹ̀ sí i. Loader MT101 ń yí àwọn ìṣàn MT101 tí ẹ ní padà sí pain.001 tí a ti ṣàyẹ̀wò láìsí ìtúntẹ̀ dátà kankan.

Kí ni ọjọ́ gbèdéke àdírẹ́sì onílànà ti November 2026 túmọ̀ sí fún wa?

Láti òpin November 2026, a kò ní gba àwọn àdírẹ́sì ìfìwéránṣẹ́ tí kò ní ìlànà rárá mọ́ nínú àwọn ìsanwó ààlà-kọjá CBPR+; àdírẹ́sì gbọdọ̀ ní ìlànà tàbí kí ó jẹ́ àdàpọ̀ — àwọn ẹ̀yà ọ̀tọ̀ọ̀tọ̀ bí ìlú () àti orílẹ̀-èdè () dípò àwọn ìlà ọ̀rọ̀ ọ̀fẹ́. Bí dátà ìpìlẹ̀ yín bá ní àwọn àdírẹ́sì bí ọ̀rọ̀ tí a kò pín, iṣẹ́ náà wà nínú dátà yín, kì í ṣe nínú ìsopọ̀ báńkì yín. Ẹ bẹ̀rẹ̀ láti ibẹ̀. Ìṣàlàyé 2026 ṣàlàyé àkókò náà ní kíkún.

Èló ni Pain001 ń ná?

Kò ná nǹkan kan. Ìpìlẹ̀ rẹ̀ ní ìwé àṣẹ méjì Apache-2.0 / MIT; àwọn pákéjì alábàáṣepọ̀ wà lábẹ́ Apache-2.0. A gba ìlò fún òwò, àtúnṣe, àti ìtúnpín láàyè. Fún ìfiwéra, SDK ìtúmọ̀ ti SWIFT nìkan wà ní €10,000–30,000 lọ́dọọdún.


Fún àwọn òṣìṣẹ́ ìsanwó#

Kí ni ìdí tí àwọn báńkì fi ń kọ àwọn fáìlì ìsanwó?

Ìdí mẹ́rin ni ó ń padà wá: ìrúfin schema (ẹ̀yà tí kò tọ́, ẹ̀yà ìtẹ̀jáde tí kò tọ́, namespace tí kò tọ́), ìdámọ̀ tí kò dára (ìkùnà checksum IBAN, BIC tí kò ní ìlànà tó tọ́), àpapọ̀ ìdarí tí ó bàjẹ́ (NbOfTxs / CtrlSum tí kò bá àwọn ìdúnàádúrà mu), àti àwọn lẹ́tà tí ó wà lóde àkójọ Látìn ISO 20022. Pain001 ń ṣàyẹ̀wò gbogbo mẹ́rẹ̀ẹ̀rin kí fáìlì tó wà: ìṣàyẹ̀wò JSON Schema fún àkọsílẹ̀ kọ̀ọ̀kan, àyẹ̀wò IBAN mod-97 àti BIC ISO 9362, àtúnṣírò àpapọ̀ ìdarí, ìyípadà lẹ́tà, àti ìṣàyẹ̀wò XSD ìkẹyìn fún XML tí a ṣẹ̀dá.

Ṣé a lè ṣàyẹ̀wò fáìlì láìṣẹ̀dá nǹkan kan?

Bẹ́ẹ̀ ni — pain001 --dry-run (tàbí àṣẹ-abẹ́ validate, tàbí POST /api/v1/validate). Kóòdù ìjáde 0 túmọ̀ sí pé ó tọ́; 1 túmọ̀ sí pé ìṣàyẹ̀wò kùnà pẹ̀lú àwọn àṣìṣe ní ipele pápá. Ẹ so ó mọ́ CI tàbí àkójọ àyẹ̀wò ṣáájú ìfisílẹ̀.

Àwọn ìwé òfin SEPA wo ni ó bò?

Ìwé òfin ètò márùn-ún ni ó wà nínú rẹ̀ láti ìbẹ̀rẹ̀: SEPA Credit Transfer (sepa-sct), SEPA Instant (sepa-inst), SEPA Direct Debit Core (sepa-sdd), SEPA B2B (sepa-b2b), àti ìfiránṣẹ́ owó ààlà-kọjá (xborder-ct). Ẹ lo --scheme --explain láti rí gbogbo òfin tí ó kọjá tàbí tí ó kùnà.

Dátà wa wà nínú Excel. Kí ni ewu rẹ̀?

Excel ń yí àwọn ọ̀rọ̀ tí ó dàbí IBAN padà sí nọ́ḿbà ní ìdákẹ́jẹ́ẹ́. Loader Excel ń ka .xlsx/.xlsm tààrà, ó sì ń dúró pátápátá bí àwọn kọ́lọ́mù IBAN bá ní sẹ́ẹ̀lì nọ́ḿbà — a ń mú ìbàjẹ́ náà nígbà ìkójọpọ̀, kì í ṣe ní báńkì.

Báwo ni ó ṣe ń ṣàkóso àkójọ tí ó ní ìlà 500,000?

--streaming ń ṣiṣẹ́ lórí dátà ìtẹ̀wọlé ní àwọn ìdìpọ̀ pẹ̀lú ààlà ìrántí (ìpìlẹ̀: ìdúnàádúrà 1,000), a sì ń tú ọ̀kọ̀ọ̀kan jáde gẹ́gẹ́ bí fáìlì XML tirẹ̀ pẹ̀lú àpapọ̀ ìdarí tí a tún ṣírò dáadáa. REST API ń pèsè POST /api/v1/generate/async pẹ̀lú àyẹ̀wò ipò iṣẹ́ fún ìdí kan náà.


Fún àwọn ẹnjinnià àti ayàwòrán ètò#

Báwo ni a ṣe lè so ó pọ̀ — ilé-ìkàwé, CLI, tàbí API?

Gbogbo mẹ́tẹ̀ẹ̀ta wà gẹ́gẹ́ bí ojú-ìbáṣepọ̀ pàtàkì: Python API tí ó ní irú dátà tí a sọ ní pàtó, CLI pẹ̀lú àwọn kóòdù ìjáde tí ó bá CI mu, àti iṣẹ́ kékeré FastAPI (pain001 serve) pẹ̀lú àwọn endpoint fún iṣẹ́ lẹ́sẹ̀kẹsẹ̀, iṣẹ́ async, ìlera, àti ìwọ̀n Prometheus. Ìlànà ìṣàyẹ̀wò kan náà ni ó wà lábẹ́ wọn, nítorí náà àbájáde kì í yàtọ̀ láàrin wọn.

Ṣé ìṣẹ̀dá XML ní ààbò lóòótọ́ lòdì sí ìyíká nọ́ḿbà float?

Iye owó jẹ́ decimal.Decimal láti ìbẹ̀rẹ̀ dé òpin nínú ìṣẹ̀dá àti ìṣàyẹ̀wò ètò — a ń kà wọ́n gẹ́gẹ́ bí nọ́ḿbà ìdámẹ́wàá pípé, a ń ṣàpapọ̀ wọn gẹ́gẹ́ bí nọ́ḿbà ìdámẹ́wàá pípé, a sì ń tú wọn jáde láìsí ìṣàpẹẹrẹ float. A ń tún ṣírò àpapọ̀ ìdarí láti inú àwọn àkọsílẹ̀ tí a ti ṣàyẹ̀wò, a kì í gbẹ́kẹ̀lé dátà ìtẹ̀wọlé láé.

Báwo ni ipò ààbò rẹ̀ ṣe rí?

Gbogbo ìtúpalẹ̀ XML ń gba defusedxml kọjá (ó ń dí ìkọlù XXE àti ìfẹ̀ entity lọ́wọ́); kò sí lxml nínú igi ìgbáralé. Dátà ìtẹ̀wọlé ń gba olùṣàyẹ̀wò ipa-ọ̀nà fáìlì kọjá. Àwòrán Docker kì í ṣiṣẹ́ gẹ́gẹ́ bí root. A ń ṣẹ̀dá SBOM CycloneDX fún àwọn ìtújáde ìpìlẹ̀, a sì lè pa ìṣàwárí plugin ẹnikẹta rẹ́ pátápátá pẹ̀lú PAIN001_DISABLE_PLUGINS=1.

Báwo ni a ṣe ń fi ìdára lélẹ̀?

Ìbòrí ìdánwò 100% fún ìlà àti ẹ̀ka gẹ́gẹ́ bí ẹnu-ọ̀nà líle nínú CI lórí ìpìlẹ̀ (a lè fẹ̀rí rẹ̀ hàn: ìlà 3,828, ẹ̀ka 926 ní 100%), mypy líle, ìbòrí docstring 100%, ìṣàyẹ̀wò ààbò Bandit àti pip-audit, àti ìwádìí CodeQL. Àwọn pákéjì alábàáṣepọ̀ ń tẹ̀lé ìlànà ìbòrí 100% kan náà.

Ṣé a lè fẹ̀ ẹ́ sí i fún ìlànà tiwa fúnra wa?

Bẹ́ẹ̀ ni — àwùjọ ojú-ọ̀nà plugin mẹ́rin (pain001.loaders, pain001.validators, pain001.schemes, pain001.writers). Loader Excel fúnra rẹ̀ jẹ́ plugin tí ó ń lo ìlànà gbogbo ènìyàn, nítorí náà ó tún jẹ́ àpẹẹrẹ ìṣàmúlò.


Fún àwọn olùṣàyẹ̀wò àti ìbámu òfin#

Ṣé a lè tún ṣẹ̀dá fáìlì tí a ṣe ní ìdámẹ́rin ọdún tí ó kọjá?

Bẹ́ẹ̀ ni. Ẹ so ẹ̀yà pákéjì náà mọ́lẹ̀, ẹ tún fi dátà kan náà ṣiṣẹ́, àbájáde rẹ̀ yóò sì jẹ́ ọ̀kan náà. Nítorí pé irinṣẹ́ náà jẹ́ orísun ṣíṣí, ipa-ọ̀nà àyẹ̀wò dé inú kóòdù fúnra rẹ̀ — kì í ṣe ẹ̀rí olùtajà nìkan.

Ṣé dátà ìsanwó ń kúrò nínú àyíká wa?

Rárá. Gbogbo ẹ̀ka — CLI, ilé-ìkàwé, REST API, olùpèsè MCP, LSP — ń ṣiṣẹ́ ní agbègbè yín. Kò sí telemetry, kò sí ìpè SaaS, kò sí iṣẹ́ ìṣàyẹ̀wò ìta. Olùpèsè MCP ń sọ̀rọ̀ nípasẹ̀ stdio nìkan, a sì ti fi àmì kíkà-nìkan àti àìyípadà sí gbogbo irinṣẹ́ 17 rẹ̀.

Ta ni ó ń tọ́jú Pain001?

Sebastien Rousseau, aṣáájú iṣẹ́ ẹ̀rọ fintech tí ó ń gbé ní London, pẹ̀lú àwọn olùkópa láti àwùjọ. Ìdàgbàsókè náà ṣí sílẹ̀ ní gbangba lórí GitHub, a ń tú àwọn ìtújáde jáde sí PyPI, a sì ń fi ẹ̀yà sí àkọsílẹ̀ ìyípadà pẹ̀lú ìtújáde kọ̀ọ̀kan.