Download OpenAPI specification:Download
Introdução à API do Desenvolvedor Hypetech. Essa API foi projetada para que nossos parceiros possam acessar nossos jogos e muito mais.
A API Hypetech busca respeitar a terminologia Provably Fair. Nesse sentido, nossos jogos possuem alto grau de confiabilidade.
Seguindo as normas definidas, nosso sistema possui as seguintes características:
Para obter acesso aos games fornecidos pela Hypetech entre em contato com a equipe de suporte através do email informado no cabeçalho.
A API Hypetech retorna códigos de status HTTP para indicar sucesso ou falhas das requisições.
Códigos 2xx
indicam sucesso. Códigos 4xx
indicam falhas causadas pelas
informações enviadas pelo cliente ou pelo estado atual das entidades. Códigos 5xx
indicam problemas no serviço no lado da API Hypetech.
As respostas de erro incluem no corpo detalhes do erro seguindo o
schema da RFC 7807.
O objetivo primário é apenas e tão somente identificar o tipo de erro.
Abaixo estão listados os tipos de erro e possíveis violações da API Hypetech.
Esta seção reúne erros que poderiam ser retornados por quaisquer endpoints listados na API Hypetech.
Bad Request
Forbiden
Not Found
Gone
Internal Server Error
Service Unavailable
Gateway Timeout
Esta seção contém informações sobre como configurar webhooks no lado do cliente. Esses endpoints fornecerão as informações necessárias para integração com a API Hypetech, através da consulta de saldo do usuário, registro de apostas e confirmação de saques nos jogos.
Para garantir a integridade e autenticidade dos dados transmitidos através de nossos webhooks, incluímos um header de assinatura em cada solicitação. Este header permite que você verifique se a solicitação foi realmente enviada por nós e que os dados não foram alterados durante a transmissão.
Cada webhook enviado por nós incluirá um header chamado Hype-Hash. O valor deste header é uma assinatura HMAC-SHA256, gerada a partir da combinação da URL e do corpo da solicitação.
A assinatura é criada usando a seguinte função:
import * as crypto from 'crypto';
export function createHmacSha256(secret: string, url: string, data: any): string {
const message = url + JSON.stringify(data);
const hmac = crypto.createHmac('sha256', secret);
hmac.update(message);
return hmac.digest('hex');
}
A função aceita três parâmetros:
A URL e o corpo da solicitação (convertido em uma string JSON) são concatenados para formar a mensagem.
Esta mensagem é assinada usando HMAC-SHA256 com a chave de API do cliente.
A assinatura resultante é retornada como uma string hexadecimal.
Para verificar a assinatura recebida em um webhook:
Nota: Qualquer parte que possua sua chave de API poderá gerar ou verificar assinaturas, por isso, nunca a compartilhe ou a exponha publicamente.
{
'Content-Type': 'application/json',
'Accept-Encoding': 'application/json',
'Hype-Hash': '35d334e534211b109e2563c8bd4c945ce1055c9fbc0a6dc01efa7d2338df4e0e'
}
Esta rota é utilizada para obter o saldo atualizado do jogador quando necessário.
https://yourdomain.com/games/getBalance
player_id | string ID do usuário/jogador armazenado na plataforma do cliente. |
currency | string Moeda utilizada no carregamento do jogo. |
{- "player_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "currency": "BRL"
}
{- "balance": "2050.00"
}
Endpoint acionado quando um usuário registra uma aposta durante uma partida do jogo.
https://yourdomain.com/webhooks/hypetech/register
user_id | string ID do usuário que faz a aposta (mesmo ID armazenado na plataforma do cliente). |
amount | double Valor que será apostado pelo usuário. |
provider | string Referência a plataforma em que a aposta está sendo feita. |
provider_tx_id | string ID idempotente da transação gerada pelo usuário. |
game | string Nome do jogo que a aposta está sendo feita. |
action | string Indica a ação que gerou a transação. |
round_id | string ID da rodada que foi feita a aposta. |
session_token | string Token da sessão do usuário gerada pela API Hypetech. |
{- "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "amount": "200.00",
- "provider": "hypetech",
- "provider_tx_id": "559",
- "game": "motograu",
- "action": "bet",
- "round_id": "255",
- "session_token": "b72afc9470d1899d9a993d378733cfea"
}
{- "operator_tx_id": "559",
- "new_balance": "2050.00",
- "old_balance": "2300.00",
- "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "currency": "BRL",
- "provider": "hypetech",
- "provider_tx_id": "559"
}
Este endpoint e acionado sempre que o usuario ganha uma aposta.
https://yourdomain.com/webhooks/hypetech/rewards
user_id | string ID do usuário que faz a aposta (mesmo ID armazenado na plataforma do cliente). |
amount | double Valor que será recebido pelo usuário. |
provider | string Referência a plataforma em que a aposta está sendo feita. |
provider_tx_id | string ID idempotente da transação gerada pelo usuário. |
game | string Nome do jogo que a aposta foi feita. |
action | string Indica a ação que gerou a transação. |
round_id | string ID da rodada que foi feita a aposta. |
session_token | string Token da sessão do usuário gerada pela API Hypetech. |
{- "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "amount": "200.00",
- "provider": "hypetech",
- "provider_tx_id": "600",
- "game": "motograu",
- "action": "bet",
- "round_id": "177",
- "session_token": "b72afc9470d1899idea993d378733cfa"
}
{- "operator_tx_id": "559",
- "new_balance": "2300.00",
- "old_balance": "2100.00",
- "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "currency": "BRL",
- "provider": "hypetech",
- "provider_tx_id": "559"
}
Endpoint acionado quando há cancelamentos de apostas de usuários na API Hypetech.
https://yourdomain.com/webhooks/hypetech/rollback
user_id | string ID do usuário. |
provider_tx_id | string ID da transação de rollback. |
{- "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "provider_tx_id": "559"
}
{- "old_balance": "2500.00",
- "new_balance": "1950.00"
}
Este endpoint é responsável por receber dados relacionados ao usuário da plataforma do cliente e ao jogo que será exibido.
Para obter acesso a um jogo específico, entre em contato com a equipe de suporte no e-mail especificado no cabeçalho do documento,
se tudo correr bem eles irão informar o game_token
para permitir o acesso ao jogo na plataforma.
Utilize este endpoint para obter a lista de jogos disponíveis e suas informações
https://api.hypetech.games/games/activated
[- {
- "id": "1",
- "name": "Wall Street",
- "slug": "wall-street",
}, - {
- "id": "2",
- "name": "Double",
- "slug": "double",
}, - {
- "id": "3",
- "name": "Foguetinho",
- "slug": "foguetinho",
}
]
Esta rota é utilizada apenas por agregadoras e é acionada quando se faz necessária a obtenção do saldo atualizado do jogador. Por padrão as agregadoras a utilizam para o carregamento do jogo, antes da obtenção da URL do jogo.
https://api.hypetech.games/games/getBalance
player_id | string ID do usuário/jogador armazenado na plataforma do cliente. |
currency | string Moeda utilizada no carregamento do jogo. |
{- "player_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "currency": "BRL"
}
{- "balance": "2050.00"
}
Este endpoint retorna uma URL que permite que um usuário da plataforma do cliente faça apostas. Cada URL é única e contém informações de sessão do usuário, elas expiram assim que o usuário faz login pela primeira vez para garantir sua segurança.
Antes de usar este endpoint, certifique-se de que todos os hooks relacionados à verificação de saldo e apostas estejam configurados corretamente.
game | string Especifica a instância do jogo que será retornada para o usuário |
user_id | string Especifica o id do usuário na plataforma do cliente. Este parâmetro será usado para verificar o saldo, saque e confirmar os resultados da aposta usando ganchos da web. |
lang | string Parâmetro que define o idioma na interface do jogo. |
balance | double Saldo atual do usuário na plataforma. |
currency | string Especifica a moeda que sera utilizada durante as apostas. |
username | string O nome de usuário é usado ao fazer uma aposta no painel lateral dos jogos |
avatar_url | string O avatar/imagem do usuário, assim como o nome, tem função meramente visual, será mostrado no painel lateral, e caso não seja informado, serão utilizadas as iniciais do nome do usuário. |
{- "game": "motograu",
- "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
- "lang": "pt",
- "balance": "2500.00",
- "currency": "BRL",
- "username": "Jhon Doe",
}
{
}