प्रश्न

ट्रेज़री, ऑप्स, इंजीनियरिंग और ऑडिट हेतु Pain001 FAQ

ट्रेज़रर, भुगतान संचालन, इंजीनियर और ऑडिटर के लिए सीधे जवाब, उसी तरह कहे गए जैसे लोग वास्तव में पूछते हैं।

ट्रेज़रर, भुगतान संचालन, इंजीनियर और ऑडिटर के लिए सीधे जवाब। प्रश्न उसी तरह लिखे गए हैं जैसे लोग वास्तव में पूछते हैं। गहरे तकनीकी विवरण के लिए तकनीकी संदर्भ देखें।


ट्रेज़री और वित्त प्रमुखों के लिए#

pain.001 वह ISO 20022 संदेश है जो ग्राहक क्रेडिट ट्रांसफ़र शुरू करने के लिए अपने बैंक को भेजता है। यह SWIFT MT101 और घरेलू फ़्लैट फ़ाइलों जैसे प्रारूपों का XML उत्तराधिकारी है। आपका बैंक स्वीकार करने से पहले इसे एक स्कीमा और एक स्कीम नियमपुस्तिका के विरुद्ध सत्यापित करता है। Pain001 (सॉफ़्टवेयर) आपके मौजूदा डेटा से वे फ़ाइलें बनाता है और सबमिट करने से पहले उनकी वैधता सिद्ध करता है।

प्रवाह की दिशा। pain.001 क्रेडिट ट्रांसफ़र शुरू करता है: आप पैसा बाहर भेजते हैं। pain.008 डायरेक्ट डेबिट शुरू करता है: आप मैंडेट के अंतर्गत अपना बकाया पैसा वसूलते हैं। Pain001 दोनों जनरेट करता है: pain.001 के दस संस्करण (.001.03 से .001.12) और pain.008.001.02।

अत्यावश्यक। SWIFT ने नवंबर 2025 में सीमा-पार इंटरबैंक भुगतान निर्देशों के लिए MT श्रेणी 1, 2 और 9 संदेश सेवामुक्त कर दिए; जो कॉर्पोरेट चैनल अब भी MT स्वीकार करते हैं, वे हर बैंक के विवेक पर और उधार के समय पर ऐसा करते हैं। MT101 लोडर मौजूदा MT101 प्रवाहों को बिना कुछ दोबारा टाइप किए सत्यापित pain.001 में बदलता है।

Swift ने नवंबर 2026 से CBPR+ सीमा-पार भुगतानों में पूर्णतः असंरचित डाक पते स्वीकार करना बंद करने की योजना बनाई थी। अगस्त 2026 में उसने वह तिथि स्थगित कर दी और दिसंबर 2026 तक नई तिथि घोषित करेगा, पर नियम नहीं बदला: पते संरचित या हाइब्रिड होने चाहिए, यानी मुक्त-पाठ पंक्तियों के बजाय शहर (<TwnNm>) और देश (<Ctry>) जैसे पृथक तत्व। यदि आपका मास्टर डेटा पतों को ब्लॉब के रूप में रखता है, तो काम आपके डेटा में है, आपके बैंक कनेक्शन में नहीं। वहीं से शुरू करें। 2026 ब्रीफ़िंग समय-रेखा को विस्तार से कवर करती है।

कुछ नहीं। कोर Apache-2.0 / MIT के तहत दोहरे लाइसेंस वाला है; सहयोगी पैकेज Apache-2.0 हैं। व्यावसायिक उपयोग, संशोधन और पुनर्वितरण सभी अनुमत हैं। तुलना के लिए, अकेले SWIFT के अनुवाद SDK की सूचीबद्ध कीमत €10,000–30,000 प्रति वर्ष है।


भुगतान संचालन के लिए#

चार बार-बार होने वाले कारण: स्कीमा उल्लंघन (ग़लत तत्व, ग़लत संस्करण, ग़लत नेमस्पेस), ख़राब पहचानकर्ता (IBAN चेकसम विफलताएँ, विकृत BIC), टूटे नियंत्रण योग (NbOfTxs / CtrlSum लेनदेन से मेल नहीं खाते), और ISO 20022 लैटिन समूह से बाहर के वर्ण। Pain001 फ़ाइल बनने से पहले चारों की जाँच करता है: प्रति रिकॉर्ड JSON Schema सत्यापन, mod-97 IBAN और ISO 9362 BIC जाँच, पुनर्गणित नियंत्रण योग, वर्ण-समूह लिप्यंतरण, और रेंडर किए गए XML का अंतिम XSD सत्यापन।

हाँ। pain001 --dry-run (या validate सबकमांड, या POST /api/v1/validate) का उपयोग करें। एग्ज़िट कोड 0 का अर्थ है वैध; 1 का अर्थ है कि सत्यापन फ़ील्ड-स्तरीय त्रुटियों के साथ विफल हुआ। इसे CI या प्री-सबमिशन चेकलिस्ट में जोड़ें।

