{"openapi":"3.0.3","info":{"title":"eventii Open API","version":"1.0.0","description":"Generated from the maintained eventii API Blueprint. Fields and required schema constraints are not inferred from examples."},"servers":[{"url":"https://openapi.eventii.dk/v1"}],"tags":[{"name":"Accounts"},{"name":"API Keys"},{"name":"Customers"},{"name":"Events"},{"name":"Tickets"},{"name":"Season Cards"},{"name":"Subscriptions"},{"name":"Loyalty"},{"name":"Pricing"},{"name":"Partners"},{"name":"Webhooks"},{"name":"Webhook Event Payloads"},{"name":"Sync"},{"name":"Reports"},{"name":"Products"},{"name":"Ticket Coupons"}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-KEY","description":"All requests require an API key. Each key has scoped permissions described by the API Blueprint."}}},"paths":{"/accounts/{id}":{"get":{"tags":["Accounts"],"summary":"Get Account","description":"Retrieve an account by ID.","operationId":"get-accounts-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Account ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phoneNumber":"+4512345678","address":"Vestergade 1","city":"København","postalCode":"1456","country":"Danmark","company":"","vatNumber":"","birthday":"1990-01-01","gender":"Male","externalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Entity of type Account with id 3fa85f64-5717-4562-b3fc-2c963f66afa6 was not found"]}}}}}}}}},"/accounts/username/{Username}":{"get":{"tags":["Accounts"],"summary":"Get Account By Username","description":"Retrieve an account by username.","operationId":"get-accounts-username-Username","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"Username","in":"path","required":true,"description":"Username (typically an email)","schema":{"type":"string"},"example":"john.doe@example.com"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","email":"john.doe@example.com","normalizedEmail":"JOHN.DOE@EXAMPLE.COM","userName":"john.doe@example.com","normalizedUserName":"JOHN.DOE@EXAMPLE.COM","lockoutEnabled":false,"lockoutEnd":null}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Account with username john.doe@example.com was not found"]}}}}}}}}},"/accounts":{"post":{"tags":["Accounts"],"summary":"Create Account","description":"Create a new account in the identity system.","operationId":"post-accounts","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","email":"john.doe@example.com","firstName":"John","lastName":"Doe","phoneNumber":"+4512345678","address":"Vestergade 1","city":"København","postalCode":"1456","country":"Danmark","company":"","vatNumber":"","birthday":"1990-01-01","gender":"Male","externalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":409,"isSuccess":false,"errorMessage":"conflict","errors":["An account with this email already exists"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phoneNumber":"+4512345678","address":"Vestergade 1","city":"København","postalCode":"1456","country":"Danmark","company":"","vatNumber":"","birthday":"1990-01-01","gender":"Male","password":"SecureP@ss1","passwordConfirmation":"SecureP@ss1","externalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}}}}},"/accounts/validatecredentials":{"post":{"tags":["Accounts"],"summary":"Validate Credentials","description":"Validate username and password combination.","operationId":"post-accounts-validatecredentials","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","email":"john.doe@example.com","firstName":"John","lastName":"Doe"}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Invalid credentials"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"username":"john.doe@example.com","password":"SecureP@ss1"}}}}}},"/accounts/changepassword":{"post":{"tags":["Accounts"],"summary":"Change Password","description":"Change an account's password. Password must contain at least 8 characters, one letter, one digit, and one special character.","operationId":"post-accounts-changepassword","security":[{"ApiKeyAuth":[]}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Account not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","currentPassword":"OldP@ss1","newPassword":"NewP@ss2"}}}}}},"/apikeys":{"get":{"tags":["API Keys"],"summary":"Get API Key","description":"Retrieve details about the current API key including its scopes.","operationId":"get-apikeys","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","issuedTo":"Partner Integration","issuedBy":"admin@eventii.dk","issuedAtUtc":"2024-01-01T00:00:00Z","expiresAtUtc":"2025-12-31T23:59:59Z","scopes":["Customers:Read","Tickets:Read","SeasonCards:Read"]}}}}}}}}}},"/customers/{id}":{"get":{"tags":["Customers"],"summary":"Get Customer","description":"Retrieve a customer by ID.\n**Required scope:** `Customers:Read`","operationId":"get-customers-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","fullName":"John Doe","email":"john.doe@example.com","phone":"+4512345678","company":null,"cvrNumber":null,"birthday":"1990-01-01","gender":"Male","street":"Vestergade 1","city":"København","zipCode":"1456","country":"Danmark","subjectId":"auth0|abc123","customFieldValue":null,"externalIds":[{"provider":"LigaLogin","providerId":"123456"}],"availableLoyaltyPoints":150}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Entity of type Customer with id 3fa85f64-5717-4562-b3fc-2c963f66afa6 was not found"]}}}}}}}}},"/customers/consenttypes":{"get":{"tags":["Customers"],"summary":"Get Consent Types","description":"Retrieve all available consent types.\n**Required scope:** `Customers:Read`","operationId":"get-customers-consenttypes","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"marketing_email","description":"Permission to send marketing emails","displayName":"Email Marketing","isRequired":false,"termsLink":"https://example.com/terms"}]}}}}}}}}},"/customers/consent":{"post":{"tags":["Customers"],"summary":"Create Consent Type","description":"Create a new consent type.\n**Required scope:** `Customers:Create`","operationId":"post-customers-consent","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"marketing_email","description":"Permission to send marketing emails","displayName":"Email Marketing","isRequired":false,"termsLink":"https://example.com/terms"}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"name":"marketing_email","description":"Permission to send marketing emails","displayName":"Email Marketing","isRequired":false,"termsLink":"https://example.com/terms"}}}}}},"/customers/consent/{id}":{"put":{"tags":["Customers"],"summary":"Update Consent Type","description":"Update an existing consent type.\n**Required scope:** `Customers:Update`","operationId":"put-customers-consent-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Consent Type ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Consent type not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"marketing_email","description":"Updated description","displayName":"Email Marketing Updated","isRequired":false,"termsLink":"https://example.com/terms-v2"}}}}}},"/customers/{id}/consents":{"get":{"tags":["Customers"],"summary":"Get Customer Consents","description":"Retrieve all consents for a customer.\n**Required scope:** `Customers:Read`","operationId":"get-customers-id-consents","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","consentTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","consentTypeName":"marketing_email","grantedTimestamp":"2024-06-01T12:00:00Z","grantedBy":"customer","revokedTimestamp":null,"revokedBy":null}]}}}}}}}}},"/customers/{CustomerId}/consent/grant/{ConsentTypeId}":{"post":{"tags":["Customers"],"summary":"Grant Consent","description":"Grant a consent type for a customer.\n**Required scope:** `Customers:Update`","operationId":"post-customers-CustomerId-consent-grant-ConsentTypeId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"CustomerId","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"ConsentTypeId","in":"path","required":true,"description":"Consent Type ID (GUID)","schema":{"type":"string"},"example":"4fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{}}}}}}}}}},"/customers/{CustomerId}/consent/revoke/{ConsentTypeId}":{"post":{"tags":["Customers"],"summary":"Revoke Consent","description":"Revoke a consent type for a customer.\n**Required scope:** `Customers:Update`","operationId":"post-customers-CustomerId-consent-revoke-ConsentTypeId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"CustomerId","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"ConsentTypeId","in":"path","required":true,"description":"Consent Type ID (GUID)","schema":{"type":"string"},"example":"4fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{}}}}}}}}}},"/customers/consents/{ConsentTypeId}":{"get":{"tags":["Customers"],"summary":"Get Customers With Consent","description":"Retrieve all customers who have granted a specific consent type.\n**Required scope:** `Customers:Read`","operationId":"get-customers-consents-ConsentTypeId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"ConsentTypeId","in":"path","required":true,"description":"Consent Type ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"customerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","email":"john.doe@example.com","grantedTimestamp":"2024-06-01T12:00:00Z"}]}}}}}}}}},"/events":{"get":{"tags":["Events"],"summary":"Get Events","description":"Retrieve all events.","operationId":"get-events","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VFF - OB","displayName":"VFF vs OB","matchId":12345,"startTime":"2024-09-15T18:00:00Z","endTime":"2024-09-15T20:00:00Z","openTime":"2024-09-15T16:00:00Z","eventText":"Superliga Round 8","eventTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","eventTypeName":"Superliga","imageUrl":"https://cdn.eventii.dk/events/vff-ob.jpg","homeTeamLogoUrl":"https://cdn.eventii.dk/teams/vff.png","awayLogoTeamLogoUrl":"https://cdn.eventii.dk/teams/ob.png","venueId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","venueName":"Vejle Stadion"}]}}}}}}}}},"/events/{id}":{"get":{"tags":["Events"],"summary":"Get Event","description":"Retrieve an event by ID.","operationId":"get-events-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VFF - OB","displayName":"VFF vs OB","matchId":12345,"startTime":"2024-09-15T18:00:00Z","endTime":"2024-09-15T20:00:00Z","openTime":"2024-09-15T16:00:00Z","eventText":"Superliga Round 8","eventTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","eventTypeName":"Superliga","imageUrl":"https://cdn.eventii.dk/events/vff-ob.jpg","homeTeamLogoUrl":"https://cdn.eventii.dk/teams/vff.png","awayLogoTeamLogoUrl":"https://cdn.eventii.dk/teams/ob.png","venueId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","venueName":"Vejle Stadion"}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Entity of type Event with id 3fa85f64-5717-4562-b3fc-2c963f66afa6 was not found"]}}}}}}}}},"/eventtypes":{"get":{"tags":["Events"],"summary":"Get Event Types","description":"Retrieve all event types.\n**Required scope:** `Events:Read`","operationId":"get-eventtypes","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Superliga","description":"Danish Superliga matches"}]}}}}}}}},"post":{"tags":["Events"],"summary":"Create Event Type","description":"Create a new event type.\n**Required scope:** `Events:Create`","operationId":"post-eventtypes","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Superliga","description":"Danish Superliga matches"}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"name":"Superliga","description":"Danish Superliga matches"}}}}}},"/eventtypes/{id}":{"get":{"tags":["Events"],"summary":"Get Event Type","description":"Retrieve a single event type by ID.\n**Required scope:** `Events:Read`","operationId":"get-eventtypes-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Event Type ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Superliga","description":"Danish Superliga matches"}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Event type not found"]}}}}}}}},"put":{"tags":["Events"],"summary":"Update Event Type","description":"Update an existing event type.\n**Required scope:** `Events:Update`","operationId":"put-eventtypes-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Event Type ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Event type not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Superliga Updated","description":"Updated description"}}}}}},"/tickets/{id}":{"get":{"tags":["Tickets"],"summary":"Get Ticket","description":"Retrieve a ticket by ID.\n**Required scope:** `Tickets:Read`","operationId":"get-tickets-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Ticket ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","status":"Active","deliveryType":"Digital","expirationTime":"2024-09-15T22:00:00Z","buyerInfo":{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","externalId":"123456","externalIds":[{"provider":"LigaLogin","providerId":"123456"}],"firstName":"John","lastName":"Doe","company":"","gender":"Male","birthDate":"1990-01-01"},"holderInfo":{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","externalId":"123456","externalIds":[{"provider":"LigaLogin","providerId":"123456"}],"firstName":"John","lastName":"Doe","company":"","gender":"Male","birthDate":"1990-01-01"},"eventInfo":{"id":"5fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VFF - OB","description":"Superliga Round 8","startTime":"2024-09-15T18:00:00Z","endTime":"2024-09-15T20:00:00Z","gatesOpenTime":"2024-09-15T16:00:00Z","venueId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","venueName":"Vejle Stadion"},"seatingInfo":{"sectionId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","sectionName":"Section A","tribune":"Nord","entranceId":"8fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Indgang 1","seatId":"9fa85f64-5717-4562-b3fc-2c963f66afa6","seatNumber":"15","rowNumber":"3","isNumbered":true},"orderInfo":{"id":"afa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725522","transactionId":"txn_abc123","faceValue":150,"deliveryPrice":0,"totalPrice":150,"priceCategoryId":"bfa85f64-5717-4562-b3fc-2c963f66afa6","priceCategory":"Voksen"},"events":[{"type":"Created","timeStamp":"2024-08-01T10:00:00Z","message":"Ticket was created"}],"pdfLink":"https://api.eventii.dk/tickets/3fa85f64-5717-4562-b3fc-2c963f66afa6/pdf","appleWalletLink":"https://applewallet.com/pass123","googlePayLink":"https://googlewallet.com/pass123"}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Ticket not found"]}}}}}}}}},"/tickets/buyer/{id}":{"get":{"tags":["Tickets"],"summary":"Get Tickets By Buyer","description":"Retrieve all tickets purchased by a buyer.\n**Required scope:** `Tickets:Read`","operationId":"get-tickets-buyer-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Buyer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","status":"Active","deliveryType":"Digital","expirationTime":"2024-09-15T22:00:00Z","buyerInfo":{},"holderInfo":{},"eventInfo":{},"seatingInfo":{},"orderInfo":{},"events":[],"pdfLink":"","appleWalletLink":"","googlePayLink":""}]}}}}}}}}},"/tickets/holder/{id}":{"get":{"tags":["Tickets"],"summary":"Get Tickets By Holder","description":"Retrieve all tickets held by a person (only tickets currently on their profile).\n**Required scope:** `Tickets:Read`","operationId":"get-tickets-holder-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Holder ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","status":"Active","deliveryType":"Digital","expirationTime":"2024-09-15T22:00:00Z","buyerInfo":{},"holderInfo":{},"eventInfo":{},"seatingInfo":{},"orderInfo":{},"events":[],"pdfLink":"","appleWalletLink":"","googlePayLink":""}]}}}}}}}}},"/tickets/{id}/forward":{"post":{"tags":["Tickets"],"summary":"Forward Ticket","description":"Forward a ticket to another person via email. **This action cannot be undone.**\n**Required scope:** `Tickets:Update`","operationId":"post-tickets-id-forward","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Ticket ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Ticket not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"email":"recipient@example.com"}}}}}},"/tickets/{id}/release":{"post":{"tags":["Tickets"],"summary":"Release Ticket","description":"Release a ticket for resale. **This action cannot be undone.**\n**Required scope:** `Tickets:Update`","operationId":"post-tickets-id-release","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Ticket ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Ticket not found"]}}}}}}}}},"/seasoncards/{id}":{"get":{"tags":["Season Cards"],"summary":"Get Season Card","description":"Retrieve a season card by ID.\n**Required scope:** `SeasonCards:Read`","operationId":"get-seasoncards-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Season Card ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","cardHolder":"John Doe","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Sæsonkort 2024/25","status":"Active","deliveryType":"Digital","validFrom":"2024-07-01T00:00:00Z","expirationTime":"2025-06-30T23:59:59Z","holderBirthday":"1990-01-15T00:00:00Z","buyerInfo":{"id":"5fa85f64-5717-4562-b3fc-2c963f66afa6","externalId":"123456","externalIds":[{"provider":"LigaLogin","providerId":"123456"}],"firstName":"John","lastName":"Doe","company":"","gender":"Male","birthDate":"1990-01-01"},"holderInfo":{"id":"5fa85f64-5717-4562-b3fc-2c963f66afa6","externalId":"123456","externalIds":[{"provider":"LigaLogin","providerId":"123456"}],"firstName":"John","lastName":"Doe","company":"","gender":"Male","birthDate":"1990-01-01"},"orderInfo":{"id":"6fa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725522","transactionId":"txn_abc123","faceValue":2500,"deliveryPrice":0,"totalPrice":2500,"priceCategoryId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategory":"Voksen"},"seatingInfo":{"sectionId":"8fa85f64-5717-4562-b3fc-2c963f66afa6","sectionName":"Section A","tribune":"Nord","entranceId":"9fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Indgang 6","seatId":"afa85f64-5717-4562-b3fc-2c963f66afa6","seatNumber":"15","rowNumber":"3","isNumbered":true},"appleWalletLink":"https://applewallet.com/pass123","googlePayLink":"https://googlewallet.com/pass123","validEvents":[{"id":"bfa85f64-5717-4562-b3fc-2c963f66afa6","name":"VFF - OB","startTime":"2024-09-15T18:00:00Z","releaseStartTime":"2024-09-10T00:00:00Z","releaseEndTime":"2024-09-14T23:59:59Z","issueTicketStartTime":"2024-09-10T00:00:00Z","issueTicketEndTime":"2024-09-14T23:59:59Z","venueId":"cfa85f64-5717-4562-b3fc-2c963f66afa6","venueName":"Vejle Stadion","venueStreet":"Stadionvej 1","venueCity":"Vejle","venueZipCode":"7100","venueCountry":"Danmark","venueLongitude":9.5357,"venueLatitude":55.7113}],"releaseEvents":[{"eventId":"dfa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"VFF - FCK","eventTime":"2024-08-20T18:00:00Z","releasedBy":"john.doe@example.com","timestamp":"2024-08-15T10:30:00Z"}],"cardTickets":[{"ticketId":"efa85f64-5717-4562-b3fc-2c963f66afa6","orderId":"ffa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725600","issuedTo":"friend@example.com","eventId":"bfa85f64-5717-4562-b3fc-2c963f66afa7","eventName":"VFF - BIF","eventTime":"2024-09-01T18:00:00Z","timestamp":"2024-08-28T14:00:00Z"}],"logEvents":[{"eventType":"Released","eventId":"dfa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"VFF - FCK","message":"Season card was released for event VFF - FCK (dfa85f64-5717-4562-b3fc-2c963f66afa6)"},{"eventType":"SentAsTicket","eventId":"bfa85f64-5717-4562-b3fc-2c963f66afa7","eventName":"VFF - BIF","message":"Season card was sent as ticket to friend@example.com for event VFF - BIF (bfa85f64-5717-4562-b3fc-2c963f66afa7)"}],"isSubscription":false}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Season card not found"]}}}}}}}}},"/seasoncards/query":{"get":{"tags":["Season Cards"],"summary":"Query Season Cards","description":"Paginated query of season cards with optional filters.\n**Required scope:** `SeasonCards:Read`","operationId":"get-seasoncards-query","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number (default: 1)","schema":{"type":"number"},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Page size (default: 50)","schema":{"type":"number"},"example":50},{"name":"seasonCardTypeId","in":"query","required":false,"description":"Filter by season card type","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"priceCategoryId","in":"query","required":false,"description":"Filter by price category","schema":{"type":"string"},"example":"4fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"includeCancelled","in":"query","required":false,"description":"Include cancelled cards","schema":{"type":"boolean"},"example":false},{"name":"includeExpired","in":"query","required":false,"description":"Include expired cards","schema":{"type":"boolean"},"example":false}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":150,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","cardHolder":"John Doe","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Sæsonkort 2024/25","status":"Active","deliveryType":"Digital","validFrom":"2024-07-01T00:00:00Z","expirationTime":"2025-06-30T23:59:59Z","holderBirthday":"1990-01-15T00:00:00Z","buyerInfo":{},"holderInfo":{},"orderInfo":{},"seatingInfo":{},"appleWalletLink":"","googlePayLink":"","validEvents":[],"releaseEvents":[],"cardTickets":[],"logEvents":[],"isSubscription":false}]}}}}}}}}},"/seasoncards/buyer/{id}":{"get":{"tags":["Season Cards"],"summary":"Get Season Cards By Buyer","description":"Retrieve all season cards purchased by a buyer, including cards that have been forwarded to others.\n**Required scope:** `SeasonCards:Read`","operationId":"get-seasoncards-buyer-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Buyer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","cardHolder":"John Doe","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Sæsonkort 2024/25","status":"Active","deliveryType":"Digital","validFrom":"2024-07-01T00:00:00Z","expirationTime":"2025-06-30T23:59:59Z","holderBirthday":"1990-01-15T00:00:00Z","buyerInfo":{},"holderInfo":{},"orderInfo":{},"seatingInfo":{},"appleWalletLink":"","googlePayLink":"","validEvents":[],"releaseEvents":[],"cardTickets":[],"logEvents":[],"isSubscription":false}]}}}}}}}}},"/seasoncards/holder/{id}":{"get":{"tags":["Season Cards"],"summary":"Get Season Cards By Holder","description":"Retrieve all season cards held by a person (only cards currently on their profile).\n**Required scope:** `SeasonCards:Read`","operationId":"get-seasoncards-holder-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Holder ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","cardHolder":"John Doe","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Sæsonkort 2024/25","status":"Active","deliveryType":"Digital","validFrom":"2024-07-01T00:00:00Z","expirationTime":"2025-06-30T23:59:59Z","holderBirthday":"1990-01-15T00:00:00Z","buyerInfo":{},"holderInfo":{},"orderInfo":{},"seatingInfo":{},"appleWalletLink":"","googlePayLink":"","validEvents":[],"releaseEvents":[],"cardTickets":[],"logEvents":[],"isSubscription":false}]}}}}}}}}},"/seasoncards/{id}/forward":{"post":{"tags":["Season Cards"],"summary":"Forward Season Card","description":"Forward an entire season card to another person via email. **This action cannot be undone.** The card will be transferred from the current holder's profile to the recipient.\n**Required scope:** `SeasonCards:Update`","operationId":"post-seasoncards-id-forward","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Season Card ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Season card not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"email":"recipient@example.com"}}}}}},"/seasoncards/{id}/release":{"post":{"tags":["Season Cards"],"summary":"Release Season Card","description":"Release a season card for a specific event so the seat can be resold. **This action cannot be undone.** Only allowed within the event's release time window (`releaseStartTime` to `releaseEndTime`).\n**Required scope:** `SeasonCards:Update`","operationId":"post-seasoncards-id-release","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Season Card ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"bad request","errors":["Release window is not open for this event"]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Season card not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"eventId":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}}}}}},"/seasoncards/{id}/ticket":{"post":{"tags":["Season Cards"],"summary":"Send As Ticket","description":"Issue a ticket from the season card for a specific event and send it to a recipient. Only allowed within the event's ticket issuance window (`issueTicketStartTime` to `issueTicketEndTime`). A season card can only issue one ticket per event.\n**Required scope:** `SeasonCards:Update`","operationId":"post-seasoncards-id-ticket","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Season Card ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"bad request","errors":["Ticket issuance window is not open for this event"]}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":409,"isSuccess":false,"errorMessage":"conflict","errors":["A ticket has already been issued for this event"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"eventId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","recipient":"friend@example.com"}}}}}},"/subscriptions/tickets/buyer/{BuyerId}":{"get":{"tags":["Subscriptions"],"summary":"Get Buyer Ticket Subscriptions","description":"Retrieve all ticket subscriptions for a buyer.\n**Required scope:** `Subscriptions:Read`","operationId":"get-subscriptions-tickets-buyer-BuyerId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"BuyerId","in":"path","required":true,"description":"Buyer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"Active","deliveryType":"Digital","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Billetabonnement 2024/25","validFrom":"2024-07-01T00:00:00Z","expirationTime":"2025-06-30T23:59:59Z","holderBirthday":"1990-01-15T00:00:00Z","buyerInfo":{},"holderInfo":{},"orderInfo":{},"tickets":[{"id":"5fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","status":"Active","deliveryType":"Digital","expirationTime":"2024-09-15T22:00:00Z","eventInfo":{},"seatingInfo":{},"orderInfo":{},"appleWalletLink":"","googlePayLink":""}],"validEvents":[]}]}}}}}}}}},"/loyalty/{CustomerId}":{"get":{"tags":["Loyalty"],"summary":"Get Loyalty Points","description":"Retrieve loyalty point balance and action history for a customer.\n**Required scope:** `Customers:Read`","operationId":"get-loyalty-CustomerId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"CustomerId","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","points":150,"actions":[{"barcode":"1234567890123456","event":"VFF - OB","expiration":"2025-12-31T23:59:59Z","name":"Match attendance","points":10,"timestamp":"2024-09-15T18:30:00Z","type":"Earned"}]}}}}}}}}}},"/pricing/pricecategories":{"get":{"tags":["Pricing"],"summary":"Get Price Categories","description":"Retrieve all price categories.\n**Required scope:** `Pricing:Read`","operationId":"get-pricing-pricecategories","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Voksen","description":"Adult ticket","displayName":"Voksen","order":1,"reducedPrice":false}]}}}}}}}}},"/partners":{"post":{"tags":["Partners"],"summary":"Create Partner","description":"Create a partner and primary contact. Requires `Partners:Create`. Required fields are `company`, `email`, `businessCodeId`, `primaryContactFirstName`, `primaryContactLastName`, and `primaryContactEmail`. `sendCreationEmail` defaults to `false`.","operationId":"post-partners","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","company":"Example Partner"}}}}}}},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"Company is required","errors":[]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"Business code not found","errors":[]}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-5":{"value":{"statusCode":409,"isSuccess":false,"errorMessage":"A contact with that email already exists","errors":[]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"company":"Example Partner","email":"contact@example.com","businessCodeId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","primaryContactFirstName":"Alex","primaryContactLastName":"Jensen","primaryContactEmail":"alex@example.com","sendCreationEmail":false}}}}}},"/partners/{id}":{"get":{"tags":["Partners"],"summary":"Get Partner","description":"Retrieve a partner by ID.\n**Required scope:** `Partners:Read`","operationId":"get-partners-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","company":"Sponsor A/S","cvrNumber":"12345678","note":"","email":"contact@sponsor.dk","phone":"+4587654321","street":"Sponsorgade 10","city":"Vejle","zipCode":"7100","country":"Danmark","primaryContact":{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"Lars","lastName":"Hansen","partnerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","partner":"Sponsor A/S","role":"Manager","isPrimary":true,"department":null,"description":null,"office":null,"title":"Sponsorchef","email":"lars@sponsor.dk","phone":"+4587654322"},"businessCode":{"id":"5fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Hovedsponsor","description":"Primary sponsors"},"partnerGroups":[{"id":"6fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VIP Partners","description":"Partners with VIP access"}],"isLockout":false}}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Partner not found"]}}}}}}}},"put":{"tags":["Partners"],"summary":"Update Partner","description":"Update a partner. Requires `Partners:Update`. The route ID, `company`, `email`, and `businessCodeId` are required. A successful response has no body.","operationId":"put-partners-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint."},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"Company is required","errors":[]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"Partner not found","errors":[]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"company":"Example Partner","email":"contact@example.com","businessCodeId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","lockout":null}}}}},"delete":{"tags":["Partners"],"summary":"Delete Partner","description":"Delete a partner. Requires `Partners:Delete`.","operationId":"delete-partners-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"bad request","errors":[]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"Partner not found","errors":[]}}}}}}}}},"/partners/{id}/contacts":{"get":{"tags":["Partners"],"summary":"Get Partner Contacts","description":"Retrieve all contacts for a partner.\n**Required scope:** `Partners:Read`","operationId":"get-partners-id-contacts","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"Lars","lastName":"Hansen","partnerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","partner":"Sponsor A/S","role":"Manager","isPrimary":true,"department":null,"description":null,"office":null,"title":"Sponsorchef","email":"lars@sponsor.dk","phone":"+4587654322"}]}}}}}}}},"post":{"tags":["Partners"],"summary":"Create Partner Contact","description":"Add a contact to this partner. Requires `Partners:Create`. `firstName`, `lastName`, and `email` are required. If present, `role` is `Administrator` or `Employee`; it defaults to `Employee`.","operationId":"post-partners-id-contacts","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","partnerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"Alex","lastName":"Jensen","role":"Employee"}}}}}}},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"FirstName is required","errors":[]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"Partner not found","errors":[]}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-5":{"value":{"statusCode":409,"isSuccess":false,"errorMessage":"A contact with that email already exists","errors":[]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"firstName":"Alex","lastName":"Jensen","email":"alex@example.com","role":"Employee"}}}}}},"/partners/{PartnerId}/contacts/{Id}":{"put":{"tags":["Partners"],"summary":"Update Partner Contact","description":"Update a contact. Requires `Partners:Update`. `firstName`, `lastName`, and `email` are required; `role`, if supplied, is `Administrator` or `Employee`. A successful response has no body.","operationId":"put-partners-PartnerId-contacts-Id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"PartnerId","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"Id","in":"path","required":true,"description":"Contact ID (GUID)","schema":{"type":"string"},"example":"4fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint."},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"FirstName is required","errors":[]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"Contact not found","errors":[]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"firstName":"Alex","lastName":"Jensen","email":"alex@example.com","role":"Employee"}}}}},"delete":{"tags":["Partners"],"summary":"Delete Partner Contact","description":"Remove a contact. Requires `Partners:Delete`. A primary contact cannot be removed.","operationId":"delete-partners-PartnerId-contacts-Id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"PartnerId","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"Id","in":"path","required":true,"description":"Contact ID (GUID)","schema":{"type":"string"},"example":"4fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"Primary contact cannot be removed","errors":[]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"Contact not found","errors":[]}}}}}}}}},"/partners/{id}/products":{"get":{"tags":["Partners"],"summary":"Get Partner Products","description":"Retrieve all products assigned to a partner.\n**Required scope:** `Partners:Read`","operationId":"get-partners-id-products","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VIP Lounge","displayName":"VIP Lounge Package","productType":"Ticket","type":"Event","orderQuantityRestriction":10,"productId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","quantity":50,"remaining":35,"salesChannelId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","salesChannelName":"Partner Portal"}]}}}}}}}}},"/partners/search":{"get":{"tags":["Partners"],"summary":"Search Partners","description":"Search and filter partners with pagination.\n**Required scope:** `Partners:Read`","operationId":"get-partners-search","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"searchTerm","in":"query","required":false,"description":"Search term to filter partners","schema":{"type":"string"},"example":"Sponsor"},{"name":"partnerGroupId","in":"query","required":false,"description":"Filter by partner group","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"businessCodeId","in":"query","required":false,"description":"Filter by business code","schema":{"type":"string"},"example":"4fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"productId","in":"query","required":false,"description":"Filter by product","schema":{"type":"string"},"example":"5fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"page","in":"query","required":false,"description":"Page number","schema":{"type":"number"},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Page size","schema":{"type":"number"},"example":50}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":5,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","company":"Sponsor A/S","cvrNumber":"12345678","note":"","email":"contact@sponsor.dk","phone":"+4587654321","street":"Sponsorgade 10","city":"Vejle","zipCode":"7100","country":"Danmark","primaryContact":{},"businessCode":{},"partnerGroups":[],"isLockout":false}]}}}}}}}}},"/partners/businesscodes":{"get":{"tags":["Partners"],"summary":"Get Business Codes","description":"Retrieve all business codes.\n**Required scope:** `Partners:Read`","operationId":"get-partners-businesscodes","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":3,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Hovedsponsor","description":"Primary sponsors"}]}}}}}}}},"post":{"tags":["Partners"],"summary":"Create Business Code","description":"Create a new business code.\n**Required scope:** `Partners:Create`","operationId":"post-partners-businesscodes","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Hovedsponsor","description":"Primary sponsors"}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"name":"Hovedsponsor","description":"Primary sponsors"}}}}}},"/partners/businesscodes/{id}":{"put":{"tags":["Partners"],"summary":"Update Business Code","description":"Update an existing business code.\n**Required scope:** `Partners:Update`","operationId":"put-partners-businesscodes-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Business Code ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Business code not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Hovedsponsor Updated","description":"Updated description"}}}}}},"/partners/groups":{"get":{"tags":["Partners"],"summary":"Get Partner Groups","description":"Retrieve all partner groups.\n**Required scope:** `Partners:Read`","operationId":"get-partners-groups","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VIP Partners","description":"Partners with VIP access"}]}}}}}}}},"post":{"tags":["Partners"],"summary":"Create Partner Group","description":"Create a new partner group.\n**Required scope:** `Partners:Create`","operationId":"post-partners-groups","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VIP Partners","description":"Partners with VIP access"}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"name":"VIP Partners","description":"Partners with VIP access"}}}}}},"/partners/groups/{id}":{"put":{"tags":["Partners"],"summary":"Update Partner Group","description":"Update an existing partner group.\n**Required scope:** `Partners:Update`","operationId":"put-partners-groups-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner Group ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VIP Partners Updated","description":"Updated description"}}}}}},"/partners/groups/{id}/members":{"get":{"tags":["Partners"],"summary":"Get Partner Group Members","description":"Retrieve all members of a partner group.\n**Required scope:** `Partners:Read`","operationId":"get-partners-groups-id-members","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Partner Group ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"4fa85f64-5717-4562-b3fc-2c963f66afa6","company":"Sponsor A/S","cvrNumber":"12345678","email":"contact@sponsor.dk","phone":"+4587654321","businessCodeId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","businessCodeName":"Hovedsponsor"}]}}}}}}}}},"/partners/groups/add":{"put":{"tags":["Partners"],"summary":"Add Partner To Group","description":"Add a partner to a partner group.\n**Required scope:** `Partners:Update`","operationId":"put-partners-groups-add","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"groupId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","partnerId":"4fa85f64-5717-4562-b3fc-2c963f66afa6"}}}}}},"/partners/groups/remove":{"put":{"tags":["Partners"],"summary":"Remove Partner From Group","description":"Remove a partner from a partner group.\n**Required scope:** `Partners:Update`","operationId":"put-partners-groups-remove","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{}}}}}}}},"requestBody":{"content":{"application/json":{"example":{"groupId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","partnerId":"4fa85f64-5717-4562-b3fc-2c963f66afa6"}}}}}},"/partners/products":{"get":{"tags":["Partners"],"summary":"Get Products","description":"Retrieve all available products for partner assignment.\n**Required scope:** `Partners:Read`","operationId":"get-partners-products","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VIP Lounge","description":"VIP Lounge Package","productType":"Ticket","type":"Event"}]}}}}}}}}},"/webhooks":{"get":{"tags":["Webhooks"],"summary":"Get Webhooks","description":"Retrieve all webhook subscriptions for the current API key.","operationId":"get-webhooks","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Order notifications","authorizationType":"Basic","authorizationName":"Authorization","authorizationValue":"Bearer my-secret-token","eventName":"OrderCreated","url":"https://myapp.com/webhooks/orders","createdBy":"api-key-owner","createdOnUtc":"2024-01-15T10:00:00Z","lastModifiedBy":null,"lastModifiedOnUtc":null}]}}}}}}}},"post":{"tags":["Webhooks"],"summary":"Create Webhook","description":"Create a new webhook subscription. Each API key can only have one subscription per event type.\n**Supported events:** `TicketCreated`, `TicketActivated`, `TicketUpdated`, `TicketForwarded`, `TicketCancelled`, `TicketReleased`, `SeasonCardCreated`, `SeasonCardActivated`, `SeasonCardUpdated`, `SeasonCardForwarded`, `SeasonCardReleased`, `SeasonCardCancelled`, `OrderCreated`, `OrderPaid`, `OrderCancelled`, `OrderLineCancelled`, `CustomerCreated`, `CustomerUpdated`, `CustomerDeleted`, `ConsentGranted`, `ConsentRetracted`, `PassEntered`, `PartnerRegistration`","operationId":"post-webhooks","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Order notifications","authorizationType":"Basic","authorizationName":"Authorization","authorizationValue":"Bearer my-secret-token","eventName":"OrderCreated","url":"https://myapp.com/webhooks/orders","createdBy":"api-key-owner","createdOnUtc":"2024-01-15T10:00:00Z","lastModifiedBy":null,"lastModifiedOnUtc":null}}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":409,"isSuccess":false,"errorMessage":"conflict","errors":["A webhook for this event already exists for this API key"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"name":"Order notifications","authorizationType":"Basic","authorizationName":"Authorization","authorizationValue":"Bearer my-secret-token","eventName":"OrderCreated","uri":"https://myapp.com/webhooks/orders"}}}}}},"/webhooks/{id}":{"put":{"tags":["Webhooks"],"summary":"Update Webhook","description":"Update an existing webhook subscription.","operationId":"put-webhooks-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Webhook not found"]}}}}}}},"requestBody":{"content":{"application/json":{"example":{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Order notifications v2","authorizationType":"Basic","authorizationName":"Authorization","authorizationValue":"Bearer my-new-token","eventName":"OrderCreated","uri":"https://myapp.com/webhooks/v2/orders"}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete Webhook","description":"Delete a webhook subscription.","operationId":"delete-webhooks-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"204":{"description":"Response 204 from the API Blueprint."},"404":{"description":"Response 404 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":404,"isSuccess":false,"errorMessage":"not found","errors":["Webhook not found"]}}}}}}}}},"/webhooks/{id}/logs":{"get":{"tags":["Webhooks"],"summary":"Get Webhook Logs","description":"Retrieve delivery logs for a webhook subscription.\n**Required scope:** `Webhooks:Read`","operationId":"get-webhooks-id-logs","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Webhook ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"subscriptionId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","timestamp":"2024-09-15T18:00:05Z","type":"OrderCreated","destinationUrl":"https://myapp.com/webhooks/orders","authorizationType":"Basic","dataObject":"{\"eventName\":\"OrderCreated\",\"data\":{...}}","responseCode":"200","responseContent":"OK"}]}}}}}}}}},"/webhooks/event/{EventName}":{"get":{"tags":["Webhook Event Payloads"],"summary":"Get Event Payload Example","description":"Retrieve a camel-case preview payload for a webhook event type. This preview response is an API-reference example; it is not the JSON contract sent to a subscription URL.\nActual webhook delivery is a `POST` to the configured subscription URL. It serializes the envelope and nested event data with PascalCase property names: `EventName`, `IdempotencyKey`, `CreatedAtUtc`, and `Data`. `IdempotencyKey` is a 32-character GUID without hyphens. For the usual integration events, `Data` also contains `Id`, `CreationDate`, `TenantId`, and `OrganiserId`; the envelope `CreatedAtUtc` is that event's `CreationDate`.\nTicketCreated uses `EventTime` and includes `HolderEmail`, `HolderPhone`, and `HolderType`. TicketActivated includes those contact and type fields in addition to its `EventTimeUtc`. SeasonCardCreated and SeasonCardActivated include `HolderEmail` and `HolderPhone`. TicketForwarded delivers only `TicketId` and `Recipient`, and TicketReleased delivers only `TicketId`; neither carries the usual integration-event metadata and each envelope timestamp is set when it is published.\nActual delivery example:\n```json\n{\"EventName\":\"TicketReleased\",\"IdempotencyKey\":\"a1b2c3d4e5f67890abcdef1234567890\",\"CreatedAtUtc\":\"2026-09-17T10:00:00Z\",\"Data\":{\"TicketId\":\"3fa85f64-5717-4562-b3fc-2c963f66afa6\"}}\n```","operationId":"get-webhooks-event-EventName","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"EventName","in":"path","required":true,"description":"The event name. Supported: `TicketCreated`, `TicketActivated`, `TicketUpdated`, `TicketForwarded`, `TicketCancelled`, `TicketReleased`, `SeasonCardCreated`, `SeasonCardActivated`, `SeasonCardUpdated`, `SeasonCardForwarded`, `SeasonCardReleased`, `SeasonCardCancelled`, `OrderCreated`, `OrderPaid`, `OrderCancelled`, `OrderLineCancelled`, `CustomerCreated`, `CustomerUpdated`, `CustomerDeleted`, `ConsentGranted`, `ConsentRetracted`, `PassEntered`, `PartnerRegistration`","schema":{"type":"string"},"example":"OrderCreated"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"orderCreated":{"value":{"eventName":"OrderCreated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"orderId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725522","buyerId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","buyerFirstName":"John","buyerLastName":"Doe","buyerEmail":"john.doe@example.com","buyerPhoneNumber":"+4512345678","buyerCompany":"","buyerVatNumber":"","buyerStreet":"Vestergade 1","buyerCity":"København","buyerPostalCode":"1456","buyerCountry":"Danmark","deliveryMethod":"Digital","deliveryFee":0,"orderTotal":150,"salesChannel":"Webshop","orderCreationTime":"2024-09-15T12:00:00Z","items":[{"itemId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","productId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","productName":"VFF - OB","priceCategoryId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Voksen","sectionName":"Section A","seatNumber":"","rowNumber":"","price":150,"fee":0,"itemType":"Ticket","isSubscription":false,"isDiscount":false}]}}},"orderPaid":{"value":{"eventName":"OrderPaid","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:05:00Z","data":{"orderId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725522","buyerId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","buyerFirstName":"John","buyerLastName":"Doe","buyerEmail":"john.doe@example.com","buyerPhoneNumber":"+4512345678","buyerCompany":"","buyerVatNumber":"","buyerStreet":"Vestergade 1","buyerCity":"København","buyerPostalCode":"1456","buyerCountry":"Danmark","deliveryMethod":"Digital","deliveryFee":0,"orderTotal":150,"salesChannel":"Webshop","orderCreationTime":"2024-09-15T12:00:00Z","items":[{"itemId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","productId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","productName":"VFF - OB","priceCategoryId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Voksen","sectionName":"Section A","seatNumber":"","rowNumber":"","price":150,"fee":0,"itemType":"Ticket","isSubscription":false,"isDiscount":false}],"transactionId":"txn_a1b2c3d4e5f6","transactionTime":"2024-09-15T12:05:00Z","transactionFee":5}}},"orderCancelled":{"value":{"eventName":"OrderCancelled","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:10:00Z","data":{"orderId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725522","buyerId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","buyerFirstName":"John","buyerLastName":"Doe","buyerEmail":"john.doe@example.com","buyerPhoneNumber":"+4512345678","buyerCompany":"","buyerVatNumber":"","buyerStreet":"Vestergade 1","buyerCity":"København","buyerPostalCode":"1456","buyerCountry":"Danmark","deliveryMethod":"Digital","deliveryFee":0,"orderTotal":150,"salesChannel":"Webshop","orderCreationTime":"2024-09-15T12:00:00Z","items":[{"itemId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","productId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","productName":"VFF - OB","priceCategoryId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Voksen","sectionName":"Section A","seatNumber":"","rowNumber":"","price":150,"fee":0,"itemType":"Ticket","isSubscription":false,"isDiscount":false}],"cancelledByUsername":"admin@example.com","cancellationTime":"2024-09-15T12:10:00Z"}}},"ticketCreated":{"value":{"eventName":"TicketCreated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"ticketId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","ticketStatus":"Active","eventId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"OB - VFF","eventTimeUtc":"2024-09-15T18:00:00Z","holderId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","holderFirstName":"John","holderLastName":"Doe","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}],"sectionId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","sectionName":"Section A","seatId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","seatRow":"1","seatNumber":"1","entranceId":"8fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Entrance A","appleWalletUrl":"https://applewallet.com/pass123","googlePayUrl":"https://googlewallet.com/pass123","priceCategoryId":"9fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Adult"}}},"ticketActivated":{"value":{"eventName":"TicketActivated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"ticketId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","ticketStatus":"Active","eventId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"OB - VFF","eventTimeUtc":"2024-09-15T18:00:00Z","holderId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","holderFirstName":"John","holderLastName":"Doe","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}],"sectionId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","sectionName":"Section A","seatId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","seatRow":"1","seatNumber":"1","entranceId":"8fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Entrance A","appleWalletUrl":"https://applewallet.com/pass123","googlePayUrl":"https://googlewallet.com/pass123","priceCategoryId":"9fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Adult"}}},"ticketUpdated":{"value":{"eventName":"TicketUpdated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"ticketId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}},"ticketCancelled":{"value":{"eventName":"TicketCancelled","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"ticketId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}},"ticketForwarded":{"value":{"eventName":"TicketForwarded","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"ticketId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}],"recipient":"friend@example.com"}}},"seasonCardCreated":{"value":{"eventName":"SeasonCardCreated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"seasonCardId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","seasonCardStatus":"Active","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Sæsonkort 2024/25","expirationDateUtc":"2025-06-30T23:59:59Z","holderId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","holderFirstName":"John","holderLastName":"Doe","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}],"sectionId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","sectionName":"Section A","seatId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","seatRow":"1","seatNumber":"1","entranceId":"8fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Entrance A","appleWalletUrl":"https://applewallet.com/pass123","googlePayUrl":"https://googlewallet.com/pass123","priceCategoryId":"9fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Adult"}}},"seasonCardActivated":{"value":{"eventName":"SeasonCardActivated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"seasonCardId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","barcode":"1234567890123456","seasonCardStatus":"Active","seasonCardTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","seasonCardTypeName":"Sæsonkort 2024/25","expirationDateUtc":"2025-06-30T23:59:59Z","holderId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","holderFirstName":"John","holderLastName":"Doe","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}],"sectionId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","sectionName":"Section A","seatId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","seatRow":"1","seatNumber":"1","entranceId":"8fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Entrance A","appleWalletUrl":"https://applewallet.com/pass123","googlePayUrl":"https://googlewallet.com/pass123","priceCategoryId":"9fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategoryName":"Adult"}}},"seasonCardUpdated":{"value":{"eventName":"SeasonCardUpdated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"seasonCardId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}},"seasonCardCancelled":{"value":{"eventName":"SeasonCardCancelled","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"seasonCardId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}},"seasonCardForwarded":{"value":{"eventName":"SeasonCardForwarded","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"seasonCardId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}],"recipient":"friend@example.com"}}},"seasonCardReleased":{"value":{"eventName":"SeasonCardReleased","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"seasonCardId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","eventId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"OB - VFF","holderExternalIds":[{"provider":"LigaLogin","providerId":"123456"}]}}},"ticketReleased":{"value":{"eventName":"TicketReleased","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"ticketId":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}}},"orderLineCancelled":{"value":{"eventName":"OrderLineCancelled","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:15:00Z","data":{"orderLineId":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}}},"customerCreated":{"value":{"eventName":"CustomerCreated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"customerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","fullName":"John Doe","gender":"Male","birthDate":"1990-01-01T00:00:00Z","street":"Vestergade 1","city":"København","zipCode":"1456","country":"Danmark","email":"john.doe@example.com","phone":"+4512345678","company":""}}},"customerUpdated":{"value":{"eventName":"CustomerUpdated","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"customerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","fullName":"John Doe","gender":"Male","birthDate":"1990-01-01T00:00:00Z","street":"Vestergade 1","city":"København","zipCode":"1456","country":"Danmark","email":"john.doe@example.com","phone":"+4512345678","company":"","loyaltyBalance":120}}},"customerDeleted":{"value":{"eventName":"CustomerDeleted","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"customerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","fullName":"John Doe","gender":"Male","birthDate":"1990-01-01T00:00:00Z","street":"Vestergade 1","city":"København","zipCode":"1456","country":"Danmark","email":"john.doe@example.com","phone":"+4512345678","company":""}}},"consentGranted":{"value":{"eventName":"ConsentGranted","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"customerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","email":"john.doe@example.com","phoneNumber":"+4512345678","consentTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","consentTypeName":"Marketing","consentTypeKind":"Email"}}},"consentRetracted":{"value":{"eventName":"ConsentRetracted","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"customerId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","email":"john.doe@example.com","phoneNumber":"+4512345678","consentTypeId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","consentTypeName":"Marketing","consentTypeKind":"Email"}}},"partnerRegistration":{"value":{"eventName":"PartnerRegistration","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T12:00:00Z","data":{"registrationId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","partnerId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","partnerName":"Sponsor A/S","registrationProductId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","registrationProductName":"VIP Lounge Package","registrationOptionId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","registrationOptionName":"Table for 10","eventId":"7fa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"VFF - OB","eventTime":"2024-09-15T18:00:00Z","participant":"Lars Hansen","participantEmail":"lars@sponsor.dk","participantMobile":"+4587654321","buyerFirstName":"Lars","buyerLastName":"Hansen","buyerCompany":"Sponsor A/S","buyerEmail":"lars@sponsor.dk","timestamp":"2024-09-15T10:30:00Z","note":""}}},"passEntered":{"value":{"eventName":"PassEntered","idempotencyKey":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","createdAtUtc":"2024-09-15T17:45:00Z","data":{"entityId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"SeasonCard","timestamp":"2024-09-15T17:45:00Z","entranceId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","entranceName":"Indgang 6","eventId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"OB - VFF","holderId":"6fa85f64-5717-4562-b3fc-2c963f66afa6","holderEmail":"john.doe@example.com","section":"A","priceCategory":"Standard"}}}}}}},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-24":{"value":{"statusCode":400,"isSuccess":false,"errorMessage":"bad request","errors":["'EventName' must be a supported event. See property descriptions for supported events"]}}}}}}}}},"/sync/customers":{"get":{"tags":["Sync"],"summary":"Get All Customers","description":"Retrieve all customers for synchronization. Returns the full customer dataset.\n**Required scope:** `Customers:Read`","operationId":"get-sync-customers","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","fullName":"John Doe","email":"john.doe@example.com","phone":"+4512345678","company":null,"cvrNumber":null,"birthday":"1990-01-01","gender":"Male","street":"Vestergade 1","city":"København","zipCode":"1456","country":"Danmark","subjectId":"auth0|abc123","externalIds":[],"availableLoyaltyPoints":150}]}}}}}}}}},"/sync/partners":{"get":{"tags":["Sync"],"summary":"Get All Partners","description":"Retrieve all partners for synchronization. Returns the full partner dataset including contacts and products.\n**Required scope:** `Partners:Read`","operationId":"get-sync-partners","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","company":"Sponsor A/S","cvrNumber":"12345678","note":"","email":"contact@sponsor.dk","phone":"+4587654321","street":"Sponsorgade 10","city":"Vejle","zipCode":"7100","country":"Danmark","primaryContact":{},"businessCode":{},"partnerGroups":[],"isLockout":false}]}}}}}}}}},"/sync/seasoncards":{"get":{"tags":["Sync"],"summary":"Get All Season Cards","description":"Retrieve all season cards, subscriptions, and card reservations for synchronization. Returns aggregated data including usage statistics.\n**Required scope:** `SeasonCards:Read`","operationId":"get-sync-seasoncards","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","holder":"John Doe","barcode":"1234567890123456","holderId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","customerType":"B2C","email":"john.doe@example.com","cardTypeId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","cardTypeName":"Sæsonkort 2024/25","priceCategory":"Voksen","pluNumber":"","section":"Section A","rowNumber":"3","seatNumber":"15","status":"Active","created":"2024-07-01T00:00:00Z","expiration":"2025-06-30T23:59:59Z","type":"SeasonCard","scans":12,"events":15,"usage":"80%"}]}}}}}}}}},"/sync/campaigns":{"post":{"tags":["Sync"],"summary":"Start Campaigns Sync","description":"Start a Campaigns historical state bootstrap. Requires `Campaigns:Update` and allows 10 requests per 60 seconds. `components` is required and must select one or more of `Profiles`, `Partners`, `SeasonCards`, `Subscriptions`, or `TicketSubscriptions`; `All` cannot be combined with other selections. The response is a run status object, not the standard envelope.","operationId":"post-sync-campaigns","security":[{"ApiKeyAuth":[]}],"responses":{"202":{"description":"Response 202 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"runId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"queued","startedAt":"2026-09-17T10:00:00Z","completedAt":null,"profileCount":0,"seasonCardCount":0,"ticketSubscriptionCount":0,"components":["Profiles","SeasonCards"]}}}}}},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"status":"rejected"}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"status":"unauthorized"}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"status":"running"}}}}}},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-5":{"value":{"status":"failed"}}}}}}},"requestBody":{"content":{"application/json":{"example":{"components":["Profiles","SeasonCards"]}}}}}},"/sync/campaigns/{runId}":{"get":{"tags":["Sync"],"summary":"Get Campaigns Sync","description":"Get Campaigns bootstrap status. Requires `Campaigns:Read` and allows 60 requests per 60 seconds. The response is a run status object, not the standard envelope.","operationId":"get-sync-campaigns-runId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"runId","in":"path","required":true,"description":"Sync run ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"runId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"running","startedAt":"2026-09-17T10:00:00Z","completedAt":null,"profileCount":42,"seasonCardCount":10,"ticketSubscriptionCount":5,"components":["All"]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"status":"unauthorized"}}}}}},"404":{"description":"Response 404 from the API Blueprint."},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"status":"failed"}}}}}}}}},"/sync/heyloyalty":{"post":{"tags":["Sync"],"summary":"Start HeyLoyalty Sync","description":"Queue a HeyLoyalty historical sync. Requires `Campaigns:Update`, allows 10 requests per 60 seconds, and needs an explicit non-empty `components` selection using the supported component names. The API-key tenant must have a configured compatible HeyLoyalty main list. The response is a run status object.","operationId":"post-sync-heyloyalty","security":[{"ApiKeyAuth":[]}],"responses":{"202":{"description":"Response 202 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"runId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"queued","startedAt":"2026-09-17T10:00:00Z","completedAt":null,"queuedCount":0,"components":["Profiles"]}}}}}},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"status":"rejected"}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"status":"unauthorized"}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"status":"running"}}}}}},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-5":{"value":{"status":"failed"}}}}}}},"requestBody":{"content":{"application/json":{"example":{"components":["Profiles"]}}}}}},"/sync/heyloyalty/{runId}":{"get":{"tags":["Sync"],"summary":"Get HeyLoyalty Sync","description":"Get HeyLoyalty source-queue status. Requires `Campaigns:Read` and allows 60 requests per 60 seconds. Queued confirms durable source messages, not provider application. The response is a run status object.","operationId":"get-sync-heyloyalty-runId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"runId","in":"path","required":true,"description":"Sync run ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"runId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"queued","startedAt":"2026-09-17T10:00:00Z","completedAt":null,"queuedCount":42,"components":["Profiles"]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"status":"unauthorized"}}}}}},"404":{"description":"Response 404 from the API Blueprint."},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"status":"failed"}}}}}}}}},"/sync/klaviyo":{"post":{"tags":["Sync"],"summary":"Start Klaviyo Sync","description":"Queue an existing-profile-only Klaviyo historical sync. Requires `Campaigns:Update` and allows 10 requests per 60 seconds. `components` uses the supported component names and defaults to `All` when omitted. The response is a run status object.","operationId":"post-sync-klaviyo","security":[{"ApiKeyAuth":[]}],"responses":{"202":{"description":"Response 202 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"runId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"queued","startedAt":"2026-09-17T10:00:00Z","completedAt":null,"queuedCount":0,"components":["All"]}}}}}},"400":{"description":"Response 400 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"status":"rejected"}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"status":"unauthorized"}}}}}},"409":{"description":"Response 409 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"status":"running"}}}}}},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-5":{"value":{"status":"failed"}}}}}}},"requestBody":{"content":{"application/json":{"example":{"components":["All"]}}}}}},"/sync/klaviyo/{runId}":{"get":{"tags":["Sync"],"summary":"Get Klaviyo Sync","description":"Get Klaviyo source-queue status. Requires `Campaigns:Read` and allows 60 requests per 60 seconds. The response is a run status object.","operationId":"get-sync-klaviyo-runId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"runId","in":"path","required":true,"description":"Sync run ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"runId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","status":"queued","startedAt":"2026-09-17T10:00:00Z","completedAt":null,"queuedCount":42,"components":["All"]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"status":"unauthorized"}}}}}},"404":{"description":"Response 404 from the API Blueprint."},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-4":{"value":{"status":"failed"}}}}}}}}},"/reports/match/{EventId}":{"get":{"tags":["Reports"],"summary":"Get Match Report","description":"Retrieve comprehensive match/event report data including orders, buyers, entries, and POS information.","operationId":"get-reports-match-EventId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"EventId","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"orderId":"3fa85f64-5717-4562-b3fc-2c963f66afa6","orderNumber":"1725522","buyerName":"John Doe","buyerEmail":"john.doe@example.com","section":"Section A","row":"3","seat":"15","priceCategory":"Voksen","price":150,"barcode":"1234567890123456","entryTime":"2024-09-15T17:45:00Z","releaseTimestamp":"2024-09-15T16:00:00Z","entrance":"Indgang 6"}]}}}}}}}}},"/reports/junu/attendance/{eventId}":{"get":{"tags":["Reports"],"summary":"Get Junu Attendance Data","description":"Retrieve attendance data for Junu integration.","operationId":"get-reports-junu-attendance-eventId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"eventId","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"page","in":"query","required":false,"description":"Page number","schema":{"type":"number"},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Page size","schema":{"type":"number"},"example":50}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":500,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","timestamp":"2024-09-15T17:45:00Z","eventId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","customerId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","ticketTypeId":"6fa85f64-5717-4562-b3fc-2c963f66afa6"}]}}}}}}}}},"/reports/junu/customers":{"get":{"tags":["Reports"],"summary":"Get Junu Customers Data","description":"Retrieve customer data for Junu integration.","operationId":"get-reports-junu-customers","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number","schema":{"type":"number"},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Page size","schema":{"type":"number"},"example":50}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":1000,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","firstName":"John","lastName":"Doe","fullName":"John Doe","email":"john.doe@example.com","birthdate":"1990-01-01","country":"Danmark","gender":"Male","zipCode":"1456"}]}}}}}}}}},"/reports/junu/events":{"get":{"tags":["Reports"],"summary":"Get Junu Events Data","description":"Retrieve event data for Junu integration.","operationId":"get-reports-junu-events","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"page","in":"query","required":false,"description":"Page number","schema":{"type":"number"},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Page size","schema":{"type":"number"},"example":50},{"name":"timestamp","in":"query","required":false,"description":"Filter events after this timestamp","schema":{"type":"string"},"example":"2024-01-01T00:00:00Z"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":30,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"VFF - OB","date":"2024-09-15T18:00:00Z","type":"Superliga","matchId":12345}]}}}}}}}}},"/reports/junu/tickettypes":{"get":{"tags":["Reports"],"summary":"Get Junu Ticket Types Data","description":"Retrieve ticket type data for Junu integration.","operationId":"get-reports-junu-tickettypes","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Voksen"}]}}}}}}}}},"/reports/junu/transaction/{eventId}":{"get":{"tags":["Reports"],"summary":"Get Junu Transaction Data","description":"Retrieve transaction data for Junu integration.","operationId":"get-reports-junu-transaction-eventId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"eventId","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"page","in":"query","required":false,"description":"Page number","schema":{"type":"number"},"example":1},{"name":"pageSize","in":"query","required":false,"description":"Page size","schema":{"type":"number"},"example":50}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"page":1,"pageSize":50,"resultSize":300,"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","timestamp":"2024-09-15T12:00:00Z","ticketType":"Voksen","eventId":"4fa85f64-5717-4562-b3fc-2c963f66afa6","customerId":"5fa85f64-5717-4562-b3fc-2c963f66afa6","priceCategory":"Voksen","price":150,"cancelled":false,"currency":"DKK","tribune":"Nord","section":"Section A","entrance":"Indgang 1","group":"","rowNumber":"3","seatNumber":"15","barcode":"1234567890123456","salesChannel":"Webshop","paymentGateway":"Nets","transactionId":"txn_abc123"}]}}}}}}}}},"/reports/access-cards/{EventId}":{"get":{"tags":["Reports"],"summary":"Get Access Card Counts","description":"Retrieve measured all-access card entries grouped by card type. Requires `Reporting:read`, allows 100 requests per 60 seconds, and caches each API-key response for two minutes.","operationId":"get-reports-access-cards-EventId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"EventId","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"type":"AccessCard","entryCount":3,"source":"measured-entry","cards":[{"name":"(1234567890) Press Box","entryCount":2}]}]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":500,"isSuccess":false,"errorMessage":"internal server error","errors":[]}}}}}}}}},"/reports/attendance-adjustments/{EventId}":{"get":{"tags":["Reports"],"summary":"Get Attendance Adjustments","description":"Retrieve manual attendance adjustments. Requires `Reporting:read`, allows 100 requests per 60 seconds, and caches each API-key response for two minutes. Amount can be negative; preserve the manual/measured distinction.","operationId":"get-reports-attendance-adjustments-EventId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"EventId","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":1,"name":"Sponsor guests","amount":120,"source":"manual","adjustedBy":"ticketoffice@club.example","adjustTime":"2026-09-17T10:00:00Z"}]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":500,"isSuccess":false,"errorMessage":"internal server error","errors":[]}}}}}}}}},"/reports/manual-uploads/{EventId}":{"get":{"tags":["Reports"],"summary":"Get Manual Upload Report","description":"Retrieve one row for each manually uploaded barcode, including unscanned rows and the latest row not superseded by a later barcode reset. Requires `Reporting:read`, allows 100 requests per 60 seconds, and caches each API-key response for two minutes.","operationId":"get-reports-manual-uploads-EventId","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"EventId","in":"path","required":true,"description":"Event ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"eventId":1,"eventUniqueidentifier":"3fa85f64-5717-4562-b3fc-2c963f66afa6","eventName":"Example Event","eventTime":"2026-09-17T10:00:00Z","barcode":"BAR123456789","sectionId":10,"section":"East Stand","uploadedBy":"gate-operator","uploadTime":"2026-09-17T09:00:00Z","entered":true,"enteredTimestamp":"2026-09-17T09:30:00Z","scannedBy":"Scanner A","scannedAt":"Gate A"}]}}}}}},"401":{"description":"Response 401 from the API Blueprint.","content":{"application/json":{"examples":{"example-2":{"value":{"statusCode":401,"isSuccess":false,"errorMessage":"unauthorized","errors":[]}}}}}},"500":{"description":"Response 500 from the API Blueprint.","content":{"application/json":{"examples":{"example-3":{"value":{"statusCode":500,"isSuccess":false,"errorMessage":"internal server error","errors":[]}}}}}}}}},"/products/customer/{id}":{"get":{"tags":["Products"],"summary":"Get Products By Customer","description":"Retrieve every addon Product owned by the customer, optionally filtered to a single organiser.\n**Required scope:** `Products:Read`","operationId":"get-products-customer-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"organiserId","in":"query","required":false,"description":"Organiser filter. When supplied only rows for that organiser are returned; otherwise products across all organisers the customer holds are returned.","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"a1901faf-5b8e-49b5-a5ef-f8c9db1f6b04","organiserId":"62aa5179-9690-481c-a84f-16ffa22ef636","organiserName":"Example Organiser","customerId":"478cb0ac-4f11-445f-8374-08db3a7f92d5","productId":"3779c71b-9e04-4e61-9851-e2d6580c6012","productName":"Example Product","barcode":"5933558100874891","eventId":null,"eventName":"Example Event","orderNumber":"484666","validTo":"2026-05-24T10:00:00Z","orderTime":"2026-04-24T10:00:00Z","pluNr":"15","customerName":"Example Customer","customerEmail":"customer@example.com","appleWalletUrl":"https://addons.eventii.dk/v1/products/AppleWallet/a1901faf-5b8e-49b5-a5ef-f8c9db1f6b04/{hash}/62aa5179-9690-481c-a84f-16ffa22ef636","googlePayUrl":"https://addons.eventii.dk/v1/products/GooglePay/a1901faf-5b8e-49b5-a5ef-f8c9db1f6b04/{hash}/62aa5179-9690-481c-a84f-16ffa22ef636"}]}}}}}}}}},"/ticketcoupons/customer/{id}":{"get":{"tags":["Ticket Coupons"],"summary":"Get Ticket Coupons By Customer","description":"Retrieve every ticket coupon owned by the customer, optionally filtered to a single organiser.\n**Required scope:** `TicketCoupons:Read`","operationId":"get-ticketcoupons-customer-id","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Customer ID (GUID)","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"},{"name":"organiserId","in":"query","required":false,"description":"Organiser filter. When supplied only rows for that organiser are returned.","schema":{"type":"string"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}],"responses":{"200":{"description":"Response 200 from the API Blueprint.","content":{"application/json":{"examples":{"example-1":{"value":{"statusCode":200,"isSuccess":true,"result":[{"id":"b2a02fbf-6c9f-5ac6-b6ff-f9d0ec2f7c05","organiserId":"62aa5179-9690-481c-a84f-16ffa22ef636","organiserName":"Example Organiser","customerId":"ad0ee4b5-42b4-44ab-8a73-08d9f1ebec44","ticketCouponTypeId":"e1871b89-a8e7-44cd-bd93-4ce4248dc19d","productName":"Example Coupon","salesText":"Example Coupon","barcode":"9138164606420077","orderNumber":"484522","quantity":50,"price":5,"pluNr":5,"priceCategory":"Standard","validFrom":"2026-04-24T10:00:00Z","validTo":"2026-05-24T10:00:00Z","customerFullName":"Example Customer","customerEmail":"customer@example.com","appleWalletUrl":"https://addons.eventii.dk/v1/ticketcoupons/AppleWallet/b2a02fbf-6c9f-5ac6-b6ff-f9d0ec2f7c05/{hash}/62aa5179-9690-481c-a84f-16ffa22ef636","googlePayUrl":"https://addons.eventii.dk/v1/ticketcoupons/GooglePay/b2a02fbf-6c9f-5ac6-b6ff-f9d0ec2f7c05/{hash}/62aa5179-9690-481c-a84f-16ffa22ef636"}]}}}}}}}}}}}