GH GambleHub

Таҳлили феҳрист ва автоматизатсия

TL; ДР

Автоматизатсияи боэътимоди "санҷиш" ба се сутун асос ёфтааст: воридкунии детерминистӣ (таҳвили бехатар, idempotence, назорати якпорчагӣ), қабати муқарраршудаи маълумот (схемаи ягона, калидҳои мувофиқ, воҳидҳои стандартии вақт/асъор/аломатҳо) ва интизоми қатъии сифат (санҷишҳо, таҳаммулпазирӣ, DLQ, огоҳиҳо, ислоҳоти худкор). Ҳадаф аз табдил додани файлҳои motley/webhooks ба ҷадвалҳои устувор барои оштӣ, гузоришдиҳӣ ва BI бо SLA-ҳо оид ба мавҷудият мебошад.


1) Манзараи манбаъ ва формат

1. 1 Манбаъ

PSP/харидорон/агрегаторҳо: муомилот, маҷмӯаҳо, комиссияҳо, баҳсҳо.
Бонкҳо: иқтибосҳо MT940, ISO 20022 CAMT. 052/053/054, пардохтҳои PAIN. 001/002.
AWS/ҳамёнҳо/пардохтҳо (OCT/RTP/SEPA): бақайдгирии пардохтҳо, баргардонидан.
Crypto-custom/мубодила: транзаксияҳои занҷир, ҳисоботҳои табдили/комиссия.
Андозҳо/Порталҳои давлатӣ: CSV/XLSX/PDF, баъзан тавассути браузери скрипт.

1. Форматҳои 2

CSV/TSV (ҷудосозандагони тағирёбанда, локалҳо, рамзҳо).
XLSX (бисёр варақ, ҳуҷайраҳои якҷояшуда).
XML (ISO 20022 CAMT/PAIN, схемаҳои фармоишии XSD).
SWIFT MT940/942 (майдонҳои мавқеъ).
JSON-API/NDJSON (боркуниҳои афзоянда, курсорҳо).
PDF (ҷадвалбандӣ - таҳлилгар; скан - OCR).
ZIP/TAR. GZ (бастаҳои бисёр файл).


2) Меъмории лӯлаи воридшавӣ

Контурҳо:

1. Фурудгоҳ: қабули бехатари файл (SFTP/FTPS/Web

2. Хом: тарҳ аз рӯи санаҳо/провайдерҳо/қассобҳо, нигоҳдорӣ бо версияҳо.

3. Муътадил кардан: таҷзияи → муттаҳидсозии намудҳо/воҳидҳо → ҷадвалҳои муқарраршуда.

4. Тасдиқшуда: пас аз санҷиш (қоидаҳои сифат) → парчамҳо, DLQ.

5. Мувофиқат: харитасозӣ ба рӯйдодҳои дохилӣ/бонк.

6. Хизматрасонӣ/BI: намоиши парвандаҳо барои оштӣ/молия/амалиёт.

Талаботи асосӣ:
  • Idempotency воридкунӣ: '(провайдер, file_name, file_size, checksum, statement_date) → калиди беназир.
  • Reruns/Retrays: такрори файл нусхаҳоро эҷод намекунад.
  • DLQ (навбати мактуб): ҳама қоидаҳои эътирофнашуда/вайронкунанда - ба навбати ҷудогона.
  • Версия: файли нав барои худи ҳамон рӯз → нусхаи нав бо истинод ба файли қаблӣ.

3) Амнияти таҳвил ва асрори

Каналҳо: SFTP бо калидҳои маҳдуд; FTPS - танҳо бо TLS-и қатъӣ; Нишонаҳои API - OAuth2/short TTL.
Рамзгузории мундариҷа: PGP/GPG ҳангоми зеркашии файлҳо; S/MIME барои паёмдони почтаи электронӣ (агар истифода шавад).
Тафтиши якпорчагӣ: SHA-256/512 санҷиш, муқоиса бо ҳаш дар ошкор.
Асрҳо: дар Vault/KMS нигоҳ доред, гардиш, дар файлҳо/гузоришҳои конфигуратсия манъ аст.
Дастрасӣ: RBAC + принсипи "камтарин имтиёзҳо", ҳисобҳои алоҳидаи хидматӣ.


