Payslip PDF to Excel & CSV
Pricing
from $3.50 / 1,000 payslips
Payslip PDF to Excel & CSV
Turn payslip PDFs into rows: employee, pay period, gross pay, tax, deductions, net pay and every earnings and deduction line, plus one Excel file and CSVs. Billed per payslip delivered.
Pricing
from $3.50 / 1,000 payslips
Rating
0.0
(0)
Developer
Brandon Ob
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Payslip PDF to Excel & CSV: net pay, gross pay, tax and deductions
This payslip PDF to Excel converter reads payslip (pay stub) PDFs and returns one row per payslip: employee, employee ID, employer, pay period, pay date, gross pay, tax, total deductions and net pay, plus every earnings row (hours, rate, amount) and deduction row. You also get one Excel file for the whole run (a Payslips sheet and an Earnings & deductions sheet) and two CSV files, so you can sort, filter and report without retyping. You are charged per payslip delivered, never for a PDF that failed or was not a payslip.
What does Payslip PDF to Excel & CSV do?
- Extracts payslip header fields: employee name, employee ID, employer, period start and end, pay date, currency, gross pay, tax, total deductions and net pay.
- Extracts every earnings and deduction line: description and amount, plus hours and rate when the row has them (can be switched off).
- Checks each payslip:
checksOutistruewhen gross pay minus total deductions equals net pay, so a misread number shows up instead of slipping into your workbook. - Recognizes labels in English, with some German, French and Spanish ones ("Net pay", "Gross pay", "Netto", "Salaire net", "PAYE", "PAYG tax withheld" and more).
- Uses the current-period amount when a payslip also has a year-to-date column.
- Writes
payslips.xlsx,payslips.csvandearnings-and-deductions.csvfor the whole run, and opens password-protected PDFs with the password you give. - Includes a built-in sample payslip (input
sample) so you can see the output first.
Use cases
- Employees and contractors: turn a year of payslips into one spreadsheet to check pay, tax and overtime.
- Bookkeepers and payroll reviewers: compare gross, tax and net pay across employees and periods without retyping.
- Mortgage brokers and lenders: summarize an applicant's recent payslips, with a check that the numbers add up.
- HR teams: audit overtime, allowances and deductions across exported payslips.
- Automation builders: add a "payslip to rows" step after a document upload, then send the rows to Google Sheets.
How to use it
- Open the Actor in Apify Console. The default input,
sample, runs the built-in example; replace it with payslip PDF links, one per line. Each file must open in a browser without a login. - Optional: turn off Extract earnings and deduction lines if you only need the header fields and totals.
- Click Start.
- Open the Payslips view, download the dataset, or use the
excelUrlworkbook. - To process new payslips regularly, save your input as a task and schedule it, or call the Actor from the API.
Input
| Field | What it does |
|---|---|
pdfUrls | Direct links to payslip PDFs, one per line. sample runs the built-in example. |
extractLines | Also read every earnings and deduction row (on by default). |
pdfPassword | Optional; the same password is tried on every file. |
maxItems | Stop after this many payslips (default 100). |
Example input:
{"pdfUrls": ["sample"],"extractLines": true,"maxItems": 100}
Output
One dataset item per payslip. Real output from the default run (the synthetic sample payslip), shortened:
{"employeeName": "Jordan A. Sample","periodStart": "2026-10-01","periodEnd": "2026-10-31","payDate": "2026-10-30","currency": "AUD","grossPay": 5310.0,"tax": 1180.0,"totalDeductions": 1450.0,"netPay": 3860.0,"checksOut": true,"earnings": [{"description": "Ordinary hours", "amount": 4800.0, "hours": 160.0, "rate": 30.0},{"description": "Overtime", "amount": 360.0, "hours": 8.0, "rate": 45.0},{"description": "Allowances", "amount": 150.0}],"deductions": [{"description": "PAYG tax withheld", "amount": 1180.0}],"excelUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/payslips.xlsx"}
Each item also has employeeId, employer, pdfUrl, pages and extractedAt. The key-value store holds payslips.xlsx, payslips.csv, earnings-and-deductions.csv and a SUMMARY record that lists PDFs that could not be read or were not payslips. The dataset can be downloaded as JSON, CSV, Excel, XML or HTML, or read through the API.
Pricing
Pay per event: $5.00 per 1,000 payslips delivered, plus a $0.00005 charge per Actor start. PDFs that fail or are not payslips are not charged. You can set a maximum cost per run.
Discounts apply automatically on paid Apify plans: 10% off on Starter, 20% on Scale and 30% on Business.
Example: 12 monthly payslips cost about $0.06; 1,000 payslips for a small company's year cost about $5.00.
Integrations and API
Run it and get the payslips back in one call:
curl -X POST "https://api.apify.com/v2/acts/adhistory~payslip-pdf-to-excel/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{"pdfUrls": ["https://example.com/payslip-oct.pdf"], "extractLines": true}'
Python, with the apify-client package:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("adhistory/payslip-pdf-to-excel").call(run_input={"pdfUrls": ["https://example.com/payslip-oct.pdf"],})for slip in client.dataset(run["defaultDatasetId"]).iterate_items():print(slip["periodEnd"], slip["grossPay"], slip["netPay"], slip["checksOut"])
Like every Apify Actor, it also works with Make, Zapier and n8n, with webhooks and schedules, and as a tool for AI agents through the Apify MCP server.
FAQ
Does it read scanned payslips? No. It needs PDFs that contain real text, such as exports from payroll software. A scanned payslip (a picture of paper) fails with a clear message; there is no OCR.
A field is empty. Why? The payslip probably uses a label the Actor does not know, or none. Open an issue with the layout (no private data needed) and I will add the label.
How are dates handled? Dates are returned as YYYY-MM-DD when the order of day and month is clear (for example 31/10/2026). Ambiguous dates and dates with a month name are returned as printed.
How reliable are the earnings and deduction lines? They are a best effort. Rows with a description followed by numbers on one line work best. Multi-line descriptions and unusual column orders can split or merge rows; checksOut helps you spot problems.
Does it connect to my payroll system? No. It reads PDF files you provide. It does not connect to MYOB, Xero, QuickBooks or any payroll system.
Is my data safe? Files are processed in your own Apify run and results stay in your account's storage. Payslips are personal data: only submit files you are allowed to process. Up to 50 MB per PDF, from public links.
Related tools
- Bank Statement PDF to Excel & CSV: transactions and balances from bank statements.
- Invoice PDF to Excel & CSV: invoice numbers, totals and line items.
- PDF Table to Excel & CSV: every table from any text-based PDF.
- Google Sheets Export & Import: send payslip rows straight into a Google Sheet.
Found a bug or need a feature? Open an issue on the Issues tab — I usually reply within a day.