GH GambleHub

Орнотуу циклдери жана өчүрүү

1) Түшүнүк базасы

Settlement - PSP/Acquirer менен соодагердин (оператордун) ортосундагы эсептешүү, анда ийгиликтүү алынган транзакциялар боюнча акча соодагердин эсебине которулат.
Cut-off - белгилүү бир эсептешүү циклине кирген операциялардын күнүмдүк "кесилиши" (адатта провайдердин таймзонунда белгиленген убакыт).
T + N - акча каражаттарын таркатуунун кечиктирилишинин типтүү нотациясы: T - өчүрүү күнү, N - иш жүзүндө чегерилгенге чейинки жумуш күндөрүнүн саны.

Мисалы:
  • Карталар (Visa/Mastercard): көбүнчө T + 2/T + 3 banking days, cut-off 23:00 UTC (болжол менен).
  • A2A/Open Banking: T + 0 T + 1 чейин.
  • SEPA Credit Transfer: T+1/T+2 (Instant — T+0).
  • ACH (US): T+2/T+3; Same Day ACH — T+0/T+1.
  • RTP (US): T + 0, бирок отчеттор боюнча мүмкүн.
  • крипто: чындыгында T + 0 тармак боюнча, бирок PSP өз акча терезелерди колдоно алат (T + 0/1).

2) Cut-off кантип иштейт жана ага эмне кирет

1. Провайдер чогултуу терезесин белгилейт (мисалы, 00: 00-23: 00 UTC).
2. Бул терезедеги бардык settled/captured транзакциялар пакетке (batch) кирет.
3. пакети кайра чогултулган, Чарджбек, gross жана net funding эсептөө үчүн түзөтүү.
4. Cut-off башталгандан кийин settlement file түзүлөт жана T + N таймери кабыл алынганга чейин башталат.

Маанилүү: авторизация жок capture пакетке кирбейт. Жокко чыгарылган тыянактар да жок.

3) эсептөө түрлөрү: gross vs net, камдар жана комиссиялар

Gross settlement - capture жалпы суммасы которулат (минус комиссияларды өзүнчө эсептен чыгаруу).
Net settlement - провайдер fees, chargebacks, refunds, rolling reserve кармап жана таза amount тизмеси.
Rolling reserve - тобокелдикти жабуу үчүн N күндүк жүгүртүүнүн% кармап туруу (мисалы, 180 күнгө 10%).
Negative carry-over - эгерде "таза" бир күндө минус болуп кетсе, дефицит кийинкиге жылдырылат жана кийинки циклдер менен кайтарылат.

Сунуш: эки тегиздиктин тең чечмелөөсүн сактоо - operational gross (транзакциялар боюнча) жана funding net (провайдердин файлдары боюнча).

4) Таймзондор, жергиликтүү дем алыш жана DST

Cut-off сиздин айырмаланышы мүмкүн убакыт берүүчү аныкталат.
DST эске алуу (жайкы убакытка өтүү) - тилкелер жергиликтүү убакытка салыштырмалуу ± 1 саатка жылышы мүмкүн.
Банк-алуучунун юрисдикциясындагы майрамдар/дем алыш күндөр N + T + N таасир этет (мисалы, T + 2 banking days майрамдардын айланасында T + 4 айланат).
Практика: UTC бардык техникалык убактысын нормалдаштырып, ошол эле учурда 'provider _ tz _ cutoff _ at' жана 'local _ tz _ posted _ at' сактаңыз.

5) Settlement календары (funding calendar) жана SLA

Бир чейрек үчүн календарды түзүңүз:
  • ар бир ыкмасы/PSP үчүн өчүрүү убактысы жана TZ,
  • стандарттык T + N жана өзгөчөлүктөр (майрам),
  • күтүлгөн суммалар (болжолдоолор),
  • SLA алуу: мисалы, "12:00 Europe/Kyiv T + 2 күнү".

Ар кандай четтөөлөр SLA → alert жана Ops/Finance боюнча билет.

6) Net Deposits жана корутундулары менен байланыш

