> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.monite.com/v2023-09-01/intro/release-notes/index/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server. # Release notes ## Overview This version includes improvements and changes to the Monite platform to make the API more consistent and predictable. > **Info** > > In future updates to the API version `2023-09-01`, 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'll introduce them in succeeding API versions. ### New features and improvements * The new `POST /mail_templates/{mail_template_id}/make_default` endpoint allows you now to set the default email template. * The new [`GET /files`](/v2023-09-01/api/files/get-files) endpoint lets you retrieve one or more files by their IDs. You can use this, for example, to retrieve profile pictures of entity users. * The new `accounting_tax_rate_id` field in payable line items can be used to override the auto-selected tax rate reference for a line item when using [accounting integration](../../accounting/integration/index). * You can configure the system to [avoid the creation of duplicated payables](../../accounts-payable/payables/index#cancel-duplicated-payables-automatically) based on the information obtained by the OCR via the `payable.allow_cancel_duplicates_automatically` field of the `/settings` endpoint. ## Breaking changes The version **2023-09-01** includes the following breaking changes, which you should consider when upgrading from the previous API version: * Entities: * The `POST /entities` now returns `201` instead of `200` in case of successful entity creation. * The `address`.`country` default value has been changed from `DE` to null. The `country` field is now always required when specifying the `address`. * Entity users: * In the responses from `/entity_users*` endpoints, the `role` object was replaced with the `role_id` field, and the `userpic` object was replaced with the `userpic_file_id` field. To get the role and profile picture by their IDs, use `GET /roles/{role_id}` and `GET /files/{file_id}`, respectively. * Entity bank accounts: * Renamed the `is_default` field to `is_default_for_currency`. * Required fields for entity bank accounts now depend on the `currency` instead of `country`: * EUR accounts require `iban`. * USD accounts require `account_holder_name`, `account_number`, and `routing_number`. * GBP accounts require `account_holder_name`, `account_number`, and `sort_code`. * `PATCH /bank_accounts/{bank_account_id}` now allows updating only `account_holder_name and display_name`. To update other fields, you will have to delete the existing bank account and create a new one. * Changed the HTTP status code for a successful call to `DELETE /bank_accounts/{bank_account_id}` from `200` to `204`. * Mail templates: * The deprecated `GET /mail_templates/variables` endpoint has been removed. Use `/receivables/variables` or `/payable_purchase_orders/variables` instead. * The `template_name` field has been renamed to `name`. * The `language_code` field has been renamed to `language`. * Text templates: * The deprecated `GET /text_templates/variables` endpoint has been removed. Use `/receivables/variables` or `/payable_purchase_orders/variables` instead. * Payables: * `POST /payables/{payable_id}/mark_as_partially_paid` now requires the `pay` permission for payables instead of `update`. * The `subtotal` and `total_amount` fields of payables are now automatically calculated based on the values of the [line items](../../accounts-payable/payables/line-items), therefore, they are read-only and appear only in responses. * The `subtotal` and `total` fields of line items are now automatically calculated based on the `unit_price`, `quantity`, and `tax` fields, therefore, are read-only and appear only in responses. * The `unit_price`, `subtotal`, and `total` fields in payables and line items can now have negative values. Some vendors use this approach to specify discounts. * Removed the `tax_account_id` field from line item responses in favor of the new `accounting_tax_rate_id` field. * Removed the deprecated `line_items` field from `/payables` responses. Use the `/payables/{payable_id}/line_items` endpoints to access and manage the line items of a payable. * Approval policies and approval requests: * Script validation errors are now returned with HTTP status code `400` instead of `406`. * `event_name` must be mentioned in the trigger script at least once on any nested level on policy creation. Triggers like `"{invoice.amount > 1000}"` are no longer valid and need to be rewritten as `{"all": ["{invoice.amount > 1000}", '{event_name == "create"}']}`. * Payments onboarding: * Uploading documents has been changed. Now, you first need to call the `POST /files` endpoint to upload a file, and then provide its `id` for the `POST /onboarding_documents` and `POST /persons/{person_id}/onboarding_documents` endpoints. * The new `/onboarding_requirements` endpoint should be used instead `/entities/{id}/onboarding_requirements`. * The new `PATCH /onboarding_data` endpoint should be used instead of the deprecated `PUT /onboarding_data`. > **Info** > > For more information on what changes we consider breaking and non-breaking in our API, please refer to our [Versioning policy](/api/concepts/versioning#breaking-changes). > Stay up to date with the latest features, improvements, and breaking changes in the current version of Monite API.