TicketUserServices

<back to all web services

TicketOrder

Requires Authentication
Requires any of the roles:Admin, TeamAdmin, MobileAppRequires the permission:ReadData
The following routes are available for this service:
GET POST/ticketOrder
import java.math.*
import java.util.*
import net.servicestack.client.*


open class TicketOrder
{
    var teamPass:TeamPassType? = null
    var order:Ticket? = null
    var orderDetails:ArrayList<TicketDetails> = ArrayList<TicketDetails>()
    var ticketHolders:TicketHoldersList? = null
    var seatReservationTokenId:String? = null
    var cardInfo:PaymentRequestCreditCard? = null
    var paymentPhoneNumber:String? = null
    var paymentCardId:Int? = null
    var requestUnixUTCTimeStamp:Long? = null
    var signature:RequestSignature? = null
    var phoneVerificationNumber:String? = null
    var deviceId:String? = null
    var dontReturnTickets:Boolean? = null
    var appMetaData:String? = null
    var applePayInfo:BorgunApplePayFinalInfo? = null
    var borgun3DFinalInfo:Borgun3DFinalRequest? = null
}

open class TeamPassType
{
    var id:Int? = null
    var name:String? = null
    var price:BigDecimal? = null
    var seriesId:Int? = null
    var ownerId:Int? = null
    var seriesTicketType:Int? = null
    var seriesOwnerTicketType:Int? = null
    var isActive:Boolean? = null
    var onlyForTeamUse:Boolean? = null
    var timestampCreated:Date? = null
    var timestampLastChanged:Date? = null
}

open class Ticket
{
    var id:Int? = null
    var userId:Int? = null
    var userAuthId:Int? = null
    var eventId:Int? = null
    var timestampBought:Date? = null
    var timestampActivated:Date? = null
    var timeStampOrdered:Date? = null
    var deviceId:String? = null
    var phoneVerificationId:Int? = null
    var paymentMethodId:String? = null
    var paymentReference:String? = null
    var ticketStatus:String? = null
    var phoneVerificationNumber:String? = null
    var ticketTokenId:String? = null
    var paymentPhoneNumber:String? = null
    var ticketTransferredFrom:Int? = null
    var originalPhoneVerificationNumber:String? = null
    var teamPassId:Int? = null
    var paymentId:String? = null
    var isFree:Boolean? = null
    var freeTicketFromId:String? = null
    var freeTicketFromTypeId:String? = null
    var freeTicketCardTypeId:String? = null
    var freeTicketCardId:Int? = null
    var totalPaidForTicket:BigDecimal? = null
    var seatsReservationId:String? = null
    var timeStampLastStatusChange:Date? = null
    var lastTicketStatus:String? = null
    var scanCode:String? = null
    var scanCodeType:String? = null
    var scanCodeNotActive:Boolean? = null
    var multipleScanCodes:Boolean? = null
    var currency:String? = null
    var ticketHasExpired:Boolean? = null
}

open class TicketDetails
{
    var id:Int? = null
    var ticketId:Int? = null
    var eventSeriesTicketType:Int? = null
    var eventSeriesOwnerTicketType:Int? = null
    var ticketPrice:BigDecimal? = null
    var totalPrice:BigDecimal? = null
    var count:Int? = null
    var ticketColor:String? = null
    var showUsedTickets:Boolean? = null
    var ticketName:String? = null
    var ticketDisplayString:String? = null
    var ticketDetailsTransferredFrom:Int? = null
    var teamPassId:Int? = null
    var isSpecialTicket:Boolean? = null
    var specialTicketId:String? = null
    var justChangedBySQL:Boolean? = null
    var sqlJustChangedTimeStamp:Date? = null
    var currency:String? = null
}

open class TicketHoldersList
{
    var ticketHolders:ArrayList<TicketHolderInfo> = ArrayList<TicketHolderInfo>()
    var holderInfoRequired:Boolean? = null
}

open class TicketHolderInfo
{
    var name:String? = null
    var fullPhoneNumber:String? = null
    var holderId:String? = null
    var seatId:Int? = null
    var seatDisplayString:String? = null
}

open class PaymentRequestCreditCard
{
    var paymentMethod:PaymentMethodCreditCardInfo? = null
    var amount:BigDecimal? = null
    var currency:String? = null
    var orderId:String? = null
    var transActionDate:Date? = null
    var saveCardToToken:Boolean? = null
}

open class PaymentMethodCreditCardInfo
{
    var paymentType:String? = null
    var token:String? = null
    var pan:String? = null
    var expYear:String? = null
    var expMonth:String? = null
    var cvc:String? = null
}

open class RequestSignature
{
    var systemId:String? = null
    var systemSecret:String? = null
    var signature:String? = null
}

open class BorgunApplePayFinalInfo
{
    var orderId:String? = null
    var threeDSecure:BorgunApplePayThreeDSecureInfo? = null
}

open class BorgunApplePayThreeDSecureInfo
{
    var dataType:String? = null
    var securityLevelInd:String? = null
    var cavv:String? = null
    var ucaf:String? = null
}

