GH GambleHub

חלקי רישום ואוטומציה

TL; DR

אוטומציית ”אימות” אמינה מבוססת על שלושה עמודים: בליעה דטרמיניסטית (הסרה בטוחה, אידמפוטנטיות, בקרת שלמות), שכבת מידע מנורמלת (סכימה בודדת, מפתחות תואמים, יחידות סטנדרטיות של זמן/זרמים/סימנים) ודיסציפלינת איכות קפדנית (אימות, סובלנות, DLQ, התראות, תיקונים אוטומטיים). המטרה היא להפוך קבצים מנופחים/ספרי אינטרנט לשולחנות יציבים לפיוס, דיווח ו-BI עם SLA על זמינות.


1) מקור ונוף פורמט

1. 1 מקורות

PSP/רוכשים/אגרגטורים: עסקאות, סטים, עמלות, מחלוקות.
מחלץ MT940, ISO 20022 CAMT. 052/053/054, תשלומי כאב. 001/002.
AWS/ארנקים/תשלום (CATA/RTP/SEPA): קופות תשלום, החזרות.
החלפות מותאמות אישית: עסקאות על שרשרת, דוחות המרה/עמלה.
פורטלי מסים/מדינה: CSV/XLSX/PDF, לפעמים באמצעות דפדפן מתוסרט.

1. 2 תבניות

(CSV/TSV).
XLSX (ריבוי גיליונות, תאים ממוזגים).
XML (ISO 20022 CAMT/PAIN, תרשימים מותאמים אישית XSD).
SWIFT MT940/942 (שדות מיקום).
JSON-API/NDJSON (העלאות מצטברות, קורסים).
PDF (tabular - parser; סריקות - OCR).
ZIP/TAR. GZ (חבורות מרובות קבצים).


2) ארכיטקטורת צינור בליעה

קווי מתאר:

1. נחיתה: קבלת קבצים מאובטחים (SFTP/FTPS/WebDAV/API/webhooks).

2. גלם: פריסה לפי תאריכים/ספקים/בוצ 'ים, אחסון עם גרסאות.

3. נרמול: פירוק * איחוד סוגים/יחידות * טבלאות מנורמלות.

4. תוקף: לאחר אימות (חוקי איכות) = דגלים, DLQ.

5. מתאים: מיפוי לאירועים פנימיים/בנק.

6. הגשה/דו: הצגת תיקים לפיוס/כספים/עסקאות.

דרישות מפתח:
  • האידמפוטנטיות של הבליעה: ”(ספק, file_name, file_size, chectsum, statement_date)”.
  • שידורים חוזרים/מגשים: שידור מחדש של קובץ אינו יוצר שכפולים.
  • DLQ (תור אותיות מתות): כולם לא מוכרים/מפרים כללים - לתור מבודד.
  • Versioning: קובץ חדש לאותו היום = גרסה חדשה עם קישור לקודמת.

3) אבטחה של משלוח וסודות

ערוצים: SFTP עם מפתחות מוגבלים; FTPS - רק עם TLS קפדני; OAuth2/short אסימונים של טי-טי-אל.
הצפנת תוכן: PGP/GPG בעת הורדת קבצים; S/MIME עבור תיבות דואר אלקטרוני (אם משתמשים).
בדיקת יושרה: SHA-256/512 chectsum, בהשוואה עם חשיש במניפסט.
סודות: לאחסן בכספת/KMS, סיבוב, אסור בהגדרות קבצים/יומנים.
גישה: RBAC + העיקרון של ”הרשאות מינימום”, חשבונות שירות נפרדים.


4) נורמליזציה וערכת נתונים

4. 1 כללים אוניברסליים

זמן: תמיד UTC ISO-8601; לתאריכי הסדר, 'דייט' בלי ט "ז.
כמויות: '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) Parsers by Format: Tricks and Rake

5. 1 CSV/TSV

ציין במפורש את ”דלימיטר”, ”ציטוט”, ”escapechar”, ”קידוד”.

