Skip to main content

Async Payroll Imports and Pay Schedule Webhooks

This release makes payroll imports more scalable and gives integrators more visibility into pay schedule changes. Teams running larger payroll imports and partners building event-driven integrations benefit most.

Highlights

  • Asynchronous payroll import: importRegularPayrollData and importDifferentialPayrollData now validate immediately and process accepted imports in the background.
  • Pay schedule webhooks: New events notify your systems when pay schedules are created or their status changes.
  • $0 wage rate support: Payroll import and wage workflows now support employee wage rates of $0 where applicable.

New Features

๐Ÿ”น Asynchronous payroll imports

importRegularPayrollData and importDifferentialPayrollData both support an asynchronous completion flow.
  • After request validation succeeds, the API returns a Pending response and continues applying payroll changes in the background instead of holding the request open until every payroll mutation finishes.
  • During that import window, getPayPeriodDetails returns a 400 response so clients do not display stale payroll data while the import is still being applied.
  • When the import finishes, Rollfi sends the payperiod.payperiodstatus.update webhook. That update does not introduce a new completion status. Instead, it restores the pay period to the same status you observed before the import began, while signaling that background import processing has completed.
    • For example, if the pay period was new before the import started, the completion webhook will surface that pay period as new again. If it was cancelled before the import started, the completion webhook will surface cancelled again. In other words, the return to the prior visible pay period status is the signal that the async import window has closed and it is safe to re-fetch payroll details.
  • When some employee-level mutations fail during async processing, the same payperiod.payperiodstatus.update webhook can include a top-level error object summarizing those failures.
Example completion webhook with partial failures:

๐Ÿ”น Pay schedule webhook events

  • Your systems can now react automatically when pay schedules change. Two new webhook events are available:
    • payschedule.paysheduleisactive.insert โ€” sent when a pay schedule is created.
    • payschedule.paysheduleisactive.update โ€” sent when a pay scheduleโ€™s status changes.
๐Ÿ“ Review the PaySchedule webhook overview for payload details and delivery behavior.

๐Ÿ”น Support for $0 wage rates

Rollfi now supports employee wage rates of $0. This allows clients to onboard employees with commission only wage structures who do not require differential pay.

โš ๏ธ Notes for Integrators

If you consume webhooks with retries enabled, remember that events may be delivered more than once. Continue to use idempotent processing.
  1. Update any importRegularPayrollData client flow to handle Pending responses.
  2. Avoid rendering payroll details until getPayPeriodDetails succeeds after import completion.
  3. Review the PaySchedule webhook overview if you build event-driven integrations that could benefit.