GH GambleHub

Налоги: VAT, GST, GGR и удержания

1) Карта понятий

VAT/GST — косвенный налог на потребление. В ряде стран игровые ставки освобождены/исключены из VAT, но облагаются отдельными игорными налогами (duty/levy). Зато услуги (PSP, аффилиаты, провайдеры контента, SaaS) — часто под VAT/GST.

GGR-налог (Gaming/Gambling Duty) — налог на валовую игровую прибыль:
  • `GGR = Stakes (Turnover) − Payouts (выплаты выигрышей)`
  • Нередко есть корректировки (джекпоты, бонусы, void-ставки) — прописывайте в политике.
  • NGR — `GGR − Bonuses − Provider revenue share − Platform fees − Taxes на ставки (если применимо)` — управленческая маржа.
  • Withholding Tax (WHT) — налог у источника при трансграничных выплатах за услуги/роялти (аффилиаты, провайдеры игр, консультанты). Ставка зависит от договора об избежании двойного налогообложения (DTT) и статуса получателя (W-8/W-9/сертификаты резидентства).
  • Place of Supply / Nexus — правила, определяющие, где платить VAT/GST/GGR (локация игрока, лицензии, место оказания услуги).

2) Когда возникает VAT/GST, а когда — нет

2.1. Операции с игроком (B2C)

Во многих юрисдикциях ставки/выигрыши освобождены от VAT: вместо этого — игорный налог (GGR/turnover duty).
Бонусы и фриспины: не объект VAT, но влияют на GGR/NGR и на налоговую базу по игровому налогу (смотрите местные правила зачета бонусов).

2.2. Операции с контрагентами (B2B)

PSP/Acquirer, антифрод, KYC, хостинг, SaaS, аффилиаты — обычно облагаются VAT/GST по правилам услуг.
Трансгранично: возможен reverse charge (самообложение у получателя) и/или WHT на выплаты.
Роялти/RevShare студиям — потенциальный объект WHT (как роялти/услуги) + возможный VAT по месту получателя/поставщика.

2.3. Пограничные кейсы

DCC/конвертация, FX-спред: это не VAT на игру, а стоимость финансовой услуги (обычно без VAT или с особыми режимами) — учитывайте отдельно.
Комиссии за выводы: B2C-fee может быть объектом VAT как плата за услугу платформы.

3) Place of Supply и схемы расчета

Игровая деятельность: часто привязана к юрисдикции лицензии и/или локации игрока. Ключ — где возникает игорный налог.
Услуги B2B: место реализации — место получателя, применяется reverse charge (получатель начисляет и принимает к вычету).
B2C цифровые услуги (не игры): действует режим OSS/One-Stop Shop (ЕС) или local GST-регистрация по месту клиента.

Практика: сегментируйте потоки по стране игрока, стране контрагента, типу услуги и налоговому режиму (GGR, VAT, WHT).

4) Формулы и политики учета

4.1. GGR и налог на GGR


GGR = Σ Stakes_settled − Σ Payouts_settled
Tax_GGR = GGR × rate_GGR

Определите: включаются ли бонусы, джекпоты, аннулированные ставки в базу.

4.2. VAT/GST по услугам (пример с reverse charge)


VAT_due (supplier side) = 0 (если reverse charge)
VAT_due (receiver side) = Net × rate_VAT
VAT_recoverable = VAT_due (if eligible for deduction)

4.3. WHT (удержание у источника)


WHT = Gross_Payment × rate_WHT(DTT/ domestic)
Net_to_Partner = Gross_Payment − WHT

Храните основание ставки: договор, статья DTT, сертификаты.

4.4. NGR и «налоги в составе»


NGR = GGR − Bonuses − Provider RevShare − Platform Fees − Gaming Taxes

Зафиксируйте NGR policy и версию формулы (v1/v2) для сопоставимости периодов.

5) Бухучет и проводки (упрощенно)

Игровой налог (GGR duty) начислен:
  • Дт: Расходы по налогам (GGR)
  • Кт: Обязательства по налогам
VAT с услуг контрагентов (reverse charge):
  • Дт: Расходы по VAT (самообложение)
  • Кт: НДС к уплате
  • Дт: НДС к возмещению
  • Кт: Расходы по VAT (если есть право на вычет — взаимозачет)
