# Vignette ID API updates

## NEXT updates
- `Romania`: the vignette tariff now depends on the vehicle's Euro emission class. Added optional `cars[].emission_class` (`euro0` … `euro6`, `electric`) to [**POST** `/public/orders`](/api/orders-list-endpoints#create-order), **POST** `/public/orders/validate` and **POST** `/public/validate-vehicle`, and `vehicle.emission_class` to **POST** `/public/orders/{id}/modify`. If omitted, `euro0` (the highest tariff) is used. [**GET** `/public/products`](/api/products-list-endpoints#products-vignettes-and-tunnels) returns per-class prices in `price.<period>.emission_classes`, grouped by tariff: `euro3_0` (`euro0`–`euro3`), `euro5_4` (`euro4`, `euro5`), `euro6`, `electric`.
- `Romania`: `vin_code` is now **required** for all periods, including `1` day vignettes.
- Added optional `allowed_payment_providers` (`stripe`, `paypal`, `monobank`; defaults to `["stripe", "paypal"]`) and `open_order_details_by_default` (defaults to `false`) fields to [**POST** `/public/orders`](/api/orders-list-endpoints#create-order). Both configure the Vignette ID payment page and are rejected with `400` when `order_has_been_paid: true`.
- Added optional `products[].flex` object (`type`: `default` | `expanded`, `enabled`) to [**POST** `/public/orders`](/api/orders-list-endpoints#create-order) to select the [Flexible Service](/wiki/flexible-service) plan.
- Deprecated `products[].flexible` in favour of `products[].flex`. `flexible` is still accepted; when both are sent, `flex` wins.
- Added `paypal` to `allowed_payment_providers` of [**POST** `/public/external-orders`](/api/external-orders-endpoints#create-external-order).
- Added new endpoint [**POST** `/public/external-orders/{id}/cancel`](/api/external-orders-endpoints#cancel-external-order) to cancel an external order by its `id` (`eo_...`) or `reference_id`. It is idempotent, the `payment_link` stops working, and an `EXTERNAL_ORDER_STATUS_CHANGED` webhook with `status: CANCELED` is sent. Already-paid orders return `409` — issue a refund instead.
- Added optional `expires_in` field (whole seconds, `60`–`3600`, default `900`) to [**POST** `/public/external-orders`](/api/external-orders-endpoints#create-external-order) to control how long the `payment_link` stays valid.
- Order responses now carry `modify`, `full_refund` and `partial_refund` capability blocks (`eligible`, `available_at`, `expires_at`, `reason_code`, plus `amount_eur` / `percent` for refunds) telling you exactly what is possible, until when, and for how much. They replace the boolean `can_modify` — use `modify.eligible` instead. Also added a richer `flex` object (`type`, `enabled`, `price`, `original_price`, `is_partner_paid`).

## July 2026
- Added `can_modify` field to [**GET** `/public/orders/{id}`](/api/orders-list-endpoints#get-order) — use it to disable your own Modify button proactively.

## April 2026
- Added new endpoint [**GET** `/public/users/{id}/vehicles`](/api/users-list-endpoints#get-user-vehicles) to retrieve vehicles associated with a user.
- Updated rate limits configuration to include the new `/users/{id}/vehicles` endpoint.

## March 2026
- Rate limit counters are now **per-route** — each endpoint has its own counter instead of sharing across endpoints. This prevents one busy endpoint from exhausting limits for others.
- Added new partner tier **Enterprise** with significantly higher rate limits.\
  [Partner Tiers](/wiki/partner-tiers)
- Added new webhook `ORDER_CONFIRMATION_RECEIVED` to the order flow — partners can now receive confirmation when an order is fully processed.\
  [Webhooks](/wiki/webhooks)
- We recommend using **webhooks instead of polling** to track order status changes. This reduces unnecessary API calls and provides real-time updates.\
  [Rate Limits](/wiki/rate-limits)
- Added auto-generation of `llms.txt` and `llms-full.txt` for integration with LLM agents.
- Added `get_users` and `get_user_orders` tools to [MCP Server](/wiki/mcp-server).
- Updated rate limit for [**GET** `/public/orders/{id}`](/api/orders-list-endpoints#get-order) from 3 to 5 requests per minute per order ID (to accommodate UI refresh and PDF download).

## January 2026
- update Austrian plate patterns for vignette orders. Read more [here](/vehicle/vehicle-patterns#austria)

## October 2025
- add new filter `vehicle_type` to [**GET** `/public/products`](/api/products-list-endpoints#products-vignettes-and-tunnels) (Click to open) endpoint. This filter allows you to filter products by their vehicle type.\
  Available vehicle types are: `car`, `van`, `moto`.
  ![Filter Example](/examples/example-2.png)

- add Wiki documentation for MCP Integration [`/mcp`](/wiki/mcp-server). You can use this with your LLMs agents.
- add examples of requests in our documentation for create order endpoint [**POST** `/public/orders`](/api/orders-list-endpoints#create-order) (Click to open) and validate vehicle endpoint [**POST** `/public/validate-vehicle`](/api/extended-list-endpoints#validate-vehicles) (Click to open).
![Request Example](/examples/example-1.png)


## September 2025
- We integrate rate limit policies on selected API endpoints to maintain system stability and ensure that all users enjoy fair and consistent access to our services.\
  [Rate Limits](/wiki/rate-limits)
  ![Filter Example](/examples/example-many-requests.png)

- We have introduced two [Partner Tiers](/wiki/partner-tiers) — `Standard` and `Premium`.\
  Standard users benefit from baseline access limits, while Premium users receive higher thresholds and extended capabilities.
  
  <Callout type="tip">
        These tiers allow us to balance fair usage with enhanced performance for partners who require more intensive API interaction.
  </Callout>


## August 2025
- We have updated and improved our documentation to provide clearer parameter descriptions, usage examples, and integration guidelines.
- We provide search module for faster navigation in our developer documentation.
- Improved iframe configuration options, including support for `email=` and `subaccount=` parameters. Read here [Iframe Integration](/integration/iframe-integration)
- The `subaccount` field was also added to [**POST** /public/orders](/api/orders-list-endpoints#create-order) API route, allowing partners to track and differentiate requests programmatically.

## June 2025
- add route for MCP server [`/mcp`](/api/internal-list-endpoints#mcp). You can use this with your LLMs agents.
- updated internal infrastructure

## April 2025
- add `Payouts` section in Partner Panel. [Payouts](https://www.e-vignette.app/payouts)
- add option for `Flexible Service` to [**POST** /public/orders](/api/orders-list-endpoints#create-order).\
  [Flexible Service](/wiki/flexible-service) (Click to open) is paid feature.

## March 2025
- add new structure for user data, property `email` now inside `user`. `email` required for all orders. For Moldova required all properties.
```
{
    "user":{
        "email":"user@example.com",
        "user_name":"John Smith",
        "passport_number":"FP123456",
        "passport_country":"de"
    }
}
```


## September 2024
- launch Partner Panel. [Login](https://www.e-vignette.app)

  You can use this tool during integration testing, as well as track all real orders.


## August 2024
- added status `DEFERRED`

  Check [Statuses List](/wiki/statuses)


## July 2024
- You can use [**GET** `/public/orders/{id}/status`](/api/orders-list-endpoints#get-order-status) (Click to open) route to get status of order without another information.
- Now you have to option to provide payment method of users:
  - If `order_has_been_paid: true` its mean that you collect payment on your side
  - If `order_has_been_paid: false` API return payment link in response. We process payment on our side. You can use [**GET** `/public/orders/{id}/status`](/api/orders-list-endpoints#get-order-status) (Click to open) to check status of this order.


## June 2024
- added `7`, `15` and `30` days vignettes *2B* category for `Moldova`.


## May 2024
- From 6th May we change processing for Austrian vignettes and data what we return (Please check emails to read description)
- We remove vignette-hu-2c (bus category) from API
- added `7`, `15` and `30` days vignettes *2A* category for `Moldova`. In May and June we test this orders and later add 2B category


## April 2024
- added a `Hungarian` `1` day vignette for all Vehicle types.
- Now you can check National provider system status.

  You can use [**GET** /public/products/status](/api/products-list-endpoints#products-status) (Click to open) route


## March 2024
- added a `Czech` `1` day vignette.
- from March 1st the cost of all Czech vignettes will be changed
- added a `Romanian` `1` day vignette.


## February 2024
- Added automation for checking partner payments. 

  How it works:

    The system keeps records of the partner’s debt. If a partner's debt reaches 2,000 euros, the partner automatically receives a reminder that payment needs to be made and the amount due. 
    From this moment on, the partner has 72 hours to make the payment.

    When the amount specified in the email is credited to the bank account, the partner receives another notification of a successful transaction.

    If no payment has been made within 72 hours, access to the API is automatically disabled.

    From the moment the API is disabled, the fine begins to accrue. The calculation is based on the agreement that was signed at the beginning of cooperation.

    When the debt is paid, the partner receives an email with the amount of the fine due and an invoice. The partner has 72 hours to pay the fine to avoid being disconnected from the API again.

## January 2024
- added a new product in Switzerland - tunnel Munt La Schera  / `tunnel-ch-muntlaschera`
- deprecate `start_from` in all endpoints
- add filters by `country` and by `type` to [**GET** /public/products](/api/products-list-endpoints)
- add filters by `status` to [**GET** /public/orders](/api/orders-list-endpoints#get-orders)
- added status `WILL BE ACTIVE`. This status is set if the vignette has been successfully registered and is considered active, but we are still waiting for a unique identifier from the national provider’s system. This happens when there is a heavy load on the national provider API.
  
  Check [Statuses List](/wiki/statuses)
- the logic for checking orders has been changed to prohibit the creation of duplicates. It is impossible to buy more than 1 vignette with the same country, palte and country of the vehicle, where periods may overlap.

**Request for data verification**

- if the national provider’s system does not respond for more than 5 minutes, we disable the ability to register immediate vignettes in the system. We ask all partners to increase the number of [product requests](/api/products-list-endpoints) in the system at least once every 30 minutes and no more than once every 5 minutes.
- vignette prices change very rarely, but in any case, we ask you to set up an automatic check once a day.

## December 2023
- added `1` day vignettes for `Austria`.
- added `3` days (weekend) vignette for `Bulgaria`.
- added `30`, `90` and `365` days vignettes for `Romania`.

  Required send vin-code for this periods for Romanian vignettes


## August 2023
- added `Switzerland` vignettes for partners.

## June 2023
- added vehicle plate validation. [About patterns](/vehicle/vehicle-patterns)

  You can use [**POST** /public/validate-vehicle](/api/extended-list-endpoints#validate-vehicles) (Click to open) route