Design Principles

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.

Transparency

There should be no magic. Calculations are clearly explained and easily understood.

Commentary

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.

Revisible Objects

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.

Asynchronous Jobs

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.

Platform Agnostic

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.

Language Agnostic

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.