Stay up to date with the latest features, improvements, and breaking changes in the current version of Monite API.

Overview

This version includes improvements and changes to the Monite platform to make the API more consistent and predictable.

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 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.
  • You can configure the system to avoid the creation of duplicated payables 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, 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.
For more information on what changes we consider breaking and non-breaking in our API, please refer to our Versioning policy.