> 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

## October 2, 2025

### Accounts receivable

* **Text search across multiple fields.** New `search_text` parameter lets you perform partial, case-insensitive search across multiple text fields in receivables. Currently it searches in counterpart names and document numbers (`document_id`). The `search_text` parameter is available in:
  * [`GET /receivables`](../../api/receivables/get-receivables)
  * [`POST /receivables/search`](../../api/receivables/post-receivables-search)
  * [`GET /analytics/receivables`](../../api/analytics/get-analytics-receivables)

## September 24, 2025

### Accounts receivable

* **Improved support for non-taxable and tax-exempt sales.**
  Line items in receivables have the new [`tax_status`](../../api/receivables/post-receivables#request.body.line_items.tax_status) field that indicates whether this item is taxable (default), non-taxable, or exempt from VAT/tax.
  Non-taxable and exempt items are excluded from the tax summary in the totals of the line items table in PDFs.

* [Attachments](../../accounts-receivable/customization/attachments) can now be added and updated for receivables in any status.

## September 23, 2025

### Accounts payable

* **Approval policies.** Added support for [manually enforcing](../../accounts-payable/approvals/policies/index#manual-approval-policy-enforcement) an approval policy on a payable via the new field `enforce_approval_policy_id` in create and update requests. The enforced policy is always applied, ignoring triggers and priority.
* **E-invoicing.** Added the field [`einvoice_file_url`](../../e-invoicing/receive#overview) to payables. When a payable is created from an e-invoice, the original file is stored and its download link is returned in this field.

## September 22, 2025

### Accounts receivable

* **Support for multiple deductions.**
  Invoices and quotes can now have up to 10 [deductions](../../accounts-receivable/special-deductions) applied to the total amount after VAT.
  Use the new [`deductions`](../../api/receivables/post-receivables#response.body.invoice.deductions) field to specify a list of deduction amounts and their labels.

  The old `deduction_amount` and `deduction_memo` fields are still supported but have been deprecated and made mutually exclusive with the new `deductions` array.

* **Finding invoices with or without a due date.**
  Receivable search endpoints have a new boolean filter `has_due_date` that lets you find invoices that have a due date (regardless or its value) or do not have a due date.
  This filter is available in:

  * [`GET /receivables`](../../api/receivables/get-receivables)
  * [`POST /receivables/search`](../../api/receivables/post-receivables-search)
  * [`GET /analytics/receivables`](../../api/analytics/get-analytics-receivables)

## September 12, 2025

### Accounts receivable

* Invoice due date and payment terms are now optional.
  Note that invoices without a due date do not generate payment reminders.
* Improved the performance of receivable creation and search endpoints:
  * `POST /receivables`
  * `GET /receivables`
  * `POST /receivables/search`
* As part of the performance improvements, the `created_at__*` and `issue_date__*` filters in `GET /receivables` and `POST /receivables/search` now ignore the milliseconds part of their value.
  For example:

  `created_at__gte=YYYY-MM-DDThh:mm:ss.sssssZ`

  will be treated as

  `created_at__gte=YYYY-MM-DDThh:mm:ssZ`

## September 11, 2025

### Accounting integration

* Added full CRUD APIs for [general ledgers](../../accounting/integration/ledger-accounts#internal-ledger-accounts), [tax rates](../../accounting/integration/manage#internal-accounting-tax-rates), and [cost centers](../../expense-management/cost-centers). The `is_external` field is the indicator for external integrations.

### Expense management

* We enhanced [expense management](../../expense-management/index) by linking expenses directly to accounting structures. Receipts and line items now support `ledger_account_id`, `tax_rate_id`, and `cost_center_id`.

## September 10, 2025

* Added the [`GET /health`](../../api/system-health/get-health) endpoint for API health checks.

## September 1, 2025

### Expense management

* We've introduced [expense management](../../expense-management/index) as a core Monite capability, enabling businesses to handle the full lifecycle of company expenses in one place, connecting receipts and transactions. Some of expense management features include:

  * **AI-based receipt-to-transaction automatching.** AI-powered matching that links receipts to transactions after OCR, based on the date, amount, and merchant name (exact or semantic match).
  * **AI-generated expense descriptions** post-OCR, automatically filling the `description` field with concise, business-relevant text.

* Added new [RBAC permissions](../../api/concepts/authentication#permissions): `receipt` and `transaction`.
  They are required to call the `/receipts` and `/transactions` endpoints using an entity user token.

* Added [webhooks](../../references/webhooks/index) for receipts and transactions:
  * `receipt.created`
  * `receipt.updated`
  * `receipt.deleted`
  * `receipt.ocr_finished`
  * `transaction.created`
  * `transaction.updated`
  * `transaction.deleted`

### Other improvements

* **Filtering tags by category.** We've added new optional query parameters `category` and `category__in` to the [`GET /tags`](../../api/tags/get-tags) endpoint.
* **Improved analytics for payables.** We've added support for `amount_due` as a `metric` in the [`GET /analytics/payables`](../../api/analytics/get-analytics-payables) endpoint.
* The request body for [<code>POST /payment\_records<wbr />/\{payment\_record\_id}<wbr />/start\_processing</code>](../../api/payment-records/post-payment-records-id-start-processing) and [<code>POST /payment\_records<wbr />/\{payment\_record\_id}<wbr />/cancel</code>](/api/payment-records/post-payment-records-id-cancel) is now optional.
  Previously, if you wanted to provide no `payment_intent_status` for these actions you still had to send an empty object `{}` in the request body. Now you can omit the request body in this case.

## August 28, 2025

### Accounts receivable

* Improved the performance of [`GET /receivables`](../../api/receivables/get-receivables) and [`POST /receivables/search`](../../api/receivables/post-receivables-search) when searching by `product_id`.

* Previously, a custom `document_id` (document number) could be specified only during document creation.
  Now you can also update it for existing invoices and quotes in the [non-compliant mode](../../accounts-receivable/regulatory-compliance/invoice-compliance#non_compliant-mode) by using [`PATCH /receivables/{receivable_id}`](../../api/receivables/patch-receivables-id).

## August 21, 2025

### Accounts receivable

We've added several improvements for email sending:

* Added entity setting [`mail.reply_to`](../../api/entities/patch-entities-id-settings#request.body.mail.reply_to) to specify a list of email addresses to be used as the "Reply to" addresses in outgoing emails, such as invoice emails and payment reminders.
* Added new [variables](../../advanced/variables) for [email templates](../../advanced/email-templates/manage):
  * `{currency_symbol}`
  * `{footer}`
  * `{memo}`
* Partner metadata defined in invoices, quotes, and credit notes can be included in emails by using the `{partner_metadata.<key>}` variables. For more information, see [Using metadata in emails](../../common/metadata#email-templates).

## August 13, 2025

### Accounts receivable

* Increased the maximum number of `components` in custom VAT rates from 3 to 10.
* Added the `is_einvoice` field to [credit note](../../accounts-receivable/credit-notes) responses to indicate whether the credit note will be sent via [e-invoicing](../../e-invoicing/index).
  Credit notes inherit the `is_einvoice` value from the original invoice.

## August 12, 2025

* Entites that do not use Monite payment rails can add USD [bank accounts](../../entities/bank-accounts) regardless of the bank account country.
* The `payment_intent_id` field is no longer required when creating [payment records](../../common/payment-records) with the `created` status.
  It is still required for payment records in the `processing` and `succeeded` statuses.

## July 29, 2025

### Accounts payable

* Added the `routing_number` field to the `counterpart.bank_account` object in the payable payload.

## July 17, 2025

### Accounts payable

* **AI-powered counterpart suggestions.** Now, when a user uploads a payable, Monite automatically analyzes the payable data and uses AI to suggest the most likely matching counterpart. The suggestion can be checked by calling [<code>GET /payables<wbr />/\{payable\_id}<wbr />/suggestions</code>](../../api/payables/get-payables-id-suggestions).

* Added the ability to transition payables from `waiting_to_be_paid` back to `new` status by calling [<code>POST /payables<wbr />/\{payable\_id}<wbr />/reopen</code>](../../api/payables/post-payables-id-reopen). The rollback is supported for payables both with and without approval flows.

* Added support for editing the `amount_paid` field via the `PATCH` method for payables in the `new` and `draft` statuses.

* The deprecated partner setting `payable.enable_line_items` has been un-deprecated.

### Accounts receivable

* **Attaching files to receivables.**
  Invoices, quotes, and credit notes have a new `attachments` field that you can use to attach supplemental documents like contracts or reports.
  Monite also gives you granular control over which attachments get emailed or just stored for reference.
  For more information, see [Invoice attachments](../../accounts-receivable/customization/attachments).

* **Customizing the line items table in PDFs.**
  We've added new options to control the appearance of the line items table in PDF invoices, quotes, and credit notes.
  You can now hide individual columns or the entire line items table, change column labels, and change the precision of numeric fields (such as prices and VAT rates) to match industry norms and client expectations.

  > **Note**
  >
  > This feature is currently supported only for the new PDF template [`default_monite`](#new-pdf-template).

  The new options are available as part of the entity setting [`document_rendering`](../../api/entities/patch-entities-id-settings#request.body.document_rendering):

  * `display_line_items` (boolean) - controls whether to show or hide the entire line items table,
  * `line_items` (object) - controls the visibility and appearance of individual columns in the line items table.

  #### Example

  **`Entity settings`**

  ```json title="Entity settings"
  {
    ...
    "document_rendering": {
      ...

      // Hide or show the entire line items table
      "display_line_items": true,

      // Hide or show individual columns, customize column labels and numeric precision
      "line_items": {
        "discount": {
          "display": true,
          "label": "Disc."
        },
        "measure_unit": {
          "display": true,
          "label": "Units"
        },
        "name": {
          "display": true,
          "label": "Product"
        },
        "price": {
          "display": true,
          "label": "Price",
          "precision": 2
        },
        "price_after_vat": {
          "display": true,
          "label": "Price (incl. VAT)",
          "precision": 2
        },
        "quantity": {
          "display": true,
          "label": "Qty"
        },
        "total_price": {
          "display": true,
          "label": "Amount",
          "precision": 2
        },
        "total_price_after_vat": {
          "display": true,
          "label": "Amount (incl. VAT)",
          "precision": 2
        },
        "vat_amount": {
          "display": false
        },
        "vat_rate": {
          "display": true,
          "label": "VAT (%)",
          "precision": 2
        }
      }
    }
  }
  ```

  Global `document_rendering` settings can also be overridden in individual invoices, quotes, and credit notes.
  Invoices created from quotes and credit notes created from invoices inherit the `document_rendering` settings of the original document.

* Estonian standard VAT rate has been updated from 22% to 24% to reflect the [recent changes in VAT](https://www.emta.ee/en/business-client/taxes-and-payment/value-added-tax#accordion--from-01072025).

### Other improvements

We've made some changes to the `/files` API:

* Added a new `file_type` enum value: `attachments`.
* Changes in [`GET /files`](../../api/files/get-files) query parameters:
  * Added a new optional query parameter `file_type` to filter the uploaded files by purpose.
  * The `id__in` query parameter in `GET /files` was changed from required to optional.
  * Either the `id__in` or `file_type` query parameter is required to call `GET /files`.

## July 7, 2025

### E-invoicing improvements

* Added a new endpoint [`GET /einvoice_search`](../../api/einvoicing-search/get-einvoice-search) to check if a specific VAT number or business number is registered in the PEPPOL network.
  You can use it to look up an entity's counterparts in PEPPOL before creating e-invoices.

## July 4, 2025

### Partial payment links for accounts receivable invoices

[Payment links](../../payments/payment-links) for accounts receivable invoices can now be created for a partial invoice amount.
Entities can use this to request down payments from counterparts, or to let counterparts pay for large purchases in several installments.

### Partial payments and credits reflected in PDF invoices

Entity setting `generate_paid_invoice_pdf` now applies not only to fully paid invoices, but also to partially paid invoices and invoices with [credit notes](../../accounts-receivable/credit-notes).
If this option is enabled, the totals block in the PDF invoice will include a list of all payments made and credit notes issued.
For example:

```
Total                       800 €
 
Amount paid on 15.06.2025  -100 €
Credit applied 23.06.2025   -50 €
Amount paid on 02.07.2025  -150 €
 
Amount due                  500 €
```

### Other improvements

* When using Monite payment rails, a [payment record](../../common/payment-records) is now created right after a [payment intent](../../payments/payment-intents) is created (for example, whenever a user creates a payment link).
  Previously, payment records were created only for `succeeded` payment intents.

  The status of those payment records will be automatically updated to reflect the status of the associated payment intents.

## July 1, 2025

### Approval policy improvements

* Added an optional [`priority`](../../api/approval-policies/post-approval-policies#request.body.priority) field to control which policy applies when multiple match. Higher values are evaluated first.

## June 26, 2025

* Added a new endpoint that returns the next sequence number for invoices, quotes, credit notes, delivery notes, and purchase orders:\
  [<code>GET /entities<wbr />/\{entity\_id}<wbr />/settings<wrb />/next\_document\_numbers</code>](../../api/entities/get-entities-id-settings-next-document-numbers)

  For example, if the last issued invoice has the document number `INV-00042`, this endpoint returns 43 as the next invoice number. You can use these numbers as minimums when [setting the next document numbers](../../advanced/document-number-customization#next-number) manually.

## June 23, 2025

### Accounts receivable \[#new-pdf-template]

* **Custom footer text.**  Invoices, quotes, and credit notes have a new optional `footer` field.
  It is similar to `memo` but displayed below the line items table in the PDF.

  > **Note**
  >
  > The footer is included only in the new PDF template `default_monite` (mentioned below) and is not displayed in other PDF templates.

* **Project name in PDFs.** Invoices, quotes, and credit notes now display the name of the associated [project](../../common/projects) in the PDF document header.
  This improvement applies to all PDF templates.

* **New PDF template** `default_monite` is available for invoices, quotes, and credit notes - in addition to the existing [templates](../../advanced/pdf-templates).
  This template features a clean and modern design with a focus on simplicity.
  It's the first of many new templates coming to the Monite platform in the following months.

  We recommend that partners set this PDF template as default for new entities, and later migrate existing entities from the old PDF templates to the new ones.
  Old PDF templates (`classic`, `standard`, and others) will eventually be deprecated in favor of the new templates.

  #### How to set the new PDF template as default

  The template ID `deb7a4d1-e46c-4e01-8189-d5f249da7a2f` is the same in all [environments](../../api/concepts/environments).

  ```sh
  curl -X POST 'https://api.sandbox.monite.com/v1/document_templates/deb7a4d1-e46c-4e01-8189-d5f249da7a2f/make_default' \
       -H 'X-Monite-Version: 2024-05-25' \
       -H 'X-Monite-Entity-Id: ENTITY_ID' \
       -H 'Authorization: Bearer ACCESS_TOKEN'
  ```

  ![New PDF template](/_fern-img/b1f8b5cfe5f7ef4abd83b796effec129d72da88580df1f3935cee117ad4c03b1.webp)

## June 18, 2025

* [`PATCH /entities/{entity_id}/settings`](../../api/entities/patch-entities-id-settings) endpoint can now be accessed with [entity user tokens](../../entities/users#get-entity-user-token).
  The user must have a role with the `entity.update` permission.

## June 16, 2025

### Entity improvements

* [`PUT /entities/{entity_id}/logo`](../../api/entities/put-entities-id-logo) and [`DELETE /entities/{entity_id}/logo`](../../api/entities/delete-entities-id-logo) endpoints can now be accessed with [entity user tokens](../../entities/users#get-entity-user-token).
  The user must have a role with the `entity.update` permission.

### Accounts receivable

* [Products](../../accounts-receivable/products) have a new field [`external_reference`](../../api/products/post-products#request.body.external_reference) that lets you map products between Monite and external systems.
  This field is also available in inline products that are defined directly in invoices and quotes.

## June 9, 2025

### Buy Now Pay Later (BNPL) in the US with Klarna and Affirm \[#bnpl]

**Klarna** and **Affirm** are now available as payment methods in the [Payment Web Component](../../payments/payment-web-component) and [payment pages](../../payments/payment-links).
These BNPL payment methods can help entities enhance their cash flow by letting customers pay in installments while the entity receives the full payment upfront.

> **Info**
>
> Klarna and Affirm payments are available only in the US and only for B2C transactions.

![Klarna and Affirm payment options on the payment page](/_fern-img/a56a6ca2fdfbbcfe5b17c5046ce4e2e1881443a9a3a5ffb21f408f3cc6555b18.webp)

#### How to enable Klarna and Affirm

To enable Klarna and Affirm for your US entities, add them to the [entity's list of payment methods](../../payments/onboarding/enable-payment-methods)

**`PUT /entities/{entity_id}/payment_methods`**

```json {5-6} title="PUT /entities/{entity_id}/payment_methods"
{
  "payment_methods_receive": [
    "card",
    "us_ach",
    "affirm",
    "klarna"
  ]
}
```

and then include these methods when [creating invoice payment links](../../payments/payment-links#for-receivable).

### Open Banking for Austria BETA \[#austria-open-banking]

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

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

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

## June 3, 2025

### Canadian tax rates

Monite's built-in catalog of [VAT & tax rates](../../accounts-receivable/vat-rates) now includes Canadian sales tax rates – <abbr title="goods and services tax">GST</abbr>, <abbr title="provincial sales tax">PST</abbr>, <abbr title="Quebec sales tax">QST</abbr>, and <abbr title="harmonized sales tax">HST</abbr>.
This gives Canadian entities an option to select invoice tax rates from the catalog instead of filling in the values manually.

Composite tax rates indicate their `components`, for example, GST 5% + PST 7%.

#### Example of tax rate data for Canada

**`GET /vat_rates`**

```json title="GET /vat_rates"
{
  "data": [
    {
      // British Columbia, Manitoba
      "id": "ba145203-e583-4e30-8c7b-638d720b2320",
      "components": [
        {
          "name": "GST",
          "value": 500.0  // 5 %
        },
        {
          "name": "PST",
          "value": 700.0  // 7%
        }
      ],
      "country": "CA",
      "value": 1200,      // 12%
      ...
    },
    {
      // Ontario
      "id": "a65ef141-2371-46cb-bf16-7965e4c29f08",
      "components": [
        {
          "name": "HST",
          "value": 1300.0 // 13%
        }
      ],
      "country": "CA",
      "value": 1300,      // 13%
      ...
    },
    ...
  ]
}
```

### Accounting integration improvements

* When invoices and products are pushed into an accounting system, if a product's description is empty it is set to the product name.
  This is to comply with accounting system requirements which expect a non-empty description for invoice line items.
* [<code>POST /accounting\_synced\_records<wbr />/\{synced\_record\_id}<wbr />/push</code>](/api/accounting-synchronized-records/post-accounting-synced-records-id-push) now supports force-pushing of [payment records](../../common/payment-records).
* Improved the error message when a payment record could not be pushed because the related invoice or invoice counterpart are not pushed yet or were pushed with errors.
  These errors are included in results from [<code>GET /accounting\_synced\_records<wbr />?object\_type=payment\_record</code>](/api/accounting-synchronized-records/get-accounting-synced-records).

## May 30, 2025

### Accounts payable

* **Payment records history.** Now, the `GET /payment_records` and `GET /payment_records/{payment_record_id}` endpoints have a new field `history`, that provides a chronological log of all status changes for a payment record, helping track its full lifecycle.

## May 28, 2025

### Accounts payable

* **Payables history.** You can now retrieve document [history for payables](../../accounts-payable/payable-history) using the new [`GET /payables/{payable_id}/history`](/api/payables/get-payables-id-history) endpoint. The history tracks key events such as when a payable is created, updated, or deleted; when its status changes; and when a credit note is linked or unlinked.

* **Improved filtering by tags.** We've added an optional query parameter `has_tags` (`true` or `false`) to [`GET /payables`](/api/payables/get-payables) and [`GET /analytics/payables`](/api/analytics/get-analytics-payables). You can use this parameter to filter payables based on whether they have [tags](../../common/tags).

## May 27, 2025

### Accounts receivable

* **Philippines support.** We've added [VAT rates](../../accounts-receivable/vat-rates) and regulatory coverage for the Philippines. Refer to the [additional considerations](../../accounts-receivable/regulatory-compliance/countries#philippines) for invoicing in the Philippines.

* **Invoice due date can now be set directly** instead of calculated based on payment terms.
  To set the due date, use the `payment_terms.term_final.end_date` field when creating or updating an invoice.

  #### Example

  **`POST /receivables`**

  ```json {5} title="POST /receivables"
  {
    "type": "invoice",
    "payment_terms": {
      "term_final": {
        "end_date": "2025-06-30"
      }
    },
    ...
  }
  ```

* [Invoice payment terms](../../common/payment-terms) can now be defined inline, as an alternative to referencing a pre-existing payment terms object.
  The due date and early discount dates can be defined with either `number_of_days` or `end_date`; the other field will be calculated automatically.

  #### Example

  **`POST /receivables`**

  ```json title="POST /receivables"
  {
    "type": "invoice",
    
    // Instead of
    // "payment_terms_id": "477b050d-1e08-4346-a7c6-de5dc887523d",
    // you can use
    "payment_terms": {
      "term_1": {
        "number_of_days": 10,
        "discount": 200
      },
      "term_final": {
        "number_of_days": 30
      }
    },
    ...
  }
  ```

* When using `tax_rate_value` to specify invoice VAT rates inline, you can now also specify the `tax_rate_name` label to use in PDF invoices.

  #### Example

  **`POST /receivables`**

  ```json {7-8} title="POST /receivables"
  {
    "type": "invoice",
    "line_items": [
      {
        "product_id": "24d19c9f-2293-4529-a5e8-8fe60e0d5504",
        "quantity": 1,
        "tax_rate_name": "GST",
        "tax_rate_value": 1000
      }
    ],
    ...
  }
  ```

## May 16, 2025

### Accounting integration improvements

* Existing counterparts are now pushed into accounting systems whenever invoices addressed to those counterparts are pushed.
  This helps ensure that counterparts created in Monite before creating the accounting connection are synchronized properly.
* Improved logging to indicate when products could not get pulled from accounting systems because of a negative price or no price. These errors are included in results from [<code>GET /accounting\_synced\_records<wbr />?object\_type=product</code>](/api/accounting-synchronized-records/get-accounting-synced-records).

## May 15, 2025

### Accounts receivable

We've improved how custom VAT rates are displayed in PDF invoices, quotes, and credit notes.
The totals section in PDFs now includes a breakdown of VAT amounts per VAT component.
For example:

```plain
Total GST (5%)     25.70 CAD
Total PST (7%)     35.98 CAD

Total (CAD)       575.68 CAD
```

## May 13, 2025

### Apple Pay and Google Pay support \[#apple-google-pay]

**Apple Pay** and **Google Pay** are now available as payment methods in the [Payment Web Component](../../payments/payment-web-component) and [payment pages](../../payments/payment-links). These payment methods are available by default to all entities that are [onboarded](../../payments/onboarding/enable-payment-methods) to receive `card` payments.

Apple Pay and Google Pay options are displayed to payers with compatible [Apple Pay devices](https://support.apple.com/en-us/102896) and [Google Pay devices](https://developers.google.com/pay/issuers/overview/supported-devices#compatibility_requirements) if the payer's wallet has at least one card.

> **Info**
>
> Partners who use a [custom domain](../../payments/payment-links#custom-domain) for payment pages should contact their Monite Account Manager to enable Apple Pay and Google Pay for their entities.

![Apple Pay option on the payment page](/_fern-img/1a17c1b3a340493851ee8e7769cc38c0312896a6eee95badf23f6c59c08513fd.webp)

### Accounts receivable

This release improves the search functionality for receivables:

* Added the [`POST /receivables/search`](/api/receivables/post-receivables-search) endpoint as an alternative to [`GET /receivables`](/api/receivables/get-receivables).
  The POST version works the same as GET but sends the search and filter parameters in the request body instead of the URL query string.
  You can use the POST version for complex search queries where using GET would exceed the URL length limit.

* Significantly reduced the length of the pagination tokens returned by `GET /receivables` and `POST /receivables/search` to reduce the overall request size for paginated requests.

* Pagination tokens used by `GET /receivables` and `POST /receivables/search` now expire after 24 hours.
  These pagination tokens are intended to be used immediately after you receive them and not stored and used at a later time.

> **Info**
>
> The changes in pagination tokens apply only to the `GET /receivables` and `POST /receivables/search` endpoints and do not affect other Monite API endpoints.

### Other improvements

* Added new `object_id__in` query parameter to [`GET /payment_records`](/api/payment-records/get-payment-records) to get payment records for multiple payables and/or receivables at once.

## May 12, 2025

This release brings many new features and improvements to Monite Accounts Receivable APIs, including changes in recurring invoices, VAT rates, new regulatory compliance areas, and more.

### Recurring invoice updates

Several quality-of-life enhancements have been added to [recurring invoices](../../accounts-receivable/invoices/recurring). These changes are fully backward compatible and involve only the addition of new fields to the existing API:

* [Flexible scheduling options](../../accounts-receivable/invoices/recurring#schedule):
  Recurring invoices can now be configured to recur daily, weekly, monthly, quarterly, or yearly.
  You can also specify the exact day of the month or day of the week for invoice generation.
  Previously, the API supported only monthly recurrence on the first or last day of the month.
* [Pause](../../accounts-receivable/invoices/recurring#pause) and [resume](../../accounts-receivable/invoices/recurring#resume) support:
  Recurring invoices can now be paused and resumed as needed, without requiring deletion or recreation.
* Editable invoice templates:
  The base invoice template can be [updated](../../accounts-receivable/invoices/recurring#update-invoice-details) to add or remove line items, adjust pricing, and modify other invoice details.
  These updates will automatically apply to future invoices generated from the template.

#### Detailed list of changes and migration notes

All changes are [non-breaking](/api/concepts/versioning#non-breaking-changes) and are backward compatible.
The changes are available in all supported API versions: 2024-05-25, 2024-01-31, and 2023-09-01.

You can continue using the old recurrence configuration format for as long as you need.
There is no immediate need to update your code.

* **Added** new endpoints to pause and resume recurrences:
  * [`POST /recurrences/{recurrence_id}/pause`](/api/recurrences/post-recurrences-id-pause)
  * [`POST /recurrences/{recurrence_id}/resume`](/api/recurrences/post-recurrences-id-resume)

* **Improved:** [`PATCH /receivables/{receivable_id}`](/api/receivables/patch-receivables-id) now supports updating invoices in the [`recurring`](../../accounts-receivable/invoices/index#recurring) status (that is, the invoice templates for recurring invoices).

* **Improved:** The `receivable.failed` [webhook](../../references/webhooks/index#events) is now also triggered when a recurring invoice cannot be issued due to validation or regulatory errors.
  * Applies to recurrences with `automation_level` set to `issue` or `issue_and_send`.

* **Updated** the `Recurrence` object format (used by the `/recurrences*` endpoints):

  * **Added** new fields for schedule configuration:
    [`start_date`](/api/recurrences/post-recurrences#request.body.start_date),
    [`end_date`](/api/recurrences/post-recurrences#request.body.end_date),
    [`max_occurrences`](/api/recurrences/post-recurrences#request.body.max_occurrences),
    [`frequency`](/api/recurrences/post-recurrences#request.body.frequency),
    [`interval`](/api/recurrences/post-recurrences#request.body.interval).
    * These new fields are optional for backward compatibility.

  * **Deprecated** the old configration fields: `start_month`, `start_year`, `end_month`, `end_year`, `day_of_month`.

    * These fields are still accepted and returned by the API, but they will be removed in a future API version.
    * These deprecated fields were also changed from required to optional and made nullable.

    #### Example

    #### New format

    ```json
    {
      "start_date": "2025-01-31",
      "end_date": "2025-10-31",

      "frequency": "month",
      "interval": 1,
      ...
    }
    ```

    #### Old (but still supported) format

    ```json
    {
      "start_year": 2025,
      "start_month": 1,
      "end_year": 2025,
      "end_month": 10,
      "day_of_month": "last_day",
      ...
    }
    ```

    | Old field      | New field                      |
    | -------------- | ------------------------------ |
    | `start_month`  | The month part of `start_date` |
    | `start_year`   | The year part of `start_date`  |
    | `end_month`    | The month part of `end_date`   |
    | `end_year`     | The year part of `end_date`    |
    | `day_of_month` | The day part of `start_date`   |

  * Existing recurrences will continue working and were automatically updated to also support the new configuration fields.

  * For backward compatibility, the API accepts and returns both old and new fields and automatically synchronizes their values where possible.

    Caveats:

    * Recurrences that trigger on any day of month other than the first day will return `day_of_month`=`"last_day"`.
    * Recurrences configured with `max_occurrences` return `end_year`=`null` and `end_month`=`null`.

  * When creating or updating a recurrence, if the request includes both old and new fields then the new fields take precedence and the old fields get overwritten with the values of the corresponding new fields.

  * **Added** new possible recurrence status values:
    * [`status`](/api/recurrences/get-recurrences-id#response.body.status) can have the value `paused` (in addition to the previous values `active`, `completed`, and `canceled`).
    * [`iterations[].status`](/api/recurrences/get-recurrences-id#response.body.iterations.status) can have the value `skipped` (in addition to the previous values `pending`, `completed`, `issue_failed`, `send_failed`, `canceled`).

### Custom VAT rates

* Added new endpoints for managing custom VAT rates:
  * [`POST /custom_vat_rates`](/api/custom-vat-rates/post-custom-vat-rates) – create a new custom VAT rate.
  * [`GET /custom_vat_rates`](/api/custom-vat-rates/get-custom-vat-rates) – get all custom VAT rates.
  * [`GET /custom_vat_rates/{custom_vat_rate_id}`](/api/custom-vat-rates/get-custom-vat-rates-id) – get a specific custom VAT rate by ID.
  * [`PATCH /custom_vat_rates/{custom_vat_rate_id}`](/api/custom-vat-rates/patch-custom-vat-rates-id) – update an existing custom VAT rate.
  * [`DELETE /custom_vat_rates/{custom_vat_rate_id}`](/api/custom-vat-rates/delete-custom-vat-rates-id) – delete a specific custom VAT rate.

* Added new `custom_vat_rate_id` field in the following endpoints:
  * [`POST /receivables`](/api/receivables/post-receivables) – create a new receivable with custom VAT rate.
  * [`PATCH /receivables/{receivable_id}`](/api/receivables/patch-receivables-id) – update an existing receivable with a custom VAT rate.

* Added the `is_custom` field to the `TotalVatAmountItem` and `LineItemProductVatRate` objects to indicate whether the VAT rate is custom.

### Other accounts receivable improvements

* **New Zealand support.** We've added [GST rates](../../accounts-receivable/vat-rates) and [regulatory coverage](../../accounts-receivable/regulatory-compliance/countries) for New Zealand.

* [`GET /receivables`](/api/receivables/get-receivables) now supports sorting and filtering results by `discounted_subtotal` (the subtotal amount incuding all discounts but excluding VAT).

  The filters include both exact value match and "greater/less than" filters:

  * `discounted_subtotal`
  * `discounted_subtotal__gt`
  * `discounted_subtotal__gte`
  * `discounted_subtotal__lt`
  * `discounted_subtotal__lte`

## May 6, 2025

### E-invoicing improvements

* **Flexible e-invoicing onboarding.**
  When onboarding entities to e-invoicing, you can now choose whether the entity needs to send e-invoices, receive e-invoices, or both.
  To do this, use the new `is_sender` and `is_receiver` fields in the [`POST /einvoicing_connections`](/api/einvoicing-connections/post-einvoicing-connections) request body.

  * Sending e-invoices has no additional requirements. The entity can send e-invoices through Monite even if it's registered to send or receive e-invoices through another PEPPOL access point.
  * Receiving e-invoices requires [registering the entity in PEPPOL](../../e-invoicing/onboarding#registration) through the Monite platform, and the entity must not be already registered in other PEPPOL through another access point.

* Added new endpoint [<code>PATCH /einvoicing\_connections<wbr />/\{einvoicing\_connection\_id}</code>](/api/einvoicing-connections/patch-einvoicing-connections-id) to update the `is_sender` and `is_receiver` options as well as the entity's `address` for e-invoicing registration at any time after the initial onboarding.

### Accounting integration improvements

* Increased the maximum pagination `limit` from 100 to 250 for the following endpoints:

  * [`GET /accounting_synced_records`](/api/accounting-synchronized-records/get-accounting-synced-records)
  * [`GET /accounting_tax_rates`](/api/accounting-tax-rates/get-accounting-tax-rates)
  * [`GET /ledger_accounts`](/api/ledger-accounts/get-ledger-accounts)

  The default `limit` value for these endpoints was also changed from 100 to 250.
* Fixed an issue where the `last_pull` timestamp in the accounting connection object was not updated after running an on-demand synchronization with <code>POST /accounting\_connections<wbr />/\{connection\_id}<wbr />/sync</code>.

## April 29, 2025

### E-invoicing improvements

* When you [add a counterpart's PEPPOL identifier](../../e-invoicing/send#counterpart-peppol-id) by calling <code>POST /counterparts<wbr />/\{counterpart\_id}<wbr />/einvoicing\_credentials</code>, Monite now verifies the identifier length and format and checks that this identifier is actually registered on the PEPPOL network.

### Accounts payable

* The `description` field in [approval policies](../../accounts-payable/approvals/policies/index) was changed from required to optional.

## April 24, 2025

### Recurring invoice improvements

* You can now control whether [recurring invoices](../../accounts-receivable/invoices/recurring) will be created as `draft`, `issued`, or issued and automatically sent. To do this, use the [`automation_level`](/api/recurrences/post-recurrences#request.body.automation_level) field in the recurrence configuration. You can set this option for each recurring invoice individually.

## April 22, 2025

### Accounts receivable

* **Filtering receivables by product IDs.** [`GET /receivables`](/api/receivables/get-receivables) has new query parameters `product_ids` and `product_ids__in` to find invoices, quotes, and credit notes that include one or more of the specified products:
  * `/receivables?product_ids=...`: Return only receivables that include all of the products with the specified IDs and optionally other products that are not specified.
  * `/receivables?product_ids__in=...`: Return only receivables that include at least one of the products with the specified IDs.

* Invoice field `fulfillment_date` is now optional in countries where it's not required for regulatory compliance. If not provided and the country requires it, we will auto-generate the value based on the `issue_date` field.

* **E-invoicing improvements.** When invoices or credit notes are sent via e-invoicing, the generated e-invoice XML is now stored and its link is available in the `einvoice_file_url` field. If the e-invoice is sent via email, the XML file is also attached to the email automatically.

## April 15, 2025

### Accounts payable

* Added the `tag_ids__not_in` filter to `GET /payables` and `GET /analytics/payables` to find payables that do not have any of the specified tag IDs.

## April 14, 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>](/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`](/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}`](/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`](/api/payment-records/post-payment-records-id-mark-as-succeeded)
  * [`POST /payment_records/{payment_record_id}/mark_as_succeeded`](/api/payment-records/post-payment-records-id-start-processing)
  * [`POST /payment_records/{payment_record_id}/cancel`](/api/payment-records/post-payment-records-id-cancel)

* Added new query filters to [`GET /payment_records`](/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`](/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>](/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`](/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`](/api/payables/get-payables)
  * [`GET /payables_credit_notes`](/api/credit-notes/get-payable-credit-notes)
  * [`GET /analytics/payables`](/api/analytics/get-analytics-payables)
  * [`GET /analytics/credit_notes`](/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](../../e-invoicing/accounts-receivable) 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`](/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}`](/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`](/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}`](/api/accounting-connections/get-accounting-connections-id) includes a new field, [`business_info`](/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`](/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`](/api/receivables/get-receivables) and [`GET /analytics/receivables`](/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`](/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`](/api/payables/get-payables)
  * [`GET /payables_credit_notes`](/api/credit-notes/get-payable-credit-notes)
  * [`GET /analytics/payables`](/api/analytics/get-analytics-payables)
  * [`GET /analytics/credit_notes`](/api/analytics/get-analytics-credit-notes)

## February 26, 2025

* **Filtering entities by status.** Use the new `status` parameter of [`GET /entities`](/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](../../payments/payment-references) 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`](/api/credit-notes/get-payable-credit-notes-validations) - get the list of required fields.
* [`PUT /payable_credit_notes/validations`](/api/credit-notes/put-payable-credit-notes-validations) - update the list of required fields.
* [`POST /payable_credit_notes/validations/reset`](/api/credit-notes/post-payable-credit-notes-validations-reset) - restore the default list of required fields.
* [`POST /payable_credit_notes/{credit_note_id}/validate`](/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`](/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`](/api/analytics/get-analytics-payables) and [`GET /analytics/credit_notes`](/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 analytics \[#ar-anaytics]

* [Monite analytics](../../advanced/analytics) has been expanded to include accounts receivable. Use the [`GET /analytics/receivables`](/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](/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 31, 2025

### Credit note improvements (accounts payable)

You can configure Monite to automatically link credit notes which have a payable reference to the appropriate payable during the credit note creation. [Learn more](../../accounts-payable/credit-notes/manage#automatically-link-credit-notes-with-payables).

## 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`](/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)
* Added the new [partner setting](/api/partner-settings/patch-settings#request.body.payable.allow_credit_note_autolinking) `payable.allow_credit_note_autolinking` to allow credit notes to be automatically linked to their related payables.
* 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`](/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`](/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

* **Recurring invoice tweaks.** The `subject_text` and `body_text` fields in [recurring invoice configuration](/api/recurrences/post-recurrences) were changed from required to optional. [Recurring invoices](../../accounts-receivable/invoices/recurring) will be sent automatically only if both `subject_text` and `body_text` are provided, plus either `recipients` in the recurrence configuration or `counterpart_contact.email` in the base invoice.

* **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](https://docs.monite.com/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`](/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 19, 2024

### E-invoicing

* Monite now integrates provides a global e-invoicing solution to help our partners to create and send e-invoices using the Monite API. This integration enables Monite clients to stay compliant in the regions where E-invoicing becomes mandatory. [See more](../../e-invoicing/index).

## December 16, 2024

API version `2024-05-25` is now publicly available to all Monite partners. To start using this version:

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

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

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

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

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