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
import 'package:servicestack/servicestack.dart';

class GeneralOrderResponse implements IConvertible
{
    int? statusCode;
    String? message;
    bool? success;
    bool? paymentIsPending;
    String? orderTokenId;

    GeneralOrderResponse({this.statusCode,this.message,this.success,this.paymentIsPending,this.orderTokenId});
    GeneralOrderResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        statusCode = json['statusCode'];
        message = json['message'];
        success = json['success'];
        paymentIsPending = json['paymentIsPending'];
        orderTokenId = json['orderTokenId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'statusCode': statusCode,
        'message': message,
        'success': success,
        'paymentIsPending': paymentIsPending,
        'orderTokenId': orderTokenId
    };

    getTypeName() => "GeneralOrderResponse";
    TypeContext? context = _ctx;
}

class OwnerCards implements IConvertible
{
    int? id;
    int? ownerId;
    int? ownerCardTypeId;
    int? phoneVerificationId;
    int? initialMaxTickets;
    int? currentAvailableTickets;
    DateTime? timeStampCreatedUTC;
    DateTime? timeStampLastChangedUTC;
    DateTime? timeStampBoughtUTC;
    DateTime? timeStampOrderedUTC;
    DateTime? cardValidFromUTC;
    DateTime? cardValidToUTC;
    bool? hasStoreCredit;
    double? cardPrice;
    double? pricePaid;
    double? initialStoreCredit;
    double? currentStoreCredit;
    String? 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;
    int? maxTicketsPerEvent;
    String? multiplePaymentsId;
    String? imageUrl;
    String? backgroundImageUrl;
    String? orderReference;
    int? upgradedFromOwnerCardId;

