GH GambleHub

Վճարումների և PBS վճարումների կրճատումը

TL; DR

Սա ձեր դահուկորդի և իրադարձությունների ամենօրյա ավտոմատացված կարիքն է (auth/capture/refund/payout) 'PBS/ecwayers/բանկերի զեկույցներով։ Հաջողության բանալին 'տվյալների միասնական մոդել, դետերմինացված բանալիներ, խիստ գաղափարախոսություն, սումիի/FX/ժամանակի տոլերանսներ, DLQ-ի հերթը' վիճահարույց միջադեպերի և ավտոկանգառների համար։ KPI: Recon Mismatch Rate↓, Aging of Unreconciled↓, Auto-match%↑.

1) Ինչո՞ ւ և ի՞ նչ ենք անում

Նպատակները 'եկամտի և պարտքի հաստատումը, կաղնու/կորստի հայտնաբերումը, ճիշտ settl.ru օրերով և արժույթներով, refund-to-source վերահսկողությունը, ենթածրագրի/կարգավորիչի համապատասխանությունը։

Օբյեկտները։

Deposits: `auth → capture → settle`

Refunds: fox/partial, արձաններ և գումարներ

Payouts/Withdrawals-ը 'վճարման վճարումներ

Fees & Adjustments: www.PMS, intercheinge սխեմաներ, ww.ru

Chargebacks/Winputes: Ձեր նախաձեռնությունից դուրս

FX/Convertation 'դասընթացներ, սպրեդներ, ամրագրման պահ

2) Տվյալների աղբյուրները

Systal Events (ձեր) 'իրադարձությունների ավտոբուս/Kafka, «payments _ flat», «refunds», «payouts», ձեր Ledger.

PSP Reports (SFTP/API/webhook dump):
  • Transactions (վիրահատական տպագրություններ)
  • Settlements/Batches (T + N)
  • Fees/Statements (1934, 1934)
  • Chargebacks/Disputes
  • Payouts/OCT/RTP/SEPA կիսագնդի
  • Bank Statements: MT940/CSV/ISO20022 CAMT, հանցագործությունների ավելացում։
💡 Պահեստ 'landing www.r.ru normalized www.matched։ Բոլոր մուտքային ֆայլերը 'վերահսկողական գումարներով և տարբերակով։

3) Կոդավորման բանալիները (matching keys)

Առաջնային ծառը (ճշգրտության սպանում)

1. provider _ txid provider _ txid (եզակի ID PSA)

2. idempotency _ key/merchect _ reference (եթե PBS կայուն է)

3. (amount, currency, timestamp_bucket, last4/bin, auth_code)

4. Fuzzy շերտ: wwww.tolerans գումարի/ժամանակի, BIN/issuer country, status family

Առաջարկություններ

Պահեք երկուսն էլ '«payment _ id» և «provider _ txid»։

Partial/refund-ի համար ավելացրեք «sequence _ index» կամ «refund _ բանաձև _ id»։

