The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.