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

export class GeneralOrderResponse
{
    public statusCode?: number;
    public message?: string;
    public success?: boolean;
    public paymentIsPending?: boolean;
    public orderTokenId?: string;

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

export class OwnerCards
{
    public id?: number;
    public ownerId?: number;
    public ownerCardTypeId?: number;
    public phoneVerificationId?: number;
    public initialMaxTickets?: number;
    public currentAvailableTickets?: number;
    public timeStampCreatedUTC?: string;
    public timeStampLastChangedUTC?: string;
    public timeStampBoughtUTC?: string;
    public timeStampOrderedUTC?: string;
    public cardValidFromUTC?: string;
    public cardValidToUTC?: string;
    public hasStoreCredit?: boolean;
    public cardPrice?: number;
    public pricePaid?: number;
    public initialStoreCredit?: number;
    public currentStoreCredit?: number;
    public phoneFullVerificationNumber?: string;
    public holderId?: string;
    public holderName?: string;
    public holderEmail?: string;
    public cardPriceCurrency?: string;
    public pricePaidCurrency?: string;
    public deviceId?: string;
    public paymentMethodId?: string;
    public paymentReference?: string;
    public phoneVerificationNumber?: string;
    public paymentPhoneNumber?: string;
    public paymentId?: string;
    public paymentStatus?: string;
    public paymentTokenId?: string;
    public maxTicketsPerEvent?: number;
    public multiplePaymentsId?: string;
    public imageUrl?: string;
    public backgroundImageUrl?: string;
    public orderReference?: string;
    public upgradedFromOwnerCardId?: number;

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

export class OwnerCardsOrderResult extends GeneralOrderResponse
{
    public cards?: OwnerCards[];
    public orderReference?: string;
    public isSubscription?: boolean;
    public monthlyPrice?: number;
    public transactionFee?: number;
    public months?: number;
    public paymentTokenId?: string;
    public subscriptionTokenMissing?: boolean;
    public priceTotal?: number;
    public discountAmount?: number;
    public giftCardAmount?: number;
    public donationAmount?: number;
    public chargedAmount?: number;
    public reason?: string;

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

export class OwnerCardsUpgradeResult extends OwnerCardsOrderResult
{
    public sourceOwnerCardId?: number;
    public sourceOwnerCardTypeId?: number;
    public sourceTypeName?: string;
    public newOwnerCardId?: number;
    public targetOwnerCardTypeId?: number;
    public targetTypeName?: string;
    public relinkedTickets?: number;
    public paymentReference?: string;
    public refundPending?: boolean;

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

export class Borgun3DFinalPaymentMethodInfo
{
    public paymentType?: string;
    public token?: string;
    public virtualNumber?: string;
    public expYear?: string;
    public expMonth?: string;
    public panLastFour?: string;

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

export class Borgun3DFinal3DSecureInfo
{
    public dataType?: string;
    public mpiToken?: string;

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

export class Borgun3DFinalRequest
{
    public transactionType?: string;
    public amount?: number;
    public currency?: string;
    public transactionDate?: string;
    public orderId?: string;
    public paymentMethod?: Borgun3DFinalPaymentMethodInfo;
    public threeDSecure?: Borgun3DFinal3DSecureInfo;

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

export class OrderTender
{
    public kind?: string;
    public code?: string;
    public amountMinor?: number;
    public idempotencyKey?: string;
    public holdId?: number;
    public appliedMinor?: number;

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

export class OwnerCardsUpgradeRequest
{
    public buyerPhone?: string;
    public sourceOwnerCardId?: number;
    public targetOwnerCardTypeId?: number;
    public idempotencyKey?: string;
    public paymentMethodId?: string;
    public borgun3DFinalInfo?: Borgun3DFinalRequest;
    public tenders?: OrderTender[];
    public holderName?: string;
    public holderEmail?: string;
    public deviceId?: string;
    public returnCards?: boolean;

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

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