open class Borgun3DFinalRequest
{
    var transactionType:String? = null
    var amount:Int? = null
    var currency:String? = null
    var transactionDate:Date? = null
    var orderId:String? = null
    var paymentMethod:Borgun3DFinalPaymentMethodInfo? = null
    var threeDSecure:Borgun3DFinal3DSecureInfo? = null
}

open class Borgun3DFinalPaymentMethodInfo
{
    var paymentType:String? = null
    var token:String? = null
}

open class Borgun3DFinal3DSecureInfo
{
    var dataType:String? = null
    var mpiToken:String? = null
}

open class TicketOrderResult
{
    var ticketAndDetails:EventTicketWithDetails? = null
    var statusCode:Int? = null
    var message:String? = null
}

open class EventTicketWithDetails
{
    var eventTicket:Ticket? = null
    var eventTicketDetails:ArrayList<TicketDetailsInfo> = ArrayList<TicketDetailsInfo>()
    var eventInfo:EventDetails? = null
    var eventIsToday:Boolean? = null
    var eventisLive:Boolean? = null
    var minutesToEvent:Long? = null
}

open class TicketDetailsInfo : TicketDetails()
{
    var holderInfoRequired:Boolean? = null
    var blockTransfer:Boolean? = null
    var ticketTypeImageUrl:String? = null
    var ticketHolders:ArrayList<TicketHolderInfo> = ArrayList<TicketHolderInfo>()
    var gateAccessCodes:ArrayList<ExternalGateAccessCodeInfo> = ArrayList<ExternalGateAccessCodeInfo>()
}

open class ExternalGateAccessCodeInfo
{
    var code:String? = null
    var codeType:String? = null
    var codeUrl:String? = null
    var validFrom:Date? = null
    var validTo:Date? = null
}

open class EventDetails
{
    var id:Int? = null
    var name:String? = null
    var description:String? = null
    var externalReference:String? = null
    var timeOfEvent:Date? = null
    var eventLocationId:Int? = null
    var eventSeriesId:Int? = null
    var eventOwnerId:Int? = null
    var eventActive:Boolean? = null
    var eventOwnerName:String? = null
    var externalOwnerId:String? = null
    var teamAwayId:String? = null
    var teamAwayName:String? = null
    var eventSeriesName:String? = null
    var eventLocationName:String? = null
    var latitude:BigDecimal? = null
    var longitude:BigDecimal? = null
    var defaultValues:String? = null
    var externalReferenceType:String? = null
    var eventSeriesActive:Boolean? = null
    var allowedKsiCard:String? = null
    var seriesId:String? = null
    var seriesShowByDefault:Boolean? = null
    var postponedNoDate:Boolean? = null
    var awayTeamExternalId:String? = null
    var sportGenderId:String? = null
    var externalIdType:String? = null
    var seriesEventSaleSuspended:Boolean? = null
    var seriesSaleSuspensionEventStartDate:Date? = null
    var seriesSaleSuspensionEventEndDate:Date? = null
    var saleIsActive:Boolean? = null
    var hideEvent:Boolean? = null
    var imageUrl2:String? = null
    var directAccessCode:String? = null
    var imageUrl:String? = null
    var detailedDescription:String? = null
    var ownerImageUrl:String? = null
    var ownerImageUrl2:String? = null
    var ownerCardsNotAllowed:Boolean? = null
    var seatingImageUrl:String? = null
    var endOfEvent:Date? = null
    var endOfEventUTC:Date? = null
    var timeZone:String? = null
    var timeOfEventUTC:Date? = null
}