Удержание WHT при выплате аффилиату/студии:
  • Дт: Расходы по маркетингу/роялти
  • Кт: Кредиторка партнера (брутто)
  • При выплате: Дт: Кредиторка партнера (брутто) → Кт: Банк (нетто), Кт: Налоги к уплате (WHT)

6) Модель данных (минимум)


ref. tax_regimes (
regime_id PK, name, type -- VAT      GST      GGR      WHT
, country, rate, basis -- GGR    Net    Gross    Service
, effective_from, effective_to, meta
)

ref. place_rules (
rule_id PK, flow -- B2C_GAME      B2B_SERVICE      B2C_SERVICE
, country_source, country_destination, place, vat_mode -- STANDARD      REVERSE_CHARGE      EXEMPT
, meta
)

finance. tax_events (
id PK, tx_id, user_id, counterparty_id, flow_type,
base_amount_reporting, tax_type, tax_rate, tax_amount_reporting,
country_source, country_destination, place_rule_id,
evidence -- geoip, KYC country, billing country, ip logs, etc.
, occurred_at, created_at, version, meta
)

finance. withholding_ledger (
id PK, partner_id, country_source, country_dest,
gross_amount, wht_rate, wht_amount, treaty_article, certificate_ref,
period, paid_at, meta
)

dw. ggr_rollup (
d, geo, product, stakes, payouts, bonuses, jackpots, ggr, ggr_tax
)

7) ETL/процессинг

1. Сегментация событий: `flow_type` (game B2C, service B2B, payouts, affiliate).
2. Присвоение режима: по `ref.place_rules` → VAT mode (standard/reverse/exempt).
3. Расчет баз и налогов: GGR, VAT/GST, WHT; логирование версии формул.
4. Док-след: хранить evidence места реализации (KYC-страна, IP, биллинг, BIN, гео PSP).
5. Агрегации: `dw.ggr_rollup`, `withholding_ledger`, `vat_subledger`.
6. Сверка: отчеты с регулятором/налоговой, акты с партнерами (gross↔net при WHT).

8) SQL-шаблоны

8.1. GGR по дням/странам

sql
SELECT
DATE(settled_at) AS d,
country_player  AS geo,
SUM(stake_amount_reporting) AS stakes,
SUM(payout_amount_reporting) AS payouts,
SUM(stake_amount_reporting) - SUM(payout_amount_reporting) AS ggr
FROM dw. game_settled
WHERE settled_at BETWEEN:from AND:to
GROUP BY 1,2;

8.2. Начисление GGR-налога

sql
INSERT INTO finance. tax_events (tx_id, flow_type, base_amount_reporting, tax_type, tax_rate, tax_amount_reporting, occurred_at, version)
SELECT
NULL, 'B2C_GAME', g. ggr, 'GGR', r. rate, g. ggr r. rate, g. d, 'ggr_v1'
FROM dw. ggr_rollup g
JOIN ref. tax_regimes r
ON r. type='GGR' AND r. country=g. geo
AND g. d BETWEEN r. effective_from AND r. effective_to;

8.3. VAT по услугам с reverse charge (B2B)

sql
SELECT s. invoice_id, s. partner_country, s. our_country,
s. net_amount_reporting AS base,
r. rate AS vat_rate,
s. net_amount_reporting r. rate AS vat_due_rc
FROM dw. supplier_invoices s
JOIN ref. place_rules p
ON p. flow='B2B_SERVICE' AND p. country_source=s. partner_country AND p. country_destination=s. our_country
JOIN ref. tax_regimes r
ON r. type='VAT' AND r. country=s. our_country
WHERE p. vat_mode='REVERSE_CHARGE'
AND s. invoice_date BETWEEN r. effective_from AND r. effective_to;

8.4. WHT-ведомость по партнерам

sql
SELECT partner_id, country_source, country_dest,
SUM(gross_amount) AS gross,
AVG(wht_rate)   AS rate_applied,
SUM(wht_amount)  AS wht_total,
SUM(gross_amount - wht_amount) AS net_paid
FROM finance. withholding_ledger
WHERE period BETWEEN:p_from AND:p_to
GROUP BY 1,2,3;

