Підтримка POLi, PayID, банківського переказу та AUD

Вступ

Австралійські гравці віддають перевагу локальним платіжним методам: миттєві банківські перекази через POLi, PayID/Osko в рамках NPP і традиційний банк-трансфер, все в AUD. Для оператора важливо забезпечити безшовну інтеграцію, миттєву обробку, відповідність регуляціям і надійну архітектуру.

1. Огляд платіжних методів

1. POLi Payments

OAuth-авторизація користувача через інтерфейс банку, без карт і додатково SMS-кодів.

Миттєве зарахування коштів, підходить для депозитів.

2. PayID/Osko (NPP)

Переклад за ідентифікатором (email, телефон), мережевий стандарт NPP забезпечує розрахунок протягом секунд.

Вимагає інтеграції з PSP, що підтримує Australia's New Payments Platform.

3. Банківський переказ (BPAY/прямий transfer)

BPAY: генерація Biller Code і Customer Reference, оплату проводить користувач в інтернет-банку; зарахування до 24 год.

Прямий AUD-transfer: SWIFT/IBAN переклад, підходять для великих сум, час обробки 1-3 робочих дні.

4. Валюта AUD

Всі операції в AUD: корретне відображення, зберігання в базі, округлення до центів ('DECIMAL (12,2)').

2. Архітектура інтеграції

mermaid
flowchart LR
Player -->|initiate deposit| API-Gateway
API-Gateway --> PaymentService
PaymentService -->|init POLi| POLi-API
PaymentService -->|init PayID| PSP-API
PaymentService -->|generate BPAY| BillingService
POLi-API -->|webhook| PaymentService
PSP-API -->|webhook| PaymentService
BillingService -->|polling / webhook| PaymentService
PaymentService --> TransactionService
TransactionService --> AuditDB

API-Gateway: валідація, rate-limiting, маршрутизація до PaymentService.

PaymentService: уніфікована точка для всіх AUD-методів, зберігає'paymentId','method','status','metadata'.

BillingService: модуль для BPAY-рахунків і polling статусів.

TransactionService: ACID-транзакції оновлюють баланс і логують операції.

AuditDB: незмінне сховище логів запитів і відповідей.

3. Реалізація POLi

1. Ініціація:
http
POST /api/payments/poli/init
{
"amount": 100. 00,
"currency": "AUD",
"returnUrl": "https: //casino. com/poli/callback"
}

→ `{ paymentId, poliUrl }`

2. Перенаправлення гравця:
  • Гравець перенаправляється на «poliUrl», авторизується в банку, підтверджує платіж.
3. Webhook-обробка:
http
POST /api/payments/poli/callback
Headers: X-Signature
Body: { paymentId, status, bankTransactionId }

Перевірка HMAC по'X-Signature'.

Оновлення «status»: `pending` → `approved`/`declined`.

При'approved'- запуск'TransactionService. credit(playerId, amount)`.

4. Реалізація PayID/Osko

1. Ініціація:
http
POST /api/payments/payid/init
{
"payId": "user@example. com",
"amount": 250. 00,
"currency": "AUD",
«Дескріпшен»: "Casino deposit"
}

→ `{ paymentId, transactionRef }`

2. Webhook-повідомлення:
  • PSP шлёт `POST /api/payments/payid/callback { paymentId, status }`.

Аналогічна перевірка підпису.

Статуси: `pending`, `settled`, `failed`.

5. Реалізація BPAY та банківського переказу

1. Генерація рахунку BPAY:
http
POST /api/payments/bpay/generate
{ "amount": 500. 00 }

→ `{ billerCode, customerRef, expiryDate }`

2. Polling статусів:
  • `GET /api/payments/bpay/status? billerCode = & customerRef ='кожні 15 хвилин.
  • При `PAID` — update `approved`, credit funds.
3. Прямий банківський переказ:
  • Відображення реквізитів рахунку (SWIFT, BSB, Account) в UI.
  • Операції звіряються вручну або автоматично по incoming bank statements через SFTP.

6. Локалізація та UX

Форматування:
js
new Intl. NumberFormat('en-AU', { style: 'currency', currency: 'AUD' }). format(1000)
// "A$1,000. 00"
UI:
  • Вибір методу в депозиті: іконки POLi, PayID, BPAY, Bank Transfer.
  • Опис термінів і комісій під кожним методом.
  • Верифікація перед першим введенням: KYC/AML.

7. Безпека і відмовостійкість

TLS 1. 2 + для всіх API і Webhook.

Circuit Breaker (Resilience4j) для PSP-викликів, відключення методу при error-rate> 5%.

Retry-logic з експоненціальним backoff при тимчасових збоях.

Audit Trail: всі webhook-події і транзакції зберігаються 7 років мінімум за регуляціями.

8. Тестування

Sandbox-режими:
  • POLi: `poli. sandbox. domain'з фейковими токенами'test _ user'.
  • PSP: тестові креди у провайдерів PayID.
  • E2E-тести (Cypress): сценарії: ініціювати → емулювати callback → перевірити баланс.
  • Load Testing (k6): імітація 1000 concurrent депозитів методом POLi і PayID.

Висновок

Інтеграція POLi, PayID/Osko і традиційних банківських переказів в AUD вимагає єдиного PaymentService, надійної обробки webhook, локалізації форматів і відмовостійкої архітектури з circuit breaker і retry-механізмами. Такий підхід забезпечує швидкі депозити, високий CR і відповідність австралійським вимогам.

Caswino Promo