4) Нормализатсия ва нақшаи маълумот

4. 1 Қоидаҳои универсалӣ

Вақт: ҳамеша UTC дар ISO-8601; барои санаҳои ҳисоббаробаркунӣ, 'САНА' бе TZ.
Маблағҳо: 'DECIMAL (p, s)' дар воҳидҳои хурд + миқёси инфиродӣ '; аломат: гирифтан/хароҷот ба таври қатъӣ тибқи луғат.
Асъорҳо: ISO-4217, ҷадвали меъёри муқарраршуда бо 'fx _ src'.
Локалӣ: манъи автодетект - танзими возеҳи ҷудосозандагон/нуқтаи даҳӣ/ҳазорҳо.
Рамзгузорӣ: вуруди UTF-8; дигарон - табдилдиҳӣ бо дафтар.

4. 2 Қабати муқаррарии "ҳамвор" (мисол)

json
{
"provider": "Acquirer_A",
"source_kind": "PSP_TX    PSP_SETTLEMENT    BANK    WALLET    CRYPTO",
"kind": "AUTH    CAPTURE    REFUND    PAYOUT    FEE    SETTLEMENT    CHARGEBACK",
"payment_id": "pay_123",        // ваше
"provider_txid": "psp_abc_789",    // внешнее
"merchant_ref": "mr_456",
"sequence": 0,             // partial/refund line index
"amount_minor": 100000,        // 1000.00
"currency": "EUR",
"fee_minor": 120,           // 1.20
"fx_rate": 1.0000,
"fx_src": "PSP    ECB    BANK",
"event_ts": "2025-11-03T12:00:00Z",
"value_date": "2025-11-05",
"account": "PSP_MERCHANT_CARD_A",
"bin": "425000",
"last4": "1234",
"status": "APPROVED    CAPTURED    SUCCESS    FAILED    SETTLED",
"file_id": "ing_20251103_001",
"row_hash": "sha256(raw_row)"
}

5) Парсерҳо аз рӯи формат: Ҳиллаҳо ва Рейк

5. 1 CSV/TSV

Ба таври возеҳ 'ҷудокунанда', 'квотехар', 'escapechar', 'рамзгузорӣ' -ро муайян кунед.

Муайян кардани хатҳои холӣ/гузаришҳои сарлавҳа; сарлавҳаи дастгирии тахаллус (масалан, 'МаблағАМТМиқдори ').
Табдили аломат (минус/қавс), ба эътидол овардани ҳазорҳо (', '/. '/фазо).

5. 2 XLSX

Хондани варақи сафедпӯст; Auto Merge Inhibit - Flattens ҳуҷайраҳои якҷояшуда.
Табдили формулаҳо ба арзишҳо; Excel → UTC санаҳои бо TZ возеҳ.

5. 3 XML (ISO 20022 CAMT/PAIN)

Санҷиш аз ҷониби XSD; Харитасозии шахсияти XP ('', '

Нормализатсияи қарз/дебет → аломати; дастгирии якчанд '', ''.

5. 4 MT940

Барчаспҳои таҳлилӣ ': 61:', ': 86:'; дастгирии васеъкунии миллӣ; майдонҳои мавқеъ → қоидаҳои буридан.
Муттаҳидсозии якчанд ': 61:' ба як партия.

5. 5 JSON/NDJSON/API

Cursors 'аз _ idcreated_atpage_token'; retrai-и огоҳии меъёрӣ (429 → бозгашт + jitter).
Семантикаи қисман (сатрҳои такрорӣ ба як 'provider _ txid').

5. 6 PDF/OCR

Аввалан, кӯшиши таҳлили ҷадвал (детектори ҷадвал), танҳо баъд OCR (Tesseract) бо аломатҳои сафедпӯст.
Пас аз санҷиш: миқдор, маҷмӯи назорат, муқоисаи шумораи хатҳо.

5. 7 бойгонӣ/маҷмӯаҳо

Кушодан бо ҳифзи сохтор; ҳар як файл - алоҳида 'файл _ ид'; зоҳир, назорат аз болои ҳамаи қисмҳо.


6) Санҷишҳо ва қоидаҳои сифати маълумот

Санҷишҳои ҳатмӣ:
  • Схема - Ҳама майдонҳои зарурӣ мавҷуданд.
  • Намудҳо: миқдор - ададӣ, сана - таҳлил.
  • Чекҳо/Натиҷаҳо - Ҷамъи сатрҳо = Ҷамъ дар файл (агар бошад).
  • Диапазонҳо: сана дар равзанаи оқилона; ҷамъи> 0 (ё мувофиқи луғати манфии иҷозатдодашуда).
  • Ягонагӣ: '(провайдер, provider_txid, пайдарпаӣ)' дар муқаррарӣ такрор намешавад.
  • Таҳаммулпазирӣ ба номутобиқатии "миқдор/fx/time" иҷозат дода мешавад.

Натиҷа: 'ЭЪТИБОР', 'ДУРӮҒ _ БО _ ОГОҲӢ', 'INVALID → DLQ (reason_code)'.


7) Шиносоӣ ва такрорӣ

