Skip to content
Docs
Reference

BackstageClient.orders

BackstageClient.orders in @ticketlayer/backstage.

@ticketlayer/backstage


@ticketlayer/backstage / BackstageClient / orders

orders: {
  activateWristband: (orderId: string, slotId: string, request: {
     chipType?: string | null;
     commandId?: string;
     deviceId?: string | null;
     uid?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     activatedAt: string | null;
     activation: "immediate" | "on_receipt";
     chipType: string | null;
     commandId: string | null;
     deviceId: string | null;
     encodedAt: string;
     encodedBy: string | null;
     id: string;
     mediaType: string | null;
     orderId: string;
     passId: string;
     shipmentId: string | null;
     slotId: string;
     uid: string;
  }>;
  addFeeLine: (orderId: string, request: {
     amount: number;
     earnerPartyId?: string;
     kind:   | "service"
        | "booking"
        | "delivery"
        | "credential"
        | "payment_surcharge"
        | "name_change"
        | "transfer"
        | "reprint";
     label: string;
     reason: string;
     taxCategory?: "non_taxable" | "service" | "goods" | "delivery" | "booking_fee";
   }, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  addGiftCard: (orderId: string, request: {
     amount?: number;
     delivery: {
        message?: string | null;
        method: "email" | "box_office_print" | "post";
        recipientEmail?: string | null;
        recipientName?: string | null;
     };
     productId: string;
   }, requestOptions?: RequestOptions) => Promise<{
     giftCard: {
        accountId: string | null;
        balance: number;
        book: "live" | "test";
        codeIssuedAt: string | null;
        codeLast4: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        eventId: string | null;
        expiresAt: string | null;
        expiryPolicy: {
           dormancyFee:   | {
              afterInactiveMonths: number;
              amount: number;
            }
              | null;
           jurisdiction: string | null;
           minimumMonths: number | null;
           months: number | null;
           source: "organisation" | "jurisdiction_default";
        };
        faceValue: number | null;
        id: string;
        instrument: "account_credit" | "gift_card" | "pass_balance";
        lastActivityAt: string;
        ownerType: "customer" | "bearer" | "pass";
        recipient:   | {
           email?: string | null;
           message?: string | null;
           name?: string | null;
         }
           | null;
        sourceOrderId: string | null;
        sourceOrderLineItemId: string | null;
        status: "expired" | "active" | "void" | "pending" | "frozen";
        updatedAt: string;
     };
     order: {
        id: string;
        status: string;
        total: number;
     };
  }>;
  addItem: (orderId: string, request: {
     description?: string;
     feeDetails?: Record<string, any>;
     metadata?: Record<string, any>;
     name: string;
     productDetails?: Record<string, any>;
     quantity?: number;
     ticketDetails?: Record<string, any>;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
     unitPrice: number;
   }, requestOptions?: RequestOptions) => Promise<{
     item: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     };
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
  }>;
  addNote: (orderId: string, request: {
     body: string;
     tier?: "internal" | "restricted";
   }, requestOptions?: RequestOptions) => Promise<{
     author: {
        id: string | null;
        kind: string;
     };
     body: string;
     createdAt: string;
     deletedAt: string | null;
     editedAt: string | null;
     id: string;
     legacyField: string | null;
     objectId: string;
     objectType: string;
     redactedAt: string | null;
     tier: "internal" | "restricted";
  }>;
  assignAddOn: (orderId: string, request: {
     orderLineItemId: string;
     slotId: string;
     unitIndex: number;
   }, requestOptions?: RequestOptions) => Promise<{
     bookingPasses: {
        eventId: string | null;
        passId: string;
        status: string;
     }[];
     orderId: string;
     slots: {
        eventId: string;
        holder: {
           email: string | null;
           id: string;
           name: string | null;
        };
        id: string;
        items: {
           eligibleSlotIds: string[] | null;
           entitlementId: string | null;
           orderId: string;
           orderLineItemId: string;
           passId: string | null;
           role: "holder" | "add_on";
           ticketTypeId: string;
           ticketTypeName: string | null;
           unitIndex: number;
        }[];
        kind: "person" | "vehicle" | "group";
        label: string;
        mediaType: string | null;
        naming: {
           changesCloseAt: string | null;
           maxNameChanges: number | null;
           nameChangesAllowed: boolean;
           namesCloseAt: string | null;
           policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
           required: boolean;
           transfersAllowed: boolean;
        };
        orderId: string;
        passId: string | null;
        position: number;
        wristband: {
           activeAt: string | null;
           method: string | null;
           shipmentId: string | null;
           state:   | "active"
              | "none"
              | "to_exchange"
              | "to_post"
              | "to_collect"
              | "posted_pending_activation";
           uid: string | null;
        };
     }[];
     unassigned: {
        eligibleSlotIds: string[];
        entitlementId: string | null;
        orderLineItemId: string;
        passId: string | null;
        ticketTypeId: string;
        ticketTypeName: string | null;
        unitIndex: number;
     }[];
  }>;
  cancel: (orderId: string, request: {
     reason: string;
   }, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  create: (request: {
     accountId: string;
     channel?: string;
     currency?: string;
     customerId?: string;
     customerNotes?: string;
     expiresInMinutes?: number;
     internalNotes?: string;
     isGuestCheckout?: boolean;
     items?: {
        description?: string;
        feeDetails?: Record<string, any>;
        metadata?: Record<string, any>;
        name: string;
        productDetails?: Record<string, any>;
        quantity?: number;
        ticketDetails?: Record<string, any>;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
        unitPrice: number;
     }[];
     metadata?: Record<string, any>;
   }, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  deleteNote: (orderId: string, noteId: string, requestOptions?: RequestOptions) => Promise<{
     author: {
        id: string | null;
        kind: string;
     };
     body: string;
     createdAt: string;
     deletedAt: string | null;
     editedAt: string | null;
     id: string;
     legacyField: string | null;
     objectId: string;
     objectType: string;
     redactedAt: string | null;
     tier: "internal" | "restricted";
  }>;
  fulfilment: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     orderId: string;
     units: {
        acceptedAt: string | null;
        accountId: string;
        attempts: number;
        cancelledAt: string | null;
        carriesTickets: boolean;
        createdAt: string;
        deliveredAt: string | null;
        events?: {
           actor: string | null;
           createdAt: string;
           detail:   | {
            [key: ...]: ...;
            }
              | null;
           fromStatus: string | null;
           id: string;
           kind: string;
           toStatus: string | null;
        }[];
        fulfilledAt: string | null;
        holds: {
           createdAt: string;
           id: string;
           note: string | null;
           placedBy: string | null;
           reason:   | "manual"
              | "awaiting_payment"
              | "awaiting_names"
              | "release_date"
              | "fraud_review"
              | "out_of_stock";
           releaseAt: string | null;
           releasedAt: string | null;
           releasedBy: string | null;
           releaseNote: string | null;
        }[];
        id: string;
        isTest: boolean;
        items: {
           entitlementId: string | null;
           fulfilledAt: string | null;
           id: string;
           orderLineItemId: string | null;
           passId: string | null;
           slotId: string | null;
           status: "cancelled" | "pending" | "fulfilled" | "returned";
           storedValueAccountId: string | null;
           wristband: boolean;
        }[];
        kind: "digital" | "physical";
        lastError: string | null;
        method:   | "email"
           | "sms"
           | "app"
           | "exchange"
           | "print_now"
           | "wallet"
           | "box_office_print"
           | "post"
           | "collect"
           | "load_onto_card"
           | "print_mail_partner";
        nextAttemptAt: string | null;
        orderId: string;
        outcome:   | "exchanged"
           | "no_recipient"
           | "sent"
           | "shown"
           | "loaded"
           | "printed"
           | "dispatched"
           | "collected"
           | null;
        provider:   | "print_mail_partner"
           | "ticketlayer_email"
           | "in_house"
           | "managed_fulfilment";
        providerReference: string | null;
        status:   | "failed"
           | "cancelled"
           | "pending"
           | "in_progress"
           | "on_hold"
           | "fulfilled"
           | "delivered";
        targetPassId: string | null;
        updatedAt: string;
     }[];
  }>;
  get: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  getByNumber: (orderNumber: string, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  getHistory: (orderId: string, options?: {
     cursor?: string;
     limit?: number;
   }, requestOptions?: RequestOptions) => Promise<{
     history: {
        actor: {
           id: string | null;
           kind: string;
        };
        at: string;
        changes: {
         [key: string]: {
           from?: unknown;
           to?: unknown;
         };
        };
        id: string;
        kind: string;
        objectId: string;
        objectType: string;
        redacted: boolean;
        requestId: string | null;
        version: number | null;
     }[];
     nextCursor: string | null;
  }>;
  getPasses: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     entitlements: {
        createdAt: string;
        currency: string | null;
        eventOccurrenceId: string | null;
        id: string;
        name: string;
        orderLineItemId: string;
        passId: string | null;
        redemptionCount: number;
        redemptionLimit: number | null;
        seatLabel: string | null;
        status: string;
        ticketTypeId: string | null;
        type: string;
        unitPrice: number | null;
     }[];
     passes: {
        barcode: string;
        createdAt: string;
        customerId: string | null;
        holderEmail: string | null;
        holderName: string | null;
        id: string;
        issuedAt: string;
        status: string;
        type: string;
     }[];
     redemptions: {
        createdAt: string;
        deviceId: string | null;
        entitlementId: string;
        id: string;
        location: string | null;
        passId: string;
        redeemedBy: string | null;
        rejectionReason: string | null;
        reversalReason: string | null;
        reversedAt: string | null;
        status: string;
     }[];
  }>;
  getPassPdf: (orderId: string, passId: string, requestOptions?: RequestOptions) => Promise<any>;
  getPaymentStatus: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     amount: number | null;
     currency: string | null;
     failedAt: string | null;
     failureReason: string | null;
     paidAt: string | null;
     paymentId: string | null;
     status:   | "succeeded"
        | "failed"
        | "cancelled"
        | "none"
        | "pending"
        | "processing"
        | "requires_action";
  }>;
  holders: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     bookingPasses: {
        eventId: string | null;
        passId: string;
        status: string;
     }[];
     orderId: string;
     slots: {
        eventId: string;
        holder: {
           email: string | null;
           id: string;
           name: string | null;
        };
        id: string;
        items: {
           eligibleSlotIds: string[] | null;
           entitlementId: string | null;
           orderId: string;
           orderLineItemId: string;
           passId: string | null;
           role: "holder" | "add_on";
           ticketTypeId: string;
           ticketTypeName: string | null;
           unitIndex: number;
        }[];
        kind: "person" | "vehicle" | "group";
        label: string;
        mediaType: string | null;
        naming: {
           changesCloseAt: string | null;
           maxNameChanges: number | null;
           nameChangesAllowed: boolean;
           namesCloseAt: string | null;
           policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
           required: boolean;
           transfersAllowed: boolean;
        };
        orderId: string;
        passId: string | null;
        position: number;
        wristband: {
           activeAt: string | null;
           method: string | null;
           shipmentId: string | null;
           state:   | "active"
              | "none"
              | "to_exchange"
              | "to_post"
              | "to_collect"
              | "posted_pending_activation";
           uid: string | null;
        };
     }[];
     unassigned: {
        eligibleSlotIds: string[];
        entitlementId: string | null;
        orderLineItemId: string;
        passId: string | null;
        ticketTypeId: string;
        ticketTypeName: string | null;
        unitIndex: number;
     }[];
  }>;
  initiatePayment: (orderId: string, request: {
     amount?: number;
     amountTendered?: number;
     locationId?: string;
     metadata?: Record<string, any>;
     paymentMethod:   | "in_person_cash"
        | "in_person_card"
        | "online_card"
        | "bank_transfer"
        | "cheque"
        | "online_bank_transfer"
        | "online_wallet";
     returnUrl?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     cash:   | {
        amountDue: number;
        amountTendered: number;
        changeDue: number;
        locationId: string | null;
      }
        | null;
     isZeroValue: boolean;
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
     payment: {
        amount: number;
        clientSecret: string | null;
        currency: string;
        externalPaymentId: string | null;
        paymentId: string;
        status: string;
     };
     workflowId: string | null;
  }>;
  list: (options?: {
     channel?: string;
     cursor?: string;
     customerId?: string;
     fromDate?: string;
     limit?: string;
     page?: string;
     search?: string;
     status?:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     toDate?: string;
     updatedSince?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     orders: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: ...]: ...;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: ...]: ...;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: ...]: ...;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: ...]: ...;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     }[];
     pagination: {
        limit: number;
        page: number;
        total: number;
        totalPages: number;
     };
  }>;
  listNotes: (orderId: string, options?: {
     cursor?: string;
     limit?: number;
   }, requestOptions?: RequestOptions) => Promise<{
     nextCursor: string | null;
     notes: {
        author: {
           id: string | null;
           kind: string;
        };
        body: string;
        createdAt: string;
        deletedAt: string | null;
        editedAt: string | null;
        id: string;
        legacyField: string | null;
        objectId: string;
        objectType: string;
        redactedAt: string | null;
        tier: "internal" | "restricted";
     }[];
  }>;
  nameHolder: (orderId: string, slotId: string, request: {
     email?: string | null;
     name: string;
   }, requestOptions?: RequestOptions) => Promise<{
     bookingPasses: {
        eventId: string | null;
        passId: string;
        status: string;
     }[];
     orderId: string;
     slots: {
        eventId: string;
        holder: {
           email: string | null;
           id: string;
           name: string | null;
        };
        id: string;
        items: {
           eligibleSlotIds: string[] | null;
           entitlementId: string | null;
           orderId: string;
           orderLineItemId: string;
           passId: string | null;
           role: "holder" | "add_on";
           ticketTypeId: string;
           ticketTypeName: string | null;
           unitIndex: number;
        }[];
        kind: "person" | "vehicle" | "group";
        label: string;
        mediaType: string | null;
        naming: {
           changesCloseAt: string | null;
           maxNameChanges: number | null;
           nameChangesAllowed: boolean;
           namesCloseAt: string | null;
           policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
           required: boolean;
           transfersAllowed: boolean;
        };
        orderId: string;
        passId: string | null;
        position: number;
        wristband: {
           activeAt: string | null;
           method: string | null;
           shipmentId: string | null;
           state:   | "active"
              | "none"
              | "to_exchange"
              | "to_post"
              | "to_collect"
              | "posted_pending_activation";
           uid: string | null;
        };
     }[];
     unassigned: {
        eligibleSlotIds: string[];
        entitlementId: string | null;
        orderLineItemId: string;
        passId: string | null;
        ticketTypeId: string;
        ticketTypeName: string | null;
        unitIndex: number;
     }[];
  }>;
  paymentMethods: (orderId: string, options?: {
     surface?: "box_office" | "online";
   }, requestOptions?: RequestOptions) => Promise<{
     methods: {
        available: boolean;
        closesAt: string | null;
        kind: "processed" | "stored_value" | "recorded";
        label: string;
        method:   | "card"
           | "other"
           | "bank_transfer"
           | "cheque"
           | "manual_card"
           | "invoice"
           | "voucher"
           | "paypal"
           | "terminal_card"
           | "cash"
           | "stored_value";
        pending: boolean;
        reason:   | "closed"
           | "not_allowed"
           | "wrong_surface"
           | "no_processor"
           | "not_built"
           | null;
     }[];
     orderId: string;
     pendingClosesDaysBefore: number;
     pendingExpiryAction: "cancel" | "task";
     surface: "box_office" | "online";
  }>;
  paymentTerms: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     amountDue: number;
     dueAt: string;
     expiryAction: "cancel" | "task";
     invoiceNumber: string | null;
     method: "bank_transfer" | "cheque" | "invoice";
     overdueAt: string | null;
     overdueOutcome: "cancelled" | "paid" | "task" | null;
     paymentReference: string;
  } & Record<string, never>>;
  placeAwaitingPayment: (orderId: string, request: {
     dueAt?: string;
     method: "bank_transfer" | "cheque" | "invoice";
   }, requestOptions?: RequestOptions) => Promise<{
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
     terms: {
        amountDue: number;
        dueAt: string;
        expiryAction: "cancel" | "task";
        invoiceNumber: string | null;
        method: "bank_transfer" | "cheque" | "invoice";
        overdueAt: string | null;
        overdueOutcome: "cancelled" | "paid" | "task" | null;
        paymentReference: string;
     };
  }>;
  printPass: (orderId: string, passId: string, request: {
     printerId: string;
     type?: "print.ticket" | "print.label" | "print.receipt";
  }, requestOptions?: RequestOptions) => Promise<string>;
  recordExternalPayment: (orderId: string, request: {
     amount?: number;
     metadata?: Record<string, any>;
     paymentMethod:   | "in_person_cash"
        | "in_person_card"
        | "online_card"
        | "bank_transfer"
        | "cheque";
     reference?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     collection: {
        channelId: string;
        holderAccountId: string;
        ledgerAccount: string;
        paymentMethod:   | "in_person_cash"
           | "in_person_card"
           | "online_card"
           | "bank_transfer"
           | "cheque";
        reference: string | null;
     };
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
     payment: {
        amount: number;
        currency: string;
        externalPaymentId: string;
        paymentId: string;
        paymentMethod:   | "in_person_cash"
           | "in_person_card"
           | "online_card"
           | "bank_transfer"
           | "cheque";
        status: "succeeded";
     };
  }>;
  recordPayment: (orderId: string, request: {
     amount?: number;
     cashSessionId?: string;
     last4?: string;
     metadata?: {
      [key: string]: unknown;
     };
     method:   | "other"
        | "bank_transfer"
        | "cheque"
        | "manual_card"
        | "invoice"
        | "voucher";
     receivedAt?: string;
     reference?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
     payment: {
        amount: number;
        currency: string;
        externalPaymentId: string;
        method:   | "other"
           | "bank_transfer"
           | "cheque"
           | "manual_card"
           | "invoice"
           | "voucher";
        paymentId: string;
        status: "succeeded";
     };
     recorded: {
        amount: number;
        holderAccountId: string;
        ledgerAccount: string;
        method:   | "other"
           | "bank_transfer"
           | "cheque"
           | "manual_card"
           | "invoice"
           | "voucher";
        reference: string | null;
        stillDue: number;
     };
  }>;
  removeFeeLine: (orderId: string, lineItemId: string, options?: {
     reason?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  removeGiftCard: (orderId: string, storedValueAccountId: string, requestOptions?: RequestOptions) => Promise<{
     giftCard: {
        accountId: string | null;
        balance: number;
        book: "live" | "test";
        codeIssuedAt: string | null;
        codeLast4: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        eventId: string | null;
        expiresAt: string | null;
        expiryPolicy: {
           dormancyFee:   | {
              afterInactiveMonths: number;
              amount: number;
            }
              | null;
           jurisdiction: string | null;
           minimumMonths: number | null;
           months: number | null;
           source: "organisation" | "jurisdiction_default";
        };
        faceValue: number | null;
        id: string;
        instrument: "account_credit" | "gift_card" | "pass_balance";
        lastActivityAt: string;
        ownerType: "customer" | "bearer" | "pass";
        recipient:   | {
           email?: string | null;
           message?: string | null;
           name?: string | null;
         }
           | null;
        sourceOrderId: string | null;
        sourceOrderLineItemId: string | null;
        status: "expired" | "active" | "void" | "pending" | "frozen";
        updatedAt: string;
     };
     order: {
        id: string;
        status: string;
        total: number;
     };
  }>;
  removeItem: (orderId: string, itemId: string, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  resendConfirmation: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     attachments: number;
     messageId?: string;
     recipient: string | null;
     sent: boolean;
     skippedReason?:   | "already_sent"
        | "no_recipient"
        | "not_configured"
        | "order_not_confirmed";
  }>;
  sendNow: (orderId: string, request: {
     reason: string;
   }, requestOptions?: RequestOptions) => Promise<{
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
     sentBeforePayment: {
        amountDue: number;
        emailed: boolean;
        emailSkippedReason: string | null;
        issuedAt: string;
        issuedBy: string;
        passes: number;
        reason: string;
     };
  }>;
  setShipTo: (orderId: string, request: {
     city: string;
     country: string;
     line1: string;
     line2?: string | null;
     name: string;
     phone?: string | null;
     postalCode: string;
     region?: string | null;
   }, requestOptions?: RequestOptions) => Promise<{
     orderId: string;
     shipTo: {
        city: string;
        country: string;
        line1: string;
        line2?: string | null;
        name: string;
        phone?: string | null;
        postalCode: string;
        region?: string | null;
     } & Record<string, never>;
  }>;
  shipTo: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     orderId: string;
     shipTo: {
        city: string;
        country: string;
        line1: string;
        line2?: string | null;
        name: string;
        phone?: string | null;
        postalCode: string;
        region?: string | null;
     } & Record<string, never>;
  }>;
  spendStoredValue: (orderId: string, request: {
     amount?: number;
     code?: string;
     storedValueAccountId?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     order: {
        id: string;
        paymentStatus: string;
        status: string;
        stillDue: number;
        total: number;
        totalPaid: number;
     };
     payment: {
        amount: number;
        currency: string;
        paymentId: string;
        status: "succeeded";
     };
     storedValue: {
        balance: number;
        id: string;
        instrument: "account_credit" | "gift_card" | "pass_balance";
     };
  }>;
  storedValue: (orderId: string, requestOptions?: RequestOptions) => Promise<{
     amountDue: number;
     balances: {
        accountId: string | null;
        balance: number | null;
        currency: string;
        eventId: string | null;
        expiresAt: string | null;
        id: string;
        instrument: "account_credit" | "gift_card" | "pass_balance";
        spendable: number;
        status: "expired" | "active" | "void" | "pending" | "frozen";
     }[];
     methodAvailable: boolean;
     orderId: string;
  }>;
  transitionStatus: (orderId: string, request: {
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "confirmed"
        | "processing";
   }, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  update: (orderId: string, request: {
     addItems?: {
        description?: string;
        feeDetails?: Record<string, any>;
        metadata?: Record<string, any>;
        name: string;
        productDetails?: Record<string, any>;
        quantity?: number;
        ticketDetails?: Record<string, any>;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
        unitPrice: number;
     }[];
     customerId?: string;
     customerNotes?: string;
     expectedVersion?: number;
     extendExpiry?: boolean;
     internalNotes?: string;
     metadata?: Record<string, any>;
     removeItems?: string[];
     updateItems?: {
        itemId: string;
        updates: {
           metadata?: Record<string, any>;
           quantity?: number;
           unitPrice?: number;
        };
     }[];
   }, requestOptions?: RequestOptions) => Promise<{
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }>;
  updateItem: (orderId: string, itemId: string, request: {
     metadata?: Record<string, any>;
     quantity?: number;
     unitPrice?: number;
   }, requestOptions?: RequestOptions) => Promise<{
     item: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     };
     order: {
        accountId: string;
        cancellationReason: string | null;
        cancelledAt: string | null;
        channel: string | null;
        completedAt: string | null;
        confirmedAt: string | null;
        createdAt: string;
        currency: string;
        customerId: string | null;
        customerNotes: string | null;
        expiresAt: string | null;
        id: string;
        internalNotes: string | null;
        isGuestCheckout: boolean;
        items?: {
           createdAt: string;
           description: string | null;
           discountAmount: number;
           feeDetails:   | {
            [key: string]: unknown;
            }
              | null;
           id: string;
           isTaxInclusive?: boolean;
           metadata:   | {
            [key: string]: unknown;
            }
              | null;
           name: string;
           orderId: string;
           productDetails:   | {
            [key: string]: unknown;
            }
              | null;
           quantity: number;
           subtotal: number;
           taxAmount: number;
           taxCategory?: string | null;
           taxCode?: string | null;
           taxJurisdiction?: string | null;
           taxRate?: string | null;
           taxSupplier?: string | null;
           ticketDetails:   | {
            [key: string]: unknown;
            }
              | null;
           total: number;
           type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
           unitPrice: number;
           updatedAt: string;
        }[];
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        orderNumber: string;
        organisationId: string;
        status:   | "expired"
           | "failed"
           | "cancelled"
           | "refunded"
           | "completed"
           | "pending"
           | "confirmed"
           | "awaiting_payment"
           | "processing";
        subtotal: number;
        total: number;
        totalDiscounts: number;
        totalFees: number;
        totalPaid: number;
        totalRefunded: number;
        totalTax: number;
        updatedAt: string;
        version: number;
     };
  }>;
  updateNote: (orderId: string, noteId: string, request: {
     body?: string;
     tier?: "internal" | "restricted";
   }, requestOptions?: RequestOptions) => Promise<{
     author: {
        id: string | null;
        kind: string;
     };
     body: string;
     createdAt: string;
     deletedAt: string | null;
     editedAt: string | null;
     id: string;
     legacyField: string | null;
     objectId: string;
     objectType: string;
     redactedAt: string | null;
     tier: "internal" | "restricted";
  }>;
  validate: (orderId: string, request: {
   }, requestOptions?: RequestOptions) => Promise<{
     errors: {
        code: string;
        itemId?: string;
        message: string;
     }[];
     valid: boolean;
  }>;
};

Defined in: client.ts:5136

Orders methods

activateWristband()#

activateWristband: (orderId: string, slotId: string, request: {
  chipType?: string | null;
  commandId?: string;
  deviceId?: string | null;
  uid?: string;
}, requestOptions?: RequestOptions) => Promise<{
  activatedAt: string | null;
  activation: "immediate" | "on_receipt";
  chipType: string | null;
  commandId: string | null;
  deviceId: string | null;
  encodedAt: string;
  encodedBy: string | null;
  id: string;
  mediaType: string | null;
  orderId: string;
  passId: string;
  shipmentId: string | null;
  slotId: string;
  uid: string;
}>;

Activate a holder's posted wristband A wristband posted to wait for activation (encode-and-post with on_receipt) scans only once activated: the holder taps it in the app, or staff at the desk do. Staff give the chip as at every station: the desk reader's commandId, or a typed uid from a reader in keyboard mode. It must be the band sent to this holder. 409 WRISTBAND_ACTIVATION_MISMATCH, WRISTBAND_NOT_AWAITING_ACTIVATION, NFC_READ_UNUSABLE.

Parameters#

ParameterTypeDescription
orderIdstring-
slotIdstring-
request{ chipType?: string | null; commandId?: string; deviceId?: string | null; uid?: string; }-
request.chipType?string | nullDescription With a typed uid; taken from the command with commandId Example NTAG213
request.commandId?stringDescription The station reader's completed nfc.read or nfc.encode (a relay command): the UID is taken from its checked result. 409 NFC_READ_UNUSABLE when it is not complete, older than 15 minutes or not an NFC command
request.deviceId?string | nullDescription The reader that read a typed uid; taken from the command with commandId
request.uid?stringDescription The chip's UID, hex (4, 7 or 10 bytes; colons and spaces are ignored), from a reader in keyboard mode. Or give commandId Example 04A224B2C35E80
requestOptions?RequestOptions-

Returns#

Promise<{ activatedAt: string | null; activation: "immediate" | "on_receipt"; chipType: string | null; commandId: string | null; deviceId: string | null; encodedAt: string; encodedBy: string | null; id: string; mediaType: string | null; orderId: string; passId: string; shipmentId: string | null; slotId: string; uid: string; }>

Operation Id#

activateHolderWristband

addFeeLine()#

addFeeLine: (orderId: string, request: {
  amount: number;
  earnerPartyId?: string;
  kind:   | "service"
     | "booking"
     | "delivery"
     | "credential"
     | "payment_surcharge"
     | "name_change"
     | "transfer"
     | "reprint";
  label: string;
  reason: string;
  taxCategory?: "non_taxable" | "service" | "goods" | "delivery" | "booking_fee";
}, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Add a one-off fee line Adds a fee to an unpaid order that its configured fees do not cover: a business surcharge on an event whose surcharges are off (a business buyer may be charged the cost of payment where a consumer may not), a courier, a late booking fee. Recorded with the reason and who added it, in the order's audit log; re-charging the order's fees leaves it alone. Needs orders.add_fee_line on the order's account, which no system role holds below the owners; a person only.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ amount: number; earnerPartyId?: string; kind: | "service" | "booking" | "delivery" | "credential" | "payment_surcharge" | "name_change" | "transfer" | "reprint"; label: string; reason: string; taxCategory?: "non_taxable" | "service" | "goods" | "delivery" | "booking_fee"; }-
request.amountnumberDescription Integer minor units Example 150
request.earnerPartyId?stringDescription Who is owed it: an account of the organisation, or the organisation. Default: as the order's configured fees
request.kind?| "service" | "booking" | "delivery" | "credential" | "payment_surcharge" | "name_change" | "transfer" | "reprint"Description What kind of fee it is, as a fee component would be: booking, service, delivery, payment_surcharge and so on Example payment_surcharge @enum {string}
request.label?stringDescription What the buyer is shown Example Card payment cost (business)
request.reason?stringExample Business purchase on a company card; charged at cost
request.taxCategory?"non_taxable" | "service" | "goods" | "delivery" | "booking_fee"Description What it is taxed as; defaults by kind
requestOptions?RequestOptions-

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

addOrderFeeLine

addGiftCard()#

addGiftCard: (orderId: string, request: {
  amount?: number;
  delivery: {
     message?: string | null;
     method: "email" | "box_office_print" | "post";
     recipientEmail?: string | null;
     recipientName?: string | null;
  };
  productId: string;
}, requestOptions?: RequestOptions) => Promise<{
  giftCard: {
     accountId: string | null;
     balance: number;
     book: "live" | "test";
     codeIssuedAt: string | null;
     codeLast4: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     eventId: string | null;
     expiresAt: string | null;
     expiryPolicy: {
        dormancyFee:   | {
           afterInactiveMonths: number;
           amount: number;
         }
           | null;
        jurisdiction: string | null;
        minimumMonths: number | null;
        months: number | null;
        source: "organisation" | "jurisdiction_default";
     };
     faceValue: number | null;
     id: string;
     instrument: "account_credit" | "gift_card" | "pass_balance";
     lastActivityAt: string;
     ownerType: "customer" | "bearer" | "pass";
     recipient:   | {
        email?: string | null;
        message?: string | null;
        name?: string | null;
      }
        | null;
     sourceOrderId: string | null;
     sourceOrderLineItemId: string | null;
     status: "expired" | "active" | "void" | "pending" | "frozen";
     updatedAt: string;
  };
  order: {
     id: string;
     status: string;
     total: number;
  };
}>;

Sell a gift card on an order Puts a gift card on a pending order that has taken no payment (the box office sells one at the counter, beside tickets or alone): a gift_card line owed to the organisation and a pending card. Paying the order loads the card (the sale credits the organisation's stored-value liability, not revenue); then its code is issued: emailed to its recipient by the fulfilment queue, or minted at the station with POST /stored-value/gift-cards/{id}/issue-code to print. The amount must be one the product sells (GIFT_CARD_AMOUNT_INVALID) and the delivery one it allows (GIFT_CARD_DELIVERY_NOT_ALLOWED). Needs orders.update or orders.create on the order's account and channel.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ amount?: number; delivery: { message?: string | null; method: "email" | "box_office_print" | "post"; recipientEmail?: string | null; recipientName?: string | null; }; productId: string; }-
request.amount?numberDescription Minor units: one of the product's amounts, or within its range Example 5000
request.delivery?{ message?: string | null; method: "email" | "box_office_print" | "post"; recipientEmail?: string | null; recipientName?: string | null; }-
request.delivery.message?string | null-
request.delivery.method?"email" | "box_office_print" | "post"-
request.delivery.recipientEmail?string | nullFormat: email Description Where an emailed card goes; the buyer when left out
request.delivery.recipientName?string | null-
request.productId?string-
requestOptions?RequestOptions-

Returns#

Promise<{ giftCard: { accountId: string | null; balance: number; book: "live" | "test"; codeIssuedAt: string | null; codeLast4: string | null; createdAt: string; currency: string; customerId: string | null; eventId: string | null; expiresAt: string | null; expiryPolicy: { dormancyFee: | { afterInactiveMonths: number; amount: number; } | null; jurisdiction: string | null; minimumMonths: number | null; months: number | null; source: "organisation" | "jurisdiction_default"; }; faceValue: number | null; id: string; instrument: "account_credit" | "gift_card" | "pass_balance"; lastActivityAt: string; ownerType: "customer" | "bearer" | "pass"; recipient: | { email?: string | null; message?: string | null; name?: string | null; } | null; sourceOrderId: string | null; sourceOrderLineItemId: string | null; status: "expired" | "active" | "void" | "pending" | "frozen"; updatedAt: string; }; order: { id: string; status: string; total: number; }; }>

Operation Id#

addOrderGiftCard

addItem()#

addItem: (orderId: string, request: {
  description?: string;
  feeDetails?: Record<string, any>;
  metadata?: Record<string, any>;
  name: string;
  productDetails?: Record<string, any>;
  quantity?: number;
  ticketDetails?: Record<string, any>;
  type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
  unitPrice: number;
}, requestOptions?: RequestOptions) => Promise<{
  item: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  };
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
}>;

Add line item Add a line item to an order

Parameters#

ParameterType
orderIdstring
request{ description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }
request.description?string
request.feeDetails?Record<string, any>
request.metadata?Record<string, any>
request.name?string
request.productDetails?Record<string, any>
request.quantity?number
request.ticketDetails?Record<string, any>
request.type?"product" | "ticket" | "addon" | "fee" | "tax" | "discount"
request.unitPrice?number
requestOptions?RequestOptions

Returns#

Promise<{ item: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }; order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; }>

Operation Id#

addOrderLineItem

addNote()#

addNote: (orderId: string, request: {
  body: string;
  tier?: "internal" | "restricted";
}, requestOptions?: RequestOptions) => Promise<{
  author: {
     id: string | null;
     kind: string;
  };
  body: string;
  createdAt: string;
  deletedAt: string | null;
  editedAt: string | null;
  id: string;
  legacyField: string | null;
  objectId: string;
  objectType: string;
  redactedAt: string | null;
  tier: "internal" | "restricted";
}>;

Add order note Add a staff note to an order, internal by default. Needs the permission to update the order; a restricted note also needs the restricted update permission (403 NOTE_TIER_FORBIDDEN). The note, and every later change to it, is in the order's history.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ body: string; tier?: "internal" | "restricted"; }-
request.bodystringDescription Markdown Example Comp for the promoter.
request.tier?"internal" | "restricted"Description Default internal Example internal @enum {string}
requestOptions?RequestOptions-

Returns#

Promise<{ author: { id: string | null; kind: string; }; body: string; createdAt: string; deletedAt: string | null; editedAt: string | null; id: string; legacyField: string | null; objectId: string; objectType: string; redactedAt: string | null; tier: "internal" | "restricted"; }>

Operation Id#

createOrderNote

assignAddOn()#

assignAddOn: (orderId: string, request: {
  orderLineItemId: string;
  slotId: string;
  unitIndex: number;
}, requestOptions?: RequestOptions) => Promise<{
  bookingPasses: {
     eventId: string | null;
     passId: string;
     status: string;
  }[];
  orderId: string;
  slots: {
     eventId: string;
     holder: {
        email: string | null;
        id: string;
        name: string | null;
     };
     id: string;
     items: {
        eligibleSlotIds: string[] | null;
        entitlementId: string | null;
        orderId: string;
        orderLineItemId: string;
        passId: string | null;
        role: "holder" | "add_on";
        ticketTypeId: string;
        ticketTypeName: string | null;
        unitIndex: number;
     }[];
     kind: "person" | "vehicle" | "group";
     label: string;
     mediaType: string | null;
     naming: {
        changesCloseAt: string | null;
        maxNameChanges: number | null;
        nameChangesAllowed: boolean;
        namesCloseAt: string | null;
        policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
        required: boolean;
        transfersAllowed: boolean;
     };
     orderId: string;
     passId: string | null;
     position: number;
     wristband: {
        activeAt: string | null;
        method: string | null;
        shipmentId: string | null;
        state:   | "active"
           | "none"
           | "to_exchange"
           | "to_post"
           | "to_collect"
           | "posted_pending_activation";
        uid: string | null;
     };
  }[];
  unassigned: {
     eligibleSlotIds: string[];
     entitlementId: string | null;
     orderLineItemId: string;
     passId: string | null;
     ticketTypeId: string;
     ticketTypeName: string | null;
     unitIndex: number;
  }[];
}>;

Put an add-on on a holder Assign one unit of an add-on line on this order to a holder, or move it to another: one of this order's holders, or one of the buyer's from an earlier booking for the event. Once issued, the add-on's entitlement moves onto the holder's pass. 409 ADD_ON_HOLDER_MISMATCH (wrong kind of holder, no parent ticket, or someone else's booking), ADD_ON_LIMIT_REACHED, NOT_AN_ADD_ON, ENTITLEMENT_IN_USE (scanned), or PASS_CHANGE_CLOSED (past the pass policy's cutoff).

Parameters#

ParameterTypeDescription
orderIdstring-
request{ orderLineItemId: string; slotId: string; unitIndex: number; }-
request.orderLineItemIdstringDescription The add-on line on this order
request.slotId?stringDescription The holder: one of this order's slots or one of the buyer's from an earlier booking
request.unitIndex?number-
requestOptions?RequestOptions-

Returns#

Promise<{ bookingPasses: { eventId: string | null; passId: string; status: string; }[]; orderId: string; slots: { eventId: string; holder: { email: string | null; id: string; name: string | null; }; id: string; items: { eligibleSlotIds: string[] | null; entitlementId: string | null; orderId: string; orderLineItemId: string; passId: string | null; role: "holder" | "add_on"; ticketTypeId: string; ticketTypeName: string | null; unitIndex: number; }[]; kind: "person" | "vehicle" | "group"; label: string; mediaType: string | null; naming: { changesCloseAt: string | null; maxNameChanges: number | null; nameChangesAllowed: boolean; namesCloseAt: string | null; policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate"; required: boolean; transfersAllowed: boolean; }; orderId: string; passId: string | null; position: number; wristband: { activeAt: string | null; method: string | null; shipmentId: string | null; state: | "active" | "none" | "to_exchange" | "to_post" | "to_collect" | "posted_pending_activation"; uid: string | null; }; }[]; unassigned: { eligibleSlotIds: string[]; entitlementId: string | null; orderLineItemId: string; passId: string | null; ticketTypeId: string; ticketTypeName: string | null; unitIndex: number; }[]; }>

Operation Id#

assignOrderAddOn

cancel()#

cancel: (orderId: string, request: {
  reason: string;
}, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Cancel order Cancel an order with a reason. Its passes are cancelled with it, and are refused at the door.

Parameters#

ParameterType
orderIdstring
request{ reason: string; }
request.reasonstring
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

cancelOrder

create()#

create: (request: {
  accountId: string;
  channel?: string;
  currency?: string;
  customerId?: string;
  customerNotes?: string;
  expiresInMinutes?: number;
  internalNotes?: string;
  isGuestCheckout?: boolean;
  items?: {
     description?: string;
     feeDetails?: Record<string, any>;
     metadata?: Record<string, any>;
     name: string;
     productDetails?: Record<string, any>;
     quantity?: number;
     ticketDetails?: Record<string, any>;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
     unitPrice: number;
  }[];
  metadata?: Record<string, any>;
}, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Create order Create a new order with optional line items. A channel secret key (tlsk_) is refused with 403 PRINCIPAL_NOT_ALLOWED: it sells through the cart (POST /cart), which prices from the catalogue and the channel.

Parameters#

ParameterType
request{ accountId: string; channel?: string; currency?: string; customerId?: string; customerNotes?: string; expiresInMinutes?: number; internalNotes?: string; isGuestCheckout?: boolean; items?: { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[]; metadata?: Record<string, any>; }
request.accountIdstring
request.channel?string
request.currency?string
request.customerId?string
request.customerNotes?string
request.expiresInMinutes?number
request.internalNotes?string
request.isGuestCheckout?boolean
request.items?{ description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[]
request.metadata?Record<string, any>
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

createOrder

deleteNote()#

deleteNote: (orderId: string, noteId: string, requestOptions?: RequestOptions) => Promise<{
  author: {
     id: string | null;
     kind: string;
  };
  body: string;
  createdAt: string;
  deletedAt: string | null;
  editedAt: string | null;
  id: string;
  legacyField: string | null;
  objectId: string;
  objectType: string;
  redactedAt: string | null;
  tier: "internal" | "restricted";
}>;

Delete order note Delete a note. Its author only (403 NOTE_AUTHOR_ONLY). It leaves the list; the order's history keeps what it said.

Parameters#

ParameterType
orderIdstring
noteIdstring
requestOptions?RequestOptions

Returns#

Promise<{ author: { id: string | null; kind: string; }; body: string; createdAt: string; deletedAt: string | null; editedAt: string | null; id: string; legacyField: string | null; objectId: string; objectType: string; redactedAt: string | null; tier: "internal" | "restricted"; }>

Operation Id#

deleteOrderNote

fulfilment()#

fulfilment: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  orderId: string;
  units: {
     acceptedAt: string | null;
     accountId: string;
     attempts: number;
     cancelledAt: string | null;
     carriesTickets: boolean;
     createdAt: string;
     deliveredAt: string | null;
     events?: {
        actor: string | null;
        createdAt: string;
        detail:   | {
         [key: ...]: ...;
         }
           | null;
        fromStatus: string | null;
        id: string;
        kind: string;
        toStatus: string | null;
     }[];
     fulfilledAt: string | null;
     holds: {
        createdAt: string;
        id: string;
        note: string | null;
        placedBy: string | null;
        reason:   | "manual"
           | "awaiting_payment"
           | "awaiting_names"
           | "release_date"
           | "fraud_review"
           | "out_of_stock";
        releaseAt: string | null;
        releasedAt: string | null;
        releasedBy: string | null;
        releaseNote: string | null;
     }[];
     id: string;
     isTest: boolean;
     items: {
        entitlementId: string | null;
        fulfilledAt: string | null;
        id: string;
        orderLineItemId: string | null;
        passId: string | null;
        slotId: string | null;
        status: "cancelled" | "pending" | "fulfilled" | "returned";
        storedValueAccountId: string | null;
        wristband: boolean;
     }[];
     kind: "digital" | "physical";
     lastError: string | null;
     method:   | "email"
        | "sms"
        | "app"
        | "exchange"
        | "print_now"
        | "wallet"
        | "box_office_print"
        | "post"
        | "collect"
        | "load_onto_card"
        | "print_mail_partner";
     nextAttemptAt: string | null;
     orderId: string;
     outcome:   | "exchanged"
        | "no_recipient"
        | "sent"
        | "shown"
        | "loaded"
        | "printed"
        | "dispatched"
        | "collected"
        | null;
     provider:   | "print_mail_partner"
        | "ticketlayer_email"
        | "in_house"
        | "managed_fulfilment";
     providerReference: string | null;
     status:   | "failed"
        | "cancelled"
        | "pending"
        | "in_progress"
        | "on_hold"
        | "fulfilled"
        | "delivered";
     targetPassId: string | null;
     updatedAt: string;
  }[];
}>;

How an order is being delivered The order's fulfilment units, one per delivery method: the email (its confirmation, carrying the tickets when they go digitally) and the chosen method's unit. Each with its provider, status and outcome, its items (one per entitlement, each with its own status), its holds (awaiting payment until the order is paid) and its history.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ orderId: string; units: { acceptedAt: string | null; accountId: string; attempts: number; cancelledAt: string | null; carriesTickets: boolean; createdAt: string; deliveredAt: string | null; events?: { actor: string | null; createdAt: string; detail: | { [key: ...]: ...; } | null; fromStatus: string | null; id: string; kind: string; toStatus: string | null; }[]; fulfilledAt: string | null; holds: { createdAt: string; id: string; note: string | null; placedBy: string | null; reason: | "manual" | "awaiting_payment" | "awaiting_names" | "release_date" | "fraud_review" | "out_of_stock"; releaseAt: string | null; releasedAt: string | null; releasedBy: string | null; releaseNote: string | null; }[]; id: string; isTest: boolean; items: { entitlementId: string | null; fulfilledAt: string | null; id: string; orderLineItemId: string | null; passId: string | null; slotId: string | null; status: "cancelled" | "pending" | "fulfilled" | "returned"; storedValueAccountId: string | null; wristband: boolean; }[]; kind: "digital" | "physical"; lastError: string | null; method: | "email" | "sms" | "app" | "exchange" | "print_now" | "wallet" | "box_office_print" | "post" | "collect" | "load_onto_card" | "print_mail_partner"; nextAttemptAt: string | null; orderId: string; outcome: | "exchanged" | "no_recipient" | "sent" | "shown" | "loaded" | "printed" | "dispatched" | "collected" | null; provider: | "print_mail_partner" | "ticketlayer_email" | "in_house" | "managed_fulfilment"; providerReference: string | null; status: | "failed" | "cancelled" | "pending" | "in_progress" | "on_hold" | "fulfilled" | "delivered"; targetPassId: string | null; updatedAt: string; }[]; }>

Operation Id#

getOrderFulfilment

get()#

get: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Get order Get a specific order by ID

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

getOrder

getByNumber()#

getByNumber: (orderNumber: string, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Get order by number Get a specific order by order number

Parameters#

ParameterType
orderNumberstring
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

getOrderByNumber

getHistory()#

getHistory: (orderId: string, options?: {
  cursor?: string;
  limit?: number;
}, requestOptions?: RequestOptions) => Promise<{
  history: {
     actor: {
        id: string | null;
        kind: string;
     };
     at: string;
     changes: {
      [key: string]: {
        from?: unknown;
        to?: unknown;
      };
     };
     id: string;
     kind: string;
     objectId: string;
     objectType: string;
     redacted: boolean;
     requestId: string | null;
     version: number | null;
  }[];
  nextCursor: string | null;
}>;

Get order history Every change to an order: who made it (a person, a key, an app or the system), when, from which request, and each field from and to. Newest first. Each change shows only the fields the caller may read: a change to a field above their tier is not shown, and a change made only to such fields is left out. Paged by cursor.

Parameters#

ParameterType
orderIdstring
options?{ cursor?: string; limit?: number; }
options.cursor?string
options.limit?number
requestOptions?RequestOptions

Returns#

Promise<{ history: { actor: { id: string | null; kind: string; }; at: string; changes: { [key: string]: { from?: unknown; to?: unknown; }; }; id: string; kind: string; objectId: string; objectType: string; redacted: boolean; requestId: string | null; version: number | null; }[]; nextCursor: string | null; }>

Operation Id#

getOrderHistory

getPasses()#

getPasses: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  entitlements: {
     createdAt: string;
     currency: string | null;
     eventOccurrenceId: string | null;
     id: string;
     name: string;
     orderLineItemId: string;
     passId: string | null;
     redemptionCount: number;
     redemptionLimit: number | null;
     seatLabel: string | null;
     status: string;
     ticketTypeId: string | null;
     type: string;
     unitPrice: number | null;
  }[];
  passes: {
     barcode: string;
     createdAt: string;
     customerId: string | null;
     holderEmail: string | null;
     holderName: string | null;
     id: string;
     issuedAt: string;
     status: string;
     type: string;
  }[];
  redemptions: {
     createdAt: string;
     deviceId: string | null;
     entitlementId: string;
     id: string;
     location: string | null;
     passId: string;
     redeemedBy: string | null;
     rejectionReason: string | null;
     reversalReason: string | null;
     reversedAt: string | null;
     status: string;
  }[];
}>;

Get order passes List the passes, entitlements and redemptions issued for an order (the order's tickets). Staff surface - includes the redemption barcode.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ entitlements: { createdAt: string; currency: string | null; eventOccurrenceId: string | null; id: string; name: string; orderLineItemId: string; passId: string | null; redemptionCount: number; redemptionLimit: number | null; seatLabel: string | null; status: string; ticketTypeId: string | null; type: string; unitPrice: number | null; }[]; passes: { barcode: string; createdAt: string; customerId: string | null; holderEmail: string | null; holderName: string | null; id: string; issuedAt: string; status: string; type: string; }[]; redemptions: { createdAt: string; deviceId: string | null; entitlementId: string; id: string; location: string | null; passId: string; redeemedBy: string | null; rejectionReason: string | null; reversalReason: string | null; reversedAt: string | null; status: string; }[]; }>

Operation Id#

getOrderPasses

getPassPdf()#

getPassPdf: (orderId: string, passId: string, requestOptions?: RequestOptions) => Promise<any>;

Download a pass as a PDF ticket Render and stream a single pass as a PDF ticket (application/pdf). Staff surface; browsers fetch this directly rather than through the typed SDK.

Parameters#

ParameterType
orderIdstring
passIdstring
requestOptions?RequestOptions

Returns#

Promise<any>

Operation Id#

getOrderPassPdf

getPaymentStatus()#

getPaymentStatus: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  amount: number | null;
  currency: string | null;
  failedAt: string | null;
  failureReason: string | null;
  paidAt: string | null;
  paymentId: string | null;
  status:   | "succeeded"
     | "failed"
     | "cancelled"
     | "none"
     | "pending"
     | "processing"
     | "requires_action";
}>;

Get payment status Get the current payment status for an order

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ amount: number | null; currency: string | null; failedAt: string | null; failureReason: string | null; paidAt: string | null; paymentId: string | null; status: | "succeeded" | "failed" | "cancelled" | "none" | "pending" | "processing" | "requires_action"; }>

Operation Id#

getOrderPaymentStatus

holders()#

holders: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  bookingPasses: {
     eventId: string | null;
     passId: string;
     status: string;
  }[];
  orderId: string;
  slots: {
     eventId: string;
     holder: {
        email: string | null;
        id: string;
        name: string | null;
     };
     id: string;
     items: {
        eligibleSlotIds: string[] | null;
        entitlementId: string | null;
        orderId: string;
        orderLineItemId: string;
        passId: string | null;
        role: "holder" | "add_on";
        ticketTypeId: string;
        ticketTypeName: string | null;
        unitIndex: number;
     }[];
     kind: "person" | "vehicle" | "group";
     label: string;
     mediaType: string | null;
     naming: {
        changesCloseAt: string | null;
        maxNameChanges: number | null;
        nameChangesAllowed: boolean;
        namesCloseAt: string | null;
        policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
        required: boolean;
        transfersAllowed: boolean;
     };
     orderId: string;
     passId: string | null;
     position: number;
     wristband: {
        activeAt: string | null;
        method: string | null;
        shipmentId: string | null;
        state:   | "active"
           | "none"
           | "to_exchange"
           | "to_post"
           | "to_collect"
           | "posted_pending_activation";
        uid: string | null;
     };
  }[];
  unassigned: {
     eligibleSlotIds: string[];
     entitlementId: string | null;
     orderLineItemId: string;
     passId: string | null;
     ticketTypeId: string;
     ticketTypeName: string | null;
     unitIndex: number;
  }[];
}>;

An order's holders and add-ons Who each unit is for: one holder slot per unit of a ticket type that creates a holder (a person, vehicle or group), "Guest 1" until named, with its per-holder pass once issued and the add-ons on it (from this order, or a later one of the buyer's). Add-ons not yet on a holder are listed with the holders they can go to.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ bookingPasses: { eventId: string | null; passId: string; status: string; }[]; orderId: string; slots: { eventId: string; holder: { email: string | null; id: string; name: string | null; }; id: string; items: { eligibleSlotIds: string[] | null; entitlementId: string | null; orderId: string; orderLineItemId: string; passId: string | null; role: "holder" | "add_on"; ticketTypeId: string; ticketTypeName: string | null; unitIndex: number; }[]; kind: "person" | "vehicle" | "group"; label: string; mediaType: string | null; naming: { changesCloseAt: string | null; maxNameChanges: number | null; nameChangesAllowed: boolean; namesCloseAt: string | null; policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate"; required: boolean; transfersAllowed: boolean; }; orderId: string; passId: string | null; position: number; wristband: { activeAt: string | null; method: string | null; shipmentId: string | null; state: | "active" | "none" | "to_exchange" | "to_post" | "to_collect" | "posted_pending_activation"; uid: string | null; }; }[]; unassigned: { eligibleSlotIds: string[]; entitlementId: string | null; orderLineItemId: string; passId: string | null; ticketTypeId: string; ticketTypeName: string | null; unitIndex: number; }[]; }>

Operation Id#

getOrderHolders

initiatePayment()#

initiatePayment: (orderId: string, request: {
  amount?: number;
  amountTendered?: number;
  locationId?: string;
  metadata?: Record<string, any>;
  paymentMethod:   | "in_person_cash"
     | "in_person_card"
     | "online_card"
     | "bank_transfer"
     | "cheque"
     | "online_bank_transfer"
     | "online_wallet";
  returnUrl?: string;
}, requestOptions?: RequestOptions) => Promise<{
  cash:   | {
     amountDue: number;
     amountTendered: number;
     changeDue: number;
     locationId: string | null;
   }
     | null;
  isZeroValue: boolean;
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
  payment: {
     amount: number;
     clientSecret: string | null;
     currency: string;
     externalPaymentId: string | null;
     paymentId: string;
     status: string;
  };
  workflowId: string | null;
}>;

Initiate payment Initiate payment for an order. The amount is the order's total, never the caller's. Needs orders.update, or orders.pay: the narrow permission that takes payment for an order and does nothing else (it cannot cancel the order, change its status or refund it). A channel secret key holds orders.pay for its own channel's orders.

Cash (in_person_cash) is taken and settled here, at once: send amountTendered (what the buyer handed over) and, at a box office, the locationId whose till drawer the cash goes into. The payment is recorded captured for the amount due, the order is paid and confirmed, and the sale is posted to the ledger with the cash in the drawer, all in one transaction; the answer carries cash.changeDue. Less tendered than is due is refused with CASH_TENDER_INSUFFICIENT and nothing is recorded. The account's cash payment provider is created the first time it takes cash. Retry with the same Idempotency-Key to get the first answer back without taking the cash twice.

Parameters#

ParameterType
orderIdstring
request{ amount?: number; amountTendered?: number; locationId?: string; metadata?: Record<string, any>; paymentMethod: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet"; returnUrl?: string; }
request.amount?number
request.amountTendered?number
request.locationId?string
request.metadata?Record<string, any>
request.paymentMethod?| "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque" | "online_bank_transfer" | "online_wallet"
request.returnUrl?string
requestOptions?RequestOptions

Returns#

Promise<{ cash: | { amountDue: number; amountTendered: number; changeDue: number; locationId: string | null; } | null; isZeroValue: boolean; order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; payment: { amount: number; clientSecret: string | null; currency: string; externalPaymentId: string | null; paymentId: string; status: string; }; workflowId: string | null; }>

Operation Id#

initiateOrderPayment

list()#

list: (options?: {
  channel?: string;
  cursor?: string;
  customerId?: string;
  fromDate?: string;
  limit?: string;
  page?: string;
  search?: string;
  status?:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  toDate?: string;
  updatedSince?: string;
}, requestOptions?: RequestOptions) => Promise<{
  orders: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: ...]: ...;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: ...]: ...;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: ...]: ...;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: ...]: ...;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  }[];
  pagination: {
     limit: number;
     page: number;
     total: number;
     totalPages: number;
  };
}>;

List orders List all orders with optional filtering and pagination. Each order carries the fields the caller's access tiers reach: orders.read for its account shows every documented field, and orders.list alone shows only public fields, which an order has none of.

Parameters#

ParameterType
options?{ channel?: string; cursor?: string; customerId?: string; fromDate?: string; limit?: string; page?: string; search?: string; status?: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; toDate?: string; updatedSince?: string; }
options.channel?string
options.cursor?string
options.customerId?string
options.fromDate?string
options.limit?string
options.page?string
options.search?string
options.status?| "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"
options.toDate?string
options.updatedSince?string
requestOptions?RequestOptions

Returns#

Promise<{ orders: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: ...]: ...; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: ...]: ...; } | null; name: string; orderId: string; productDetails: | { [key: ...]: ...; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: ...]: ...; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }[]; pagination: { limit: number; page: number; total: number; totalPages: number; }; }>

