Base URL

Todos os endpoints abaixo sao relativos a esta base publica de producao.

https://xgamesclub.com 22 provedores ativos 1,114 jogos ativos

Autenticacao

As rotas de listagem sao publicas. O endpoint de launch exige credenciais de agente no JSON da requisicao.

Listagens sem autenticacao

GET /api/v1/providers e GET /api/v1/games.

Launch com credenciais

Campos obrigatorios: agent_code, agent_token e agent_secret.

Callback URL

Cada agente possui um callback_url unico. Essa mesma URL recebe os eventos user_balance e transaction.

A callback_url deve ser HTTPS publica e responder HTTP 200.

GET /api/v1/providers

Lista provedores cadastrados conforme base de dados.

Request
GET https://xgamesclub.com/api/v1/providers
Response 200
{
    "status": 1,
    "msg": "Lista de provedores",
    "providers": [
        {
            "id": "1",
            "code": "BOOONGO",
            "name": "BOOONGO",
            "type": "slot",
            "status": "1"
        },
        {
            "id": "2",
            "code": "CQ9",
            "name": "CQ9",
            "type": "slot",
            "status": "1"
        },
        {
            "id": "3",
            "code": "DREAMTECH",
            "name": "DREAMTECH",
            "type": "slot",
            "status": "1"
        }
    ]
}

GET /api/v1/games

Lista somente jogos ativos. Use provider + game_code retornados para lancamento.

Request
GET https://xgamesclub.com/api/v1/games
Response 200
{
    "status": 1,
    "msg": "SUCCESS",
    "games": [
        {
            "game_name": "15 Dragon Pearls",
            "game_code": "15_dragon_pearls",
            "provider": "BOOONGO",
            "img_url": "https://xgamesclub.online/storage/games/playfiver/15_dragon_pearls.webp",
            "game_type": "slot",
            "status": "1",
            "original": "0",
            "distribution": "originais"
        },
        {
            "game_name": "3 Coins",
            "game_code": "3_coins",
            "provider": "BOOONGO",
            "img_url": "https://xgamesclub.online/storage/games/playfiver/3_coins.webp",
            "game_type": "slot",
            "status": "1",
            "original": "0",
            "distribution": "originais"
        }
    ]
}

POST /api/v1/game-launch

Cria uma sessao de jogo e retorna launch_url para abertura. Os campos lang e currency sao opcionais e valem somente para esta sessao: se forem enviados, sobrescrevem o padrao do agente sem alterar o cadastro dele; se forem omitidos, o agente continua definindo o idioma e a moeda.

Idiomas aceitos incluem todos os codigos da tabela abaixo; language tambem pode ser usado como alias de lang. pt_br, pt-BR e ptbr sao normalizados para pt. Moedas aceitas incluem todos os codigos da tabela abaixo. Valor omitido usa o padrao do agente; valor desconhecido tambem usa o padrao do agente para manter compatibilidade. A disponibilidade visual final depende do pacote do provedor: o codigo recebido e salvo na sessao e encaminhado ao provedor, mas um bundle que nao possua o arquivo de traducao pode usar o idioma de fallback dele. Isso nao altera o padrao do agente nem outras sessoes.
Idiomas disponíveis
Código Idioma
pt Português
pt_br Português (Brasil)
en English
es Español
fr Français
de Deutsch
it Italiano
ru Русский
uk Українська
zh 中文
ja 日本語
ko 한국어
tr Türkçe
ar العربية
hi हिन्दी
id Bahasa Indonesia
vi Tiếng Việt
th ไทย
nl Nederlands
pl Polski
ro Română
sv Svenska
da Dansk
fi Suomi
no Norsk
el Ελληνικά
cs Čeština
sk Slovenčina
Moedas disponíveis
Código Símbolo
BRL R$
USD $
EUR
GBP £
ARS $
CLP $
COP $
MXN $
PEN S/
UYU $
BOB Bs
PYG
CAD C$
AUD A$
JPY ¥
CNY ¥
INR
TRY
RUB
ZAR R
Campo Tipo Obrigatorio Descricao
method string Sim Use exatamente "game_launch".
agent_code string Sim Codigo do agente.
agent_token string Sim Token do agente.
agent_secret string Sim Secret key do agente.
user_code string Sim Identificador publico do jogador no sistema parceiro.
user_balance number Sim Saldo do jogador. O backend aceita zero e exige valor nao negativo (>= 0).
provider_code string Sim Codigo do provedor, conforme /api/v1/providers.
game_code string Sim Codigo do jogo ativo, conforme /api/v1/games.
lang string Nao Idioma somente deste game launch. Se omitido, usa o idioma padrao do agente. Ex.: "en" ou "es".
language string Nao Alias opcional de lang. Use um dos codigos do catalogo; lang tem prioridade se os dois forem enviados.
currency string Nao Moeda somente deste game launch. Se omitida, usa a moeda padrao do agente. Ex.: "USD" ou "BRL".
Body JSON
{
    "method": "game_launch",
    "agent_code": "AGT001",
    "agent_token": "xxxxxxxx",
    "agent_secret": "yyyyyyyy",
    "user_code": "player_123",
    "user_balance": 100.5,
    "provider_code": "BOOONGO",
    "game_code": "15_dragon_pearls",
    "lang": "en",
    "currency": "USD"
}
Response 200
{
    "status": 1,
    "msg": "SUCCESS",
    "launch_url": "https://xgamesclub.com/play/15_dragon_pearls/eyJ0b2tlbiI6..."
}

