> This page is for version v2024-01-31.
> For other versions, use one of these documentation indexes:
> - v2024-05-25 (default): https://docs.monite.com/v-2024-05-25/llms.txt
> - v2024-01-31: https://docs.monite.com/v2024-01-31/llms.txt
> - v2023-09-01: https://docs.monite.com/v2023-09-01/llms.txt

> 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.

# Monite API changelog

## April 11, 2025

### Pre-populating bank accounts during SEPA payments \[#pre-populate-bank-accounts]

We've improved the payment experience for entities making [SEPA Credit](../../payments/make/sepa-credit) payments.

Previously, entity users had to manually select the bank country, bank institution, and enter the account name and IBAN each time they made a payment to a counterpart.

With this update, entity users will be able to:

* View the entity's existing bank accounts directly in the [payment web component](../../payments/payment-web-component) or payment page.
* Validate a bank account by selecting the institution and completing a payment. Once validated, the institution won’t need to be selected again for future payments and the IBAN number won't need to be input.
* See a list of all current validated bank accounts.
* Add a new bank account during payment and choose whether to save it for future use or not.

![](/_fern-img/522efecb774c7610605778af5ff0cddb42fea9dba295dda3eb4ef04dd845f918.webp)

## April 10, 2025

### Accounting integration improvements

* Added support for pushing invoices and credit notes that include discounts:

  * Discounts defined as a fixed amount are recalculated as percentage discounts when pushed into the accounting system.

  * [Deductions and incentives](../../accounts-receivable/special-deductions) are pushed as negative line items with 0% tax rate. If the entity's accounting system has several 0% tax rates defined, use the entity setting [<code>accounting.<wbr />tax_ids.<wbr />deductions</code>](/v2024-01-31/api/entities/patch-entities-id-settings#request.body.accounting.tax_ids) to specify which of those 0% tax rate to attach to the deduction line item.

* Fixed an issue where products will very long descriptions could not be pulled from accounting systems.

## April 8, 2025

### Accounts receivable

We've improved the [`GET /receivables/required_fields`](/v2024-01-31/api/receivables/get-receivables-required-fields) endpoint that returns conditionally required invoice fields and counterpart fields to ensure invoice compliance.

This endpoint now supports the `counterpart_country` and `counterpart_type` query parameters to check the requirements for a particular country or counterpart type before creating said counterpart.

#### Usage examples

The two main usage scenarios are now as follows (spaces added for readability):

* Check whether an organization or individual counterpart from the specified country needs `tax_id` and/or VAT ID to be specified on invoices:
  ```
  GET /receivables/required_fields
        ? counterpart_country = DE
        & counterpart_type = [organization | individual]
        [ & entity_vat_id_id = <...>] 
  ```

* Check whether an existing counterpart needs `tax_id` and/or VAT ID to be specified on invoices:
  ```
  GET /receivables/required_fields
        ? counterpart_id = <...>
        & counterpart_billing_address_id = <...>
        [ & entity_vat_id_id = <...>] 
  ```

## April 7, 2025

### Payment record enhancements

We've extended the [payments records](../../common/payment-records) functionality for partners who use external payment rails:

* Added new fields to payment records:
  * `payment_intent_status` - user-defined string, can be used to mirror the payment intent status from external payment rails,
  * `payment_method` - user-defined string, for example, "card" or "cash",
  * `planned_payment_date` - planned date for future scheduled payments,
  * `status` - possible values are `created`, `processing`, or `succeeded`.

    > **Info**
    >
    > All payment records created before April 7, 2025 have been assigned the `succeeded` status.

* Added new endpoints to manage the lifecycle of user-created payment records:
  * [`PATCH /payment_records/{payment_record_id}`](/v2024-01-31/api/payment-records/patch-payment-records-id) - Most editable fields can be updated only while a payment record is in the `created` status, except the `payment_intent_status` field which can be updated in any payment record status.
  * [`POST /payment_records/{payment_record_id}/start_processing`](/v2024-01-31/api/payment-records/post-payment-records-id-mark-as-succeeded)
  * [`POST /payment_records/{payment_record_id}/mark_as_succeeded`](/v2024-01-31/api/payment-records/post-payment-records-id-start-processing)
  * [`POST /payment_records/{payment_record_id}/cancel`](/v2024-01-31/api/payment-records/post-payment-records-id-cancel)

* Added new query filters to [`GET /payment_records`](/v2024-01-31/api/payment-records/get-payment-records) to filter results by `created_at`, `object_type`, `paid_at`, `payment_intent_status`, `payment_method`, `planned_payment_date`, `status`, or `updated_at`.

* The `paid_at` field was changed from required to optional.

## April 3, 2025

### Accounts receivable