Operation Id#

listOrders

listNotes()#

listNotes: (orderId: string, options?: {
  cursor?: string;
  limit?: number;
}, requestOptions?: RequestOptions) => Promise<{
  nextCursor: string | null;
  notes: {
     author: {
        id: string | null;
        kind: string;
     };
     body: string;
     createdAt: string;
     deletedAt: string | null;
     editedAt: string | null;
     id: string;
     legacyField: string | null;
     objectId: string;
     objectType: string;
     redactedAt: string | null;
     tier: "internal" | "restricted";
  }[];
}>;

List order notes The staff notes on an order, newest first, at the tiers the caller reads: internal notes to whoever reads the order, restricted ones only with the restricted permission. Paged by cursor.

Parameters#

ParameterType
orderIdstring
options?{ cursor?: string; limit?: number; }
options.cursor?string
options.limit?number
requestOptions?RequestOptions

Returns#

Promise<{ nextCursor: string | null; notes: { author: { id: string | null; kind: string; }; body: string; createdAt: string; deletedAt: string | null; editedAt: string | null; id: string; legacyField: string | null; objectId: string; objectType: string; redactedAt: string | null; tier: "internal" | "restricted"; }[]; }>

Operation Id#

listOrderNotes

nameHolder()#

nameHolder: (orderId: string, slotId: string, request: {
  email?: string | null;
  name: string;
}, requestOptions?: RequestOptions) => Promise<{
  bookingPasses: {
     eventId: string | null;
     passId: string;
     status: string;
  }[];
  orderId: string;
  slots: {
     eventId: string;
     holder: {
        email: string | null;
        id: string;
        name: string | null;
     };
     id: string;
     items: {
        eligibleSlotIds: string[] | null;
        entitlementId: string | null;
        orderId: string;
        orderLineItemId: string;
        passId: string | null;
        role: "holder" | "add_on";
        ticketTypeId: string;
        ticketTypeName: string | null;
        unitIndex: number;
     }[];
     kind: "person" | "vehicle" | "group";
     label: string;
     mediaType: string | null;
     naming: {
        changesCloseAt: string | null;
        maxNameChanges: number | null;
        nameChangesAllowed: boolean;
        namesCloseAt: string | null;
        policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate";
        required: boolean;
        transfersAllowed: boolean;
     };
     orderId: string;
     passId: string | null;
     position: number;
     wristband: {
        activeAt: string | null;
        method: string | null;
        shipmentId: string | null;
        state:   | "active"
           | "none"
           | "to_exchange"
           | "to_post"
           | "to_collect"
           | "posted_pending_activation";
        uid: string | null;
     };
  }[];
  unassigned: {
     eligibleSlotIds: string[];
     entitlementId: string | null;
     orderLineItemId: string;
     passId: string | null;
     ticketTypeId: string;
     ticketTypeName: string | null;
     unitIndex: number;
  }[];
}>;

