Муқоисаи пардохтҳо ва ҳисоботҳои PSP
TL; ДР
Муқоиса ин дӯзандагии ҳаррӯзаи худкори дафтар ва рӯйдодҳои шумо (auth/гирифтан/баргардонидан/пардохт) бо ҳисоботи PSP/харидор/бонк мебошад. Калиди муваффақият: як модели ягонаи маълумот, калидҳои мутобиқати детерминистӣ, номутобиқатии қатъӣ, таҳаммулпазирии сум/FX/вақт, навбати DLQ барои парвандаҳои баҳснок ва китобҳои бозикунии худкор. KPI: Recon Mismatch Rate↓, Пиршавии Unreconciled↓, Auto-match%).
1) Чаро ва мо чиро тафтиш мекунем
Ҳадафҳо: тасдиқи даромад ва комиссияҳо, муайянкунии такрорӣ/зиён, ҳисобкунии дуруст бо рӯзҳо ва асъорҳо, назорати баргардонидан ба манбаъ, риояи аудит/танзимкунанда.
Объекти оштӣ:- Пасандозҳо: 'auth → гирифтан → ҳал кардан'
- Баргардонидан: пурра/қисман, статус ва маблағ
- Пардохтҳо/Бозхондҳо: Пардохтҳои усули баромад
- Пардохтҳо ва тасҳеҳот: пардохтҳои PSP, схемаҳои мубодила, ислоҳот
- Пардохтҳо/Баҳсҳо: Ғайр аз ташаббуси шумо
- FX/Табдилот: нархҳо, паҳншавӣ, нуқтаи ислоҳ
2) Манбаъҳои маълумот
Чорабиниҳои дохилӣ: автобуси чорабиниҳо/Кафка, 'пардохтҳо _ ҳамвор', 'баргардонидан', 'пардохтҳо', дафтарчаи шумо.
Ҳисоботҳои PSP (SFTP/API/партовгоҳи webhook):- Амалиётҳо (изҳороти амалиётӣ)
- Ҳисоббаробаркуниҳо/партияҳо
- Пардохтҳо/Ҳисоботҳо
- Пардохтҳо/Баҳсҳо
- Бақайдгирии пардохтҳо/OCT/RTP/SEPA
- Изҳороти бонк: CAMT MT940/CSV/ISO20022, лифт қарз.
3) Калидҳои мувофиқ
Дарахти калиди афзалиятнок (ба таври дақиқ фуруд меояд):1. provider_txid ↔ provider_txid (ID беназири PSP)
2. idempotency_key/ merchant_reference (агар дар PSP устувор бошад)
3. (маблағ, асъор, timestamp_bucket, last4/bin, auth_code)
4. Қабати номуайян: таҳаммулпазирии ± аз рӯи маблағ/вақт, кишвари BIN/эмитент, оилаи мақом
Тавсияҳо:- Ҳам 'пардохт _ ид' ва 'провайдер _ txid' -ро нигоҳ доред.
- Барои қисман/баргардонидан, илова кардани 'sequence _ index' ё '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) Раванди оштӣ (ETL/оркестр)
1. Inest: мо ҳисоботи PSP (SFTP/API) мегирем, схема/имзоҳоро тасдиқ мекунем, ба ғайр аз "хом".
2. Муқаррарӣ: харитасозии майдон ба формати ягона (асъори ISO, даҳӣ, минтақаи вақти UTC).
3. Бозӣ: алгоритми мувофиқ кардани дарахти асосӣ бо таҳаммулпазирӣ.
4. Бозии баъдӣ: шакли diff (номутобиқатӣ) ва вурудоти журнал барои дафтар/ислоҳҳо.
5. Ҳал кунед: дӯхтани 'PSP _ SOLUTION ↔ BANK' (қарз ба суратҳисоб), пароканда кардани рӯз/партия.
6. Ҳисобот: панели панел, огоҳиҳо; баҳснок дар DLQ барои таҳлили дастӣ/такрории худкор.
Idempotence: барои ҳар як файл/саҳифа - 'infest _ id'. Бозсозӣ натиҷаро тағйир намедиҳад.
6) Таҳаммулпазирӣ ва қоидаҳо
Вақт: '± 15 дақиқа' барои муомилот, '± 1 рӯз' барои ҳисоббаробаркунӣ.
Маблағ: '≤ 0. 01 'асъори асосӣ ё' ≤ 10 bps 'барои фарқияти FX/пардохт.
FX: мо ихтилофро бо бонк иҷозат медиҳем, агар манбаи қурби асъор гуногун бошад; ислоҳи 'fx _ src'.
Қисман/бисёрҷониба: Маблағи хатҳои қисман/баргардонидан бояд ба тавозуни дохилӣ баробар бошад.
7) Тафовути таксономия
8) Китобча ва баҳисобгирии муҳосибӣ
Гирифтан: 'Даромади дебитории DR/Даромади CR' i 'DR Cash (ҳангоми ҳал кардан )/Гирифтани ҳисобҳои CR'
Пардохт: 'Ҳаққи DR/CR Cash ё Payable'
Баргардонидан: постҳои баръакс pro rata қисман
Пардохт: ҳисобҳои алоҳида ва захира барои баҳсҳо
Таҷдиди FX: азнавбаҳодиҳии ҳаррӯзаи тавозуни AR/кэш дар 'fx _ src _ policy'
9) Ҳадафҳои KPI
Худмаблағгузории% = хатҳои худкор/ҳамаи хатҳо (95% ≥ ҳадаф)
Recon Mismatch Rate = хатҳои diff/ҳамаи сатрҳо (≤ 1-2%)
Пиршавии номуайян: p50/p95 рӯз дар DLQ (саҳ 95 ≤ 3 рӯз)
Вақти ҳисоббаробаркунӣ: таносуби маҷмӯаҳое, ки бо бонки D-day часпонида шудаанд (≥ 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 Пиршавӣ DLQ
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) Хусусиятҳо дар релсҳо/ҳолатҳо
Харитаҳо: фарқияти байни 'auth' ва 'гирифтан', танзими дер 'ҳисоббаробаркунӣ', гузариш/ҳаққи ноҳиявӣ - хатҳои алоҳида.
A2A/Open бонкӣ/RTP: тасдиқи фаврӣ, аммо "баръакс" имконпазир аст; 'пардохт' -ро санҷед ва баргардонед.
Ҳамёнҳо: аксар вақт 'провайдер _ txid', зуд 'баргардонидан'; хатҳои пардохтро тамошо кунед.
Ваучерҳо: баргардонидани симметрӣ нест - дар сиёсат ва ҳисоботҳо дуруст инъикос карда мешавад.
Crypto: hash on-занҷир ↔ provider_txid; тасдиқи N; баҳисобгирии комиссияҳои шабакавӣ ва тахфифҳои имконпазир; қурби асъор - ҳангоми табдилдиҳӣ.
12) Китобҳои амалиётӣ
Афзоиши MISSING_INTERNAL: аз даст додани webhooks/retrays, воридкунии такрорӣ, имкон додани овоздиҳии API.
AMOUNT_MISMATCH аз як PSP: муқоисаи яклухткунӣ/андоз аз арзиши иловашуда/пардохт, изҳороти ислоҳро талаб кунед.
Ҳисоббаробаркунӣ ба бонк пайваст намешавад: санаи арзиши санҷиш, пардохтҳои бонкӣ, таъхири T + N; муваққатан дар "Ҳисоби боздоштан" гузошта шудааст.
Масс REFUND_OVER: фавран қатъ кардани худкор, аудити idempotency, ислоҳи дастӣ.
FX_DRIFT: сиёсати манбаи қурби асъорро ислоҳ кунед (ECB/PSP/BANK), фарқияти P & L-ро дубора ҳисоб кунед.
13) Назорат ва бехатарӣ
Номутобиқатии воридкунӣ: 'file _ id + checksum' ва таърихи зеркашӣ.
Дастрасӣ (RBAC) ва назорати 4-чашм: барои ислоҳи дастӣ/вурудоти маҷалла.
Пайгирии аудит: ҳама мувофиқатҳо/фарқиятҳо/ислоҳҳо - дар сабти тағйирнопазир.
Сифати маълумот: схемаҳо, майдонҳои ҳатмӣ, санҷиши асъор/миқёс.
14) Панели панел ва огоҳиҳо
Виджетҳо: Бозии худкор%, Меъёри номувофиқ, DLQ-и пиронсол, Вақти ҳисоббаробаркунӣ, Дақиқии пардохт, PSP-и боло аз рӯи diff, харитаи навъи дифф.
Огоҳиҳо:- 'Бозии худкор% <90%' аз ҷониби провайдер/рӯз → P1
- 'Пиршавӣ p95> 3 рӯз' → P2
- 'Маблағ _ хӯшае MISMATCH' → P1
- 'Ҳисоббаробаркунии бонк' аз рӯи миқдор/асъор → P0
15) Парвандаҳои санҷишӣ (UAT/Prod)
1. Аз нав бор кардани ҳамон файл → 0 таъсири тараф (номутаносибӣ).
2. Қисман refans (3 сатр) → мувофиқати миқдор, бо навбат мувофиқат кунед.
3. Табдили FX: номутобиқатии қурби асъор дар доираи таҳаммулпазирӣ → бозии дуруст.
4. Нусхабардории provider_txid дар ҳисобот → dedup ва ҳушёр.
5. Сабти бедаракшудаи webhook § овоздиҳӣ холигоҳро пӯшонд, вазъ ҳамоҳанг карда шуд.
6. Маҷмӯи ҳисоббаробаркунӣ бо хати пардохт → тақсимоти дуруст аз даромад/пардохт/холис.
16) Хатогиҳои зуд-зуд ва чӣ гуна бояд пешгирӣ кард
Муқоиса кунед 'кӯшиш' vs 'забт кардан' → ҳамон дараҷаро нигоҳ доред.
Набудани 'provider _ txid' дар log log, дурустии бозии худро гум мекунад.
Вақтсанҷро аз рӯи санаи ҳисоббаробаркунӣ сарфи назар кунед.
Ягон ихтилофи DLQ/retras → "абадӣ" вуҷуд надорад.
Таҳрири дастӣ бидуни сабти ному насаб бо аудит.
Таҳаммулпазирии номуайян → ё бозии дубора ё "ҳама дар DLQ".
17) Рӯйхати назорати амалисозӣ
- Нақшаи ягонаи муқарраркунӣ ва феҳристҳои PSP/усул/ҳисоб
- Харитасозии дарахти калидӣ (txid → merchant_ref → номуайян)
- Маблағ/таҳаммулпазирии вақт/FX, сиёсати сарчашмаи курс
- Воридкунии Idempotent, DLQ, retrai, огоҳиҳо
- Settlement↔Bank оштӣ, Сиёсати ҳисоби боздошташуда
- Dashboard KPI, ҳисоботи молиявӣ/аудитӣ
- Китобҳои бозӣ ва SLA парвандаҳои гуногун
Хулоса
Оштӣ як фанни муҳандисӣ мебошад: муътадилсозӣ, калидҳои боэътимод, таҳаммулпазирӣ, гугирдҳои автоматӣ ва ислоҳи шаффоф. Бо чунин контур, шумо даромад ва комиссияҳоро ба эътидол меоред, "сӯрохиҳои сиёҳ" -ро кам мекунед, бастани давраро суръат мебахшед ва бе дард тафтиш мешавед: Auto- match% *, Mismatch↓, Aging↓.