FairCheck HR in your Pocket

Integrations

The Integrations page is where payroll data gets into FairCheck without anyone uploading a file. There are two routes in: push pay runs to FairCheck's signed webhook from your own systems, or connect a payroll platform and let FairCheck pull the data. Either way, every payslip that arrives goes through the same compliance checks as an uploaded one.

Anyone can view the page, but your real webhook key and signing secret only appear when you are signed in, and connecting, changing, syncing or disconnecting a provider — and rotating the signing secret — is limited to account admins (see Team members).

Send pay runs to our webhook

The Endpoint card shows the URL to POST pay-run payloads to, together with two credentials that belong to your account:

  • Webhook key — sent as the X-Faircheck-Key header so FairCheck knows which account is pushing. It starts with whkey_ and, as the page says, is "Safe to embed in config".
  • Signing secret — starts with whsec_ and is used to compute the request signature. Treat it like a password and never expose it client-side.

Both have a copy button when you are signed in.

Each request must carry these headers:

Header What it holds
X-Faircheck-Key your account's webhook key (whkey_…)
X-Faircheck-Signature HMAC-SHA256 of "<timestamp>.<raw body>", keyed with your signing secret
X-Faircheck-Timestamp unix seconds; rejected if more than 5 minutes from now
Idempotency-Key your own unique id per payslip (optional but recommended, so a retry never double-checks a pay run)
Content-Type application/json

The page lists the response codes you can expect:

Code Meaning
202 Accepted — queued for compliance
400 Malformed payload
401 Missing / invalid signature or stale timestamp
409 Duplicate (idempotency key seen)
429 Rate limited — retry with backoff

A delivery can contain up to 100 payslips. Accepted payslips are queued straight away and evaluated asynchronously.

Rotate secret

Rotate secret issues a new signing secret. The previous secret keeps verifying for 24 hours, so you can roll keys in your own systems without downtime — the confirmation reads "Rotate the signing secret? Your current secret stops working in 24 hours." During that window both the current and the previous secret are accepted.

The full payload contract, the example request, and the outbound payslip.completed notification are documented at /developers/webhooks.

Choose your payroll platform

The Connect an app gallery lists every platform FairCheck knows about. Each card shows the provider's status and how it authenticates.

Provider Status Authenticates with What FairCheck pulls
Xero Payroll Available Secure OAuth connection Employees, posted pay runs and payslips from Xero Payroll (AU)
MYOB AccountRight Available Secure OAuth connection, plus the company file's own sign-in Employees and timesheet hours by date. Pay runs are not pulled — the hours attach to payslips you upload for the same period
Employment Hero (KeyPay) Available API key and Business ID Pay runs and payslips, plus rostered and actual hours
Deputy Coming soon Secure OAuth connection —
QuickBooks Payroll Coming soon Secure OAuth connection —
Reckon Payroll Coming soon API key —
ADP Coming soon Secure OAuth connection —

"Coming soon" cards show a disabled Notify me button and cannot be connected. If your platform is not listed, push data via the webhook instead, or use ask us to add it.

Every connection is read-only. FairCheck never writes back to your payroll system or changes anyone's pay.

None of the three live providers publishes a payroll webhook FairCheck could subscribe to, so polling is the automatic option for all of them: FairCheck checks each connected provider for completed pay runs every hour, and pulls roster and timesheet feeds every four hours. The first pull of pay runs reaches back 90 days; roster pulls cover the last 60 days.

Provider notes worth knowing before you connect:

  • Xero Payroll — only posted pay runs are read; drafts are skipped because they can still change.
  • MYOB AccountRight — timesheets record a date and a number of hours, with no start or finish times. That settles weekend, public-holiday and overtime questions, but evening and night penalties can't be checked from this feed.
  • Employment Hero (KeyPay) — approved timesheets count as evidence of the hours worked, which is what lets a result claim an actual dollar figure rather than only flag something as Worth checking.

Connecting a provider

Click Connect on an available card (or Log in to connect if you are signed out) to open that provider's setup page. It lists the steps under How it works and the read-only scopes FairCheck will request.

OAuth providers (Xero, MYOB)

Click Continue to . You are sent to the provider to sign in and approve access, then returned to FairCheck. If you granted access to more than one organisation, an Organisation selector appears once connected so you can pick which one to pull from.

MYOB needs a second credential. Your my.MYOB sign-in reaches the list of company files, but opening a file needs that file's own username and password. After authorising, the setup page shows Company file sign-in needed, with:

  • Company file — a selector, if more than one file was shared
  • File username — defaults to Administrator
  • File password — leave blank if the file has none

Click Open company file. FairCheck stores the credentials encrypted and checks the file actually opens before keeping them; if MYOB rejects them, the previous working credentials are put back and you are asked to check the username and password. On success a sync is queued and you are taken to the Employers page: "Last step: pick the employer, then set each person's award." You can update the file sign-in later from the same card (Update file sign-in).

API key providers (Employment Hero)