Name a holder Put a name (and optionally an email) on one of the order's holder slots. Before the order is issued the slot takes it; after, the holder's pass is named or renamed under the event's pass policy, as POST /passes/{passId}/name does: 409 PASS_FROZEN once scanned, activated or posted, PASS_CHANGE_NOT_ALLOWED, PASS_CHANGE_LIMIT_REACHED or PASS_CHANGE_CLOSED.

Parameters#

ParameterTypeDescription
orderIdstring-
slotIdstring-
request{ email?: string | null; name: string; }-
request.email?string | nullFormat: email
request.name?string-
requestOptions?RequestOptions-

Returns#

Promise<{ bookingPasses: { eventId: string | null; passId: string; status: string; }[]; orderId: string; slots: { eventId: string; holder: { email: string | null; id: string; name: string | null; }; id: string; items: { eligibleSlotIds: string[] | null; entitlementId: string | null; orderId: string; orderLineItemId: string; passId: string | null; role: "holder" | "add_on"; ticketTypeId: string; ticketTypeName: string | null; unitIndex: number; }[]; kind: "person" | "vehicle" | "group"; label: string; mediaType: string | null; naming: { changesCloseAt: string | null; maxNameChanges: number | null; nameChangesAllowed: boolean; namesCloseAt: string | null; policy: "none" | "at_checkout" | "before_deadline" | "id_at_gate"; required: boolean; transfersAllowed: boolean; }; orderId: string; passId: string | null; position: number; wristband: { activeAt: string | null; method: string | null; shipmentId: string | null; state: | "active" | "none" | "to_exchange" | "to_post" | "to_collect" | "posted_pending_activation"; uid: string | null; }; }[]; unassigned: { eligibleSlotIds: string[]; entitlementId: string | null; orderLineItemId: string; passId: string | null; ticketTypeId: string; ticketTypeName: string | null; unitIndex: number; }[]; }>

