| Requires any of the roles: | Admin, TeamAdmin | Requires the permission: | ReadData |
| POST | /OrderOwnerCards/upgrade | Charge the delta, issue the target card (PricePaid = delta), revoke the source card, re-link future tickets — one transaction, idempotent |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
open class OwnerCardsUpgradeRequest
{
var buyerPhone:String? = null
var sourceOwnerCardId:Int? = null
var targetOwnerCardTypeId:Int? = null
var idempotencyKey:String? = null
var paymentMethodId:String? = null
var borgun3DFinalInfo:Borgun3DFinalRequest? = null
var tenders:ArrayList<OrderTender> = ArrayList<OrderTender>()
var holderName:String? = null
var holderEmail:String? = null
var deviceId:String? = null
var returnCards:Boolean? = 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
var virtualNumber:String? = null
var expYear:String? = null
var expMonth:String? = null
var panLastFour:String? = null
}
open class Borgun3DFinal3DSecureInfo
{
var dataType:String? = null
var mpiToken:String? = null
}
open class OrderTender
{
var kind:String? = null
var code:String? = null
var amountMinor:Int? = null
var idempotencyKey:String? = null
var holdId:Int? = null
var appliedMinor:Int? = null
}
open class OwnerCardsUpgradeResult : OwnerCardsOrderResult()
{
var sourceOwnerCardId:Int? = null
var sourceOwnerCardTypeId:Int? = null
var sourceTypeName:String? = null
var newOwnerCardId:Int? = null
var targetOwnerCardTypeId:Int? = null
var targetTypeName:String? = null
var relinkedTickets:Int? = null
var paymentReference:String? = null
var refundPending:Boolean? = null
}
open class OwnerCardsOrderResult : GeneralOrderResponse()
{
var cards:ArrayList<OwnerCards> = ArrayList<OwnerCards>()
var orderReference:String? = null
var isSubscription:Boolean? = null
var monthlyPrice:BigDecimal? = null
var transactionFee:BigDecimal? = null
var months:Int? = null
var paymentTokenId:String? = null
var subscriptionTokenMissing:Boolean? = null
var priceTotal:Int? = null
var discountAmount:Int? = null
var giftCardAmount:Int? = null
var donationAmount:Int? = null
var chargedAmount:Int? = null
var reason:String? = null
}
open class GeneralOrderResponse
{
var statusCode:Int? = null
var message:String? = null
var success:Boolean? = null
var paymentIsPending:Boolean? = null
var orderTokenId:String? = null
}
open class OwnerCards
{
var id:Int? = null
var ownerId:Int? = null
var ownerCardTypeId:Int? = null
var phoneVerificationId:Int? = null
var initialMaxTickets:Int? = null
var currentAvailableTickets:Int? = null
var timeStampCreatedUTC:Date? = null
var timeStampLastChangedUTC:Date? = null
var timeStampBoughtUTC:Date? = null
var timeStampOrderedUTC:Date? = null
var cardValidFromUTC:Date? = null
var cardValidToUTC:Date? = null
var hasStoreCredit:Boolean? = null
var cardPrice:BigDecimal? = null
var pricePaid:BigDecimal? = null
var initialStoreCredit:BigDecimal? = null
var currentStoreCredit:BigDecimal? = null
var phoneFullVerificationNumber:String? = null
var holderId:String? = null
var holderName:String? = null
var holderEmail:String? = null
var cardPriceCurrency:String? = null
var pricePaidCurrency:String? = null
var deviceId:String? = null
var paymentMethodId:String? = null
var paymentReference:String? = null
var phoneVerificationNumber:String? = null
var paymentPhoneNumber:String? = null
var paymentId:String? = null
var paymentStatus:String? = null
var paymentTokenId:String? = null
var maxTicketsPerEvent:Int? = null
var multiplePaymentsId:String? = null
var imageUrl:String? = null
var backgroundImageUrl:String? = null
var orderReference:String? = null
var upgradedFromOwnerCardId:Int? = null
}
Kotlin OwnerCardsUpgradeRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
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/csv
Content-Type: text/csv
Content-Length: length
{"buyerPhone":"String","sourceOwnerCardId":0,"targetOwnerCardTypeId":0,"idempotencyKey":"String","paymentMethodId":"String","borgun3DFinalInfo":{"transactionType":"String","amount":0,"currency":"String","transactionDate":"0001-01-01T00:00:00.0000000","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/csv
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-01T00:00:00.0000000","timeStampLastChangedUTC":"0001-01-01T00:00:00.0000000","timeStampBoughtUTC":"0001-01-01T00:00:00.0000000","timeStampOrderedUTC":"0001-01-01T00:00:00.0000000","cardValidFromUTC":"0001-01-01T00:00:00.0000000","cardValidToUTC":"0001-01-01T00:00:00.0000000","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"}