Калиди воридшавӣ: '(провайдер, file_name, filesize, checksum, statement_date)

Идемияи сатр: 'row _ hash = sha256 (normalized_row_compact)'; азнавборкунӣ сабтҳои нав эҷод намекунад.
Webhooks/API: 'idempotency _ key' провайдер + барчаспҳои шумо ('exec _ id'), TTL-ро нигоҳ доред.
Нусхаҳои провайдер: тарҳ аз ҷониби 'provider _ txid' + 'пайдарпаӣ', дар ҳолати номувофиқатӣ - дар DLQ_DUPLICATE.


8) Оркестр ва ҷадвалҳо

Orkestrator: Airflow/Dagster (DAG: 'ба даст овардан → рамзкушоӣ → таҳлил → муътадил кардан → тасдиқ кардан → нашр кардан → match').
SLA/SLO: 'Вақт ба-дастрасӣ (TTA)' аз пайдоиши файл то 'муқаррарӣ = READY'.
Retrai: backoff экспоненсиалӣ + jitter; маҳдудиятҳои кӯшиш; статусҳои равшан.
Мувофиқат ва ҷудокунӣ: OCR/таҳлили XLSX вазнин - дар ҳавзи алоҳида/коргар бо маҳдудияти CPU/RAM.
Такрори DLQ: коркарди даврӣ ҳангоми навсозии қоидаҳо/харитасозӣ.


9) Мушоҳида ва огоҳиҳо

Нишондиҳандаҳо:
  • Муваффақияти воридшавӣ%, Муваффақияти таҳлил% аз рӯи манбаъ.
  • TTA p50/p95, Интиқол (хатҳо/дақиқа).
  • Меъёри DLQ i Пиршавӣ DLQ p50/p95.
  • Ҳодисаҳои Schema Drift.
  • Такрори меъёри po 'провайдер _ txid'.
Огоҳиҳо (мисол):
  • 'TTA p95> SLA' → P1.
  • 'Меъёри DLQ> 2%' дар як соат барои § провайдери P1.
  • 'Schema Drift муайян карда шуд' → P0 (муқоисаи худкорро аз ҷониби манбаъ қатъ кунед).
  • 'Хӯшае нусхабардорӣ' → P2 (провайдери санҷишӣ/вебхукҳо).

Dashbord: файлҳои ғалтак → → → →, корти DLQ бо сабабҳо, TT-quantiles.


10) Ислоҳоти худкор ва харитасозӣ

Тахаллуси сарлавҳа: луғат бо версияҳо (масалан, 'Маблағ' → 'amt', 'TOUNT' → 'amt').