Operation Id#

nameOrderHolder

paymentMethods()#

paymentMethods: (orderId: string, options?: {
  surface?: "box_office" | "online";
}, requestOptions?: RequestOptions) => Promise<{
  methods: {
     available: boolean;
     closesAt: string | null;
     kind: "processed" | "stored_value" | "recorded";
     label: string;
     method:   | "card"
        | "other"
        | "bank_transfer"
        | "cheque"
        | "manual_card"
        | "invoice"
        | "voucher"
        | "paypal"
        | "terminal_card"
        | "cash"
        | "stored_value";
     pending: boolean;
     reason:   | "closed"
        | "not_allowed"
        | "wrong_surface"
        | "no_processor"
        | "not_built"
        | null;
  }[];
  orderId: string;
  pendingClosesDaysBefore: number;
  pendingExpiryAction: "cancel" | "task";
  surface: "box_office" | "online";
}>;

What an order can be paid with Every method in the payment method catalogue, and whether this order can be paid with it here: the organisation's, the channel's account's, the channel's and each event's policies narrowed together, what the organisation's processors can take (card online; a terminal when the account has a reader), the surface, and for bank transfer, cheque and invoice how close the first event is. Each method that cannot be used says why, and is still listed. Invoice and bank transfer are staff-only: a channel key or an embed session, acting for a buyer, never sees them.

