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
import java.math.*
import java.util.*
import net.servicestack.client.*


open class SupportCustomer360Request
{
    var phone:String? = null
    var email:String? = null
}

open class SupportCustomer360Result
{
    var phone:String? = null
    var email:String? = null
    var tickets:ArrayList<SupportTicketRow> = ArrayList<SupportTicketRow>()
    var ownerCards:ArrayList<SupportOwnerCardRow> = ArrayList<SupportOwnerCardRow>()
    var webshopOrders:ArrayList<SupportWebshopOrderRow> = ArrayList<SupportWebshopOrderRow>()
    var giftCards:ArrayList<SupportGiftCardRow> = ArrayList<SupportGiftCardRow>()
    var sharedTicketLinks:ArrayList<SupportSharedLinkRow> = ArrayList<SupportSharedLinkRow>()
    var totals:SupportCustomerTotals? = null
    var warnings:ArrayList<String> = ArrayList<String>()
    var statusCode:Int? = null
    var message:String? = null
}

open class SupportTicketRow
{
    var ticketId:Int? = null
    var ticketTokenId:String? = null
    var eventId:Int? = null
    var event:String? = null
    var timeOfEventUTC:Date? = null
    var eventOwnerId:Int? = null
    var eventOwnerName:String? = null
    var ticketStatus:String? = null
    var ticketName:String? = null
    var paymentMethodId:String? = null
    var paymentId:String? = null
    var paymentReference:String? = null
    var timestampBought:Date? = null
    var timestampActivated:Date? = null
    var holderName:String? = null
    var phoneVerificationNumber:String? = null
    var paymentPhoneNumber:String? = null
    var seatDisplayString:String? = null
    var sectionName:String? = null
    var rowName:String? = null
    var seatName:String? = null
    var totalPrice:BigDecimal? = null
    var count:Int? = null
    var ticketTransferredFrom:Int? = null
    var originalPhoneVerificationNumber:String? = null
    var deviceId:String? = null
    var neverOpened:Boolean? = null
}

open class SupportOwnerCardRow
{
    var id:Int? = null
    var ownerId:Int? = null
    var ownerName:String? = null
    var ownerCardTypeId:Int? = null
    var ownerCardTypeName:String? = null
    var holderName:String? = null
    var holderEmail:String? = null
    var phoneVerificationNumber:String? = null
    var paymentPhoneNumber:String? = null
    var paymentStatus:String? = null
    var paymentMethodId:String? = null
    var paymentId:String? = null
    var paymentReference:String? = null
    var timeStampBoughtUTC:Date? = null
    var cardValidFromUTC:Date? = null
    var cardValidToUTC:Date? = null
    var initialMaxTickets:Int? = null
    var currentAvailableTickets:Int? = null
    var cardPrice:BigDecimal? = null
    var pricePaid:BigDecimal? = null
    var currentStoreCredit:BigDecimal? = null
}

open class SupportWebshopOrderRow
{
    var id:Int? = null
    var orderReference:String? = null
    var ownerId:Int? = null
    var ownerName:String? = null
    var status:String? = null
    var totalMinor:Int? = null
    var deliveryFeeMinor:Int? = null
    var totalDiscountMinor:Int? = null
    var giftPaidMinor:Int? = null
    var currency:String? = null
    var deliveryType:String? = null
    var paymentMethodId:String? = null
    var paymentId:String? = null
    var paymentReference:String? = null
    var createdAt:Date? = null
    var updatedAt:Date? = null
    var buyerName:String? = null
    var buyerEmail:String? = null
    var buyerPhone:String? = null
    var lines:ArrayList<WebshopOrderLine> = ArrayList<WebshopOrderLine>()
}

open class WebshopOrderLine
{
    var id:Int? = null
    var orderId:Int? = null
    var productId:Int? = null
    var variantId:Int? = null
    @StringLength(200)
    var productName:String? = null

    @StringLength(50)
    var size:String? = null

    @StringLength(50)
    var color:String? = null

    var unitPriceMinor:Int? = null
    var quantity:Int? = null
    var lineTotalMinor:Int? = null
    @StringLength(20)
    var status:String? = null

    var legacyDetailId:Int? = null
    var createdAt:Date? = null
}

open class SupportGiftCardRow
{
    var id:Int? = null
    var codeLast4:String? = null
    var codeMasked:String? = null
    var status:String? = null
    var scope:String? = null
    var scopeOwnerId:Int? = null
    var scopeOwnerName:String? = null
    var purchaseOwnerId:Int? = null
    var purchaseOwnerName:String? = null
    var currency:String? = null
    var initialValueMinor:Int? = null
    var currentBalanceMinor:Int? = null
    var createdAt:Date? = null
    var activatedAt:Date? = null
    var expiresAt:Date? = null
    var purchasePaymentReference:String? = null
    var paymentId:String? = null
    var paymentMethodId:String? = null
    var buyerName:String? = null
    var buyerEmail:String? = null
    var buyerPhone:String? = null
}

open class SupportSharedLinkRow
{
    var id:Int? = null
    var eventId:Int? = null
    var eventName:String? = null
    var eventOwnerId:Int? = null
    var eventOwnerName:String? = null
    var status:String? = null
    var recipientPhone:String? = null
    var recipientEmail:String? = null
    var ticketCount:Int? = null
    var createdAt:Date? = null
    var validTo:Date? = null
    var soldAt:Date? = null
    var soldTicketOrderId:Int? = null
}

open class SupportCustomerTotals
{
    var ticketSpend:BigDecimal? = null
    var ticketSpendLive:BigDecimal? = null
    var webshopSpendMinor:Long? = null
    var giftCardSpendMinor:Long? = null
}

Kotlin 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
}