Abrir launch_url

Use iframe ou nova aba conforme o produto parceiro.

Iframe
<iframe
  src="https://xgamesclub.com/play/15_dragon_pearls/eyJ0b2tlbiI6..."
  width="100%"
  height="720"
  frameborder="0"
  allowfullscreen
></iframe>
Observacao
launch_url interna:
- protegida por token
- expira por sessao
- gere novamente via game-launch

launch_url sports:
- pode vir direta do provedor

Callback user_balance

Evento de consulta/sincronizacao de saldo do jogador.

Payload
{
    "method": "user_balance",
    "user_code": "player_123",
    "user_balance": 100.5
}
Resposta esperada
HTTP/1.1 200 OK

Callback transaction

Evento de rodada processada. O objeto interno muda por game_type.

Payload slot
{
    "method": "transaction",
    "user_code": "player_123",
    "user_balance": 97.3,
    "game_type": "slot",
    "slot": {
        "provider_code": "BOOONGO",
        "game_code": "15_dragon_pearls",
        "type": "BASE",
        "bet_money": 1,
        "win_money": 0.3,
        "txn_id": "txn_20260101_00001",
        "txn_type": "debit_credit"
    }
}
Payload pool
{
    "method": "transaction",
    "user_code": "player_123",
    "user_balance": 95.1,
    "game_type": "pool",
    "pool": {
        "provider_code": "SINUCA",
        "game_code": "sinuca_10",
        "type": "BASE",
        "bet_money": 2,
        "win_money": 1.2,
        "txn_id": "pool_20260101_00077",
        "txn_type": "debit_credit"
    }
}
Responda 200 OK e aplique idempotencia por txn_id no seu ledger.

Status e erros

Codigos comuns no fluxo de game-launch.

HTTP Causa Endpoint
400 Falha do provedor na criacao da launch_url. POST /api/v1/game-launch
403 Credenciais invalidas, jogo indisponivel ou saldo operacional insuficiente. POST /api/v1/game-launch
404 Jogo nao encontrado para o provider_code informado. POST /api/v1/game-launch
422 Validacao falhou (campos obrigatorios ausentes ou formato invalido). POST /api/v1/game-launch

Boas praticas

Recomendacoes publicas para integracao segura.

  • Use callback_url em HTTPS publico.
  • Registre logs de callbacks para auditoria.
  • Aplique idempotencia por txn_id.
  • Nao exponha agent_token e agent_secret no frontend.
  • Atualize catalogo local consumindo /providers e /games periodicamente.

Exemplos cURL

Chamadas rapidas para homologacao.

Listar provedores
curl -s https://xgamesclub.com/api/v1/providers
Listar jogos
curl -s https://xgamesclub.com/api/v1/games
Game launch
curl -s -X POST https://xgamesclub.com/api/v1/game-launch \
  -H "Content-Type: application/json" \
  -d '{
    "method": "game_launch",
    "agent_code": "AGT001",
    "agent_token": "xxxxxxxx",
    "agent_secret": "yyyyyyyy",
    "user_code": "player_123",
    "user_balance": 100.50,
    "provider_code": "BOOONGO",
    "game_code": "15_dragon_pearls",
    "lang": "en",
    "currency": "USD"
  }'

Exemplo Node.js (fetch)

Exemplo basico para requisitar launch_url.

Node.js
async function launch() {
  const res = await fetch("https://xgamesclub.com/api/v1/game-launch", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      method: "game_launch",
      agent_code: "AGT001",
      agent_token: "xxxxxxxx",
      agent_secret: "yyyyyyyy",
      user_code: "player_123",
      user_balance: 100.50,
      provider_code: "BOOONGO",
      game_code: "15_dragon_pearls",
      lang: "en",
      currency: "USD"
    })
  });

  const json = await res.json();
  console.log(json.launch_url);
}