TicketUserServices

<back to all web services

WebshopOrderPurchaseRequest

Requires Authentication
Requires any of the roles:Admin, TeamAdmin, MobileAppRequired permission:Tickets.Add
The following routes are available for this service:
POST/Webshop/Order/Purchase
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*


open class WebshopOrderPurchaseRequest
{
    var ownerId:Int? = null
    var externalId:String? = null
    var lines:ArrayList<WebshopPurchaseLine> = ArrayList<WebshopPurchaseLine>()
    var buyerName:String? = null
    var buyerEmail:String? = null
    var buyerPhone:String? = null
    var deliveryType:String? = null
    var droppLocationId:String? = null
    var address:String? = null
    var city:String? = null
    var zipCode:String? = null
    var country:String? = null
    var idempotencyKey:String? = null
    var discountCode:String? = null
    var tenders:ArrayList<OrderTender> = ArrayList<OrderTender>()
    var paymentMethodId:String? = null
    var paymentId:String? = null
    var cardInfo:PaymentRequestCreditCard? = null
    var borgun3DFinalInfo:Borgun3DFinalRequest? = null
    var applePayInfo:BorgunApplePayFinalInfo? = null
}

open class WebshopPurchaseLine
{
    var variantId:Int? = null
    var quantity:Int? = 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 PaymentRequestCreditCard
{
    var paymentMethod:PaymentMethodCreditCardInfo? = null
    var amount:BigDecimal? = null
    var currency:String? = null
    var orderId:String? = null
    var transActionDate:Date? = null
    var saveCardToToken:Boolean? = null
}

open class PaymentMethodCreditCardInfo
{
    var paymentType:String? = null
    var token:String? = null
    var pan:String? = null
    var expYear:String? = null
    var expMonth:String? = null
    var cvc:String? = 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 BorgunApplePayFinalInfo
{
    var orderId:String? = null
    var threeDSecure:BorgunApplePayThreeDSecureInfo? = null
}

open class BorgunApplePayThreeDSecureInfo
{
    var dataType:String? = null
    var securityLevelInd:String? = null
    var cavv:String? = null
    var ucaf:String? = null
}

open class WebshopOrderResult
{
    var success:Boolean? = null
    var reason:String? = null
    var message:LocalizedMessage? = null
    var orderReference:String? = null
    var order:WebshopOrderSummary? = null
    var statusCode:Int? = null
}

open class LocalizedMessage
{
    @SerializedName("is") var Is:String? = null
    var en:String? = null
}

open class WebshopOrderSummary
{
    var id:Int? = null
    var orderReference:String? = null
    var ownerId:Int? = null
    var status:String? = null
    var totalMinor:Int? = null
    var deliveryFeeMinor:Int? = null
    var totalDiscountMinor:Int? = null
    var currency:String? = null
    var buyerName:String? = null
    var buyerEmail:String? = null
    var buyerPhone:String? = null
    var address:String? = null
    var city:String? = null
    var zipCode:String? = null
    var country:String? = null
    var deliveryType:String? = null
    var droppOrderId:String? = null
    var droppLocationId:String? = null
    var needsDeliveryAttention:Boolean? = null
    var paymentMethodId:String? = null
    var paymentId:String? = null
    var paymentReference:String? = null
    var discountCode:String? = null
    var giftPaidMinor:Int? = null
    var createdAt:Date? = null
    var updatedAt:Date? = null
    var lines:ArrayList<WebshopOrderLineSummary> = ArrayList<WebshopOrderLineSummary>()
}

open class WebshopOrderLineSummary
{
    var id:Int? = null
    var productId:Int? = null
    var variantId:Int? = null
    var productName:String? = null
    var size:String? = null
    var color:String? = null
    var unitPriceMinor:Int? = null
    var quantity:Int? = null
    var lineTotalMinor:Int? = null
    var status:String? = null
    var payoutInfoId:Int? = null
    var payoutTag:String? = null
}

Kotlin WebshopOrderPurchaseRequest 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 /Webshop/Order/Purchase HTTP/1.1 
Host: stubbur-app.azurewebsites.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	ownerId: 0,
	externalId: String,
	lines: 
	[
		{
			variantId: 0,
			quantity: 0
		}
	],
	buyerName: String,
	buyerEmail: String,
	buyerPhone: String,
	deliveryType: String,
	droppLocationId: String,
	address: String,
	city: String,
	zipCode: String,
	country: String,
	idempotencyKey: String,
	discountCode: String,
	tenders: 
	[
		{
			kind: String,
			code: String,
			amountMinor: 0,
			idempotencyKey: String,
			holdId: 0,
			appliedMinor: 0
		}
	],
	paymentMethodId: String,
	paymentId: String,
	cardInfo: 
	{
		paymentMethod: 
		{
			paymentType: String,
			token: String,
			pan: String,
			expYear: String,
			expMonth: String,
			cvc: String
		},
		amount: 0,
		currency: String,
		orderId: String,
		transActionDate: 0001-01-01,
		saveCardToToken: False
	},
	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
		}
	},
	applePayInfo: 
	{
		orderId: String,
		threeDSecure: 
		{
			dataType: String,
			securityLevelInd: String,
			cavv: String,
			ucaf: String
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	success: False,
	reason: String,
	message: 
	{
		is: String,
		en: String
	},
	orderReference: String,
	order: 
	{
		id: 0,
		orderReference: String,
		ownerId: 0,
		status: String,
		totalMinor: 0,
		deliveryFeeMinor: 0,
		totalDiscountMinor: 0,
		currency: String,
		buyerName: String,
		buyerEmail: String,
		buyerPhone: String,
		address: String,
		city: String,
		zipCode: String,
		country: String,
		deliveryType: String,
		droppOrderId: String,
		droppLocationId: String,
		needsDeliveryAttention: False,
		paymentMethodId: String,
		paymentId: String,
		paymentReference: String,
		discountCode: String,
		giftPaidMinor: 0,
		createdAt: 0001-01-01,
		updatedAt: 0001-01-01,
		lines: 
		[
			{
				id: 0,
				productId: 0,
				variantId: 0,
				productName: String,
				size: String,
				color: String,
				unitPriceMinor: 0,
				quantity: 0,
				lineTotalMinor: 0,
				status: String,
				payoutInfoId: 0,
				payoutTag: String
			}
		]
	},
	statusCode: 0
}