זיהוי של משמרות שורות/כותרת ריקות; כינויים כותרת תומכים (למשל. "כמותAMTtxnSume '.
המרת סימן (מינוס/סוגריים), נורמליזציה של אלפיות (', '/'. '/רווחים).

5. 2 XLSX

קריאה לפי גיליון לבן; מיזוג אוטומטי מעכב - משתטח תאים ממוזגים.
המרת נוסחאות לערכים; Excel UTC תאריכים עם TZ מפורש.

5. 3 XML (ISO 20022 CAMT/PAIN)

אימות על ידי XSD; מיפוי הזהות של XPath ('<Ntery>', '<TxDtls>', '<amt>', '<CdDbTind>').
Credit/debit normalization # sign; תמיכה בריבוי ”<Chrgs>”, ”<RmtInf>”.

5. 4 MT940

תוויות: 61: ",": 86: "; תמיכה בהרחבות לאומיות; שדות מיקום = כללי חיתוך.
איחוד של כמה ”: 61:” לתוך קבוצה אחת.

5. 5 JSON/NDJSON/API

Cursors' מאז _ idcreated_atpage_token'; Retrai (429 backoff + jitter).
סמנטיקה חלקית (ריבוי מחרוזות למחרוזת one 'provider _ txid).

5. 6 PDF/OCR

ראשית, ניסיון בפתיחת שולחן (גלאי שולחן), רק אז OCR (טסרקט) עם תווים לבנים.
לאחר אימות: סכומים, סיכומי שליטה, פיוס של מספר השורות.

5. 7 ארכיונים/חבורות

פורק עם שימור מבנה; כל קובץ - "file _ id' נפרד; מניפסט, שליטה על כל החלקים.


6) אימות איכות נתונים וכללים

בדיקות חובה:
  • כל השדות הנדרשים נוכחים.
  • סוגים: כמויות - מספריות, תאריכים - חלק.
  • Checksums/Totals - סכום שורות = סך כל הקובץ (אם בכלל).
  • טווחים: תאריך בחלון סביר; sum> 0 (או לפי המילון של שלילה מותרת).
  • ייחודיות: (ספק, provider_txid, רצף) אינה משוכפלת בנורמליות.
  • סובלנות מותרת ”כמות/fx/זמן” אי התאמות.

תוצאה: ”תוקף”, ”תוקף _ עם _ אזהרות”, ”INVALID # DLQ (reason_code)”.


7) זהות ושכפול

מפתח בליעה: (ספק, file_name, קובץ, checksum, statement_date) "" <a "file _ id'.
Row-level idem: ”row _ hash = sha256 (normalized_row_compact)”; טעינה לא יוצרת תקליטים חדשים.
Webhooks/API: ”idempotency _ key” specker + התגיות שלך (exec _ id), לאחסן TTL.
כפילות של הספק: dedup by ”despective _ txide” + ”sequence”, במקרה של אי התאמה - in DLQ_DUPLICATE.


8) תזמור ולוחות זמנים

Airflow/DAGSTER (DAG: 'תביאו את accrypt # perse ach normale accidate _ publish _ game').
SLA/SLO: "זמן לזמינות (TTA)" ממקרה קובץ 'מנורמל = מוכן ".
רטריי: גיבוי מעריכי + jitter; מגבלות ניסיון; סטטוסים ברורים.
קונקורנסי ובידוד: OCR/parsing XLSX כבד - בבריכה/עובד נפרד עם מגבלת CPU/RAM.
שידור חוזר של DLQ: עיבוד חוזר תקופתי בעת עדכון כללים/מפיות.


9) יכולת תצפית והתראות

מדדים:
  • בליעה הצלחה%, הצלחה Farse% על ידי מקור.
  • TA p50/p95, דרך (קווים/מין).
  • דירוג DLQ משפיע על DLQ p50/p95.
  • סכימה סחיפה תקריות.
  • שכפול קצב "ספק _ txid'.
התראות (דוגמה):
  • 'TA p95> SLA' # P1.
  • "דרגת DLQ> 2% לשעה עבור ספק P1.
  • 'סכימה סחיפה זוהתה' * P0 (לעצור התאמה אוטומטית על ידי מקור).
  • ”שכפול ספייק” = P2 (ספק צ 'ק/webhooks).

Dashbord: קובצי משפך = = = = , כרטיס DLQ מהסיבות, TTA-cumples.


10) תיקונים אוטומטיים ומפות

