TicketUserServices

<back to all web services

OwnerCardsUpgradeRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdminRequires the permission:ReadData
The following routes are available for this service:
POST/OrderOwnerCards/upgradeCharge the delta, issue the target card (PricePaid = delta), revoke the source card, re-link future tickets — one transaction, idempotent
namespace TicketUserServices.ServiceModel

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type GeneralOrderResponse() = 
        member val StatusCode:Int32 = new Int32() with get,set
        member val Message:String = null with get,set
        member val Success:Boolean = new Boolean() with get,set
        member val PaymentIsPending:Boolean = new Boolean() with get,set
        member val OrderTokenId:String = null with get,set

    [<AllowNullLiteral>]
    type OwnerCards() = 
        member val ID:Int32 = new Int32() with get,set
        member val OwnerId:Int32 = new Int32() with get,set
        member val OwnerCardTypeId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PhoneVerificationId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val InitialMaxTickets:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val CurrentAvailableTickets:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val TimeStampCreatedUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val TimeStampLastChangedUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val TimeStampBoughtUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val TimeStampOrderedUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CardValidFromUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val CardValidToUTC:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val HasStoreCredit:Boolean = new Boolean() with get,set
        member val CardPrice:Decimal = new Decimal() with get,set
        member val PricePaid:Decimal = new Decimal() with get,set
        member val InitialStoreCredit:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val CurrentStoreCredit:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val PhoneFullVerificationNumber:String = null with get,set
        member val HolderId:String = null with get,set
        member val HolderName:String = null with get,set
        member val HolderEmail:String = null with get,set
        member val CardPriceCurrency:String = null with get,set
        member val PricePaidCurrency:String = null with get,set
        member val DeviceId:String = null with get,set
        member val PaymentMethodId:String = null with get,set
        member val PaymentReference:String = null with get,set
        member val PhoneVerificationNumber:String = null with get,set
        member val PaymentPhoneNumber:String = null with get,set
        member val PaymentId:String = null with get,set
        member val PaymentStatus:String = null with get,set
        member val PaymentTokenId:String = null with get,set
        member val MaxTicketsPerEvent:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val MultiplePaymentsId:String = null with get,set
        member val ImageUrl:String = null with get,set
        member val BackgroundImageUrl:String = null with get,set
        member val OrderReference:String = null with get,set
        member val UpgradedFromOwnerCardId:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type OwnerCardsOrderResult() = 
        inherit GeneralOrderResponse()
        member val Cards:ResizeArray<OwnerCards> = new ResizeArray<OwnerCards>() with get,set
        member val OrderReference:String = null with get,set
        member val IsSubscription:Boolean = new Boolean() with get,set
        member val MonthlyPrice:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val TransactionFee:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Months:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val PaymentTokenId:String = null with get,set
        member val SubscriptionTokenMissing:Boolean = new Boolean() with get,set
        member val PriceTotal:Int32 = new Int32() with get,set
        member val DiscountAmount:Int32 = new Int32() with get,set
        member val GiftCardAmount:Int32 = new Int32() with get,set
        member val DonationAmount:Int32 = new Int32() with get,set
        member val ChargedAmount:Int32 = new Int32() with get,set
        member val Reason:String = null with get,set

    [<AllowNullLiteral>]
    type OwnerCardsUpgradeResult() = 
        inherit OwnerCardsOrderResult()
        member val SourceOwnerCardId:Int32 = new Int32() with get,set
        member val SourceOwnerCardTypeId:Int32 = new Int32() with get,set
        member val SourceTypeName:String = null with get,set
        member val NewOwnerCardId:Int32 = new Int32() with get,set
        member val TargetOwnerCardTypeId:Int32 = new Int32() with get,set
        member val TargetTypeName:String = null with get,set
        member val RelinkedTickets:Int32 = new Int32() with get,set
        member val PaymentReference:String = null with get,set
        member val RefundPending:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type Borgun3DFinalPaymentMethodInfo() = 
        member val PaymentType:String = null with get,set
        member val Token:String = null with get,set
        member val VirtualNumber:String = null with get,set
        member val ExpYear:String = null with get,set
        member val ExpMonth:String = null with get,set
        member val PanLastFour:String = null with get,set

    [<AllowNullLiteral>]
    type Borgun3DFinal3DSecureInfo() = 
        member val DataType:String = null with get,set
        member val MpiToken:String = null with get,set

    [<AllowNullLiteral>]
    type Borgun3DFinalRequest() = 
        member val TransactionType:String = null with get,set
        member val Amount:Int32 = new Int32() with get,set
        member val Currency:String = null with get,set
        member val TransactionDate:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val OrderId:String = null with get,set
        member val PaymentMethod:Borgun3DFinalPaymentMethodInfo = null with get,set
        member val ThreeDSecure:Borgun3DFinal3DSecureInfo = null with get,set

    [<AllowNullLiteral>]
    type OrderTender() = 
        member val Kind:String = null with get,set
        member val Code:String = null with get,set
        member val AmountMinor:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val IdempotencyKey:String = null with get,set
        member val HoldId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val AppliedMinor:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type OwnerCardsUpgradeRequest() = 
        member val BuyerPhone:String = null with get,set
        member val SourceOwnerCardId:Int32 = new Int32() with get,set
        member val TargetOwnerCardTypeId:Int32 = new Int32() with get,set
        member val IdempotencyKey:String = null with get,set
        member val PaymentMethodId:String = null with get,set
        member val Borgun3DFinalInfo:Borgun3DFinalRequest = null with get,set
        member val Tenders:ResizeArray<OrderTender> = new ResizeArray<OrderTender>() with get,set
        member val HolderName:String = null with get,set
        member val HolderEmail:String = null with get,set
        member val DeviceId:String = null with get,set
        member val ReturnCards:Boolean = new Boolean() with get,set

