A settled working week
The worker has fixed hours. Their leave is simply administered in hours rather than days.
POST /v1/entitlement/hours
A 25‑hour, five‑day part‑timer gets 5.6 weeks of their own working week.
A UK statutory holiday entitlement and holiday pay API for HR, workforce and payroll platforms. Seven calculations, every ruleset keyed to the date it took effect.
Move the slider. This is the working the API returns for an irregular‑hours worker, calculated here the same way: exact arithmetic, rounded once, at the end.
Every response carries it as calculation_basis, alongside the ruleset_effective_date it was answered under.
POST /v1/entitlement/irregular-hours
Most of what you are buying is knowing which one applies.
The worker has fixed hours. Their leave is simply administered in hours rather than days.
POST /v1/entitlement/hours
A 25‑hour, five‑day part‑timer gets 5.6 weeks of their own working week.
Irregular‑hours and part‑year workers, accruing 12.07% of the hours they actually work.
POST /v1/entitlement/irregular-hours
Regulation 15B, in force for leave years starting on or after 1 April 2024.
Applying 12.07% to a fixed part‑timer understates their entitlement. The API will not choose between them for you: the answer depends on the worker’s contract, which the request does not carry.
The same trap sits in the pay pair. Both /pay/holiday-pay and /pay/pay-in-lieu involve a 52, and they are different 52s: one is a window of past paid weeks to average, the other is a divisor turning annual salary into a weekly rate. They coincide by convention, not derivation.
Bearer auth on everything except /health. JSON in, JSON out, with the ruleset it was answered under.
Fixed‑hours workers, pro‑rated across a partial leave year
Hours accrued by the 12.07% method
Fixed‑schedule part‑timers and shift workers, leave counted in hours
The running balance as at a given date
Holiday accrued while off sick or on statutory leave
52‑week reference period average, for pay that varies
Payment in lieu of leave left untaken at termination
Every published ruleset
The ruleset in force today, machine readable
The ruleset in force on any date
The one published today. A leave year that started under it is answered under it, however late you ask.
Applies to leave years starting on or after its own date. Nothing already answered moves.
Every calculation resolves its ruleset from the leave year start rather than from today, so when new regulations ship, a leave year that began under the old ones still gets the answer it got then. That is what makes a bulk recalculation safe to run. Pin it explicitly with ruleset_date when you need to.
The rules endpoints return the rates, caps and rounding behaviour that produced a figure, so you can show where it came from. Contractual entitlement below the statutory minimum is accepted and flagged as below_statutory_minimum, never silently corrected.
Metered per call. Prices are illustrative until launch.
Building the integration
1,000 calls a month
One product, live customers
50,000 calls, billed monthly
A platform calculating for many employers
500,000 calls, billed monthly
Calls over the included allowance are £1.40 per thousand. Yearly billing is ten months for twelve.