O que você recebe
Você integra contra uma instância que a plataforma roda. Você não opera infraestrutura e não implanta nada. Esta página lista o que ter em mãos antes de escrever código.
A lista de repasse
| Item | Exemplo | Sem ele |
|---|---|---|
| URL base REST | https://slotbattle.platform.com | Nada funciona |
| URL base WebSocket | wss://slotbattle.platform.com | Cheque se o ws_url das respostas já está correto |
| Id de tenant | acme | Você vai vê-lo em eventos e webhooks; você nunca o envia |
| Chave de API | sbk_0a1b2c3... | Nada funciona. Entregue uma vez |
| Escopos concedidos | games:read,battles:write,... | Você não vai saber o que vai dar 403 |
| Ids de jogos liberados | sweet-bonanza | Toda criação de batalha falha com game_not_allowed |
| URL do console + conta | https://admin.platform.com | Você não consegue definir o próprio webhook |
| Valores das janelas de lobby | 10 min / 1 min / 5 min | Você não pode mudá-los, então precisa conhecê-los |
Se faltar alguma linha, pergunte antes de começar. Cada uma é lenta de diagnosticar de fora.
A chave de API
sbk_ seguido de 64 caracteres hex. Só o hash dela é armazenado na instância, então ela é
mostrada uma vez e não pode ser recuperada. Se você perder, o host emite uma nova e revoga a
antiga.
O tenant é derivado da chave. Não há header de tenant para enviar e não há campo de tenant em nenhum corpo de requisição. Você vai ver o seu id de tenant em respostas e webhooks, mas nunca o envia.
É uma credencial servidor a servidor que cobre o seu casino inteiro. Qualquer coisa que a tenha pode abrir batalhas, sentar bots e ler todas as suas batalhas. Passe toda chamada pelo seu próprio backend; o tutorial mostra o padrão de ponta a ponta.
Cheque os seus escopos cedo
curl -s $BASE/games -H "Authorization: Bearer $KEY"
Um 403 nomeando um escopo faltando é muito mais fácil de resolver no primeiro dia do que
durante os testes de integração. Uma integração completa de produção usa games:read,
battles:read, battles:write, bots:write e viewer:mint; peça cada um pelo nome.
bots:write é separado de battles:write e é fácil de um host omitir. Se você pretende encher
lobbies com bots, o que a maioria dos casinos faz, confirme que você o tem.
Verifique o repasse
Quatro chamadas dizem se está tudo ligado:
BASE=https://slotbattle.platform.com
KEY=sbk_...
# 1. Games appear — proves the key works and the allowlist is set
curl -s $BASE/games -H "Authorization: Bearer $KEY"
# 2. A battle opens — proves battles:write and the allowlist agree
curl -s $BASE/battles -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
-d '{"game_id":"sweet-bonanza","seats_total":2,"entry_amount":"10",
"currency":"BRL","creator_player_ref":"smoke_test"}'
# 3. A viewer token mints — proves the host has a signing key
curl -s -X POST $BASE/battles/<id>/viewer-tokens -H "Authorization: Bearer $KEY"
# 4. Clean up
curl -s -X POST $BASE/battles/<id>/cancel -H "Authorization: Bearer $KEY"
Se o passo 1 retornar {"games": []}
A sua allowlist está vazia. Isso é configuração do lado do host, não erro. Peça para liberarem os jogos combinados, e note que a mudança leva até 30 segundos para aparecer.
Se o passo 3 retornar 500 failed to mint viewer token
A instância não tem chave de assinatura de viewer. Batalhas funcionam; visualização ao vivo não. Isso é do host para resolver, então reporte com essa mensagem exata.
Se o ws_url não conectar
Olhe a porta. Se o ws_url aponta para a mesma porta da API REST, o host não configurou uma URL
base pública de WebSocket. O feed roda na própria porta, então aquela URL não tem como
funcionar. Reporte; você não consegue corrigir do seu lado.
O que você configura
Duas coisas, as duas no console, as duas por casino:
O seu webhook de resultado, a URL que o seu backend escuta e o segredo com que as requisições são assinadas. Sem isso, o seu backend nunca fica sabendo que uma batalha acabou.
As suas credenciais de provedor, se o seu casino tem conta SoftSwiss própria. Sem elas, as sessões de bot são emitidas sob o id de casino do host, e não o seu.
O que você não pode mudar
A chave de assinatura de viewer, as janelas de lobby, a capacidade de gravação e quando a instância é atualizada. Isso é da plataforma.
→ Limites
Próximo
- Checklist de onboarding: o que fazer, em ordem
- Limites: o que é do host
- Visão geral da API: comece a integrar