GET https://xgamesclub.com/api/v1/providers
Base URL
Todos os endpoints abaixo sao relativos a esta base publica de producao.
Autenticacao
As rotas de listagem sao publicas. O endpoint de launch exige credenciais de agente no JSON da requisicao.
GET /api/v1/providers e GET /api/v1/games.
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.
GET /api/v1/providers
Lista provedores cadastrados conforme base de dados.
{
"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.
GET https://xgamesclub.com/api/v1/games
{
"status": 1,
"msg": "SUCCESS",
"games": [
{
"game_name": "15 Dragon Pearls",
"game_code": "15_dragon_pearls",
"provider": "BOOONGO",
"img_url": "https://xgamesclub.com/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.com/storage/games/playfiver/3_coins.webp",
"game_type": "slot",
"status": "1",
"original": "0",
"distribution": "originais"
}
]
}
POST /api/v1/game-launch
Cria sessao de jogo e retorna launch_url para abertura.
| 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 exige valor positivo (> 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 (2) | Nao | Idioma. Padrao: "pt". |
{
"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": "pt"
}
{
"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
src="https://xgamesclub.com/play/15_dragon_pearls/eyJ0b2tlbiI6..."
width="100%"
height="720"
frameborder="0"
allowfullscreen
></iframe>
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.
{
"method": "user_balance",
"user_code": "player_123",
"user_balance": 100.5
}
HTTP/1.1 200 OK
Callback transaction
Evento de rodada processada. O objeto interno muda por game_type.
{
"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"
}
}
{
"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"
}
}
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.
curl -s https://xgamesclub.com/api/v1/providers
curl -s https://xgamesclub.com/api/v1/games
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": "pt"
}'
Exemplo Node.js (fetch)
Exemplo basico para requisitar launch_url.
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: "pt"
})
});
const json = await res.json();
console.log(json.launch_url);
}