Docs API Reference Batch Upload

Batch Upload

Upload a CSV or JSON file containing payroll shift data for bulk compliance review.

POST /api/v1/batches/upload

Each row is checked against award minimum rates, overtime rules, and penalty rate requirements.

Request

Send the file as multipart/form-data:

curl -X POST /api/v1/batches/upload \
  -H "Authorization: Bearer ak_KEY:sk_SECRET" \
  -F "file=@payroll_data.csv"

Supported formats

  • CSV (.csv)
  • JSON (.json)

Maximum file size

10 MB (up to 50,000 rows)

Required CSV columns

ColumnDescription
award_codeModern Award code (e.g. MA000009)
classificationClassification level (e.g. HI1, RE1, L1Y1)
emp_typeEmployment type: ft, pt, or cas
dateWork date (YYYY-MM-DD or DD/MM/YYYY)
start_timeShift start (HH:MM, 24h)
end_timeShift end (HH:MM, 24h)

Optional CSV columns

ColumnDescription
break_minutesUnpaid break duration (default: 0)
employee_refEmployee identifier for tracking in results
is_public_holidaytrue / false (default: false)
actual_payActual pay amount for underpayment comparison

Example CSV

award_code,classification,emp_type,date,start_time,end_time,break_minutes,employee_ref,actual_pay
MA000009,HI1,ft,2026-03-16,09:00,17:00,30,EMP-001,195.00
MA000004,RE1,cas,2026-03-21,06:00,14:30,30,EMP-002,210.00
MA000002,L1Y1,pt,2026-03-16,08:00,13:00,0,EMP-003,120.00

Response

{
  "batch_id": "b7a1c2d3-e4f5-6789-abcd-ef0123456789",
  "status": "queued",
  "total_rows": 3,
  "message": "Batch uploaded and queued for processing"
}

Batch processing

Processing happens asynchronously. Use the Batch Results endpoints to check progress and retrieve results.

Errors

StatusCause
400Invalid file format, missing required columns, or file too large
401Invalid credentials
429Rate limit exceeded