TicketUserServices

<back to all web services

TicketTransferCreatePendingRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdmin, MobileAppRequires the permission:ReadData
The following routes are available for this service:
POST/ticketTransfer/createPending
import Foundation
import ServiceStack

public class TicketTransferCreatePendingRequest : Codable
{
    public var phoneVerificationNumber:String?
    public var transferFromPhoneVerificationNumber:String?
    public var transferToPhoneVerificationNumber:String?
    public var eventTicket:Ticket?
    public var eventTicketDetails:[TicketDetails] = []
    public var toEmail:String?
    public var toName:String?
    public var idempotencyKey:String?

    required public init(){}
}

public class Ticket : Codable
{
    public var id:Int?
    public var userId:Int?
    public var userAuthId:Int?
    public var eventId:Int?
    public var timestampBought:Date?
    public var timestampActivated:Date?
    public var timeStampOrdered:Date?
    public var deviceId:String?
    public var phoneVerificationId:Int?
    public var paymentMethodId:String?
    public var paymentReference:String?
    public var ticketStatus:String?
    public var phoneVerificationNumber:String?
    public var ticketTokenId:String?
    public var paymentPhoneNumber:String?
    public var ticketTransferredFrom:Int?
    public var originalPhoneVerificationNumber:String?
    public var teamPassId:Int?
    public var paymentId:String?
    public var isFree:Bool?
    public var freeTicketFromId:String?
    public var freeTicketFromTypeId:String?
    public var freeTicketCardTypeId:String?
    public var freeTicketCardId:Int?
    public var totalPaidForTicket:Double?
    public var seatsReservationId:String?
    public var timeStampLastStatusChange:Date?
    public var lastTicketStatus:String?
    public var scanCode:String?
    public var scanCodeType:String?
    public var scanCodeNotActive:Bool?
    public var multipleScanCodes:Bool?
    public var currency:String?
    public var ticketHasExpired:Bool?
    public var discountCode:String?
    public var totalDiscount:Double?
    public var totalAmountBeforeDiscount:Double?

    required public init(){}
}

public class TicketDetails : Codable
{
    public var id:Int?
    public var ticketId:Int?
    public var eventSeriesTicketType:Int?
    public var eventSeriesOwnerTicketType:Int?
    public var ticketPrice:Double?
    public var totalPrice:Double?
    public var count:Int?
    public var ticketColor:String?
    public var showUsedTickets:Bool?
    public var ticketName:String?
    public var ticketDisplayString:String?
    public var ticketDetailsTransferredFrom:Int?
    public var teamPassId:Int?
    public var isSpecialTicket:Bool?
    public var specialTicketId:String?
    public var justChangedBySQL:Bool?
    public var sqlJustChangedTimeStamp:Date?
    public var currency:String?
    public var discountCode:String?
    public var totalDiscount:Double?
    public var totalAmountBeforeDiscount:Double?
    public var ticketPriceBeforeDiscount:Double?

    required public init(){}
}

public class TicketTransferCreatePendingResult : TicketTransferBaseResult
{
    public var transferToken:String?
    public var status:String?
    public var toPhoneCanonical:String?
    public var toPhoneDisplay:String?
    public var toPhoneRaw:String?
    public var expiresAt:Date?
    public var eventId:Int?
    public var eventName:String?

    required public init(){ super.init() }

    private enum CodingKeys : String, CodingKey {
        case transferToken
        case status
        case toPhoneCanonical
        case toPhoneDisplay
        case toPhoneRaw
        case expiresAt
        case eventId
        case eventName
    }

    required public init(from decoder: Decoder) throws {
        try super.init(from: decoder)
        let container = try decoder.container(keyedBy: CodingKeys.self)
        transferToken = try container.decodeIfPresent(String.self, forKey: .transferToken)
        status = try container.decodeIfPresent(String.self, forKey: .status)
        toPhoneCanonical = try container.decodeIfPresent(String.self, forKey: .toPhoneCanonical)
        toPhoneDisplay = try container.decodeIfPresent(String.self, forKey: .toPhoneDisplay)
        toPhoneRaw = try container.decodeIfPresent(String.self, forKey: .toPhoneRaw)
        expiresAt = try container.decodeIfPresent(Date.self, forKey: .expiresAt)
        eventId = try container.decodeIfPresent(Int.self, forKey: .eventId)
        eventName = try container.decodeIfPresent(String.self, forKey: .eventName)
    }

    public override func encode(to encoder: Encoder) throws {
        try super.encode(to: encoder)
        var container = encoder.container(keyedBy: CodingKeys.self)
        if transferToken != nil { try container.encode(transferToken, forKey: .transferToken) }
        if status != nil { try container.encode(status, forKey: .status) }
        if toPhoneCanonical != nil { try container.encode(toPhoneCanonical, forKey: .toPhoneCanonical) }
        if toPhoneDisplay != nil { try container.encode(toPhoneDisplay, forKey: .toPhoneDisplay) }
        if toPhoneRaw != nil { try container.encode(toPhoneRaw, forKey: .toPhoneRaw) }
        if expiresAt != nil { try container.encode(expiresAt, forKey: .expiresAt) }
        if eventId != nil { try container.encode(eventId, forKey: .eventId) }
        if eventName != nil { try container.encode(eventName, forKey: .eventName) }
    }
}

public class TicketTransferBaseResult : Codable
{
    public var statusCode:Int?
    public var message:String?
    public var errorCode:String?

    required public init(){}
}


Swift TicketTransferCreatePendingRequest 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 /ticketTransfer/createPending HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	phoneVerificationNumber: String,
	transferFromPhoneVerificationNumber: String,
	transferToPhoneVerificationNumber: String,
	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,
		discountCode: String,
		totalDiscount: 0,
		totalAmountBeforeDiscount: 0
	},
	eventTicketDetails: 
	[
		{
			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,
			discountCode: String,
			totalDiscount: 0,
			totalAmountBeforeDiscount: 0,
			ticketPriceBeforeDiscount: 0
		}
	],
	toEmail: String,
	toName: String,
	idempotencyKey: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	transferToken: String,
	status: String,
	toPhoneCanonical: String,
	toPhoneDisplay: String,
	toPhoneRaw: String,
	expiresAt: 0001-01-01,
	eventId: 0,
	eventName: String,
	statusCode: 0,
	message: String,
	errorCode: String
}