iHubGamesiHubGamesdocs

Referência da API

Config de cartão

Primeiro passo do cartão no MODELO A (token). Devolve a tokenizationKey (chave pública) que a biblioteca iHubGames.js usa pra tokenizar o cartão no navegador, e se o parcelamento está liberado (allowsInstallments). QUANDO usar: chame no seu backend ao abrir o checkout, e passe a tokenizationKey pro front. A chave é PÚBLICA (pode ir pro navegador). Se available for false, a conta só aceita PIX. (No Modelo B / PAN cru você não precisa deste endpoint.)

GET/transactions/card-config

Autenticação

HTTP Basic Auth. Envie sua secret key no header:

Authorization: Basic {base64(secret:SUA_SECRET_KEY)}

Respostas

200

Config retornada. Quando available é false, os demais campos são omitidos (conta só PIX).

JSON
{
  "available": true,
  "tokenizationKey": "pgk_live_...",
  "allowsInstallments": true
}
401

API key ausente, malformada ou revogada.

JSON
{
  "statusCode": 401,
  "message": "Unauthorized"
}

Exemplos

cURL
curl -X GET "https://api.ihubplay.com/transactions/card-config" \
  -H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)"
html
<!-- No NAVEGADOR: carregue a iHubGames.js e monte o campo de cartão. -->
<script src="https://portal.ihubplay.com/sdk/hubplay.js"></script>
<div id="card-element"></div>

<script>
  // A tokenizationKey vem do GET /transactions/card-config (seu backend).
  const card = iHubGames.card({ tokenizationKey: "pgk_live_..." });
  await card.mount("#card-element");   // renderiza o campo de cartão (PCI SAQ A)

  // No submit do checkout:
  const { token } = await card.tokenize({ name: "João Silva" });
  // 'token' é opaco — mande pro SEU servidor e cobre com creditCard.token.

  // Se o /purchase responder requiresAction + clientSecret (3D Secure):
  // await card.confirmAction(clientSecret);  // abre o desafio no navegador
</script>
JavaScript
// Passo 1 (SEU BACKEND): pega a config e devolve a tokenizationKey pro front.
const token = Buffer.from("secret:" + process.env.IHUBGAMES_SECRET_KEY).toString("base64");
const res = await fetch("https://api.ihubplay.com/transactions/card-config", {
  headers: { Authorization: `Basic ${token}` },
});
const cfg = await res.json();
if (!cfg.available) {
  // Conta só aceita PIX — esconda a opção de cartão.
}
// Envie cfg.tokenizationKey pro navegador (é pública).