# Update a business's tax info

Changes some of a business's tax info fields and returns the whole
[tax info](https://developers.lazyinvoice.co.il/embedded/objects/tax-info/) after the change. A field you omit keeps its value. A field
cannot be cleared: null is refused. To blank a text field, send an empty string.

```text
PATCH https://embedded-api.lazyinvoice.co.il/v1/businesses/{biz_id}/tax-info
```

## Parameters

### Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `biz_id` | string | Yes | The Lazy ID of the business, returned when the business was created. |

### Body

A JSON object with these fields.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `business_type` | string | No | The business's tax classification, as free text. |
| `business_sector` | string | No | The business's sector, as free text. |
| `vat_registered` | boolean | No | Whether the business is registered for VAT. |
| `annual_turnover` | string | No | The business's annual turnover band, as free text. |
| `has_employees` | boolean | No | Whether the business has employees. |
| `home_office_percentage` | integer | No | Percentage of the home used for the business, 0 to 100. |
| `car_business_usage` | integer | No | Percentage of car use that is for the business, 0 to 100. |

## Responses

### 200 OK

The business's tax info after the update. The body is a [Tax info object](https://developers.lazyinvoice.co.il/embedded/objects/tax-info/).

## Errors

Every error body is the [error envelope](https://developers.lazyinvoice.co.il/embedded/errors/). Any endpoint can also return 401, 429 and 500; [Errors](https://developers.lazyinvoice.co.il/embedded/errors/) explains them.

| Status | Code, cause and what to do |
| --- | --- |
| 400 | `validation_error`: a body that is not valid JSON or not a JSON object, a mistyped, out-of-range or unknown field, null for any field, or an unknown query parameter. Fix the request; `param` names the field at fault when there is one. |
| 404 | `not_found`: no business with this `biz_id` belongs to your platform. Check the `biz_id`; a deleted business stays not found. |

## Retry safety

Safe to retry. Sending the same values again changes nothing more.

## Async behavior and events

None. The change is complete when the response arrives, and Lazy sends no webhook for it.

## Examples

### Set the VAT status and home office share

```bash
curl -X PATCH https://embedded-api.lazyinvoice.co.il/v1/businesses/biz_8fKq2LmZp4TnWx7RcV1a/tax-info \
  -H "Authorization: Bearer $LAZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vat_registered": true, "home_office_percentage": 25}'
```

Response: `200 OK`

```json
{
  "business_type": "עוסק מורשה",
  "business_sector": "שירותים מקצועיים",
  "vat_registered": true,
  "annual_turnover": "100,000-500,000 ₪",
  "has_employees": false,
  "home_office_percentage": 25,
  "car_business_usage": 0
}
```

### Null is refused

```bash
curl -X PATCH https://embedded-api.lazyinvoice.co.il/v1/businesses/biz_8fKq2LmZp4TnWx7RcV1a/tax-info \
  -H "Authorization: Bearer $LAZY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"vat_registered": null}'
```

Response: `400 Bad Request`

```json
{
  "error": {
    "code": "validation_error",
    "message": "vat_registered must be true or false",
    "param": "vat_registered",
    "request_id": "q8Zr1Ndk2vLp0Xw7HcYt3Rb9Fs6Mj4Ge5Ua1Ki8Oy2Wn0Tz7Ql3Px=="
  }
}
```

Added in: [October 2026](https://developers.lazyinvoice.co.il/embedded/changelog/#october-2026)