Parameters#

ParameterType
orderIdstring
options?{ surface?: "box_office" | "online"; }
options.surface?"box_office" | "online"
requestOptions?RequestOptions

Returns#

Promise<{ methods: { available: boolean; closesAt: string | null; kind: "processed" | "stored_value" | "recorded"; label: string; method: | "card" | "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher" | "paypal" | "terminal_card" | "cash" | "stored_value"; pending: boolean; reason: | "closed" | "not_allowed" | "wrong_surface" | "no_processor" | "not_built" | null; }[]; orderId: string; pendingClosesDaysBefore: number; pendingExpiryAction: "cancel" | "task"; surface: "box_office" | "online"; }>

Operation Id#

getOrderPaymentMethods

paymentTerms()#

paymentTerms: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  amountDue: number;
  dueAt: string;
  expiryAction: "cancel" | "task";
  invoiceNumber: string | null;
  method: "bank_transfer" | "cheque" | "invoice";
  overdueAt: string | null;
  overdueOutcome: "cancelled" | "paid" | "task" | null;
  paymentReference: string;
} & Record<string, never>>;

Get the terms of an order awaiting payment The method, due date, expiry action, invoice number and payment reference an order was placed awaiting payment on, what it still owes, and what the due-date sweep did once past due. Null for an order never placed awaiting payment.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ amountDue: number; dueAt: string; expiryAction: "cancel" | "task"; invoiceNumber: string | null; method: "bank_transfer" | "cheque" | "invoice"; overdueAt: string | null; overdueOutcome: "cancelled" | "paid" | "task" | null; paymentReference: string; } & Record<string, never>>