ND (таза салымдар) белгиленген транзакциялар боюнча эсептелет (байланыштуу макаланы караңыз).
Корутундулар (withdrawals) депозиттер боюнча PSP каржылоого катышпайт, бирок соода кассасына таасир этет.
Ликвиддүүлүктү пландаштыруу: сеттлмент боюнча inflow минус төлөмдөр/салыктар/операциялык чыгымдар боюнча outflow.

7) Салыштыруу (reconciliation) жана провайдерлердин артефакттары

Ар бир партия үчүн минималдуу комплект (batch):
  • 'batch _ id/ settlement_id', датасы tz провайдери,
  • суммы по типам: `captured_deposits`, `refunds`, `chargeback_debits`, `chargeback_credits`, `fees`, `reserve_delta`, `net_funding`,
  • ыкмалары/соодагер-эсептери боюнча чечмелөө ('MID', 'descriptor', 'MCC'),
  • транзакциялардын референттери ('provider _ tx _ id', 'rrn', 'arn' - эгерде карталар),
  • файл (лар): CSV/XML/JSON + адам окуй турган statement (PDF/HTML).
Салыштыруу эки багытта барат:

1. Транзакциялардан файлдарга чейин (биз ойлогонубуздун баары файлга кирип калдыбы?)

2. Файлдардан транзакцияларга (файлдагы нерселердин баары биздин витринада барбы? статусу дал келет?)

8) Төлөө рельстери боюнча өзгөчөлүгү (жалпы түрдө)

Карталар: көп сценарийлер presentment delay; кеч болушу мүмкүн 'chargeback' (учурда 120-540 күнгө чейин); interchange & scheme fees файлдарда пайда болот, ND чыгарылбайт.
SEPA/ACH: батчи банк терезелерине көз каранды; жокко чыгаруу/кайтаруу өз коддору бар; Same Day параметрлери - өзүнчө кесүү.
Open Banking/A2A: T + 0/1, бирок файлдар post-factum болушу мүмкүн; дал үчүн катуу RPP/уникалдуу ID керек.
RTP/Instant: акча тез келет, бирок отчеттук файл - тартиби боюнча.
Крипто: Anchain-settlement заматта, бирок провайдер кылат 'payout windows'; сактагыла 'fx _ at _ settle'.

9) Эсепке алуу, өткөрүү жана отчеттуулук (FI/Accounting)

9. 1. Аккруал vs кэш ыкмасы

Башкаруучулук отчеттуулук үчүн көп учурда аккредитив колдонулат: "settled _ at" учурундагы кирешени/кыймылды тааныйбыз.
Казыналык/ДДС үчүн - кэш-ыкма: "funded _ at".

9. 2. Типтүү зымдар (жөнөкөйлөштүрүлгөн)

Качан 'DEPOSIT _ CAPTURED':
  • Dt: PSP менен эсептешүү акча каражаттары (AR: PSP)
  • Кт: Оюнчу алдындагы милдеттенмелер (капчык/оюнчу балансы)
funding (net) келгенде:
  • Дт: Банк (соода кассасы)
  • Кт: PSP менен эсептешүүдө акча каражаттары
  • Dt: Чыгымдар (PSP fees), Dt/Ct: камдар (өзгөргөн болсо)

Tracking үчүн 'transaction _ id → batch_id → funding_id' байламтасын сактаңыз.

10) Тобокелдик-менеджмент жана тобокелдиктер

Missed file: X чейин эч кандай settlement file: YY - P1.
Funding delay: T + N мөөнөтү, акча жок - P1.
Delta thresholds: айырмачылык 'our _ gross' vs 'file _ gross'> 0. 5% - P2; 'fees' диапазонунан тышкары - P2.
Negative carry-over: терс таза пакеттердин сериясы - тергөө.
Holiday impact: календарды эске алуу менен автоматтык божомол; эгерде факт <80% прогноз - тикет.

11) Маалыматтар модели (жөнөкөйлөштүрүлгөн)


finance. payment_transactions (
id, user_id, method, provider, mid, mcc,
type, status, amount_original, currency_original,
amount_reporting, reporting_currency, fx_rate_at_settle,
authorized_at, captured_at, settled_at,
provider_tx_id, arn, rrn, meta
)

