tickethead-sdk
Version:
SDK for the Tickethead API
168 lines • 4.82 kB
TypeScript
import { OrderAttribute } from '../common/attributes';
import { IdParam, PagingQuery } from '../common/types';
import { Ticket } from '../event/types';
export type TicketFormatType = 'PDF' | 'SECURE' | 'PKPASS';
/**
* Payload for order creation
*
* @param orderItem Array of `OrderItem`s
* @param format Format of the tickets (PDF, SECURE or PKPASS)
* @param holdToken Hold token for seat reservation generated on Seats.io (if seating chart is used)
* @param accessCode Presale access code, if the event is currently in its presale period
* @param referralCode Can be used to specify a conversion source for the user
*/
export interface OrderRequest {
orderItem: OrderItemRequest[];
format: TicketFormatType;
holdToken?: string;
discountCode?: string;
accessCode?: string;
referralCode?: string;
orderContact?: OrderContactRequest;
sendConfirmationEmail?: boolean;
}
/**
* Single order item inside the order
*
* @param quantity Number of tickets inside the order item
* @param ticketConfigId Id of the ticket configuration
* @param timeslotId Id of the timeslot where the ticket is reserved
* @param sectorId Id of the sector where the ticket is reserved
* @param ticketDiscount Array of ticket discount IDs applied to the order item
* @param selectedSeats Array of seat labels generated on Seats.io (if seating chart is used)
*/
export interface OrderItemRequest {
quantity: number;
ticketConfigId: number;
timeslotId?: number;
sectorId?: number;
ticketDiscount?: number[];
selectedSeats?: string[];
}
export interface OrderContactRequest {
firstName: string;
lastName: string;
email: string;
billingEmail: string;
phone?: string;
street1?: string;
street2?: string;
city?: string;
zip?: string;
state?: string;
country?: string;
vatNumber?: string;
businessName?: string;
}
export interface OrderItem {
id: number;
price: number;
ticket: Ticket[];
}
export interface Order {
id: number;
ownerId: string;
ownerType: string;
paymentId?: string;
organizerId?: string;
format: string;
status?: OrderStatus;
total?: number;
refundedAmount?: number;
platformFee: number;
absorbedFee: number;
passedOnFee: number;
feeTaxRate?: number;
paymentProviderFee?: number;
paymentProviderNet?: number;
tax: number;
paymentCreatedAt?: Date;
createdAt: Date;
updatedAt: Date;
currency?: string;
holdToken?: string;
orderItem?: OrderItem[];
orderContact?: OrderContact;
referralCode?: string;
insuranceQuoteId?: string;
insuranceRefundUrl?: string;
insuranceCost?: number;
insuranceSold?: boolean;
refundSource?: string;
sendConfirmationEmail?: boolean;
}
export interface OrderContact extends OrderContactRequest {
id: number;
}
export interface OrderGet extends IdParam {
with?: OrderAttribute;
}
export declare enum OrderStatus {
/**
* Initial order state
*/
Draft = "draft",
/**
* The state of the payment after a payment is associated to it
*/
PaymentProcessing = "payment_processing",
/**
* The state of the order after the payment wasn't made in the payment window
* or if the payment has timed out
* or if the payment has been manually canceled
* This is an end state
*/
Canceled = "payment_failed",
/**
* State after a successful payment confirmation
*/
Paid = "paid",
/**
* State when some tickets were refunded, but not all
* The only further state is `refunded`
*/
PartiallyRefunded = "partially_refunded",
/**
* State of order after its payment is refunded
* Should release the associated tickets
* This is an end state
*/
Refunded = "refunded"
}
export interface OrderListQuery extends PagingQuery {
organizer_id?: string;
include_not_owned?: boolean;
id?: number;
contact_email?: string;
event_id?: number;
sort_by?: string;
with?: OrderAttribute;
}
/**
* @field `ticketIds` - If you want to only refund some of the tickets in the order.
* @field `refundPlatformFee` - To refund or not to refund the platform fee. Defaults to true.
*/
export interface RefundOrderBody {
ticketIds?: number[];
refundPlatformFee?: boolean;
}
export declare enum ConvertOrderFormat {
Pdf = "PDF"
}
export interface ConvertOrderBody {
format?: ConvertOrderFormat;
}
export interface ResendTicketParams {
orderId: number;
id: number;
}
export interface TicketInOrderId {
orderId: number;
orderItemId: number;
id: number;
}
export interface GeneratePdfTokenResponse {
pdfDownloadToken: string;
pdfDownloadTokenExpiresAt: Date;
}
//# sourceMappingURL=types.d.ts.map