Operation Id#

getOrderPaymentTerms

placeAwaitingPayment()#

placeAwaitingPayment: (orderId: string, request: {
  dueAt?: string;
  method: "bank_transfer" | "cheque" | "invoice";
}, requestOptions?: RequestOptions) => Promise<{
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
  terms: {
     amountDue: number;
     dueAt: string;
     expiryAction: "cancel" | "task";
     invoiceNumber: string | null;
     method: "bank_transfer" | "cheque" | "invoice";
     overdueAt: string | null;
     overdueOutcome: "cancelled" | "paid" | "task" | null;
     paymentReference: string;
  };
}>;

Place an order awaiting payment Places a pending order on a pending method - bank transfer, cheque or invoice - with a due date. The order moves to awaiting_payment, its seats are held to the due date, and nothing is issued: its tickets issue when recorded payments (POST /orders/{orderId}/recorded-payments) bring it to its total, or earlier only if staff send them now.

The method must be on offer for the order (PAYMENT_METHOD_NOT_AVAILABLE otherwise), which includes not being past its close before the event, 7 days by default. If the due date passes unpaid, the order's policy decides: cancelled and its seats released, or a task raised for staff; an order with money already paid always gets a task. An invoice gets an invoice number; its document comes with tax documents. Needs orders.update or orders.pay on the order's account and channel.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ dueAt?: string; method: "bank_transfer" | "cheque" | "invoice"; }-
request.dueAt?stringFormat: date-time Description When the money is due. Left out: 14 days from now, or when the method closes before the event (7 days before it by default) if that is sooner. It cannot be later than that close. Example 2026-10-16T17:00:00Z
request.method?"bank_transfer" | "cheque" | "invoice"Description The pending method the buyer will pay by. It must be on offer for the order now (GET /orders/{orderId}/payment-methods). Example bank_transfer @enum {string}
requestOptions?RequestOptions-

Returns#

Promise<{ order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; terms: { amountDue: number; dueAt: string; expiryAction: "cancel" | "task"; invoiceNumber: string | null; method: "bank_transfer" | "cheque" | "invoice"; overdueAt: string | null; overdueOutcome: "cancelled" | "paid" | "task" | null; paymentReference: string; }; }>

Operation Id#

placeOrderAwaitingPayment

printPass()#

printPass: (orderId: string, passId: string, request: {
  printerId: string;
  type?: "print.ticket" | "print.label" | "print.receipt";
}, requestOptions?: RequestOptions) => Promise<string>;

Print a pass to a device Render the pass to its canonical SVG and dispatch it as a print job to a printer device. Returns the device command id (poll the devices command for status).

Parameters#

ParameterType
orderIdstring
passIdstring
request{ printerId: string; type?: "print.ticket" | "print.label" | "print.receipt"; }
request.printerIdstring
request.type?"print.ticket" | "print.label" | "print.receipt"
requestOptions?RequestOptions

Returns#

Promise<string>

Operation Id#

printPass

recordExternalPayment()#

recordExternalPayment: (orderId: string, request: {
  amount?: number;
  metadata?: Record<string, any>;
  paymentMethod:   | "in_person_cash"
     | "in_person_card"
     | "online_card"
     | "bank_transfer"
     | "cheque";
  reference?: string;
}, requestOptions?: RequestOptions) => Promise<{
  collection: {
     channelId: string;
     holderAccountId: string;
     ledgerAccount: string;
     paymentMethod:   | "in_person_cash"
        | "in_person_card"
        | "online_card"
        | "bank_transfer"
        | "cheque";
     reference: string | null;
  };
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
  payment: {
     amount: number;
     currency: string;
     externalPaymentId: string;
     paymentId: string;
     paymentMethod:   | "in_person_cash"
        | "in_person_card"
        | "online_card"
        | "bank_transfer"
        | "cheque";
     status: "succeeded";
  };
}>;

Record payment the channel collected itself Records that the order's channel took the buyer's money itself - cash at its counter, a card on its own terminal, a card through its own payment provider, a bank transfer or a cheque to it - for the amount the order owes. The payment records the real method; the order is paid and confirmed and its tickets issue, in one transaction. Nothing is charged and no payment provider is involved.

