Interface: ElementTicketType
Interface: ElementTicketType in @ticketlayer/live.
@ticketlayer/live / index / ElementTicketType
Defined in: elements.ts:306
A ticket type as the Elements read it: the old fields, plus the offers engine's (TKT-324).
Properties#
availability?#
optional availability?: {
closesAt: string | null;
opensAt: string | null;
reason: | "SALE_CLOSED"
| "NOT_AVAILABLE"
| "SOLD_OUT"
| "SALE_NOT_OPEN"
| "TAG_REQUIRED"
| null;
state: | "on_sale"
| "not_yet_on_sale"
| "off_sale"
| "sold_out"
| "locked"
| "hidden";
};Defined in: elements.ts:322
closesAt#
closesAt: string | null;Description
When the sale this buyer is under closes; for off_sale, when it closed
Example
2026-10-14T18:00:00.000ZopensAt#
opensAt: string | null;Description
When a sale not yet open opens for this buyer
Example
nullreason#
reason:
| "SALE_CLOSED"
| "NOT_AVAILABLE"
| "SOLD_OUT"
| "SALE_NOT_OPEN"
| "TAG_REQUIRED"
| null;Description
Why it cannot be bought now: SALE_CLOSED, NOT_AVAILABLE, SOLD_OUT, SALE_NOT_OPEN or TAG_REQUIRED; null when on sale
Example
null
@enum {string|null}state#
state:
| "on_sale"
| "not_yet_on_sale"
| "off_sale"
| "sold_out"
| "locked"
| "hidden";Example
on_sale
@enum {string}availabilityStatus?#
optional availabilityStatus?: "sold_out" | "available" | "limited";Defined in: elements.ts:319
sold_out or limited, for an element that reads no availability.
available#
available: number;Defined in: elements.ts:317
categoryId#
categoryId: string;Defined in: elements.ts:313
categoryName#
categoryName: string;Defined in: elements.ts:314
currency#
currency: string;Defined in: elements.ts:312
description#
description: string | null;Defined in: elements.ts:309
id#
id: string;Defined in: elements.ts:307
limits?#
optional limits?: {
maxPerOrder: number;
minPerOrder: number;
};Defined in: elements.ts:324
maxPerOrder#
maxPerOrder: number;Example
10minPerOrder#
minPerOrder: number;Example
1maxPerOrder#
maxPerOrder: number;Defined in: elements.ts:315
minPerOrder?#
optional minPerOrder?: number;Defined in: elements.ts:316
name#
name: string;Defined in: elements.ts:308
price#
price: number;Defined in: elements.ts:311
The face value, fees excluded: the view's price.faceValue. Never add a fee to it.
pricing?#
optional pricing?: {
currency: string;
faceValue: number;
fees: {
amount: number;
basis: "per_ticket" | "per_order";
code: string;
label: string;
rate: number | null;
}[];
headline: {
allIn: boolean;
amount: number;
};
total: number;
};Defined in: elements.ts:321
The view's price (face value, fee lines, total), renamed because price is the face value here.
currency#
currency: string;Example
GBPfaceValue#
faceValue: number;Description
Integer minor units
Example
2500fees#
fees: {
amount: number;
basis: "per_ticket" | "per_order";
code: string;
label: string;
rate: number | null;
}[];Description
Every fee on buying one ticket, the per-order fee included
headline#
headline: {
allIn: boolean;
amount: number;
};Description
The price to show before the buyer chooses anything: the face value after discounts, plus every mandatory fee when the channel prices all-in (as UK and US law require), and any fee displayed as included. Optional fees, such as postage when email is free, and payment surcharges are never in it
headline.allIn
allIn: boolean;Description
Whether the channel prices all-in: every mandatory fee is in the amount
headline.amount
amount: number;Description
Integer minor units
Example
2625total#
total: number;Description
What one ticket costs, fees included: render this, with the fee lines, rather than adding anything to unitPrice
Example
2625remaining?#
optional remaining?: {
bucket: "none" | "available" | "limited" | "few" | null;
};Defined in: elements.ts:323
bucket#
bucket: "none" | "available" | "limited" | "few" | null;Description
available: more than 20 percent of the category's capacity and more than 10 left; limited: 20 percent or less; few: 10 or fewer; none. Null when the category has no inventory. Up to one cache lifetime old: the cart decides
Example
limited
@enum {string|null}unlock?#
optional unlock?:
| {
code: boolean;
howTo: {
products: {
currency: string;
id: string;
name: string;
price: number;
}[];
};
tags: {
label: string;
}[];
unlocked: boolean;
visibility: "locked" | "hidden";
}
| null;Defined in: elements.ts:325
Union Members#
Type Literal
{
code: boolean;
howTo: {
products: {
currency: string;
id: string;
name: string;
price: number;
}[];
};
tags: {
label: string;
}[];
unlocked: boolean;
visibility: "locked" | "hidden";
}code
code: boolean;Description
Whether a code valid on this channel could unlock it. Never which. False when the channel withholds unlock hints
Example
truehowTo
howTo: {
products: {
currency: string;
id: string;
name: string;
price: number;
}[];
};howTo.products
products: {
currency: string;
id: string;
name: string;
price: number;
}[];tags
tags: {
label: string;
}[];Description
The tags any one of which unlocks it, by their buyer-facing labels. Empty when the channel withholds unlock hints
unlocked
unlocked: boolean;Description
Whether this buyer has unlocked it
Example
falsevisibility
visibility: "locked" | "hidden";Description
locked: shown with how to unlock it; hidden: shown only once this buyer has unlocked it
Example
locked
@enum {string}null