Developers
One contract, generated outward.
One definition. Docs, SDK, tools, and reference are generated from it — nothing to keep in sync, nothing to drift.
The contract
Defined in Zod, emitted everywhere.
Schemas are written once and generated outward. The reference cannot describe an endpoint that no longer exists.
- Zod as the single source
- OpenAPI, SDK, MCP and docs generated
- Drift fails the build, not a review
Drift fails the build, not a review.
MCP
The same surface, for agents.
Tools are emitted from the contract, not written against it. Agents and client libraries see the same operations, types, and constraints.
- Tools generated, not hand-written
- Same types and constraints as the SDK
- No agent-only surface
MCP tools
Generated from the contract. No agent-only surface.
Country packs
Write a jurisdiction against the published contract.
A country pack is a versioned bundle: rule data with provenance, calculation code, form generators, bank-file writers, and mandatory golden fixtures.
- Rule data, code, forms and bank files in one bundle
- Golden fixtures are mandatory
- Conformance gates what may load
Malaysia · v2026.8
Frequently asked questions.
01.Is the OpenAPI document generated or written?
Generated, and checked. `docs/openapi.json` is emitted from the contract package and a drift check fails CI if it stops matching. Hand-editing it is not a supported workflow.
02.Can I write a country pack for another jurisdiction?
That is what the published contract is for. A pack takes wage bases, employee facts, a statutory month and a year-to-date ledger, and returns explained contribution lines. First-party packs live in this repository; partner packs live in their own against the same contract.
03.What authentication does the API use?
Not documented yet. The authentication section is written once the public surface is deployed — describing an auth model before it is running is how a reference starts being wrong, and being wrong about auth is the worst way for it to be wrong.
04.Are there webhooks?
Not yet. This answer fills in when there is a real event catalogue rather than an intention to have one.
Build against a contract
that cannot drift.
The OpenAPI document, the SDK and the MCP tools all come out of one definition, and a drift check fails the build if any of them stops matching.