finance. settlement_batches (
batch_id, provider, mid, method,
provider_cutoff_at, provider_tz,
period_start_at, period_end_at,
gross_captured, refunds, cb_debits, cb_credits,
fees, reserve_delta, net_funding_expected,
file_name, file_hash, file_type, meta
)

finance. funding_receipts (
funding_id, provider, bank_account,
received_at, value_date,
currency, amount_received,
batch_id, statement_ref, meta
)

-- Binding showcase:
finance. recon_links (
id, transaction_id, batch_id, funding_id, link_type, created_at
)

12) SQL үлгүлөрү мисалдар

12. 1. Cut-off боюнча "кесип" каттоо

sql
INSERT INTO finance. settlement_batches (
batch_id, provider, mid, method,
provider_cutoff_at, provider_tz,
period_start_at, period_end_at,
gross_captured, refunds, cb_debits, cb_credits,
fees, reserve_delta, net_funding_expected,
file_name, file_hash, file_type, meta
)
VALUES (:batch_id,:provider,:mid,:method,
:cutoff_at,:tz,
:start_at,:end_at,
:gross,:refunds,:cb_deb,:cb_cr,
:fees,:reserve_delta,:net_expected,
:file_name,:file_hash,:file_type,:meta::jsonb);

12. 2. "Транзакциядан файлга" салыштыруу

sql
WITH tx AS (
SELECT provider, mid, method,
SUM(CASE WHEN type='DEPOSIT' AND status IN ('CAPTURED','SETTLED') THEN amount_reporting ELSE 0 END) AS gross,
SUM(CASE WHEN type='REFUND' AND status='SETTLED' THEN amount_reporting ELSE 0 END) AS refunds,
SUM(CASE WHEN type='CHARGEBACK_DEBIT' AND status='SETTLED' THEN amount_reporting ELSE 0 END) AS cb_deb,
SUM(CASE WHEN type='CHARGEBACK_CREDIT' AND status='SETTLED' THEN amount_reporting ELSE 0 END) AS cb_cr
FROM finance. payment_transactions
WHERE settled_at >=:start_at AND settled_at <:end_at
GROUP BY 1,2,3
)
SELECT b. batch_id, b. provider, b. mid, b. method,
tx. gross AS our_gross, b. gross_captured AS file_gross,
tx. refunds AS our_refunds, b. refunds AS file_refunds,
tx. cb_deb AS our_cb_deb, b. cb_debits AS file_cb_deb,
tx. cb_cr AS our_cb_cr, b. cb_credits AS file_cb_cr
FROM finance. settlement_batches b
LEFT JOIN tx
ON tx. provider=b. provider AND tx. mid=b. mid AND tx. method=b. method
WHERE b. provider_cutoff_at BETWEEN:cutoff_from AND:cutoff_to;

12. 3. Кирешелердин болжолу (cash-flow T + N)

sql
SELECT provider, mid, method,
DATE(provider_cutoff_at) AS t_date,
net_funding_expected,
CASE
WHEN EXTRACT (DOW FROM provider_cutoff_at)::int IN (5,6) THEN provider_cutoff_at + INTERVAL '3day' -- conditional example
ELSE provider_cutoff_at + INTERVAL '2 day'
END AS expected_funding_at
FROM finance. settlement_batches
WHERE provider_cutoff_at BETWEEN:from AND:to;

13) Процесстер жана SLO

SLO 1: импорт орнотулган файлдар - T + 0, чейин 08:00 Europe/Kyiv.
SLO 2: баштапкы салыштыруу - 09:00 чейин, айырмачылыктар боюнча алерталар> 0. 5%.
SLO 3: Cash-flow божомолун жаңыртуу - 10:00 чейин.
SLO 4: Күндүн жабылышы - DWHде ачылган бардык акча чогултуу матчтары.

14) Edge-cases жана аларды кантип иштетүү керек

