TicketUserServices

<back to all web services

SupportCustomer360Request

Requires Authentication
Requires the role:AdminRequires the permission:ReadData
The following routes are available for this service:
POST/Support/Customer360

export class SupportTicketRow
{
    public ticketId?: number;
    public ticketTokenId?: string;
    public eventId?: number;
    public event?: string;
    public timeOfEventUTC?: string;
    public eventOwnerId?: number;
    public eventOwnerName?: string;
    public ticketStatus?: string;
    public ticketName?: string;
    public paymentMethodId?: string;
    public paymentId?: string;
    public paymentReference?: string;
    public timestampBought?: string;
    public timestampActivated?: string;
    public holderName?: string;
    public phoneVerificationNumber?: string;
    public paymentPhoneNumber?: string;
    public seatDisplayString?: string;
    public sectionName?: string;
    public rowName?: string;
    public seatName?: string;
    public totalPrice?: number;
    public count?: number;
    public ticketTransferredFrom?: number;
    public originalPhoneVerificationNumber?: string;
    public deviceId?: string;
    public neverOpened?: boolean;

    public constructor(init?: Partial<SupportTicketRow>) { (Object as any).assign(this, init); }
}

export class SupportOwnerCardRow
{
    public id?: number;
    public ownerId?: number;
    public ownerName?: string;
    public ownerCardTypeId?: number;
    public ownerCardTypeName?: string;
    public holderName?: string;
    public holderEmail?: string;
    public phoneVerificationNumber?: string;
    public paymentPhoneNumber?: string;
    public paymentStatus?: string;
    public paymentMethodId?: string;
    public paymentId?: string;
    public paymentReference?: string;
    public timeStampBoughtUTC?: string;
    public cardValidFromUTC?: string;
    public cardValidToUTC?: string;
    public initialMaxTickets?: number;
    public currentAvailableTickets?: number;
    public cardPrice?: number;
    public pricePaid?: number;
    public currentStoreCredit?: number;

    public constructor(init?: Partial<SupportOwnerCardRow>) { (Object as any).assign(this, init); }
}

export class WebshopOrderLine
{
    public id?: number;
    public orderId?: number;
    public productId?: number;
    public variantId?: number;
    // @StringLength(200)
    public productName?: string;

    // @StringLength(50)
    public size?: string;

    // @StringLength(50)
    public color?: string;

    public unitPriceMinor?: number;
    public quantity?: number;
    public lineTotalMinor?: number;
    // @StringLength(20)
    public status?: string;

    public legacyDetailId?: number;
    public createdAt?: string;

    public constructor(init?: Partial<WebshopOrderLine>) { (Object as any).assign(this, init); }
}

export class SupportWebshopOrderRow
{
    public id?: number;
    public orderReference?: string;
    public ownerId?: number;
    public ownerName?: string;
    public status?: string;
    public totalMinor?: number;
    public deliveryFeeMinor?: number;
    public totalDiscountMinor?: number;
    public giftPaidMinor?: number;
    public currency?: string;
    public deliveryType?: string;
    public paymentMethodId?: string;
    public paymentId?: string;
    public paymentReference?: string;
    public createdAt?: string;
    public updatedAt?: string;
    public buyerName?: string;
    public buyerEmail?: string;
    public buyerPhone?: string;
    public lines?: WebshopOrderLine[];

    public constructor(init?: Partial<SupportWebshopOrderRow>) { (Object as any).assign(this, init); }
}

export class SupportGiftCardRow
{
    public id?: number;
    public codeLast4?: string;
    public codeMasked?: string;
    public status?: string;
    public scope?: string;
    public scopeOwnerId?: number;
    public scopeOwnerName?: string;
    public purchaseOwnerId?: number;
    public purchaseOwnerName?: string;
    public currency?: string;
    public initialValueMinor?: number;
    public currentBalanceMinor?: number;
    public createdAt?: string;
    public activatedAt?: string;
    public expiresAt?: string;
    public purchasePaymentReference?: string;
    public paymentId?: string;
    public paymentMethodId?: string;
    public buyerName?: string;
    public buyerEmail?: string;
    public buyerPhone?: string;

    public constructor(init?: Partial<SupportGiftCardRow>) { (Object as any).assign(this, init); }
}

export class SupportSharedLinkRow
{
    public id?: number;
    public eventId?: number;
    public eventName?: string;
    public eventOwnerId?: number;
    public eventOwnerName?: string;
    public status?: string;
    public recipientPhone?: string;
    public recipientEmail?: string;
    public ticketCount?: number;
    public createdAt?: string;
    public validTo?: string;
    public soldAt?: string;
    public soldTicketOrderId?: number;

    public constructor(init?: Partial<SupportSharedLinkRow>) { (Object as any).assign(this, init); }
}

export class SupportCustomerTotals
{
    public ticketSpend?: number;
    public ticketSpendLive?: number;
    public webshopSpendMinor?: number;
    public giftCardSpendMinor?: number;

