Automação de pagamentos e controle de limites
Texto completo do artigo
1) Por que automatizar pagamentos
Velocidade e previsibilidade: os jogadores estão à espera de cachês rápidos e transparentes.
Risco e complacência: RG/AML/sanções, velocity e limites marca/jogador/canal.
Escala: picos pós-torneios e programas «quentes» - dezenas de milhares de pedidos.
Custo: otimização de comissões e saldos do Tesouro PSP/contas/redes.
O objetivo-chave é o pagamento único, verificável e controlado em qualquer falha.
2) Modelo de rolo payout-núcleo
Payout Orquestrator - Máquina de estágio e sagas: aceita inscrições, verifica limites e regras, roda, retraita e registra resultados.
Risk & Compliance - RG/AML/KYT, screening sunk, «quatro olhos».
Treasury - reservas por canal, gerenciamento de resíduos, hedging.
Wallet/Ledger é a fonte da verdade do equilíbrio; débito/compensação apenas através dele.
PSP/Banco/Castodi/Cripto Processador é o artista final.
3) Flow de referência de pagamento (state machine)
1. request → pedido de frente/CRM/API.
2. precheck → RG/AML: auto-exclusão/limite de perda/tempo, malk-folhas/RER, KYT (para criptos/carteiras), status KYC.
3. limits → verificação de velocity e limites: per player/brand/region/method (diárias/semanais/mensais).
4. deduct → idumpotente 'wallet. debit` (или `hold`→`commit`) с `X-Idempotency-Key`.
5. rota → escolha do canal/merchant/rede (regras + custo + conversão + disponibilidade).
6. submit → enviar para PSP/banco/castody (mTLS + assinaturas).
7. await _ masslement → a espera de confirmação ('massled '/' failed') por webhoot ou verificação pull.
8. notify → eventos no pneu/BI, jogador - status/ETA.
9. recôncile → relatório de relatório PSP/banco/cadeia com Ledger.
10. compensate → em 'failed' - retorno para Ledger (Idumpotente), reaproximação do canal, escalação.
Invariantes:- O equilíbrio só muda através do Ledger.
- «Pagamentos perdidos/duplicados» = 0 - Fornecido por idumpotência e dedução.
- Todas as transições são logadas e traçadas de forma atômica ('trace _ id', 'payout _ id').
4) Limites e velocity: como contar corretamente
4. 1 Tipos de limite
Regulatório/RG: limites diurnos/semanais de conclusão, auto-exclusão, refrigeração.
Frod/velocity: soma/número de transações, taxa de solicitação, mudança de adereços, dispositivos/ASN/geo.
Bilheteria: limites de canal/merchant/conta/rede, sobras do Tesouro.
Operacionais: liminares de «revezamento manual» e «quatro olhos» (grandes quantias VIP).
4. 2 Armazenamento e implementação
Contadores distribuídos (Redis + TTL + Lua/atomic) nas janelas 1h/24h/7d.
Projeções em OLAP para regras avançadas (janelas deslizantes, pattern).
Idempotação dos contadores: Aumento somente quando a solicitação for transferida para 'submitted'.
Explainability: Cada falha tem um código de causa e «qual limite funcionou».
5) Orquestração de canais (PSP/bancos/cripto)
5. 1 Routing
Regras sobre geo, moeda, soma, velocidade, custo, risco, disponibilidade, campos SLO.
Cascatas: PSP1→PSP2 na falha; para a cripto, uma rede de A→B.
A/B e bandit abordagem para otimizar a conversão e o preço.
5. 2 Características específicas do canal
Cartões/bancos: Máquinas estatizadas 'submitted→processing→settled', devoluções/reversões de esquema (SEPA/SWIFT).
E-wallets - limites instantâneos, mas rigorosos e screening de sunk.
Cripto: finalidade on-chain (N confirmações), endereço KYT, Travel Rule entre VASP, lista branca de endereços, MRS/multisig, gerenciamento de gás.
6) Segurança e Complacência
mTLS + OAuth2/assinaturas em todos os S2S, chaves per brand/region, tocos de curta duração e atrelados ao canal.
CUS/CUT/sunk screening para 'submit'; para o cripto é o endereço de risco/tx.
RBAC/ABAC e «quatro olhos» para ações manuais/limites.
Auditoria WORM: registros imutáveis de alterações de limites/regras/liminares e intervenções manuais.
PII/residência: dados e logs - por região, criptografia at-rest/in-transit, RLS.
7) Idempotidade e sagas (caminhos de dinheiro)
Cada gravação carrega 'X-Idempotency-Key'; a repetição → o mesmo resultado (200 com o antigo body).
Сага `deduct→submit→settled`:- se 'submit' caiu - compensação ('wallet. release/credit`).
- se 'massled' não veio - retrai/reaproximação, o deduto é 'payout _ id'.
- Nenhuma edição manual dos balanços - apenas os eventos compensadores.
8) Contratos API (fatias de referência)
Criar candidatura
POST /v1/payouts
Headers: X-Idempotency-Key: po_001, X-Trace-Id: tr_a1b2
{
"player_id":"p_123",  "amount":{"amount":250. 00,"currency":"EUR"},  "method":"sepa",  "destination":{"iban":"DE89..."},  "metadata":{"brand_id":"A","region":"EU"}
}
→ 202 {"payout_id":"po_001","status":"REQUESTED","eta":"2025-10-23T18:00:00Z"}Webhook de PSP/banco/castody
POST /webhooks/payouts
X-Signature: sha256=...
{
"event_id":"uuid",  "payout_id":"po_001",  "psp_ref":"psp_77",  "status":"SETTLED",  "occurred_at":"2025-10-23T16:21:05Z"
}Levantamento hold/compensação
POST /v1/payouts/po_001/compensate
Headers: X-Idempotency-Key: po_001_comp
→ 200 {"status":"COMPENSATED"}9) Observabilidade e SLO
SLO (orientações):- `payout. request→submit 'p95 ≤ 120-300 ms (caminho interno),' submit→settled 'p95: cartões/ewallet ≤ 5-30 min, bancos SEPA ≤ T + 0/T + 1, kripto ≤ 10 min (rede), «pagamentos perdidos/duplicados» = 0.
- latency p50/p95/p99 por estágio, error-rate (negócios/4xx/5xx), retry storms, queue/DLQ lag, sucess-rate por canal, costa per sucess, rejeição por código PSP/bancos, limite de execução (RG/AML/velocidade).
- Tracing: OpenTelemetry (edge→limits→wallet→router→PSP), 'trace _ id' em webhooks.
- Alerts: breach SLO, crescimento de 'IDEMPOTENCY _ MISMATCH', salto de 'missing _ platford' no cruzamento, queda de sucess-rate em um determinado canal/geo.
10) Tesouro e sobras
Reservas por canais/merchantes/redes, revalidação automática.
Políticas de liminares: mínimos e máximas nas contas/carteiras, «novos pagamentos a pagar» quando subfinanciados.
Hedge moedas/criptos, contabiliza comissões e taxas de câmbio.
Vitrines financeiras, plano-facto, custo de saída por canal, aging pagamentos pendentes.
11) Reconciliação (confecção)
Relatórios diários PSP/bancos/castody/correntes → normalização → comparação com o registro 'payouts' e registros de Ledger.
Категории: `match`, `timing`, `missing_psp`, `missing_platform`, `amount_mismatch`.
Regras auto para 'timing', tíquetes para 'mismatch', alertas para liminares.
Para cripto - mapeamento por 'txid/network/confirmações'.
12) Práticas de caos e DR
Queda do PSP/banco: cascata para alternativa, modo 'pause new payouts' para o canal.
Atrasos de webhooks: estatais de pull periódico, deadup por 'event _ id'.
Outage regional: ativo passivo/ativo-ativo (RPO ≤ 5 min, RTO ≤ 30 min).
Gás-espinhos/reorgues (kripto): fee dinâmico, comprovação extra, pagamentos de baixa prioridade adiados.
13) Folhas de cheque
Plataforma/operadora
- Idempotidade em 'wallet. debit/credit/compensate`, `X-Idempotency-Key` везде.
- Velocity/RG/AML/KYT/sunk screening a 'submit'.
- Routing e cascatas de canais, chaves/certificados per brand/region.
- Auditoria WORM de limites/regras/manuais, «quatro olhos» para liminares.
- Dasbords SLO e alertas, OpenTelemetry, DLQ para webhooks.
- Cruzamento diário T + 1, vitrine mismatch, escalação.
- Liminares do Tesouro e auto-revalance; stop-moda ('no new payouts').
- DR./xaoc-exercício: queda do PSP/banco/rede, atrasos/duplicações de webhooks.
Provedor/PSP/banco/castody
- Webhooks assinados (HMAC/EdDSA) + timestamp/nonte, garantia de reaproveitamento até 2xx.
- Códigos normalizados de causa de falha, relatórios T + 1, integridade de arquivos (hesh/PGP).
- As APIs estatutárias disponíveis para verificações pull.
14) Anti-pattern (bandeiras vermelhas)
Débito/crédito do balanço do webhoop sem comando explícito no Ledger.
Falta de idempotidade → duplo cancelamento/compensação.
Chaves compartilhadas/certificados para várias marcas/regiões.
Os limites Velocity são considerados «por solicitação» e não por envios confirmados.
Editais manuais de pagamentos/balanços em banco de dados.
Não há DLQ/Dedução para webhoops → estatais «dobradas».
Falta de T + 1 de cruzamento; Compatíveis Excel manuais.
Conclusões cripto sem CUT/lista branca/confirmação multifacetada.
15) Resultado
A automação dos pagamentos é uma orquestração de dinheiro e risco: limites rígidos e velocity, comandos de dinheiro idumpotente, roteamento inteligente de canais, complicações «padrão», observabilidade e acréscimo diário. Essa linha de montagem de payout paga rápido e uma vez, resistente a falhas e picos, transparente para o jogador, regulador e relatório financeiro - ao mesmo tempo que controla o custo e os riscos do Tesouro.
