Welcome to our new Vignette ID Developer Portal documentation!
Documentation

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, 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 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. 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 to select the 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.
  • Added new endpoint POST /public/external-orders/{id}/cancel 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 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

April 2026

  • Added new endpoint GET /public/users/{id}/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
  • Added new webhook ORDER_CONFIRMATION_RECEIVED to the order flow — partners can now receive confirmation when an order is fully processed.
    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
  • 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.
  • Updated rate limit for GET /public/orders/{id} 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

October 2025

  • add new filter vehicle_type to GET /public/products (Click to open) endpoint. This filter allows you to filter products by their vehicle type.
    Available vehicle types are: car, van, moto. Filter Example

  • add Wiki documentation for MCP Integration /mcp. You can use this with your LLMs agents.

  • add examples of requests in our documentation for create order endpoint POST /public/orders (Click to open) and validate vehicle endpoint POST /public/validate-vehicle (Click to open). Request Example

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 Filter Example

  • We have introduced two Partner Tiers — Standard and Premium.
    Standard users benefit from baseline access limits, while Premium users receive higher thresholds and extended capabilities.

    These tiers allow us to balance fair usage with enhanced performance for partners who require more intensive API interaction.

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
  • The subaccount field was also added to POST /public/orders API route, allowing partners to track and differentiate requests programmatically.

June 2025

  • add route for MCP server /mcp. You can use this with your LLMs agents.
  • updated internal infrastructure

April 2025

March 2025

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

September 2024

  • launch Partner Panel. Login

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

August 2024

July 2024

  • You can use GET /public/orders/{id}/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 (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 (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

  • add filters by status to GET /public/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

  • 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 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

Last modified on