    public constructor(init?: Partial<SupportCustomerTotals>) { (Object as any).assign(this, init); }
}

export class SupportCustomer360Result
{
    public phone?: string;
    public email?: string;
    public tickets?: SupportTicketRow[];
    public ownerCards?: SupportOwnerCardRow[];
    public webshopOrders?: SupportWebshopOrderRow[];
    public giftCards?: SupportGiftCardRow[];
    public sharedTicketLinks?: SupportSharedLinkRow[];
    public totals?: SupportCustomerTotals;
    public warnings?: string[];
    public statusCode?: number;
    public message?: string;

    public constructor(init?: Partial<SupportCustomer360Result>) { (Object as any).assign(this, init); }
}

export class SupportCustomer360Request
{
    public phone?: string;
    public email?: string;

    public constructor(init?: Partial<SupportCustomer360Request>) { (Object as any).assign(this, init); }
}

TypeScript SupportCustomer360Request DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /Support/Customer360 HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	phone: String,
	email: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	phone: String,
	email: String,
	tickets: 
	[
		{
			ticketId: 0,
			ticketTokenId: String,
			eventId: 0,
			event: String,
			timeOfEventUTC: 0001-01-01,
			eventOwnerId: 0,
			eventOwnerName: String,
			ticketStatus: String,
			ticketName: String,
			paymentMethodId: String,
			paymentId: String,
			paymentReference: String,
			timestampBought: 0001-01-01,
			timestampActivated: 0001-01-01,
			holderName: String,
			phoneVerificationNumber: String,
			paymentPhoneNumber: String,
			seatDisplayString: String,
			sectionName: String,
			rowName: String,
			seatName: String,
			totalPrice: 0,
			count: 0,
			ticketTransferredFrom: 0,
			originalPhoneVerificationNumber: String,
			deviceId: String,
			neverOpened: False
		}
	],
	ownerCards: 
	[
		{
			id: 0,
			ownerId: 0,
			ownerName: String,
			ownerCardTypeId: 0,
			ownerCardTypeName: String,
			holderName: String,
			holderEmail: String,
			phoneVerificationNumber: String,
			paymentPhoneNumber: String,
			paymentStatus: String,
			paymentMethodId: String,
			paymentId: String,
			paymentReference: String,
			timeStampBoughtUTC: 0001-01-01,
			cardValidFromUTC: 0001-01-01,
			cardValidToUTC: 0001-01-01,
			initialMaxTickets: 0,
			currentAvailableTickets: 0,
			cardPrice: 0,
			pricePaid: 0,
			currentStoreCredit: 0
		}
	],
	webshopOrders: 
	[
		{
			id: 0,
			orderReference: String,
			ownerId: 0,
			ownerName: String,
			status: String,
			totalMinor: 0,
			deliveryFeeMinor: 0,
			totalDiscountMinor: 0,
			giftPaidMinor: 0,
			currency: String,
			deliveryType: String,
			paymentMethodId: String,
			paymentId: String,
			paymentReference: String,
			createdAt: 0001-01-01,
			updatedAt: 0001-01-01,
			buyerName: String,
			buyerEmail: String,
			buyerPhone: String,
			lines: 
			[
				{
					id: 0,
					orderId: 0,
					productId: 0,
					variantId: 0,
					productName: String,
					size: String,
					color: String,
					unitPriceMinor: 0,
					quantity: 0,
					lineTotalMinor: 0,
					status: String,
					legacyDetailId: 0,
					createdAt: 0001-01-01
				}
			]
		}
	],
	giftCards: 
	[
		{
			id: 0,
			codeLast4: String,
			codeMasked: String,
			status: String,
			scope: String,
			scopeOwnerId: 0,
			scopeOwnerName: String,
			purchaseOwnerId: 0,
			purchaseOwnerName: String,
			currency: String,
			initialValueMinor: 0,
			currentBalanceMinor: 0,
			createdAt: 0001-01-01,
			activatedAt: 0001-01-01,
			expiresAt: 0001-01-01,
			purchasePaymentReference: String,
			paymentId: String,
			paymentMethodId: String,
			buyerName: String,
			buyerEmail: String,
			buyerPhone: String
		}
	],
	sharedTicketLinks: 
	[
		{
			id: 0,
			eventId: 0,
			eventName: String,
			eventOwnerId: 0,
			eventOwnerName: String,
			status: String,
			recipientPhone: String,
			recipientEmail: String,
			ticketCount: 0,
			createdAt: 0001-01-01,
			validTo: 0001-01-01,
			soldAt: 0001-01-01,
			soldTicketOrderId: 0
		}
	],
	totals: 
	{
		ticketSpend: 0,
		ticketSpendLive: 0,
		webshopSpendMinor: 0,
		giftCardSpendMinor: 0
	},
	warnings: 
	[
		String
	],
	statusCode: 0,
	message: String
}