Pular para o conteúdo principal

Cartões de Teste

Quick Reference

WhatComportamento e simulação de cartões de teste em sandbox
WhyTeste todos os cenários de pagamento — aprovação, recusa, timeout — sem dinheiro real
Reading Time5 min
DifficultyBeginner
PrerequisitesAutenticação → Ambientes

Por que cartões de teste importam

Sem testes sistemáticosCom cartões de teste da A55
Você descobre recusas em produção, com clientes reaisVocê simula todos os resultados em sandbox antes do go-live
Cenários específicos (timeout, cartão expirado, cartão bloqueado) ficam sem testeUma mudança de dígito exercita qualquer cenário
QA leva dias de testes manuais com cartõesTeste em lote 9 cenários em uma única execução de script
Você não sabe como sua UI lida com falhasVocê vê exatamente como suas telas de erro se comportam

Como o simulador funciona

Em sandbox, apenas o último dígito do número do cartão controla o resultado da transação. Os primeiros 15 dígitos podem ser quaisquer.

Regras:

  • Use qualquer número de cartão plausível com 16 dígitos — apenas o último dígito importa.
  • CVV: quaisquer 3 dígitos (ex.: 123).
  • Validade: qualquer data futura no formato MM/AAAA (ex.: 12/2030).

Resultados por último dígito

Último dígitoStatusCódigo de retornoMensagemCaso de uso
0, 1, 4Autorizado4 ou 6Operação concluída com sucessoCaminho feliz — teste pagamentos bem-sucedidos
2Não autorizado05Não autorizadoRecusa genérica — teste tratamento de erros
3Não autorizado57Cartão expiradoTeste a UX de cartão expirado
5Não autorizado78Cartão bloqueadoTeste cartão bloqueado/sinalizado por fraude
6Não autorizado99TimeoutTeste tratamento de timeout e retentativas
7Não autorizado77Cartão canceladoTeste a UX de cartão cancelado
8Não autorizado70Problemas com cartão de créditoTeste erro genérico de cartão
9Aleatório499Sucesso ou timeout (aleatório)Teste de caos — verifique a resiliência
Cartões de referência rápida

Use estes números prontos — altere apenas o último dígito:

CenárioNúmero do cartão
Confirmado4024 0071 5376 3191
Recusado4024 0071 5376 3192
Expirado4024 0071 5376 3193
Bloqueado4024 0071 5376 3195
Timeout4024 0071 5376 3196

Passo a passo: teste cada cenário

1. Teste um pagamento bem-sucedido

curl -s -X POST https://core-manager.a55.tech/api/v1/bank/wallet/charge/ \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "YOUR_WALLET_UUID",
"merchant_id": "YOUR_MERCHANT_UUID",
"payer_name": "Test User",
"payer_email": "test@example.com",
"payer_tax_id": "12345678909",
"payer_cell_phone": "+5511999999999",
"installment_value": 100.00,
"currency": "BRL",
"due_date": "2026-12-31",
"description": "Sandbox test — confirmed",
"type_charge": "credit_card",
"card": {
"number": "4024007153763191",
"holder_name": "TEST USER",
"expiration_month": "12",
"expiration_year": "2030",
"cvv": "123"
}
}'

2. Teste um pagamento recusado

Altere apenas o último dígito para 2:

Cartão: 4024007153763192  →  Código de retorno 05 (Não autorizado)

Sua aplicação deve exibir uma mensagem de erro adequada e permitir que o usuário tente novamente com outro cartão.

3. Teste um timeout

Altere o último dígito para 6:

Cartão: 4024007153763196  →  Código de retorno 99 (Timeout)

Sua aplicação deve implementar lógica de retentativa com backoff exponencial e exibir um estado "aguarde".


Teste em lote de todos os cenários

Execute todos os 9 cenários em um único script para validar seu tratamento de erros.

scenarios = [
("4024007153763190", "Confirmado (0)"),
("4024007153763191", "Confirmado (1)"),
("4024007153763192", "Recusado (2)"),
("4024007153763193", "Cartão expirado (3)"),
("4024007153763194", "Confirmado (4)"),
("4024007153763195", "Cartão bloqueado (5)"),
("4024007153763196", "Timeout (6)"),
("4024007153763197", "Cartão cancelado (7)"),
("4024007153763198", "Problemas no cartão (8)"),
("4024007153763199", "Aleatório (9)"),
]

for card_number, label in scenarios:
result = create_test_charge(token, card_number, f"Teste em lote — {label}")
print(f"{label:25s} → status={result.get('status', 'N/A'):15s} code={result.get('return_code', 'N/A')}")

Limitações importantes

Sandbox ≠ comportamento de produção
  • Os códigos de retorno e mensagens do sandbox são simulados. As respostas em produção vêm de emissores e bandeiras reais — os códigos e mensagens serão diferentes.
  • Nunca use números de cartão reais em sandbox. O simulador sobrescreve os resultados com base no último dígito, independentemente da validade do PAN.
  • Se o seu gateway exige um formato de cartão específico (ex.: prefixo BIN), mantenha o último dígito conforme a tabela acima e ajuste os demais dígitos para atender ao gateway.
Fluxos suportados em sandbox

O simulador suporta autorização, captura (total e parcial), cancelamento e consulta de status. Todos seguem as mesmas regras do último dígito.