9) Дашборды и KPI

GGR, GGR-Tax по странам/продуктам; NGR после налогов и роялти.
VAT Exposure: сумма VAT по reverse/standard, доля к вычету.
WHT Map: удержания по странам/партнерам, treaty savings (экономия по DTT).
Effective Tax Rate: `(GGRTax + VAT_non_recoverable + WHT_borne) / Revenue`.
Evidence Coverage: доля транзакций с полным набором доказательств места реализации.
Variance Reports: расхождения между расчетами и поданными декларациями.

10) Алерты и пороги

Evidence gap: доля транзакций без 2+ независимых подтверждений гео > X% — P1.
Rate drift: примененная ставка ≠ справочнику (версия/период) — P1.
WHT misapplied: удержание не соответствует DTT/сертификату — P1.
GGR anomaly: скачок GGR ±3σ d/d или неверная доля бонусов в базе — расследование.
VAT non-recoverable spike: рост невозмещаемого VAT > Y% w/w.

11) Best practices (коротко)

1. Разделяйте игровые налоги (GGR/turnover) и VAT/GST по услугам: разные базы, разный отчетный контур.
2. Вводите версионирование формул и справочников ставок; не меняйте историю без `version`.
3. Храните evidence места реализации: KYC-страна, IP, billing, BIN, гео PSP.
4. Отдельный withholding-ledger с привязкой к договорам, DTT-статьям и сертификатам.
5. Для B2B-услуг применяйте reverse charge, где положено; ведите реестр входящего VAT.
6. Делайте reconciliation: расчетная база ↔ декларации ↔ платежи в бюджет/сертификаты WHT.
7. Отдельно учитывайте необлагаемые и неподлежащие вычету суммы VAT.
8. Прописывайте NGR policy (что вычитается, а что — нет) для стабильной аналитики.

12) Чек-лист внедрения

  • Справочники `tax_regimes`, `place_rules` с датами действия и версиями.
  • Витрины `ggr_rollup`, `vat_subledger`, `withholding_ledger`.
  • Логика reverse charge и evidence enrichment (KYC/IP/BIN/PSP GEO).
  • Автоматическое формирование tax_events и отчетов по периодам.
  • Контуры сверки (variance) и алерты (evidence, ставки, WHT).
  • Док-процедуры: сбор сертификатов резидентства, W-8/W-9, DTT-позиции.
  • Политики NGR/GGR и документация исключений (джекпоты/бонусы).

13) FAQ

Q: Если ставки освобождены от VAT, значит ли это, что VAT нет вообще?
A: Нет. Услуги (PSP, аффилиаты, SaaS) и часть B2C-платных опций остаются в зоне VAT/GST.

Q: Как не «переплатить» WHT?
A: Подготовьте DTT-пакет (сертификат резидентства, формы W-8/W-9, апостили), фиксируйте основание ставки и срок действия.

Q: Бонусы уменьшают GGR-базу?
A: Зависит от юрисдикции. Нужна политика бонусов и привязка к нормам регулятора.

Q: Какой курс применять для налоговой базы?
A: Исторический на дату признания базы (settled_at для GGR; дата счета/услуги — для VAT). Для отчетности — фиксируйте `fx_rate_at_tax_point`.

Резюме

Налоги в iGaming — это три разных мира: игровые налоги (GGR/turnover), косвенные налоги (VAT/GST) и удержания у источника (WHT). Четкая сегментация потоков, версии ставок и формул, отдельные леджеры для VAT/WHT, доказательная база места реализации и автоматизированная сверка превращают «минное поле» в управляемый процесс — без сюрпризов для P&L и кэш-флоу.

Contact

Свяжитесь с нами

Обращайтесь по любым вопросам или за поддержкой.Мы всегда готовы помочь!

Telegram
@Gamble_GC
Начать интеграцию

Email — обязателен. Telegram или WhatsApp — по желанию.

Ваше имя необязательно
Email необязательно
Тема необязательно
Сообщение необязательно
Telegram необязательно
@
Если укажете Telegram — мы ответим и там, в дополнение к Email.
WhatsApp необязательно
Формат: +код страны и номер (например, +380XXXXXXXXX).

Нажимая кнопку, вы соглашаетесь на обработку данных.