| Requires the role: | Admin | Requires the permission: | ReadData |
| POST | /Support/Customer360 |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
open class SupportCustomer360Request
{
var phone:String? = null
var email:String? = null
}
open class SupportCustomer360Result
{
var phone:String? = null
var email:String? = null
var tickets:ArrayList<SupportTicketRow> = ArrayList<SupportTicketRow>()
var ownerCards:ArrayList<SupportOwnerCardRow> = ArrayList<SupportOwnerCardRow>()
var webshopOrders:ArrayList<SupportWebshopOrderRow> = ArrayList<SupportWebshopOrderRow>()
var giftCards:ArrayList<SupportGiftCardRow> = ArrayList<SupportGiftCardRow>()
var sharedTicketLinks:ArrayList<SupportSharedLinkRow> = ArrayList<SupportSharedLinkRow>()
var totals:SupportCustomerTotals? = null
var warnings:ArrayList<String> = ArrayList<String>()
var statusCode:Int? = null
var message:String? = null
}
open class SupportTicketRow
{
var ticketId:Int? = null
var ticketTokenId:String? = null
var eventId:Int? = null
var event:String? = null
var timeOfEventUTC:Date? = null
var eventOwnerId:Int? = null
var eventOwnerName:String? = null
var ticketStatus:String? = null
var ticketName:String? = null
var paymentMethodId:String? = null
var paymentId:String? = null
var paymentReference:String? = null
var timestampBought:Date? = null
var timestampActivated:Date? = null
var holderName:String? = null
var phoneVerificationNumber:String? = null
var paymentPhoneNumber:String? = null
var seatDisplayString:String? = null
var sectionName:String? = null
var rowName:String? = null
var seatName:String? = null
var totalPrice:BigDecimal? = null
var count:Int? = null
var ticketTransferredFrom:Int? = null
var originalPhoneVerificationNumber:String? = null
var deviceId:String? = null
var neverOpened:Boolean? = null
}
open class SupportOwnerCardRow
{
var id:Int? = null
var ownerId:Int? = null
var ownerName:String? = null
var ownerCardTypeId:Int? = null
var ownerCardTypeName:String? = null
var holderName:String? = null
var holderEmail:String? = null
var phoneVerificationNumber:String? = null
var paymentPhoneNumber:String? = null
var paymentStatus:String? = null
var paymentMethodId:String? = null
var paymentId:String? = null
var paymentReference:String? = null
var timeStampBoughtUTC:Date? = null
var cardValidFromUTC:Date? = null
var cardValidToUTC:Date? = null
var initialMaxTickets:Int? = null
var currentAvailableTickets:Int? = null
var cardPrice:BigDecimal? = null
var pricePaid:BigDecimal? = null
var currentStoreCredit:BigDecimal? = null
}
open class SupportWebshopOrderRow
{
var id:Int? = null
var orderReference:String? = null
var ownerId:Int? = null
var ownerName:String? = null
var status:String? = null
var totalMinor:Int? = null
var deliveryFeeMinor:Int? = null
var totalDiscountMinor:Int? = null
var giftPaidMinor:Int? = null
var currency:String? = null
var deliveryType:String? = null
var paymentMethodId:String? = null
var paymentId:String? = null
var paymentReference:String? = null
var createdAt:Date? = null
var updatedAt:Date? = null
var buyerName:String? = null
var buyerEmail:String? = null
var buyerPhone:String? = null
var lines:ArrayList<WebshopOrderLine> = ArrayList<WebshopOrderLine>()
}
open class WebshopOrderLine
{
var id:Int? = null
var orderId:Int? = null
var productId:Int? = null
var variantId:Int? = null
@StringLength(200)
var productName:String? = null
@StringLength(50)
var size:String? = null
@StringLength(50)
var color:String? = null
var unitPriceMinor:Int? = null
var quantity:Int? = null
var lineTotalMinor:Int? = null
@StringLength(20)
var status:String? = null
var legacyDetailId:Int? = null
var createdAt:Date? = null
}
open class SupportGiftCardRow
{
var id:Int? = null
var codeLast4:String? = null
var codeMasked:String? = null
var status:String? = null
var scope:String? = null
var scopeOwnerId:Int? = null
var scopeOwnerName:String? = null
var purchaseOwnerId:Int? = null
var purchaseOwnerName:String? = null
var currency:String? = null
var initialValueMinor:Int? = null
var currentBalanceMinor:Int? = null
var createdAt:Date? = null
var activatedAt:Date? = null
var expiresAt:Date? = null
var purchasePaymentReference:String? = null
var paymentId:String? = null
var paymentMethodId:String? = null
var buyerName:String? = null
var buyerEmail:String? = null
var buyerPhone:String? = null
}
open class SupportSharedLinkRow
{
var id:Int? = null
var eventId:Int? = null
var eventName:String? = null
var eventOwnerId:Int? = null
var eventOwnerName:String? = null
var status:String? = null
var recipientPhone:String? = null
var recipientEmail:String? = null
var ticketCount:Int? = null
var createdAt:Date? = null
var validTo:Date? = null
var soldAt:Date? = null
var soldTicketOrderId:Int? = null
}
open class SupportCustomerTotals
{
var ticketSpend:BigDecimal? = null
var ticketSpendLive:BigDecimal? = null
var webshopSpendMinor:Long? = null
var giftCardSpendMinor:Long? = null
}
Kotlin SupportCustomer360Request DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /Support/Customer360 HTTP/1.1
Host: stubbur-app.azurewebsites.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
phone: String,
email: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
phone: String,
email: String,
tickets:
[
{
ticketId: 0,
ticketTokenId: String,
eventId: 0,
event: String,
timeOfEventUTC: 0001-01-01,
eventOwnerId: 0,
eventOwnerName: String,
ticketStatus: String,
ticketName: String,
paymentMethodId: String,
paymentId: String,
paymentReference: String,
timestampBought: 0001-01-01,
timestampActivated: 0001-01-01,
holderName: String,
phoneVerificationNumber: String,
paymentPhoneNumber: String,
seatDisplayString: String,
sectionName: String,
rowName: String,
seatName: String,
totalPrice: 0,
count: 0,
ticketTransferredFrom: 0,
originalPhoneVerificationNumber: String,
deviceId: String,
neverOpened: False
}
],
ownerCards:
[
{
id: 0,
ownerId: 0,
ownerName: String,
ownerCardTypeId: 0,
ownerCardTypeName: String,
holderName: String,
holderEmail: String,
phoneVerificationNumber: String,
paymentPhoneNumber: String,
paymentStatus: String,
paymentMethodId: String,
paymentId: String,
paymentReference: String,
timeStampBoughtUTC: 0001-01-01,
cardValidFromUTC: 0001-01-01,
cardValidToUTC: 0001-01-01,
initialMaxTickets: 0,
currentAvailableTickets: 0,
cardPrice: 0,
pricePaid: 0,
currentStoreCredit: 0
}
],
webshopOrders:
[
{
id: 0,
orderReference: String,
ownerId: 0,
ownerName: String,
status: String,
totalMinor: 0,
deliveryFeeMinor: 0,
totalDiscountMinor: 0,
giftPaidMinor: 0,
currency: String,
deliveryType: String,
paymentMethodId: String,
paymentId: String,
paymentReference: String,
createdAt: 0001-01-01,
updatedAt: 0001-01-01,
buyerName: String,
buyerEmail: String,
buyerPhone: String,
lines:
[
{
id: 0,
orderId: 0,
productId: 0,
variantId: 0,
productName: String,
size: String,
color: String,
unitPriceMinor: 0,
quantity: 0,
lineTotalMinor: 0,
status: String,
legacyDetailId: 0,
createdAt: 0001-01-01
}
]
}
],
giftCards:
[
{
id: 0,
codeLast4: String,
codeMasked: String,
status: String,
scope: String,
scopeOwnerId: 0,
scopeOwnerName: String,
purchaseOwnerId: 0,
purchaseOwnerName: String,
currency: String,
initialValueMinor: 0,
currentBalanceMinor: 0,
createdAt: 0001-01-01,
activatedAt: 0001-01-01,
expiresAt: 0001-01-01,
purchasePaymentReference: String,
paymentId: String,
paymentMethodId: String,
buyerName: String,
buyerEmail: String,
buyerPhone: String
}
],
sharedTicketLinks:
[
{
id: 0,
eventId: 0,
eventName: String,
eventOwnerId: 0,
eventOwnerName: String,
status: String,
recipientPhone: String,
recipientEmail: String,
ticketCount: 0,
createdAt: 0001-01-01,
validTo: 0001-01-01,
soldAt: 0001-01-01,
soldTicketOrderId: 0
}
],
totals:
{
ticketSpend: 0,
ticketSpendLive: 0,
webshopSpendMinor: 0,
giftCardSpendMinor: 0
},
warnings:
[
String
],
statusCode: 0,
message: String
}