API do Bingo de Rede
REST sobre HTTPS, autenticação por token do operador, valores sempre em centavos.
O saldo oficial do jogador é o nosso. A plataforma do operador deve espelhar o valor consultado em /players/:id/balance.
Todos os valores monetários são inteiros em centavos (R$ 5,00 = 500).
Jogadores
/api/public/v1/playersCria o jogador na nossa base e devolve o id usado nas outras chamadas.
Requisição
{
"email": "jogador@exemplo.com",
"name": "Maria Souza",
"point_id": "uuid-do-ponto",
"affiliate_code": "ABC123"
}Resposta
{ "ok": true, "player_id": "uuid", "email": "jogador@exemplo.com" }/api/public/v1/players/:idConsulta o cadastro do jogador.
Resposta
{ "ok": true, "player": { "id": "uuid", "name": "Maria Souza" } }/api/public/v1/players/:id/balanceSaldo atual em centavos — fonte da verdade.
Resposta
{ "ok": true, "balance_cents": 25000 }Cartelas
/api/public/v1/cards/buyCompra cartelas na rodada, aplicando os pacotes bônus da região. Idempotente pela chave enviada.
Requisição
{
"player_id": "uuid",
"round_id": "uuid",
"qty": 10,
"settled_by_operator": true,
"idempotency_key": "pedido-9931"
}Resposta
{ "ok": true, "mode": "operator_settled", "result": { "cards_total": 12, "bonus_qty": 2 } }/api/public/v1/cards?round_id=&player_id=Lista as cartelas de uma rodada ou de um jogador.
Resposta
{ "ok": true, "cards": [{ "id": "uuid", "serial": "R7-000123", "is_bonus": false }] }/api/public/v1/cards/serial/:serialConsulta a cartela pelo serial e os prêmios ligados a ela.
Resposta
{ "ok": true, "card": { "serial": "R7-000123" }, "prizes": [] }Rodadas
/api/public/v1/rounds/schedule?date=2026-07-21&room_id=Programação do dia, por sala.
Resposta
{ "ok": true, "date": "2026-07-21", "rounds": [{ "id": "uuid", "scheduled_at": "…", "card_price": 500 }] }/api/public/v1/rounds/:id/liveEstado ao vivo: bolas sorteadas, bola atual e status.
Resposta
{ "ok": true, "state": { "status": "drawing", "balls": [12, 44], "current_ball": 44 } }/api/public/v1/rounds/:id/resultsResultado final com ganhadores e valores.
Resposta
{ "ok": true, "winners": [{ "prize_type": "bingo", "amount": 150000 }] }/api/public/v1/rounds/:id/reconcile?state_hash=&ball_count=Reconciliação do estado: status, fita/sequence, ganhadores e hashes para o cliente corrigir divergência.
Resposta
{ "ok": true, "hashes": { "state_hash": "sha256…", "tape_hash": "sha256…", "ball_count": 24 }, "verdict": { "in_sync": false, "divergences": ["tape_behind"] } }/api/public/v1/rounds/:id/fairnessVerificação provably fair: hash publicado antes, semente revelada depois.
Resposta
{ "ok": true, "seed_hash": "sha256…", "server_seed": "…", "balls": [12, 44], "verified": true }Prêmios
/api/public/v1/prizes/winners?round_id=Ganhadores da rodada.
Resposta
{ "ok": true, "winners": [{ "card_serial": "R7-000123", "amount": 150000 }] }/api/public/v1/prizes/payouts?status=pendingPagamentos de prêmio e seus status.
Resposta
{ "ok": true, "payouts": [{ "id": "uuid", "status": "pending", "mode": "pix_preapproved" }] }/api/public/v1/prizes/payouts/:id/confirmConfirma a retirada no ponto validando o serial da cartela.
Requisição
{ "card_serial": "R7-000123" }Resposta
{ "ok": true, "status": "paid" }/api/public/v1/prizes/payouts/:id/sendDispara o PIX de um pagamento aprovado.
Resposta
{ "ok": true, "status": "sent" }Relatórios
/api/public/v1/reports/sales?from=&to=Vendas por período.
Resposta
{ "ok": true, "rows": [{ "date": "2026-07-20", "cards": 480, "revenue_cents": 240000 }] }/api/public/v1/reports/balances?from=&to=Entradas, saídas e saldos por período.
Resposta
{ "ok": true, "rows": [{ "type": "prize", "total_cents": -150000 }] }Salas e regiões
/api/public/v1/roomsSalas disponíveis para montar o lobby do operador.
Resposta
{ "ok": true, "rooms": [{ "id": "uuid", "name": "Sala Ouro", "card_format": "grid_3x5" }] }/api/public/v1/regionsRegiões acessíveis ao token.
Resposta
{ "ok": true, "regions": [{ "id": "uuid", "name": "Zona Sul" }] }Lançamento embarcado
/api/public/v1/launchGera um launch token curto e de uso único que abre o jogo já autenticado.
Requisição
{ "player_id": "uuid", "room_id": "uuid", "ttl_seconds": 120 }Resposta
{ "ok": true, "url": "https://seu-dominio/launch?t=…", "expires_at": "…" }Webhooks
/api/public/v1/webhooksWebhooks cadastrados para este token.
Resposta
{ "ok": true, "webhooks": [{ "id": "uuid", "url": "https://…", "events": ["prize.won"] }] }/api/public/v1/webhooksCadastra um webhook. O segredo aparece só nesta resposta.
Requisição
{
"url": "https://sua-plataforma/hooks/bingo",
"events": ["round.started", "sales.locked", "prize.won", "round.finished", "payment.confirmed", "payout.sent"]
}Resposta
{ "ok": true, "webhook": { "id": "uuid" }, "secret": "whsec_…" }Eventos e assinatura
Enviamos POST assinado com HMAC SHA-256 e reenviamos em caso de falha, com espera progressiva.
Headers de assinatura
x-bingo-timestamp: 1784500000 x-bingo-signature: sha256=HMAC_SHA256(secret, timestamp + "." + body)
Responda 2xx em até 10s. Sem 2xx, tentamos novamente algumas vezes antes de desistir.