Build payroll into your product.

Provision Kua HR companies, employees, and payroll runs from your own platform. REST, signed webhooks, sandbox-first.

Full reference

Read the API docs

Every endpoint, every example response, every webhook payload — interactively explorable.

From zero to first company in three steps.

No SDK install needed. The API speaks plain JSON over HTTPS, and the response shape is the same for every endpoint — so the parser you write today still works for the endpoint we ship next quarter.

  1. 01

    Get your API key

    Email engineering@kuahr.com for partner access, or generate a tenant key inside your Kua dashboard under Settings → Developer.

  2. 02

    Pick an environment

    Build against sandbox-api.kuahr.com. The schema and code paths are identical to api.kuahr.com. No real Naira moves.

  3. 03

    Send your first request

    Authenticate with a Bearer token, send an Idempotency-Key, and get JSON back with the predictable success envelope.

POST /api/v1/partner/companies
curl -X POST https://sandbox-api.kuahr.com/api/v1/partner/companies \
  -H "Authorization: Bearer pk_sandbox_abc12345..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Nigeria Ltd",
    "rcNumber": "RC1234567",
    "admin": {
      "email": "founder@acme.ng",
      "firstName": "Ada",
      "lastName": "Okafor"
    }
  }'

Swap pk_sandbox_ for pk_live_ and sandbox-api for api when you go live.

Six primitives, one onboarding flow.

Everything an HR admin can do from the Kua dashboard, you can do from your own product. Your customers never need to leave your UI to get paid.

Companies

Create a Kua HR tenant on behalf of your customer in one call. Co-branded onboarding email is sent automatically.

Employees

Add, update, and offboard employees. Records are preserved for audit and payslip history.

Payroll runs

Calculate gross, PAYE, pension, NHF, BIK, and net pay. Submission stays a deliberate human step in-dashboard.

Signed webhooks

Stop polling. Get HMAC-signed events for company.created, employee.added, payroll.run.completed and more.

Two key types

Partner keys (pk_*) for platforms managing many companies. Tenant keys (ck_*) for a single company integrating its own systems.

Sandbox

Identical code paths to live, with stub disbursement. pk_sandbox_* keys can never touch real money.

The dull, important stuff is already handled.

Idempotency, signed webhooks, sandbox isolation, rate-limit headers — wired in from day one so you can spend your time on the integration, not the plumbing.

Constant-time key checks

Keys are SHA-256 hashed at rest. Validation uses constant-time comparison against the prefix index.

Idempotency, 24h

Send the same Idempotency-Key on retries — same body replays the original response, different body returns 409.

HMAC-SHA256 webhooks

Every delivery carries a t=…,v1=… signature header. Verify against the raw body inside a 5-minute window.

OpenAPI 3.1, native

Spec ships with hand-written request and response examples for every endpoint, plus a top-level webhooks section.

Webhook signing

Every delivery is provably from Kua.

HMAC-SHA256 over the raw request body, signed with your endpoint's secret. Reject anything more than five minutes old, and compare with a constant-time check.

X-Kua-Event:       payroll.run.completed
X-Kua-Delivery-ID: 42198
X-Kua-Signature:   t=1714387200,v1=8a4f8c1d…

// Verify
const signed = `${t}.${rawBody}`;
const expected = hmac("sha256", secret, signed);
crypto.timingSafeEqual(v1, expected); // → true

Which integrator are you?

Platform

Partner integration

For platforms managing payroll on behalf of many businesses.

  • pk_live_* keys, scoped to your account
  • Co-branded onboarding emails to your customers
  • Webhooks aggregated across all companies you provision
Email engineering@kuahr.com
Single company

Tenant integration

For a single company syncing its own HR or accounting tools.

  • ck_live_* keys, self-served from your dashboard
  • Implicitly scoped — no company ID in URLs
  • Webhook endpoints managed by your HR admin
Open Settings → Developer

Ship the integration this week.

Everything you need is in the reference. Spec, examples, error codes, webhook payloads — all interactive.