    OwnerCards({this.id,this.ownerId,this.ownerCardTypeId,this.phoneVerificationId,this.initialMaxTickets,this.currentAvailableTickets,this.timeStampCreatedUTC,this.timeStampLastChangedUTC,this.timeStampBoughtUTC,this.timeStampOrderedUTC,this.cardValidFromUTC,this.cardValidToUTC,this.hasStoreCredit,this.cardPrice,this.pricePaid,this.initialStoreCredit,this.currentStoreCredit,this.phoneFullVerificationNumber,this.holderId,this.holderName,this.holderEmail,this.cardPriceCurrency,this.pricePaidCurrency,this.deviceId,this.paymentMethodId,this.paymentReference,this.phoneVerificationNumber,this.paymentPhoneNumber,this.paymentId,this.paymentStatus,this.paymentTokenId,this.maxTicketsPerEvent,this.multiplePaymentsId,this.imageUrl,this.backgroundImageUrl,this.orderReference,this.upgradedFromOwnerCardId});
    OwnerCards.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        ownerId = json['ownerId'];
        ownerCardTypeId = json['ownerCardTypeId'];
        phoneVerificationId = json['phoneVerificationId'];
        initialMaxTickets = json['initialMaxTickets'];
        currentAvailableTickets = json['currentAvailableTickets'];
        timeStampCreatedUTC = JsonConverters.fromJson(json['timeStampCreatedUTC'],'DateTime',context!);
        timeStampLastChangedUTC = JsonConverters.fromJson(json['timeStampLastChangedUTC'],'DateTime',context!);
        timeStampBoughtUTC = JsonConverters.fromJson(json['timeStampBoughtUTC'],'DateTime',context!);
        timeStampOrderedUTC = JsonConverters.fromJson(json['timeStampOrderedUTC'],'DateTime',context!);
        cardValidFromUTC = JsonConverters.fromJson(json['cardValidFromUTC'],'DateTime',context!);
        cardValidToUTC = JsonConverters.fromJson(json['cardValidToUTC'],'DateTime',context!);
        hasStoreCredit = json['hasStoreCredit'];
        cardPrice = JsonConverters.toDouble(json['cardPrice']);
        pricePaid = JsonConverters.toDouble(json['pricePaid']);
        initialStoreCredit = JsonConverters.toDouble(json['initialStoreCredit']);
        currentStoreCredit = JsonConverters.toDouble(json['currentStoreCredit']);
        phoneFullVerificationNumber = json['phoneFullVerificationNumber'];
        holderId = json['holderId'];
        holderName = json['holderName'];
        holderEmail = json['holderEmail'];
        cardPriceCurrency = json['cardPriceCurrency'];
        pricePaidCurrency = json['pricePaidCurrency'];
        deviceId = json['deviceId'];
        paymentMethodId = json['paymentMethodId'];
        paymentReference = json['paymentReference'];
        phoneVerificationNumber = json['phoneVerificationNumber'];
        paymentPhoneNumber = json['paymentPhoneNumber'];
        paymentId = json['paymentId'];
        paymentStatus = json['paymentStatus'];
        paymentTokenId = json['paymentTokenId'];
        maxTicketsPerEvent = json['maxTicketsPerEvent'];
        multiplePaymentsId = json['multiplePaymentsId'];
        imageUrl = json['imageUrl'];
        backgroundImageUrl = json['backgroundImageUrl'];
        orderReference = json['orderReference'];
        upgradedFromOwnerCardId = json['upgradedFromOwnerCardId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'ownerId': ownerId,
        'ownerCardTypeId': ownerCardTypeId,
        'phoneVerificationId': phoneVerificationId,
        'initialMaxTickets': initialMaxTickets,
        'currentAvailableTickets': currentAvailableTickets,
        'timeStampCreatedUTC': JsonConverters.toJson(timeStampCreatedUTC,'DateTime',context!),
        'timeStampLastChangedUTC': JsonConverters.toJson(timeStampLastChangedUTC,'DateTime',context!),
        'timeStampBoughtUTC': JsonConverters.toJson(timeStampBoughtUTC,'DateTime',context!),
        'timeStampOrderedUTC': JsonConverters.toJson(timeStampOrderedUTC,'DateTime',context!),
        'cardValidFromUTC': JsonConverters.toJson(cardValidFromUTC,'DateTime',context!),
        'cardValidToUTC': JsonConverters.toJson(cardValidToUTC,'DateTime',context!),
        'hasStoreCredit': hasStoreCredit,
        'cardPrice': cardPrice,
        'pricePaid': pricePaid,
        'initialStoreCredit': initialStoreCredit,
        'currentStoreCredit': currentStoreCredit,
        'phoneFullVerificationNumber': phoneFullVerificationNumber,
        'holderId': holderId,
        'holderName': holderName,
        'holderEmail': holderEmail,
        'cardPriceCurrency': cardPriceCurrency,
        'pricePaidCurrency': pricePaidCurrency,
        'deviceId': deviceId,
        'paymentMethodId': paymentMethodId,
        'paymentReference': paymentReference,
        'phoneVerificationNumber': phoneVerificationNumber,
        'paymentPhoneNumber': paymentPhoneNumber,
        'paymentId': paymentId,
        'paymentStatus': paymentStatus,
        'paymentTokenId': paymentTokenId,
        'maxTicketsPerEvent': maxTicketsPerEvent,
        'multiplePaymentsId': multiplePaymentsId,
        'imageUrl': imageUrl,
        'backgroundImageUrl': backgroundImageUrl,
        'orderReference': orderReference,
        'upgradedFromOwnerCardId': upgradedFromOwnerCardId
    };

    getTypeName() => "OwnerCards";
    TypeContext? context = _ctx;
}

class OwnerCardsOrderResult extends GeneralOrderResponse implements IConvertible
{
    List<OwnerCards>? cards;
    String? orderReference;
    bool? isSubscription;
    double? monthlyPrice;
    double? transactionFee;
    int? months;
    String? paymentTokenId;
    bool? subscriptionTokenMissing;
    int? priceTotal;
    int? discountAmount;
    int? giftCardAmount;
    int? donationAmount;
    int? chargedAmount;
    String? reason;