Kotlin TicketOrder 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 /ticketOrder HTTP/1.1 
Host: stubbur-autoupdates-live.smartnewapis.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	teamPass: 
	{
		id: 0,
		name: String,
		price: 0,
		seriesId: 0,
		ownerId: 0,
		seriesTicketType: 0,
		seriesOwnerTicketType: 0,
		isActive: False,
		onlyForTeamUse: False,
		timestampCreated: 0001-01-01,
		timestampLastChanged: 0001-01-01
	},
	order: 
	{
		id: 0,
		userId: 0,
		userAuthId: 0,
		eventId: 0,
		timestampBought: 0001-01-01,
		timestampActivated: 0001-01-01,
		timeStampOrdered: 0001-01-01,
		deviceId: String,
		phoneVerificationId: 0,
		paymentMethodId: String,
		paymentReference: String,
		ticketStatus: String,
		phoneVerificationNumber: String,
		ticketTokenId: String,
		paymentPhoneNumber: String,
		ticketTransferredFrom: 0,
		originalPhoneVerificationNumber: String,
		teamPassId: 0,
		paymentId: String,
		isFree: False,
		freeTicketFromId: String,
		freeTicketFromTypeId: String,
		freeTicketCardTypeId: String,
		freeTicketCardId: 0,
		totalPaidForTicket: 0,
		seatsReservationId: String,
		timeStampLastStatusChange: 0001-01-01,
		lastTicketStatus: String,
		scanCode: String,
		scanCodeType: String,
		scanCodeNotActive: False,
		multipleScanCodes: False,
		currency: String,
		ticketHasExpired: False
	},
	orderDetails: 
	[
		{
			id: 0,
			ticketId: 0,
			eventSeriesTicketType: 0,
			eventSeriesOwnerTicketType: 0,
			ticketPrice: 0,
			totalPrice: 0,
			count: 0,
			ticketColor: String,
			showUsedTickets: False,
			ticketName: String,
			ticketDisplayString: String,
			ticketDetailsTransferredFrom: 0,
			teamPassId: 0,
			isSpecialTicket: False,
			specialTicketId: String,
			justChangedBySQL: False,
			sqlJustChangedTimeStamp: 0001-01-01,
			currency: String
		}
	],
	ticketHolders: 
	{
		ticketHolders: 
		[
			{
				name: String,
				fullPhoneNumber: String,
				holderId: String,
				seatId: 0,
				seatDisplayString: String
			}
		],
		holderInfoRequired: False
	},
	seatReservationTokenId: String,
	cardInfo: 
	{
		paymentMethod: 
		{
			paymentType: String,
			token: String,
			pan: String,
			expYear: String,
			expMonth: String,
			cvc: String
		},
		amount: 0,
		currency: String,
		orderId: String,
		transActionDate: 0001-01-01,
		saveCardToToken: False
	},
	paymentPhoneNumber: String,
	paymentCardId: 0,
	requestUnixUTCTimeStamp: 0,
	signature: 
	{
		systemId: String,
		systemSecret: String,
		signature: String
	},
	phoneVerificationNumber: String,
	deviceId: String,
	dontReturnTickets: False,
	appMetaData: String,
	applePayInfo: 
	{
		orderId: String,
		threeDSecure: 
		{
			dataType: String,
			securityLevelInd: String,
			cavv: String,
			ucaf: String
		}
	},
	borgun3DFinalInfo: 
	{
		transactionType: String,
		amount: 0,
		currency: String,
		transactionDate: 0001-01-01,
		orderId: String,
		paymentMethod: 
		{
			paymentType: String,
			token: String
		},
		threeDSecure: 
		{
			dataType: String,
			mpiToken: String
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ticketAndDetails: 
	{
		eventTicket: 
		{
			id: 0,
			userId: 0,
			userAuthId: 0,
			eventId: 0,
			timestampBought: 0001-01-01,
			timestampActivated: 0001-01-01,
			timeStampOrdered: 0001-01-01,
			deviceId: String,
			phoneVerificationId: 0,
			paymentMethodId: String,
			paymentReference: String,
			ticketStatus: String,
			phoneVerificationNumber: String,
			ticketTokenId: String,
			paymentPhoneNumber: String,
			ticketTransferredFrom: 0,
			originalPhoneVerificationNumber: String,
			teamPassId: 0,
			paymentId: String,
			isFree: False,
			freeTicketFromId: String,
			freeTicketFromTypeId: String,
			freeTicketCardTypeId: String,
			freeTicketCardId: 0,
			totalPaidForTicket: 0,
			seatsReservationId: String,
			timeStampLastStatusChange: 0001-01-01,
			lastTicketStatus: String,
			scanCode: String,
			scanCodeType: String,
			scanCodeNotActive: False,
			multipleScanCodes: False,
			currency: String,
			ticketHasExpired: False
		},
		eventTicketDetails: 
		[
			{
				
			}
		],
		eventInfo: 
		{
			id: 0,
			name: String,
			description: String,
			externalReference: String,
			timeOfEvent: 0001-01-01,
			eventLocationId: 0,
			eventSeriesId: 0,
			eventOwnerId: 0,
			eventActive: False,
			eventOwnerName: String,
			externalOwnerId: String,
			teamAwayId: String,
			teamAwayName: String,
			eventSeriesName: String,
			eventLocationName: String,
			latitude: 0,
			longitude: 0,
			defaultValues: String,
			externalReferenceType: String,
			eventSeriesActive: False,
			allowedKsiCard: String,
			seriesId: String,
			seriesShowByDefault: False,
			postponedNoDate: False,
			awayTeamExternalId: String,
			sportGenderId: String,
			externalIdType: String,
			seriesEventSaleSuspended: False,
			seriesSaleSuspensionEventStartDate: 0001-01-01,
			seriesSaleSuspensionEventEndDate: 0001-01-01,
			saleIsActive: False,
			hideEvent: False,
			imageUrl2: String,
			directAccessCode: String,
			imageUrl: String,
			detailedDescription: String,
			ownerImageUrl: String,
			ownerImageUrl2: String,
			ownerCardsNotAllowed: False,
			seatingImageUrl: String,
			endOfEvent: 0001-01-01,
			endOfEventUTC: 0001-01-01,
			timeZone: String,
			timeOfEventUTC: 0001-01-01
		},
		eventIsToday: False,
		eventisLive: False,
		minutesToEvent: 0
	},
	statusCode: 0,
	message: String
}