> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# See tax rates applied to adjustments in webhooks

Adjustment webhook payloads now include a `tax_rates_used` array, giving you a breakdown of the subtotal, tax, and total for an adjustment, grouped by tax rate

---

## What's new?

We've added a new `tax_rates_used` array to the [`adjustment.created`](https://developer.paddle.com/webhooks/adjustments/adjustment-created.md) and [`adjustment.updated`](https://developer.paddle.com/webhooks/adjustments/adjustment-updated.md) webhook payloads. This groups adjustment amounts by tax rate, showing the subtotal, tax, and total for each rate applied.

- **tax_rates_used** (object): List of tax rates applied for this adjustment

## How it works

You can use [adjustments](https://developer.paddle.com/api-reference/adjustments/overview.md) to refund or credit all or part of a [transaction](https://developer.paddle.com/api-reference/transactions/overview.md) and its items. Previously, webhook payloads included the adjustment total broken down by subtotal and tax, but didn't show which tax rates were applied to the adjustment.

We've updated the [`adjustment.created`](https://developer.paddle.com/webhooks/adjustments/adjustment-created.md) and [`adjustment.updated`](https://developer.paddle.com/webhooks/adjustments/adjustment-updated.md) webhook payloads to include a `tax_rates_used` array. Each object in the array represents a unique tax rate applied to the adjustment, with aggregated subtotal, tax, and total amounts for that rate. Most adjustments will have a single tax rate, but the array structure supports cases where a transaction included items taxed at different rates.

This mirrors the tax rate information available on [transaction](https://developer.paddle.com/api-reference/transactions/overview.md) and [adjustment](https://developer.paddle.com/api-reference/adjustments/overview.md) entities, providing a consistent view of tax across the full lifecycle of a transaction. It makes it easier to reconcile adjustments for accounting purposes and handle tax reporting accurately.

## Examples

This example shows an adjustment where the refund is taxed at 20%.

```json
"tax_rates_used": [
  {
    "tax_rate": "0.2",
    "totals": {
      "subtotal": "416",
      "tax": "83",
      "total": "499"
    }
  }
]
```

This example shows an adjustment split across 0% and 25% tax rates.

```json
"tax_rates_used": [
  {
    "tax_rate": "0",
    "totals": {
      "subtotal": "1000",
      "tax": "0",
      "total": "1000"
    }
  },
  {
    "tax_rate": "0.25",
    "totals": {
      "subtotal": "10999",
      "tax": "2750",
      "total": "13749"
    }
  }
]
```

`tax_rates_used` is `null` if no tax rates apply to the adjustment.

```json
"tax_rates_used": null
```

## Next steps

This change is available in version `1` of the Paddle API.

It's a non-breaking change, meaning it doesn't impact existing integrations. All new adjustment webhook payloads include the `tax_rates_used` field.
## Summary of changes

| Name | Type | Change | Entity | Description |
| --- | --- | --- | --- | --- |
| `tax_rates_used` | Field | added | adjustment.created webhook | Array of tax rates applied to the adjustment, each with aggregated subtotal, tax, and total amounts. |
| `tax_rates_used` | Field | added | adjustment.updated webhook | Array of tax rates applied to the adjustment, each with aggregated subtotal, tax, and total amounts. |