    OwnerCardsOrderResult({this.cards,this.orderReference,this.isSubscription,this.monthlyPrice,this.transactionFee,this.months,this.paymentTokenId,this.subscriptionTokenMissing,this.priceTotal,this.discountAmount,this.giftCardAmount,this.donationAmount,this.chargedAmount,this.reason});
    OwnerCardsOrderResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        cards = JsonConverters.fromJson(json['cards'],'List<OwnerCards>',context!);
        orderReference = json['orderReference'];
        isSubscription = json['isSubscription'];
        monthlyPrice = JsonConverters.toDouble(json['monthlyPrice']);
        transactionFee = JsonConverters.toDouble(json['transactionFee']);
        months = json['months'];
        paymentTokenId = json['paymentTokenId'];
        subscriptionTokenMissing = json['subscriptionTokenMissing'];
        priceTotal = json['priceTotal'];
        discountAmount = json['discountAmount'];
        giftCardAmount = json['giftCardAmount'];
        donationAmount = json['donationAmount'];
        chargedAmount = json['chargedAmount'];
        reason = json['reason'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'cards': JsonConverters.toJson(cards,'List<OwnerCards>',context!),
        'orderReference': orderReference,
        'isSubscription': isSubscription,
        'monthlyPrice': monthlyPrice,
        'transactionFee': transactionFee,
        'months': months,
        'paymentTokenId': paymentTokenId,
        'subscriptionTokenMissing': subscriptionTokenMissing,
        'priceTotal': priceTotal,
        'discountAmount': discountAmount,
        'giftCardAmount': giftCardAmount,
        'donationAmount': donationAmount,
        'chargedAmount': chargedAmount,
        'reason': reason
    });

    getTypeName() => "OwnerCardsOrderResult";
    TypeContext? context = _ctx;
}

class OwnerCardsUpgradeResult extends OwnerCardsOrderResult implements IConvertible
{
    int? sourceOwnerCardId;
    int? sourceOwnerCardTypeId;
    String? sourceTypeName;
    int? newOwnerCardId;
    int? targetOwnerCardTypeId;
    String? targetTypeName;
    int? relinkedTickets;
    String? paymentReference;
    bool? refundPending;

    OwnerCardsUpgradeResult({this.sourceOwnerCardId,this.sourceOwnerCardTypeId,this.sourceTypeName,this.newOwnerCardId,this.targetOwnerCardTypeId,this.targetTypeName,this.relinkedTickets,this.paymentReference,this.refundPending});
    OwnerCardsUpgradeResult.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        sourceOwnerCardId = json['sourceOwnerCardId'];
        sourceOwnerCardTypeId = json['sourceOwnerCardTypeId'];
        sourceTypeName = json['sourceTypeName'];
        newOwnerCardId = json['newOwnerCardId'];
        targetOwnerCardTypeId = json['targetOwnerCardTypeId'];
        targetTypeName = json['targetTypeName'];
        relinkedTickets = json['relinkedTickets'];
        paymentReference = json['paymentReference'];
        refundPending = json['refundPending'];
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'sourceOwnerCardId': sourceOwnerCardId,
        'sourceOwnerCardTypeId': sourceOwnerCardTypeId,
        'sourceTypeName': sourceTypeName,
        'newOwnerCardId': newOwnerCardId,
        'targetOwnerCardTypeId': targetOwnerCardTypeId,
        'targetTypeName': targetTypeName,
        'relinkedTickets': relinkedTickets,
        'paymentReference': paymentReference,
        'refundPending': refundPending
    });

    getTypeName() => "OwnerCardsUpgradeResult";
    TypeContext? context = _ctx;
}

class Borgun3DFinalPaymentMethodInfo implements IConvertible
{
    String? paymentType;
    String? token;
    String? virtualNumber;
    String? expYear;
    String? expMonth;
    String? panLastFour;

    Borgun3DFinalPaymentMethodInfo({this.paymentType,this.token,this.virtualNumber,this.expYear,this.expMonth,this.panLastFour});
    Borgun3DFinalPaymentMethodInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        paymentType = json['paymentType'];
        token = json['token'];
        virtualNumber = json['virtualNumber'];
        expYear = json['expYear'];
        expMonth = json['expMonth'];
        panLastFour = json['panLastFour'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'paymentType': paymentType,
        'token': token,
        'virtualNumber': virtualNumber,
        'expYear': expYear,
        'expMonth': expMonth,
        'panLastFour': panLastFour
    };

    getTypeName() => "Borgun3DFinalPaymentMethodInfo";
    TypeContext? context = _ctx;
}

class Borgun3DFinal3DSecureInfo implements IConvertible
{
    String? dataType;
    String? mpiToken;

    Borgun3DFinal3DSecureInfo({this.dataType,this.mpiToken});
    Borgun3DFinal3DSecureInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        dataType = json['dataType'];
        mpiToken = json['mpiToken'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'dataType': dataType,
        'mpiToken': mpiToken
    };

    getTypeName() => "Borgun3DFinal3DSecureInfo";
    TypeContext? context = _ctx;
}

