> This page is for version v2024-05-25 (default).
> For other versions, use one of these documentation indexes:
> - v2024-05-25 (default): https://docs.monite.com/v-2024-05-25/llms.txt
> - v2024-01-31: https://docs.monite.com/v2024-01-31/llms.txt
> - v2023-09-01: https://docs.monite.com/v2023-09-01/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.monite.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server.

# Discounts

## Overview

A discount is a reduction in the price of a product or service that is offered by the seller. Discounts can be applied either to the final purchase, or to individual line items in an invoice or quote. Line item discounts are applied before overall discounts, and both are applied before VAT is added in.

Monite also allows applying discounts up to the total product amount or invoice amount. This means that invoices and invoice line items can have 100% discounts or an effective price of `0`.

> **Tip**
>
> To offer invoice discounts for early payments, use [payment terms](../common/payment-terms) instead.

## Discount types

Discounts can be specified as a percentage (such as 10.5%) or as a flat amount (such as € 12.5). Monite allows setting discount

For example, a *percentage* discount of 10.5% is specified as follows:

```json
"discount": {
  "type": "percentage",
  "amount": 1050  // 10.5%
},
```

A *flat amount* discount of € 12.5 is specified as follows, where the `amount` is represented in [minor units](../references/currencies#minor-units):

```json
"discount": {
  "type": "amount",
  "amount": 1250  // € 12.5
},
```

If the `discount` object is set to `null`, it means no discount.

## Add a discount

When creating a new invoice or quote or when editing an existing draft one, use the `discount` field on the document level or line item level to specify the discount:

#### Invoice-level discount

```sh {10-13}
curl -X POST 'https://api.sandbox.monite.com/v1/receivables' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer ACCESS_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
       "type": "invoice",
       "currency": "EUR",
       ...
       "discount": {
         "type": "amount",
         "amount": 1250
       }
     }'
```

#### Line item discount

```sh {15-18}
curl -X POST 'https://api.sandbox.monite.com/v1/receivables' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer ACCESS_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
       "type": "invoice",
       "currency": "EUR",
       ...
       "line_items": [
         {
           "quantity": 1,
           "product_id": "8755c86a-d630-4920-b6fd-fd2917d87dfb",
           "vat_rate_id": "479155c3-0995-4689-a3cf-7482ea5132a9",
           "discount": {
             "type": "percentage",
             "amount": 200
           }
         }
       ]
     }'
```

> **Info**
>
> Line item discounts apply to line item as a whole rather than the price of a single product unit. In other words, a line item's subtotal is calculated as `(price * quantity) - discount`.

## Update a discount

While the invoice or quote is still in the `draft` [status](./invoices/index#draft), you can update or remove the discounts if needed. To do this, call `PATCH /receivables/{receivable_id}` and provide the new `discount` object:

#### Invoices

```sh
curl -X PATCH 'https://api.sandbox.monite.com/v1/receivables/411dc6eb...6289b3' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer ACCESS_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
      "invoice": {
        "discount": {
          "type": "amount",
          "amount": 1500
        }
      }
    }'
```

#### Quotes

```sh
curl -X PATCH 'https://api.sandbox.monite.com/v1/receivables/411dc6eb...6289b3' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer ACCESS_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
      "quote": {
        "discount": {
          "type": "amount",
          "amount": 1500
        }
      }
    }'
```

Invoices and quotes in the `issued` status can no longer be edited, but there are other ways to amend their discount.

For invoices:

* To *increase* the discount, you can create a credit note for the difference amount.
* To *reduce* or *remove* the discount, you can issue a new invoice for the difference amount.

For quotes:

* To update or remove the discount, you can decline the existing quote and create a new one.

## Remove a discount

To remove a discount from a draft invoice, draft quote, or an individual line item, call `PATCH /receivables/{receivable_id}` and set the corresponding document-level `discount` or line item `discount` to `null`. For example:

```sh
curl -X PATCH 'https://api.sandbox.monite.com/v1/receivables/411dc6eb...6289b3' \
     -H 'X-Monite-Version: 2024-05-25' \
     -H 'X-Monite-Entity-Id: ENTITY_ID' \
     -H 'Authorization: Bearer ACCESS_TOKEN' \
     -H 'Content-Type: application/json' \
     -d '{
      "invoice": {
        "discount": null
      }
    }'
```

Alternatively, you can set `discount.amount` to 0.

## See also

* [Deductions](./special-deductions) - discounts that are applied after VAT