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.
/transactions/v2/purchasecreditCard.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órioPAN do cartão (Modelo B). Requer PCI DSS na origem.
creditCard.holderstringobrigatórioNome impresso no cartão.
creditCard.expMonth / expYear / cvvstringobrigatórioValidade (MM / AAAA) e código de segurança.
creditCard.installmentsnumberobrigatórioParcelas (1..N).
creditCard.last4 / bin / brandstringopcionalDerivados do number pelo backend — não precisa enviar.
Body da requisição
Content-Type: application/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
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.
{
"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
}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)).
{
"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_..."
}API key ausente, malformada ou revogada.
{
"statusCode": 401,
"message": "Unauthorized"
}Exemplos
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
}
}'