While designing the PayRun.io API, our aim was to create an enterprise level payroll solution available to anyone who wanted to include payroll in their software solution.
To ensure we met our goals, we made a pledge to adhere to a set of core design principles.
These core design principles have been at the forefront of all design decisions and make the API transparent and easily to implement for our consumers, whatever their preferred technology.
There should be no magic. Calculations are clearly explained and easily understood.
Each and every employee calculation results in a commentary report.
This report includes a full breakdown of the calculations made during the run and explains (in plain English) how the numbers were generated.
Rewind & Replay
The payroll calculations can be reversed and replayed as required.
Payroll data doesn't stand still. Each period changes are made to reflect the change to company, employee, pension schemes, etc. To support Rewind & Replay behaviour, our data objects include the entire history of changes: Revisions.
Time Scoped Pay Instructions
In addition to the revisible data, we also store the employee pay instructions along with the effective dates of the payment/deduction.
Using the historic revision data and time scoped pay instructions, we can ensure that the correct values are used during any rollback scenarios.
This also means that you don't need to re-enter the entire payroll history when making an amendment.
Scalability & Speed
The system should provide rapid response to all consumers regardless of load.
Long running tasks (pay run calculations, RTI transmission, etc) are completed via asynchronous background jobs.
Using the power of a cloud hosted system, we can instantly increase the number of queue worker processes and ensure that the system always provides a rapid response even in time of excessive load.
The hosting solution should not dictate the application architecture.
Hosting can be performed on any compatible hardware or virtualised environment. This allows us to support cloud based multi-tenancy, single-tenancy and self-hosted solutions.
Using HTTP based (RESTful) architecture the solution is language agnostic.
Our choice of development tools shouldn't force you to use them too.
The API is provided as a RESTful service, if your technology can communicate over HTTP, you can communicate with us.