How to Extract Brazilian Payslip Datato Excel — With INSS and IRRF

Article 464 of Brazil's CLT (Consolidação das Leis do Trabalho) mandates that every employer provide workers with a detailed pay statement — and by 2025, that document must carry four separate deductions (INSS, IRRF, FGTS, and optional contributions like vale-transporte or union dues) split across three progressive tax brackets that shift annually. Yet the most common tool HR teams use to analyze or consolidate this data across months and employees is still manual Excel entry — one payslip (holerite/contracheque) at a time.

Brazilian payslip holerite contracheque data extraction to Excel spreadsheet with INSS and IRRF withholding

Key Takeaways

  1. Keying 1,200 holerites into Excel is 40 unbillable hours per month — and the one digit you miss cascades through INSS liability, IRRF withholding, and FGTS accrual simultaneously.
  2. A single bracket misclassification compounds under CLT Article 467 into double the underpaid amount at termination — and template OCR cannot catch it because it breaks the moment your payroll provider changes the payslip layout.
  3. ImageToTable.ai finds "Salário Bruto" and "Desconto INSS" by understanding what the label means — so you stop copying numbers and start auditing payroll against the Receita Federal's progressive tax table.

Why Brazilian Payslips Are Harder to Automate Than They Look

The difficulty isn't the number of numbers on the page — it's that every payslip (holerite/contracheque) carries a chain of dependent calculations where one misread digit cascades through INSS liability, IRRF withholding, and FGTS accrual simultaneously.

Most payroll software in Brazil — TOTVS, ADP Brazil, Senior Sistemas, SAP SuccessFactors — exports perfectly structured holerite PDFs. But once those PDFs leave the payroll system, they become inert. An HR manager who needs to answer "what was the average INSS deduction across all São Paulo office employees over the last quarter" has no machine-readable path to that answer. The data exists on every individual payslip, but it is locked inside a PDF layout that varies across employers, payroll providers, and even across months for the same employee as new deduction categories appear (13th salary, vacation bonus, overtime, PLR profit-sharing).

What makes this worse than generic document extraction is that Brazilian payslips carry deductions governed by progressive tables that change annually. The INSS contribution rate (previdência social) uses four progressive brackets: 7.5% up to R$1,518.00, 9% from R$1,518.01 to R$2,793.88, 12% from R$2,793.89 to R$4,190.83, and 14% from R$4,190.84 up to the INSS ceiling (teto) of R$8,157.41. The IRRF income tax withholding (imposto de renda retido na fonte) runs five brackets — from exempt (isento) up to R$2,428.80, to 27.5% above R$4,664.68, with a monthly dependent deduction of R$189.59 — governed by Receita Federal's IRRF 2025 table under Lei nº 15.191/2025. On top of this sits the FGTS deposit (Fundo de Garantia do Tempo de Serviço) — 8% of gross salary, employer-paid under Lei nº 8.036/1990 — which appears on the holerite even though the worker never receives it directly.

When these rates change — as they did between January-April and May 2025, when the IRRF exemption threshold shifted from R$2,259.20 to R$2,428.80 — a manually maintained Excel template with hard-coded formulas instantly becomes outdated. The problem isn't extracting numbers. It's extracting the right numbers under the right rules for the right period.

Step by Step — Extracting Payslip (Holerite/Contracheque) Data into Excel

Unlike template-based OCR tools that require you to draw boxes around each field on a payslip — and break completely when a new deduction row appears or the layout changes between pay periods — Custom Column Extraction works differently: you type the field names you want (like "INSS Contribution", "IRRF Withheld", "Net Salary") and the AI locates each value anywhere on the page by understanding what the label means, not where it sits in the layout.