Enter your Business / Company ID and a read-only API key, then click Connect. The key is stored encrypted, and FairCheck checks it works before saving, "so a mistyped key can't sit there looking connected while nothing syncs."

After connecting

Once connected, the setup page shows a Connected chip and:

  • Last synced — when the last pull finished, or "never".
  • Sync now — queues a pull immediately instead of waiting for the hourly poll. This is limited to five requests a minute.
  • For Xero, a Setup checklist showing how many pay items are mapped and how many employees have an award, with Pay items and Employers buttons. Until pay items are set, "every line would be priced as ordinary hours".

Two things need to be in place before a result from a connected provider means anything: what each pay item is (see What does each pay item mean?) and which award each person is on (set on the Employees screen, the same place used for uploaded payslips).

Needs reconnecting

If the provider rejects FairCheck's authorisation — it expired or was revoked at their end — the chip changes to Needs reconnecting and the page says Syncing has stopped. Nothing syncs until you click Reconnect and approve access again.

Sync mode

The How should payslips flow in? form on a connected provider's setup page offers:

  • Poll on a schedule — "We check for completed pay runs every hour."
  • Push via webhook — " notifies us the moment a pay run is finalised." This option is only offered for providers that publish payroll webhooks, which none of the live providers do, so you will not see it today.
  • Fixed / manual — "No automatic sync — import runs on demand."

Click Save sync mode to apply. Sync now is available whichever mode is selected.

Disconnect

Disconnect from (or plain Disconnect for a simulated provider) removes the connection. The confirmation reads "This removes FairCheck's access to and stops all syncing. Continue?"

  • For OAuth providers, FairCheck also revokes the grant at the provider, so it disappears from your connected-apps list there. If the provider can't be reached, FairCheck still disconnects on its side and asks you to also remove FairCheck under the provider's Settings → Connected apps.
  • For API key providers, the key was issued by you, so revoke it in the provider's own admin.

What does each pay item mean?

Payroll platforms let each organisation name its own pay items — "Ordinary Hours", "Lumpsum W", "Sat Penalty" — and FairCheck can't price a payslip until it knows which of those are hours someone worked and which are allowances. Hours are checked against the award minimum wage; allowances are not. Marking an allowance as hours would compare a flat payment against an hourly floor and report an underpayment that isn't real.

The mapping page (Pay items on the setup page) lists every pay item the provider returned, with three columns: Name in , How it's paid (the provider's own hint, for example "Paid per hour", "A multiple of the ordinary rate" or "A fixed amount" for Xero), and What it is — a dropdown grouped into Hours worked and Allowances.

The options are:

Option Meaning
Ordinary hours Normal working hours at the base rate.
Saturday hours Hours worked on a Saturday, usually paid at a higher penalty rate.
Sunday hours Hours worked on a Sunday.
Public holiday hours Hours worked on a gazetted public holiday.
Evening / afternoon hours A loading for finishing late in the evening.
Night hours A loading for an overnight or graveyard shift.
Overtime hours Hours beyond ordinary hours. The only kind of hours that doesn't count towards super.
Paid leave hours Annual, personal/sick or long service leave — paid time not worked.
Allowance that counts towards super A regular payment on top of wages forming part of ordinary time earnings — a tool, leading-hand or industry allowance.
Allowance that does NOT count towards super A payment that isn't ordinary time earnings — a reimbursement, meal or travel allowance, or a termination payment.

If you are not sure whether an allowance counts towards super, leave it as "does NOT count towards super" — FairCheck then treats it as uncertain and widens the range it accepts, rather than reporting a super shortfall that may not exist.

Suggestions and confidence

For Xero, every row arrives pre-filled with a suggestion, read from the item's name in Xero and how it is paid, and a badge saying how sure FairCheck is:

Badge What it means
Saved You have already chosen this; a saved choice always wins over a suggestion.
Xero says this is an ordinary pay rate Xero itself records this as someone's ordinary pay — the strongest evidence.
Suggested from the name The name was descriptive enough to decide.
Best guess from how it's paid — please check Decided from the rate type and multiplier; give it a second look.
Best guess — please check An AI guess for a genuinely ambiguous name; give it a second look.
Not sure — assumed ordinary hours, please check Nothing pointed anywhere; defaulted to ordinary hours.

Other providers get plain dropdowns without suggestions. Click Save and continue to store the mapping and move on to the Employers page to set each person's award. You can come back and change the mapping at any time; a wrong answer only means a compliance result you shouldn't trust, so fix it and re-check the affected payslips.

When there is nothing to map

  • If the Xero organisation doesn't have Payroll enabled, the page redirects back to setup with: "This Xero organisation doesn't have Payroll enabled, so there's nothing for FairCheck to read. Turn on Payroll in Xero, then come back."
  • MYOB has no pay items to map, because pay runs are not pulled from it; opening the mapping page redirects with "MYOB AccountRight has no pay items to map."
  • If the provider's authorisation has lapsed, you are asked to reconnect before editing the mapping.