API Hypetech (1.0.0)

Download OpenAPI specification:Download

Suporte Hypetech: [email protected] URL: https://hypetech.games License: Apache 2.0

Introdução à API do Desenvolvedor Hypetech. Essa API foi projetada para que nossos parceiros possam acessar nossos jogos e muito mais.

Sobre a API Hypetech

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:

  • Jogo justo
  • Responsabilidade
  • Anti-trapaça garantido
  • Pagamentos instantâneos
  • Abertura da plataforma

Para obter acesso aos games fornecidos pela Hypetech entre em contato com a equipe de suporte através do email informado no cabeçalho.

Tratamento de Erros

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.

Tipos de Erro

Esta seção reúne erros que poderiam ser retornados por quaisquer endpoints listados na API Hypetech.

Bad Request

Forbiden

  • Significado: Requisição de participante autenticado que viola alguma regra de autorização.
  • HTTP Status Code: 403 Forbidden.

Not Found

  • Significado: Entidade não encontrada.
  • HTTP Status Code: 404 Not Found.

Gone

  • Significado: Indica que a entidade existia, mas foi permanentemente removida.
  • HTTP Status Code: 410 Gone.

Internal Server Error

Service Unavailable

  • Significado: Serviço não está disponível no momento. Serviço solicitado pode estar em manutenção ou fora da janela de funcionamento.
  • HTTP Status Code: 503 Service Unavailable.

Gateway Timeout

  • Significado: Indica que o serviço demorou além do esperado para retornar.
  • HTTP Status Code: 504 Gateway Timeout.

Configurando Webhooks

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.

Verificação de Assinatura

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.

Header de Assinatura

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.

Como a Assinatura é Gerada

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');
}

Funcionamento da Função

A função aceita três parâmetros:

  • secret: A chave de API atual do cliente, que atua como a chave secreta.
  • url: A URL da solicitação do webhook.
  • data: O corpo da solicitação do webhook.

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.

Como Verificar a Assinatura

Para verificar a assinatura recebida em um webhook:

  1. Extraia o valor do header Hype-Hash da solicitação recebida.
  2. Usando sua chave de API atual (que atua como a chave secreta) e a função createHmacSha256, gere sua própria assinatura com base na URL e no corpo da solicitação recebida.
  3. Compare a assinatura que você gerou com o valor do header Hype-Hash. Se eles corresponderem, a solicitação é autêntica e não foi alterada durante a transmissão.

Nota: Qualquer parte que possua sua chave de API poderá gerar ou verificar assinaturas, por isso, nunca a compartilhe ou a exponha publicamente.

Exemplo de Headers Recebidos:

{
  'Content-Type': 'application/json',
  'Accept-Encoding': 'application/json',
  'Hype-Hash': '35d334e534211b109e2563c8bd4c945ce1055c9fbc0a6dc01efa7d2338df4e0e'
}

Informar saldo do jogador Webhook

Esta rota é utilizada para obter o saldo atualizado do jogador quando necessário.

https://yourdomain.com/games/getBalance

Request Body schema: application/json
required
player_id
string

ID do usuário/jogador armazenado na plataforma do cliente.

currency
string

Moeda utilizada no carregamento do jogo.

Responses

Request samples

Content type
application/json
{
  • "player_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
  • "currency": "BRL"
}

Response samples

Content type
application/json
{
  • "balance": "2050.00"
}

Registrar Aposta Webhook

Endpoint acionado quando um usuário registra uma aposta durante uma partida do jogo.

https://yourdomain.com/webhooks/hypetech/register

Request Body schema: application/json
required
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.

Responses

Request samples

Content type
application/json
{
  • "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"
}

Response samples

Content type
application/json
{
  • "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"
}

Registrar Ganhos Webhook

Este endpoint e acionado sempre que o usuario ganha uma aposta.

https://yourdomain.com/webhooks/hypetech/rewards

Request Body schema: application/json
required
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.

Responses

Request samples

Content type
application/json
{
  • "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"
}

Response samples

Content type
application/json
{
  • "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"
}

Reverter Apostas Webhook

Endpoint acionado quando há cancelamentos de apostas de usuários na API Hypetech.

https://yourdomain.com/webhooks/hypetech/rollback

Request Body schema: application/json
required
user_id
string

ID do usuário.

provider_tx_id
string

ID da transação de rollback.

Responses

Request samples

Content type
application/json
{
  • "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
  • "provider_tx_id": "559"
}

Response samples

Content type
application/json
{
  • "old_balance": "2500.00",
  • "new_balance": "1950.00"
}

Acessando os Jogos

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.

Obter lista de jogos

Utilize este endpoint para obter a lista de jogos disponíveis e suas informações

https://api.hypetech.games/games/activated

Authorizations:
accessToken

Responses

Response samples

Content type
application/json
[]

Obter saldo do jogador

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

Authorizations:
accessToken
Request Body schema: application/json
required
player_id
string

ID do usuário/jogador armazenado na plataforma do cliente.

currency
string

Moeda utilizada no carregamento do jogo.

Responses

Request samples

Content type
application/json
{
  • "player_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
  • "currency": "BRL"
}

Response samples

Content type
application/json
{
  • "balance": "2050.00"
}

Obter a URL do Jogo

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.

Authorizations:
accessToken
Request Body schema: application/json
required
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.

Responses

Request samples

Content type
application/json
{
  • "game": "motograu",
  • "user_id": "99e27bf0-35da-46e2-a82d-07c492d1ed25",
  • "lang": "pt",
  • "balance": "2500.00",
  • "currency": "BRL",
  • "username": "Jhon Doe",
}

Response samples

Content type
application/json