iHubGamesiHubGamesdocs

Referência da API

Criar transação (Cartão — PAN)

Cobrança de cartão no MODELO B (PAN cru), server-to-server, pra sub-adquirentes PCI. Você envia o number do cartão direto; o backend tokeniza e cobra. last4/bin/brand são derivados do número (não precisa enviar). Pode ou não exigir 3D Secure — quem decide é o emissor; quando exige, a resposta traz requiresAction + clientSecret e a autenticação precisa de um navegador. Fluxo completo no guia Pagamentos via API.

POST/transactions/v2/purchase
Exige PCI DSS na origem
creditCard.number O número do cartão trafega pelo seu servidor — a origem precisa ser PCI DSS compliant. Quando houver um navegador no fluxo, prefira o Modelo A (token).

Autenticação

HTTP Basic Auth. Envie sua secret key no header:

Authorization: Basic {base64(secret:SUA_SECRET_KEY)}

Parâmetros

creditCard.numberstringobrigatório

PAN do cartão (Modelo B). Requer PCI DSS na origem.

creditCard.holderstringobrigatório

Nome impresso no cartão.

creditCard.expMonth / expYear / cvvstringobrigatório

Validade (MM / AAAA) e código de segurança.

creditCard.installmentsnumberobrigatório

Parcelas (1..N).

creditCard.last4 / bin / brandstringopcional

Derivados do number pelo backend — não precisa enviar.

Body da requisição

Content-Type: application/json

JSON
{
  "name": "João Silva",
  "email": "joaosilva@exemplo.com",
  "cpf": "12345678901",
  "amount": 1000,
  "description": "Pedido 1234",
  "externalId": "pedido-5678",
  "paymentMethod": "CREDIT_CARD",
  "currency": "BRL",
  "creditCard": {
    "number": "5155901222280001",
    "holder": "JOAO SILVA",
    "expMonth": "12",
    "expYear": "2030",
    "cvv": "123",
    "installments": 1
  }
}

Respostas

200

Aprovado direto (cartão sem 3D Secure). Retorna o objeto completo da transação; pixCode e expiresAt vêm null em cartão. Valores em centavos.

JSON
{
  "id": "17913320791467683016950003",
  "currency": "BRL",
  "method": "CREDIT_CARD",
  "installments": 1,
  "externalId": "pedido-5678",
  "status": "APPROVED",
  "amount": 1000,
  "postbackUrl": "https://seu-dominio.com/webhook",
  "referrerUrl": null,
  "pixCode": null,
  "expiresAt": null,
  "createdAt": "2026-10-07T00:14:40.893Z",
  "costFee": 2
}
200

Exige 3D Secure — a resposta traz requiresAction: true + clientSecret (os demais campos vêm iguais). Precisa concluir o desafio num navegador (via iHubGames.js confirmAction(clientSecret)).

JSON
{
  "id": "17913320791467683016950003",
  "currency": "BRL",
  "method": "CREDIT_CARD",
  "installments": 1,
  "externalId": "pedido-5678",
  "status": "PENDING",
  "amount": 1000,
  "postbackUrl": "https://seu-dominio.com/webhook",
  "referrerUrl": null,
  "pixCode": null,
  "expiresAt": null,
  "createdAt": "2026-10-07T00:14:40.893Z",
  "costFee": 2,
  "requiresAction": true,
  "clientSecret": "pi_..._secret_..."
}
401

API key ausente, malformada ou revogada.

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

Exemplos

cURL
curl -X POST "https://api.ihubplay.com/transactions/v2/purchase" \
  -H "Authorization: Basic $(echo -n 'secret:SUA_SECRET_KEY' | base64)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "João Silva",
    "email": "joaosilva@exemplo.com",
    "cpf": "12345678901",
    "amount": 1000,
    "paymentMethod": "CREDIT_CARD",
    "creditCard": {
      "number": "5155901222280001",
      "holder": "JOAO SILVA",
      "expMonth": "12", "expYear": "2030", "cvv": "123",
      "installments": 1
    }
  }'