Tickets
High-level description
Section titled “High-level description”Use tickets for event access. Create the event before sending content of type
ticket.event; the event configuration supplies the context that Kivra uses to
present the ticket.
Sub-types
Section titled “Sub-types”Use ticket.event for event tickets. The type within each ticket describes
the admission category, not a separate content sub-type.
Common payload
Section titled “Common payload”{ "ssn": "YYYYMMDDNNNN", "subject": "Example Festival 2026", "type": "ticket.event", "ticket": { "event_key": "EVENT_KEY", "order_id": "order-456", "tickets": [ { "qr_data": "BASE64_OR_TEXT_QR_DATA", "type": "Standard", "seating": { "section": "Orchestra", "row": "1", "seat": "A12", "gate": "North" } } ] }}The ticket object needs an event_key and at least one ticket with qr_data
and type. Use group_ticket.qr_data when admission scans the group instead
of individual tickets.
Other information
Section titled “Other information”1. Create an event
Section titled “1. Create an event”Create an event with POST /v2/tenant/{tenantKey}/ticket/event before sending
any tickets. The event belongs to the creating tenant, so the same tenant must
send the ticket content. Store the returned event_key.
{ "event_reference": "concert-2026-10-10", "name": "Concert Night", "url": "https://example.com/events/concert-night", "organizer": { "name": "Example Events" }, "schedule": { "start": "2026-10-10T19:00:00+02:00", "admission": "2026-10-10T18:00:00+02:00" }, "venue": { "name": "Example Arena", "location": { "city": "Stockholm", "address": "Arena Street 1", "zip": "12345" } }}2. Send the ticket
Section titled “2. Send the ticket”Send the common payload to the
Send content endpoint, using the
event_key returned in the previous step.
If you include document parts, Kivra displays only one part for a ticket.
See Create a new event and the Tenant API reference before implementing the ticket-specific payload.