class Borgun3DFinalRequest implements IConvertible
{
    String? transactionType;
    int? amount;
    String? currency;
    DateTime? transactionDate;
    String? orderId;
    Borgun3DFinalPaymentMethodInfo? paymentMethod;
    Borgun3DFinal3DSecureInfo? threeDSecure;

    Borgun3DFinalRequest({this.transactionType,this.amount,this.currency,this.transactionDate,this.orderId,this.paymentMethod,this.threeDSecure});
    Borgun3DFinalRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        transactionType = json['transactionType'];
        amount = json['amount'];
        currency = json['currency'];
        transactionDate = JsonConverters.fromJson(json['transactionDate'],'DateTime',context!);
        orderId = json['orderId'];
        paymentMethod = JsonConverters.fromJson(json['paymentMethod'],'Borgun3DFinalPaymentMethodInfo',context!);
        threeDSecure = JsonConverters.fromJson(json['threeDSecure'],'Borgun3DFinal3DSecureInfo',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'transactionType': transactionType,
        'amount': amount,
        'currency': currency,
        'transactionDate': JsonConverters.toJson(transactionDate,'DateTime',context!),
        'orderId': orderId,
        'paymentMethod': JsonConverters.toJson(paymentMethod,'Borgun3DFinalPaymentMethodInfo',context!),
        'threeDSecure': JsonConverters.toJson(threeDSecure,'Borgun3DFinal3DSecureInfo',context!)
    };

    getTypeName() => "Borgun3DFinalRequest";
    TypeContext? context = _ctx;
}

class OrderTender implements IConvertible
{
    String? kind;
    String? code;
    int? amountMinor;
    String? idempotencyKey;
    int? holdId;
    int? appliedMinor;

    OrderTender({this.kind,this.code,this.amountMinor,this.idempotencyKey,this.holdId,this.appliedMinor});
    OrderTender.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        kind = json['kind'];
        code = json['code'];
        amountMinor = json['amountMinor'];
        idempotencyKey = json['idempotencyKey'];
        holdId = json['holdId'];
        appliedMinor = json['appliedMinor'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'kind': kind,
        'code': code,
        'amountMinor': amountMinor,
        'idempotencyKey': idempotencyKey,
        'holdId': holdId,
        'appliedMinor': appliedMinor
    };

    getTypeName() => "OrderTender";
    TypeContext? context = _ctx;
}

class OwnerCardsUpgradeRequest implements IConvertible
{
    String? buyerPhone;
    int? sourceOwnerCardId;
    int? targetOwnerCardTypeId;
    String? idempotencyKey;
    String? paymentMethodId;
    Borgun3DFinalRequest? borgun3DFinalInfo;
    List<OrderTender>? tenders;
    String? holderName;
    String? holderEmail;
    String? deviceId;
    bool? returnCards;

    OwnerCardsUpgradeRequest({this.buyerPhone,this.sourceOwnerCardId,this.targetOwnerCardTypeId,this.idempotencyKey,this.paymentMethodId,this.borgun3DFinalInfo,this.tenders,this.holderName,this.holderEmail,this.deviceId,this.returnCards});
    OwnerCardsUpgradeRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        buyerPhone = json['buyerPhone'];
        sourceOwnerCardId = json['sourceOwnerCardId'];
        targetOwnerCardTypeId = json['targetOwnerCardTypeId'];
        idempotencyKey = json['idempotencyKey'];
        paymentMethodId = json['paymentMethodId'];
        borgun3DFinalInfo = JsonConverters.fromJson(json['borgun3DFinalInfo'],'Borgun3DFinalRequest',context!);
        tenders = JsonConverters.fromJson(json['tenders'],'List<OrderTender>',context!);
        holderName = json['holderName'];
        holderEmail = json['holderEmail'];
        deviceId = json['deviceId'];
        returnCards = json['returnCards'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'buyerPhone': buyerPhone,
        'sourceOwnerCardId': sourceOwnerCardId,
        'targetOwnerCardTypeId': targetOwnerCardTypeId,
        'idempotencyKey': idempotencyKey,
        'paymentMethodId': paymentMethodId,
        'borgun3DFinalInfo': JsonConverters.toJson(borgun3DFinalInfo,'Borgun3DFinalRequest',context!),
        'tenders': JsonConverters.toJson(tenders,'List<OrderTender>',context!),
        'holderName': holderName,
        'holderEmail': holderEmail,
        'deviceId': deviceId,
        'returnCards': returnCards
    };

