> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.monite.com/v-2024-05-25/accounts-receivable/vat-rates/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.monite.com/_mcp/server. # VAT rates > Learn how the VAT rates for invoices and quotes work. > **Info** > > This page uses the term "VAT" to collectively refer to VAT and sales tax (e.g. GST). ## Overview [Invoices](./invoices/create) and [quotes](./quotes/create) must include VAT amounts, even if the VAT rate is 0%. Countries have different VAT rates for different types of products and services. For example, Germany has a standard VAT rate of 19%, a reduced VAT rate of 7%, and a zero VAT rate for certain transactions. ## VAT use cases \[#use-cases] VAT rates are generally driven by the country of the entity (seller) with some exceptions. One of those exceptions is the One-Stop Shop (OSS) scheme in Europe, where the VAT rates are based on the counterpart (buyer) country instead. Below are some scenarios common invoicing scenarios covered by Monite API. #### Local sales Entity country: Germany\ Counterpart country: Germany We assume that the entity has a German [VAT ID](../entities/vat-ids) (of type `eu_vat`): **`Entity VAT ID`** ```json title="Entity VAT ID" { "country": "DE", "type": "eu_vat", "value": "123456789" } ``` `GET /vat_rates?counterpart_id=<...>&entity_vat_id=<...>` returns **German** VAT rates (based on the entity's country). #### Cross-border sales Entity country: Netherlands\ Counterpart country: Norway We assume that the entity has a Dutch [VAT ID](../entities/vat-ids) (of type `eu_vat`): **`Entity VAT ID`** ```json title="Entity VAT ID" { "country": "NL", "type": "eu_vat", "value": "123456789B12" } ``` `GET /vat_rates?counterpart_id=<...>&entity_vat_id=<...>` returns **Dutch** VAT rates (based on the entity's country). #### EU One-Stop Shop (OSS) scheme European Union has the [One Stop Shop (OSS)](https://vat-one-stop-shop.ec.europa.eu/one-stop-shop_en) scheme for cross-border B2C sales in the EU. EU entities registered under the OSS scheme need to create a separate [VAT ID](../../entities/vat-ids) with the `eu_oss_vat` type for use in invoices that fall under that scheme. **`OSS VAT number`** ```json {2} title="OSS VAT number" { "country": "DE", // Entity's EU country of registration "type": "eu_oss_vat", "value": "123456789" } ``` In the following scenario: Entity country: Germany\ Entity `entity_vat_id_id` points to the OSS VAT number\ Counterpart country: France `GET /vat_rates?counterpart_id=<...>&entity_vat_id=<...>` returns **French** VAT rates (based on the counterpart's country). ## VAT rate catalog Monite maintains a catalog of VAT rates for select countries. API Partners can query the available rates via the [`GET /vat_rates`](/api/vat-rates/get-vat-rates) endpoint ([see below](#get-vat-rates)). ### Supported countries Currently, the `GET /vat_rates` endpoint provides VAT rates for the following countries: * Angola * Australia * Austria * Belgium * Botswana * Bulgaria * Canada * Czech Republic * Denmark * Estonia * Eswatini * France * Finland * Germany * Greece * Ireland * Israel * Lesotho * Liberia * Luxembourg * Mozambique * Namibia * Netherlands * New Zealand * Philippines * Poland * South Africa * Spain (including Canary Islands) * Sweden * Switzerland * United Arab Emirates * United Kingdom * Zimbabwe > **Note** > > **What about other countries?** > > Entities from other countries should not use the `GET /vat_rates` endpoint, and should instead use the invoice field `line_items[].tax_rate_value` to specify tax/VAT rates directly. > Entities are responsible for providing the correct VAT rate values for the invoice to be compliant. ### Get VAT rates To query the applicable VAT rates for an invoice, use the [`GET /vat_rates`](/api/vat-rates/get-vat-rates) endpoint with the parameters mentioned below. If the entity does not have a [VAT ID](../entities/vat-ids), use: ``` GET /vat_rates?counterpart_id=<...> ``` If the entity has a VAT ID, use: ``` GET /vat_rates?entity_vat_id_id=<...>&counterpart_id=<...> ``` > **Note** > > * For transactions that fall under the EU OSS scheme, specify the `entity_vat_id_id` that has the `eu_oss_vat` type (not `eu_vat`). > * For UK entities that trade under the [Northern Ireland protocol](../entities/vat-ids#example-ni-protocol), the entity VAT ID must have `country`="GB" and `type`=`eu_vat` (not `gb_vat`). The `GET /vat_rates` endpoint returns the applicable VAT rates based on the entity country, counterpart country, transaction type (e.g. B2B or B2C), and the presense (or absense) of entity VAT ID. Below is a sample response assuming the entity and counterpart are German. German VAT rates are 0%, 7%, and 19%. The VAT `value` in the response is the percentage multiplied by 100, that is, 7% is represented as 700 and 19% as 1900. ```json { "data": [ { "id": "a39a2ec3-765d-4f75-9a17-585a5d22509d", "created_at": "2022-09-23T12:28:31.941357+00:00", "updated_at": "2022-09-23T12:28:31.941375+00:00", "value": 0, "country": "DE", "valid_from": null, "valid_until": null, "created_by": "monite", "status": "active" }, { "id": "51cefc6c-9f82-484e-ae6a-a3a89b507bea", "created_at": "2022-09-23T12:28:31.941398+00:00", "updated_at": "2022-09-23T12:28:31.941406+00:00", "value": 700, "country": "DE", "valid_from": null, "valid_until": null, "created_by": "monite", "status": "active" }, { "id": "479155c3-0995-4689-a3cf-7482ea5132a9", "created_at": "2022-09-23T12:28:31.941423+00:00", "updated_at": "2022-09-23T12:28:31.941431+00:00", "value": 1900, "country": "DE", "valid_from": null, "valid_until": null, "created_by": "monite", "status": "active" } ] } ``` Note down the returned VAT `id` values. You will need them later to specify the corresponding VAT rates for individual line items in invoices and quotes. > **Info** > > If a counterpart is exempt from paying VAT on an invoice, you can provide the reason for exemption via the optional `vat_exemption_rationale` field on the invoice object. For example, in situations where an invoice's line item is assigned a 0% VAT, you can provide the reason for exemption via the `vat_exemption_rationale` field when creating or updating an invoice. The reason provided will also be displayed on the invoice PDF. ## Specify VAT rates when creating or updating invoices and quotes When you create an invoice or a quote by calling [`POST /receivables`](/api/receivables/post-receivables), you must provide the `vat_rate_id` for each line item in the `line_items` array. In the example below, the first line item is taxed at 19% (VAT rate ID = 479155c3-0995-4689-a3cf-7482ea5132a9) and the second line item is taxed at 7% (VAT rate ID = 51cefc6c-9f82-484e-ae6a-a3a89b507bea). Monite will automatically calculate the VAT amounts based on the specified VAT rate IDs and return the total VAT in the `total_vat_amount` field in the invoice response. ```sh {13,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", ... "line_items": [ { "quantity": 5, "product_id": "8755c86a-d630-4920-b6fd-fd2917d87dfb", "vat_rate_id": "479155c3-0995-4689-a3cf-7482ea5132a9" }, { "quantity": 1, "product_id": "b97601e1-e795-4c47-85d5-e5c54a75058d", "vat_rate_id": "51cefc6c-9f82-484e-ae6a-a3a89b507bea" } ], ... }' ``` Similarly, to update the VAT rate for a specific line item in an existing draft invoice or quote, call `PATCH /receivables/{receivables_id}` and provide the new `vat_rate_id` for that line item: ```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": { "line_items": [ { "quantity": 5, "product_id": "8755c86a-d630-4920-b6fd-fd2917d87dfb", "vat_rate_id": "51cefc6c-9f82-484e-ae6a-a3a89b507bea" }, { "quantity": 1, "product_id": "b97601e1-e795-4c47-85d5-e5c54a75058d", "vat_rate_id": "479155c3-0995-4689-a3cf-7482ea5132a9" } ] } }' ``` > Learn how the VAT rates for invoices and quotes work.