Skip to content
This is a new version of the Kivra Developer Docs. Report issues or share feedback at avsandare.support@kivra.se. The previous version can be found here.

Tickets

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.

Use ticket.event for event tickets. The type within each ticket describes the admission category, not a separate content sub-type.

{
"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.

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"
}
}
}

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.