Late presentment: транзакция кийинки батч кирди - "булак фактысын" сактаңыз ('presented _ in _ batch _ id').
Partial capture: бир уруксаты үчүн бир нече capture - туура batch топтоо.
Multi-MID: бир провайдер, гео/бренддер боюнча ар кандай MIDs - бир партияда аралаштырбоо.
Reprocessing: файлдын бир бөлүгү менен - 'batch _ revision' версиясы жана толук кайра салыштыруу.
FX-ат чабыш: курстар - боюнча 'settled _ at'; башка валютада funding - 'fx _ at _ funding' жана дельтаны ачыңыз.

15) Dashbord жана KPI

Funding ETA: күтүлгөн күнү/кабыл алуу убактысы vs факт.
Hit-rate SLA: өз убагында келген файлдардын үлүшү.
Delta gross/net боюнча провайдерлер, ыкмалар, MIDs.
Fees % of volume, Reserve balance, Negative carry-over streak.
Holiday impact: алдын ала vs чындык жума майрамдар менен.

16) Best practices (кыска)

1. UTC убакытты нормалдаштыруу, бирок provider_tz өчүрүү.
2. Split operational gross жана funding net; ND жана каражат чаташтырбоо керек.
3. Банктар боюнча алдын ала киргизилген майрамдар менен funding calendar киргизиңиз.
4. SLA/дельтага импортту жана settlement файлдарын + тобокелдиктерди текшерүүнү автоматташтыруу.
5. Партиялардын версияларын ишке ашыруу ('batch _ revision') жана детерминацияланган reprocess.
6. Киргизиңиз single source of truth: linkler 'transaction, batch, funding'.
7. Карта үчүн ARN/RRN жана эквайринг талааларын сактаңыз - талаш-тартыштар үчүн маанилүү.
8. Дем алыш/майрамдарды, резервдерди жана комиссияларды эске алуу менен акча агымын алдын ала айтыңыз.

17) Киргизүүнүн чек-баракчалары

Маалыматтар жана схемалар

  • Таблицы `payment_transactions`, `settlement_batches`, `funding_receipts`, `recon_links`.
  • Таймзон талаалары: UTC + provider_tz.
  • Поля FX: `fx_rate_at_settle`, `fx_at_funding`.

Импорт жана валидация

  • Парсеры CSV/XML/JSON + хэш-файлдар.
  • Сумманы/валютаны/күндү валидациялоо; match по `provider_tx_id/ARN`.
  • Hendlers "late presentment", "partial capture", "reversal".

Операциялар жана алерталар

  • SLA-монитор cut-off, missed files, funding delays.
  • Delta-босого алерталар (gross, fees, net).
  • holiday impact жана negative carry-over боюнча отчет.

18) FAQ

Q: Эмне үчүн T + 2 T + 4 болуп калды?
A: Банк-корреспондентте же банк-алуучуда дем алыш/майрам болду; см. funding calendar.

Q: Net файлында биздин net эсептөөсүнөн азыраак. Эмне көрүү керек?
A: текшерүү fees, reserve_delta, кеч refund/chargeback, жана туура курстары.

Q: Кантип крипто эске алуу керек?
A: fiat барабар боюнча 'settled _ at'; funding USDT/fiat келе алат - өзүнчө сактагыла 'fx _ at _ funding'.

Q: Бардык провайдерлер үчүн бир жалпы өчүрүү мүмкүнбү?
A: Жок, ар бир PSP өзүнүн tz/саат. Алардын кесилиштеринин үстүнө бириктирүүчү витринаны жасаңыз.

Резюме

Орнотуу циклдери жана кесүү - бул акча логистикасынын "скелети". T + N, таймзондорду, майрамдарды, резервдерди жана комиссияларды туура эсепке алуу төмөнкүлөргө мүмкүндүк берет:
  • провайдерлерди так салыштырып,
  • ликвиддүүлүктү болжолдоо жана төлөмдөрдү жабуу,
  • SLA сактоо жана операциялык тобокелдиктерди кыскартуу,
  • каржы жана комплаенс менен бир тилде сүйлөйм.

Бирдиктүү funding календарын, катуу маалымат моделин жана автоматташтырылган текшерүүнү киргизүү менен сиз акча агымын алдын ала айтууга жана башкарууга болот.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.