Pular para o conteúdo principal

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

ItemExemploSem ele
URL base RESThttps://slotbattle.platform.comNada funciona
URL base WebSocketwss://slotbattle.platform.comCheque se o ws_url das respostas já está correto
Id de tenantacmeVocê vai vê-lo em eventos e webhooks; você nunca o envia
Chave de APIsbk_0a1b2c3...Nada funciona. Entregue uma vez
Escopos concedidosgames:read,battles:write,...Você não vai saber o que vai dar 403
Ids de jogos liberadossweet-bonanzaToda criação de batalha falha com game_not_allowed
URL do console + contahttps://admin.platform.comVocê não consegue definir o próprio webhook
Valores das janelas de lobby10 min / 1 min / 5 minVocê 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.

Isso nunca vai para um browser

É 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.

Checklist de onboarding

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