Для payouts — `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. Ingest: Մենք վերցնում ենք PTP (SFTP/API) հաշվետվությունները, առաջնորդում ենք սխեման/ստորագրությունը, պահպանում ենք «r.ru» -ում։

2. Normalize: mapim դաշտերը միավորված ձևաչափով (currency III, decimals, UTC թայմզոն)։

3. Match։ Ալգորիթմը պատրաստված է ծառի միջոցով։

4. Post-match: Մենք ձևավորում ենք diff (տարբերություններ) և journal entries ժապավենի/ուղղումների համար։

5. Settle: Մենք կարում ենք «PMS _ SETTLMS no BANK» (հաշիվ), ցրում ենք օրեր/մարտեր։

6. Reault: dashbord, alerta; վիճելի DLQ-ում ձեռքի բաժանման/ինքնաառաջադրման վրա։

Idempotention: յուրաքանչյուր ֆայլի/էջի վրա '«ingest _ id»։ Կրկնվող բեռնումը չի փոխում արդյունքը։

6) Տոլերանսները (tolerances) և կանոնները

Ժամանակը ՝ «3515 րոպե» գործարքների համար, «351 դն» settl.ru համար։

Գումարը ՝ «07 0»։ 01 'ռուսական արժույթ կամ «07 10 bps» FX/fee տարբերությունների համար։

FX 'Մենք թույլ ենք տալիս բաժանվել բանկի հետ, եթե դասընթացի աղբյուրը տարբեր է։ ամրագրում ենք 'fx _ ww.c'։

Partial/Multiple: partial/refund գծերի գումարը պետք է հավասար լինի ներքին մնացորդին։

7) Տարբերությունների մշակումը (diff taxonomy)

Diff տեսակըՆկարագրությունԳործողություն
MISSING_INTERNALPBS-ում մենք չունենքՍտեղծել orphan case, ստուգել webhooks/retray
MISSING_PSPՄենք ունենք, PBS չունենքՍտուգել կարգավիճակը/խոհարարը, PSA կապը
AMOUNT_MISMATCHԳումարները տարբերվում են> toleransԱվտոկորեքսիա/ամսագիր, էսկալացիա անհրաժեշտության դեպքում
FEE_MISMATCHՄոսկվան տարբերվում էԸնդունել PBS որպես «ճշմարտություն» (policy) կամ www.credit note
STATUS_DRIFTCAPTURE մենք ունենք AUTH PBSՍտուգել webhuks capture/settl.ru
DUPLICATEՏողերի դուբլիDedup 'provider _ txid/idempoty _ key'
FX_DRIFTԴասընթացները տարբերվում ենՏեղադրել պաշտոնական աղբյուրը, տեղադրել P&L
REFUND_OVERRefund > capturedՀրատապ բլոկ, ձեռքով վերլուծություն, հետադարձ ամսագիր

8) Ledger & Accounting (1942)

Capture: `DR Accounts Receivable / CR Revenue` и `DR Cash (upon settle) / CR Accounts Receivable`

Fee: `DR Fees / CR Cash or Payable`

Refund: Հակառակ կոմպոզիցիաները համամասնորեն partial

Chargeback 'առանձին հաշիվներ և պահուստներ վեճերի տակ

FX reval: AR/kash մնացորդի ամենօրյա վերագնահատումը '«fx _ 0c _ policy»

9) KPI և նպատակներ

System-match% = ինքնաբերաբար համեմատված տողեր/բոլոր տողերը (նպատակը 3695%)

Recon Mismatch Rate = diff-տողեր/բոլոր տողերը (361-2%)

Aging of Unreconciled: p50/p95 օր DLQ-ում (p95 353 դն)

Settlair Timeliness-ը 'D-օրվա բանկի հետ կարված մարտերի մասը (3699%)

Fee Accuracy-ը 'պրովայդերների տարբերությունները (240)։ 1% 2019)

Duplicate/Orphan Incidents: Ձգտում է 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 Settlement ↔ Bank

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 Aging 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» և «capture» միջև, ուշ «settlection», intercheingge/սխեմայի fee-ի միջև 'առանձին գծեր։

A2A/Open Banking/RTP: ակնթարթային ապացույցներ, բայց հնարավոր է «reversal»; իջեցրեք «payout» և բարձրացրեք։

Դրամապանակներ ՝ հաճախ կատարյալ «provider _ txid», արագ «refund»; հետևեք fee գծերին։

Վաուչերներ 'ոչ սիմետրիկ refund, արտացոլեք ճիշտ քաղաքականության և հաշվետվությունների մեջ։

Կրիպտո 'նա chain hash provider _ txid; rma N; Ցանցերի և հնարավոր ռեբեյթների իրականացումը; դասընթացը փոխակերպման պահին է։

12) Վիրահատական պլեյբուկները

MISSING _ MSAL-ի աճը 'ստուգել webhuks/retraev կորուստը, վերարտադրել ingestion, ներառել API-ի կիսագունդը։

AMOUNT _ MISMATCH-ը մեկ PBS-ում 'համեմատել թաղամասերը/ԱԱՀ/fee-մոդելը, խնդրել շտկող ստատոմը։

Settlast-ը չի կարվում բանկի հետ 'ստուգել value date, բանկի պաշտպանություն, T + N ուշացում։ ժամանակավորապես տեղադրել Suspense Account-ում։

Զանգվածային REFUND _ OVER-ը 'Auto Refands-ի չարտոնված կանգառը, idempotenty աուդիտը, ձեռքով ուղղումը։

FX _ DRIFT 'ամրագրել դասընթացի աղբյուրը (ECB/PSA/BANK), հաշվել P&L տարբերությունը։

13) Վերահսկողություն և անվտանգություն

Idempotention ingestion: «բանաձև _ id + www.ksum» և բեռնման ամսագիր։

Հասանելի (RBAC) և 4-աչքի վերահսկողություն 'ձեռքի պարամետրերի/ամսագրերի վրա։

Աուդիտ-թրեյլ 'բոլոր խաղերը/դիֆերը/2019 - անփոփոխ ամսագրում։

Տվյալների որակը 'սխեմաներ, պարտադիր դաշտեր, վալիդացիա/սկեյլա։

14) Dashbord և alerta

Տեսիլքներ ՝ Match-Match%, Mismatch Rate, Aging DLQ, Settlant Timeliness, Fee Accuracy, լավագույն PBS դիֆներով, diff տեսակի քարտեզը։

Ալերտա

«Master-match% <90%» պրովայդեր/օր P1

"Aging p95> 3 դն 'P2

`AMOUNT_MISMATCH spike` → P1

«Bank wwww.Settl.ru» գումարով/www.P0

15) Թեստային քեյսները (UAT/Lenta.ru)

1. Նույն ֆայլի կրկնվող բեռնումը 0 կողմնակի էֆեկտներ (idempotention)։

2. Մասնակի ռեֆանդները (3 տող) համընկնում են, sequence խաղը։

3. FX-փոխարկումը 'դասընթացի տարանջատումը տոլերանսի սահմաններում ճիշտ match է։

4. Կրկնօրինակները provider _ txid-ում են dedup և alert-ում։

5. Webhook capture-ը փակեց gap-ը, կարգավիճակը հավասար է։

6. Settlight-ը fee-գծի հետ ճիշտ բաժանումն է Revenue/Fee/Net-ում։

16) Հաճախակի սխալներ և ինչպես խուսափել

Համեմատության պարամետրերի խառնուրդը (compare 'attempt' vs 'capture ") նախատեսվում է պահել նույն գրանուլյացիան։

«Provider _ txid» -ի բացակայությունը խաղի ճշգրտությունը կորցնում է։

Թայմզոնի անտեսումը հիմնված է սեթլերի ամսաթվերի վրա։

Ոչ DLQ/retrav-ը բացատրում է «հավերժական» տարբերությունները։

Առանց ամսագրի ձեռքով ձեռքերը հեշտացնում են աուդիտի հետ անհամապատասխանությունը։

Տարօրինակ հրեշները կամ փետուր-խաղը, կամ «ամեն ինչ DLQ-ում»։

17) Ստուգման չեկի ցուցակ

  • Նորմալացման և PFC/մեթոդների/հաշիվների միասնական սխեմա։
  • Ծառը merchect _ ref defuzzy) (txid merchect _ ref)
  • Toleransa գումարով/ժամանակ/FX, դասընթացի աղբյուրի քաղաքականություն
  • Idempotent ingestion, DLQ, retrai, alerts
  • Sevka Settlant no Bank, Suspense Account քաղաքականություն
  • Dashbord KPI, ֆինանսական հաշվետվություններ/2019
  • Պլեյբուկին և SLA վերլուծությունը diff-cass

Ռեզյումե

Սա ինժեներական առարկա է 'նորմալացում, հուսալի բանալիներ, տոլերանսներ, ավտոմատ խաղեր և թափանցիկ պարամետրեր։ Այս կոնտուրով դուք կայունացնում եք եկամուտներն ու վճարումները, նվազագույնի հասցնում եք «սև անցքերը», արագացնում եք վերջնական ժամանակահատվածը և անցնում աուդիտ առանց ցավի ՝ Master-match%, Mismatch, Aging 2019։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։