F# OwnerCardsUpgradeRequest 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 /OrderOwnerCards/upgrade HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	buyerPhone: String,
	sourceOwnerCardId: 0,
	targetOwnerCardTypeId: 0,
	idempotencyKey: String,
	paymentMethodId: String,
	borgun3DFinalInfo: 
	{
		transactionType: String,
		amount: 0,
		currency: String,
		transactionDate: 0001-01-01,
		orderId: String,
		paymentMethod: 
		{
			paymentType: String,
			token: String,
			virtualNumber: String,
			expYear: String,
			expMonth: String,
			panLastFour: String
		},
		threeDSecure: 
		{
			dataType: String,
			mpiToken: String
		}
	},
	tenders: 
	[
		{
			kind: String,
			code: String,
			amountMinor: 0,
			idempotencyKey: String,
			holdId: 0,
			appliedMinor: 0
		}
	],
	holderName: String,
	holderEmail: String,
	deviceId: String,
	returnCards: False
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	sourceOwnerCardId: 0,
	sourceOwnerCardTypeId: 0,
	sourceTypeName: String,
	newOwnerCardId: 0,
	targetOwnerCardTypeId: 0,
	targetTypeName: String,
	relinkedTickets: 0,
	paymentReference: String,
	refundPending: False,
	cards: 
	[
		{
			id: 0,
			ownerId: 0,
			ownerCardTypeId: 0,
			phoneVerificationId: 0,
			initialMaxTickets: 0,
			currentAvailableTickets: 0,
			timeStampCreatedUTC: 0001-01-01,
			timeStampLastChangedUTC: 0001-01-01,
			timeStampBoughtUTC: 0001-01-01,
			timeStampOrderedUTC: 0001-01-01,
			cardValidFromUTC: 0001-01-01,
			cardValidToUTC: 0001-01-01,
			hasStoreCredit: False,
			cardPrice: 0,
			pricePaid: 0,
			initialStoreCredit: 0,
			currentStoreCredit: 0,
			phoneFullVerificationNumber: String,
			holderId: String,
			holderName: String,
			holderEmail: String,
			cardPriceCurrency: String,
			pricePaidCurrency: String,
			deviceId: String,
			paymentMethodId: String,
			paymentReference: String,
			phoneVerificationNumber: String,
			paymentPhoneNumber: String,
			paymentId: String,
			paymentStatus: String,
			paymentTokenId: String,
			maxTicketsPerEvent: 0,
			multiplePaymentsId: String,
			imageUrl: String,
			backgroundImageUrl: String,
			orderReference: String,
			upgradedFromOwnerCardId: 0
		}
	],
	orderReference: String,
	isSubscription: False,
	monthlyPrice: 0,
	transactionFee: 0,
	months: 0,
	paymentTokenId: String,
	subscriptionTokenMissing: False,
	priceTotal: 0,
	discountAmount: 0,
	giftCardAmount: 0,
	donationAmount: 0,
	chargedAmount: 0,
	reason: String,
	statusCode: 0,
	message: String,
	success: False,
	paymentIsPending: False,
	orderTokenId: String
}