Mga Tanong

Pain001 FAQs para sa Treasury, Ops, Engineering at Audit

Tuwirang mga sagot para sa mga treasurer, payment operations, inhinyero, at auditor, ayon sa aktwal na pagtatanong ng mga tao.

Tuwirang mga sagot para sa mga treasurer, payment operations, inhinyero, at auditor. Ang mga tanong ay isinusulat ayon sa aktwal na pagtatanong ng mga tao. Para sa mas malalim na teknikal na detalye, tingnan ang Teknikal na Sanggunian.


Para sa mga lider ng treasury at pananalapi#

Ang pain.001 ay ang ISO 20022 na mensaheng ipinapadala ng isang customer sa kaniyang bangko upang simulan ang mga credit transfer. Ito ang XML na kapalit ng mga format tulad ng SWIFT MT101 at mga lokal na flat file. Vina-validate ito ng inyong bangko laban sa isang schema at isang scheme rulebook bago ito tanggapin. Ang Pain001 (ang software) ay bumubuo ng mga file na iyon mula sa data na mayroon na kayo at pinatutunayang wasto ang mga ito bago ninyo isumite.

Ang direksyon ng paggalaw ng pera. Sinisimulan ng pain.001 ang mga credit transfer: nagpapadala kayo ng pera palabas. Sinisimulan ng pain.008 ang mga direct debit: sinisingil ninyo ang perang inutang sa inyo sa ilalim ng isang mandato. Binubuo ng Pain001 ang dalawa: sampung bersyon ng pain.001 (.001.03 hanggang .001.12) at pain.008.001.02.

Kagyat. Itinigil na ng SWIFT ang mga mensaheng MT category 1, 2 at 9 para sa cross-border na interbank na mga tagubilin sa pagbabayad noong Nobyembre 2025; ang mga corporate channel na tumatanggap pa rin ng MT ay ginagawa iyon ayon sa pagpapasya ng bawat bangko at sa hiram na oras. Kino-convert ng MT101 loader ang mga umiiral na MT101 flow sa validated na pain.001 nang walang muling ini-encode.

Plano ng Swift na itigil ang pagtanggap ng ganap na unstructured na mga postal address sa CBPR+ na cross-border na pagbabayad sa Nobyembre 2026. Noong Agosto 2026, ipinagpaliban nito ang petsang iyon at iaanunsiyo ang bago pagsapit ng Disyembre 2026, ngunit hindi nagbago ang panuntunan: ang mga address ay dapat structured o hybrid, gamit ang mga hiwalay na elemento tulad ng bayan (<TwnNm>) at bansa (<Ctry>) sa halip na mga free-text na linya. Kung ang inyong master data ay nag-iimbak ng mga address bilang mga blob, ang trabaho ay nasa inyong data, hindi sa inyong koneksyon sa bangko. Magsimula roon. Tinatalakay nang detalyado ng Briefing sa 2026 ang timeline.

Wala. Ang core ay dual-licensed na Apache-2.0 / MIT; ang mga companion package ay Apache-2.0. Pinapayagan lahat ang komersyal na paggamit, pagbabago, at muling pamamahagi. Bilang sanggunian sa laki, ang translation SDK lamang ng SWIFT ay nakalista sa €10,000–30,000 bawat taon.


Para sa payment operations#

Apat na paulit-ulit na sanhi: mga paglabag sa schema (maling elemento, maling bersyon, maling namespace), masasamang identifier (bigo ang IBAN checksum, mga maling BIC), sirang control total (hindi tugma ang NbOfTxs / CtrlSum sa mga transaksyon), at mga character na wala sa ISO 20022 Latin set. Sinusuri ng Pain001 ang lahat ng apat bago pa umiral ang file: JSON Schema validation bawat record, mod-97 IBAN at ISO 9362 BIC na pagsusuri, muling kinuwentang control total, transliteration ng charset, at panghuling XSD validation ng na-render na XML.

