GH GambleHub

תיקונים חלקיים ומוחלטים

TL; DR

Refand הוא הפעולה ההפוכה על הכמות שנתפסה. מלא סוגר את כל העסקה, חלקי מחזיר חלק (יכול להיות סדרה חלקית עד מלאה). קריטי: החזר למקור, אידמפוטנציה קפדנית, כריתת היגיון, ותזמור עם חוברות אינטרנט/רטראס. שיעור החזר מדידה, TTR p95, שגיאת החזר ושלילת כפילויות/חוסר עקביות באמצעות פיוס אוטומטי.

1) מונחים והבדלים מהותיים

החזר מלא - מחזיר את כל הסכום המחויב ("החזר כספי = capture_amount').
החזר חלקי - מחזיר חלק ("0 <refund_amount <capture_amount'), מאפשר את השאר חלקי לסך 'לכידה _ כמות'.
החזר למקור - החזר לשיטת התשלום/מסילות המקוריות (רגולציה מועדפת/חובה).
ביטול הריק כדי ללכוד (אם נתמך על ידי מסילות), אינו נחשב לשדרוג.
היפוך/Chargback - בנק/מכניקת רכבות מחוץ ליוזמה שלך (סכסוכים, צ 'רג' בקס) - אין להתבלבל עם refand.

2) מתי להוציא מלא נגד חלקי

מלא:
  • בטל הזמנה/שירות שלם, שכפול מחיקה, שגיאת מערכת.
  • חובה אם השירות אינו מסופק (לפי כללי הצרכן/רגולטור).
חלקית:
  • ביטול חלקי של השירות, שינויים פרופורציונליים (הנחות, פיצוי על עיכובים).
  • טכני מגביל מסילות (כמות מקסימלית לכל פעולה) - סדרה חלקית.
  • עמלה פוסט-factum מונעת (היכן שמותר פיקוח) - פחות פעמים ב-iGaming.
פתרון: לתפור את מדיניות ”cost _ code _ method × grifissportation” matrix = מלאחלקיתשניהם, גבולות, נדרש רמה של אישור.

3) מדיניות ומגבלות

החזר למקור = נכון כברירת מחדל; חריגים - באמצעות MLRO/cases (רשום).
חיתוך: ריפודים מותרים N ימים מלכידה (על ידי שיטה/תחום שיפוט).
Max Partical Count: לא יותר מאשר K חלקי לכל תשלום (בדרך כלל K Lother 5).
סכום חלקי מין: לא נמוך ממסילה מינימלית טכנית/PSP.

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

4) ארכיטקטורה וזרימת אירועים

רכיבים:
  • תזמורת התשלומים היא המקור לאמת הסטטוס.
  • שירות החזר כספי - API, אידמפוטנטיות, תזמור של מגשים מחדש, כריתת עצים.
  • מתאם PSP - שילוב שיטות.
  • פיוס - פיוס אוטומטי, DLQ, תיקונים.
  • פנקס חשבונות - פרסומים, עריקים, ניקוי עם בירור.
  • סיכונים/ציות - סנקציות/SOF בודק בתרחישים שנויים במחלוקת.
רצף (חלקי/מלא):

1. החזר כספי. Create '(API) avidation = (גבולות, שיווי משקל, מדיניות, KYC/SOF במידת הצורך).

2. idempotency_key (”hash (payment_id + refund_amount + סיבה + nonce)”).

3. שיחת PSP = ”ממתינה”.

4. Webhook/clock = ”הצלחה ”/” נכשל”; כאשר פסק זמן - מגשים מחדש עם אותו מפתח.

5. פרסום האירוע בקפקא = לדג 'ר, BI, התראות.

6. פיוס אוטומטי: מיפוי "ספק _ החזר _ id' לרישום.

5) אידמפוטנטיות ואנטי-טייקים

לא ניתן לזקוף זאת לזכותו פעמיים: כל הלוגיקה באמצעות אחסון אידמפוטנטיות (KV/Redis + TTL).
מפתחות על payment_id × כמות x סיבה (ובמידת הצורך, ”partical _ index”).
מגשים חוזרים משתמשים באותו מפתח.
חלקיות מקבילות מוגנות על ידי מנעולים/גרסה אופטימית על כמויות מצטברות.

