Manage quotes
Learn how to manage quotes and change quotes statuses.
Update a quote
All newly created quotes start in the draft
status. You can edit draft quotes before issuing them to a counterpart.
To edit a draft quote, call PATCH /receivables/{receivable_id}
with the updated fields in the request body. You can update counterpart data, quote memo, existing line items data, and other details.
When updating a quote’s counterpart, you must also provide the new counterpart’s counterpart_billing_address_id
in the request body to update the counterpart_billing_address
object.
Update quote line items
You can modify a quote’s line items to add, remove, or update the products and product details on the quote. To update a quote’s line item, send a PUT
request to the /receivables/{receivable_id}/line_items
endpoint. In the request body, use the data
field to specify an array of the quote’s new line items.
A successful request overwrites the quote’s existing line items and replaces them with the newly defined array of line item objects.
Preview a quote’s email
After creating a quote, you can preview a quote’s email before issuing it. This step can be used when troubleshooting email template layouts for a quote to ensure that the final presentation aligns with your template design.
To preview a quote’s template, make a POST
request to the /receivables/{receivable_id}/preview
endpoint. The language
field determines the language of the email template used to preview the quote. If a value is not provided, it defaults to en
.
The values of the subject_text
and body_text
fields will replace the subject_text
and body_template
variables if they were used when creating your custom templates. For more information, see Create and manage email templates and Variables list.
Only quotes in the draft
and issued
statuses can be previewed. Attempting to preview an invoice in any other status will return a 409 Conflict
error.
Accept or decline a quote
If the customer accepts the quote, call POST /receivables/{quote_id}/accept
to mark the quote as accepted
:
When a quote is accepted, Monite automatically creates a new invoice based on the information on the quote. To get the newly created invoice you can call GET /receivables?based_on=QUOTE_ID
, where QUOTE_ID
represents the ID of the accepted quote.
If the customer declined the quote, call POST /receivables/{quote_id}/decline
to mark the quote as declined
. As a best practice, customers should provide a reason why they declined the quote. This reason can be specified in the comment
field in the request body. If no comment
is available, you can omit the request body.
Accept quote with signature
Entities can require that their customers provide a signature when accepting quotes. To do this, the signature_required
field in the quote object must be true
. When this value is true
, the request body of the POST /receivables/{receivable_id}/accept
endpoint must include the signature
object:
The signature
object must consist of the quote signee’s email, name, and signature. The signature_image
field must be a Base64-encoded PNG image of the signee’s signature.
Entity setting quote_signature_required
defines the default value of the signature_required
field for all newly created quotes.
Accept quotes using QR codes
The field quote_accept_page_url
defines a link to a page that can be accessed to accept the quote. When quote_accept_page_url
is specified, the quote will include a QR code representing the provided URL. Monite’s partners must implement and host this page on their side.
The default value of quote_accept_page_url
is https://monite.com
.
Customize quote numbering
Quote numbers are customized in the entity settings. Customizing a quote number will affect all quotes subsequently issued by the entity. The document_id
on previously issued quotes will not be affected by this change. To customize quote numbering, make a PATCH
request to the /entities/{entity_id}/settings
endpoint as shown:
For more information on customizing quote numbering, see Document number customization.
Create an invoice based on the quote
If the customer accepts the quote, you can create an invoice based on this quote after the goods or services have been delivered.
To create an invoice from a quote, call POST /receivables
and provide the quote ID in the based_on
field in the request body:
Invoices can be created not only from accepted
quotes, but also from any other quote states, even declined
.
The request above creates a new draft invoice with a copy of the quote data (that is, with the same line items and counterpart). The ID and document number of the original quote are saved in the based_on
and based_on_document_id
properties, respectively:
Next, update the created draft invoice and add other necessary information, such as:
payment_terms_id
- payment terms that define the invoice due date and, optionally, early payment discounts;entity_vat_id_id
- entity VAT ID to be displayed on the invoice;payment_reminder_id
- payment reminder configuration for this invoice. Required if entity settingreminder.enabled
istrue
.
For a complete list of fields that can be updated in draft invoices, refer to the description of the PATCH /receivables/{receivable_id}
endpoint.
The invoice due date is calculated automatically based on the creation date and payment terms and is returned in the due_date
field on the invoice response object.
Finally, you can download the quote as PDF and send it to the customer via email.
Clone a quote
You can clone a quote of any status by sending a POST
request to the /receivables/{receivable_id}/clone
endpoint. Cloning a quote copies the updated entity and counterpart information associated with the quote.
A successful request returns an object with the newly cloned quote details.
All newly cloned quotes will have a draft
status regardless of the status of the original quote they were cloned from. Therefore, all previously updated values related to issuing the original quote will be reset.
Quote expiration
After a quote’s expiry_date
has passed, the quote status automatically becomes expired
. Expired quotes cannot be accepted or declined. If needed, you can create a fresh quote for the same counterpart.
Delete a quote
Draft quotes can be deleted by calling DELETE /receivables/{receivable_id}
. It’s important to note that this action is irreversible, and once deleted, the quotes can no longer be accessed.
Only quotes in the draft
status can be deleted successfully. Attempting to delete a quote with any other status will throw an error.
List all quotes
To get a list of all quotes generated by an entity, call GET /receivables?type=quote
:
You can sort and filter the results by the amount, counterpart name, and other fields. For the full list of available sort and filter parameters, see the description of the GET /receivables
endpoint.
Some examples:
GET /receivables?type=quote&counterpart_name=Acme%20Inc.
- get all quotes issued to Acme Inc.GET /receivables?type=quote&amount__gte=15000
- get all quotes where the total amount is €150 or more.GET /receivables?type=quote&status__in=draft&status__in=issued
- get all draft and issued quotes.GET /receivables?type=quote&created_at__gte=2022-01-01T00%3A00%3A00
- get all quotes created on or after January 1, 2022.
Retrieve a quote
To get information about a specific quote, call GET /receivables/{receivable_id}
and provide the quote ID.
Find invoices created from a quote
To check if there are invoices created from a specific quote, call GET /receivables?based_on=QUOTE_ID
:
The data
array in the response contains a list of related invoices, if any: