Skip to main content
This is the most common integration: you sell, VENTRY accredits. A ticket that is not registered in VENTRY cannot be used to enter the venue. Scopes needed: event.read and tickets.write (the latter requires manual activation by the organiser).

1. Map your catalogue against VENTRY’s

First, and only once per event: find out which identifiers to use.
Store that mapping in your configuration: your product → ticket_type plus a list of valid_days.

2. Create the tickets

Send your own code. It is optional — omit it and VENTRY generates one — but sending your platform’s ticket number lets you reconcile the two systems later without keeping a lookup table.

Things that matter

If a code already exists or a reference is invalid, no ticket in the batch is created and you get a 409 or 422. Fix it and resend the whole batch: you do not have to work out which ones went through.
And with a write quota of 20 calls per minute, that is 10,000 tickets per minute. Batch them: one call per ticket is the fastest way to hit the limit.
If you do not collect them, do not send them. VENTRY fills in neutral values and accreditation works the same. The document number is never returned in full: only the last four digits.
If you sell an add-on that grants access to an extra zone — a VIP area pass on top of a general ticket — pass it in extra_zones with the zone id. On accreditation, the wristband receives the ticket type’s zones plus these.

3. Cancel refunded tickets

The ticket becomes inactive and can no longer be used for accreditation.
A ticket that has already been redeemed cannot be cancelled: it returns 409 ticket_already_claimed. The attendee is inside the venue with an active wristband, and cancelling the ticket would leave that wristband working against a dead ticket. For that case, the wristband has to be blocked from the VENTRY dashboard.

4. Check the state

During the event, to find out who has come in:
Or a single ticket:
checked_in_at tells you when it was accredited and wristband which wristband was assigned to it.

End-to-end flow