Release notes
Stay up to date with the latest features, improvements, and breaking changes in the current version of Monite API.
What’s new in v2024-01-31
This version includes improvements and changes to the Monite platform to make the API more consistent and predictable.
In future updates to the API version 2024-01-31
, we plan to add more features and improvements to our product offering. We’ll add these new features to the current API version unless they introduce new breaking changes. In such cases, we will introduce them in subsequent API versions.
Accounts Receivable: Full coverage and regulatory compliance for the US
With every platform release, we expand the geographic coverage of the regions and countries supported by our product verticals.
As of v. 2024-01-31, we have provided the final elements necessary to expand our coverage to offer full regulatory compliance in the US. This milestone allows US entities to leverage Monite’s accounts receivable functionality using our API. With this expansion, our partners can deliver enhanced financial services to their customers across the US market, unlocking new opportunities for growth and innovation.
This release includes requirements for standard invoice data elements, invoice templates, the ability to select custom sales tax amounts on invoices and quotes, and more.
Improved data validation
API version 2024-01-31 introduces additional validations and requirements for entity data, which helps streamline the entity onboarding process.
- Entities:
- Empty string values (
""
) are no longer allowed in entity data. To indicate the absence of a value, either use thenull
value or omit the corresponding field from the request. address.city
can be up to 100 characters long.address.line1
can be up to 200 characters long.business_profile.mcc
(specified via/entities/{entity_id}/onboarding_data
) must be a valid MCC according to ISO 18245:2023. See Merchant category codes for a list of accepted codes.phone
pattern and length are now validated based on the country code of the phone number. However, we do not verify if the number is actually in use. For example,+1 (347) 555-0100
and13475550100
are considered valid phone numbers even though they are fictitious.- For organizations:
legal_name
can be up to 100 characters long.
- For individuals:
first_name
,last_name
, andid_number
can be up to 100 characters long.date_of_birth
- the individual must be at least 13 years old.ssn_last_4
must be a 4-character numeric string.title
can be up to 10 characters long.
- Empty string values (
- Entity bank accounts:
sort_code
must be a 6-character numeric string.routing_number
of US bank accounts must be a 9-character numeric string.account_number
must be a numeric string. UK account numbers must be 8 characters long, and non-UK account numbers can be 5-19 characters long.account_holder_name
anddisplay_name
can be up to 200 characters long.bic
cannot be provided withoutiban
.
- Entity persons:
- Empty string values (
""
) are no longer allowed in persons’ data. To indicate the absence of a value, either use thenull
value or omit the corresponding field from the request. first_name
,last_name
,id_number
, andtitle
can be up to 100 characters long.date_of_birth
- the person must be at least 13 years old.address.country
must be a valid two-letter country code (ISO 3166-1 alpha-2).address.city
andaddress.state
can be up to 100 characters long.address.line1
andaddress.line2
can be up to 200 characters long.address.postal_code
can be up to 10 characters long.phone
pattern and length are now validated based on the country code of the phone number. However, we do not verify if the number is actually in use. For example,+1 (347) 555-0100
and13475550100
are considered valid phone numbers even though they are fictitious.relationship.percent_ownership
can have at most two decimal places.ssn_last_4
must be a 4-character numeric string.
- Empty string values (
Other features and improvements
- Added support and regulatory coverage for the USA. US-based entities can now issue invoices to their customers using the Monite API.
- Added the ability to create multiple overdue reminders using the
terms
field on the request object of thePOST /overdue_reminders
andPATCH /overdue_reminders
. - Persons have a new read-only field
created_by_entity_user_id
that contains the ID of the entity user who created this person.
Breaking changes
Version 2024-01-31 includes the following breaking changes, which you should consider when upgrading from the previous API version.
-
General:
- Removed the deprecated country code
CS
(Serbia and Montenegro) in favor ofRS
(Serbia) andME
(Montenegro).
- Removed the deprecated country code
-
Entities:
- The
country
of existing entities can no longer be changed for regulatory reasons. - Possible currencies for entity bank accounts now depend on the bank country:
- USD can only be chosen for bank accounts in the US.
- GBP can only be chosen for bank accounts in the UK (including Gibraltar).
- EUR can only be chosen for bank accounts in the EU, Liechtenstein, Norway, Switzerland, and UK (including Gibraltar).
- See the Improved data validation section for other changes.
- The
-
Counterparts:
- Removed the
created_automatically
field from the request payload when creating and updating counterparts. - Removed the
type
field from the request payload of thePATCH /counterparts/{counterpart_id}
endpoint.
- Removed the
-
Counterpart addresses:
- The
individual.residential_address
andorganization.registered_address
fields in thePOST /counterparts
request body have been renamed toindividual.address
andorganization.address
, respectively. - Removed the ability to manually set a default counterpart address using the
POST /counterparts/{counterpart_id}/addresses/{address_id}/make_default
endpoint. - Removed the
is_default
field from counterpart addresses.
- The
-
Counterpart bank accounts:
- Renamed the
is_default
field in counterpart bank accounts tois_default_for_currency
.
- Renamed the
-
Mail templates:
- The
body_text
variable of thebody_template
field in the request body of thePOST /mail_templates
andPATCH /mail_templates
endpoints was renamed tobody_template
.
- The
-
Overdue reminders:
- The
term
field in thePOST /overdue_reminders
andPATCH /overdue_reminders/:id
endpoints was renamed toterms
. The field now accepts an array of objects to support creating multiple overdue reminders.
- The
-
Payables:
- Payables in the
approve_in_progress
status can no longer transition to thecanceled
status. - The
due_date*
query filters inGET /payables
now expect just a date value without the time part, that is,YYYY-MM-DD
instead ofYYYY-MM-DDThh:mm:ssZ
.
- Payables in the
-
Receivables:
- Removed the
country
,currency
,display_name
,is_default
, andwas_created_by_user_id
fields from theentity_bank_account
object in invoice, quote, and credit note responses. - Removed the
counterpart_billing_address
andcounterpart_shipping_address
fields from the request payloads of thePOST /receivables
andPATCH /receivables/:id
endpoints. - The request payloads of the
POST /receivables
andPATCH /receivables/:id
endpoints now usecounterpart_billing_address_id
andcounterpart_shipping_address_id
fields rather than objects. Thecounterpart_billing_address_id
field is now required when creating new invoices and quotes. - Removed the
counterpart_address
object from receivables’ response objects. - The
counterpart_billing_address_id
field is required in the payload of thePATCH /receivables/:id
endpoint whenever the counterpart associated with the receivable is changed.
- Removed the
-
Webhooks:
-
Renamed the
/webhook_settings
endpoints to/webhook_subscriptions
. -
Renamed the
/webhooks
endpoints to/webhook_deliveries
. -
Changed the success status code for
POST /webhook_subscriptions
from 200 to 201. -
Changed the success status code for
DELETE /webhook_subscriptions/{webhook_subscription_id}
from 200 to 204. -
Changes in the webhook event format:
- Renamed the
name
field todescription
. - Removed the
significance
field. - Replaced the
object_id
field with the nestedobject.id
field.
- Renamed the
-
v2024-01-31
Earlier versions
Changelog
October 4, 2024
Accounts Payable
-
Payable improvements:
-
Deleting payables. Payables in any status can now be deleted by using the new
DELETE /payables/{payable_id}
endpoint. Entity users need thepayable.delete
permission to be able to delete payables. Successful deletion of a payable triggers thepayable.deleted
webhook. -
Improved search. We’ve improved search and filter parameters in
GET /payables
andGET /payables/analytics
:- New
search_text
parameter lets you perform partial, case-insensitive search across multiple text fields of a payable at the same time. Currently it searches in counterpart names and document numbers (document_id
). - Added the
counterpart_name__contains
andcounterpart_name__icontains
for searching by partial counterpart name in the case-sensitive and case-insensitive modes, respectively.
- New
-
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:
- The
entity_vat_id_id
field is now optional in purchase orders and can also be unset (that is, changed tonull
). - Updated PDF templates for purchase orders. Added the “Supplier” block and updated some labels for improved clarity.
- The
-
Approval policy improvement:
- Projects can now be used in approval policy conditions. For this, the
invoice.project_id
attribute must be added to thetrigger
object. See an example.
- Projects can now be used in approval policy conditions. For this, the
Accounting integration improvements
We’ve added new endpoints to list invoices and payables (bills) that exist in the entity’s connected accounting system without pulling those documents into Monite. Monite partners can use these endpoints to implement custom document comparison and synchronization logic.
GET /accounting/receivables
GET /accounting/receivables/{invoice_id}
GET /accounting/payables
GET /accounting/payables/{payable_id}
September 30, 2024
Accounts receivable document history
Monite now keeps a record of all changes made to each invoice, quote, and credit notes, from document creation to the final status. This provides entities with an overview of how a document has evolved over time. For example, entity users can see the following:
- all revisions made to an individual invoice, quote, or credit note before it was sent to the client,
- who made a change and when,
- when a particular status transition occurred (for example, when a quote was signed),
- payments made towards an invoice,
- emails sent to the clients and the recipient email addresses,
- and more.
To access a document’s history, use the following endpoints:
History can be filtered by the date range or event type, allowing users to narrow the results or find a specific entry.
September 4, 2024
General
- Projects. Users can now aggregate and track payables and receivables under the same work scope as a project via the new
/projects
endpoints. See more.- New
create
,read
,update
, anddelete
permissions for theproject
object. - New webhooks for the
created
,deleted
, andupdated
events of projects. - Payables and receivables can be filtered by project via the new
project_id
query parameter in theGET /payables
andGET /receivables
endpoints.
- New
Accounts Payable
- Payable analytics. Use the new
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. - Find and filter payables by tags. The
GET /payables
endpoint has a new query parametertag_ids
to find payables that have any of the specified tags.
Accounts Receivable
We’ve added a few improvements to paid invoices:
- Paid invoices can now be sent via email.
- Added a new entity setting
generate_paid_invoice_pdf
. If it is set to true, the PDF version of paid invoices will indicate that the invoice is already paid. The PDF file gets regenerated at the moment when an invoice becomes paid. It is not issued as a separate document and the original PDF invoice is no longer available. - Added a new email template
receivables_paid_invoice
that is used when sending paid invoices. It is similar to thereceivables_invoice
template used for unpaid invoices but does not include the Pay invoice link.
Other
- Added the
last_updated_at
field to the responses from the/mailbox_domains
endpoints.
August 29, 2024
General
- Deleting entity users. New endpoint
DELETE /entity_users/{entity_user_id}
allows you to delete an entity user.
August 23, 2024
Accounts Receivable
-
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 theGET /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, thepaid_at
timestamp is filled in automatically when counterparts pay invoices. If you use external payment rails, thepaid_at
timestamp is taken from the corresponding field provided in thePOST /payment_records
orPOST /receivables/{invoice_id}/mark_as_paid
request.- Added a new optional request field
paid_at
toPOST /receivables/{invoice_id}/mark_as_paid
. If omitted, it defaults to the date and time of the request.
- Added a new optional request field
-
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.
August 21, 2024
Accounts Receivable
- New entity setting
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 thevat_mode
field when creating invoices and quotes.
August 15, 2024
General
- Tags for counterparts. Counterparts can now have tags (labels) assigned to them. You can also find and filter counterparts by tags by using the
tag_ids__in
query parameter of theGET /counterparts
endpoint.
Accounts Receivable
-
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 productprice
.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 VAT
Note: after an invoice or quote is created, its
vat_mode
cannot be changed, event in draft documents. -
Multi-branding enhancements. We’ve expanded the ability to change entity branding information (
email
,logo
,phone
, andwebsite
) for accounts receivable documents:- Branding information can now be changed not only for invoices, but also for quotes and credit notes.
- Previously, entity branding information could be changed only for existing documents via
PATCH /receivables/{receivable_id}
. Now you can also specify this information directly during document creation - by providing theentity
object in thePOST /receivables
request.
August 7, 2024
Payments
-
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 theobject_id
query parameter to find intents associated with a specific accounts payable or accounts receivable invoice:GET /payment_intents?object_id=INVOICE_ID
.Among other things, this lets you:
- Get the status of an invoice payment (such as
processing
orsettled
). - Find an existing payment link created for an invoice.
- Get the status of an invoice payment (such as
July 31, 2024
Accounts Receivable
-
Create invoices and quotes with inline products. Entities can now specify the product details for line items—name, price, and other attributes—directly in the request payload without having to create a product catalog in advance. This is useful for one-off invoices or if the entity’s product catalog is maintained outside of the Monite platform. Invoices and quotes can also use a mix of inline and catalog products if needed.
-
Digital quote signing. Entities can now require that their customers (counterparts) provide a signature when accepting quotes. If the quote field
signature_required
istrue
, 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 thesignature_required
field.
Accounts Payable
- New query parameter
id__in
inGET /tags
to bulk fetch multiple tags by their IDs.
July 17, 2024
Accounts Payable
- New endpoint
PUT /payables/{payable_id}/line_items
that replaces all line items of a specific payable at once.
Accounts Receivable
- New response fields —
file_language
andoriginal_file_language
— in quotes, invoices, and credit notes. These fields indicate the counterpart’s and entity’s language for the PDF, respectively.
Accounting integration
- Removed the
/accounting_sync_rules
endpoints that were used to customize invoice and payable statuses to push to an accounting system. - New endpoints for accounting integration:
- The
/accounting_synced_records
endpoints to retrieve or push records of synchronizations between Monite’s database and the entity’s accounting system. - The
/accounting_tax_rates
to get tax rate from the accounting system.
- The
July 3, 2024
General
- New supported country codes:
BL
- Saint BarthélemyBQ
- Caribbean NetherlandsCW
- CuraçaoMF
- Saint Martin (French part)SX
- Sint Maarten (Dutch part)
- Entity field
address.state
is now required for US entities that wish to use Monite payment rails.
Accounts Payable
- Payable OCR auto-tagging. Entities have a new setting
payables_ocr_auto_tagging
to specify the tags that will be automatically assigned to new payables created via OCR. For details, see Tags auto-assignment. - New
paid_at
field was added to the payable responses. It contains the date and time when the payable was moved to thepaid
status.
Accounts Receivable
-
Invoicing across multiple brands. Entities that have multiple brands can specify the business
email
,logo
,phone
, andwebsite
to be displayed on each invoice, if these values need to be different from the entity’s defaults. The data can be provided in theinvoice.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:
- The
language
field inPOST /receivables/{receivable_id}/send
requests has been deprecated. Instead, use the counterpart’slanguage
field to specify the preferred language for emails and documents that will be sent to that counterpart. - Also, if the
language
parameter is omitted in/send
requests, the email language now defaults to the counterpart language instead of English.
- The
-
Partner metadata can now also be updated for non-
draft
invoices, quotes, and credit notes.
June 19, 2024
- CC and BCC in receivables email. Added the ability to include a list of email addresses using the
recipients
field in the payload the/receivables/:id/send
and/receivables/:id/send_test_reminders
endpoints. Using this field, entities can include email addresses to which they want to send a copy or a blind copy of the email. - Displaying company trade name in documents. Invoices, quotes, and credit notes have the new
trade_name
field that entities can use to specify their trade name, also known as “doing business as” (DBA) or “operating as” (o/a) name. The assigned trade name will appear alongside the entity’s legal name in PDF invoices, quotes, and credit notes created by the entity. - Enhanced sorting of receivables. The
GET /receivables
endpoint has got additional options for thesort
parameter. You can now also sort receivables by thecreated_at
,document_id
,due_date
, orissue_date
values. - The
measure_unit_id
field is no longer required to create products for receivables. - New
id__in
query parameter on theGET /products
andGET /receivables
endpoints lets you bulk fetch multiple products or receivables by their IDs.
June 5, 2024
- New
name__in
query parameter inGET /tags
. - Payable tags have two new optional fields:
category
anddescription
. - Partner setting
payable.enable_line_items
has been deprecated.
May 22, 2024
- Automatic matching of purchase orders with payables. Every time a payable is created or updated, Monite automatically tries to link this payable to its corresponding purchase order, which is already created in the system. For such cases, the field
purchase_order_id
was added to thepayable
object. To configure this behavior, the fieldallow_purchase_order_autolinking
(default value equals totrue
) was added to the entity settings. - Added a new
original_file_url
field in responses for invoices, quotes, and credit notes that returns the receivables PDF in the entity’s language. The field was also added to the response of theGET /receivables/{receivable_id}/pdf_link
endpoint.
May 8, 2024
- Document number customization. We added the ability to customize the document numbers for all document types. This customization is done directly via entity settings. For more information, see Document number customization.
April 11, 2024
- Payment intents can now transition to the
refunded
status from thepayout_failed
andpayout_cancelled
statuses.
April 2, 2024
- Searching payables by invoice number.
GET /payables
has new optional query parameters to search and filter Accounts Payable invoices (payables) by their invoice number:document_id__contains
(case-sensitive “contains”),document_id__icontains
(case-insensitive “contains”). - Customizing the required fields for payables. You can now control which fields must be filled in a
draft
payable before it can transition to thenew
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.
- Testing reminders for a specific invoice. Use the new endpoint
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. - Verifying invoice reminder configuration. The response from
POST /receivables/{receivable_id}/verify
contains the newwarnings.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 parametercounterpart_address_id
to filter the applicable VAT rates based on the specified counterpart address in case the counterpart has several addresses.- Updated the supported country codes:
- Replaced
CS
(Serbia and Montenegro) withME
(Montenegro) andRS
(Serbia). - Added
SS
(South Sudan)
- Replaced
March 18, 2024
API version 2024-01-31
is now publicly available to all Monite partners to use in beta. To start using this version:
-
Change the
api_version
setting in your partner settings (/settings
) to2024-01-31
: -
Change the
X-Monite-Version
header value in all API calls to2024-01-31
. For example:
For more information, see How to upgrade.