1
Upload your holerite. Drag in the PDF from your payroll system — TOTVS, ADP, Senior Sistemas, or even a smartphone photo of a printed payslip. The tool accepts PDF, JPG, PNG, WebP, and screenshots. Brazilian holerites printed on thermal paper or scanned from physical copies work — the AI reads the text regardless of source quality, up to the physical limits of the image.
2
Define your columns. Type the field names you need in the extraction interface. For a full Brazilian payslip analysis, a typical column set might be: "Employee Name", "CPF", "Gross Salary (Salário Bruto)", "INSS Contribution", "IRRF Withheld", "FGTS Deposit", "Net Salary (Salário Líquido)", "Reference Month (Mês de Referência)", "13th Salary Installment (13º Salário)", "Vacation Bonus (1/3 Férias)", "Overtime (Horas Extras)", "Vale-Transporte Discount". The column names you type become the exact headers of your output Excel file.
3
AI extracts and populates. The vision model scans your holerite, locates each field semantically — meaning it finds the "INSS" value even if your payroll provider labels it "INSS Contribuição" or "Previdência" or places it in a different column than last month's payslip — and fills the output table. This is the fundamental difference from template OCR: the AI understands the document, it doesn't just match coordinates.
4
Export to Excel. Hit export and download an XLSX file with every field populated. For a single payslip this takes 5–10 seconds. For batch processing, all holerites merge into one unified spreadsheet — one row per payslip, one column per field you defined.
JPG/PNG/PDF AI Extraction

Files are processed securely and not stored.

Verifying INSS and IRRF — Making Sure the Numbers Add Up

The moment you stop manually keying payslip data, you also stop noticing when the payroll software made an error — and payroll errors in Brazil, when they involve incorrect INSS or IRRF remittances, create liability for both employer and employee.

This is why extraction alone isn't the goal. Extraction gives you the data in Excel. Verification gives you confidence. And the fastest way to verify is to cross-check the extracted INSS and IRRF figures against the official progressive tables.

Here is the reference rate structure you need for any Brazilian payslip verification. Use the gross salary (salário bruto) from the holerite, match it to the bracket, and confirm the deduction matches the formula:

INSS Bracket (Faixa)Rate (Alíquota)Monthly Salary Range (Salário de Contribuição)
1ª faixa7.5%Up to R$1,518.00
2ª faixa9%R$1,518.01 to R$2,793.88
3ª faixa12%R$2,793.89 to R$4,190.83
4ª faixa14%R$4,190.84 to R$8,157.41 (teto)

INSS is calculated progressively — each bracket is applied only to the portion of salary within that bracket, then summed. The ceiling (teto) is R$8,157.41 in 2025.

IRRF Monthly Bracket (from May 2025)RateDeduction (Parcela a Deduzir)
Up to R$2,428.80Exempt (Isento)
R$2,428.81 to R$2,826.657.5%R$182.16
R$2,826.66 to R$3,751.0515%R$394.16
R$3,751.06 to R$4,664.6822.5%R$675.49
Above R$4,664.6827.5%R$908.73

Source: Receita Federal — Tabelas IRPF 2025, Lei nº 15.191/2025. Dependent deduction: R$189.59/month.

Once the holerite data is in your Excel sheet, add a verification column next to the extracted INSS value with a lookup formula against these brackets. If the extracted figure and the expected figure diverge, you've caught either a payroll software configuration error or an extraction issue — and either way, you caught it before it reached your accounting system or employee.

Payroll errors in Brazil carry outsized consequences. Under CLT Article 467, underpayment of wages — including incorrect deduction calculations — entitles the employee to double the underpaid amount if not corrected at the time of termination. A single bracket misclassification across a year of monthly payslips can compound into a substantial liability that surfaces during a labor audit (fiscalização trabalhista) or a termination settlement.

Batch Processing — When You Have 100 Holerites from 12 Companies

The single-payslip workflow answers the individual employee's question. But the volume scenario — which is where accounting firms (escritórios de contabilidade), payroll outsourcing providers, and multi-subsidiary HR departments operate — introduces compounding friction that a one-at-a-time approach cannot survive.

An accounting firm serving 30 client companies, each with an average of 40 employees, handles roughly 1,200 holerites per month. If each payslip takes even 2 minutes to verify key fields — INSS, IRRF, FGTS, net salary — and cross-check against eSocial submissions, that is 40 hours per month spent on what amounts to a compliance double-check. Every hour of that is billable to nobody.

Batch processing changes the equation. Upload all 1,200 holerites — even from 12 different payroll systems generating 12 different PDF layouts — in one batch. Define the columns once. The AI processes them together and outputs a single Excel file with 1,200 rows, each representing one employee-month. The column structure is uniform regardless of which payroll software generated each original holerite.