פסאודו-קוד:
python def refund(payment_id, amount, reason, idem_key):
if idem_store. exists(idem_key): return idem_store. get(idem_key)
with tx():
p = db. get_payment(payment_id, for_update=True)
assert p. captured_amount - p. refunded_amount >= amount > 0 r = p. create_refund(amount, reason, status='PENDING', idem_key=idem_key)
resp = psp. refund(p. provider_txid, amount, idem_key)
return finalize(r, resp. status, resp. ext_id)

6) מודל נתונים (מספיק מינימלי)

json
{
"payment_id": "pay_123",
"captured_amount": 150. 00,
"currency": "EUR",
"refunded_amount": 40. 00,
"refunds": [
{
"refund_id": "rf_001",
"type": "partial    full",
"amount": 20. 00,
"reason_code": "PARTIAL_SERVICE",
"idempotency_key": "idem_a1",
"status": "PENDING    SUCCESS    FAILED",
"provider_refund_id": "psp_rf_9xz",
"created_at": "2025-11-03T12:00:00Z",
"credited_at": "2025-11-03T15:05:00Z",
"notes": "ticket #456"
}
],
"flags": {
"refund_to_source": true,
"jurisdiction": "EEA",
"kyc_tier_required": "tier2"
}
}

7) תכונות על מסילות תשלום

קלפים (ויזה/מאסטרקארד)

תמיכה מלאה/חלקית; לעתים קרובות באופן חלקי; TTR תלוי בבנק הלקוח (T + 1... T + 5 bp).
ספרי אינטרנט על הצלחה מגיעים במהירות, אבל ההרשמה לפריקה עלולה להיות מאוחרת. אנחנו מסבירים בתבנית התמיכה.

A2A/Open בנקאות/RTP

לעיתים קרובות החזר מיידי (היפוך/דחף אשראי); ספקים מסוימים תומכים רק באופן מלא או חלקי 1.
קשירה קפדנית לחשבון המקורי; יש צורך בהחזר כספי.

ארנקים אלקטרוניים

נורמלי מלא/חלקי; TTR דקות; מגבלות חלקיות ומינימום.

שוברים/מראש

בדרך כלל מדיניות ההחזר: חזרה לארנק הפנימי או הנפקה מחודשת של שובר (אם הספק יודע איך). דורש סעיפי ציות.

קריפטו

מסילות - הפכפכות; עדיף לא לשמש כשיטת ריבאונד. אם מותר: לחזור לאותה כתובת/בורסה עם תעריף ועמלות מתועדות; בדיקת AML.

8) חשבונאות, פיוס ופיננסים

פנקס: ”DR הכנסות/CR Cash” פרסומים בלכידה; על החזר כספי. החלקי משתקף באופן יחסי.
הכרה: ב-iGaming, refand מפחית את ה-GGR של התקופה המתאימה (מדיניות חשבונאית).
פיוס: פיוס יומי 'סוחר _ החזר _ ↔ provider_refund_id', סטטוסים, סכומים, שיעורי FX.
FX: לתקן את הלוגיקה של הקורסים (בזמן לכידה או בזמן החזר), היכן שניתן ליישם; להחזיק את רשת התפשטות.

9) KPIs, מטרות והתראות (בריאות החזר)

קצב החזר = "Refunded _ Tx/ Captured_Tx'.
יחס סכום החזר = "Refunded _ Sume/ Captured_Amount'.
TtR p95 = p95 ("קרדיט _ at - created_at') בשיטה.
שיעור שגיאות החזר = ”נכשל/ניסיון” (<0. 3%).
החזר למקור% 95% (היכן שזמין).
תקריות החזר כפול = 0.

התראות:
  • 'TR p95 &post גבוה יותר מ-SLO על ידי שיטת P2.
  • קוצים על ידי 'קצב החזר' בספק אחד/BIN # P1 (בדיקה תופסת/כפולה).
  • כל 'החזר כפול> 0' = P0 (הקפאה מיידית של החזרה אוטומטית).

10) פרוסות SQL

10. פרופיל ריפנד 1

sql
SELECT
DATE_TRUNC('day', r. created_at) AS d,
method_code, provider,
COUNT() FILTER (WHERE r. status='SUCCESS')  AS refunds_ok,
COUNT() FILTER (WHERE r. status='FAILED')  AS refunds_fail,
SUM(r. amount) AS refunded_amount,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (r. credited_at - r. created_at))) AS ttr_p95_sec
FROM refunds r
JOIN payments p ON p. payment_id = r. payment_id
GROUP BY 1,2,3;

