Skip to content
Docs
Reference

BackstageClient.fulfilment

BackstageClient.fulfilment in @ticketlayer/backstage.

@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#

ParameterType
unitIdstring
request{ reason: string; }
request.reasonstring
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#

ParameterTypeDescription
unitIdstring-
request{ collectedBy: string; idChecked: boolean; note?: string | null; }-
request.collectedBystringDescription Who took it Example Ada Lovelace
request.idChecked?booleanDescription 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#

ParameterType
unitIdstring
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#

ParameterType
unitIdstring
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#

ParameterTypeDescription
unitIdstring-
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 | nullFormat: 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#

ParameterType
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#

ParameterType
unitIdstring
request{ printerId: string; }
request.printerIdstring
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#

ParameterType
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#

ParameterType
unitIdstring
holdIdstring
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#

ParameterTypeDescription
unitIdstring-
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#

ParameterType
unitIdstring
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