# September 29, 2025 

** September 29, 2025 Karbon API release adds the ability to request the tax and revenue breakdown from the invoice Data tab **
---

## Get Invoice Data
The Invoice API can now be queried to return all of the Work and Expense details from the invoice data tab by using `$expand=Data`.

This can also be used in conjunction with the invoice presentation line items and the payments expands:

```
GET /v3/Invoices/{InvoiceKey}$expand=LineItems,Payments,Data
```

Add any expand options you need when requesting an individual invoice:

- `$expand=LineItems` returns the invoice lines on the Presentation tab  
- `$expand=Payments` returns the payments showing on the Payments tab  
- `$expand=Data` returns information from the Data tab. Ad hoc invoices are broken down into their Work Items & Expenses, and recurring fixed fee invoices provide their Service details.

Refer to the [API documentation](https://karbonhq.github.io/karbon-api-reference) for examples and more information.

---

## Invoice Tax Location
The Invoice API now includes a new field `TaxLocation` which sets whether the tax was set on the Presentation tab (current) or the Data tab (new).

- Current ad hoc invoices are `TaxLocation=Presentation`  
- Future ad hoc invoices will be `TaxLocation=Data`  
- All recurring billed invoices are `TaxLocation=Data`

Tax details for the lines themselves are included where the tax is set in the UI:

- If `TaxLocation=Presentation`, the `LineItems` array has tax info and the tax fields in the `Data` array will be `null`.  
- If `TaxLocation=Data`, the `Data` array has tax info and the tax fields in the `LineItems` array will be `null`.

---

## Example API responses

### Example Ad Hoc invoice
Each Data line returns either a Work Item or a Client in the case of Client Time/Expenses.  
Each line includes `Work` and/or `Expenses` arrays depending on what is billed.  
The `Services` array will always be `null`.

```json
"Data": [
  {
    "EntityKey": "M4QTnt1srdD",
    "EntityType": "Work Item", // or "Client" or "Service"
    "Billed": 800,
    "Service": null,
    "Work": { ... },
    "Expenses": { ... }
  }
]
```

### Example Recurring fixed fee invoice
Each Data line returns a `Service`, and the `Work` and `Expenses` arrays are `null`.

```json
"Data": [
  {
    "EntityKey": "4lQzzVNBdHwq",
    "EntityType": "Service",
    "Billed": 150,
    "Service": { ... },
    "Work": null,
    "Expenses": null
  }
]
```
