Invoice payment reminders

Learn how to automatically send payment reminders to customers before the invoice due dates and early discount dates.

Overview

Monite can automatically send payment reminder emails to an entity’s customers before the invoice due dates and early discount dates. Entities can customize the contents of payment reminders and the days on which these reminders should be sent. For example, an entity can send payment reminders to remind a counterpart about the early discount days defined in the invoice’s payment terms.

There are two types of payment reminders: discount reminders and final reminders. Discount reminders are configured to be sent before each early payment discount date defined in the payment terms. Conversely, a final reminder is the last reminder to a counterpart and is sent just before the invoice’s due date as defined by the term_final field in the payment terms.

Reminders can be configured on a per-invoice basis or shared between multiple invoices. The language on the payment reminder email depends on the language of the invoice’s counterpart. If the counterpart language is null, all payment reminder emails to the counterpart will be in English. For more information, see Email template localization.

How it works

A payment reminder is sent if the following conditions are met:

  • the counterpart has not paid the invoice in full yet,
  • the invoice has payment_reminder_id specified (see below),
  • the invoice is due in N days, or an early payment discount ends in M days (where M and N are customizable),
  • entity setting reminder.enabled is true,
  • counterpart setting reminders_enabled is true.

Payment reminders are sent to the email address of the counterpart’s default contact, which gets saved in the counterpart_contact.email field of the invoice. The From address in reminders is "Monite" <noreply@monite.com>, and it can be customized.

Configure payment reminders

Invoice payment reminders are directly linked to payment terms. When configuring payment reminders, you must consider certain information about the invoice’s payment terms. This includes the number of discount tiers and the assigned due dates of all payment tiers. For example, suppose you assign a payment reminder with two early discount tiers to an invoice whose payment term has a single early discount tier. In that case, the system will only notify the counterpart about the early discount date defined on the payment term.

If an invoice has no early discount dates in the payment terms, no discount reminders will be triggered at any point. However, since all invoices must have due dates, final reminders can be configured to be sent any number of days before the invoice’s due date defined in the term_final field on payment terms.

To use payment reminders, you need to create a reminder configuration and include it when creating an invoice. The value of a payment reminder’s days_before field represents the number of days before the specified payment term’s number_of_days field that a reminder notification is triggered. For reminders to be triggered successfully, the days_before field on each payment reminder tier must be less than the number_of_days field in the payment terms for its corresponding tier.

Invoices cannot be issued when the potential due dates on any of the payment term’s tiers occur before the scheduled payment reminder date for the corresponding tier. Attempting to issue an invoice where the value of the payment reminder’s days_before field on any tier exceeds the value of the payment term’s number_of_days field will throw an error.

1. Create a payment reminder configuration

To create a new payment reminder, call POST /payment_reminders. The days_before value represents the number of days before each payment due date—early discount or final—to send the reminder notifications to the counterpart:

1curl -X POST 'https://api.sandbox.monite.com/v1/payment_reminders' \
2 -H 'X-Monite-Version: 2023-09-01' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'Content-Type: application/json' \
6 -d '{
7 "name": "Send payment reminders 5 days before each due date",
8 "term_1_reminder": {
9 "days_before": 5,
10 "subject": "Subject of the reminder email",
11 "body": "... HTML content of the reminder email ..."
12 },
13 "term_2_reminder": {
14 "days_before": 5,
15 "subject": "Subject of the reminder email",
16 "body": "... HTML content of the reminder email ..."
17 },
18 "term_final_reminder": {
19 "days_before": 5,
20 "subject": "Subject of the reminder email",
21 "body": "... HTML content of the reminder ..."
22 }
23 }'

The email subject and body can include variables such as {invoice_number} which will be substituted with the corresponding values.

To use the /payment_reminders* endpoints with an entity user token, this entity user must have a role that includes the payment_reminder permission.

The response contains the ID assigned to this configuration. You will need to specify this ID later when creating invoices.

1{
2 "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
3 "name": "Send payment reminders 5 days before each due date",
4 ...
5}

2. Specify the payment reminder configuration for an invoice

When creating a new invoice or updating an existing draft invoice, you can use the payment_reminder_id field to specify the desired payment reminder configuration for this invoice:

1curl -X POST 'https://api.sandbox.monite.com/v1/receivables' \
2 -H 'X-Monite-Version: 2023-09-01' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'Content-Type: application/json' \
6 -d '{
7 "type": "invoice",
8 "payment_reminder_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
9 ...
10 }'

After configuring a payment reminder and assigning it to an invoice, you can ensure that the payment reminder’s configuration aligns with the invoice’s payment terms configuration before issuing the invoice. To do this, make a POST request to the /receivables/{receivable_id}/verify endpoint.

