# August 31, 2026 

** August 31, 2026 Karbon API release adds a deadline date to Work Schedules and lets you retrieve assigned service types for Contacts and Organizations. **
---

## Deadline Date on Work Schedules

`GET`, `POST` and `PUT` on `/v3/WorkSchedules` now support a deadline date, in addition to the existing due date. Three new properties on `WorkScheduleDTO` control it, mirroring the shape of `ScheduleDueDateMethod`/`ScheduleDueDateDays`/`ScheduleDueDateMonthMultiple`:

```http
POST /v3/WorkSchedules
```

```json
{
  "CreatedFromWorkItemKey": "4jgPTtcXxwC2",
  "RecurrenceFrequency": "Monthly",
  "ScheduleStartDate": "2026-09-01T00:00:00Z",
  "ScheduleDeadlineDateMethod": "DayOfNextMonth",
  "ScheduleDeadlineDateDays": 15
}
```

`ScheduleDeadlineDateMethod` accepts one of the following values:

| `ScheduleDeadlineDateMethod` | Deadline date is calculated as |
| --- | --- |
| `DaysFromStartDate` | `ScheduleDeadlineDateDays` days after the start date |
| `DayOfMonth` | The `ScheduleDeadlineDateDays`th day of the current month |
| `LastDayOfMonth` | The last day of the current month |
| `DayOfNextMonth` | The `ScheduleDeadlineDateDays`th day of the following month |
| `DayOfSubsequentMonth` | The `ScheduleDeadlineDateDays`th day of the `ScheduleDeadlineDateMonthMultiple`th month after the start month |
| `NoDeadlineDate` | The work has no deadline date |

`ScheduleDeadlineDateDays` doesn't apply when `ScheduleDeadlineDateMethod` is `LastDayOfMonth` or `NoDeadlineDate`. `ScheduleDeadlineDateMonthMultiple` only applies when `ScheduleDeadlineDateMethod` is `DayOfSubsequentMonth`.

Karbon also supports deadline dates driven by Companies House filing dates, but those methods aren't available through the API — a request with `ScheduleDeadlineDateMethod` set to `CompaniesHouseAccountsDueDate`, `CompaniesHouseConfirmationStatementDueDate` or `OnFilingDate` is rejected with a `400`.

These fields aren't part of `PATCH /v3/WorkSchedules/{WorkScheduleKey}` — that endpoint still only accepts `ScheduleEndDate` and `AssigneeUserKey`. Use `PUT` to change a schedule's deadline date.

**Omitting `ScheduleDeadlineDateMethod` on `PUT` leaves the existing deadline configuration unchanged** — it does not clear it. This matches how `PUT` already treats `AssigneeUserKey`, and means existing integrations that `PUT` without these fields are unaffected. To remove a deadline date, send `ScheduleDeadlineDateMethod: "NoDeadlineDate"` explicitly (`ScheduleDeadlineDateDays` and `ScheduleDeadlineDateMonthMultiple` can be omitted).

## Assigned Service Types on Contacts and Organizations

`GET /v3/Contacts/{key}` and `GET /v3/Organizations/{key}` now support `$expand=ServiceTypes`, returning the service types assigned to that client.

```http
GET /v3/Contacts/RXq4mB32PXg?$expand=ServiceTypes
```

```json
{
  "ContactKey": "RXq4mB32PXg",
  "FullName": "Jane Smith",
  "ServiceTypes": [
    {
      "ServiceTypeKey": "3h5Tbh9GgLs7",
      "Name": "Tax Return"
    }
  ]
}
```

The same `$expand=ServiceTypes` works on `GET /v3/Organizations/{key}`. `ServiceTypes` isn't available when listing multiple contacts or organizations — it's only returned on a single-record `GET` by key.