For multi-company accounting use cases, this means you can create per-client Excel tabs from a single batch run, or keep everything in one master sheet with a "Company Name" or "CNPJ" column for filtering. The output format is standard, even though the input formats were anything but — and that is the core value proposition for any firm handling Brazilian payroll at scale. For more on the batch approach across document types, see our guide on extracting Brazilian NF-e invoice data, which applies the same principle to procure-to-pay workflows.

From Holerite to eSocial — Where This Fits in Brazil's Compliance Workflow

Extracting holerite data into Excel solves the HR team's analysis problem. But in Brazil, every payslip has a second life as a compliance artifact. Since the introduction of eSocial (Sistema de Escrituração Digital das Obrigações Fiscais, Previdenciárias e Trabalhistas) under Decreto nº 8.373/2014, employers must electronically report payroll events — including remuneration (event S-1200), payments (S-1210), and periodic closures (S-1299) — through a unified government platform. The holerite your payroll software generates is the employee-facing summary of the same data that flows into eSocial.

When an eSocial audit flags a discrepancy between reported remuneration and actual deposits, the holerite becomes your primary evidence — and if your holerite data isn't readily accessible in an analyzable format, reconstructing that evidence becomes a document-hunting exercise across months of PDF files.

Having extracted holerite data in Excel enables two things that pure PDF storage cannot: (1) eSocial cross-validation — compare extracted INSS/IRRF/FGTS figures against the S-1200 submission values to catch mismatches before the tax authority (Receita Federal) does, and (2) rapid audit response — when the Ministério do Trabalho requests payroll records for a specific employee across a specific period (a common occurrence in Brazil's labor-intensive compliance environment, where companies must retain payroll records for a minimum of 5 years), you can filter, export, and respond in minutes instead of hours.

FAQ

Does this work with handwritten payslips or receipts?

Yes. ImageToTable.ai's vision model reads handwritten text — including cursive script — and can extract fields from photographed or scanned holerites that were printed, handwritten, or stamped. For employers still issuing manual payslips (common in smaller Brazilian businesses or informal employment arrangements), the tool handles the visual variety without requiring clean digital PDFs.

Can it handle payslips from TOTVS, ADP, or Senior Sistemas?

Yes. The AI extracts data semantically — it looks for labels like "INSS" or "IRRF" regardless of where they appear on the page or how the payroll software formats the payslip. There is no template to configure, so switching from one payroll provider to another (or processing holerites from multiple systems simultaneously) requires no setup change.

What if my holerite uses abbreviations or Portuguese-only field labels?

The AI understands Portuguese labels — "Salário Bruto", "Desconto INSS", "IRRF Retido", "FGTS do Mês", "Líquido a Receber" — and maps them to the English column names you defined. This is one area where semantic (meaning-based) extraction outperforms template OCR: a template expects a specific label string, while the AI understands that "FGTS do Mês" and "Depósito FGTS" mean the same thing.

Can I extract 13th salary and vacation bonus data?

Yes. Define columns like "13th Salary — 1st Installment" and "Vacation Bonus (1/3 Férias)" in your column set. When these items appear on a given month's holerite, the AI extracts the values. When they don't (i.e., months where no 13th salary or vacation was paid), those cells remain blank — your Excel file naturally reflects the presence or absence of these seasonal payments across months without any manual filtering.

Does the tool calculate INSS or IRRF, or only extract what's printed?

By default it extracts what appears on the document. But Computed Columns let you define calculations that run during extraction — for instance, a column called "IRRF Verification (Gross × Rate − Deduction)" can compute the expected IRRF from the extracted gross salary and compare it to what the payroll software printed. This turns extraction into an automated audit.

Payslip Data That Answers Questions, Not Just Files PDFs

A folder of 500 holerite PDFs tells you nothing — it is raw storage. A spreadsheet of 500 rows, each with date, CPF, gross salary, INSS contribution, IRRF withholding, FGTS deposit, and net pay, tells you the average INSS burden per salary band, the month your IRRF liability spiked, which employees crossed the exemption threshold, and whether your payroll provider changed a deduction rule without notifying you. That is the difference between having documents and having data.

Brazilian payroll carries more regulatory texture per payslip than most countries manage in an entire annual tax filing. Extraction without the ability to verify against progressive tables isn't automation — it's just faster copying. Extraction that puts every INSS line and every IRRF bracket into a structure where you can check the math, compare across periods, and reconcile against eSocial submissions turns the holerite from a compliance receipt into an operational dataset.

📮 contact email: [email protected]