כינויים כותרת: מילון עם גרסאות (למשל, "כמות" "amt'," כמות "" amt ").

מפות קוד: statuses ספק * * הספרייה שלך ('אושרהשבוייםהתיישב ').
מדיניות חתימה: "CR/DR", "C/D', סוגריים - לתוך מודל" סימן "יחיד.
תיקון כמות: הסרה של אלפי מפרידים, נורמליזציה של מינוס.
תיקון Timezone: הזמן המקומי של הספק = UTC, כולל DST.
💡 כל תיקון אוטומטי - מחובר ומסומן ב ”תיקון _ דגלים”.

11) קישור ל ”פיוס תשלומים ודיווחים של PSP” ‏

שכבה מנורמלת מוכנה - קלט להתאמה (provider_txid/merchant_ref/fuzzy), חישוב diff-taxonomy, אוטומטי-logs ו- settlement↔bank-stiting. שדות מפתח: "ספק _ txid'," רצף "," סוג "," סכום _ מינור "," ערך _ תאריך "," חשבון ".


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) Parser pseudocode

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/דוא "ל/טלפון #" sha256 + מלח ", יומנים - ללא ערכים עיקריים.
מדיניות השמירה: ”שימור” לפי סוג המקור (AML/חשבונאות).
PII ניגש - על ידי תפקיד בלבד; ביקורת של קריאה/יצוא.


15) KPIs ומטרות (לניתוח/בליעה)

בליעה הצלחה% im 99. 5 %/יום למקור.
Parse Success%% -99%, DLQ -1%.
TTA P95 (fayl = מנורמל) 15 דקות (CSV/XML), ובהן 60 דקות (PDF/OCR).
סכימה סחיפה תקריות: 0/חודש ללא התראה/תיקון.
תשכפל את דרגת הספק _ txid' 0. 05%.


16) חוברות משחק תקריות

סכימה סחיפה: לעצור התאמה אוטומטית, להפעיל פרסר ”רך” עם ML-זיהוי של רמקולים, להכין טלאי זהות בדויה, להפעיל DLQ-Replay.
נחשול DLQ: דיבוג הקבצים האחרונים, בדיקת קידוד/מיקום/סימן, הורדת החומרה זמנית של סובלנות (עם דגל).
עיכובים ב-SFTP: מעבר לסקרים של API/webhooks, החזרה הולכת וגוברת, תקשורת עם הספק.
קוצים כפולים: אפשר אימות נוסף ”שורה _ חשיש”, בלוק של חזרות עד להבהרה.


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. Schema Drift: כותרת חדשה * כינוי תיקון ועיבוד מחדש של קבצים היסטוריים.
8. דרך: בדיקת טעינה של N קבצים/שעה = תאימות עם TA SLA.
9. מהדורת מח "ש: יומנים ללא פאן/דואר אלקטרוני, רק חשיש.


18) רשימת מימושים

[ רישום מקורות ]: פרוטוקול, לוח זמנים, SLA, תבנית, קשר.
[ ] ערוצים מאובטחים (SFTP/PGP/API), כספת לסודות.
[ ] בליעה אידמפוטנטית + checksum + גרסאות.
[ ] פרסרס בפורמט, כינוי מילון, מדיניות סימן/מקום.
[ ] שכבה נורמלית ומדדי מפתח.
[ ] חוקי אימות, סובלנות, די-אל-קיו ושידור חוזר.

תזמורת (DAG), Retrai/Backoff, בריכות משאבים.

[ ] תצפית: מדדים, לוחות מחוונים, התראות.
[ ] מסכות GDPR/PII, ביקורת גישה.
[ ] מקרי מבחן ותרגילי סריקה-דריפט רגילים.

המשך תקציר

אוטומציה של ניתוחים אינה ”לכתוב פרסר”, אלא לבנות מעגל תעשייתי: מסירה אמינה והצפנה, צינורות אידמפוטנטים, נורמליזציה קפדנית, כללי איכות והתראות שקופות. מתווה כזה הופך כל רשמים לשולחנות צפויים עם SLA מובטח על זמינות נתונים - הבסיס לפיוס, דיווח משרד האוצר והניהול.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.