* **Improvements for VAT-inclusive pricing**

  * **Flexible discount options.** Entities that use VAT-inclusive pricing can choose whether to apply [discounts](../../accounts-receivable/discounts) before or after VAT.
    This is controlled by the entity setting [`vat_inclusive_discount_mode`](/v2024-01-31/api/entities/patch-entities-id-settings#request.body.vat_inclusive_discount_mode).
    The default mode is `exclusive`, which means Monite first deducts VAT from a line item's VAT-inclusive amount and applies the discount to the resulting taxable base.
    Another mode is `inclusive`, where discounts are applied to VAT-inclusive amounts.

    The value of this setting is also returned in the `vat_inclusive_discount_mode` field of invoice, quote, and credit note responses to indicate which mode each document uses.

    > **Note**
    >
    > The `vat_inclusive_discount_mode` setting affects only flat amount discount and does not affect percentage discounts.

  * Adjusted the labels in PDFs to indicate when prices and subtotals include or exclude VAT.

* **PDF and email improvements**
  * **Hiding entity bank account from PDFs.** We've added new entity settings
    [<code>document_rendering.<wbr />\<document_type>.<wbr />display_entity_bank_account</code>](/v2024-01-31/api/entities/patch-entities-id-settings#request.body.document_rendering)
    to control whether PDF invoices, quotes, and credit notes should include entity bank account information.
    By default, bank account details are included in PDFs but you can change the `display_entity_bank_account` setting to `false` to hide that information.

    #### Entity PDF settings

    ```json title="/entities/{entity_id}/settings"
    {
      ...
      "document_rendering": {
        "credit_note": {
          "display_entity_bank_account": true
        },
        "invoice": {
          "display_entity_bank_account": true
        },
        "quote": {
          "display_entity_bank_account": true
        }
      }
    }
    ```

    Hiding bank account details can be useful if the entity uses invoice payment links,
    this helps ensure that payments can be made only via payment links for automatic reconciliation.

    > **Note**
    >
    > Payment link and QR code are always displayed in PDF invoices, even if bank account details are hidden.

  * PDF invoices created by Australian entities registered for GST now use the title "Tax Invoice" instead of "Invoice".

  * Number formatting in PDFs and emails now uses decimal and thousand separators based on the entity country.

* **Longer product descriptions.** The maximum length of product descriptions has been increased from 255 to 2000 characters.
  However, descriptions in PDF documents are currently trimmed down to 255 characters.

* [`GET /receivables`](/v2024-01-31/api/receivables/get-receivables) now supports sorting documents by `total_amount`.

* Added new [auto-calculated field](../../accounts-receivable/invoices/create#auto-calculated-amounts) `subtotal_after_vat` to invoice, quote, and credit note responses.
  It is the sum of `subtotal` and `total_vat_amount`.
  In other words, `subtotal_after_vat` contains the invoice subtotal including VAT and line item discounts but excluding invoice-level discount.

## April 2, 2025

### Accounts payable

* **Improved filtering by attached file.** We've added a new query parameter `has_file` (`true` or `false`) to the endpoints listed below. This allows you to filter documents based on whether they have attachments.
  * [`GET /payables`](/v2024-01-31/api/payables/get-payables)
  * [`GET /payables_credit_notes`](/v2024-01-31/api/credit-notes/get-payable-credit-notes)
  * [`GET /analytics/payables`](/v2024-01-31/api/analytics/get-analytics-payables)
  * [`GET /analytics/credit_notes`](/v2024-01-31/api/analytics/get-analytics-credit-notes)

* **New AP credit notes fields.** We've added the new fields `counterpart` and `counterpart_raw` to the [AP credit notes](../../accounts-payable/credit-notes/index) responses for enhanced counterpart data handling.

### OCR enhancements

* The `X-Monite-Entity-Id` header is no longer mandatory for all `/ocr_tasks*` endpoints.
* The request body field `document_type` of the `POST /ocr_tasks` endpoint is no longer mandatory. Now, if the field is not specified, the system will attempt to determine it automatically. The same applies to the `document_type` query parameter in the `/ocr_tasks/upload_from_file` endpoint.

## March 26, 2025

### OCR enhancements

We've updated the Monite OCR engine to support larger files:

* File size limit has been increased from 10 to 20 MB.
* Maximum number of pages allowed in multipage PDF files has been increased from 10 to 100.

### Payments

* Extended the default expiration time for [payment links](../../payments/payment-links). Payment links created for payables and receivables will now expire 30 days after the invoice due date, unless specified otherwise. This change affects only newly created payment links.

## March 25, 2025

### Accounts receivable

* The `issue_date` and `due_date` of issued invoices can now be updated in the [non-compliant mode](../../accounts-receivable/regulatory-compliance/invoice-compliance).
* PDF invoices with payment links now include the payment link as text (in addition to a QR code). This way, desktop users can easy access payment links from PDF invoices.

  #### View image

  ![](/_fern-img/32e6ecaa6b3682b9334e539849541e226257745e50be2671dd72aedcc7a9330e.webp)

### E-invoicing improvements

* Added support for sending e-invoices with [discounts](../../accounts-receivable/discounts) - both invoice-level discounts and line item discounts.

### Payments

* When a [payment link](../../payments/payment-links) expires, the associated [payment intent](../../payments/payment-intents) is now automatically moved to the `payment_cancelled` status.
* [`GET /payment_intents`](/v2024-01-31/api/payment-intents/get-payment-intents) has a new query parameter `object_id__in` to bulk get payment intents associated with any of the specified invoices.

## March 13, 2025

### Accounts receivable

* **Improved PDF file naming.** Previously, PDF invoices, quotes, and credit notes used UUIDs as file names, such as `3038dd44-9cce-464d-9e14-58f2fd121850.png`. Now, Monite generates PDF file names in the format `TYPE-DOCUMENTID.pdf`, for example, `Invoice-INV-12345.pdf` or `Quote-draft.pdf`. Spaces and special characters are replaced with `-`.

  These file names are used for email attachments and when downloading PDFs from React SDK and Drop-in components.

* Added a new auto-calculated field `total_after_vat` to line items in invoices, quotes, and credit notes. It contains the line item amount including discounts and VAT.

## March 12, 2025

### General

* **Deleting user roles.** Use the new [`DELETE /roles/{role_id}`](/v2024-01-31/api/roles/delete-roles-id) endpoint to delete user roles that are no longer in use.

### Accounts payable

* **Support for projects in purchase orders.** [Purchase orders](../../accounts-payable/purchase-orders) can now be assigned to [projects](../../common/projects) via the `project_id` field. Also, `GET /payable_purchase_orders` has the `project_id` query filter to find all purchase orders that belong to a specific project.

* **Improved sorting and filtering of payables and credit notes.**

  * Payables can now be sorted by the `issued_at` field.

  * Added the `issued_at`, `issued_at__gt`, `issued_at__gte`, `issued_at__lt`, and `issued_at__lte` query parameters to:
    * `GET /payables`
    * `GET /analytics/payables`

  * Use the `origin` query parameter to find only documents received via e-invoicing, or via email, or uploaded directly to Monite. This parameter was added to:

    * `GET /payables`
    * `GET /payables_credit_notes`
    * `GET /analytics/payables`
    * `GET /analytics/credit_notes`

* **Unit price OCR adjustments.** If a line item's unit price extracted by OCR has more decimal points than can be [precisely stored](../../references/currencies#minor-units) in Monite, that line item gets normalized as follows:

  * set the `unit_price` equal to the line item total amount,
  * set the `quantity` to 1.

  For example, an item with unit price € 0.1225 and quantity 8 is instead stored with unit price € 0.98 (0.1225 × 8) and quantity 1.

  This ensures precise calculation of subtotal and total amounts.

  Line items adjusted in this way have the `ocr_set_quality_to_one` field set to `true`.

## March 10, 2025

### Accounts receivable

* Added new [webhooks](../../references/webhooks/index) for quotes: `receivable.accepted`, `receivable.declined`, `receivable.expired`. These webhooks are triggered when a quote is moved to the corresponding [status](../../accounts-receivable/quotes/index#quote-statuses).

* Increased the maximum pagination limit for [`GET /receivables`](/v2024-01-31/api/receivables/get-receivables) from 100 to 250 items. The default limit is still 100.

* Improved the performance of the `GET /receivables` endpoint.

### Accounting integration improvements

* The response from [`GET /accounting_connections/{connection_id}`](/v2024-01-31/api/accounting-connections/get-accounting-connections-id) includes a new field, [`business_info`](/v2024-01-31/api/accounting-connections/get-accounting-connections-id#response.body.business_info), that contains entity information retrieved from the connected accounting system. Xero application developers can use this information to meet the
  [Xero certification requirement](https://developer.xero.com/documentation/xero-app-store/app-partner-guides/certification-checkpoints/) of displaying the name of the connected tenant.

### PDF template improvements

* The `preview` field of [PDF templates](../../advanced/pdf-templates) now contains a link to a PNG preview image of the corresponding template. (Previously, the `preview` field returned `null`.)

  #### Example

  **`Response from GET /document_templates/{document_template_id}`**

  ```json {5-12} title="Response from GET /document_templates/{document_template_id}"
  {
     ...
     "language": "en",
     "name": "classic",
     "preview": {
        ...
        "md5": "4ac4b4238fa2fb93746c0a1eee98ed74",
        "mimetype": "image/png",
        ...
        "size": 235016,
        "url": "https://<bucketname>.s3.eu-central-1.amazonaws.com/sandbox/receivables/d7a112ef-0ef7-4ea7-ba1b-cbbb99990d81/6be7d826-e44d-40cc-834f-2c4808a0319e.png"
     },
     ...
  }
  ```

  Previously:

  ```json {5}
  {
     ...
     "language": "en",
     "name": "classic",
     "preview": null,
     ...
  )
  ```

## March 3, 2025

### Accounting integration improvements

* **Improved tax rate matching.** Invoice line items have a new field [`accounting_tax_rate_id`](/v2024-01-31/api/receivables/post-receivables#request.body.Receivable%20Facade%20Create%20Invoice%20Payload.line_items.accounting_tax_rate_id). It allows users to reference a specific tax rate from the accounting system to be used when pushing an invoice to that accounting system. This can be useful if the accounting system contains several tax rates with the same value but only one of them is valid for a given Monite-generated invoice.

### Accounts receivable

* **Improved filtering by projects.** [`GET /receivables`](/v2024-01-31/api/receivables/get-receivables) and [`GET /analytics/receivables`](/v2024-01-31/api/analytics/get-analytics-receivables) have a new query parameter `project_id__in` to find all receivables that belong to one or more of the specified projects.

* Fixed an issue with `PATCH /overdue_reminders/{overdue_reminder_id}` where passing `terms`=`null` did not unset the terms.

## February 28, 2025

### Payments

* [Payables](../../accounts-payable/payables/index) (bills) paid via Monite will now be automatically moved from the `paid` status back to `partially_paid` or `waiting_to_be_paid` if the payment gets disputed or payout to the counterpart fails.
* [Payment links](../../payments/payment-links) now support the decoupled authentication flow for Open Banking payments.
* [Payment records](../../common/payment-records) now support negative `amount` values to indicate chargebacks and refunds.

## February 27, 2025

### OCR

* **Receipt data recognition.** [Monite OCR](../../advanced/ocr) can now extract text and financial data from digital and scanned receipts. Use the `receipt` document type when uploading receipts for OCR.

### Accounts payable

* **Skipping the approval flow.**  Entities have a new setting [`payables_skip_approval_flow`](/v2024-01-31/api/entities/get-entities-id-settings#response.body.payables_skip_approval_flow). If it is `true`, any newly created payables of that entity will be automatically moved from the `new` to `waiting_to_be_paid` status, bypassing approval policies.

* **Improved filtering by projects.** We've added new query parameters `project_id` and `project_id__in` to the endpoints listed below. You can use these parameters to retrieve documents from one or more [projects](../../common/projects).
  * [`GET /payables`](/v2024-01-31/api/payables/get-payables)
  * [`GET /payables_credit_notes`](/v2024-01-31/api/credit-notes/get-payable-credit-notes)
  * [`GET /analytics/payables`](/v2024-01-31/api/analytics/get-analytics-payables)
  * [`GET /analytics/credit_notes`](/v2024-01-31/api/analytics/get-analytics-credit-notes)

## February 26, 2025

* **Filtering entities by status.** Use the new `status` parameter of [`GET /entities`](/v2024-01-31/api/entities/get-entities) to find only active or inactive entities.
* [Monite OCR](../../advanced/ocr) now sends the `ocr_task.finished` webhook when it finishes processing a file.
* For Open Banking payments, Monite now normalizes the payment reference value passed to the payment processing provider to make it compatible with common bank requirements.

## February 24, 2025

### Credit note improvements (accounts payable) \[#credit-notes-2025-02-24]

Now, you can customize the required fields for credit notes. You can now control which fields must be filled in a `draft` credit note before it can transition to the `new` status. The following endpoints were added for this purpose:

* [`GET /payable_credit_notes/validations`](/v2024-01-31/api/credit-notes/get-payable-credit-notes-validations) - get the list of required fields.
* [`PUT /payable_credit_notes/validations`](/v2024-01-31/api/credit-notes/put-payable-credit-notes-validations) - update the list of required fields.
* [`POST /payable_credit_notes/validations/reset`](/v2024-01-31/api/credit-notes/post-payable-credit-notes-validations-reset) - restore the default list of required fields.
* [`POST /payable_credit_notes/{credit_note_id}/validate`](/v2024-01-31/api/credit-notes/get-payable-credit-notes-id-validate) - returns the information that is missing to [move a credit note](../../accounts-payable/credit-notes/lifecycle#draft) from `draft` to the `new` state.

## February 21, 2025

### New supported currencies \[#currencies-2025-02-20]

We've updated the list of supported [currency codes](../../references/currencies):

* Added BMD, BTN, FKP, GHS, IQD, LYD, SHP, SSP, SVC, TMT.
* Replaced SLL (old leone) with SLE (new leone).
* Removed HRK (as it was replaced by the euro in 2023).

### Accounts receivable

* Added new endpoint [`GET /receivables/required_fields`](/v2024-01-31/api/receivables/get-receivables-required-fields) to get conditionally required invoice fields for the given entity and counterpart.
* Added new auto-calculated field `total_vat_amounts[].taxable_amount` to invoice, quote, and credit note responses. It contains the taxable amount for which the given VAT is calculated.

### Analytics improvements

* Added the `limit` query parameter to [`GET /analytics/payables`](/v2024-01-31/api/analytics/get-analytics-payables) and [`GET /analytics/credit_notes`](/v2024-01-31/api/analytics/get-analytics-credit-notes) to control the number of results returned.

### Purchase order improvements

* PDF purchase orders now display the entity VAT ID if available.

## February 19, 2025

### Accounting integration improvements \[#accounting-2025-02-19]

* Added support for pushing invoices to QuickBooks Online US accounts that use automated sales tax.

## February 11, 2025

### Monite OCR \[#ocr-2025-02-11]

* [Monite’s OCR](../../advanced/ocr) now provides generic standalone endpoints for extracting text data from different types of documents across multiple formats, including PDF, JPG, and PNG.

## February 3, 2025

### Accounts receivable analytcs \[#ar-anaytics]

* [Monite analytics](../../advanced/analytics) has been expanded to include accounts receivable. Use the [`GET /analytics/receivables`](/v2024-01-31/api/analytics/get-analytics-receivables) endpoint as a data source for accounts receivable reports and charts to help entities monitor trends, track KPIs, and gain data-driven insights to optimize their cash flow.

### Accounting integration improvements \[#accounting-2025-02-03]

* **Default general ledger account for products.** Entities have a new [setting](/v2024-01-31/api/entities/patch-entities-id-settings#request.body.accounting) <code>accounting.<wbr />ledger_account_ids.<wbr />products</code>. It specifies the ledger account to use when pushing [products](../../accounts-receivable/products) that do not have a ledger account assigned. For more information, see [How data is synchronized](../../accounting/integration/index#how-data-is-synchronized).

## January 29, 2025

### Open Banking for Germany

We've expanded our payment coverage to include Open Banking payments in Germany.
[Payment links](../../payments/payment-links) created for German payers can now include a bank transfer payment option.

This also expands the available payment options for accounts payable and accounts receivable:

* German entities can use payment links to pay payables (bills).
* EU and UK entities can receive invoice payments from their German counterparts via bank transfers.

## January 24, 2025

### Accounts receivable

* New [webhooks](../../references/webhooks/index) for invoices: `receivable.overdue` and `receivable.uncollectible`. These webhooks are triggered when an invoice is moved to the corresponding [statuses](../../accounts-receivable/invoices/index#invoice-statuses).

* Line item totals in PDF invoices, quotes, and credit notes are now displayed with up to four decimal places. This improvement aligns with a similar change made earlier to line item unit prices in PDFs.

## January 22, 2025

### Credit note improvements (accounts payable)

* **Credit notes analytics.** Use the new [`GET /analytics/credit_notes`](/v2024-01-31/api/analytics/get-analytics-credit-notes) endpoint to get real-time insights for credit notes with aggregated data and detailed breakdowns, filters, and metrics. [Learn more.](../../advanced/analytics#analytics-for-credit-notes)
* The `based_on` field is no longer required when creating credit notes.

## January 20, 2025

### Credit note improvements (accounts payable)

* Two new endpoints added:
  * [`POST /payable_credit_notes/upload_from_file`](/v2024-01-31/api/credit-notes/post-payable-credit-notes-upload-from-file) allows you to upload a credit note in the PDF, PNG, or JPG format to Monite. [Learn more.](../../accounts-payable/credit-notes/manage#upload-files-via-api)
  * [`POST /payable_credit_notes/{credit_note_id}/cancel_ocr`](/v2024-01-31/api/credit-notes/post-payable-credit-notes-id-cancel-ocr) allows you to cancel the OCR scanning process for a specific credit note.
* New fields `file_id` and `file_url` added to the credit note responses.
* The `based_on` field was changed from required to optional.

## January 16, 2025

### Accounts receivable

* **PDF improvements.** Unit prices in PDF invoices, quotes, and credit notes are now displayed with up to four decimal places. This allows for more precise display of prices in documents that use [VAT-inclusive pricing](/v2024-01-31/api/receivables/post-receivables#request.body.Receivable%20Facade%20Create%20Invoice%20Payload.vat_mode).

## December 23, 2024

### Accounts Receivable

* **Improved filtering by tags.** New [`tag_ids`](/v2024-01-31/api/receivables/get-receivables#request.query.tag_ids) query parameter in `GET /receivables` lets you find receivables that have all of the specified tags. In other words, this filter works as an AND and is an alternative to the existing `tag_ids__in` filter that works as an OR.

## December 13, 2024

### Accounts Payable

**Credit notes and MoniteScript**. We added support for the new connector types and methods in [MoniteScript](../../references/monitescript#creditnote):

* `CreditNote.approve`
* `CreditNote.reject`
* `CreditNote.add_tags`

## December 9, 2024

### Accounting integration improvements

* [Payment records](../../common/payment-records) are now pushed into accounting systems. Entities can specify the ledger account for payment records by using the [entity setting](/api/entities/patch-entities-id-settings#request.body.accounting) <code>accounting.<wbr />ledger_account_ids.<wbr />payments</code>. For more information, see [How data is synchronized](../../accounting/integration/index#how-data-is-synchronized).

## December 5, 2024

* Entity name limit has been increased from 100 to 255 characters. An exception are entities that use [payments](../../payments/index) - their names are still capped at 100 characters due to restrictions of payment processing platforms.

## December 4, 2024

### Accounts receivable

* **Webhooks for receivables.** You can now receive webhooks when invoices (including recurring invoices), quotes, and credit notes are created or updated in your entities' accounts. For a list of available webhooks, see [Webhooks](../../references/webhooks/index).

* [Document history](../../accounts-receivable/document-history) improvements:

  * The `receivable_updated` event is now also generated for line item updates.
  * Added new events: `receivable_created`, `payment_reminder_mail_sent`, `overdue_reminder_mail_sent`.

  > **Info**
  >
  > These events are available starting from December 4, 2024 and are not filled retroactively.

* Optimized the `GET /vat_rates` endpoint to reduce the response time.

### Role-based access control (RBAC)

* **RBAC for mailboxes.** `GET /mailboxes`, `POST /mailboxes`, and `DELETE /mailboxes/{mailbox_id}` endpoints can now be called with [entity user access tokens](../../entities/users#get-entity-user-token). Users need a [role](../../entities/users#create-role) with the `mailbox` permission to access these endpoints.

## December 2, 2024

### Payment link improvements

* [Payment links](../../payments/payment-links) can now also be created for partially paid payables.
* `return_url` is now optional for all payment links. Previously it was required when creating payment links for payables.

## November 28, 2024

### Accounts Payable

* **Credit notes for AP.**  Now, [credit notes](../../accounts-payable/credit-notes/index) can be used to reduce the amount owed on a payable after it was issued.

* New fields also added to the `payables` responses:
  * `credit_notes` - a list of credit notes associated with the payable.
  * `total_amount_with_credit_notes` the total amount of the payable with credit notes applied.

* **New analytics endpoints.** The new endpoint [`GET /analytics/payables`](/api/analytics/get-analytics-payables) allows you to get real-time aggregated data with detailed breakdowns, filters, and metrics. [See more](../../advanced/analytics).
  * The endpoint `GET /payables/analytics` has been **deprecated**.

## November 22, 2024

### Accounting integration improvements

* [Credit notes](../../accounts-receivable/credit-notes) are now pushed into accounting systems. For more information, see [How data is synchronized](../../accounting/integration/index#how-data-is-synchronized).

## October 31, 2024

### General

Simplified [bank account](../../entities/bank-accounts) setup for African entities:

* African entities can now add bank accounts with any currency.
* Apart from `currency` and `country`, their bank accounts can include any other data fields or combinations thereof.

### Accounts Payable

* **Discounts in payables.** Use the `discount` field to specify a flat discount amount for a payable.

* New `process_id` query parameter in [`GET /approval_policies`](/api/approval-policies/get-approval-policies) lets you find a [policy](../../accounts-payable/approvals/policies/index) that triggered a specific [approval process](../../accounts-payable/approvals/policies/processes).

* New webhooks related to approval policies:
  * `approval_policy_process.created` - triggered when an approval policy is initiated for a payable,
  * `approval_policy_process.execution_error` - triggered when an error occurs during the execution of an approval policy,
  * `payable.multiple_approval_policies_matched` - triggered when a payable matches more than one approval policy. Neither policy will be executed.

## October 29, 2024

### Accounts Receivable

* **Support for user-defined document numbers.** In the [non-compliant mode](../../accounts-receivable/regulatory-compliance/invoice-compliance), entities can now directly specify [document numbers](/api/receivables/post-receivables#request.body.Receivable%20Facade%20Create%20Invoice%20Payload.document_id) (such as `INV/2024/017`) for created invoices, quotes, and credit notes instead of using auto-generated document numbers. This can be useful if the entity needs the the numbering format that is not covered by Monite's built-in [customization options](../../advanced/document-number-customization).

## October 23, 2024

### Payments

New fields in [payment intent](../../payments/payment-intents) objects:

* `payer.name`
* `payer.bank_accounts[].routing_number`
* `recipient.bank_accounts[].routing_number`

## October 21, 2024

### Accounts Payable \[#2024-10-21-ap]

* **Payable improvement:**
  * The [`GET /payables/validations`](/v2024-01-31/api/payables/get-payables-validations) endpoint can now be accessed with [entity user tokens](../../entities/users#get-entity-user-token).
* **Approval policy improvements:**
  * Now you can define optional [start and end dates for approval policies](../../accounts-payable/approvals/policies/index#approval-policy-structure) to accommodate seasonal changes, holidays, temporary changes in the organizational structure, and so on.
  * New connector [`Currency`](../../references/monitescript#currency) was added to the `trigger` parameter in MoniteScript. This connector is used to convert the amount of a payable based on a currency exchange rate. This allows you to create trigger conditions for payable amounts with different currencies.

### Accounts Receivable

* Line items of `issued` and `overdue` invoices can be updated if an entity uses the [non-compliant mode](../../accounts-receivable/regulatory-compliance/invoice-compliance).

## October 4, 2024

### Accounts Payable \[#2024-10-04-ap]

* **Payable improvements:**
  * **Deleting payables.** Payables in any status can now be deleted by using the new [`DELETE /payables/{payable_id}`](/v2024-01-31/api/payables/delete-payables-id) endpoint. Entity users need the `payable.delete` permission to be able to delete payables. Successful deletion of a payable triggers the `payable.deleted` [webhook](/references/webhooks/index).

  * **Improved search.** We've improved search and filter parameters in [`GET /payables`](/v2024-01-31/api/payables/get-payables) and [`GET /payables/analytics`](/v2024-01-31/api/payables/get-payables-analytics):
    * New `search_text` parameter lets you perform partial, case-insensitive search across multiple text fields of a payable at the same time. Currently it searches in counterpart names and document numbers (`document_id`).
    * Added the `counterpart_name__contains` and `counterpart_name__icontains` for searching by partial counterpart name in the case-sensitive and case-insensitive modes, respectively.

  * Payables have a new read-only field [`created_by_role_id`](/v2024-01-31/api/payables/get-payables-id#response.body.created_by_role_id) that indicates the role of the entity user who created this payable.

  * Projects and tags can now be updated for payables in any status.

* **Purchase order improvements:**
  * The [`entity_vat_id_id`](/v2024-01-31/api/purchase-orders/post-payable-purchase-orders#request.body.entity_vat_id_id) field is now optional in purchase orders and can also be unset (that is, changed to `null`).
  * Updated PDF templates for purchase orders. Added the "Supplier" block and updated some labels for improved clarity.

* **Approval policy improvement:**
  * Projects can now be used in approval policy conditions. For this, the `invoice.project_id` attribute must be added to the `trigger` object. [See an example.](../../accounts-payable/approvals/policies/trigger-examples#from-a-specific-project)

### Accounting integration improvements \[#2024-10-04-accounting]

We've added new endpoints to list invoices and payables (bills) that exist in the entity's connected accounting system without pulling those documents into Monite. Monite partners can use these endpoints to implement custom document comparison and synchronization logic.

* [`GET /accounting/receivables`](/v2024-01-31/api/accounting-data-pull/get-accounting-receivables)
* [`GET /accounting/receivables/{invoice_id}`](/v2024-01-31/api/accounting-data-pull/get-accounting-receivables-id)
* [`GET /accounting/payables`](/v2024-01-31/api/accounting-data-pull/get-accounting-payables)
* [`GET /accounting/payables/{payable_id}`](/v2024-01-31/api/accounting-data-pull/get-accounting-payables-id)

## September 30, 2024

### Accounts receivable document history

Monite now keeps a record of all changes made to each invoice, quote, and credit notes, from document creation to the final status. This provides entities with an overview of how a document has evolved over time. For example, entity users can see the following:

* all revisions made to an individual invoice, quote, or credit note before it was sent to the client,
* who made a change and when,
* when a particular status transition occurred (for example, when a quote was signed),
* payments made towards an invoice,
* emails sent to the clients and the recipient email addresses,
* and more.

To access a document's history, use the following endpoints:

* [`GET /receivables/{receivable_id}/history`](/v2024-01-31/api/receivables/get-receivables-id-history)
* [`GET /receivables/{receivable_id}/history/{history_id}`](/v2024-01-31/api/receivables/get-receivables-id-history-id)

For more information, see [Document history](../../accounts-receivable/document-history).

## September 4, 2024

### General \[#2024-09-04-general]

* **Projects.** Users can now aggregate and track payables and receivables under the same work scope as a project via the new [`/projects` endpoints](/v2024-01-31/api/projects/post-projects). [See more](../../common/projects).
  * New `create`, `read`, `update`, and `delete` [permissions](/v2024-01-31/api/concepts/authentication#permissions) for the `project` object.
  * New	[webhooks](../../references/webhooks/index#events) for the `created`, `deleted`, and `updated` events of projects.
  * Payables and receivables can be filtered by project via the new `project_id` query parameter in the [`GET /payables`](/v2024-01-31/api/payables/get-payables) and [`GET /receivables`](/v2024-01-31/api/receivables/get-receivables) endpoints.

### Accounts Payable \[#2024-09-04-ap]

* **Payable analytics.** Use the new [`GET /payables/analytics`](/v2024-01-31/api/payables/get-payables-analytics) endpoint to get the total number and sum total amount of all existing payables, along with the breakdown per payable status. Results can be narrowed down to a specific time period, counterpart, or other search filters. [See more](../../accounts-payable/payables/collect#get-analytics).
* **Find and filter payables by tags.** The `GET /payables` endpoint has a new query parameter `tag_ids` to find payables that have any of the specified [tags](../../common/tags).

### Accounts Receivable \[#2024-09-04-ar]

We've added a few improvements to paid invoices:

* Paid invoices can now be [sent via email](../../accounts-receivable/invoices/create#send-via-email).
* Added a new [entity setting](/v2024-01-31/api/entities/patch-entities-id-settings) `generate_paid_invoice_pdf`. If it is set to true, the PDF version of paid invoices will indicate that the invoice is already paid. The PDF file gets regenerated at the moment when an invoice becomes paid. It is not issued as a separate document and the original PDF invoice is no longer available.
* Added a new [email template](../../advanced/email-templates/index) `receivables_paid_invoice` that is used when sending paid invoices. It is similar to the `receivables_invoice` template used for unpaid invoices but does not include the **Pay invoice** link.

### Other

* Added the `last_updated_at` field to the responses from the `/mailbox_domains` endpoints.

## August 29, 2024

### General \[#2024-08-29-general]

* **Deleting entity users.** New endpoint [`DELETE /entity_users/{entity_user_id}`](/v2024-01-31/api/entity-users/delete-entity-users-id) allows you to [delete an entity user](../../entities/users#delete-an-entity-user).

## August 23, 2024

### Accounts Receivable

* **Tags for receivables.** Invoices, quotes, and credit notes can now have [tags](../../common/tags) (labels) assigned to them. You can also find and filter these documents by tags by using the `tag_ids__in` query parameter of the `GET /receivables` endpoint.

* **Invoice payment date.** Invoice responses include the new `paid_at` field that indicates the date and time when the invoice was fully paid. When using accounts receivable together with Monite payment rails, the `paid_at` timestamp is filled in automatically when counterparts pay invoices. If you use external payment rails, the `paid_at` timestamp is taken from the corresponding field provided in the `POST /payment_records` or `POST /receivables/{invoice_id}/mark_as_paid` request.

  * Added a new optional request field `paid_at` to `POST /receivables/{invoice_id}/mark_as_paid`. If omitted, it defaults to the date and time of the request.

* Previously, [recurring invoice schedules](../../accounts-receivable/invoices/recurring) could only be extended. Now they can also be shortened - as long as the new end date is still a future date.

## August 21, 2024

### Accounts Receivable

* New [entity setting](/v2024-01-31/api/entities/patch-entities-id-settings) `vat_mode` controls whether new invoices and quotes use VAT-exclusive pricing (default) or VAT-inclusive pricing. This can be overridden on the document level by providing the `vat_mode` field when creating invoices and quotes.

## August 15, 2024

### General

* **Tags for counterparts.** Counterparts can now have [tags](../../common/tags) (labels) assigned to them. You can also find and filter counterparts by tags by using the `tag_ids__in` query parameter of the `GET /counterparts` endpoint.

### Accounts Receivable \[#2024-08-15-ar]

* **Support for VAT-inclusive prices.** Use the `vat_mode` field of invoices and quotes to specify whether product prices include or exclude VAT. In case of VAT-inclusive pricing, Monite will calculate the taxable base price by subtracting the VAT rate from the product `price`.

  Line item data in API responses includes both VAT-inclusive and VAT-exclusive prices calculated based on the original product price and the chosen `vat_mode`:

  * `line_items[].product.price` - price before VAT
  * `line_items[].product.price_after_vat` - price with VAT

  **Note:** after an invoice or quote is created, its `vat_mode` cannot be changed, event in draft documents.

* **Multi-branding enhancements.** We've expanded the ability to change entity branding information (`email`, `logo`, `phone`, and `website`) for accounts receivable documents:
  * Branding information can now be changed not only for invoices, but also for quotes and credit notes.
  * Previously, entity branding information could be changed only for existing documents via `PATCH /receivables/{receivable_id}`. Now you can also specify this information directly during document creation - by providing the `entity` object in the `POST /receivables` request.

## August 7, 2024

### Payments

* **Search and filter payment intents.** Use the new [`GET /payment_intents`](/v2024-01-31/api/payment-intents/get-payment-intents) endpoint to get a list of all payment intents created for an entity. Optionally, you can provide the `object_id` query parameter to find intents associated with a specific accounts payable or accounts receivable invoice: `GET /payment_intents?object_id=INVOICE_ID`.

  Among other things, this lets you:

  * Get the status of an invoice payment (such as `processing` or `settled`).
  * [Find an existing payment link](../../payments/payment-links#find-an-existing-payment-link-for-an-invoice) created for an invoice.

## July 31, 2024

### Accounts Receivable

* **Create invoices and quotes with inline products.** Entities can now specify the product details for line items—name, price, and other attributes—directly in the request payload without having to create a product catalog in advance. This is useful for one-off invoices or if the entity's product catalog is maintained outside of the Monite platform. Invoices and quotes can also use a mix of inline and catalog products if needed.

  #### Example

  ```json
  {
    "type": "invoice",
    "line_items": [
      {
        "quantity": 5,
        "vat_rate_id": "626f38ce-cdf5-45ee-9bb4-4124ca4cb27d",

        // Instead of providing a "product_id", you can specify the product info inline:
        "product": {
          "name": " LG WH1000XM Monitor",
          "price": {
            "value": "25000",
            "currency": "EUR"
          },
          "measure_unit": {
            "name": "pcs." 
          }
        }
      },
      ...
    ],
    ...
  }
  ```

* **Digital quote signing.** Entities can now require that their customers (counterparts) provide a signature when accepting quotes. If the quote field `signature_required` is `true`, the counterpart's representative needs to provide their name, email address, and signature image to accept the quote.

  #### Example

  ```sh
  curl -X POST 'https://api.sandbox.monite.com/v1/receivables/QUOTE_ID/accept' \
       -H 'X-Monite-Version: 2024-01-31' \
       -H 'X-Monite-Entity-Id: ENTITY_ID' \
       -H 'Authorization: Bearer ACCESS_TOKEN' \
       -H 'Content-Type: application/json' \

       -d '{
         "signature": {
           "name": "Theo Quinn",
           "email": "theo@example.com",
           "signature_image": "... base64-encoded PNG image ..."
         }
       }'
  ```

  After the quote is accepted, its PDF file is updated to display the customer signature.

  Entity setting `quote_signature_required` controls the signature requirement for newly created quotes. This can be changed at the quote level via the `signature_required` field.

### Accounts Payable

* New query parameter `id__in` in `GET /tags` to bulk fetch multiple tags by their IDs.

## July 17, 2024

### Accounts Payable

* New endpoint [`PUT /payables/{payable_id}/line_items`](/v2024-01-31/api/payable-line-items/put-payables-id-line-items) that [replaces all line items](../../accounts-payable/payables/line-items#replace-all-line-items) of a specific payable at once.

### Accounts Receivable

* New response fields — `file_language` and `original_file_language` — in quotes, invoices, and credit notes. These fields indicate the counterpart's and entity's language for the PDF, respectively.

### Accounting integration

* Removed the `/accounting_sync_rules` endpoints that were used to customize invoice and payable statuses to push to an accounting system.
* New endpoints for accounting integration:
  * The `/accounting_synced_records` endpoints to retrieve or push records of synchronizations between Monite's database and the entity's accounting system.
  * The `/accounting_tax_rates` to get tax rate from the accounting system.

## July 3, 2024

### General

* **New supported country codes:**
  * `BL` - Saint Barthélemy
  * `BQ` - Caribbean Netherlands
  * `CW` - Curaçao
  * `MF` - Saint Martin (French part)
  * `SX` - Sint Maarten (Dutch part)
* Entity field `address.state` is now required for US entities that wish to use Monite payment rails.

### Accounts Payable

* **Payable OCR auto-tagging.** Entities have a new setting `payables_ocr_auto_tagging` to specify the [tags](../../common/tags) that will be automatically assigned to new payables created via OCR. For details, see [Tags auto-assignment](../../common/tags#tags-auto-assignment-for-payables).
* New `paid_at` field was added to the payable responses. It contains the date and time when the payable was moved to the `paid` status.

### Accounts Receivable

* **Invoicing across multiple brands.** Entities that have multiple brands can specify the business `email`, `logo`, `phone`, and `website` to be displayed on each invoice, if these values need to be different from the entity's defaults. The data can be provided in the `invoice.entity` object in the invoice update request, for example:

  ```
  PATCH /receivables/{invoice_id}

  {
    "invoice": {
      "entity": {
        "website": "https://example.com",
        "logo": "https://example.com/another-logo.png"
      }
    }
  }
  ```

* **More flexible reminder configuration.** Invoice [payment reminders](../../accounts-receivable/invoices/payment-reminders) and [overdue reminders](../../accounts-receivable/invoices/overdue-reminders) can now be initially created without any terms, and the terms can be added any time later prior to issuing the invoice.

* **Email localization improvements**:
  * The `language` field in [`POST /receivables/{receivable_id}/send`](/v2024-01-31/api/receivables/post-receivables-id-send) requests has been deprecated. Instead, use the counterpart's `language` field to specify the preferred language for emails and documents that will be sent to that counterpart.
  * Also, if the `language` parameter is omitted in `/send` requests, the email language now defaults to the counterpart language instead of English.

* [Partner metadata](../../common/metadata) can now also be updated for non-`draft` invoices, quotes, and credit notes.

## June 19, 2024

* **CC and BCC in receivables email.** Added the ability to include a list of email addresses using the `recipients` field in the payload the `/receivables/{receivable_id}/send` and `/receivables/{receivable_id}/send_test_reminder` endpoints. Using this field, entities can include email addresses to which they want to send a copy or a blind copy of the email.
* **Displaying company trade name in documents.** Invoices, quotes, and credit notes have the new `trade_name` field that entities can use to specify their trade name, also known as "doing business as" (DBA) or "operating as" (o/a) name. The assigned trade name will appear alongside the entity's legal name in PDF invoices, quotes, and credit notes created by the entity.
* **Enhanced sorting of receivables.** The `GET /receivables` endpoint has got additional options for the `sort` parameter. You can now also sort receivables by the `created_at`, `document_id`, `due_date`, or `issue_date` values.
* The `measure_unit_id` field is no longer required to create products for receivables.
* New `id__in` query parameter on the `GET /products` and `GET /receivables` endpoints lets you bulk fetch multiple products or receivables by their IDs.

## June 5, 2024

* New `name__in` query parameter in `GET /tags`.
* Payable [tags](../../common/tags) have two new optional fields: `category` and `description`.
* Partner setting `payable.enable_line_items` has been deprecated.

## May 22, 2024

* **Automatic matching of purchase orders with payables**. Every time a payable is created or updated, Monite automatically tries to link this payable to its corresponding purchase order, which is already created in the system. For such cases, the field `purchase_order_id` was added to the `payable` object. To configure this behavior, the field `allow_purchase_order_autolinking` (default value equals to `true`) was added to the entity settings.
* Added a new `original_file_url` field in responses for invoices, quotes, and credit notes that returns the receivables PDF in the entity's language. The field was also added to the response of the `GET /receivables/{receivable_id}/pdf_link` endpoint.

## May 8, 2024

* **Document number customization.** We added the ability to customize the document numbers for all document types. This customization is done directly via entity settings. For more information, see [Document number customization](../../advanced/document-number-customization).

## April 11, 2024

* [Payment intents](../../payments/payment-intents) can now transition to the `refunded` status from the `payout_failed` and `payout_cancelled` statuses.

## April 2, 2024

* **Searching payables by invoice number.** [`GET /payables`](/v2024-01-31/api/payables/get-payables) has new optional query parameters to search and filter Accounts Payable invoices (payables) by their invoice number: `document_id__contains` (case-sensitive "contains"), `document_id__icontains` (case-insensitive "contains").
* **Customizing the required fields for payables.** You can now control which fields must be filled in a `draft` payable before it can transition to the `new` status. The following endpoints were added for this purpose:
  * [`GET /payables/validations`](/v2024-01-31/api/payables/get-payables-validations) - get the list of required fields.
  * [`PUT /payables/validations`](/v2024-01-31/api/payables/put-payables-validations) - update the list of required fields.
  * [`POST /payables/validations/reset`](/v2024-01-31/api/payables/post-payables-validations-reset) - restore the default list of required fields.
* **Testing reminders for a specific invoice.** Use the new endpoint [`POST /receivables/{receivable_id}/send_test_reminder`](/v2024-01-31/api/receivables/post-receivables-id-send-test-reminder) to send test email reminders (payment reminders or overdue reminders) for a specific Accounts Receivable invoice. For more information, see [Manually trigger payment reminders](../../accounts-receivable/invoices/payment-reminders#manually-trigger-payment-reminders).
* **Verifying invoice reminder configuration.** The response from [`POST /receivables/{receivable_id}/verify`](/v2024-01-31/api/receivables/post-receivables-id-verify) contains the new `warnings.payment_reminders` field that indicates issues with payment reminders configured for the specified invoice. Misconfigured reminders do not block the ability to issue the invoice, but can result in reminders not being sent. Users are advised to fix the reminder configuration issues before issuing invoices.
* [`GET /vat_rates`](/v2024-01-31/api/vat-rates/get-vat-rates) has a new optional query parameter `counterpart_address_id` to filter the applicable VAT rates based on the specified counterpart address in case the counterpart has several addresses.
* Updated the supported country codes:
  * Replaced `CS` (Serbia and Montenegro) with `ME` (Montenegro) and `RS` (Serbia).
  * Added `SS` (South Sudan)

## March 18, 2024

API version `2024-01-31` is now publicly available to all Monite partners to use in beta. To start using this version:

1. Change the `api_version` setting in your partner settings ([`/settings`](/v2024-01-31/api/partner-settings/patch-settings)) to `2024-01-31`:

   ```sh
   curl -X PATCH 'https://api.sandbox.monite.com/v1/settings' \
        -H 'X-Monite-Version: 2024-01-31' \
        -H 'Authorization: Bearer YOUR_PARTNER_TOKEN' \
        -H 'Content-Type: application/json' \
        -d '{"api_version": "2024-01-31"}'
   ```

2. Change the `X-Monite-Version` header value in all API calls to `2024-01-31`. For example:

   ```sh
   curl -X GET 'https://api.sandbox.monite.com/v1/entities' \
        -H 'X-Monite-Version: 2024-01-31' \
        -H 'Authorization: Bearer ACCESS_TOKEN'
   ```

For more information, see [How to upgrade](/v2024-01-31/api/concepts/versioning#upgrade).