पाँच स्कीम नियमपुस्तिकाएँ बिल्ट-इन आती हैं: SEPA Credit Transfer (sepa-sct), SEPA Instant (sepa-inst), SEPA Direct Debit Core (sepa-sdd), SEPA B2B (sepa-b2b), और सीमा-पार क्रेडिट ट्रांसफ़र (xborder-ct)। पास या फ़ेल हुए हर नियम को देखने के लिए --scheme <name> --explain का उपयोग करें।

Excel IBAN-जैसी स्ट्रिंग्स को चुपचाप संख्याओं में बदल देता है। Excel लोडर .xlsx/.xlsm को सीधे पढ़ता है और यदि IBAN कॉलम में संख्यात्मक सेल हों तो तुरंत रुक जाता है, ताकि गड़बड़ी लोड के समय पकड़ी जाए, बैंक में नहीं।

--streaming इनपुट को मेमोरी-सीमित चंक (डिफ़ॉल्ट 1,000 लेनदेन) में प्रोसेस करता है, और हर चंक सही पुनर्गणित नियंत्रण योग के साथ अपनी अलग XML फ़ाइल के रूप में निकलता है। इसी कारण REST API जॉब पोलिंग के साथ POST /api/v1/generate/async प्रदान करता है।


इंजीनियरों और आर्किटेक्टों के लिए#

तीनों प्रथम-श्रेणी सतहों के रूप में मौजूद हैं: एक टाइप्ड Python API, CI-अनुकूल एग्ज़िट कोड वाला CLI, और सिंक, async-जॉब, हेल्थ तथा Prometheus मेट्रिक्स एंडपॉइंट वाली एक FastAPI माइक्रोसर्विस (pain001 serve)। नीचे वही सत्यापन पाइपलाइन है, इसलिए परिणाम सतहों के बीच कभी भिन्न नहीं होते।

जनरेशन और स्कीम सत्यापन में राशियाँ शुरू से अंत तक decimal.Decimal हैं। वे सटीक दशमलव के रूप में पार्स की जाती हैं, सटीक दशमलव के रूप में जोड़ी जाती हैं, और बिना फ़्लोट प्रतिनिधित्व के रेंडर की जाती हैं। नियंत्रण योग सत्यापित रिकॉर्ड से पुनर्गणित होते हैं, इनपुट से कभी भरोसे पर नहीं लिए जाते।

सारी XML पार्सिंग defusedxml से होकर गुज़रती है (जो XXE और entity-expansion हमलों को रोकता है); निर्भरता वृक्ष में कोई lxml नहीं है। इनपुट एक path-traversal सत्यापक से गुज़रते हैं। Docker इमेज non-root चलती है। कोर रिलीज़ के लिए CycloneDX SBOM जनरेट होता है, और PAIN001_DISABLE_PLUGINS=1 से तृतीय-पक्ष प्लगइन खोज पूरी तरह अक्षम की जा सकती है।

कोर पर कठोर CI गेट के रूप में 100% लाइन और ब्रांच कवरेज (सत्यापन-योग्य रूप से: 3,828 लाइनें, 926 ब्रांच 100% पर), सख़्त mypy, 100% docstring कवरेज, Bandit और pip-audit सुरक्षा लिंटिंग, तथा CodeQL स्कैनिंग। सहयोगी पैकेज वही 100% कवरेज अनुशासन अपनाते हैं।

हाँ, चार प्लगइन एंट्री-पॉइंट समूहों के माध्यम से (pain001.loaders, pain001.validators, pain001.schemes, pain001.writers)। Excel लोडर स्वयं सार्वजनिक प्रोटोकॉल का उपयोग करने वाला एक प्लगइन है, इसलिए वह संदर्भ कार्यान्वयन का भी काम करता है।


ऑडिटरों और अनुपालन के लिए#

हाँ। पैकेज संस्करण पिन करें, वही इनपुट दोबारा चलाएँ, और आउटपुट नियतात्मक होगा। चूँकि टूलचेन ओपन सोर्स है, ऑडिट ट्रेल कोड पथ तक जाती है, केवल वेंडर के प्रमाणन तक नहीं।

नहीं। हर घटक (CLI, लाइब्रेरी, REST API, MCP सर्वर, LSP) स्थानीय रूप से चलता है। कोई टेलीमेट्री नहीं, कोई SaaS कॉलबैक नहीं, कोई बाहरी सत्यापन सेवा नहीं। MCP सर्वर केवल stdio पर संवाद करता है और इसके सभी 17 टूल read-only और idempotent के रूप में एनोटेट हैं।

Sebastien Rousseau, लंदन-स्थित फ़िनटेक इंजीनियरिंग लीडर, सामुदायिक योगदानकर्ताओं के साथ। विकास GitHub पर सार्वजनिक है, रिलीज़ PyPI पर प्रकाशित होती हैं, और चेंजलॉग हर रिलीज़ के साथ संस्करणबद्ध है।