10. 2 בקרת שיווי משקל עבור חלקי

sql
SELECT p. payment_id,
p. captured_amount,
SUM(r. amount) AS refunded_sum,
(p. captured_amount - SUM(r. amount)) AS refundable_left
FROM payments p
LEFT JOIN refunds r ON r. payment_id = p. payment_id AND r. status IN ('SUCCESS','PENDING')
GROUP BY 1,2
HAVING (p. captured_amount - SUM(r. amount)) < 0;

11) UX ותמיכה

תבניות ההודעות לפי שיטות: אנו מסבירים את ההשהיה האפשרית בפריקה לכרטיסים, A2A - כמעט באופן מיידי.
סטטוסים במשרד: ”Process # In Process _ Return”; הצג את תאריך הגיוס הצפוי.
סיבות (reason_code) - אדם קריא: ”שכפול מחיקה”, ”ביטול שירות”, ”פיצוי חלקי”.
שירות עצמי חלקי - בטוח רק עם גבולות וכללים ברורים.

12) סיכון וציות

התנגדות להלבנה: refand לא צריך להפוך לתפוקה לערוץ אלטרנטיבי; לבצע חריגים באישור MLRO.
סנקציות/REP: עבור החזרות שיוזמו לחשבונות ”אדומים ”/פרטים - אימות חובה.
DSAR/Resurrection - עקבות אחסון של ריפודים בתוך מדיניות שימור.
כללים מקומיים: מונחים ונוהל להחזר (למשל, תקנות הצרכן) - משתקפים במדיניות.

13) טעויות תכופות וכיצד להימנע מהן

Refand כפול בשל חוסר אידמפוטנטיות וחזרה על חוברות אינטרנט = = לאחסן אידאם מפתח/סטטוס, לבדוק את האיזון.

💡 שיווי משקל = שורה-lock/גירסה אופטימית ובדיקות קפדניות.

החזר בשיטה צולבת ללא אישור ציות מפר החזר למקור.
ערבוב חלל והחזר בדו "חות * עיוות של KPI.
אין בדיקות אוטומטיות. חורים שחורים.

14) ספרי משחק

נחשול בהספק חוזר * בדיקת כשלים/לכידה כפולים, הפעלת הכשל, מגע עם PSP.
Mass Partical-Publication (קמפיין)).
שגיאת Webhooks # מתג לסקרים, הגדלת אידמפוטנטיות TTL, דחיית החזרה אוטומטית.
Recond-to-source exception (נדיר) # הסלמה MLRO, תשלום מתועד, ו- ”comp _ אושר = אמת”.

15) מקרי מבחן (UAT/Prod)

1. החזר מלא אחרי לכידה אחת.
2. Batch partical (3 ×) acht sum locket; ואז מלא לשארית.
3. Idempotency - חזור על אותה שאילתה = 1 תוצאה.
4. Webhook-להקפיץ: 3 הודעות זהות = אחד למחיקה/אשראי.
5. פיוס: התאמה לא נכונה מלאכותית = = התראה ותיקון אוטומטי.
6. הגבלת הזכויות: הסוכן אינו יכול לעבור את הגבול החלקי.
7. חיתוך: ניסיון ריפנד מאוחר = כשל נכון וכריתת עצים.

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

[ ] מדיניות מלאה/חלקית + החזר למקור על ידי שיפוט/שיטה.
[ ] אידמפוטנטיות, נסיגות, צילומי רשת וסקרים, די-אל-קיו.
[ מודל ] דאטה עם שאריות לחזור reason_code.
[ ] לדג 'ר ופיוס אוטומטי יומי.
[ ] KPI/Dashboard: שיעור החזר, TtR, שגיאה, החזר כפול = 0.
[ זכויות ] ומטריצת יישומים, תבניות תמיכה.
[ ] מקרי מבחני UAT והתראות ברמת ייצור.

תקציר

ניהול מחדש הוא משמעת קפדנית של תהליכים: החזר למקור, אידמפוטנטיות, מודל מידע שקוף, פיוס אוטומטי ומדיניות חלקית/מלאה מובנת. עם יסודות כאלה, אתה שומר TTR נמוך, טעויות קרוב לאפס, שכפול בלתי אפשרי, וציות ופיננסים מסונכרנים עם מטרות עסקיות.

Contact

צרו קשר

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

Telegram
@Gamble_GC
התחלת אינטגרציה

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

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

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