Jogos live casino no seu site
Integre mesas ao vivo com uma única chamada de API. Gere o link, redirecione o jogador e pronto.
Começar a integrarVer catálogoSuas credenciais
Exclusivas do seu contrato. Base da API: https://evolutiongames.site
| Item | Valor |
|---|---|
Token (agentToken) | COLE_AQUI_O_TOKEN |
Secret (secretKey) | COLE_AQUI_O_SECRET |
Não é necessário liberar IP do seu lado: a liberação já está feita no gateway.
Provedores disponíveis
Use o nome exato no campo provider. Provedores fora da lista retornam 403 Provedor não permitido.
| ID | Provedor | Jogos |
|---|---|---|
| 82 | OFICIAL - 3OAKS | 85 |
| 84 | OFICIAL - ADVANTPLAY | 45 |
| 69 | OFICIAL - ALIZE SLOTS | 43 |
| 88 | OFICIAL - ASKMESLOT | 46 |
| 103 | OFICIAL - AVIATRIX (catálogo em breve) | - |
| 90 | OFICIAL - BGAMING | 119 |
| 77 | OFICIAL - BIG TIME GAMING | 59 |
| 97 | OFICIAL - BOOMING | 35 |
| 102 | OFICIAL - CG | 120 |
| 94 | OFICIAL - CP GAMES | 74 |
| 59 | OFICIAL - CQ9 | 221 |
| 136 | OFICIAL - CQ9 Live | 5 |
| 107 | OFICIAL - DREAMGAMING LIVE | 84 |
| 96 | OFICIAL - EPICWIN | 54 |
| 72 | OFICIAL - EVOLUTION LIVE | 727 |
| 70 | OFICIAL - EVOPLAY | 196 |
| 73 | OFICIAL - EZUGI | 36 |
| 60 | OFICIAL - FACHAI | 51 |
| 117 | OFICIAL - FAT PANDA | 16 |
| 64 | OFICIAL - GTF | 9 |
| 87 | OFICIAL - HACKSAW | 149 |
| 63 | OFICIAL - JDB | 94 |
| 100 | OFICIAL - LIVE22 | 49 |
| 91 | OFICIAL - LIVE88 | 92 |
| 65 | OFICIAL - MICRO GAMING | 403 |
| 75 | OFICIAL - NETENT | 180 |
| 76 | OFICIAL - NOLIMIT CITY | 106 |
| 58 | OFICIAL - PG SOFT | 171 |
| 115 | OFICIAL - PRAGMATIC LIVE | 134 |
| 132 | OFICIAL - PRAGMATIC SLOTS | 629 |
| 81 | OFICIAL - QUEENMAKER | 79 |
| 78 | OFICIAL - RED TIGER | 355 |
| 62 | OFICIAL - SPADE GAMING | 103 |
| 98 | OFICIAL - SPINOMENAL | 622 |
| 83 | OFICIAL - SPRIBE | 14 |
| 85 | OFICIAL - TADA | 148 |
| 95 | OFICIAL - TURBO GAMES | 38 |
| 74 | OFICIAL - WINFINITY | 38 |
| 79 | OFICIAL - YELLOWBAT | 37 |
Endpoints
Todas as requisições usam Content-Type: application/json.
GET/api/v2/providers
Lista os provedores. Não precisa de credenciais.
GET/api/v2/games?provider={ID}
Lista os jogos de um provedor, sem credenciais. Cada jogo traz name, game_code, image_url, provider.name, currency e lang.
POST/api/v2/game_launch
| Campo | Obrig. | Descrição |
|---|---|---|
agentToken | Sim | Seu token |
secretKey | Sim | Seu secret |
user_code | Sim | Identificador único do jogador (e-mail ou ID) |
user_balance | Sim | Saldo atual do jogador, número (ex.: 100) |
provider | Sim | Nome exato do provedor |
game_code | Sim | Código do jogo (veja o catálogo) |
lang | Não | pt, en ou es |
curl -X POST https://evolutiongames.site/api/v2/game_launch \
-H "Content-Type: application/json" \
-d '{
"agentToken": "SEU_TOKEN",
"secretKey": "SEU_SECRET",
"user_code": "jogador@email.com",
"user_balance": 100,
"provider": "OFICIAL - EVOLUTION LIVE",
"game_code": "GPKEVO_002f1c169f987367a76460647f4d38f5",
"lang": "pt"
}'<?php
$payload = [
'agentToken' => 'SEU_TOKEN',
'secretKey' => 'SEU_SECRET',
'user_code' => 'jogador@email.com',
'user_balance' => 100,
'provider' => 'OFICIAL - EVOLUTION LIVE',
'game_code' => 'GPKEVO_002f1c169f987367a76460647f4d38f5',
'lang' => 'pt',
];
$ch = curl_init('https://evolutiongames.site/api/v2/game_launch');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_TIMEOUT => 25,
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($res['status'] ?? 0) == 1) {
header('Location: ' . $res['launch_url']); // ou abra em iframe
} else {
echo $res['msg'] ?? 'Erro ao abrir o jogo';
}{
"status": 1,
"msg": "SUCCESS",
"launch_url": "https://...",
"user_code": "jogador@email.com",
"user_balance": 100,
"name": "Roulette"
}Redirecione o jogador, ou abra em iframe, para o launch_url.
Saldo do jogador
O saldo de cada jogador fica no banco do seu site. Durante o jogo, chamamos o seu site a cada consulta, aposta, ganho ou reembolso, e ele responde com o saldo novo. Veja o contrato na seção Carteira.
O jogador é identificado pelo user_code. Envie sempre no mesmo formato para o mesmo jogador, por exemplo o e-mail em minúsculas. Um formato diferente é tratado como outro jogador. O user_balance é o saldo na abertura do jogo; durante a partida vale o saldo que o seu site devolve.
Boas práticas
- Chame
game_launchapenas do backend e redirecione o jogador para olaunch_url. - Gere um novo
launch_urla cada abertura de jogo: cada link é de uso único. - Use
/api/v2/games?provider={ID}para montar o catálogo e guarde em cache por alguns minutos. - Mostre uma mensagem amigável ao jogador e registre o
msgde erro no seu log.
Carteira: como o saldo é atualizado
O seu site expõe uma URL que recebe POST em JSON. Você nos informa qual. Todas as chamadas vêm do nosso servidor.
Autenticação
Cada chamada traz X-Signature: sha256=<hex>, o HMAC-SHA256 do corpo bruto com a chave da carteira (enviada por canal privado). Rejeite assinaturas inválidas e timestamp com mais de 5 minutos de diferença.
Tipos de chamada
| type | Quando | O que o seu site faz |
|---|---|---|
BALANCE | Antes e durante o jogo | Devolve o saldo atual do user_code |
WinBet | A cada aposta e/ou ganho | Aplica delta e devolve o saldo novo |
Refund | Rodada cancelada | Aplica delta (positivo ou negativo) e devolve o saldo novo |
Campos de WinBet e Refund: user_code, txn_id, round_id, txn_type (debit_credit, debit, credit ou bonus), bet, win, delta (valor líquido a somar, já calculado por nós) e timestamp. BALANCE envia só type, user_code e timestamp.
Exemplo de aposta e resposta
{
"type": "WinBet",
"user_code": "jogador@email.com",
"txn_id": "tx_88123",
"round_id": "rd_5521",
"txn_type": "debit_credit",
"bet": 10.00,
"win": 40.00,
"delta": 30.00,
"timestamp": 1793920000
}{ "msg": "", "balance": 130.00 }Regras
- Sem duplicidade: o
txn_idé único. Se já foi processado, devolva o saldo atual sem alterar nada. Podemos reenviar em caso de falha de rede. - Atomicidade: leia, valide e atualize o saldo numa única transação do banco, travando a linha do jogador.
- Saldo insuficiente: se
bet > 0e saldo <bet, responda HTTP 400 com{"msg":"INSUFFICIENT_USER_FUNDS","balance":...}sem alterar nada. EmRefundnão valide saldo. - Jogador inexistente: HTTP 404 com
{"msg":"INVALID_USER","balance":0}. - Prazo: responda em até 10 segundos. Resposta diferente de 200, 400 ou 404 é tratada como falha temporária e a transação é reenviada.
Exemplo: entra com R$100 e sai com R$130
- Você abre o jogo com
user_balance: 100. - Chamamos
BALANCEe você respondebalance: 100. - O jogador aposta R$10 e ganha R$40: chamamos
WinBetcomdelta: 30. Você soma 30 e respondebalance: 130. - Se reenviarmos o mesmo
txn_id, você responde 130 sem somar de novo. - Não existe acerto separado: o saldo já está com você.
Referência de implementação (PHP)
<?php
// 1) valide a assinatura sobre o corpo BRUTO
$raw = file_get_contents('php://input');
$esperada = 'sha256=' . hash_hmac('sha256', $raw, CHAVE_DA_CARTEIRA);
if (!hash_equals($esperada, $_SERVER['HTTP_X_SIGNATURE'] ?? '')) {
http_response_code(401); exit;
}
$in = json_decode($raw, true);
// 2) em uma transação do seu banco:
// - se txn_id já existe: devolva o saldo atual, sem alterar
// - se bet > 0 e saldo < bet: HTTP 400 {"msg":"INSUFFICIENT_USER_FUNDS","balance":<saldo>}
// - senão: saldo += delta, grave o txn_id e devolva {"msg":"","balance":<novo saldo>}Erros
O que significa cada resposta e o que fazer.
| HTTP | msg | O que fazer |
|---|---|---|
| 401 | Credenciais inválidas | Confira token e secret |
| 403 | Provedor não permitido | Use o nome exato da lista de provedores |
| 404 | Rota não encontrada | Confira método e caminho |
| 404 | Provedor não encontrado. | Use um ID da lista de provedores |
| 422 | O user_balance é obrigatório | Envie o saldo do jogador |
| 422 | Esse jogo está em manutenção | Tente outro jogo ou mais tarde |
| 502/500 | Erro no gateway | Falha temporária, tente novamente |
Catálogo de jogos
Suporte
Em caso de dúvida ou erro, envie ao suporte: o user_code, o game_code, o provider, o horário da requisição e a resposta completa recebida.