# Breaking Changes

This page lists the breaking changes Peach has shipped per API version, plus an explanation of how Peach handles API stability.

## How Peach handles API stability

The Peach API is versioned. Two kinds of changes can happen to it:

- **Backward-compatible (non-breaking) changes** — Adding an optional query parameter, adding a new optional property to a request body, adding new properties to a response, making a previously required parameter optional. These changes are released continuously to all clients regardless of which API version they're on. They never require you to do anything.
- **Breaking changes** — Renaming or removing a query parameter, removing a property from a response, adding a new required parameter, removing an endpoint, or changing the type of an existing field. These changes are *only* released as part of a new API version. Clients on older versions are not affected.


This means: as long as your application stays on its current API version, your integration will keep working. If you want to take advantage of new functionality that ships in a breaking change, you upgrade your API version on a schedule that works for you.

For the full picture of how versioning works, see [API Versioning](/developer-tools/api-versioning). For the procedure to upgrade your API version, see [How to Upgrade](/developer-tools/how-to-upgrade).

## Announcement and notice

Breaking changes are announced in the [Release Notes](/release-notes/) section before they ship in a new API version, with enough lead time for clients to plan an upgrade. Subscribe to release notes (or watch this page) to stay current.

## Breaking changes by version

### 2025-03-26 (Beta)

- Borrower field `borrowerType` was added.
- Borrower field `collectionIntensity` was changed to be not read only.
- Fixed User object schema: `user.employee` should only have a subset of full employee properties.
- Fixed Employee object schema: `availableAndPermittedTasktypes` should be a read only array.
- Removed deprecated property `gracePeriod` from Line of Credit statement details.
- Fixed transaction object schema: transaction objects have a `metaData` property.
- Renamed `idsOnly` enum option to `minimal` in the API request parameters for /loans.


### Changed Endpoints

- `GET /employees`
- `POST /employees`
- `GET /employees/{employeeId}`
- `PUT /employees/{employeeId}`
- `GET /loans`
- `POST /people/{personId}/loans/{loanId}/migration/past-transaction`
- `GET /people/{personId}/loans/{loanId}/statements/{statementId}/details`
- `POST /people/{personId}/loans/{loanId}/transactions`
- `GET /users`
- `POST /users`
- `GET /users/{userId}`
- `PUT /users/{userId}`


### 2023-11-29

- This is an empty change created to facilitate deployment of the API Versioning system. It does not change the schema or transform requests/responses.


### 2018-01-01

- This is the base version of the API.


## See also

- [API Versioning](/developer-tools/api-versioning) — How versioning works conceptually.
- [How to Upgrade](/developer-tools/how-to-upgrade) — Step-by-step upgrade procedure.
- [API Keys](/developer-tools/api-keys) — How API keys are pinned to versions.