{"openapi":"3.0.3","info":{"title":"Vignetim Partner API","version":"2.0.0","description":"REST API for partners to sell e-vignettes, eSIM data packages, and travel insurance across Europe.","contact":{"email":"partners@vignetim.com"}},"servers":[{"url":"https://api.vignetim.com/v2/partners","description":"Production"},{"url":"https://api-sandbox.vignetim.com/v2/partners","description":"Sandbox"}],"paths":{"/products/tickets":{"get":{"summary":"List vignette tickets","operationId":"listTickets","tags":["Products"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}},{"name":"countryIsocode","in":"query","schema":{"type":"string"},"description":"Filter by country ISO code (e.g., AT, BG)"},{"name":"vehicleCategoryId","in":"query","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Paginated list of vignette tickets"}}}},"/products/tickets/{id}":{"get":{"summary":"Get vignette ticket details","operationId":"getTicket","tags":["Products"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Ticket details"},"404":{"description":"Not found"}}}},"/products/esim":{"get":{"summary":"List eSIM packages","operationId":"listEsim","tags":["Products"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":100}},{"name":"country","in":"query","schema":{"type":"string"}},{"name":"slug","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of eSIM packages"}}}},"/products/insurance":{"get":{"summary":"List insurance products","operationId":"listInsurance","tags":["Products"],"responses":{"200":{"description":"List of insurance products"}}}},"/products/insurance/{slug}":{"get":{"summary":"Get insurance product details","operationId":"getInsurance","tags":["Products"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Insurance product details"},"404":{"description":"Not found"}}}},"/products/vehicle-categories":{"get":{"summary":"List vehicle categories","operationId":"listVehicleCategories","tags":["Products"],"parameters":[{"name":"includeVehicles","in":"query","schema":{"type":"boolean","default":false}},{"name":"language","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"List of vehicle categories"}}}},"/orders":{"post":{"summary":"Create order","operationId":"createOrder","tags":["Orders"],"responses":{"201":{"description":"Order created"},"400":{"description":"Validation error"},"409":{"description":"Idempotent request"},"429":{"description":"Rate limit exceeded"}}},"get":{"summary":"List orders","operationId":"listOrders","tags":["Orders"],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"maximum":100}},{"name":"status","in":"query","schema":{"type":"integer"}},{"name":"productType","in":"query","schema":{"type":"integer"}},{"name":"dateFrom","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"dateTo","in":"query","schema":{"type":"string","format":"date-time"}},{"name":"externalReference","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated list of orders"}}}},"/orders/{id}":{"get":{"summary":"Get order details","operationId":"getOrder","tags":["Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Order details"},"404":{"description":"Not found"}}}},"/orders/{id}/status":{"get":{"summary":"Get order status","operationId":"getOrderStatus","tags":["Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Order status"}}}},"/webhooks":{"post":{"summary":"Register webhook","operationId":"createWebhook","tags":["Webhooks"],"responses":{"201":{"description":"Webhook created"},"400":{"description":"Validation error or limit reached"}}},"get":{"summary":"List webhooks","operationId":"listWebhooks","tags":["Webhooks"],"responses":{"200":{"description":"List of webhooks"}}}},"/webhooks/{id}":{"put":{"summary":"Update webhook","operationId":"updateWebhook","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Webhook updated"},"404":{"description":"Not found"}}},"delete":{"summary":"Delete webhook","operationId":"deleteWebhook","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Webhook deleted"}}}},"/webhooks/{id}/test":{"post":{"summary":"Test webhook delivery","operationId":"testWebhook","tags":["Webhooks"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Test delivery result"}}}}},"components":{"securitySchemes":{"hmac":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Organization API key. Also requires X-Timestamp, X-Nonce, and X-Signature headers for HMAC-SHA256 authentication."}}},"security":[{"hmac":[]}]}