cnpjcpf.
Código · Ruby

CPF e CNPJ em Ruby

Funções em Ruby puro (só a biblioteca padrão) para validar CPF e CNPJ — já com o formato alfanumérico. Cada tarefa tem sua página com o código completo e os casos de borda.

Por tarefa

Início rápido

A validação de CPF em um método, sem nenhuma gem:

Ruby
def valid_cpf?(cpf)
  cpf = cpf.gsub(/\D/, '')
  return false if cpf.length != 11 || cpf.chars.uniq.length == 1
  (9..10).each do |i|
    soma = (0...i).sum { |j| cpf[j].to_i * ((i + 1) - j) }
    dv = (soma * 10 % 11) % 10
    return false if dv != cpf[i].to_i
  end
  true
end

Página completa, com a função inteira e os casos de borda: validar CPF em Ruby.

publicidade

Prefere uma gem?

Para projetos maiores, vale usar uma gem mantida: cpf_cnpj (de fnando) já traz validação, geração e formatação de CPF e CNPJ — e suporta o formato alfanumérico. Outra opção é brazilian_documents (de fidelisrafael). Confirme o suporte ao CNPJ alfanumérico na versão que você instalar.

Continue

Perguntas frequentes

Preciso de alguma gem para validar CPF e CNPJ em Ruby?
Não. As funções usam só a biblioteca padrão (regex e String#chars). Para projetos maiores, há gems mantidas como cpf_cnpj (de fnando, que já suporta o alfanumérico) e brazilian_documents (de fidelisrafael).
O mesmo código valida o CNPJ alfanumérico de 2026?
Sim. A função valid_cnpj? trata a base como 12 caracteres alfanuméricos (A–Z, 0–9) com a conversão caractere.ord − 48; o numérico é caso particular. Os 2 dígitos verificadores continuam sempre numéricos.
Válido é o mesmo que existir?
Não. As funções conferem a consistência matemática (módulo 11), não se o documento foi emitido pela Receita Federal.
Código em Ruby verificado. Algoritmo módulo 11 (numérico e alfanumérico). Revisado em 06/2026.