> For the complete documentation index, see [llms.txt](https://teamleader-sdk.mcore-services.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://teamleader-sdk.mcore-services.dev/api-reference/invoicing/withholding-tax-rates.md).

# Withholding Tax Rates

Manage withholding tax rates in Teamleader Focus.

```php
Teamleader::withholdingTaxRates()
```

|                          |                                                                       |
| ------------------------ | --------------------------------------------------------------------- |
| Class                    | `McoreServices\TeamleaderSDK\Resources\Invoicing\WithholdingTaxRates` |
| Create / update / delete | — / — / —                                                             |
| Pagination               | No                                                                    |

## Endpoints

* `withholdingTaxRates.list`

## Filters

Passed as the first argument to `list()`. Any other key throws.

| Filter          | Description               |
| --------------- | ------------------------- |
| `department_id` | Filter by department UUID |

## Methods

### `list()`

```php
list(array $filters = [], array $options = []): array
```

List withholding tax rates

`department_id` is the one filter. Before v2.2.7 list() ignored its arguments entirely, so a department filter returned every rate.

* `$filters` — department\_id
* `$options` — Not supported — the endpoint has no paging or sorting

**Throws** `\InvalidArgumentException` On an unknown filter, or any paging or sorting option

### `forDepartment()`

```php
forDepartment(string $departmentId): array
```

List withholding tax rates for one department

### `find()`

```php
find(string $id): ?array
```

Find a withholding tax rate by ID

* `$id` — Withholding tax rate UUID

### `findByRate()`

```php
findByRate(float $rate): ?array
```

Find a withholding tax rate by exact rate value

* `$rate` — Withholding tax rate (e.g., 0.15 for 15%)

### `findByRateRange()`

```php
findByRateRange(float $minRate, float $maxRate): array
```

Find withholding tax rates by rate range

* `$minRate` — Minimum rate (inclusive)
* `$maxRate` — Maximum rate (inclusive)

### `findByDescription()`

```php
findByDescription(string $description, bool $exactMatch = true): ?array
```

Find a withholding tax rate by description

* `$description` — Withholding tax rate description (e.g., "15%")
* `$exactMatch` — Whether to match exactly or search partial

### `exists()`

```php
exists(string $id): bool
```

Check if a withholding tax rate exists by ID

* `$id` — Withholding tax rate UUID

### `asOptions()`

```php
asOptions(): array
```

Get withholding tax rates formatted as options for select dropdowns

### `groupedByDepartment()`

```php
groupedByDepartment(): array
```

Get withholding tax rates grouped by department

### `sortedByRate()`

```php
sortedByRate(): array
```

Get withholding tax rates sorted by rate ascending

### `sortedByDescription()`

```php
sortedByDescription(string $order = 'asc'): array
```

Get withholding tax rates sorted by description

* `$order` — Sort order (asc or desc)

### `format()`

```php
format(array $rate): string
```

Format a withholding tax rate as a human-readable string

* `$rate` — Withholding tax rate data

### `getResponseStructure()`

```php
getResponseStructure(): array
```

Get response structure documentation

## Examples

Get all withholding tax rates:

```php
$rates = Teamleader::withholdingTaxRates()->list();
```

Find withholding tax rate by exact rate value:

```php
$rate = Teamleader::withholdingTaxRates()->findByRate(0.15);
```

Find withholding tax rate by description:

```php
$rate = Teamleader::withholdingTaxRates()->findByDescription("15%");
```

Get withholding tax rates as key-value pairs for dropdowns:

```php
$options = Teamleader::withholdingTaxRates()->asOptions();
```
