HomeGuidesRecipesAPI ExplorerForumSupport
Partner Portal
Partner Portal

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'll 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 v2024-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.

⚠️

These changes are breaking changes.

  • Entities:
    • Empty string values ("") are no longer allowed in entity data. To indicate the absence of a value, either use the null 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 and 13475550100 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, and id_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.
  • 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 and display_name can be up to 200 characters long.
    • bic cannot be provided without iban.
    • iban and bic values are now validated against the bank account country. You will receive an error if the iban or bic belong to a country other than the bank account country.
  • Entity persons:
    • Empty string values ("") are no longer allowed in persons' data. To indicate the absence of a value, either use the null value or omit the corresponding field from the request.
    • first_name, last_name, id_number, and title 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 and address.state can be up to 100 characters long.
    • address.line1 and address.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 and 13475550100 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.

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 the POST /overdue_reminders and PATCH /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

The 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 of RS (Serbia) and ME (Montenegro).
  • Entities:

    • Changes are mentioned in the Improved data validation section.
    • 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).
  • Counterparts:

    • Removed the created_automatically field from the request payload for creating and updating counterparts.
    • Removed the type field from the request payload for the PATCH /counterparts endpoint.
    • Renamed the is_default field on the counterpart bank accounts request and response object to is_default_for_currency.
  • Counterpart addresses:

    • The individual.residential_address and organization.registered_address fields on the POST /counterparts request payload have been renamed to individual.address and organization.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 the counterpart address request and response objects.
  • Counterpart bank accounts:

    • Renamed the is_default field on the counterpart bank accounts request and response object to is_default_for_currency.
  • Mail templates:

    • The body_text variable of the body_template field on the request payload on the POST /mail_templates and PATCH /mail_templates endpoints has been renamed to body_template.
  • Overdue reminders:

    • The term field on the POST /overdue_reminders and PATCH /overdue_reminders/:id endpoint was renamed to terms. The field now accepts an array of objects to allow for the creation of multiple overdue reminders.
  • Payables:

    • Payables in the approve_in_progress status can no longer transition to the canceled status.
    • The due_date* query filters in GET /payables now expect just a date value without the time part, that is, YYYY-MM-DD instead of YYYY-MM-DDThh:mm:ssZ.
  • Receivables:

    • Removed the country, currency, display_name, is_default, and was_created_by_user_id fields from the entity_bank_account object in invoice, quote, and credit note responses.
    • Removed the counterpart_billing_address and counterpart_shipping_address fields from the request payloads of the POST /receivables and PATCH /receivables/:id endpoints.
    • The request payloads of the POST /receivables and PATCH /receivables/:id endpoints now use counterpart_billing_address_id and counterpart_shipping_address_id fields rather than objects. The counterpart_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 the PATCH /receivables/:id endpoint whenever the counterpart associated with the receivable is changed.
  • 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 to description.
      • Removed the significance field.
      • Replaced the object_id field with the nested object.id field.
      {
        "id": "90cc1b23-9681-40f4-a54b-4c059cd4397d",
        "created_at": "2024-03-04T20:08:48.399442+00:00",
        "action": "entity.onboarding_requirements.updated",
        "api_version": "2024-01-31",
        "entity_id": "ce0e9fc7-b3e7-4f12-ad86-bfb0725a99f0",
        "description": "entity_onboarding_requirements_updated",
        "object": {
          "id": "ce0e9fc7-b3e7-4f12-ad86-bfb0725a99f0"
        },
        "object_type": "entity",
        "webhook_subscription_id": "c7f37127-44e5-494a-833a-21e60585f187"
      }
      
      {
        "id": "90cc1b23-9681-40f4-a54b-4c059cd4397d",
        "created_at": "2024-03-04T20:08:48.399442+00:00",
        "action": "entity.onboarding_requirements.updated",
        "api_version": "2023-09-01",
        "entity_id": "ce0e9fc7-b3e7-4f12-ad86-bfb0725a99f0",
        "name": "entity_onboarding_requirements_updated",
        "object": null,
        "object_id": "ce0e9fc7-b3e7-4f12-ad86-bfb0725a99f0",
        "object_type": "entity",
        "significance": "medium",
        "webhook_subscription_id": "c7f37127-44e5-494a-833a-21e60585f187"
      }
      

πŸ“˜

For more information on what changes we consider breaking and non-breaking in our API, please refer to our Versioning policy.

Changelog

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.

June 5, 2024

  • New name__in query parameter in GET /tags.
  • Payable tags have two new optional fields: category and description.
  • Partner setting payable.enable_line_items has been deprecated.

May 22, 2024

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

May 8, 2024

  • Document number customization. We added the ability to customize the document numbers for all document types. This customization is done directly via entity settings. For more information, see Document number customization.

April 11, 2024

  • Payment intents can now transition to the refunded status from the payout_failed and payout_cancelled statuses.

April 2, 2024

  • Searching payables by invoice number. GET /payables has new optional query parameters to search and filter Accounts Payable invoices (payables) by their invoice number: document_id__contains (case-sensitive "contains"), document_id__icontains (case-insensitive "contains").
  • Customizing the required fields for payables. You can now control which fields must be filled in a draft payable before it can transition to the new status. The following endpoints were added for this purpose:
  • 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 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.
  • Updated the supported country codes:
    • Replaced CS (Serbia and Montenegro) with ME (Montenegro) and RS (Serbia).
    • Added SS (South Sudan)

March 18, 2024

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

  1. Change the api_version setting in your partner settings (/settings) to 2024-01-31:

    curl -X PATCH 'https://api.sandbox.monite.com/v1/settings' \
         -H 'X-Monite-Version: 2024-01-31' \
         -H 'Authorization: Bearer YOURT_PARTNER_TOKEN' \
         -H 'Content-Type: application/json' \
         -d '{"api_version": "2024-01-31"}'
    
  2. Change the X-Monite-Version header value in all API calls to 2024-01-31. For example:

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

For more information, see How to upgrade.