/api/public/v1/tax-liabilityGet tax liability
What a legal entity owes for a tax year, and how that number has moved. Reading recomputes the snapshot first, so the figure is current rather than whatever the last transaction left behind — the recompute is debounced on a hash of its inputs, so asking twice in a row costs one read rather than two computations, and a recompute failure returns the last good snapshot instead of an error. `history` is every snapshot for the year in order, which is what a chart of the liability over time is drawn from. All amounts are cents.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Settings → Company → API, and to a teammate under Employee → Permissions.
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
legalEntityId | string | Required | Whose liability to compute. |
taxYear | number | Optional | Defaults to the current UTC year. |
curl -X GET "https://www.pxb.app/api/public/v1/tax-liability" \
-H "Authorization: Bearer your_access_token"{
"message": "Tax liability retrieved",
"content": {
"current": {
"taxYear": 2026,
"grossIncome": 42000000,
"totalDeductions": 9800000,
"netIncome": 32200000,
"federalIncomeTax": 6100000,
"selfEmploymentTax": 4550000,
"stateIncomeTax": 1300000,
"salesTaxCollected": 210000,
"totalEstimatedTax": 11950000,
"estimatedPaymentsMade": 6000000,
"remainingLiability": 5950000,
"quarterBreakdown": []
},
"history": []
}
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.