kraBhfId, device serial, and sync/connection status.
Provisioning creates exactly one branch: Headquarters (kraBhfId = "00"). Use this API to add, inspect, and manage additional branches (e.g. "01", "02" for other stores).
Most integrations with a single-location business never need this page — Headquarters is enough. Reach for it once a customer has more than one physical branch reporting to KRA.
Two ways to call this API
The API-key surface only exposes list, add, initialize, remove, reconcile-kra-pin — not get/update by id. Use the JWT surface (or the dashboard) for those.
Identifiers — don’t mix these up
Branches involve four different IDs. Two of them are both informally called “branch id” in different places, which is the easiest mistake to make:
If a catalog/sales/stock call 404s with “branch not found,” the most common cause is passing the branch UUID (
id) where a branchKey was expected, or vice versa.
List branches
Add a branch
kraPin and environment are not accepted here — every branch of a taxpayer shares the Headquarters branch’s PIN and environment automatically.
This runs the same create-branch → OSCU-shell → initialize sequence provisioning ran for Headquarters, synchronously. Returns the new branch (201).
Errors: 400 if the company hasn’t been provisioned yet, or provisioning is incomplete; 409 if a branch with that kraBhfId already exists for the company.
Get / update a single branch
(JWT surface only.){branchId} here is the branch UUID (id), not the branchKey.
PATCH body — only mutable fields; kraBhfId and branchKey cannot be changed after creation:
Re-initialize a branch
status shows failed (e.g. the device serial was wrong, or KRA was briefly unreachable during add).
Remove a branch
400) — disconnect eTIMS for the company instead if you need to start over. Returns { "deleted": true }.
Reconcile KRA PIN (one-time backfill)
kraPin recorded. Most integrations will never need to call this.
Branch object
Read next
- Provisioning — how the Headquarters branch gets created
- API Reference — operational endpoints that consume
branchKey - Tracking Results — branch
statusvs per-transaction sync status