CVV, CVC, CID e CVV2: o que o código de segurança do cartão realmente significa
Poucas coisas em pagamentos geram mais confusão do que o código de três dígitos no verso do cartão. É CVV, CVC, CVV2 ou CID? Fica na frente no caso do Amex? Você pode armazená-lo? Este artigo esclarece a terminologia e as regras que importam para desenvolvedores.
Muitos nomes, uma única ideia
O código de segurança impresso é um número curto que não está codificado na tarja magnética nem no chip EMV. Como o skimming em transações presenciais não o captura, pedi-lo mostra que quem está pagando tem (ou já viu) o cartão físico, o que o torna valioso para transações sem presença do cartão (CNP).
| Termo | Significa | Usado por | Tamanho | Posição |
|---|---|---|---|---|
| CVV2 | Valor de verificação do cartão 2 | Visa | 3 dígitos | Verso |
| CVC2 | Código de verificação do cartão 2 | Mastercard | 3 dígitos | Verso |
| CID | Número de identificação do cartão | American Express | 4 dígitos | Frente |
| CID | Identificação do cartão | Discover | 3 dígitos | Verso |
| CAV2 | Valor de autenticação do cartão 2 | JCB | 3 dígitos | Verso |
| CVV1 / CVC1 | Valor / código de verificação do cartão | Visa / Mastercard | — | Codificado na tarja magnética, não impresso |
CVV1 e CVV2 (ou CVC1 e CVC2) são valores diferentes. O CVV1/CVC1 é codificado na tarja magnética e verificado em transações presenciais; o CVV2/CVC2 é calculado separadamente e impresso no cartão para pagamentos sem presença do cartão. O chip carrega ainda outro valor (iCVV). Os formulários de checkout só coletam o código impresso, e no dia a dia do desenvolvimento "CVV" é usado como nome genérico desse campo em todas as bandeiras.
As duas coisas que realmente importam no código:
- O Amex usa 4 dígitos na frente: qualquer campo de entrada que force 3 dígitos vai falhar nos testes com Amex.
- O código é dado de autenticação sensível (SAD) segundo o PCI DSS, com regras mais rígidas do que as do próprio número do cartão.
As regras do PCI DSS que você não pode ignorar
O CVV é classificado como dado de autenticação sensível. De acordo com o PCI DSS:
- Você pode usá-lo para processar uma transação.
- Você não pode mantê-lo depois que a transação for autorizada: nem em logs, nem em banco de dados, nem em um evento de analytics, nem em um print de tela do suporte, mesmo que esteja criptografado (PCI DSS v4.0, Requisito 3.3.1).
- Se você o mantiver por pouco tempo antes da autorização, ele deve ser protegido com criptografia forte (Requisito 3.3.2).
- Ele nunca pode ser armazenado para pagamentos com cartão salvo (card-on-file) ou recorrentes. Apenas os emissores de cartão têm uma exceção restrita.
Na prática, isso significa:
- Nunca registre em log payloads de requisições que contenham
cvv,cvc,cidousecurity_code. - Marque o campo como sensível nas suas ferramentas de observabilidade e remova-o na borda da rede.
- Quando os provedores retornarem um resultado de verificação, armazene o resultado (por exemplo, o
cvc_checkda Stripe:pass,fail,unavailableouunchecked), nunca o valor em si. - Mantenha o campo CVV fora da sua própria API se o navegador puder enviá-lo direto ao endpoint de tokenização do gateway de pagamento.
- Nunca exiba o valor novamente ao usuário depois do envio.
Como as verificações de CVV se comportam na prática
A verificação do CVV é um sinal de autorização separado, não uma barreira rígida. Cada emissor e cada gateway de pagamento tratam uma divergência de forma diferente:
- Alguns recusam a transação de imediato.
- Outros aprovam e retornam um código
CVC mismatch, deixando a decisão para o comerciante. - E outros são configurados para pular a verificação por completo em certas regiões.
Você pode testar isso de forma deliberada: o 4000 0000 0000 0127 da Stripe retorna uma recusa incorrect_cvc sempre que um CVC é enviado, ideal para exercitar o tratamento de erros sem tocar em um cartão real. Veja a lista completa de cartões de teste para mais opções.
Como gerar CVVs de teste
Para trabalhar em sandbox, a Stripe e a Braintree aceitam quaisquer 3 dígitos (4 no caso do Amex); alguns gateways exigem valores específicos, como o 737 da Adyen. O nosso gerador de cartões pode anexar um CVV aleatório ou fixo a cada número gerado e exibir o resultado em um formato separado por barras verticais, fácil de converter em fixtures:
4242424242424242|12|2030|123
Se você precisar gerar números para uma faixa de emissor específica, o gerador avançado aceita padrões com curingas e o verificador de BIN mostra a qual bandeira um prefixo pertence.
Resumo
- CVV2, CVC2, CID e CAV2 são os nomes próprios de cada bandeira para o mesmo código de segurança impresso.
- O Amex é a exceção: 4 dígitos, impressos na frente.
- Nunca armazene o código após a autorização: o PCI DSS o trata como dado de autenticação sensível.
- Trate uma divergência de CVV como um resultado configurável e teste tanto a recusa quanto o caminho de falha suave.