# Ticket Types (/docs/ticket-types)



Ticket types group tickets by access, such as General Admission, VIP or Staff.
Every new event starts with a General Admission type.

## Add a ticket type [#add-a-ticket-type]

```ts
const { data: ticketType, error } = await eventlayer.ticketTypes.create({
  eventId: "ev_123",
  name: "VIP",
  description: "Priority seating and backstage access.",
});
if (error) throw error;
```

Pass `ticketType.id` as `ticketTypeId` when [issuing a ticket](/docs/tickets).
If an event has only one ticket type, Eventlayer selects it automatically.

## List ticket types [#list-ticket-types]

```ts
const { data: page, error } = await eventlayer.ticketTypes.list({
  eventId: "ev_123",
});
if (error) throw error;

console.log(page.items);
```

## Pause check-in for a type [#pause-check-in-for-a-type]

```ts
const { error } = await eventlayer.ticketTypes.update({
  ticketTypeId: "tt_123",
  status: "inactive",
});
if (error) throw error;
```

An inactive type blocks check-in. Existing assigned tickets remain assigned.
Set the status to `active` to allow check-in again.

Deleting a type removes its tickets. Use deactivation when you only need to pause entry.

You can also manage types in the [dashboard](/dashboard).
For optional fields, including Wallet templates, see the [API reference](/docs/api-reference).
To start an event without a default type, pass `disableDefaultTicketType: true` when creating it.
