पीएसपी भुगतान और रिपोर्टों का सामंजस्य
टीएल; डीआर
सामंजस्य पीएसपी/अधिग्रहणकर्ता/बैंक रिपोर्टों के साथ आपके खाते और घटनाओं (ऑथ/कैप्चर/रिफंड/पेआउट) की दैनिक स्वचालित सिलाई है। सफलता की कुंजी: एक एकल डेटा मॉडल, नियतात्मक मिलान कुंजी, सख्त पहचान, योग/एफएक्स/समय सहिष्णुता, विवादास्पद मामलों और ऑटो-सुधार प्लेबुक के लिए डीएलक्यू कतार। केपीआई: रिकॉन मिसमैच Rate↓, एजिंग ऑफ Unreconciled↓, ऑटो- match%↑।
1) हम क्यों और क्या जाँच करते हैं
उद्देश्य: राजस्व और आयोगों की पुष्टि, डुप्लिकेट/हानि का पता लगाना, दिनों और मुद्राओं द्वारा सही निपटान, वापसी-से-स्रोत नियंत्रण, ऑडिट/नियामक के अनुपालन।
सुलह की वस्तुएँ:- जमा: 'auth कैप्चर बस्ती'
- रिफंड: पूर्ण/आंशिक, स्थिति और मात्रा
- भुगतान/निकासी: आउटगोइंग विधि भुगतान
- शुल्क और समायोजन: पीएसपी शुल्क, इंटरचेंज योजनाएं, सुधार
- चार्जबैक/विवाद: अपनी पहल से परे
- एफएक्स/रूपांतरण: दरें, फैलता है, फिक्सिंग बिंदु
2) डेटा स्रोत
आंतरिक घटनाएँ: घटना बस/काफ्का, 'भुगतान _ फ्लैट', 'रिफंड', 'भुगतान', आपका लेजर।
PSP रिपोर्ट (SFTP/API/वेबहुक डंप):- लेन-देन (परिचालन विवरण)
- बस्तियाँ/बैच
- शुल्क/कथन
- चार्जबैक/विवाद
- भुगतान/OCT/RTP/SEPA पंजीकरण
- बैंक स्टेटमेंट: CAMT MT940/CSV/ISO20022, क्रेडिट लिफ्ट।
3) मेल खाती कुंजियाँ
प्राथमिकता कुंजी वृक्ष (सटीकता में उतरते हुए):1. (अद्वितीय PSP आईडी)
2. (यदि पीएसपी में स्थिर है)
3. (राशि, मुद्रा, timestamp_bucket, अंतिम 4/बिन, auth_code)
4. फ़ज़ीपरत: the योग/समय, बिन/जारीकर्ता देश, स्थिति परिवार द्वारा सहिष्णुता
सिफारिशें:- 'भुगतान _ id' और 'प्रदाता _ txid' दोनों रखें.
- आंशिक/वापसी के लिए, 'अनुक्रम _ सूचकांक' या 'refund _ line _ id' जोड़ें।
- Для भुगतान - 'payout _ batch _ id + line_id'।
- FX - 'exec _ id' (रूपांतरण) और दर के स्रोत के लिए।
4) डेटा मॉडल (सामान्यीकृत परत)
json
{
"source": "INTERNAL PSP_TX PSP_SETTLEMENT BANK",
"provider": "Acquirer_A",
"payment_id": "pay_123",
"provider_txid": "psp_tx_789",
"kind": "AUTH CAPTURE REFUND PAYOUT FEE SETTLEMENT CHARGEBACK",
"sequence": 0,
"amount": 100. 00,
"currency": "EUR",
"fee_amount": 1. 20,
"fx_rate": 1. 0000,
"fx_src": "PSP ECB BANK",
"status": "APPROVED CAPTURED SUCCESS FAILED SETTLED",
"event_ts": "2025-11-03T12:00:00Z",
"settlement_date": "2025-11-05",
"account": "PSP_MERCHANT_CARD_A",
"matching_keys": {
"provider_txid": "psp_tx_789",
"merchant_ref": "mr_456",
"idem_key": "idem_abc"
},
"hash_row": "sha256(...)"
}
5) सुलह प्रक्रिया (ईटीएल/ऑर्केस्ट्रेशन)
1. Ingest: हम PSP रिपोर्ट (SFTP/API) लेते हैं, योजना/हस्ताक्षर को मान्य करते हैं, 'कच्चे' को सहेजते हैं।
2. सामान्यीकरण: एकीकृत प्रारूप (मुद्रा आईएसओ, दशमलव, यूटीसी समय क्षेत्र) के लिए क्षेत्र का मैपिम।
3. मैच: सहिष्णुता के साथ कुंजी पेड़ से मेल खाने के लिए एल्गोरिथ्म।
4. मैच के बाद: बही/सुधार के लिए फॉर्म डिफ़ (विसंगतियाँ) और जर्नल प्रविष्टियाँ।
5. सेटल करें: सिलाई 'PSP _ BELETTION ↔ BANK' (खाते में क्रेडिट), दिन/बैच द्वारा बिखरे हुए।
6. रिपोर्ट: डैशबोर्ड, अलर्ट; मैनुअल पार्सिंग/ऑटो-रीप्लेइंग के लिए डीएलक्यू में विवादास्पद।
पहचान: प्रत्येक फ़ाइल/पृष्ठ के लिए - 'ingest _ id'। पुनः लोड करने से परिणाम नहीं बदलता है।
6) सहिष्णुता और नियम
समय: लेनदेन के लिए '15 मिनट', निपटान के लिए '1 दिन'।
राशि: '≤ 0। FX/शुल्क अंतर के लिए 01 'आधार मुद्रा या' ≤ 10 बीपीएस '।
FX: हम बैंक के साथ विसंगति की अनुमति देते हैं यदि विनिमय दर का स्रोत अलग है; 'fx _ src' को ठीक करें।
आंशिक/एकाधिक: आंशिक/वापसी रेखाओं का योग आंतरिक संतुलन के बराबर होना चाहिए।
7) डिफ टैक्सोनॉमी
8) खाता और लेखा
कैप्चर: 'डीआर खाते प्राप्य/सीआर राजस्व' и 'डीआर कैश (निपटान पर )/सीआर खाते प्राप्त'
शुल्क: 'डीआर शुल्क/सीआर नकद या भुगतान'
रिफंड: रिवर्स पोस्टिंग प्रो राटा आंशिक
चार्जबैक: विवादों के लिए अलग खाते और आरक्षित
FX रेवल: 'fx _ src _ policy' पर AR/कैश बैलेंस का दैनिक पुनर्मूल्यांकन
9) केपीआई और उद्देश्य
स्वतः मिलान% = स्वतः मिलान लाइनें/सभी पंक्तियाँ (95% ≥ लक्ष्य)
रिकॉन मिसमैच दर = डिफ़लाइनें/सभी पंक्तियाँ (≤ 1-2%)
एजिंग ऑफ असंबद्ध: DLQ में p50/p95 दिन (p95 ≤ 3 दिन)
सेटलमेंट टाइम: डी-डे बैंक (≥ 99%) के साथ सिले बैचों का अनुपात
शुल्क सटीकता: प्रदाता शुल्क विसंगतियां (≤ 0। 1% टर्नओवर)
डुप्लिकेट/अनाथ घटनाएँ: 0 के लिए लक्ष्य
10) SQL स्लाइस
10. 1 मूल provider_txid मिलान
sql
WITH i AS (
SELECT provider, provider_txid, kind, amount, currency, event_ts
FROM internal_norm
),
p AS (
SELECT provider, provider_txid, kind, amount, currency, event_ts
FROM psp_norm
)
SELECT
COALESCE(i. provider_txid, p. provider_txid) AS txid,
COALESCE(i. provider, p. provider) AS provider,
i.kind AS kind_internal, p. kind AS kind_psp,
i.amount AS amount_internal, p. amount AS amount_psp,
i.currency, p. currency,
CASE
WHEN i.provider_txid IS NULL THEN 'MISSING_INTERNAL'
WHEN p. provider_txid IS NULL THEN 'MISSING_PSP'
WHEN ABS(i. amount - p. amount) > 0. 01 THEN 'AMOUNT_MISMATCH'
ELSE 'MATCHED'
END AS recon_status
FROM i
FULL OUTER JOIN p USING (provider, provider_txid);
10. 2 सेटलमेंट - बैंक
sql
SELECT s. settlement_date, s. batch_id, s. currency,
s. amount_settled, b. amount_bank,
(b. amount_bank - s. amount_settled) AS diff
FROM psp_settlements s
LEFT JOIN bank_statements b
ON b. value_date = s. settlement_date
AND b. currency = s. currency
AND ABS(b. amount_bank - s. amount_settled) <= 0. 5;
10. 3 एजिंग डीएलक्यू
sql
SELECT diff_type,
COUNT() AS cnt,
PERCENTILE_CONT(0. 5) WITHIN GROUP (ORDER BY AGE(NOW(), created_at)) AS p50_age,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY AGE(NOW(), created_at)) AS p95_age
FROM recon_dlq
GROUP BY diff_type
ORDER BY cnt DESC;
11) रेल/मामलों पर विशेषताएं
मानचित्र: 'औथ' और 'कैप्चर', देर से 'सेटलमेंट' समायोजन, इंटरचेंज/सर्किट शुल्क - अलग लाइनों के बीच अंतर।
A2A/Open बैंकिंग/आरटीपी: त्वरित पुष्टि, लेकिन 'उलट' संभव; 'भुगतान' और रिटर्न की जाँच करें।
बटुए: अक्सर परिपूर्ण 'प्रदाता _ txid', त्वरित 'वापसी'; शुल्क लाइनें देखें।
वाउचर: कोई सममित वापसी नहीं - नीति और रिपोर्ट में सही ढंग से प्रतिबिंबित करें।
क्रिप्टो: ऑन-चेन हैश ↔ provider_txid; पुष्टि एन; नेटवर्क कमीशन और संभावित छूट का लेखांकन; विनिमय दर - रूपांतरण के समय।
12) ऑपरेशनल प्लेबुक
MISSING_INTERNAL में वृद्धि: वेबहुक/रिट्रे के नुकसान की जाँच करें, फिर से खेलें, एपीआई मतदान सक्षम करें।
AMOUNT_MISMATCH एक पीएसपी से: राउंडिंग/वैट/शुल्क मॉडल की तुलना करें, एक सुधार विवरण का अनुरोध करें।
निपटान बैंक से लिंक नहीं करता है: मूल्य तिथि, बैंक शुल्क, टी + एन देरी की जाँच करें; अस्थायी रूप से "सस्पेंस अकाउंट" में डाल दिया गया।
मास REFUND_OVER: तत्काल स्टॉप ऑटो-रिफंड्स, आइडेम्पोटेंसी ऑडिट, मैनुअल सुधार।
FX_DRIFT: विनिमय दर स्रोत (ECB/PSP/BANK) की नीति को ठीक करें, P&L अंतर को पुनर्गणना करें।
13) नियंत्रण और सुरक्षा
अंतर्ग्रहण की पहचान: 'file _ id + checksum' और इतिहास डाउनलोड करें.
एक्सेस (RBAC) और 4-आई कंट्रोल: मैनुअल सुधार/जर्नल प्रविष्टियों के लिए।
ऑडिट ट्रेल: सभी मैच/डिफ्स/सुधार - एक अपरिवर्तनीय लॉग में।
डेटा गुणवत्ता: योजनाएं, अनिवार्य क्षेत्र, मुद्रा/स्केल सत्यापन।
14) डैशबोर्ड और अलर्ट
विजेट्स: ऑटो-मैच%, मिसमैच रेट, एजिंग डीएलक्यू, सेटलमेंट टाइमिंग, फीस सटीकता, डिफ, डिफ-टाइप मैप द्वारा शीर्ष पीएसपी।
अलर्ट:- प्रदाता/दिन → P1 द्वारा 'स्वचालित मिलान% <90%'
- 'एजिंग p95> 3 दिन' → P2
- 'MUNT _ MISMATCH स्पाइक' → P1
- 'Bank≠Settlement' राशि/मुद्रा से → P0
15) टेस्ट केस (यूएटी/प्रोड)
1. एक ही फ़ाइल → 0 साइड इफेक्ट्स (idempotency) को फिर से लोड करना।
2. आंशिक refands (3 लाइनें) → राशि मैच, अनुक्रम से मिलान।
3. FX रूपांतरण: सहिष्णुता के भीतर विनिमय दर विसंगति - सही मैच।
4. रिपोर्ट में डुप्लिकेट dedup और अलर्ट।
5. लापता वेबहुक कैप्चर - मतदान ने अंतर को बंद कर दिया, स्थिति गठबंधन की गई है।
6. शुल्क लाइन के साथ निपटान बैच - राजस्व/शुल्क/नेट पर सही टूटना।
16) बार-बार गलतियाँ और कैसे बचें
'प्रयास' बनाम 'कैप्चर' की तुलना करें - एक ही दानेदारी रखें।
log में 'प्रदाता _ txid' की अनुपस्थिति मिलान की सटीकता खो देती है।
समयक्षेत्र → निपटान तिथियों द्वारा ऑफसेट को अनदेखा करें।
कोई DLQ/रेट्रास → "अनन्त" विसंगतियाँ नहीं हैं।
ऑडिटिंग के साथ लॉग → असंगति के बिना मैनुअल संपादन।
फजी सहिष्णुता - या तो एक फिर से मैच या "सभी डीएलक्यू में।"
17) कार्यान्वयन चेकलिस्ट
- एकीकृत सामान्यीकरण योजना और पीएसपी/विधि/खाता निर्देशिका
- मैपिंग कुंजी पेड़ (txid fuzzy)
- राशि/समय सहिष्णुता/एफएक्स, पाठ्यक्रम स्रोत नीति
- आइडेम्पोटेंट अंतर्ग्रहण, डीएलक्यू, रेट्राई, अलर्ट
- Settlement↔Bank सुलह, सस्पेंस अकाउंट पॉलिसी
- डैशबोर्ड केपीआई, वित्तीय/ऑडिट रिपोर्टिंग
- प्लेबुक और एसएलए पार्सिंग डिफ मामले
सारांश
सुलह एक इंजीनियरिंग अनुशासन है: सामान्यीकरण, विश्वसनीय कुंजी, सहिष्णुता, स्वचालित मैच और पारदर्शी सुधार। इस तरह के एक समोच्च के साथ, आप राजस्व और आयोगों को स्थिर करते हैं, "ब्लैक होल" को कम करते हैं, अवधि को बंद करने में तेजी लाते हैं और दर्द के बिना ऑडिट करते हैं: ऑटो- match%↑, Mismatch↓, Aging↓।