Харитаҳои рамзӣ: ҳолати провайдер → феҳристи шумо ('ТАСДИҚ КАРДА ШУДААСТЗАБТШУДАSOLED ').
Сиёсати имзо: 'CR/DR', 'C/D', қавс - ба як модели "аломати" ягона.
Таъмири маблағ: бартараф кардани ҷудосози ҳазорум, ба эътидол овардани минус.
Таъмири вақт: вақти маҳаллии провайдер → UTC, аз ҷумла DST.
💡 Ҳама гуна ислоҳи худкор - воридшуда ва дар 'таъмир _ парчамҳо' қайд карда шудааст.

11) Истинод ба "Муқоисаи пардохтҳо ва ҳисоботҳои PSP"

Қабати муқарраршудаи тайёр - вуруд барои муқоиса (provider_txid/merchant_ref/fuzzy), ҳисоб кардани дифф-таксономия, худкор-гузоришҳо ва settlement↔bank-ститчинг). Соҳаҳои асосӣ: 'провайдер _ txid', 'пайдарпаӣ', 'намуди', 'миқдор _ минор', 'value _ date', 'ҳисоб'.


12) Модели нигоҳдорӣ ва ҷадвалҳо

Ҷадвали файлҳои заминӣ:
sql
CREATE TABLE landed_files (
file_id TEXT PRIMARY KEY,
provider TEXT,
source_kind TEXT,
file_name TEXT,
file_size BIGINT,
checksum TEXT,
statement_date DATE,
received_at TIMESTAMP WITH TIME ZONE,
version INT,
status TEXT, -- RECEIVED    PARSED    FAILED error TEXT
);
Сатрҳои муқарраршуда:
sql
CREATE TABLE psp_norm (
row_id BIGSERIAL PRIMARY KEY,
file_id TEXT REFERENCES landed_files(file_id),
provider TEXT,
source_kind TEXT,
kind TEXT,
payment_id TEXT,
provider_txid TEXT,
merchant_ref TEXT,
sequence INT,
amount_minor BIGINT,
currency CHAR(3),
fee_minor BIGINT,
fx_rate NUMERIC(18,8),
fx_src TEXT,
event_ts TIMESTAMPTZ,
value_date DATE,
account TEXT,
status TEXT,
row_hash TEXT UNIQUE,
repair_flags TEXT[]
);
CREATE INDEX idx_psp_norm_txid ON psp_norm(provider, provider_txid, sequence);

13) Псевдокоди таҳлилгар

CSV/XLSX:
python def parse_table(file, spec):
df = load_csv_or_xlsx(file, delimiter=spec.delim, encoding=spec.enc, sheet=spec.sheet)
df = rename_headers(df, spec.header_aliases)
df = clean_amounts(df, thousand=spec.thousand, decimal=spec.decimal, sign_policy=spec.sign)
rows = []
for r in df.itertuples():
rows.append(normalize_row(r, spec))
return rows
XML CAMT:
python def parse_camt(xml):
root = parse_xml(xml, xsd="camt053.xsd")
for ntry in root.findall('.//Ntry'):
sign = 1 if ntry.findtext('CdtDbtInd') == 'CRDT' else -1 amt = Decimal(ntry.findtext('Amt')) sign
... map to normalized fields
OCR PDF (бозгашт):
python def parse_pdf_ocr(pdf):
text = tesseract(pdf, lang="eng", psm=6, whitelist="0123456789.,-;:/A-Za-z")
table = detect_table(text)
return normalize_table(table)

14) GDPR/PII ва таҳрири журнал

Маска/хэш: PAN/email/phone → 'sha256 + намак', гузоришҳо - бе арзишҳои аввалия.
Сиёсати нигоҳдорӣ: 'нигоҳ доштан' аз рӯи намуди манбаъ (AML/баҳисобгирӣ).
Дастрасии PII - танҳо аз рӯи нақш; аудити хондан/содирот.


15) Ҳадафҳои KPI (барои таҳлил/воридшавӣ)

