Introduction to documentosbr / Introdução ao documentosbr

Rodrigo Borges

2026-03-31

documentosbr

English

The documentosbr package provides a high-performance suite for validating and handling Brazilian administrative records. It currently supports: - CPF (Individual Taxpayer Registry) - CNPJ (National Registry of Legal Entities) - PIS (Social Integration Program) - CNS/CNES (National Health Card)

The core is implemented in C++ using Rcpp, allowing for extremely fast validation even on datasets with millions of observations.

Validation Logic

Most Brazilian identifiers use “Module 11” checksums. While CPF and CNPJ share similar weighted-sum structures, the CNS (National Health Card) uses a dynamic algorithm that changes based on the starting digit (1-2 or 7-9).

Português

O pacote documentosbr oferece uma suíte de alta performance para a validação e manipulação de registros administrativos brasileiros. Atualmente, o pacote suporta: - CPF (Cadastro de Pessoa Física) - CNPJ (Cadastro Nacional de Pessoa Jurídica) - PIS (Programa de Integração Social) - CNS/CNES (Cartão Nacional de Saúde)

O núcleo é implementado em C++ via Rcpp, permitindo validações extremamente rápidas mesmo em bases de dados com milhões de observações.

Lógica de Validação

A maioria dos identificadores brasileiros utiliza o sistema de “Módulo 11”. Enquanto CPF e CNPJ compartilham estruturas de somas ponderadas similares, o CNS utiliza um algoritmo dinâmico que varia conforme o dígito inicial (1-2 ou 7-9).

Installation / Instalação

# From CRAN / Via CRAN
install.packages("documentosbr")

# Development version / Versão de desenvolvimento
# remotes::install_github("rodrigo-borges/documentosbr")

Basic Usage / Uso Básico

The valida_doc() function is the primary interface. It is vectorized and highly efficient. Use the type argument to specify the document and log = TRUE for detailed error reporting.
A função valida_doc() é a interface principal. Ela é vetorizada e altamente eficiente. Use o argumento type para especificar o documento e log = TRUE para relatórios detalhados de erro.
library(documentosbr)

# Vectorized validation / Validação vetorizada
cpfs <- c("12345678901", "56273869596")
valida_doc(cpfs, type = "cpf")

# Health Card (CNS) / Cartão Nacional de Saúde
valida_doc("123456789012345", type = "cnes")

Performance / Performance

By offloading validation to C++, documentosbr minimizes overhead in ETL pipelines, making it suitable for large-scale data cleaning tasks in administrative records.
Ao delegar a validação para o C++, o documentosbr minimiza o gargalo em fluxos de ETL, sendo ideal para tarefas de limpeza de dados em larga escala em registros administrativos.

Caso deseje uma saída mais verbosa a função pode ser chamada da seguinte forma:

library(documentosbr)
d <- valida_doc("56273869595", type = "pis", log = T)
dado resultado erros
56273869595 FALSE Primeiro digito errado

mirror server hosted at Truenetwork, Russian Federation.