Quickstart
Upload a payroll PDF and extract structured data in five steps.
Prerequisites
- A Parsify account with an API key
- A payroll PDF document to process
Step 1: Get an API Key
Create an API key from the Parsify Dashboard under Settings → API Keys. Make sure your key has the following scopes:
documents:writejobs:readjobs:write
Step 2: Upload a Payroll PDF
Upload your document to Parsify. The API accepts PDF files up to 25 MB.
curl -X POST https://api.parsifyhq.com/api/v1/documents/upload/ \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@payroll_journal.pdf"The response includes the document ID you’ll use in the next step:
{
"id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"filename": "payroll_journal.pdf",
"status": "uploaded",
"created_at": "2026-03-16T12:00:00Z"
}Step 3: Create an Extraction Job
Create a job to extract structured payroll data from the uploaded document.
curl -X POST https://api.parsifyhq.com/api/v1/jobs/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"document_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab"}'{
"id": "e5f6a7b8-1234-56cd-ef78-9012345678ab",
"document_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"status": "pending",
"created_at": "2026-03-16T12:00:05Z"
}Step 4: Poll for Completion
Extraction jobs run asynchronously. Poll the job endpoint until the status changes to completed.
curl https://api.parsifyhq.com/api/v1/jobs/e5f6a7b8-1234-56cd-ef78-9012345678ab/ \
-H "X-API-Key: YOUR_API_KEY"Step 5: Read the Canonical Output
Once the job is complete, the response includes the extraction result with structured, normalized payroll data and confidence scores.
{
"id": "e5f6a7b8-1234-56cd-ef78-9012345678ab",
"status": "completed",
"result": {
"confidence": 0.97,
"payroll_data": {
"pay_period": {
"start_date": "2026-03-01",
"end_date": "2026-03-15"
},
"employees": [
{
"name": "Jane Smith",
"gross_pay": 5250.00,
"net_pay": 3847.50,
"deductions": {
"federal_tax": 787.50,
"state_tax": 262.50,
"health_insurance": 175.00,
"retirement_401k": 177.50
}
}
],
"totals": {
"gross_pay": 5250.00,
"net_pay": 3847.50,
"total_deductions": 1402.50
}
}
}
}The canonical output follows a consistent schema regardless of which payroll provider generated the original document, making it straightforward to compare data across providers during a migration.
Next Steps
- Authentication — Learn about API key scopes and best practices
- API Reference — Explore the full API