BackstageClient.orders
BackstageClient.orders in @ticketlayer/backstage.
@ticketlayer/backstage / BackstageClient / orders
orders: {
activateWristband: (orderId: string, slotId: string, request: {
chipType?: string | null;
commandId?: string;
deviceId?: string | null;
uid?: string;
}, requestOptions?: RequestOptions) => Promise<{
activatedAt: string | null;
activation: "immediate" | "on_receipt";
chipType: string | null;
commandId: string | null;
deviceId: string | null;
encodedAt: string;
encodedBy: string | null;
id: string;
mediaType: string | null;
orderId: string;
passId: string;
shipmentId: string | null;
slotId: string;
uid: string;
}>;
addFeeLine: (orderId: string, request: {
amount: number;
earnerPartyId?: string;
kind: | "service"
| "booking"
| "delivery"
| "credential"
| "payment_surcharge"
| "name_change"
| "transfer"
| "reprint";
label: string;
reason: string;
taxCategory?: "non_taxable" | "service" | "goods" | "delivery" | "booking_fee";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
addGiftCard: (orderId: string, request: {
amount?: number;
delivery: {
message?: string | null;
method: "email" | "box_office_print" | "post";
recipientEmail?: string | null;
recipientName?: string | null;
};
productId: string;
}, requestOptions?: RequestOptions) => Promise<{
giftCard: {
accountId: string | null;
balance: number;
book: "live" | "test";
codeIssuedAt: string | null;
codeLast4: string | null;
createdAt: string;
currency: string;
customerId: string | null;
eventId: string | null;
expiresAt: string | null;
expiryPolicy: {
dormancyFee: | {
afterInactiveMonths: number;
amount: number;
}
| null;
jurisdiction: string | null;
minimumMonths: number | null;
months: number | null;
source: "organisation" | "jurisdiction_default";
};
faceValue: number | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
lastActivityAt: string;
ownerType: "customer" | "bearer" | "pass";
recipient: | {
email?: string | null;
message?: string | null;
name?: string | null;
}
| null;
sourceOrderId: string | null;
sourceOrderLineItemId: string | null;
status: "expired" | "active" | "void" | "pending" | "frozen";
updatedAt: string;
};
order: {
id: string;
status: string;
total: number;
};
}>;
addItem: (orderId: string, request: {
description?: string;
feeDetails?: Record<string, any>;
metadata?: Record<string, any>;
name: string;
productDetails?: Record<string, any>;
quantity?: number;
ticketDetails?: Record<string, any>;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
unitPrice: number;
}, requestOptions?: RequestOptions) => Promise<{
item: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
}>;
addNote: (orderId: string, request: {
body: string;
tier?: "internal" | "restricted";
}, requestOptions?: RequestOptions) => Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>;
assignAddOn: (orderId: string, request: {
orderLineItemId: string;
slotId: string;
unitIndex: number;
}, requestOptions?: RequestOptions) => Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>;
cancel: (orderId: string, request: {
reason: string;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
create: (request: {
accountId: string;
channel?: string;
currency?: string;
customerId?: string;
customerNotes?: string;
expiresInMinutes?: number;
internalNotes?: string;
isGuestCheckout?: boolean;
items?: {
description?: string;
feeDetails?: Record<string, any>;
metadata?: Record<string, any>;
name: string;
productDetails?: Record<string, any>;
quantity?: number;
ticketDetails?: Record<string, any>;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
unitPrice: number;
}[];
metadata?: Record<string, any>;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
deleteNote: (orderId: string, noteId: string, requestOptions?: RequestOptions) => Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>;
fulfilment: (orderId: string, requestOptions?: RequestOptions) => Promise<{
orderId: string;
units: {
acceptedAt: string | null;
accountId: string;
attempts: number;
cancelledAt: string | null;
carriesTickets: boolean;
createdAt: string;
deliveredAt: string | null;
events?: {
actor: string | null;
createdAt: string;
detail: | {
[key: ...]: ...;
}
| null;
fromStatus: string | null;
id: string;
kind: string;
toStatus: string | null;
}[];
fulfilledAt: string | null;
holds: {
createdAt: string;
id: string;
note: string | null;
placedBy: string | null;
reason: | "manual"
| "awaiting_payment"
| "awaiting_names"
| "release_date"
| "fraud_review"
| "out_of_stock";
releaseAt: string | null;
releasedAt: string | null;
releasedBy: string | null;
releaseNote: string | null;
}[];
id: string;
isTest: boolean;
items: {
entitlementId: string | null;
fulfilledAt: string | null;
id: string;
orderLineItemId: string | null;
passId: string | null;
slotId: string | null;
status: "cancelled" | "pending" | "fulfilled" | "returned";
storedValueAccountId: string | null;
wristband: boolean;
}[];
kind: "digital" | "physical";
lastError: string | null;
method: | "email"
| "sms"
| "app"
| "exchange"
| "print_now"
| "wallet"
| "box_office_print"
| "post"
| "collect"
| "load_onto_card"
| "print_mail_partner";
nextAttemptAt: string | null;
orderId: string;
outcome: | "exchanged"
| "no_recipient"
| "sent"
| "shown"
| "loaded"
| "printed"
| "dispatched"
| "collected"
| null;
provider: | "print_mail_partner"
| "ticketlayer_email"
| "in_house"
| "managed_fulfilment";
providerReference: string | null;
status: | "failed"
| "cancelled"
| "pending"
| "in_progress"
| "on_hold"
| "fulfilled"
| "delivered";
targetPassId: string | null;
updatedAt: string;
}[];
}>;
get: (orderId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
getByNumber: (orderNumber: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
getHistory: (orderId: string, options?: {
cursor?: string;
limit?: number;
}, requestOptions?: RequestOptions) => Promise<{
history: {
actor: {
id: string | null;
kind: string;
};
at: string;
changes: {
[key: string]: {
from?: unknown;
to?: unknown;
};
};
id: string;
kind: string;
objectId: string;
objectType: string;
redacted: boolean;
requestId: string | null;
version: number | null;
}[];
nextCursor: string | null;
}>;
getPasses: (orderId: string, requestOptions?: RequestOptions) => Promise<{
entitlements: {
createdAt: string;
currency: string | null;
eventOccurrenceId: string | null;
id: string;
name: string;
orderLineItemId: string;
passId: string | null;
redemptionCount: number;
redemptionLimit: number | null;
seatLabel: string | null;
status: string;
ticketTypeId: string | null;
type: string;
unitPrice: number | null;
}[];
passes: {
barcode: string;
createdAt: string;
customerId: string | null;
holderEmail: string | null;
holderName: string | null;
id: string;
issuedAt: string;
status: string;
type: string;
}[];
redemptions: {
createdAt: string;
deviceId: string | null;
entitlementId: string;
id: string;
location: string | null;
passId: string;
redeemedBy: string | null;
rejectionReason: string | null;
reversalReason: string | null;
reversedAt: string | null;
status: string;
}[];
}>;
getPassPdf: (orderId: string, passId: string, requestOptions?: RequestOptions) => Promise<any>;
getPaymentStatus: (orderId: string, requestOptions?: RequestOptions) => Promise<{
amount: number | null;
currency: string | null;
failedAt: string | null;
failureReason: string | null;
paidAt: string | null;
paymentId: string | null;
status: | "succeeded"
| "failed"
| "cancelled"
| "none"
| "pending"
| "processing"
| "requires_action";
}>;
holders: (orderId: string, requestOptions?: RequestOptions) => Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>;
initiatePayment: (orderId: string, request: {
amount?: number;
amountTendered?: number;
locationId?: string;
metadata?: Record<string, any>;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet";
returnUrl?: string;
}, requestOptions?: RequestOptions) => Promise<{
cash: | {
amountDue: number;
amountTendered: number;
changeDue: number;
locationId: string | null;
}
| null;
isZeroValue: boolean;
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
clientSecret: string | null;
currency: string;
externalPaymentId: string | null;
paymentId: string;
status: string;
};
workflowId: string | null;
}>;
list: (options?: {
channel?: string;
cursor?: string;
customerId?: string;
fromDate?: string;
limit?: string;
page?: string;
search?: string;
status?: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
toDate?: string;
updatedSince?: string;
}, requestOptions?: RequestOptions) => Promise<{
orders: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: ...]: ...;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: ...]: ...;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: ...]: ...;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: ...]: ...;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}[];
pagination: {
limit: number;
page: number;
total: number;
totalPages: number;
};
}>;
listNotes: (orderId: string, options?: {
cursor?: string;
limit?: number;
}, requestOptions?: RequestOptions) => Promise<{
nextCursor: string | null;
notes: {
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}[];
}>;
nameHolder: (orderId: string, slotId: string, request: {
email?: string | null;
name: string;
}, requestOptions?: RequestOptions) => Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>;
paymentMethods: (orderId: string, options?: {
surface?: "box_office" | "online";
}, requestOptions?: RequestOptions) => Promise<{
methods: {
available: boolean;
closesAt: string | null;
kind: "processed" | "stored_value" | "recorded";
label: string;
method: | "card"
| "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher"
| "paypal"
| "terminal_card"
| "cash"
| "stored_value";
pending: boolean;
reason: | "closed"
| "not_allowed"
| "wrong_surface"
| "no_processor"
| "not_built"
| null;
}[];
orderId: string;
pendingClosesDaysBefore: number;
pendingExpiryAction: "cancel" | "task";
surface: "box_office" | "online";
}>;
paymentTerms: (orderId: string, requestOptions?: RequestOptions) => Promise<{
amountDue: number;
dueAt: string;
expiryAction: "cancel" | "task";
invoiceNumber: string | null;
method: "bank_transfer" | "cheque" | "invoice";
overdueAt: string | null;
overdueOutcome: "cancelled" | "paid" | "task" | null;
paymentReference: string;
} & Record<string, never>>;
placeAwaitingPayment: (orderId: string, request: {
dueAt?: string;
method: "bank_transfer" | "cheque" | "invoice";
}, requestOptions?: RequestOptions) => Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
terms: {
amountDue: number;
dueAt: string;
expiryAction: "cancel" | "task";
invoiceNumber: string | null;
method: "bank_transfer" | "cheque" | "invoice";
overdueAt: string | null;
overdueOutcome: "cancelled" | "paid" | "task" | null;
paymentReference: string;
};
}>;
printPass: (orderId: string, passId: string, request: {
printerId: string;
type?: "print.ticket" | "print.label" | "print.receipt";
}, requestOptions?: RequestOptions) => Promise<string>;
recordExternalPayment: (orderId: string, request: {
amount?: number;
metadata?: Record<string, any>;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
reference?: string;
}, requestOptions?: RequestOptions) => Promise<{
collection: {
channelId: string;
holderAccountId: string;
ledgerAccount: string;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
reference: string | null;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
currency: string;
externalPaymentId: string;
paymentId: string;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
status: "succeeded";
};
}>;
recordPayment: (orderId: string, request: {
amount?: number;
cashSessionId?: string;
last4?: string;
metadata?: {
[key: string]: unknown;
};
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
receivedAt?: string;
reference?: string;
}, requestOptions?: RequestOptions) => Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
currency: string;
externalPaymentId: string;
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
paymentId: string;
status: "succeeded";
};
recorded: {
amount: number;
holderAccountId: string;
ledgerAccount: string;
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
reference: string | null;
stillDue: number;
};
}>;
removeFeeLine: (orderId: string, lineItemId: string, options?: {
reason?: string;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
removeGiftCard: (orderId: string, storedValueAccountId: string, requestOptions?: RequestOptions) => Promise<{
giftCard: {
accountId: string | null;
balance: number;
book: "live" | "test";
codeIssuedAt: string | null;
codeLast4: string | null;
createdAt: string;
currency: string;
customerId: string | null;
eventId: string | null;
expiresAt: string | null;
expiryPolicy: {
dormancyFee: | {
afterInactiveMonths: number;
amount: number;
}
| null;
jurisdiction: string | null;
minimumMonths: number | null;
months: number | null;
source: "organisation" | "jurisdiction_default";
};
faceValue: number | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
lastActivityAt: string;
ownerType: "customer" | "bearer" | "pass";
recipient: | {
email?: string | null;
message?: string | null;
name?: string | null;
}
| null;
sourceOrderId: string | null;
sourceOrderLineItemId: string | null;
status: "expired" | "active" | "void" | "pending" | "frozen";
updatedAt: string;
};
order: {
id: string;
status: string;
total: number;
};
}>;
removeItem: (orderId: string, itemId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
resendConfirmation: (orderId: string, requestOptions?: RequestOptions) => Promise<{
attachments: number;
messageId?: string;
recipient: string | null;
sent: boolean;
skippedReason?: | "already_sent"
| "no_recipient"
| "not_configured"
| "order_not_confirmed";
}>;
sendNow: (orderId: string, request: {
reason: string;
}, requestOptions?: RequestOptions) => Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
sentBeforePayment: {
amountDue: number;
emailed: boolean;
emailSkippedReason: string | null;
issuedAt: string;
issuedBy: string;
passes: number;
reason: string;
};
}>;
setShipTo: (orderId: string, request: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
orderId: string;
shipTo: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
} & Record<string, never>;
}>;
shipTo: (orderId: string, requestOptions?: RequestOptions) => Promise<{
orderId: string;
shipTo: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
} & Record<string, never>;
}>;
spendStoredValue: (orderId: string, request: {
amount?: number;
code?: string;
storedValueAccountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
order: {
id: string;
paymentStatus: string;
status: string;
stillDue: number;
total: number;
totalPaid: number;
};
payment: {
amount: number;
currency: string;
paymentId: string;
status: "succeeded";
};
storedValue: {
balance: number;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
};
}>;
storedValue: (orderId: string, requestOptions?: RequestOptions) => Promise<{
amountDue: number;
balances: {
accountId: string | null;
balance: number | null;
currency: string;
eventId: string | null;
expiresAt: string | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
spendable: number;
status: "expired" | "active" | "void" | "pending" | "frozen";
}[];
methodAvailable: boolean;
orderId: string;
}>;
transitionStatus: (orderId: string, request: {
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "confirmed"
| "processing";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
update: (orderId: string, request: {
addItems?: {
description?: string;
feeDetails?: Record<string, any>;
metadata?: Record<string, any>;
name: string;
productDetails?: Record<string, any>;
quantity?: number;
ticketDetails?: Record<string, any>;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
unitPrice: number;
}[];
customerId?: string;
customerNotes?: string;
expectedVersion?: number;
extendExpiry?: boolean;
internalNotes?: string;
metadata?: Record<string, any>;
removeItems?: string[];
updateItems?: {
itemId: string;
updates: {
metadata?: Record<string, any>;
quantity?: number;
unitPrice?: number;
};
}[];
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;
updateItem: (orderId: string, itemId: string, request: {
metadata?: Record<string, any>;
quantity?: number;
unitPrice?: number;
}, requestOptions?: RequestOptions) => Promise<{
item: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
}>;
updateNote: (orderId: string, noteId: string, request: {
body?: string;
tier?: "internal" | "restricted";
}, requestOptions?: RequestOptions) => Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>;
validate: (orderId: string, request: {
}, requestOptions?: RequestOptions) => Promise<{
errors: {
code: string;
itemId?: string;
message: string;
}[];
valid: boolean;
}>;
};Defined in: client.ts:5136
Orders methods
activateWristband()#
activateWristband: (orderId: string, slotId: string, request: {
chipType?: string | null;
commandId?: string;
deviceId?: string | null;
uid?: string;
}, requestOptions?: RequestOptions) => Promise<{
activatedAt: string | null;
activation: "immediate" | "on_receipt";
chipType: string | null;
commandId: string | null;
deviceId: string | null;
encodedAt: string;
encodedBy: string | null;
id: string;
mediaType: string | null;
orderId: string;
passId: string;
shipmentId: string | null;
slotId: string;
uid: string;
}>;Activate a holder's posted wristband A wristband posted to wait for activation (encode-and-post with on_receipt) scans only once activated: the holder taps it in the app, or staff at the desk do. Staff give the chip as at every station: the desk reader's commandId, or a typed uid from a reader in keyboard mode. It must be the band sent to this holder. 409 WRISTBAND_ACTIVATION_MISMATCH, WRISTBAND_NOT_AWAITING_ACTIVATION, NFC_READ_UNUSABLE.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
slotId | string | - |
request | { chipType?: string | null; commandId?: string; deviceId?: string | null; uid?: string; } | - |
request.chipType? | string | null | Description With a typed uid; taken from the command with commandId Example NTAG213 |
request.commandId? | string | Description The station reader's completed nfc.read or nfc.encode (a relay command): the UID is taken from its checked result. 409 NFC_READ_UNUSABLE when it is not complete, older than 15 minutes or not an NFC command |
request.deviceId? | string | null | Description The reader that read a typed uid; taken from the command with commandId |
request.uid? | string | Description The chip's UID, hex (4, 7 or 10 bytes; colons and spaces are ignored), from a reader in keyboard mode. Or give commandId Example 04A224B2C35E80 |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
activatedAt: string | null;
activation: "immediate" | "on_receipt";
chipType: string | null;
commandId: string | null;
deviceId: string | null;
encodedAt: string;
encodedBy: string | null;
id: string;
mediaType: string | null;
orderId: string;
passId: string;
shipmentId: string | null;
slotId: string;
uid: string;
}>
Operation Id#
activateHolderWristband
addFeeLine()#
addFeeLine: (orderId: string, request: {
amount: number;
earnerPartyId?: string;
kind: | "service"
| "booking"
| "delivery"
| "credential"
| "payment_surcharge"
| "name_change"
| "transfer"
| "reprint";
label: string;
reason: string;
taxCategory?: "non_taxable" | "service" | "goods" | "delivery" | "booking_fee";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Add a one-off fee line Adds a fee to an unpaid order that its configured fees do not cover: a business surcharge on an event whose surcharges are off (a business buyer may be charged the cost of payment where a consumer may not), a courier, a late booking fee. Recorded with the reason and who added it, in the order's audit log; re-charging the order's fees leaves it alone. Needs orders.add_fee_line on the order's account, which no system role holds below the owners; a person only.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { amount: number; earnerPartyId?: string; kind: | "service" | "booking" | "delivery" | "credential" | "payment_surcharge" | "name_change" | "transfer" | "reprint"; label: string; reason: string; taxCategory?: "non_taxable" | "service" | "goods" | "delivery" | "booking_fee"; } | - |
request.amount | number | Description Integer minor units Example 150 |
request.earnerPartyId? | string | Description Who is owed it: an account of the organisation, or the organisation. Default: as the order's configured fees |
request.kind? | | "service" | "booking" | "delivery" | "credential" | "payment_surcharge" | "name_change" | "transfer" | "reprint" | Description What kind of fee it is, as a fee component would be: booking, service, delivery, payment_surcharge and so on Example payment_surcharge @enum {string} |
request.label? | string | Description What the buyer is shown Example Card payment cost (business) |
request.reason? | string | Example Business purchase on a company card; charged at cost |
request.taxCategory? | "non_taxable" | "service" | "goods" | "delivery" | "booking_fee" | Description What it is taxed as; defaults by kind |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
addOrderFeeLine
addGiftCard()#
addGiftCard: (orderId: string, request: {
amount?: number;
delivery: {
message?: string | null;
method: "email" | "box_office_print" | "post";
recipientEmail?: string | null;
recipientName?: string | null;
};
productId: string;
}, requestOptions?: RequestOptions) => Promise<{
giftCard: {
accountId: string | null;
balance: number;
book: "live" | "test";
codeIssuedAt: string | null;
codeLast4: string | null;
createdAt: string;
currency: string;
customerId: string | null;
eventId: string | null;
expiresAt: string | null;
expiryPolicy: {
dormancyFee: | {
afterInactiveMonths: number;
amount: number;
}
| null;
jurisdiction: string | null;
minimumMonths: number | null;
months: number | null;
source: "organisation" | "jurisdiction_default";
};
faceValue: number | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
lastActivityAt: string;
ownerType: "customer" | "bearer" | "pass";
recipient: | {
email?: string | null;
message?: string | null;
name?: string | null;
}
| null;
sourceOrderId: string | null;
sourceOrderLineItemId: string | null;
status: "expired" | "active" | "void" | "pending" | "frozen";
updatedAt: string;
};
order: {
id: string;
status: string;
total: number;
};
}>;Sell a gift card on an order
Puts a gift card on a pending order that has taken no payment (the box office sells one at the counter, beside tickets or alone): a gift_card line owed to the organisation and a pending card. Paying the order loads the card (the sale credits the organisation's stored-value liability, not revenue); then its code is issued: emailed to its recipient by the fulfilment queue, or minted at the station with POST /stored-value/gift-cards/{id}/issue-code to print. The amount must be one the product sells (GIFT_CARD_AMOUNT_INVALID) and the delivery one it allows (GIFT_CARD_DELIVERY_NOT_ALLOWED). Needs orders.update or orders.create on the order's account and channel.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { amount?: number; delivery: { message?: string | null; method: "email" | "box_office_print" | "post"; recipientEmail?: string | null; recipientName?: string | null; }; productId: string; } | - |
request.amount? | number | Description Minor units: one of the product's amounts, or within its range Example 5000 |
request.delivery? | { message?: string | null; method: "email" | "box_office_print" | "post"; recipientEmail?: string | null; recipientName?: string | null; } | - |
request.delivery.message? | string | null | - |
request.delivery.method? | "email" | "box_office_print" | "post" | - |
request.delivery.recipientEmail? | string | null | Format: email Description Where an emailed card goes; the buyer when left out |
request.delivery.recipientName? | string | null | - |
request.productId? | string | - |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
giftCard: {
accountId: string | null;
balance: number;
book: "live" | "test";
codeIssuedAt: string | null;
codeLast4: string | null;
createdAt: string;
currency: string;
customerId: string | null;
eventId: string | null;
expiresAt: string | null;
expiryPolicy: {
dormancyFee: | {
afterInactiveMonths: number;
amount: number;
}
| null;
jurisdiction: string | null;
minimumMonths: number | null;
months: number | null;
source: "organisation" | "jurisdiction_default";
};
faceValue: number | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
lastActivityAt: string;
ownerType: "customer" | "bearer" | "pass";
recipient: | {
email?: string | null;
message?: string | null;
name?: string | null;
}
| null;
sourceOrderId: string | null;
sourceOrderLineItemId: string | null;
status: "expired" | "active" | "void" | "pending" | "frozen";
updatedAt: string;
};
order: {
id: string;
status: string;
total: number;
};
}>
Operation Id#
addOrderGiftCard
addItem()#
addItem: (orderId: string, request: {
description?: string;
feeDetails?: Record<string, any>;
metadata?: Record<string, any>;
name: string;
productDetails?: Record<string, any>;
quantity?: number;
ticketDetails?: Record<string, any>;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
unitPrice: number;
}, requestOptions?: RequestOptions) => Promise<{
item: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
}>;Add line item Add a line item to an order
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; } |
request.description? | string |
request.feeDetails? | Record<string, any> |
request.metadata? | Record<string, any> |
request.name? | string |
request.productDetails? | Record<string, any> |
request.quantity? | number |
request.ticketDetails? | Record<string, any> |
request.type? | "product" | "ticket" | "addon" | "fee" | "tax" | "discount" |
request.unitPrice? | number |
requestOptions? | RequestOptions |
Returns#
Promise<{
item: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
}>
Operation Id#
addOrderLineItem
addNote()#
addNote: (orderId: string, request: {
body: string;
tier?: "internal" | "restricted";
}, requestOptions?: RequestOptions) => Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>;Add order note Add a staff note to an order, internal by default. Needs the permission to update the order; a restricted note also needs the restricted update permission (403 NOTE_TIER_FORBIDDEN). The note, and every later change to it, is in the order's history.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { body: string; tier?: "internal" | "restricted"; } | - |
request.body | string | Description Markdown Example Comp for the promoter. |
request.tier? | "internal" | "restricted" | Description Default internal Example internal @enum {string} |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>
Operation Id#
createOrderNote
assignAddOn()#
assignAddOn: (orderId: string, request: {
orderLineItemId: string;
slotId: string;
unitIndex: number;
}, requestOptions?: RequestOptions) => Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>;Put an add-on on a holder Assign one unit of an add-on line on this order to a holder, or move it to another: one of this order's holders, or one of the buyer's from an earlier booking for the event. Once issued, the add-on's entitlement moves onto the holder's pass. 409 ADD_ON_HOLDER_MISMATCH (wrong kind of holder, no parent ticket, or someone else's booking), ADD_ON_LIMIT_REACHED, NOT_AN_ADD_ON, ENTITLEMENT_IN_USE (scanned), or PASS_CHANGE_CLOSED (past the pass policy's cutoff).
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { orderLineItemId: string; slotId: string; unitIndex: number; } | - |
request.orderLineItemId | string | Description The add-on line on this order |
request.slotId? | string | Description The holder: one of this order's slots or one of the buyer's from an earlier booking |
request.unitIndex? | number | - |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>
Operation Id#
assignOrderAddOn
cancel()#
cancel: (orderId: string, request: {
reason: string;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Cancel order Cancel an order with a reason. Its passes are cancelled with it, and are refused at the door.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { reason: string; } |
request.reason | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
cancelOrder
create()#
create: (request: {
accountId: string;
channel?: string;
currency?: string;
customerId?: string;
customerNotes?: string;
expiresInMinutes?: number;
internalNotes?: string;
isGuestCheckout?: boolean;
items?: {
description?: string;
feeDetails?: Record<string, any>;
metadata?: Record<string, any>;
name: string;
productDetails?: Record<string, any>;
quantity?: number;
ticketDetails?: Record<string, any>;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
unitPrice: number;
}[];
metadata?: Record<string, any>;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Create order Create a new order with optional line items. A channel secret key (tlsk_) is refused with 403 PRINCIPAL_NOT_ALLOWED: it sells through the cart (POST /cart), which prices from the catalogue and the channel.
Parameters#
| Parameter | Type |
|---|---|
request | { accountId: string; channel?: string; currency?: string; customerId?: string; customerNotes?: string; expiresInMinutes?: number; internalNotes?: string; isGuestCheckout?: boolean; items?: { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[]; metadata?: Record<string, any>; } |
request.accountId | string |
request.channel? | string |
request.currency? | string |
request.customerId? | string |
request.customerNotes? | string |
request.expiresInMinutes? | number |
request.internalNotes? | string |
request.isGuestCheckout? | boolean |
request.items? | { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[] |
request.metadata? | Record<string, any> |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
createOrder
deleteNote()#
deleteNote: (orderId: string, noteId: string, requestOptions?: RequestOptions) => Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>;Delete order note Delete a note. Its author only (403 NOTE_AUTHOR_ONLY). It leaves the list; the order's history keeps what it said.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
noteId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>
Operation Id#
deleteOrderNote
fulfilment()#
fulfilment: (orderId: string, requestOptions?: RequestOptions) => Promise<{
orderId: string;
units: {
acceptedAt: string | null;
accountId: string;
attempts: number;
cancelledAt: string | null;
carriesTickets: boolean;
createdAt: string;
deliveredAt: string | null;
events?: {
actor: string | null;
createdAt: string;
detail: | {
[key: ...]: ...;
}
| null;
fromStatus: string | null;
id: string;
kind: string;
toStatus: string | null;
}[];
fulfilledAt: string | null;
holds: {
createdAt: string;
id: string;
note: string | null;
placedBy: string | null;
reason: | "manual"
| "awaiting_payment"
| "awaiting_names"
| "release_date"
| "fraud_review"
| "out_of_stock";
releaseAt: string | null;
releasedAt: string | null;
releasedBy: string | null;
releaseNote: string | null;
}[];
id: string;
isTest: boolean;
items: {
entitlementId: string | null;
fulfilledAt: string | null;
id: string;
orderLineItemId: string | null;
passId: string | null;
slotId: string | null;
status: "cancelled" | "pending" | "fulfilled" | "returned";
storedValueAccountId: string | null;
wristband: boolean;
}[];
kind: "digital" | "physical";
lastError: string | null;
method: | "email"
| "sms"
| "app"
| "exchange"
| "print_now"
| "wallet"
| "box_office_print"
| "post"
| "collect"
| "load_onto_card"
| "print_mail_partner";
nextAttemptAt: string | null;
orderId: string;
outcome: | "exchanged"
| "no_recipient"
| "sent"
| "shown"
| "loaded"
| "printed"
| "dispatched"
| "collected"
| null;
provider: | "print_mail_partner"
| "ticketlayer_email"
| "in_house"
| "managed_fulfilment";
providerReference: string | null;
status: | "failed"
| "cancelled"
| "pending"
| "in_progress"
| "on_hold"
| "fulfilled"
| "delivered";
targetPassId: string | null;
updatedAt: string;
}[];
}>;How an order is being delivered The order's fulfilment units, one per delivery method: the email (its confirmation, carrying the tickets when they go digitally) and the chosen method's unit. Each with its provider, status and outcome, its items (one per entitlement, each with its own status), its holds (awaiting payment until the order is paid) and its history.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
orderId: string;
units: {
acceptedAt: string | null;
accountId: string;
attempts: number;
cancelledAt: string | null;
carriesTickets: boolean;
createdAt: string;
deliveredAt: string | null;
events?: {
actor: string | null;
createdAt: string;
detail: | {
[key: ...]: ...;
}
| null;
fromStatus: string | null;
id: string;
kind: string;
toStatus: string | null;
}[];
fulfilledAt: string | null;
holds: {
createdAt: string;
id: string;
note: string | null;
placedBy: string | null;
reason: | "manual"
| "awaiting_payment"
| "awaiting_names"
| "release_date"
| "fraud_review"
| "out_of_stock";
releaseAt: string | null;
releasedAt: string | null;
releasedBy: string | null;
releaseNote: string | null;
}[];
id: string;
isTest: boolean;
items: {
entitlementId: string | null;
fulfilledAt: string | null;
id: string;
orderLineItemId: string | null;
passId: string | null;
slotId: string | null;
status: "cancelled" | "pending" | "fulfilled" | "returned";
storedValueAccountId: string | null;
wristband: boolean;
}[];
kind: "digital" | "physical";
lastError: string | null;
method: | "email"
| "sms"
| "app"
| "exchange"
| "print_now"
| "wallet"
| "box_office_print"
| "post"
| "collect"
| "load_onto_card"
| "print_mail_partner";
nextAttemptAt: string | null;
orderId: string;
outcome: | "exchanged"
| "no_recipient"
| "sent"
| "shown"
| "loaded"
| "printed"
| "dispatched"
| "collected"
| null;
provider: | "print_mail_partner"
| "ticketlayer_email"
| "in_house"
| "managed_fulfilment";
providerReference: string | null;
status: | "failed"
| "cancelled"
| "pending"
| "in_progress"
| "on_hold"
| "fulfilled"
| "delivered";
targetPassId: string | null;
updatedAt: string;
}[];
}>
Operation Id#
getOrderFulfilment
get()#
get: (orderId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Get order Get a specific order by ID
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
getOrder
getByNumber()#
getByNumber: (orderNumber: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Get order by number Get a specific order by order number
Parameters#
| Parameter | Type |
|---|---|
orderNumber | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
getOrderByNumber
getHistory()#
getHistory: (orderId: string, options?: {
cursor?: string;
limit?: number;
}, requestOptions?: RequestOptions) => Promise<{
history: {
actor: {
id: string | null;
kind: string;
};
at: string;
changes: {
[key: string]: {
from?: unknown;
to?: unknown;
};
};
id: string;
kind: string;
objectId: string;
objectType: string;
redacted: boolean;
requestId: string | null;
version: number | null;
}[];
nextCursor: string | null;
}>;Get order history Every change to an order: who made it (a person, a key, an app or the system), when, from which request, and each field from and to. Newest first. Each change shows only the fields the caller may read: a change to a field above their tier is not shown, and a change made only to such fields is left out. Paged by cursor.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
options? | { cursor?: string; limit?: number; } |
options.cursor? | string |
options.limit? | number |
requestOptions? | RequestOptions |
Returns#
Promise<{
history: {
actor: {
id: string | null;
kind: string;
};
at: string;
changes: {
[key: string]: {
from?: unknown;
to?: unknown;
};
};
id: string;
kind: string;
objectId: string;
objectType: string;
redacted: boolean;
requestId: string | null;
version: number | null;
}[];
nextCursor: string | null;
}>
Operation Id#
getOrderHistory
getPasses()#
getPasses: (orderId: string, requestOptions?: RequestOptions) => Promise<{
entitlements: {
createdAt: string;
currency: string | null;
eventOccurrenceId: string | null;
id: string;
name: string;
orderLineItemId: string;
passId: string | null;
redemptionCount: number;
redemptionLimit: number | null;
seatLabel: string | null;
status: string;
ticketTypeId: string | null;
type: string;
unitPrice: number | null;
}[];
passes: {
barcode: string;
createdAt: string;
customerId: string | null;
holderEmail: string | null;
holderName: string | null;
id: string;
issuedAt: string;
status: string;
type: string;
}[];
redemptions: {
createdAt: string;
deviceId: string | null;
entitlementId: string;
id: string;
location: string | null;
passId: string;
redeemedBy: string | null;
rejectionReason: string | null;
reversalReason: string | null;
reversedAt: string | null;
status: string;
}[];
}>;Get order passes List the passes, entitlements and redemptions issued for an order (the order's tickets). Staff surface - includes the redemption barcode.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
entitlements: {
createdAt: string;
currency: string | null;
eventOccurrenceId: string | null;
id: string;
name: string;
orderLineItemId: string;
passId: string | null;
redemptionCount: number;
redemptionLimit: number | null;
seatLabel: string | null;
status: string;
ticketTypeId: string | null;
type: string;
unitPrice: number | null;
}[];
passes: {
barcode: string;
createdAt: string;
customerId: string | null;
holderEmail: string | null;
holderName: string | null;
id: string;
issuedAt: string;
status: string;
type: string;
}[];
redemptions: {
createdAt: string;
deviceId: string | null;
entitlementId: string;
id: string;
location: string | null;
passId: string;
redeemedBy: string | null;
rejectionReason: string | null;
reversalReason: string | null;
reversedAt: string | null;
status: string;
}[];
}>
Operation Id#
getOrderPasses
getPassPdf()#
getPassPdf: (orderId: string, passId: string, requestOptions?: RequestOptions) => Promise<any>;Download a pass as a PDF ticket Render and stream a single pass as a PDF ticket (application/pdf). Staff surface; browsers fetch this directly rather than through the typed SDK.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
passId | string |
requestOptions? | RequestOptions |
Returns#
Promise<any>
Operation Id#
getOrderPassPdf
getPaymentStatus()#
getPaymentStatus: (orderId: string, requestOptions?: RequestOptions) => Promise<{
amount: number | null;
currency: string | null;
failedAt: string | null;
failureReason: string | null;
paidAt: string | null;
paymentId: string | null;
status: | "succeeded"
| "failed"
| "cancelled"
| "none"
| "pending"
| "processing"
| "requires_action";
}>;Get payment status Get the current payment status for an order
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
amount: number | null;
currency: string | null;
failedAt: string | null;
failureReason: string | null;
paidAt: string | null;
paymentId: string | null;
status: | "succeeded"
| "failed"
| "cancelled"
| "none"
| "pending"
| "processing"
| "requires_action";
}>
Operation Id#
getOrderPaymentStatus
holders()#
holders: (orderId: string, requestOptions?: RequestOptions) => Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>;An order's holders and add-ons Who each unit is for: one holder slot per unit of a ticket type that creates a holder (a person, vehicle or group), "Guest 1" until named, with its per-holder pass once issued and the add-ons on it (from this order, or a later one of the buyer's). Add-ons not yet on a holder are listed with the holders they can go to.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>
Operation Id#
getOrderHolders
initiatePayment()#
initiatePayment: (orderId: string, request: {
amount?: number;
amountTendered?: number;
locationId?: string;
metadata?: Record<string, any>;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque"
| "online_bank_transfer"
| "online_wallet";
returnUrl?: string;
}, requestOptions?: RequestOptions) => Promise<{
cash: | {
amountDue: number;
amountTendered: number;
changeDue: number;
locationId: string | null;
}
| null;
isZeroValue: boolean;
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
clientSecret: string | null;
currency: string;
externalPaymentId: string | null;
paymentId: string;
status: string;
};
workflowId: string | null;
}>;Initiate payment Initiate payment for an order. The amount is the order's total, never the caller's. Needs orders.update, or orders.pay: the narrow permission that takes payment for an order and does nothing else (it cannot cancel the order, change its status or refund it). A channel secret key holds orders.pay for its own channel's orders.
Cash (in_person_cash) is taken and settled here, at once: send amountTendered (what the buyer handed over) and, at a box office, the locationId whose till drawer the cash goes into. The payment is recorded captured for the amount due, the order is paid and confirmed, and the sale is posted to the ledger with the cash in the drawer, all in one transaction; the answer carries cash.changeDue. Less tendered than is due is refused with CASH_TENDER_INSUFFICIENT and nothing is recorded. The account's cash payment provider is created the first time it takes cash. Retry with the same Idempotency-Key to get the first answer back without taking the cash twice.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { amount?: number; amountTendered?: number; locationId?: string; metadata?: Record<string, any>; paymentMethod: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet"; returnUrl?: string; } |
request.amount? | number |
request.amountTendered? | number |
request.locationId? | string |
request.metadata? | Record<string, any> |
request.paymentMethod? | | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet" |
request.returnUrl? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
cash: | {
amountDue: number;
amountTendered: number;
changeDue: number;
locationId: string | null;
}
| null;
isZeroValue: boolean;
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
clientSecret: string | null;
currency: string;
externalPaymentId: string | null;
paymentId: string;
status: string;
};
workflowId: string | null;
}>
Operation Id#
initiateOrderPayment
list()#
list: (options?: {
channel?: string;
cursor?: string;
customerId?: string;
fromDate?: string;
limit?: string;
page?: string;
search?: string;
status?: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
toDate?: string;
updatedSince?: string;
}, requestOptions?: RequestOptions) => Promise<{
orders: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: ...]: ...;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: ...]: ...;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: ...]: ...;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: ...]: ...;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}[];
pagination: {
limit: number;
page: number;
total: number;
totalPages: number;
};
}>;List orders List all orders with optional filtering and pagination. Each order carries the fields the caller's access tiers reach: orders.read for its account shows every documented field, and orders.list alone shows only public fields, which an order has none of.
Parameters#
| Parameter | Type |
|---|---|
options? | { channel?: string; cursor?: string; customerId?: string; fromDate?: string; limit?: string; page?: string; search?: string; status?: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; toDate?: string; updatedSince?: string; } |
options.channel? | string |
options.cursor? | string |
options.customerId? | string |
options.fromDate? | string |
options.limit? | string |
options.page? | string |
options.search? | string |
options.status? | | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing" |
options.toDate? | string |
options.updatedSince? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
orders: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: ...]: ...;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: ...]: ...;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: ...]: ...;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: ...]: ...;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}[];
pagination: {
limit: number;
page: number;
total: number;
totalPages: number;
};
}>
Operation Id#
listOrders
listNotes()#
listNotes: (orderId: string, options?: {
cursor?: string;
limit?: number;
}, requestOptions?: RequestOptions) => Promise<{
nextCursor: string | null;
notes: {
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}[];
}>;List order notes The staff notes on an order, newest first, at the tiers the caller reads: internal notes to whoever reads the order, restricted ones only with the restricted permission. Paged by cursor.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
options? | { cursor?: string; limit?: number; } |
options.cursor? | string |
options.limit? | number |
requestOptions? | RequestOptions |
Returns#
Promise<{
nextCursor: string | null;
notes: {
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}[];
}>
Operation Id#
listOrderNotes
nameHolder()#
nameHolder: (orderId: string, slotId: string, request: {
email?: string | null;
name: string;
}, requestOptions?: RequestOptions) => Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>;Name a holder Put a name (and optionally an email) on one of the order's holder slots. Before the order is issued the slot takes it; after, the holder's pass is named or renamed under the event's pass policy, as POST /passes/{passId}/name does: 409 PASS_FROZEN once scanned, activated or posted, PASS_CHANGE_NOT_ALLOWED, PASS_CHANGE_LIMIT_REACHED or PASS_CHANGE_CLOSED.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
slotId | string | - |
request | { email?: string | null; name: string; } | - |
request.email? | string | null | Format: email |
request.name? | string | - |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
bookingPasses: {
eventId: string | null;
passId: string;
status: string;
}[];
orderId: string;
slots: {
eventId: string;
holder: {
email: string | null;
id: string;
name: string | null;
};
id: string;
items: {
eligibleSlotIds: string[] | null;
entitlementId: string | null;
orderId: string;
orderLineItemId: string;
passId: string | null;
role: "holder" | "add_on";
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
kind: "person" | "vehicle" | "group";
label: string;
mediaType: string | null;
naming: {
changesCloseAt: string | null;
maxNameChanges: number | null;
nameChangesAllowed: boolean;
namesCloseAt: string | null;
policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
required: boolean;
transfersAllowed: boolean;
};
orderId: string;
passId: string | null;
position: number;
wristband: {
activeAt: string | null;
method: string | null;
shipmentId: string | null;
state: | "active"
| "none"
| "to_exchange"
| "to_post"
| "to_collect"
| "posted_pending_activation";
uid: string | null;
};
}[];
unassigned: {
eligibleSlotIds: string[];
entitlementId: string | null;
orderLineItemId: string;
passId: string | null;
ticketTypeId: string;
ticketTypeName: string | null;
unitIndex: number;
}[];
}>
Operation Id#
nameOrderHolder
paymentMethods()#
paymentMethods: (orderId: string, options?: {
surface?: "box_office" | "online";
}, requestOptions?: RequestOptions) => Promise<{
methods: {
available: boolean;
closesAt: string | null;
kind: "processed" | "stored_value" | "recorded";
label: string;
method: | "card"
| "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher"
| "paypal"
| "terminal_card"
| "cash"
| "stored_value";
pending: boolean;
reason: | "closed"
| "not_allowed"
| "wrong_surface"
| "no_processor"
| "not_built"
| null;
}[];
orderId: string;
pendingClosesDaysBefore: number;
pendingExpiryAction: "cancel" | "task";
surface: "box_office" | "online";
}>;What an order can be paid with Every method in the payment method catalogue, and whether this order can be paid with it here: the organisation's, the channel's account's, the channel's and each event's policies narrowed together, what the organisation's processors can take (card online; a terminal when the account has a reader), the surface, and for bank transfer, cheque and invoice how close the first event is. Each method that cannot be used says why, and is still listed. Invoice and bank transfer are staff-only: a channel key or an embed session, acting for a buyer, never sees them.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
options? | { surface?: "box_office" | "online"; } |
options.surface? | "box_office" | "online" |
requestOptions? | RequestOptions |
Returns#
Promise<{
methods: {
available: boolean;
closesAt: string | null;
kind: "processed" | "stored_value" | "recorded";
label: string;
method: | "card"
| "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher"
| "paypal"
| "terminal_card"
| "cash"
| "stored_value";
pending: boolean;
reason: | "closed"
| "not_allowed"
| "wrong_surface"
| "no_processor"
| "not_built"
| null;
}[];
orderId: string;
pendingClosesDaysBefore: number;
pendingExpiryAction: "cancel" | "task";
surface: "box_office" | "online";
}>
Operation Id#
getOrderPaymentMethods
paymentTerms()#
paymentTerms: (orderId: string, requestOptions?: RequestOptions) => Promise<{
amountDue: number;
dueAt: string;
expiryAction: "cancel" | "task";
invoiceNumber: string | null;
method: "bank_transfer" | "cheque" | "invoice";
overdueAt: string | null;
overdueOutcome: "cancelled" | "paid" | "task" | null;
paymentReference: string;
} & Record<string, never>>;Get the terms of an order awaiting payment The method, due date, expiry action, invoice number and payment reference an order was placed awaiting payment on, what it still owes, and what the due-date sweep did once past due. Null for an order never placed awaiting payment.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
amountDue: number;
dueAt: string;
expiryAction: "cancel" | "task";
invoiceNumber: string | null;
method: "bank_transfer" | "cheque" | "invoice";
overdueAt: string | null;
overdueOutcome: "cancelled" | "paid" | "task" | null;
paymentReference: string;
} & Record<string, never>>
Operation Id#
getOrderPaymentTerms
placeAwaitingPayment()#
placeAwaitingPayment: (orderId: string, request: {
dueAt?: string;
method: "bank_transfer" | "cheque" | "invoice";
}, requestOptions?: RequestOptions) => Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
terms: {
amountDue: number;
dueAt: string;
expiryAction: "cancel" | "task";
invoiceNumber: string | null;
method: "bank_transfer" | "cheque" | "invoice";
overdueAt: string | null;
overdueOutcome: "cancelled" | "paid" | "task" | null;
paymentReference: string;
};
}>;Place an order awaiting payment
Places a pending order on a pending method - bank transfer, cheque or invoice - with a due date. The order moves to awaiting_payment, its seats are held to the due date, and nothing is issued: its tickets issue when recorded payments (POST /orders/{orderId}/recorded-payments) bring it to its total, or earlier only if staff send them now.
The method must be on offer for the order (PAYMENT_METHOD_NOT_AVAILABLE otherwise), which includes not being past its close before the event, 7 days by default. If the due date passes unpaid, the order's policy decides: cancelled and its seats released, or a task raised for staff; an order with money already paid always gets a task. An invoice gets an invoice number; its document comes with tax documents. Needs orders.update or orders.pay on the order's account and channel.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { dueAt?: string; method: "bank_transfer" | "cheque" | "invoice"; } | - |
request.dueAt? | string | Format: date-time Description When the money is due. Left out: 14 days from now, or when the method closes before the event (7 days before it by default) if that is sooner. It cannot be later than that close. Example 2026-10-16T17:00:00Z |
request.method? | "bank_transfer" | "cheque" | "invoice" | Description The pending method the buyer will pay by. It must be on offer for the order now (GET /orders/{orderId}/payment-methods). Example bank_transfer @enum {string} |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
terms: {
amountDue: number;
dueAt: string;
expiryAction: "cancel" | "task";
invoiceNumber: string | null;
method: "bank_transfer" | "cheque" | "invoice";
overdueAt: string | null;
overdueOutcome: "cancelled" | "paid" | "task" | null;
paymentReference: string;
};
}>
Operation Id#
placeOrderAwaitingPayment
printPass()#
printPass: (orderId: string, passId: string, request: {
printerId: string;
type?: "print.ticket" | "print.label" | "print.receipt";
}, requestOptions?: RequestOptions) => Promise<string>;Print a pass to a device Render the pass to its canonical SVG and dispatch it as a print job to a printer device. Returns the device command id (poll the devices command for status).
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
passId | string |
request | { printerId: string; type?: "print.ticket" | "print.label" | "print.receipt"; } |
request.printerId | string |
request.type? | "print.ticket" | "print.label" | "print.receipt" |
requestOptions? | RequestOptions |
Returns#
Promise<string>
Operation Id#
printPass
recordExternalPayment()#
recordExternalPayment: (orderId: string, request: {
amount?: number;
metadata?: Record<string, any>;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
reference?: string;
}, requestOptions?: RequestOptions) => Promise<{
collection: {
channelId: string;
holderAccountId: string;
ledgerAccount: string;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
reference: string | null;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
currency: string;
externalPaymentId: string;
paymentId: string;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
status: "succeeded";
};
}>;Record payment the channel collected itself Records that the order's channel took the buyer's money itself - cash at its counter, a card on its own terminal, a card through its own payment provider, a bank transfer or a cheque to it - for the amount the order owes. The payment records the real method; the order is paid and confirmed and its tickets issue, in one transaction. Nothing is charged and no payment provider is involved.
The channel's owning account HOLDS the money, so the ledger records it in that account's own Cash and the sale makes it owe the event owner the face value and each fee earner its fee (Party:{holder}:Payable:{party}, mirrored by the party's Receivable), until it settles with POST /ledger/settlements. A refund of the order reduces what it owes.
The channel must opt in: its externalCollection setting must be enabled and list the method (EXTERNAL_COLLECTION_NOT_ENABLED, EXTERNAL_COLLECTION_METHOD_NOT_ALLOWED otherwise). Needs orders.update or orders.pay on the order's account and channel, so a channel secret key (tlsk_) records for its own channel's orders; a person, an organisation API key and a channel secret key may call it, an embed session may not, and a publishable key (tlpk_) never reaches the Backstage API. Retry with the same Idempotency-Key to get the first answer back without recording the payment twice.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { amount?: number; metadata?: Record<string, any>; paymentMethod: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque"; reference?: string; } |
request.amount? | number |
request.metadata? | Record<string, any> |
request.paymentMethod? | | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" |
request.reference? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
collection: {
channelId: string;
holderAccountId: string;
ledgerAccount: string;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
reference: string | null;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
currency: string;
externalPaymentId: string;
paymentId: string;
paymentMethod: | "in_person_cash"
| "in_person_card"
| "online_card"
| "bank_transfer"
| "cheque";
status: "succeeded";
};
}>
Operation Id#
recordExternalOrderPayment
recordPayment()#
recordPayment: (orderId: string, request: {
amount?: number;
cashSessionId?: string;
last4?: string;
metadata?: {
[key: string]: unknown;
};
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
receivedAt?: string;
reference?: string;
}, requestOptions?: RequestOptions) => Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
currency: string;
externalPaymentId: string;
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
paymentId: string;
status: "succeeded";
};
recorded: {
amount: number;
holderAccountId: string;
ledgerAccount: string;
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
reference: string | null;
stillDue: number;
};
}>;Record a payment staff received
Records money the processing channel's account received in a way Ticketlayer did not see: a card machine it does not talk to, a bank transfer, a cheque, an invoice paid, a paper voucher, or anything else with a reference. The account holds it, so the ledger records it in that account's own Cash and the sale makes it owe the event owner and each fee earner until it settles.
It may pay part of what is due (split tender, an invoice paid in instalments): the order is partially_paid until its payments reach its total, and is confirmed, its tickets issued, only then. The method must be one the order's organisation, account, channel and events allow (PAYMENT_METHOD_NOT_AVAILABLE otherwise); a pending method past its close before the event can still be recorded, because the money has arrived. Cash at a till is POST /orders/{orderId}/payment instead. Needs orders.update or orders.pay on the order's account and channel. Retry with the same Idempotency-Key to get the first answer back without recording the payment twice.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { amount?: number; cashSessionId?: string; last4?: string; metadata?: { [key: string]: unknown; }; method: | "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher"; receivedAt?: string; reference?: string; } | - |
request.amount? | number | Description Integer minor units: how much of the amount due this pays. Left out, everything still due. Part of it (split tender, an invoice paid in instalments) leaves the order partially_paid; it is confirmed, and its tickets issued, when its payments reach its total. More than is due is refused (PAYMENT_AMOUNT_INVALID). Example 3000 |
request.cashSessionId? | string | Description A card machine payment taken at a till: the drawer's open cash session, so the machine's batch total is checked against it at close. Example csn_7Kq2mZ9xLp3RtV8wYb1c |
request.last4? | string | Description A card machine payment: the card's last four digits, as on the receipt. Example 1881 |
request.metadata? | { [key: string]: unknown; } | - |
request.method? | | "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher" | Description How the processing channel's account received the money: a card machine Ticketlayer does not talk to (manual_card), a bank transfer, a cheque, an invoice paid, a paper voucher, or anything else (other, with a reference). Cash at a till is taken with POST /orders/{orderId}/payment instead, into a drawer. Example bank_transfer @enum {string} |
request.receivedAt? | string | Format: date-time Description When the money arrived, when it is recorded later (a transfer seen on a statement). Left out, now. Example 2026-10-05T09:00:00Z |
request.reference? | string | Description The bank reference, cheque number, card machine receipt or authorisation code, voucher code: what finds this money again. Example TL-48213 RIVERSIDE SCH |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
payment: {
amount: number;
currency: string;
externalPaymentId: string;
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
paymentId: string;
status: "succeeded";
};
recorded: {
amount: number;
holderAccountId: string;
ledgerAccount: string;
method: | "other"
| "bank_transfer"
| "cheque"
| "manual_card"
| "invoice"
| "voucher";
reference: string | null;
stillDue: number;
};
}>
Operation Id#
recordOrderPayment
removeFeeLine()#
removeFeeLine: (orderId: string, lineItemId: string, options?: {
reason?: string;
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Remove a one-off fee line
Removes a manual fee line from an unpaid order, recorded in its audit log with the optional reason. Only a manual fee line: configured fees follow the order. Needs orders.add_fee_line on the order's account.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
lineItemId | string |
options? | { reason?: string; } |
options.reason? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
removeOrderFeeLine
removeGiftCard()#
removeGiftCard: (orderId: string, storedValueAccountId: string, requestOptions?: RequestOptions) => Promise<{
giftCard: {
accountId: string | null;
balance: number;
book: "live" | "test";
codeIssuedAt: string | null;
codeLast4: string | null;
createdAt: string;
currency: string;
customerId: string | null;
eventId: string | null;
expiresAt: string | null;
expiryPolicy: {
dormancyFee: | {
afterInactiveMonths: number;
amount: number;
}
| null;
jurisdiction: string | null;
minimumMonths: number | null;
months: number | null;
source: "organisation" | "jurisdiction_default";
};
faceValue: number | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
lastActivityAt: string;
ownerType: "customer" | "bearer" | "pass";
recipient: | {
email?: string | null;
message?: string | null;
name?: string | null;
}
| null;
sourceOrderId: string | null;
sourceOrderLineItemId: string | null;
status: "expired" | "active" | "void" | "pending" | "frozen";
updatedAt: string;
};
order: {
id: string;
status: string;
total: number;
};
}>;Take a gift card off an unpaid order Removes a gift card from an order that is unpaid - pending or awaiting payment, with no payment taken - while the card has no code and nothing on it: its line goes, the card is voided and the order's total follows. Anything else is refused (GIFT_CARD_NOT_REMOVABLE): a paid order is refunded instead, and a card issued or spent stays. Needs orders.update or orders.create on the order's account and channel.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
storedValueAccountId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
giftCard: {
accountId: string | null;
balance: number;
book: "live" | "test";
codeIssuedAt: string | null;
codeLast4: string | null;
createdAt: string;
currency: string;
customerId: string | null;
eventId: string | null;
expiresAt: string | null;
expiryPolicy: {
dormancyFee: | {
afterInactiveMonths: number;
amount: number;
}
| null;
jurisdiction: string | null;
minimumMonths: number | null;
months: number | null;
source: "organisation" | "jurisdiction_default";
};
faceValue: number | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
lastActivityAt: string;
ownerType: "customer" | "bearer" | "pass";
recipient: | {
email?: string | null;
message?: string | null;
name?: string | null;
}
| null;
sourceOrderId: string | null;
sourceOrderLineItemId: string | null;
status: "expired" | "active" | "void" | "pending" | "frozen";
updatedAt: string;
};
order: {
id: string;
status: string;
total: number;
};
}>
Operation Id#
removeOrderGiftCard
removeItem()#
removeItem: (orderId: string, itemId: string, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Remove line item Remove a line item from an order
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
itemId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
removeOrderLineItem
resendConfirmation()#
resendConfirmation: (orderId: string, requestOptions?: RequestOptions) => Promise<{
attachments: number;
messageId?: string;
recipient: string | null;
sent: boolean;
skippedReason?: | "already_sent"
| "no_recipient"
| "not_configured"
| "order_not_confirmed";
}>;Resend order confirmation email Resend the buyer's confirmation email for a confirmed order, with the ticket PDFs attached and a link to the hosted confirmation page. Bypasses the once-per-order send marker. Staff surface.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
attachments: number;
messageId?: string;
recipient: string | null;
sent: boolean;
skippedReason?: | "already_sent"
| "no_recipient"
| "not_configured"
| "order_not_confirmed";
}>
Operation Id#
resendOrderConfirmation
sendNow()#
sendNow: (orderId: string, request: {
reason: string;
}, requestOptions?: RequestOptions) => Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
sentBeforePayment: {
amountDue: number;
emailed: boolean;
emailSkippedReason: string | null;
issuedAt: string;
issuedBy: string;
passes: number;
reason: string;
};
}>;Send tickets before payment Issues an unpaid order's tickets now and emails them: the one exception to tickets being issued when an order is paid, for a customer whose bank transfer or invoice is on its way. The order stays pending or awaiting payment and nothing about its money changes; who sent them, why and what was still owed are recorded on the order. Sending again resends nothing new: the passes already exist and the email went once. Digital passes only: the e-tickets go now, and physical fulfilment (post, a print at the box office, wristbands) still waits for payment. Needs orders.send_before_payment on the order's account, which no system role holds but owners and platform admins.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { reason: string; } | - |
request.reason | string | Description Why the tickets go before the money: recorded with who sent them, on the order. Example School: purchase order 4471 received |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
sentBeforePayment: {
amountDue: number;
emailed: boolean;
emailSkippedReason: string | null;
issuedAt: string;
issuedBy: string;
passes: number;
reason: string;
};
}>
Operation Id#
sendOrderBeforePayment
setShipTo()#
setShipTo: (orderId: string, request: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
orderId: string;
shipTo: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
} & Record<string, never>;
}>;Set an order's ship-to address Set or correct where the order is posted. Parcels still being packed take the new address; once one has been dispatched the address is fixed (409 SHIPMENT_ALREADY_DISPATCHED).
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { city: string; country: string; line1: string; line2?: string | null; name: string; phone?: string | null; postalCode: string; region?: string | null; } | - |
request.city | string | Example London |
request.country? | string | Description ISO 3166 alpha-2 Example GB |
request.line1? | string | Example 12 St James Square |
request.line2? | string | null | - |
request.name? | string | Example Ada Lovelace |
request.phone? | string | null | - |
request.postalCode? | string | Example SW1Y 4JH |
request.region? | string | null | - |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
orderId: string;
shipTo: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
} & Record<string, never>;
}>
Operation Id#
setOrderShipTo
shipTo()#
shipTo: (orderId: string, requestOptions?: RequestOptions) => Promise<{
orderId: string;
shipTo: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
} & Record<string, never>;
}>;An order's ship-to address Where a physical method sends the order: captured with the cart's choices and copied at checkout, or set by staff. Null when none was given.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
orderId: string;
shipTo: {
city: string;
country: string;
line1: string;
line2?: string | null;
name: string;
phone?: string | null;
postalCode: string;
region?: string | null;
} & Record<string, never>;
}>
Operation Id#
getOrderShipTo
spendStoredValue()#
spendStoredValue: (orderId: string, request: {
amount?: number;
code?: string;
storedValueAccountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
order: {
id: string;
paymentStatus: string;
status: string;
stillDue: number;
total: number;
totalPaid: number;
};
payment: {
amount: number;
currency: string;
paymentId: string;
status: "succeeded";
};
storedValue: {
balance: number;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
};
}>;Pay with a gift card or account credit
Spends a balance on the order: a payment of method stored_value whose holder is the organisation's liability for the instrument. It may pay all or part of what is due and splits with any other tender (the rest by card, cash or anything else), the order being partially_paid until its payments reach its total and confirmed then. Left without an amount it takes as much as the balance and the order allow.
A balance is spent only within the organisation that issued it (STORED_VALUE_OTHER_ORGANISATION, never a setting); it must be active and unexpired (STORED_VALUE_NOT_ACTIVE, whose state says why), in the order's currency and book, on its own account's orders and its own event's lines when narrowed (STORED_VALUE_NOT_SPENDABLE_HERE), with enough on it (STORED_VALUE_INSUFFICIENT); account credit only on its own customer's order (STORED_VALUE_WRONG_CUSTOMER). The order's payment method policies must allow stored_value. Needs orders.update or orders.pay on the order's account and channel. Send an Idempotency-Key: a till that loses the response resends with the same key and gets the first payment back, and the balance is spent once.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
request | { amount?: number; code?: string; storedValueAccountId?: string; } | - |
request.amount? | number | Description Minor units. Left out: as much as the balance and the order allow. Example 3000 |
request.code? | string | Description A gift card's code, as printed or emailed (with or without the hyphens) Example 7KQ2-MZ9X-LP3R-TV8W |
request.storedValueAccountId? | string | Description The balance to spend: the customer's account credit (from their balances) Example sva_7Kq2mZ9xLp3RtV8wYb1c |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
order: {
id: string;
paymentStatus: string;
status: string;
stillDue: number;
total: number;
totalPaid: number;
};
payment: {
amount: number;
currency: string;
paymentId: string;
status: "succeeded";
};
storedValue: {
balance: number;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
};
}>
Operation Id#
spendOrderStoredValue
storedValue()#
storedValue: (orderId: string, requestOptions?: RequestOptions) => Promise<{
amountDue: number;
balances: {
accountId: string | null;
balance: number | null;
currency: string;
eventId: string | null;
expiresAt: string | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
spendable: number;
status: "expired" | "active" | "void" | "pending" | "frozen";
}[];
methodAvailable: boolean;
orderId: string;
}>;The customer's credit that can pay this order
For the till: the order's customer's account credit that could be spent on this order now - each balance that passes every rule a spend checks (the closed loop, active and unexpired, currency, book, narrowing), with what is on it and what it can pay of what is due. Only what can pay this order, so reading the order is enough (orders.read on its account and channel); the customer's balances in general need storedvalue.list. Gift cards are not listed: they are presented by their code. methodAvailable says whether the order's payment method policies offer stored value at the box office.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
amountDue: number;
balances: {
accountId: string | null;
balance: number | null;
currency: string;
eventId: string | null;
expiresAt: string | null;
id: string;
instrument: "account_credit" | "gift_card" | "pass_balance";
spendable: number;
status: "expired" | "active" | "void" | "pending" | "frozen";
}[];
methodAvailable: boolean;
orderId: string;
}>
Operation Id#
getOrderStoredValue
transitionStatus()#
transitionStatus: (orderId: string, request: {
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "confirmed"
| "processing";
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Transition order status
Transition an order to a new status. confirmed means paid: an order with anything left to pay is refused with 409 ORDER_NOT_PAID, because it is the payment that confirms an order and records its journal (take one with POST /orders/{orderId}/payment). A zero-value order has nothing to pay and may be confirmed here. Moving it to cancelled, refunded, failed or expired cancels its passes. Setting refunded here returns no money and sends no order.refunded: refunding the money in full moves the order to refunded by itself.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "confirmed" | "processing"; } |
request.status | | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "confirmed" | "processing" |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
transitionOrderStatus
update()#
update: (orderId: string, request: {
addItems?: {
description?: string;
feeDetails?: Record<string, any>;
metadata?: Record<string, any>;
name: string;
productDetails?: Record<string, any>;
quantity?: number;
ticketDetails?: Record<string, any>;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
unitPrice: number;
}[];
customerId?: string;
customerNotes?: string;
expectedVersion?: number;
extendExpiry?: boolean;
internalNotes?: string;
metadata?: Record<string, any>;
removeItems?: string[];
updateItems?: {
itemId: string;
updates: {
metadata?: Record<string, any>;
quantity?: number;
unitPrice?: number;
};
}[];
}, requestOptions?: RequestOptions) => Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>;Update order
Update an existing order. Name the version the change is based on (the version of a read, or its ETag) as If-Match or expectedVersion and the update is refused with 412 VERSION_MISMATCH, writing nothing, when the order has changed since. Without one the update applies as it always has.
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { addItems?: { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[]; customerId?: string; customerNotes?: string; expectedVersion?: number; extendExpiry?: boolean; internalNotes?: string; metadata?: Record<string, any>; removeItems?: string[]; updateItems?: { itemId: string; updates: { metadata?: Record<string, any>; quantity?: number; unitPrice?: number; }; }[]; } |
request.addItems? | { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[] |
request.customerId? | string |
request.customerNotes? | string |
request.expectedVersion? | number |
request.extendExpiry? | boolean |
request.internalNotes? | string |
request.metadata? | Record<string, any> |
request.removeItems? | string[] |
request.updateItems? | { itemId: string; updates: { metadata?: Record<string, any>; quantity?: number; unitPrice?: number; }; }[] |
requestOptions? | RequestOptions |
Returns#
Promise<{
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
}>
Operation Id#
updateOrder
updateItem()#
updateItem: (orderId: string, itemId: string, request: {
metadata?: Record<string, any>;
quantity?: number;
unitPrice?: number;
}, requestOptions?: RequestOptions) => Promise<{
item: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
}>;Update line item Update a line item in an order
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
itemId | string |
request | { metadata?: Record<string, any>; quantity?: number; unitPrice?: number; } |
request.metadata? | Record<string, any> |
request.quantity? | number |
request.unitPrice? | number |
requestOptions? | RequestOptions |
Returns#
Promise<{
item: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
};
order: {
accountId: string;
cancellationReason: string | null;
cancelledAt: string | null;
channel: string | null;
completedAt: string | null;
confirmedAt: string | null;
createdAt: string;
currency: string;
customerId: string | null;
customerNotes: string | null;
expiresAt: string | null;
id: string;
internalNotes: string | null;
isGuestCheckout: boolean;
items?: {
createdAt: string;
description: string | null;
discountAmount: number;
feeDetails: | {
[key: string]: unknown;
}
| null;
id: string;
isTaxInclusive?: boolean;
metadata: | {
[key: string]: unknown;
}
| null;
name: string;
orderId: string;
productDetails: | {
[key: string]: unknown;
}
| null;
quantity: number;
subtotal: number;
taxAmount: number;
taxCategory?: string | null;
taxCode?: string | null;
taxJurisdiction?: string | null;
taxRate?: string | null;
taxSupplier?: string | null;
ticketDetails: | {
[key: string]: unknown;
}
| null;
total: number;
type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
unitPrice: number;
updatedAt: string;
}[];
metadata: | {
[key: string]: unknown;
}
| null;
orderNumber: string;
organisationId: string;
status: | "expired"
| "failed"
| "cancelled"
| "refunded"
| "completed"
| "pending"
| "confirmed"
| "awaiting_payment"
| "processing";
subtotal: number;
total: number;
totalDiscounts: number;
totalFees: number;
totalPaid: number;
totalRefunded: number;
totalTax: number;
updatedAt: string;
version: number;
};
}>
Operation Id#
updateOrderLineItem
updateNote()#
updateNote: (orderId: string, noteId: string, request: {
body?: string;
tier?: "internal" | "restricted";
}, requestOptions?: RequestOptions) => Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>;Edit order note Change a note's body or tier. Its author only (403 NOTE_AUTHOR_ONLY), who must still be allowed to update the order and to write both tiers. The note that stands for a field keeps that field's tier.
Parameters#
| Parameter | Type | Description |
|---|---|---|
orderId | string | - |
noteId | string | - |
request | { body?: string; tier?: "internal" | "restricted"; } | - |
request.body? | string | Example Comp for the promoter, agreed by Sam. |
request.tier? | "internal" | "restricted" | Example restricted @enum {string} |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
author: {
id: string | null;
kind: string;
};
body: string;
createdAt: string;
deletedAt: string | null;
editedAt: string | null;
id: string;
legacyField: string | null;
objectId: string;
objectType: string;
redactedAt: string | null;
tier: "internal" | "restricted";
}>
Operation Id#
updateOrderNote
validate()#
validate: (orderId: string, request: {
}, requestOptions?: RequestOptions) => Promise<{
errors: {
code: string;
itemId?: string;
message: string;
}[];
valid: boolean;
}>;Validate order Validate an order before payment (check inventory, pricing, etc.)
Parameters#
| Parameter | Type |
|---|---|
orderId | string |
request | { } |
requestOptions? | RequestOptions |
Returns#
Promise<{
errors: {
code: string;
itemId?: string;
message: string;
}[];
valid: boolean;
}>
Operation Id#
validateOrder