GET
/api/public/v1/tax-liability

Get 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.

taxes:read

Query Parameters

NameTypeRequiredDescription
legalEntityIdstringRequiredWhose liability to compute.
taxYearnumberOptionalDefaults to the current UTC year.
GETExample request
curl
curl -X GET "https://www.pxb.app/api/public/v1/tax-liability" \
  -H "Authorization: Bearer your_access_token"
200Example response
json
{
  "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.

Finances → Taxes
/finances/taxes