Monite allows entities to update a payment reminder’s configuration when assigned to an invoice. However, the configuration on the assigned invoice is frozen whenever the invoice is issued, and any changes to the payment reminder configuration will not affect the invoice’s reminders. For more information on updating payment reminders, see PATCH /payment_reminders/{payment_reminder_id}.

The payment_reminders field on the warnings object of the response informs the user about any incorrect payment reminder configurations on the invoice as shown:

1{
2 "errors": {
3 ...
4 },
5 "warnings": {
6 "payment_reminders": "The due date on one or more of the invoice's payment term's tier comes before the scheduled reminder date for the corresponding tier. Review the reminders configuration for the invoice."
7 }
8}

Preview a payment reminder email

After creating a payment reminder and assigning it to an invoice, you can preview reminder emails before sending them out. This step can be helpful when troubleshooting email template layouts for a payment reminder to ensure the final presentation aligns with your template design.

To preview a payment reminder template, call POST /receivables/{receivable_id}/preview:

1curl -X POST 'https://api.sandbox.monite.com/v1/receivables/411dc6eb...6289b3/preview' \
2 -H 'X-Monite-Version: 2023-09-01' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'Content-Type: application/json' \
6 -d '{
7 "subject_text": "Your invoice #{invoice_number} is due in 5 days",
8 "body_text": "Dear {contact_name},\n\nKindly be aware that your invoice #{invoice_number} is due in 5 days!\nPlease pay the balance of {amount_due} (invoice #{invoice_number}) before {due_date} to get the 7% discount.\n\nFor any questions or concerns, please don’t hesitate to get in touch with us at {entity_email}. We look forward to serving you again and wish you all the best!",
9 "type": "discount_reminder"
10 }

The type field determines the type of receivable document to be previewed and is a required field for previewing payment reminders. The value of the type field depends on the type of payment reminder email. This can be either discount_reminder or final_reminder.

The values of the subject_text and body_text fields will replace the subject_text and body_text variables defined when creating your custom templates. For more information, see Create and manage email templates.

Manually trigger payment reminders

After configuring a payment reminder and assigning it to an invoice, you can manually trigger it to send a reminder email to a counterpart. Monite allows you to send test reminders to an invoice’s counterpart, allowing you to verify the accuracy of your configuration. You can also use the recipients field in the request object to include email addresses that you intend to send the reminder as a copy or blind copy.

To manually trigger a reminder, call POST /receivables/{receivable_id}/send_test_reminder and provide the reminder_type in the request body as shown:

1curl -X POST 'https://api.sandbox.monite.com/v1/receivables/411dc6eb...6289b3/send_test_reminder' \
2 -H 'X-Monite-Version: 2023-09-01' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'Content-Type: application/json' \
6 -d '{
7 "reminder_type": "term_1",
8 "recipients": {
9 "to": ["dana@example.com"],
10 "cc": ["support@example.com"]
11 }
12 }

You can manually trigger the reminder email on any payment reminder tier by using a reminder_type value of term_1, term_2 or term_final in the request object. The successful response sends the reminder email to the counterpart and returns the mail_ids in the response.

Enable or disable payment reminders

For specific counterparts

By default, payment reminders are enabled for all counterparts of an entity.

If you want to disable reminders for a specific counterpart, such as a customer who always pays on time, call PATCH /counterparts/{counterpart_id} and set the reminders_enabled field to false:

1curl -X PATCH 'https://api.sandbox.monite.com/v1/counterparts/6291de...3699' \
2 -H 'X-Monite-Version: 2023-09-01' \
3 -H 'X-Monite-Entity-Id: ENTITY_ID' \
4 -H 'Authorization: Bearer ACCESS_TOKEN' \
5 -H 'Content-Type: application/json' \
6 -d '{
7 "type": "organization",
8 "reminders_enabled": false
9 }'

This disables not only payment reminders, but also overdue reminders for this counterpart.

For all counterparts

To disable reminders for all counterparts of a specific entity, call PATCH /entities/{entity_id}/settings and change the reminder.enabled field to false.

1curl -X PATCH 'https://api.sandbox.monite.com/v1/entities/692b50...09da8/settings' \
2 -H 'X-Monite-Version: 2023-09-01' \
3 -H 'Authorization: Bearer YOUR_PARTNER_TOKEN' \
4 -H 'Content-Type: application/json' \
5 -d '{
6 "reminder": {
7 "enabled": false
8 }
9 }'

A successful request disables both overdue reminders and payment reminders for all counterparts of an entity.

To enable reminders again, change the reminder.enabled field back to true.