The channel's owning account HOLDS the money, so the ledger records it in that account's own Cash and the sale makes it owe the event owner the face value and each fee earner its fee (Party:{holder}:Payable:{party}, mirrored by the party's Receivable), until it settles with POST /ledger/settlements. A refund of the order reduces what it owes.

The channel must opt in: its externalCollection setting must be enabled and list the method (EXTERNAL_COLLECTION_NOT_ENABLED, EXTERNAL_COLLECTION_METHOD_NOT_ALLOWED otherwise). Needs orders.update or orders.pay on the order's account and channel, so a channel secret key (tlsk_) records for its own channel's orders; a person, an organisation API key and a channel secret key may call it, an embed session may not, and a publishable key (tlpk_) never reaches the Backstage API. Retry with the same Idempotency-Key to get the first answer back without recording the payment twice.

Parameters#

ParameterType
orderIdstring
request{ amount?: number; metadata?: Record<string, any>; paymentMethod: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque"; reference?: string; }
request.amount?number
request.metadata?Record<string, any>
request.paymentMethod?| "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque"
request.reference?string
requestOptions?RequestOptions

Returns#

Promise<{ collection: { channelId: string; holderAccountId: string; ledgerAccount: string; paymentMethod: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque"; reference: string | null; }; order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; payment: { amount: number; currency: string; externalPaymentId: string; paymentId: string; paymentMethod: | "in_person_cash" | "in_person_card" | "online_card" | "bank_transfer" | "cheque"; status: "succeeded"; }; }>

Operation Id#

recordExternalOrderPayment

recordPayment()#

recordPayment: (orderId: string, request: {
  amount?: number;
  cashSessionId?: string;
  last4?: string;
  metadata?: {
   [key: string]: unknown;
  };
  method:   | "other"
     | "bank_transfer"
     | "cheque"
     | "manual_card"
     | "invoice"
     | "voucher";
  receivedAt?: string;
  reference?: string;
}, requestOptions?: RequestOptions) => Promise<{
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
  payment: {
     amount: number;
     currency: string;
     externalPaymentId: string;
     method:   | "other"
        | "bank_transfer"
        | "cheque"
        | "manual_card"
        | "invoice"
        | "voucher";
     paymentId: string;
     status: "succeeded";
  };
  recorded: {
     amount: number;
     holderAccountId: string;
     ledgerAccount: string;
     method:   | "other"
        | "bank_transfer"
        | "cheque"
        | "manual_card"
        | "invoice"
        | "voucher";
     reference: string | null;
     stillDue: number;
  };
}>;

Record a payment staff received Records money the processing channel's account received in a way Ticketlayer did not see: a card machine it does not talk to, a bank transfer, a cheque, an invoice paid, a paper voucher, or anything else with a reference. The account holds it, so the ledger records it in that account's own Cash and the sale makes it owe the event owner and each fee earner until it settles.

It may pay part of what is due (split tender, an invoice paid in instalments): the order is partially_paid until its payments reach its total, and is confirmed, its tickets issued, only then. The method must be one the order's organisation, account, channel and events allow (PAYMENT_METHOD_NOT_AVAILABLE otherwise); a pending method past its close before the event can still be recorded, because the money has arrived. Cash at a till is POST /orders/{orderId}/payment instead. Needs orders.update or orders.pay on the order's account and channel. Retry with the same Idempotency-Key to get the first answer back without recording the payment twice.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ amount?: number; cashSessionId?: string; last4?: string; metadata?: { [key: string]: unknown; }; method: | "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher"; receivedAt?: string; reference?: string; }-
request.amount?numberDescription Integer minor units: how much of the amount due this pays. Left out, everything still due. Part of it (split tender, an invoice paid in instalments) leaves the order partially_paid; it is confirmed, and its tickets issued, when its payments reach its total. More than is due is refused (PAYMENT_AMOUNT_INVALID). Example 3000
request.cashSessionId?stringDescription A card machine payment taken at a till: the drawer's open cash session, so the machine's batch total is checked against it at close. Example csn_7Kq2mZ9xLp3RtV8wYb1c
request.last4?stringDescription A card machine payment: the card's last four digits, as on the receipt. Example 1881
request.metadata?{ [key: string]: unknown; }-
request.method?| "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher"Description How the processing channel's account received the money: a card machine Ticketlayer does not talk to (manual_card), a bank transfer, a cheque, an invoice paid, a paper voucher, or anything else (other, with a reference). Cash at a till is taken with POST /orders/{orderId}/payment instead, into a drawer. Example bank_transfer @enum {string}
request.receivedAt?stringFormat: date-time Description When the money arrived, when it is recorded later (a transfer seen on a statement). Left out, now. Example 2026-10-05T09:00:00Z
request.reference?stringDescription The bank reference, cheque number, card machine receipt or authorisation code, voucher code: what finds this money again. Example TL-48213 RIVERSIDE SCH
requestOptions?RequestOptions-

Returns#

Promise<{ order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; payment: { amount: number; currency: string; externalPaymentId: string; method: | "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher"; paymentId: string; status: "succeeded"; }; recorded: { amount: number; holderAccountId: string; ledgerAccount: string; method: | "other" | "bank_transfer" | "cheque" | "manual_card" | "invoice" | "voucher"; reference: string | null; stillDue: number; }; }>

Operation Id#

recordOrderPayment

removeFeeLine()#

removeFeeLine: (orderId: string, lineItemId: string, options?: {
  reason?: string;
}, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Remove a one-off fee line Removes a manual fee line from an unpaid order, recorded in its audit log with the optional reason. Only a manual fee line: configured fees follow the order. Needs orders.add_fee_line on the order's account.

Parameters#

ParameterType
orderIdstring
lineItemIdstring
options?{ reason?: string; }
options.reason?string
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

removeOrderFeeLine

removeGiftCard()#

removeGiftCard: (orderId: string, storedValueAccountId: string, requestOptions?: RequestOptions) => Promise<{
  giftCard: {
     accountId: string | null;
     balance: number;
     book: "live" | "test";
     codeIssuedAt: string | null;
     codeLast4: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     eventId: string | null;
     expiresAt: string | null;
     expiryPolicy: {
        dormancyFee:   | {
           afterInactiveMonths: number;
           amount: number;
         }
           | null;
        jurisdiction: string | null;
        minimumMonths: number | null;
        months: number | null;
        source: "organisation" | "jurisdiction_default";
     };
     faceValue: number | null;
     id: string;
     instrument: "account_credit" | "gift_card" | "pass_balance";
     lastActivityAt: string;
     ownerType: "customer" | "bearer" | "pass";
     recipient:   | {
        email?: string | null;
        message?: string | null;
        name?: string | null;
      }
        | null;
     sourceOrderId: string | null;
     sourceOrderLineItemId: string | null;
     status: "expired" | "active" | "void" | "pending" | "frozen";
     updatedAt: string;
  };
  order: {
     id: string;
     status: string;
     total: number;
  };
}>;

Take a gift card off an unpaid order Removes a gift card from an order that is unpaid - pending or awaiting payment, with no payment taken - while the card has no code and nothing on it: its line goes, the card is voided and the order's total follows. Anything else is refused (GIFT_CARD_NOT_REMOVABLE): a paid order is refunded instead, and a card issued or spent stays. Needs orders.update or orders.create on the order's account and channel.

Parameters#

ParameterType
orderIdstring
storedValueAccountIdstring
requestOptions?RequestOptions

Returns#

Promise<{ giftCard: { accountId: string | null; balance: number; book: "live" | "test"; codeIssuedAt: string | null; codeLast4: string | null; createdAt: string; currency: string; customerId: string | null; eventId: string | null; expiresAt: string | null; expiryPolicy: { dormancyFee: | { afterInactiveMonths: number; amount: number; } | null; jurisdiction: string | null; minimumMonths: number | null; months: number | null; source: "organisation" | "jurisdiction_default"; }; faceValue: number | null; id: string; instrument: "account_credit" | "gift_card" | "pass_balance"; lastActivityAt: string; ownerType: "customer" | "bearer" | "pass"; recipient: | { email?: string | null; message?: string | null; name?: string | null; } | null; sourceOrderId: string | null; sourceOrderLineItemId: string | null; status: "expired" | "active" | "void" | "pending" | "frozen"; updatedAt: string; }; order: { id: string; status: string; total: number; }; }>

Operation Id#

removeOrderGiftCard

removeItem()#

removeItem: (orderId: string, itemId: string, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Remove line item Remove a line item from an order

Parameters#

ParameterType
orderIdstring
itemIdstring
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

removeOrderLineItem

resendConfirmation()#

resendConfirmation: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  attachments: number;
  messageId?: string;
  recipient: string | null;
  sent: boolean;
  skippedReason?:   | "already_sent"
     | "no_recipient"
     | "not_configured"
     | "order_not_confirmed";
}>;

Resend order confirmation email Resend the buyer's confirmation email for a confirmed order, with the ticket PDFs attached and a link to the hosted confirmation page. Bypasses the once-per-order send marker. Staff surface.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ attachments: number; messageId?: string; recipient: string | null; sent: boolean; skippedReason?: | "already_sent" | "no_recipient" | "not_configured" | "order_not_confirmed"; }>

Operation Id#

resendOrderConfirmation

sendNow()#

sendNow: (orderId: string, request: {
  reason: string;
}, requestOptions?: RequestOptions) => Promise<{
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
  sentBeforePayment: {
     amountDue: number;
     emailed: boolean;
     emailSkippedReason: string | null;
     issuedAt: string;
     issuedBy: string;
     passes: number;
     reason: string;
  };
}>;

Send tickets before payment Issues an unpaid order's tickets now and emails them: the one exception to tickets being issued when an order is paid, for a customer whose bank transfer or invoice is on its way. The order stays pending or awaiting payment and nothing about its money changes; who sent them, why and what was still owed are recorded on the order. Sending again resends nothing new: the passes already exist and the email went once. Digital passes only: the e-tickets go now, and physical fulfilment (post, a print at the box office, wristbands) still waits for payment. Needs orders.send_before_payment on the order's account, which no system role holds but owners and platform admins.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ reason: string; }-
request.reasonstringDescription Why the tickets go before the money: recorded with who sent them, on the order. Example School: purchase order 4471 received
requestOptions?RequestOptions-

Returns#

Promise<{ order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; sentBeforePayment: { amountDue: number; emailed: boolean; emailSkippedReason: string | null; issuedAt: string; issuedBy: string; passes: number; reason: string; }; }>

Operation Id#

sendOrderBeforePayment

setShipTo()#

setShipTo: (orderId: string, request: {
  city: string;
  country: string;
  line1: string;
  line2?: string | null;
  name: string;
  phone?: string | null;
  postalCode: string;
  region?: string | null;
}, requestOptions?: RequestOptions) => Promise<{
  orderId: string;
  shipTo: {
     city: string;
     country: string;
     line1: string;
     line2?: string | null;
     name: string;
     phone?: string | null;
     postalCode: string;
     region?: string | null;
  } & Record<string, never>;
}>;

Set an order's ship-to address Set or correct where the order is posted. Parcels still being packed take the new address; once one has been dispatched the address is fixed (409 SHIPMENT_ALREADY_DISPATCHED).

Parameters#

ParameterTypeDescription
orderIdstring-
request{ city: string; country: string; line1: string; line2?: string | null; name: string; phone?: string | null; postalCode: string; region?: string | null; }-
request.citystringExample London
request.country?stringDescription ISO 3166 alpha-2 Example GB
request.line1?stringExample 12 St James Square
request.line2?string | null-
request.name?stringExample Ada Lovelace
request.phone?string | null-
request.postalCode?stringExample SW1Y 4JH
request.region?string | null-
requestOptions?RequestOptions-

Returns#

Promise<{ orderId: string; shipTo: { city: string; country: string; line1: string; line2?: string | null; name: string; phone?: string | null; postalCode: string; region?: string | null; } & Record<string, never>; }>

Operation Id#

setOrderShipTo

shipTo()#

shipTo: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  orderId: string;
  shipTo: {
     city: string;
     country: string;
     line1: string;
     line2?: string | null;
     name: string;
     phone?: string | null;
     postalCode: string;
     region?: string | null;
  } & Record<string, never>;
}>;

An order's ship-to address Where a physical method sends the order: captured with the cart's choices and copied at checkout, or set by staff. Null when none was given.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ orderId: string; shipTo: { city: string; country: string; line1: string; line2?: string | null; name: string; phone?: string | null; postalCode: string; region?: string | null; } & Record<string, never>; }>

Operation Id#

getOrderShipTo

spendStoredValue()#

spendStoredValue: (orderId: string, request: {
  amount?: number;
  code?: string;
  storedValueAccountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
  order: {
     id: string;
     paymentStatus: string;
     status: string;
     stillDue: number;
     total: number;
     totalPaid: number;
  };
  payment: {
     amount: number;
     currency: string;
     paymentId: string;
     status: "succeeded";
  };
  storedValue: {
     balance: number;
     id: string;
     instrument: "account_credit" | "gift_card" | "pass_balance";
  };
}>;

Pay with a gift card or account credit Spends a balance on the order: a payment of method stored_value whose holder is the organisation's liability for the instrument. It may pay all or part of what is due and splits with any other tender (the rest by card, cash or anything else), the order being partially_paid until its payments reach its total and confirmed then. Left without an amount it takes as much as the balance and the order allow.

A balance is spent only within the organisation that issued it (STORED_VALUE_OTHER_ORGANISATION, never a setting); it must be active and unexpired (STORED_VALUE_NOT_ACTIVE, whose state says why), in the order's currency and book, on its own account's orders and its own event's lines when narrowed (STORED_VALUE_NOT_SPENDABLE_HERE), with enough on it (STORED_VALUE_INSUFFICIENT); account credit only on its own customer's order (STORED_VALUE_WRONG_CUSTOMER). The order's payment method policies must allow stored_value. Needs orders.update or orders.pay on the order's account and channel. Send an Idempotency-Key: a till that loses the response resends with the same key and gets the first payment back, and the balance is spent once.

Parameters#

ParameterTypeDescription
orderIdstring-
request{ amount?: number; code?: string; storedValueAccountId?: string; }-
request.amount?numberDescription Minor units. Left out: as much as the balance and the order allow. Example 3000
request.code?stringDescription A gift card's code, as printed or emailed (with or without the hyphens) Example 7KQ2-MZ9X-LP3R-TV8W
request.storedValueAccountId?stringDescription The balance to spend: the customer's account credit (from their balances) Example sva_7Kq2mZ9xLp3RtV8wYb1c
requestOptions?RequestOptions-

Returns#

Promise<{ order: { id: string; paymentStatus: string; status: string; stillDue: number; total: number; totalPaid: number; }; payment: { amount: number; currency: string; paymentId: string; status: "succeeded"; }; storedValue: { balance: number; id: string; instrument: "account_credit" | "gift_card" | "pass_balance"; }; }>

Operation Id#

spendOrderStoredValue

storedValue()#

storedValue: (orderId: string, requestOptions?: RequestOptions) => Promise<{
  amountDue: number;
  balances: {
     accountId: string | null;
     balance: number | null;
     currency: string;
     eventId: string | null;
     expiresAt: string | null;
     id: string;
     instrument: "account_credit" | "gift_card" | "pass_balance";
     spendable: number;
     status: "expired" | "active" | "void" | "pending" | "frozen";
  }[];
  methodAvailable: boolean;
  orderId: string;
}>;

The customer's credit that can pay this order For the till: the order's customer's account credit that could be spent on this order now - each balance that passes every rule a spend checks (the closed loop, active and unexpired, currency, book, narrowing), with what is on it and what it can pay of what is due. Only what can pay this order, so reading the order is enough (orders.read on its account and channel); the customer's balances in general need storedvalue.list. Gift cards are not listed: they are presented by their code. methodAvailable says whether the order's payment method policies offer stored value at the box office.

Parameters#

ParameterType
orderIdstring
requestOptions?RequestOptions

Returns#

Promise<{ amountDue: number; balances: { accountId: string | null; balance: number | null; currency: string; eventId: string | null; expiresAt: string | null; id: string; instrument: "account_credit" | "gift_card" | "pass_balance"; spendable: number; status: "expired" | "active" | "void" | "pending" | "frozen"; }[]; methodAvailable: boolean; orderId: string; }>

Operation Id#

getOrderStoredValue

transitionStatus()#

transitionStatus: (orderId: string, request: {
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "confirmed"
     | "processing";
}, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Transition order status Transition an order to a new status. confirmed means paid: an order with anything left to pay is refused with 409 ORDER_NOT_PAID, because it is the payment that confirms an order and records its journal (take one with POST /orders/{orderId}/payment). A zero-value order has nothing to pay and may be confirmed here. Moving it to cancelled, refunded, failed or expired cancels its passes. Setting refunded here returns no money and sends no order.refunded: refunding the money in full moves the order to refunded by itself.

Parameters#

ParameterType
orderIdstring
request{ status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "confirmed" | "processing"; }
request.status| "expired" | "failed" | "cancelled" | "refunded" | "completed" | "confirmed" | "processing"
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

transitionOrderStatus

update()#

update: (orderId: string, request: {
  addItems?: {
     description?: string;
     feeDetails?: Record<string, any>;
     metadata?: Record<string, any>;
     name: string;
     productDetails?: Record<string, any>;
     quantity?: number;
     ticketDetails?: Record<string, any>;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount";
     unitPrice: number;
  }[];
  customerId?: string;
  customerNotes?: string;
  expectedVersion?: number;
  extendExpiry?: boolean;
  internalNotes?: string;
  metadata?: Record<string, any>;
  removeItems?: string[];
  updateItems?: {
     itemId: string;
     updates: {
        metadata?: Record<string, any>;
        quantity?: number;
        unitPrice?: number;
     };
  }[];
}, requestOptions?: RequestOptions) => Promise<{
  accountId: string;
  cancellationReason: string | null;
  cancelledAt: string | null;
  channel: string | null;
  completedAt: string | null;
  confirmedAt: string | null;
  createdAt: string;
  currency: string;
  customerId: string | null;
  customerNotes: string | null;
  expiresAt: string | null;
  id: string;
  internalNotes: string | null;
  isGuestCheckout: boolean;
  items?: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  }[];
  metadata:   | {
   [key: string]: unknown;
   }
     | null;
  orderNumber: string;
  organisationId: string;
  status:   | "expired"
     | "failed"
     | "cancelled"
     | "refunded"
     | "completed"
     | "pending"
     | "confirmed"
     | "awaiting_payment"
     | "processing";
  subtotal: number;
  total: number;
  totalDiscounts: number;
  totalFees: number;
  totalPaid: number;
  totalRefunded: number;
  totalTax: number;
  updatedAt: string;
  version: number;
}>;

Update order Update an existing order. Name the version the change is based on (the version of a read, or its ETag) as If-Match or expectedVersion and the update is refused with 412 VERSION_MISMATCH, writing nothing, when the order has changed since. Without one the update applies as it always has.

Parameters#

ParameterType
orderIdstring
request{ addItems?: { description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[]; customerId?: string; customerNotes?: string; expectedVersion?: number; extendExpiry?: boolean; internalNotes?: string; metadata?: Record<string, any>; removeItems?: string[]; updateItems?: { itemId: string; updates: { metadata?: Record<string, any>; quantity?: number; unitPrice?: number; }; }[]; }
request.addItems?{ description?: string; feeDetails?: Record<string, any>; metadata?: Record<string, any>; name: string; productDetails?: Record<string, any>; quantity?: number; ticketDetails?: Record<string, any>; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount"; unitPrice: number; }[]
request.customerId?string
request.customerNotes?string
request.expectedVersion?number
request.extendExpiry?boolean
request.internalNotes?string
request.metadata?Record<string, any>
request.removeItems?string[]
request.updateItems?{ itemId: string; updates: { metadata?: Record<string, any>; quantity?: number; unitPrice?: number; }; }[]
requestOptions?RequestOptions

Returns#

Promise<{ accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }>

Operation Id#

updateOrder

updateItem()#

updateItem: (orderId: string, itemId: string, request: {
  metadata?: Record<string, any>;
  quantity?: number;
  unitPrice?: number;
}, requestOptions?: RequestOptions) => Promise<{
  item: {
     createdAt: string;
     description: string | null;
     discountAmount: number;
     feeDetails:   | {
      [key: string]: unknown;
      }
        | null;
     id: string;
     isTaxInclusive?: boolean;
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     name: string;
     orderId: string;
     productDetails:   | {
      [key: string]: unknown;
      }
        | null;
     quantity: number;
     subtotal: number;
     taxAmount: number;
     taxCategory?: string | null;
     taxCode?: string | null;
     taxJurisdiction?: string | null;
     taxRate?: string | null;
     taxSupplier?: string | null;
     ticketDetails:   | {
      [key: string]: unknown;
      }
        | null;
     total: number;
     type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
     unitPrice: number;
     updatedAt: string;
  };
  order: {
     accountId: string;
     cancellationReason: string | null;
     cancelledAt: string | null;
     channel: string | null;
     completedAt: string | null;
     confirmedAt: string | null;
     createdAt: string;
     currency: string;
     customerId: string | null;
     customerNotes: string | null;
     expiresAt: string | null;
     id: string;
     internalNotes: string | null;
     isGuestCheckout: boolean;
     items?: {
        createdAt: string;
        description: string | null;
        discountAmount: number;
        feeDetails:   | {
         [key: string]: unknown;
         }
           | null;
        id: string;
        isTaxInclusive?: boolean;
        metadata:   | {
         [key: string]: unknown;
         }
           | null;
        name: string;
        orderId: string;
        productDetails:   | {
         [key: string]: unknown;
         }
           | null;
        quantity: number;
        subtotal: number;
        taxAmount: number;
        taxCategory?: string | null;
        taxCode?: string | null;
        taxJurisdiction?: string | null;
        taxRate?: string | null;
        taxSupplier?: string | null;
        ticketDetails:   | {
         [key: string]: unknown;
         }
           | null;
        total: number;
        type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card";
        unitPrice: number;
        updatedAt: string;
     }[];
     metadata:   | {
      [key: string]: unknown;
      }
        | null;
     orderNumber: string;
     organisationId: string;
     status:   | "expired"
        | "failed"
        | "cancelled"
        | "refunded"
        | "completed"
        | "pending"
        | "confirmed"
        | "awaiting_payment"
        | "processing";
     subtotal: number;
     total: number;
     totalDiscounts: number;
     totalFees: number;
     totalPaid: number;
     totalRefunded: number;
     totalTax: number;
     updatedAt: string;
     version: number;
  };
}>;

Update line item Update a line item in an order

Parameters#

ParameterType
orderIdstring
itemIdstring
request{ metadata?: Record<string, any>; quantity?: number; unitPrice?: number; }
request.metadata?Record<string, any>
request.quantity?number
request.unitPrice?number
requestOptions?RequestOptions

Returns#

Promise<{ item: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }; order: { accountId: string; cancellationReason: string | null; cancelledAt: string | null; channel: string | null; completedAt: string | null; confirmedAt: string | null; createdAt: string; currency: string; customerId: string | null; customerNotes: string | null; expiresAt: string | null; id: string; internalNotes: string | null; isGuestCheckout: boolean; items?: { createdAt: string; description: string | null; discountAmount: number; feeDetails: | { [key: string]: unknown; } | null; id: string; isTaxInclusive?: boolean; metadata: | { [key: string]: unknown; } | null; name: string; orderId: string; productDetails: | { [key: string]: unknown; } | null; quantity: number; subtotal: number; taxAmount: number; taxCategory?: string | null; taxCode?: string | null; taxJurisdiction?: string | null; taxRate?: string | null; taxSupplier?: string | null; ticketDetails: | { [key: string]: unknown; } | null; total: number; type: "product" | "ticket" | "addon" | "fee" | "tax" | "discount" | "gift_card"; unitPrice: number; updatedAt: string; }[]; metadata: | { [key: string]: unknown; } | null; orderNumber: string; organisationId: string; status: | "expired" | "failed" | "cancelled" | "refunded" | "completed" | "pending" | "confirmed" | "awaiting_payment" | "processing"; subtotal: number; total: number; totalDiscounts: number; totalFees: number; totalPaid: number; totalRefunded: number; totalTax: number; updatedAt: string; version: number; }; }>

Operation Id#

updateOrderLineItem

updateNote()#

updateNote: (orderId: string, noteId: string, request: {
  body?: string;
  tier?: "internal" | "restricted";
}, requestOptions?: RequestOptions) => Promise<{
  author: {
     id: string | null;
     kind: string;
  };
  body: string;
  createdAt: string;
  deletedAt: string | null;
  editedAt: string | null;
  id: string;
  legacyField: string | null;
  objectId: string;
  objectType: string;
  redactedAt: string | null;
  tier: "internal" | "restricted";
}>;

Edit order note Change a note's body or tier. Its author only (403 NOTE_AUTHOR_ONLY), who must still be allowed to update the order and to write both tiers. The note that stands for a field keeps that field's tier.

Parameters#

ParameterTypeDescription
orderIdstring-
noteIdstring-
request{ body?: string; tier?: "internal" | "restricted"; }-
request.body?stringExample Comp for the promoter, agreed by Sam.
request.tier?"internal" | "restricted"Example restricted @enum {string}
requestOptions?RequestOptions-

Returns#

Promise<{ author: { id: string | null; kind: string; }; body: string; createdAt: string; deletedAt: string | null; editedAt: string | null; id: string; legacyField: string | null; objectId: string; objectType: string; redactedAt: string | null; tier: "internal" | "restricted"; }>

Operation Id#

updateOrderNote

validate()#

validate: (orderId: string, request: {
}, requestOptions?: RequestOptions) => Promise<{
  errors: {
     code: string;
     itemId?: string;
     message: string;
  }[];
  valid: boolean;
}>;

Validate order Validate an order before payment (check inventory, pricing, etc.)

Parameters#

ParameterType
orderIdstring
request{ }
requestOptions?RequestOptions

Returns#

Promise<{ errors: { code: string; itemId?: string; message: string; }[]; valid: boolean; }>

Operation Id#

validateOrder