We’ve improved the payment experience for entities making 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:

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 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 accounting. 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.
We’ve improved the 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.
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:
Check whether an existing counterpart needs tax_id and/or VAT ID to be specified on invoices:
We’ve extended the payments 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.
succeeded status.Added new endpoints to manage the lifecycle of user-created payment records:
PATCH /payment_records/{payment_record_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_processingPOST /payment_records/{payment_record_id}/mark_as_succeededPOST /payment_records/{payment_record_id}/cancelAdded new query filters to 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.
Improvements for VAT-inclusive pricing
Flexible discount options. Entities that use VAT-inclusive pricing can choose whether to apply discounts before or after VAT.
This is controlled by the entity setting 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.
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
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.
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.
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 now supports sorting documents by total_amount.
Added new auto-calculated field 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.
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.
New AP credit notes fields. We’ve added the new fields counterpart and counterpart_raw to the AP credit notes responses for enhanced counterpart data handling.
X-Monite-Entity-Id header is no longer mandatory for all /ocr_tasks* endpoints.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.We’ve updated the Monite OCR engine to support larger files:
The issue_date and due_date of issued invoices can now be updated in the non-compliant mode.
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.

payment_cancelled status.GET /payment_intents has a new query parameter object_id__in to bulk get payment intents associated with any of the specified invoices.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.
DELETE /roles/{role_id} endpoint to delete user roles that are no longer in use.Support for projects in purchase orders. Purchase orders can now be assigned to 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 /payablesGET /analytics/payablesUse 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 /payablesGET /payables_credit_notesGET /analytics/payablesGET /analytics/credit_notesUnit price OCR adjustments. If a line item’s unit price extracted by OCR has more decimal points than can be precisely stored in Monite, that line item gets normalized as follows:
unit_price equal to the line item total amount,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.
Added new webhooks for quotes: receivable.accepted, receivable.declined, receivable.expired. These webhooks are triggered when a quote is moved to the corresponding status.
Increased the maximum pagination limit for GET /receivables from 100 to 250 items. The default limit is still 100.
Improved the performance of the GET /receivables endpoint.
GET /accounting_connections/{connection_id} includes a new field, 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 of displaying the name of the connected tenant.The preview field of PDF templates now contains a link to a PNG preview image of the corresponding template. (Previously, the preview field returned null.)
Previously:
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.Improved filtering by projects. GET /receivables and 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.
paid status back to partially_paid or waiting_to_be_paid if the payment gets disputed or payout to the counterpart fails.amount values to indicate chargebacks and refunds.receipt document type when uploading receipts for OCR.Skipping the approval flow. Entities have a new setting 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.
status parameter of GET /entities to find only active or inactive entities.ocr_task.finished webhook when it finishes processing a file.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 - get the list of required fields.PUT /payable_credit_notes/validations - update the list of required fields.POST /payable_credit_notes/validations/reset - restore the default list of required fields.POST /payable_credit_notes/{credit_note_id}/validate - returns the information that is missing to move a credit note from draft to the new state.We’ve updated the list of supported currency codes:
GET /receivables/required_fields to get conditionally required invoice fields for the given entity and counterpart.total_vat_amounts[].taxable_amount to invoice, quote, and credit note responses. It contains the taxable amount for which the given VAT is calculated.limit query parameter to GET /analytics/payables and GET /analytics/credit_notes to control the number of results returned.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. ledger_account_ids. products. It specifies the ledger account to use when pushing products that do not have a ledger account assigned. For more information, see How data is synchronized.We’ve expanded our payment coverage to include Open Banking payments in Germany. 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:
New webhooks for invoices: receivable.overdue and receivable.uncollectible. These webhooks are triggered when an invoice is moved to the corresponding 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.
GET /analytics/credit_notes endpoint to get real-time insights for credit notes with aggregated data and detailed breakdowns, filters, and metrics. Learn more.based_on field is no longer required when creating 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.POST /payable_credit_notes/{credit_note_id}/cancel_ocr allows you to cancel the OCR scanning process for a specific credit note.file_id and file_url added to the credit note responses.based_on field was changed from required to optional.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.Credit notes and MoniteScript. We added support for the new connector types and methods in MoniteScript:
CreditNote.approveCreditNote.rejectCreditNote.add_tagsaccounting. ledger_account_ids. payments. For more information, see How data is synchronized.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.
Document history improvements:
receivable_updated event is now also generated for line item updates.receivable_created, payment_reminder_mail_sent, overdue_reminder_mail_sent.Optimized the GET /vat_rates endpoint to reduce the response time.
GET /mailboxes, POST /mailboxes, and DELETE /mailboxes/{mailbox_id} endpoints can now be called with entity user access tokens. Users need a role with the mailbox permission to access these endpoints.return_url is now optional for all payment links. Previously it was required when creating payment links for payables.Credit notes for AP. Now, credit notes 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 allows you to get real-time aggregated data with detailed breakdowns, filters, and metrics. See more.
GET /payables/analytics has been deprecated.Simplified bank account setup for African entities:
currency and country, their bank accounts can include any other data fields or combinations thereof.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 lets you find a policy that triggered a specific approval process.
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.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.New fields in payment intent objects:
payer.namepayer.bank_accounts[].routing_numberrecipient.bank_accounts[].routing_numberGET /payables/validations endpoint can now be accessed with entity user tokens.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.issued and overdue invoices can be updated if an entity uses the non-compliant mode.Payable improvements:
Deleting payables. Payables in any status can now be deleted by using the new DELETE /payables/{payable_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.
Improved search. We’ve improved search and filter parameters in GET /payables and GET /payables/analytics:
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).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 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:
entity_vat_id_id field is now optional in purchase orders and can also be unset (that is, changed to null).Approval policy improvement:
invoice.project_id attribute must be added to the trigger object. See an example.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/receivablesGET /accounting/receivables/{invoice_id}GET /accounting/payablesGET /accounting/payables/{payable_id}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:
To access a document’s history, use the following endpoints:
For more information, see Document history.
/projects endpoints. See more.
create, read, update, and delete permissions for the project object.created, deleted, and updated events of projects.project_id query parameter in the GET /payables and GET /receivables endpoints.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.GET /payables endpoint has a new query parameter tag_ids to find payables that have any of the specified tags.We’ve added a few improvements to paid invoices:
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.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.last_updated_at field to the responses from the /mailbox_domains endpoints.DELETE /entity_users/{entity_user_id} allows you to delete an entity user.Tags for receivables. Invoices, quotes, and credit notes can now have 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.
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 could only be extended. Now they can also be shortened - as long as the new end date is still a future date.
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.tag_ids__in query parameter of the GET /counterparts endpoint.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 VATline_items[].product.price_after_vat - price with VATNote: 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:
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.Search and filter payment intents. Use the new 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:
processing or settled).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.
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.
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.
id__in in GET /tags to bulk fetch multiple tags by their IDs.PUT /payables/{payable_id}/line_items that replaces all line items of a specific payable at once.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_sync_rules endpoints that were used to customize invoice and payable statuses to push to an accounting system./accounting_synced_records endpoints to retrieve or push records of synchronizations between Monite’s database and the entity’s accounting system./accounting_tax_rates to get tax rate from the accounting system.BL - Saint BarthélemyBQ - Caribbean NetherlandsCW - CuraçaoMF - Saint Martin (French part)SX - Sint Maarten (Dutch part)address.state is now required for US entities that wish to use Monite payment rails.payables_ocr_auto_tagging to specify the tags that will be automatically assigned to new payables created via OCR. For details, see Tags auto-assignment.paid_at field was added to the payable responses. It contains the date and time when the payable was moved to the paid status.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:
More flexible reminder configuration. Invoice payment reminders and 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:
language field in POST /receivables/{receivable_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.language parameter is omitted in /send requests, the email language now defaults to the counterpart language instead of English.Partner metadata can now also be updated for non-draft invoices, quotes, and credit notes.
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.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.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.measure_unit_id field is no longer required to create products for receivables.id__in query parameter on the GET /products and GET /receivables endpoints lets you bulk fetch multiple products or receivables by their IDs.name__in query parameter in GET /tags.category and description.payable.enable_line_items has been deprecated.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.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.refunded status from the payout_failed and payout_cancelled statuses.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”).draft payable before it can transition to the new status. The following endpoints were added for this purpose:
GET /payables/validations - get the list of required fields.PUT /payables/validations - update the list of required fields.POST /payables/validations/reset - restore the default list of required fields.POST /receivables/{receivable_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.POST /receivables/{receivable_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 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.CS (Serbia and Montenegro) with ME (Montenegro) and RS (Serbia).SS (South Sudan)API version 2024-01-31 is now publicly available to all Monite partners to use in beta. To start using this version:
Change the api_version setting in your partner settings (/settings) to 2024-01-31:
Change the X-Monite-Version header value in all API calls to 2024-01-31. For example:
For more information, see How to upgrade.