BackstageClient.fulfilment
BackstageClient.fulfilment in @ticketlayer/backstage.
@ticketlayer/backstage / BackstageClient / fulfilment
fulfilment: {
cancel: (unitId: string, request: {
reason: string;
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;
collect: (unitId: string, request: {
collectedBy: string;
idChecked: boolean;
note?: string | null;
}, requestOptions?: RequestOptions) => Promise<
| {
collectedAt: string;
collectedByName: string;
handedOverBy: string | null;
id: string;
idChecked: boolean;
note: string | null;
orderId: string;
unitId: string;
}
| null>;
collection: (unitId: string, requestOptions?: RequestOptions) => Promise<
| {
collectedAt: string;
collectedByName: string;
handedOverBy: string | null;
id: string;
idChecked: boolean;
note: string | null;
orderId: string;
unitId: string;
}
| null>;
get: (unitId: string, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;
hold: (unitId: string, request: {
note?: string | null;
reason: | "manual"
| "awaiting_names"
| "release_date"
| "fraud_review"
| "out_of_stock";
releaseAt?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;
list: (options?: {
after?: string;
eventId?: string;
limit?: number;
method?: string;
provider?: string;
status?: string;
}, requestOptions?: RequestOptions) => Promise<{
nextCursor: string | null;
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;
}[];
}>;
print: (unitId: string, request: {
printerId: string;
}, requestOptions?: RequestOptions) => Promise<{
jobs: {
commandId: string;
passId: string;
}[];
unitId: string;
}>;
providers: (requestOptions?: RequestOptions) => Promise<{
comingIn: string | null;
key: | "print_mail_partner"
| "ticketlayer_email"
| "in_house"
| "managed_fulfilment";
label: string;
operator: "organisation" | "automatic" | "ticketlayer" | "third_party";
serves: (
| "email"
| "sms"
| "app"
| "exchange"
| "print_now"
| "wallet"
| "box_office_print"
| "post"
| "collect"
| "load_onto_card"
| "print_mail_partner")[];
}[]>;
release: (unitId: string, holdId: string, request: {
note?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;
reportProgress: (unitId: string, request: {
note?: string | null;
progress: "failed" | "in_progress" | "printed" | "encoded";
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;
retry: (unitId: string, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;
};Defined in: client.ts:6688
Fulfilment methods
cancel()#
cancel: (unitId: string, request: {
reason: string;
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;Cancel a fulfilment unit Cancel what has not gone: its provider is asked first, and its items are cancelled. A dispatched, delivered or collected unit cannot be recalled (409 FULFILMENT_UNIT_CLOSED); a returned shipment is marked returned instead. Needs orders.update on its account.
Parameters#
| Parameter | Type |
|---|---|
unitId | string |
request | { reason: string; } |
request.reason | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
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: string]: unknown;
}
| 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#
cancelFulfilmentUnit
collect()#
collect: (unitId: string, request: {
collectedBy: string;
idChecked: boolean;
note?: string | null;
}, requestOptions?: RequestOptions) => Promise<
| {
collectedAt: string;
collectedByName: string;
handedOverBy: string | null;
id: string;
idChecked: boolean;
note: string | null;
orderId: string;
unitId: string;
}
| null>;Hand a unit over at the collection desk
Records who collected it, when, whether ID was checked, and which member of staff handed it over; the unit is fulfilled (collected). Only a collection unit (409 FULFILMENT_METHOD_MISMATCH) that is not on hold. Needs orders.update on its account.
Parameters#
| Parameter | Type | Description |
|---|---|---|
unitId | string | - |
request | { collectedBy: string; idChecked: boolean; note?: string | null; } | - |
request.collectedBy | string | Description Who took it Example Ada Lovelace |
request.idChecked? | boolean | Description Whether photo ID was checked against the name |
request.note? | string | null | - |
requestOptions? | RequestOptions | - |
Returns#
Promise<
| {
collectedAt: string;
collectedByName: string;
handedOverBy: string | null;
id: string;
idChecked: boolean;
note: string | null;
orderId: string;
unitId: string;
}
| null>
Operation Id#
collectFulfilmentUnit
collection()#
collection: (unitId: string, requestOptions?: RequestOptions) => Promise<
| {
collectedAt: string;
collectedByName: string;
handedOverBy: string | null;
id: string;
idChecked: boolean;
note: string | null;
orderId: string;
unitId: string;
}
| null>;Who collected a unit The collection record of a unit handed over at the desk, or null. Needs orders.read on its account.
Parameters#
| Parameter | Type |
|---|---|
unitId | string |
requestOptions? | RequestOptions |
Returns#
Promise<
| {
collectedAt: string;
collectedByName: string;
handedOverBy: string | null;
id: string;
idChecked: boolean;
note: string | null;
orderId: string;
unitId: string;
}
| null>
Operation Id#
getFulfilmentCollection
get()#
get: (unitId: string, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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 a fulfilment unit One unit with its items, holds and history. Needs orders.read on its account.
Parameters#
| Parameter | Type |
|---|---|
unitId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
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: string]: unknown;
}
| 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#
getFulfilmentUnit
hold()#
hold: (unitId: string, request: {
note?: string | null;
reason: | "manual"
| "awaiting_names"
| "release_date"
| "fraud_review"
| "out_of_stock";
releaseAt?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;Hold a fulfilment unit
Keep a unit from being worked, with a reason: awaiting holder names, a release date (it releases itself at releaseAt), fraud review, out of stock, or manual. Awaiting payment is placed and released by the order itself. A dispatched or finished unit cannot be held (409 FULFILMENT_UNIT_CLOSED); one open hold per reason (409 FULFILMENT_HOLD_EXISTS). Needs orders.update on its account.
Parameters#
| Parameter | Type | Description |
|---|---|---|
unitId | string | - |
request | { note?: string | null; reason: | "manual" | "awaiting_names" | "release_date" | "fraud_review" | "out_of_stock"; releaseAt?: string | null; } | - |
request.note? | string | null | - |
request.reason? | | "manual" | "awaiting_names" | "release_date" | "fraud_review" | "out_of_stock" | Description Why it waits. Awaiting payment is placed and released by the order itself. |
request.releaseAt? | string | null | Format: date-time Description Releases itself then; required for release_date. |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
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: string]: unknown;
}
| 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#
holdFulfilmentUnit
list()#
list: (options?: {
after?: string;
eventId?: string;
limit?: number;
method?: string;
provider?: string;
status?: string;
}, requestOptions?: RequestOptions) => Promise<{
nextCursor: string | null;
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;
}[];
}>;List fulfilment units (a queue)
A queue: fulfilment units filtered by status, delivery method, provider and event, oldest first, for the accounts the caller can read. Stations open these: the post queue is method=post&status=pending, Managed Fulfilment's is provider=managed_fulfilment. Items and holds are included; the history is on a single read. Needs orders.read.
Parameters#
| Parameter | Type |
|---|---|
options? | { after?: string; eventId?: string; limit?: number; method?: string; provider?: string; status?: string; } |
options.after? | string |
options.eventId? | string |
options.limit? | number |
options.method? | string |
options.provider? | string |
options.status? | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
nextCursor: string | null;
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#
listFulfilmentUnits
print()#
print: (unitId: string, request: {
printerId: string;
}, requestOptions?: RequestOptions) => Promise<{
jobs: {
commandId: string;
passId: string;
}[];
unitId: string;
}>;Print a unit's tickets Bulk print: every ticket a physical unit still has to send, one print job each to the printer through the relay, by the same path as printing one ticket. A template that targets a media type prints only where it is loaded (409 MEDIA_NOT_LOADED or MEDIA_MISMATCH); stock at the printer's location is counted down. Needs orders.update on the unit's account and devices.dispatch on the printer's.
Parameters#
| Parameter | Type |
|---|---|
unitId | string |
request | { printerId: string; } |
request.printerId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
jobs: {
commandId: string;
passId: string;
}[];
unitId: string;
}>
Operation Id#
printFulfilmentUnit
providers()#
providers: (requestOptions?: RequestOptions) => Promise<{
comingIn: string | null;
key: | "print_mail_partner"
| "ticketlayer_email"
| "in_house"
| "managed_fulfilment";
label: string;
operator: "organisation" | "automatic" | "ticketlayer" | "third_party";
serves: (
| "email"
| "sms"
| "app"
| "exchange"
| "print_now"
| "wallet"
| "box_office_print"
| "post"
| "collect"
| "load_onto_card"
| "print_mail_partner")[];
}[]>;List the fulfilment providers
Who can do the work for each delivery method: Ticketlayer's email queue, the organisation's own team at stations, Managed Fulfilment (Ticketlayer prints and posts from its warehouse), or a third party. An organisation or account chooses a provider per method in its delivery method policy (providers).
Parameters#
| Parameter | Type |
|---|---|
requestOptions? | RequestOptions |
Returns#
Promise<{
comingIn: string | null;
key: | "print_mail_partner"
| "ticketlayer_email"
| "in_house"
| "managed_fulfilment";
label: string;
operator: "organisation" | "automatic" | "ticketlayer" | "third_party";
serves: (
| "email"
| "sms"
| "app"
| "exchange"
| "print_now"
| "wallet"
| "box_office_print"
| "post"
| "collect"
| "load_onto_card"
| "print_mail_partner")[];
}[]>
Operation Id#
listFulfilmentProviders
release()#
release: (unitId: string, holdId: string, request: {
note?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;Release a hold Release a hold staff placed. When no other hold is open the unit goes back to pending and the queue works it. Awaiting payment is released by paying (409 FULFILMENT_HOLD_AUTOMATIC). Needs orders.update on its account.
Parameters#
| Parameter | Type |
|---|---|
unitId | string |
holdId | string |
request | { note?: string | null; } |
request.note? | string | null |
requestOptions? | RequestOptions |
Returns#
Promise<{
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: string]: unknown;
}
| 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#
releaseFulfilmentHold
reportProgress()#
reportProgress: (unitId: string, request: {
note?: string | null;
progress: "failed" | "in_progress" | "printed" | "encoded";
}, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;Report progress on a unit What a station did with a unit its team works: started it, printed or encoded its items, or could not (which fails it and raises a task for staff). An on-hold unit cannot be worked (409 FULFILMENT_UNIT_ON_HOLD). Needs orders.update on its account.
Parameters#
| Parameter | Type | Description |
|---|---|---|
unitId | string | - |
request | { note?: string | null; progress: "failed" | "in_progress" | "printed" | "encoded"; } | - |
request.note? | string | null | - |
request.progress? | "failed" | "in_progress" | "printed" | "encoded" | Description What a station did: started, printed or encoded the items, or could not (which raises a task). Dispatch goes through a shipment and collection through the collection desk. |
requestOptions? | RequestOptions | - |
Returns#
Promise<{
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: string]: unknown;
}
| 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#
reportFulfilmentProgress
retry()#
retry: (unitId: string, requestOptions?: RequestOptions) => Promise<{
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: string]: unknown;
}
| 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;
}>;Retry a failed unit Work a failed unit again now, with its attempts reset. Only a failed unit (409 FULFILMENT_UNIT_NOT_FAILED). Needs orders.update on its account.
Parameters#
| Parameter | Type |
|---|---|
unitId | string |
requestOptions? | RequestOptions |
Returns#
Promise<{
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: string]: unknown;
}
| 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#
retryFulfilmentUnit