Муваффақияти воридшавӣ% ≥ 99. 5 %/рӯз дар як манбаъ.
Муваффақияти коркард% ≥ 99%, DLQ ≤ 1%.
TTA p95 (fayl → муқаррарӣ) 15 дақиқа (CSV/XML), 60 дақиқа (PDF/OCR).
Ҳодисаҳои Schema Drift: 0/моҳ бидуни ҳушдор/ислоҳ.
Такрори меъёри po 'провайдер _ txid' ≤ 0. 05%.


16) Китобҳои бозӣ

Кашиши схема: муқоисаи худкорро қатъ кунед, таҳлилгари "мулоим" -ро бо ML-муайянкунии баландгӯякҳо фурӯзон кунед, ямоқи тахаллусро омода кунед, DLQ-такрори онро иҷро кунед.
Афзоиши DLQ: ислоҳи файлҳои охирин, санҷиши рамзгузорӣ/локал/аломат, муваққатан паст кардани шиддати таҳаммулпазирӣ (бо парчам).
Таъхирҳои SFTP: гузаштан ба пурсиши API/webhooks, афзоиш ёфтани бозгашт, иртибот бо провайдер.
Хӯшаҳо такрор мешаванд: имкон медиҳад, ки санҷиши иловагии 'row _ hash', блоки такрорӣ то дақиқ карда шавад.


17) Бастаи парвандаҳои санҷишӣ (UAT/Prod-Ready)

1. Idempotency: Бори якхеларо такрор кунед → 1 'file _ id', 0 хатҳои нав.
2. Ҷойгоҳҳо: файлҳо бо ', '/'. '/фосила → маблағи дуруст.
3. Қисман/баргардонидан: пайдарпаии сершумор ба як 'провайдер _ txid'.
4. XML XSD: беэътибор CAMT → 'INVALID' + DLQ.
5. MT940 вариантҳо: васеъшавии миллӣ → таҳлили дуруст.
6. PDF → OCR: сканкунӣ бо садо → истихроҷ ва қабули қоидаҳои асосӣ.
7. Drift Schema: сарлавҳаи нав → ямоқи тахаллус ва коркарди файлҳои таърихӣ.
8. Интиқол: санҷиши сарбории файлҳои N/соат → мутобиқат бо TTA SLA.
9. Нашри PII: гузоришҳо бе PAN/e-mail, танҳо hash.


18) Рӯйхати назорати амалисозӣ

  • Феҳристи манбаъҳо: Протокол, ҷадвал, SLA, формат, тамос.
  • Каналҳои бехатар (SFTP/PGP/API), Vault барои асрҳо.
  • Воридкунии Idempotent + checksum + версияҳо.
  • Парсерҳо аз рӯи формат, луғати тахаллус, сиёсати аломат/маҳал.
  • Нишондиҳандаҳои муқаррарӣ ва калидӣ.
  • Қоидаҳои тасдиқкунӣ, таҳаммулпазирӣ, DLQ ва такрорӣ.
  • Оркестр (DAG), Retrai/Backoff, ҳавзҳои захиравӣ.
  • Мушоҳидаҳо: ченакҳо, панелҳо, огоҳиҳо.
  • Ниқоби GDPR/PII, аудити дастрасӣ.
  • Ҳолатҳои санҷиш ва машқҳои мунтазами схема.

Хулосаи дубора

Автоматикунонии таҳлил ин "навиштани таҳлилгар" нест, балки сохтани схемаи саноатӣ: таҳвил ва рамзгузории боэътимод, қубурҳои бекорхобида, муқаррароти қатъӣ, қоидаҳои сифат ва огоҳиҳои шаффоф. Чунин нақша ҳама гуна регистрҳоро ба ҷадвалҳои пешгӯишаванда бо SLA-и кафолатдор оид ба мавҷудияти маълумот табдил медиҳад - асоси ҳисобот оид ба оштӣ, хазинадорӣ ва идоракунӣ.

Contact

Тамос гиред

Барои саволҳо ё дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram ё WhatsApp — ихтиёрӣ.

Номи шумо ихтиёрӣ
Email ихтиёрӣ
Мавзӯъ ихтиёрӣ
Паём ихтиёрӣ
Telegram ихтиёрӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиёрӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.