    getTypeName() => "OwnerCardsUpgradeRequest";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'stubbur_app.azurewebsites.net', types: <String, TypeInfo> {
    'GeneralOrderResponse': TypeInfo(TypeOf.Class, create:() => GeneralOrderResponse()),
    'OwnerCards': TypeInfo(TypeOf.Class, create:() => OwnerCards()),
    'OwnerCardsOrderResult': TypeInfo(TypeOf.Class, create:() => OwnerCardsOrderResult()),
    'List<OwnerCards>': TypeInfo(TypeOf.Class, create:() => <OwnerCards>[]),
    'OwnerCardsUpgradeResult': TypeInfo(TypeOf.Class, create:() => OwnerCardsUpgradeResult()),
    'Borgun3DFinalPaymentMethodInfo': TypeInfo(TypeOf.Class, create:() => Borgun3DFinalPaymentMethodInfo()),
    'Borgun3DFinal3DSecureInfo': TypeInfo(TypeOf.Class, create:() => Borgun3DFinal3DSecureInfo()),
    'Borgun3DFinalRequest': TypeInfo(TypeOf.Class, create:() => Borgun3DFinalRequest()),
    'OrderTender': TypeInfo(TypeOf.Class, create:() => OrderTender()),
    'OwnerCardsUpgradeRequest': TypeInfo(TypeOf.Class, create:() => OwnerCardsUpgradeRequest()),
    'List<OrderTender>': TypeInfo(TypeOf.Class, create:() => <OrderTender>[]),
});

Dart OwnerCardsUpgradeRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

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: application/xml
Content-Type: application/xml
Content-Length: length

<OwnerCardsUpgradeRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <Borgun3DFinalInfo xmlns:d2p1="http://schemas.datacontract.org/2004/07/BorgunRPGData">
    <d2p1:Amount>0</d2p1:Amount>
    <d2p1:Currency>String</d2p1:Currency>
    <d2p1:OrderId>String</d2p1:OrderId>
    <d2p1:PaymentMethod>
      <d2p1:ExpMonth>String</d2p1:ExpMonth>
      <d2p1:ExpYear>String</d2p1:ExpYear>
      <d2p1:PanLastFour>String</d2p1:PanLastFour>
      <d2p1:PaymentType>String</d2p1:PaymentType>
      <d2p1:Token>String</d2p1:Token>
      <d2p1:VirtualNumber>String</d2p1:VirtualNumber>
    </d2p1:PaymentMethod>
    <d2p1:ThreeDSecure>
      <d2p1:DataType>String</d2p1:DataType>
      <d2p1:MpiToken>String</d2p1:MpiToken>
    </d2p1:ThreeDSecure>
    <d2p1:TransactionDate>0001-01-01T00:00:00</d2p1:TransactionDate>
    <d2p1:TransactionType>String</d2p1:TransactionType>
  </Borgun3DFinalInfo>
  <BuyerPhone>String</BuyerPhone>
  <DeviceId>String</DeviceId>
  <HolderEmail>String</HolderEmail>
  <HolderName>String</HolderName>
  <IdempotencyKey>String</IdempotencyKey>
  <PaymentMethodId>String</PaymentMethodId>
  <ReturnCards>false</ReturnCards>
  <SourceOwnerCardId>0</SourceOwnerCardId>
  <TargetOwnerCardTypeId>0</TargetOwnerCardTypeId>
  <Tenders>
    <OrderTender>
      <AmountMinor>0</AmountMinor>
      <AppliedMinor>0</AppliedMinor>
      <Code>String</Code>
      <HoldId>0</HoldId>
      <IdempotencyKey>String</IdempotencyKey>
      <Kind>String</Kind>
    </OrderTender>
  </Tenders>
</OwnerCardsUpgradeRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<OwnerCardsUpgradeResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel">
  <Message>String</Message>
  <OrderTokenId>String</OrderTokenId>
  <PaymentIsPending>false</PaymentIsPending>
  <StatusCode>0</StatusCode>
  <Success>false</Success>
  <Cards xmlns:d2p1="http://schemas.datacontract.org/2004/07/TicketUserServices.ServiceModel.Types">
    <d2p1:OwnerCards>
      <d2p1:BackgroundImageUrl>String</d2p1:BackgroundImageUrl>
      <d2p1:CardPrice>0</d2p1:CardPrice>
      <d2p1:CardPriceCurrency>String</d2p1:CardPriceCurrency>
      <d2p1:CardValidFromUTC>0001-01-01T00:00:00</d2p1:CardValidFromUTC>
      <d2p1:CardValidToUTC>0001-01-01T00:00:00</d2p1:CardValidToUTC>
      <d2p1:CurrentAvailableTickets>0</d2p1:CurrentAvailableTickets>
      <d2p1:CurrentStoreCredit>0</d2p1:CurrentStoreCredit>
      <d2p1:DeviceId>String</d2p1:DeviceId>
      <d2p1:HasStoreCredit>false</d2p1:HasStoreCredit>
      <d2p1:HolderEmail>String</d2p1:HolderEmail>
      <d2p1:HolderId>String</d2p1:HolderId>
      <d2p1:HolderName>String</d2p1:HolderName>
      <d2p1:ID>0</d2p1:ID>
      <d2p1:ImageUrl>String</d2p1:ImageUrl>
      <d2p1:InitialMaxTickets>0</d2p1:InitialMaxTickets>
      <d2p1:InitialStoreCredit>0</d2p1:InitialStoreCredit>
      <d2p1:MaxTicketsPerEvent>0</d2p1:MaxTicketsPerEvent>
      <d2p1:MultiplePaymentsId>String</d2p1:MultiplePaymentsId>
      <d2p1:OrderReference>String</d2p1:OrderReference>
      <d2p1:OwnerCardTypeId>0</d2p1:OwnerCardTypeId>
      <d2p1:OwnerId>0</d2p1:OwnerId>
      <d2p1:PaymentId>String</d2p1:PaymentId>
      <d2p1:PaymentMethodId>String</d2p1:PaymentMethodId>
      <d2p1:PaymentPhoneNumber>String</d2p1:PaymentPhoneNumber>
      <d2p1:PaymentReference>String</d2p1:PaymentReference>
      <d2p1:PaymentStatus>String</d2p1:PaymentStatus>
      <d2p1:PaymentTokenId>String</d2p1:PaymentTokenId>
      <d2p1:PhoneFullVerificationNumber>String</d2p1:PhoneFullVerificationNumber>
      <d2p1:PhoneVerificationId>0</d2p1:PhoneVerificationId>
      <d2p1:PhoneVerificationNumber>String</d2p1:PhoneVerificationNumber>
      <d2p1:PricePaid>0</d2p1:PricePaid>
      <d2p1:PricePaidCurrency>String</d2p1:PricePaidCurrency>
      <d2p1:TimeStampBoughtUTC>0001-01-01T00:00:00</d2p1:TimeStampBoughtUTC>
      <d2p1:TimeStampCreatedUTC>0001-01-01T00:00:00</d2p1:TimeStampCreatedUTC>
      <d2p1:TimeStampLastChangedUTC>0001-01-01T00:00:00</d2p1:TimeStampLastChangedUTC>
      <d2p1:TimeStampOrderedUTC>0001-01-01T00:00:00</d2p1:TimeStampOrderedUTC>
      <d2p1:UpgradedFromOwnerCardId>0</d2p1:UpgradedFromOwnerCardId>
    </d2p1:OwnerCards>
  </Cards>
  <ChargedAmount>0</ChargedAmount>
  <DiscountAmount>0</DiscountAmount>
  <DonationAmount>0</DonationAmount>
  <GiftCardAmount>0</GiftCardAmount>
  <IsSubscription>false</IsSubscription>
  <MonthlyPrice>0</MonthlyPrice>
  <Months>0</Months>
  <OrderReference>String</OrderReference>
  <PaymentTokenId>String</PaymentTokenId>
  <PriceTotal>0</PriceTotal>
  <Reason>String</Reason>
  <SubscriptionTokenMissing>false</SubscriptionTokenMissing>
  <TransactionFee>0</TransactionFee>
  <NewOwnerCardId>0</NewOwnerCardId>
  <PaymentReference>String</PaymentReference>
  <RefundPending>false</RefundPending>
  <RelinkedTickets>0</RelinkedTickets>
  <SourceOwnerCardId>0</SourceOwnerCardId>
  <SourceOwnerCardTypeId>0</SourceOwnerCardTypeId>
  <SourceTypeName>String</SourceTypeName>
  <TargetOwnerCardTypeId>0</TargetOwnerCardTypeId>
  <TargetTypeName>String</TargetTypeName>
</OwnerCardsUpgradeResult>