Oo. Gamitin ang pain001 --dry-run (o ang validate subcommand, o POST /api/v1/validate). Ang exit code na 0 ay nangangahulugang wasto; ang 1 ay nangangahulugang bigo ang validation na may mga error sa antas ng field. Ikonekta ito sa CI o sa isang checklist bago magsumite.

Limang scheme rulebook ang built-in: SEPA Credit Transfer (sepa-sct), SEPA Instant (sepa-inst), SEPA Direct Debit Core (sepa-sdd), SEPA B2B (sepa-b2b), at cross-border credit transfer (xborder-ct). Gamitin ang --scheme <name> --explain upang makita ang bawat panuntunang pumasa o bumagsak.

Tahimik na ginagawang numero ng Excel ang mga string na parang IBAN. Direktang binabasa ng Excel loader ang .xlsx/.xlsm at agad na humihinto kung ang mga IBAN column ay naglalaman ng mga numeric na cell, kaya nahuhuli ang pagkasira sa pag-load at hindi sa bangko.

Pinoproseso ng --streaming ang input sa memory-bounded na mga chunk (default na 1,000 transaksyon), bawat isa ay inilalabas bilang sarili nitong XML file na may tamang muling kinuwentang control total. Nag-aalok ang REST API ng POST /api/v1/generate/async na may job polling para sa parehong dahilan.


Para sa mga inhinyero at arkitekto#

Umiiral ang lahat ng tatlo bilang mga first-class na surface: isang typed na Python API, isang CLI na may CI-friendly na mga exit code, at isang FastAPI microservice (pain001 serve) na may sync, async-job, health, at Prometheus metrics na mga endpoint. Iisang validation pipeline sa ilalim, kaya hindi kailanman nagkakaiba ang mga resulta sa pagitan ng mga surface.

Ang mga halaga ay decimal.Decimal mula simula hanggang wakas sa pagbuo at scheme validation. Pina-parse ang mga ito bilang eksaktong decimal, sinusuma bilang eksaktong decimal, at nire-render nang walang float na representasyon. Ang mga control total ay muling kinukuwenta mula sa mga na-validate na record, hindi kailanman pinagkakatiwalaan mula sa input.

Lahat ng XML parsing ay dumadaan sa defusedxml (hinaharangan ang XXE at entity-expansion na mga atake); walang lxml sa dependency tree. Ang mga input ay dumadaan sa isang path-traversal validator. Non-root na tumatakbo ang Docker image. Isang CycloneDX SBOM ang binubuo para sa mga core release, at ang third-party na pagtuklas ng plugin ay maaaring tuluyang i-disable gamit ang PAIN001_DISABLE_PLUGINS=1.

100% line at branch coverage bilang mahigpit na CI gate sa core (nabe-verify: 3,828 linya, 926 branch sa 100%), mahigpit na mypy, 100% docstring coverage, Bandit at pip-audit na security linting, at CodeQL scanning. Dala rin ng mga companion package ang parehong disiplinang 100% coverage.

Oo, sa pamamagitan ng apat na plugin entry-point group (pain001.loaders, pain001.validators, pain001.schemes, pain001.writers). Ang Excel loader mismo ay isang plugin na gumagamit ng pampublikong protocol, kaya nagsisilbi rin itong reference implementation.


Para sa mga auditor at compliance#

Oo. I-pin ang bersyon ng package, i-replay ang parehong input, at deterministic ang output. Dahil open source ang toolchain, umaabot ang audit trail hanggang sa mismong code path, hindi lamang sa attestation ng vendor.

Hindi. Bawat bahagi (CLI, library, REST API, MCP server, LSP) ay tumatakbo nang lokal. Walang telemetry, walang SaaS callback, walang panlabas na validation service. Ang MCP server ay nakikipag-usap lamang sa pamamagitan ng stdio at lahat ng 17 tool nito ay may anotasyong read-only at idempotent.

Si Sebastien Rousseau, isang lider sa fintech engineering na nakabase sa London, kasama ang mga contributor ng komunidad. Pampubliko ang development sa GitHub, ang mga release ay inilalathala sa PyPI, at ang changelog ay may bersyon sa bawat release.