40 Spanish Payslips,
One Spreadsheet
The penultimate day of the month is the deadline for Sistema RED transmission. Your payroll software — A3, Sage, NominaSol, PayFit — has already calculated every nómina correctly: base salary, complementos, Seguridad Social deductions split into five contribution types, IRPF withholding at each employee's individual rate, the employer's aportación empresarial at the bottom of every page. What it has not done is merge those forty individual PDFs into one table. And the RNT (Relación Nominal de Trabajadores, the per-worker Social Security contribution detail that replaced the old TC2 under the Sistema de Liquidación Directa since 2015) requires per-worker data. So does the Modelo 111 quarterly IRPF withholding declaration. Forty PDFs sit in a folder. The spreadsheet is empty. The deadline is approaching.
Key Takeaways
- Forty payslip PDFs sit in a folder and the Sistema RED deadline closes tomorrow — your payroll software calculated every number correctly but never consolidated them into one table.
- Three computed columns embedded in the extraction pass reduce the verification burden from forty rows down to the three to five rows whose formulas flag a discrepancy.
- Define your nineteen payroll columns once in ImageToTable.ai, batch all forty files, and the RNT cross-check happens before the Sistema RED confirmation instead of after — replicable every month regardless of how many payroll providers are in the folder.
Why Spanish Payroll Software Creates 40 Files But No Consolidated Spreadsheet
Spanish payroll software is not designed to produce spreadsheets. It is designed to calculate payroll correctly and transmit the results to the Tesorería General de la Seguridad Social (TGSS) through Sistema RED — the electronic filing system that handles monthly Social Security contribution reporting for every Spanish employer. Under the Sistema de Liquidación Directa (SLD), the employer transmits contribution bases per worker via a fichero de bases (bases file). The TGSS responds with the RLC (Recibo de Liquidación de Cotizaciones, formerly TC1) — the total amount the company owes — and the RNT (Relación Nominal de Trabajadores, formerly TC2) — the per-worker detail of contribution bases, days, and contract type.
This architecture creates a gap that every HR department and gestoría (payroll bureau) in Spain lives with. The payroll software generates individual payslip (nómina) PDFs as the legal receipt each employee must receive under Article 29 of the Estatuto de los Trabajadores. The software then transmits the aggregated contribution data to Sistema RED. But between the individual PDF and the aggregate transmission sits a black hole: no button in A3, Sage NominaPlus, or NominaSol consolidates those forty PDFs into one table for internal verification before the RNT is confirmed.
The consequence is a monthly ritual. Open each employee's nómina PDF. Locate the Total Devengado, the five Seguridad Social deductions (contingencias comunes 4.70%, desempleo 1.55%/1.60%, formación profesional 0.10%, FOGASA, and since 2023, MEI at 0.15%), the IRPF withholding, the employer's aportación empresarial at the bottom of the page. Type each number into a spreadsheet. Repeat forty times. Close the month. At a conservative two minutes per payslip — accounting for the visual scan to locate fields that move position across different payroll software layouts — a forty-employee company burns roughly eighty minutes per month on data transfer alone. Over twelve payroll cycles: sixteen hours. And that is before anyone attempts to cross-check the RNT totals against the individual payslip values.
A deeper look at the individual fields on a Spanish payslip and how extraction handles them is covered in our guide to extracting Spanish payslip data into Excel. This article picks up where that one ends: what happens when you go from one nómina to forty, and from a single PDF to a month-end reporting obligation.
The Monthly Filing Pipeline That Batch Processing Feeds Into
The value of consolidating forty payslips into one spreadsheet is not the table itself. It is what the table feeds next. Spanish payroll compliance runs on a monthly rhythm with two distinct data demands, and both pull from the same source: the individual nómina.
Sistema RED / RNT (monthly). The employer must transmit contribution bases to the TGSS through the Sistema RED platform. The presentation window opens on the first day of the month and closes on the penultimate day. The payment deadline is the last working day of the month for bank transfer, or the 20th for direct debit (domiciliación). Before confirming the RNT, any responsible payroll manager cross-checks: does the total of all employee CC bases in the RNT match the aggregate from the individual nóminas? Does the total employer aportación empresarial match the sum across all payslips? A discrepancy between the RNT draft and the underlying payslip data, if transmitted and paid, becomes a correction filing (rectificación) — and if caught during an Inspección de Trabajo, a sanction under LISOS.
Modelo 111 (quarterly). Every employer that withholds IRPF from employee salaries must file Modelo 111 with the Agencia Tributaria (AEAT) within the first twenty days following each quarter: April 1–20 (Q1), July 1–20 (Q2), October 1–20 (Q3), January 1–20 (Q4). Modelo 111 requires the total IRPF withholding (retención) across all employees for the quarter. The IRPF rate on a Spanish payslip is not a flat percentage — it is individually calculated for each employee based on their estimated annual income, family circumstances communicated via Modelo 145, and the autonomous community scale that supplements the state brackets (19%–47% progressive). Each employee's IRPF withholding amount lives on their individual nómina. The quarterly aggregate lives in your Modelo 111. The step between them is the spreadsheet. If that spreadsheet was built by manually transcribing forty nóminas, a single transposition error — typing 342.15 instead of 432.15 — means the Modelo 111 total is wrong and the AEAT reconciliation (which eventually surfaces in the employee's annual Modelo 100 tax return) flags a mismatch.
Beyond these two declarations, companies must also file the CRA (Conceptos Retributivos Abonados) monthly — a detailed breakdown of compensation concepts paid — and companies with 50 or more employees must maintain a registro retributivo (salary register) under Real Decreto 902/2020, disaggregating average salaries and supplements by gender and professional category. Both of these obligations pull from the same data that lives in forty individual nómina PDFs. Batch consolidation turns each of these filings from a data-hunting exercise into a pivot table built from one source.
If you are also managing payroll across European borders, the same batch consolidation principle applies to French bulletin de paie processing and German Lohnabrechnung batch extraction — the regulatory framework differs, but the operational gap between individual PDF and aggregate filing is the same in every European payroll market.
When One Nómina Becomes Three Layouts: Why A3, Sage, and NominaSol Break Fixed Templates
All Spanish payroll software generates legally compliant nóminas under the same Orden ESS/2098/2014 model. Each nómina must contain the same four blocks: encabezado (header), devengos (earnings), deducciones (deductions), and the bases de cotización panel with the employer's aportación empresarial. The fields are mandatory. Their position on the page is not.
A3 / a3innuwa Nómina (Wolters Kluwer), the dominant platform in gestorías and asesorías laborales managing payroll for multiple client companies, produces a multi-column layout with employer and employee data in distinct header blocks, devengos in a left-aligned table, deductions in a right-aligned table, and the bases de cotización panel at the bottom spanning the full width. Sage NominaPlus (and Sage 200 Laboral for larger companies) arranges the four blocks in a single vertical column — header at top, devengos below, deductions stacked underneath, bases panel at the bottom — with the IRPF withholding rate prominently displayed in the header alongside the NIF and CCC. NominaSol (Software DELSOL), popular with micro-SMEs for its free, perpetually updated model, uses its own single-column layout with a compact format that groups all deductions into a narrow table and places the aportación empresarial in a small panel below.
Three different PDF layouts. Same sixteen mandatory fields per payslip. A template-based extraction tool — one calibrated on an A3 PDF — reads field positions as pixel coordinates or bounding boxes. When a Sage NominaPlus payslip enters the same batch, the "Salario Base" field that was at (x=140, y=320) on the A3 layout is now at (x=80, y=280) in the Sage layout. The template reads the cell at the old position. It gets a different number — or a blank. The row comes out wrong. And if a company switched payroll providers mid-year — migrating from Sage to PayFit, for example — half the batch comes from one layout and half from another. Building and maintaining two templates for the same column definitions, then manually verifying that template #1 was applied to rows 1–6 and template #2 to rows 7–12, negates the time saved by batch processing in the first place.
This is where Custom Column Extraction changes the equation. Unlike template-based tools, semantic extraction reads each payslip by field meaning: the AI locates "Salario Base" because it understands that concept label, not because the label sat at a specific set of pixels in a training example. You define your column names once. The AI reads every payslip against the same semantic definitions. An A3 nómina from a construction company, a Sage NominaPlus nómina from the office staff, and a NominaSol nómina from a part-time employee all land in the same spreadsheet, each row aligned to the same columns, because the AI is reading what each field says rather than where it sits.
For a similar cross-provider batch scenario with payslips from a different system, see how the same approach handles Korean payslip consolidation across Douzone and ECOUNT — the payroll software names change, but the challenge of heterogeneous PDF layouts within a single batch is universal.
How to Batch Process 40 Spanish Payslips into One Payroll Summary Table
The extraction workflow for a forty-employee payroll batch is structurally the same as single-payslip extraction — but the column design, the batch-to-filing pipeline, and the verification step all change when scale enters the picture.
Files are processed securely and not stored.
Employee Name (Nombre Empleado)
Employee NIF
NAF (SS Number)
Pay Period (Periodo)
Base Salary (Salario Base)
Complements (Complementos)
Prorated Extra Pay (Prorrata Pagas)
Total Accrued (Total Devengado)
SS CC Worker (Cont. Comunes)
SS Unemployment Worker (Desempleo)
SS Training Worker (Formacion Prof.)
MEI Worker
IRPF Withholding (Retencion IRPF)
Total Deductions (Total a Deducir)
Net Pay (Liquido a Percibir)
CC Base (Base CC)
Employer CC (Aport. Empr. CC)
Employer Unemp. (Aport. Empr. Desempleo)
Employer Total (Aport. Empr. Total)
- Reconciliation check:
Total Devengado − Total a Deducir − Líquido a Percibir— should be zero. Any non-zero row is an immediate flag. - SS rate check:
CC Base × 4.70% − Cont. Comunes Worker— should be within ±1 €. Flags rows where the wrong base was read. - IRPF consistency: If you extract the IRPF rate percentage alongside the IRPF amount,
Base Sujeta IRPF × Rate% − Retencion IRPFflags withholding anomalies.
For teams that need to receive payslip files from multiple locations — remote employees, satellite offices, or outsourced payroll providers — a Collection Link lets each employee or office upload their nómina PDF directly. Files land in your processing queue automatically, eliminating the step of chasing PDFs by email before the batch run.
Verification at Scale: Why 40 Rows Become 3 Flagged Rows
The manual verification method for a single payslip — eyeball each field, confirm the numbers look right — does not scale to forty. You can spot-check two or three payslips after a batch extraction. You cannot spot-check forty and still beat the penultimate-day Sistema RED deadline. The verification method must shift from manual field-by-field review to outlier detection: scan the output for rows where computed relationships break, and review only those.
Three computed columns embedded in the extraction pass (Step 3 above) make this shift possible:
| Check | Computation | When to Investigate | Most Common Cause |
|---|---|---|---|
| Payroll balance | Total Devengado − Total a Deducir − Líquido a Percibir | Result ≠ 0 ±0.50 € | Deduction misclassified as earnings, or pagas extras line included in wrong subtotal |
| SS CC rate | CC Base × 4.70% − Extracted Cont. Comunes Worker | Deviation > ±1 € | Wrong base read — tool picked AT/EP base instead of CC base, or employee capped at maximum base (5,101.20 €/month in 2026) |
| Desempleo rate inference | Extract Desempleo amount / ATEP base. If ≈1.55% → Indefinido; ≈1.60% → Temporal | Rate matches neither | Fijo-discontinuo contract (uses 1.55%), or correction payslip with partial desempleo charge |
| MEI presence | Check if MEI line exists on payslip (introduced 2023, 0.15% worker share in 2026) | MEI present on some rows, absent on others | Employee in practice contract (contrato formativo) or other MEI-exempt category — not an error, but needs classification |
The desempleo rate check serves a second purpose: it identifies contract type without requiring a separate column from the payroll software export. An inferred column — where the AI classifies each row into a category based on document content — can output "Indefinido" or "Temporal" based on the desempleo rate printed on the payslip. This is useful for companies that maintain a master employee register where contract classification must be consistent, and where the payroll software export does not include this field in its PDF payslips.
For a broader setup on turning individual payslip records into a structured payroll register, the same Custom Column Extraction mechanism that feeds batch processing also feeds the register structure. The difference is frequency: batch consolidation is monthly, and the register is the cumulative output of twelve monthly batches.
FAQ
Can I batch process nóminas from A3, Sage, and NominaSol in the same run?
Yes. Custom Column Extraction reads field labels by meaning rather than position. "Salario Base" on an A3 nómina, the same label on a Sage NominaPlus payslip, and "S. Base" on a NominaSol payslip all map to the same extraction column. Define your column names once. The batch processes all forty files against the same definitions, regardless of how many different payroll providers or PDF layouts are in the folder.
How are employees with prorated pagas extras (extra payments) handled in the same batch as employees without?
When extra payments are prorated (prorrateadas) — spread across twelve monthly nóminas instead of paid in June and December — the devengos block shows a "Prorrata Pagas Extras" line. When they are not prorated, the June and December nóminas show a separate block with a much larger Total Devengado. If you extract a "Prorated Extra Pay (Prorrata Pagas)" column, the prorated employees get a value in that column every month; the non-prorated employees get a blank except in June and December. You can also define an inferred column that classifies each row as "Prorated" or "Non-Prorated" based on whether a paga extra line appears, making the annual salary analysis pivot-table ready.
What about the CRA (Conceptos Retributivos Abonados) filing — can batch extraction feed that?
Yes. The CRA is a monthly filing that breaks down compensation concepts per employee — base salary, complements, overtime, pagas extras, and any other earnings. Every one of these concepts already sits in the devengos block of the nómina. When you extract them as separate columns (Base Salary, Complements, Overtime, Prorated Extra Pay) rather than one "Total Devengado" column, the CRA filing data is already disaggregated in your extraction output. Summing each column across all employees gives you the CRA totals per concept, per month.
Does batch extraction handle scanned or photographed paper nóminas?
Yes. The AI reads the visual content of the page — not the text layer embedded in a digital PDF — so scanned documents, photos taken with a phone, and screenshots of employee portals all work in the same batch alongside native PDFs. This is particularly relevant for legacy payroll archives: paper nóminas from years before a company digitized its payroll can be scanned and batch-extracted into the same structured spreadsheet as current digital PDFs. Spanish employers must retain payroll records for five years, and batch extraction turns those archive boxes into searchable data.
How are correction payslips (nóminas de rectificación) handled in a batch?
If a correction payslip enters the same batch as regular monthly nóminas, it needs a classification column to distinguish it. An inferred column — where the AI reads the content and determines the document type — can output "Regular" or "Correction" for each row. Correction payslips often display both the original amount, the correction delta, and the new total. Without a classification column, the correction row's values can overwrite the original month's numbers in your pivot table without you knowing. With a classification column, you see both the original and the correction, and the audit trail is preserved.
Does batch extraction replace the payroll software?
No. Payroll software — A3, Sage, NominaSol, PayFit — calculates salaries, applies contribution rates, processes IRPF withholding at each employee's individual rate, handles the ever-changing regulatory updates, and transmits data to Sistema RED and the AEAT. Batch extraction takes the PDF output those systems produce and consolidates it for internal verification, cross-checking, and archival — a consolidation step the payroll software itself does not perform. The extraction output does not need to calculate anything. It needs to faithfully transfer the numbers the payroll software already calculated into a structured format that the RNT verification, Modelo 111, and the monthly payroll journal entry can all use as a single source.
Forty nómina PDFs, one folder, one deadline. The bottleneck is not the payroll calculation — your software already got that right. The bottleneck is the step between the PDF and the filing: the spreadsheet that should exist after payroll runs but before the RNT is confirmed and the Modelo 111 is filed. Batch extraction closes that gap. When forty payslips consolidate into one table in minutes instead of hours, the RNT cross-check happens before Sistema RED transmission instead of after. When every Seguridad Social contribution sits in its own column and IRPF is cleanly separated, tracing a discrepancy to one deduction line takes seconds instead of re-opening forty PDFs. The nómina data does not change. When it becomes available to act on does.