Skip to main content

How to void an imported ticket or a ticket issued via the API

Use the void endpoint to mark an individual issued ticket as invalid, whether it was imported or created through the API.

Written by Rhio

If you've imported tickets in bulk, or issued tickets directly through the API rather than through a normal checkout, you can still void individual tickets.

Voiding a ticket marks it as no longer valid for entry, so it can't be scanned with the check-in app.

💡 If you need to control ticket type validity at the door, you may want to filter your check-in app to manage check-in instead of voiding.


How to void an issued ticket

  • Find the ticket's ID. Every issued ticket has a unique ID starting with it_ (e.g. it_50198). You can find this by:

    • Listing your issued tickets with GET /v1/issued_tickets, filtering by source=api or source=import to narrow it down to tickets issued outside the usual checkout, or

    • Locating the ticket on your 'Issued tickets' page in the dashboard and copying its ID from the ticket details.

  • Call the void endpoint, passing that ID in the URL:

POST /v1/issued_tickets/:issued_ticket_id/void

  • Check the response. A successful call returns a 200 with the updated ticket, showing "status": "voided" and a voided_at timestamp.


💡 Things to note

  • Voiding a ticket is irreversible. Once voided, it can't be scanned or checked in.

  • You can void a ticket to a hold instead of a normal void. This creates a hold from the ticket rather than putting its allocation back on public sale, so nobody else can book that spot. See the API docs for more info.

  • This works the same way whether the ticket was created through a normal checkout, imported in bulk, or issued directly via the API, since they're all the same underlying resource.

  • You'll need your API key, which you can find (or generate) in your box office Settings → API.

  • If you manage your box office through an MCP client (like Claude), this action isn't available as a tool yet. You'll need to call the API directly with your API key instead.

Did this answer your question?