> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.monite.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server.

# What's new in v2024-05-25

## Overview

Monite API version 2024-05-25 includes improvements to recurring invoices, accounts payable OCR, and entity management.

> **Info**
>
> In future updates of the API version 2024-05-25, we plan to add more features and improvements to our product offering. We'll add these new features to the current API version unless they introduce new breaking changes. In such cases, we will introduce them in subsequent API versions.

## Breaking changes

Version 2024-05-25 includes some breaking changes that you should consider when upgrading from previous API versions.

For more information on which changes we consider breaking and non-breaking, refer to our [Versioning policy](/api/concepts/versioning#breaking-changes).

### Removed fields

* Removed deprecated `accounting` settings from [partner settings](/api/partner-settings/patch-settings).

  #### Example

  Removed fields are highlighted.

  ```json {2-5}
  {
    "accounting": {
      "provider": "...",
      "token": "..."
    },
    "api_version": "2024-05-25",
    ...
  }
  ```

* Removed the deprecated `language` field from the request body of `POST /receivables/{receivable_id}/send`. Instead, use the counterpart field `language` to specify the language to be used to localize the emails and PDFs sent to this counterpart.

* Removed some deprecated, duplicate, and rarely used fields from the response payload of invoices, quotes, and credit notes.

  #### Example

  Removed fields are highlighted.

  ```json {5-17, 26-27, 30-31, 35-36, 41}
  {
    "type": "invoice",
    ...

    "file": {
      "id": "15e4ee5b-9419-45f9-8beb-03031931b565",
      "created_at": "2024-01-15T09:30:00Z",
      "file_type": "receivables",
      "md5": "31d1a2dd1ad3dfc39be849d70a68dac0",
      "mimetype": "application/pdf",
      "name": "invoice.pdf",
      "region": "eu-central-1",
      "size": 24381,
      "url": "https://example.com/path/to/invoice.pdf",
      "pages": [],
      "previews": []
    },
    "file_url": "https://example.com/invoice-in-counterpart-language.pdf",
    "original_file_url": "https://example.com/invoice-in-entity-language.pdf",
    ...

    "line_items": [
      {
        "product": {
          "id": "f9cabe1e-1286-4ecc-861c-55c1de75a3b8",
          "created_at": "2025-01-15T09:30:00Z",
          "updated_at": "2025-01-15T09:30:00Z",
          "description": "",
          "discount": null,
          "entity_id": "f1cb56c7-8429-4de7-a4d1-1ae9d0118ad6",
          "entity_user_id": "aef6ccd8-2f8b-42ec-8448-9913df248e96",
          "is_inline": false,
          "ledger_account_id": null,
          "measure_unit": {
            "created_at": "2025-01-14T08:30:00Z",
            "updated_at": "2025-01-14T08:30:00Z",
            "name": "pcs",
            "id": "2e4d5af7-c18a-4b3c-ad30-468dc1244284",
            "description": "pieces"
          },
          "measure_unit_id": "2e4d5af7-c18a-4b3c-ad30-468dc1244284",
          "name": "Logitech K270 Wireless Keyboard",
          "price": {
            "currency": "EUR",
            "value": 1600
          },
          "price_after_vat": {
            "currency": "EUR",
            "value": 1904
          },
          "smallest_amount": 1,
          "type": "product",
          "vat_rate": {
            "id": "479155c3-0995-4689-a3cf-7482ea5132a9",
            "country": "DE",
            "value": 1900
          }
        },
        "quantity": 5,
        "total_before_vat": 8000
      }
    ]
  }
  ```

  | Removed field                                  | Replacement                                                                                                                              |
  | ---------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
  | `file`                                         | Use the `file_url` and `original_file_url` fields to access PDF documents in the counterpart language and entity language, respectively. |
  | `line_items[].product.created_at`              | Get product details with `GET /products/{product_id}` and check `created_at`.                                                            |
  | `line_items[].product.updated_at`              | Get product details with `GET /products/{product_id}` and check `updated_at`.                                                            |
  | `line_items[].product.entity_id`               | Use the same entity ID that is being passed in the `X-Monite-Entity-Id` request header in API calls.                                     |
  | `line_items[].product.entity_user_id`          | Get product details with `GET /products/{product_id}` and check `entity_user_id`.                                                        |
  | `line_items[].product.measure_unit_id`         | `line_items[].product.measure_unit.id`                                                                                                   |
  | `line_items[].product.measure_unit.created_at` | Get measure unit details with `GET /measure_units/{measure_unit_id}` and check `created_at`.                                             |
  | `line_items[].product.measure_unit.updated_at` | Get measure unit details with `GET /measure_units/{measure_unit_id}` and check `updated_at`.                                             |

### HTTP status code changes

We've changed some response status codes to be more compliant with the HTTP specification.

* Changed the status code from 403 to 401 for API calls made with an expired access token.

* Changed the success status code from 200 to 201 for the following endpoints:
  * `POST /mailboxes`
  * `POST /mailbox_domains`
  * `POST /roles`

## New features and improvements

The following features exist only in Monite API version 2024-05-25 and are not available in earlier versions.

### Entity deactivation

Monite partners can now deactivate (disable) their entities, for example, if those entities are no longer active clients. Monite API includes the following new endpoints for this purpose:

* [`POST /entities/{entity_id}/deactivate`](/api/entities/post-entities-id-deactivate)
* [`POST /entities/{entity_id}/activate`](/api/entities/post-entities-id-activate) - to reactivate an inactive entity.

Entity field `status` indicates whether this entity is `active` or `inactive`.

> **Info**
>
> In earlier API versions (up to 2024-01-31), inactive entities are returned with `status`=`"deleted"` instead, but are still considered inactive for all other purposes.

### Auto-sending of recurring invoices

Recurring accounts receivable invoices can now be configured to be [sent automatically](../../accounts-receivable/invoices/recurring#auto-sending).
To support this behavior, the [recurrence configuration](/api/recurrences/post-recurrences) includes new optional fields:

* `recipients` - the list of invoice recipients (To, CC, BCC),
* `subject_text` - the email subject text,
* `body_text` - the text inserted in the email body.

Also, the `iterations[].status` field in recurrence configurations has a new possible value `"send_failed"`.

For more information, see [Auto-sending of recurring invoices](../../accounts-receivable/invoices/recurring#auto-sending).

### Canceling OCR on demand

New endpoint [`POST /payables/{payable_id}/cancel_ocr`](/api/payables/post-payables-id-cancel-ocr) allows users to cancel an ongoing OCR process for an uploaded payable, for example, if it takes too long.
The [`ocr_status`](/api/payables/get-payables-id#response.body.ocr_status) field of payables has a new possible value `"canceled"` to indicate that OCR has been canceled.

In case of canceled OCR, users can still fill in the missing data for a payable manually.