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
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using TicketUserServices.ServiceModel;
using BorgunRPGData;

namespace BorgunRPGData
{
    public partial class Borgun3DFinal3DSecureInfo
    {
        public virtual string DataType { get; set; }
        public virtual string MpiToken { get; set; }
    }

    public partial class Borgun3DFinalPaymentMethodInfo
    {
        public virtual string PaymentType { get; set; }
        public virtual string Token { get; set; }
        public virtual string VirtualNumber { get; set; }
        public virtual string ExpYear { get; set; }
        public virtual string ExpMonth { get; set; }
        public virtual string PanLastFour { get; set; }
    }

    public partial class Borgun3DFinalRequest
    {
        public virtual string TransactionType { get; set; }
        public virtual int Amount { get; set; }
        public virtual string Currency { get; set; }
        public virtual DateTime? TransactionDate { get; set; }
        public virtual string OrderId { get; set; }
        public virtual Borgun3DFinalPaymentMethodInfo PaymentMethod { get; set; }
        public virtual Borgun3DFinal3DSecureInfo ThreeDSecure { get; set; }
    }

    public partial class BorgunApplePayFinalInfo
    {
        public virtual string OrderId { get; set; }
        public virtual BorgunApplePayThreeDSecureInfo ThreeDSecure { get; set; }
    }

    public partial class BorgunApplePayThreeDSecureInfo
    {
        public virtual string DataType { get; set; }
        public virtual string SecurityLevelInd { get; set; }
        public virtual string CAVV { get; set; }
        public virtual string UCAF { get; set; }
    }

}

namespace TicketUserServices.ServiceModel
{
    public partial class LocalizedMessage
    {
        public virtual string Is { get; set; }
        public virtual string En { get; set; }
    }

    public partial class OrderTender
    {
        public virtual string Kind { get; set; }
        public virtual string Code { get; set; }
        public virtual int? AmountMinor { get; set; }
        public virtual string IdempotencyKey { get; set; }
        public virtual int? HoldId { get; set; }
        public virtual int? AppliedMinor { get; set; }
    }

    public partial class PaymentMethodCreditCardInfo
    {
        public virtual string PaymentType { get; set; }
        public virtual string Token { get; set; }
        public virtual string PAN { get; set; }
        public virtual string ExpYear { get; set; }
        public virtual string ExpMonth { get; set; }
        public virtual string CVC { get; set; }
    }

    public partial class PaymentRequestCreditCard
    {
        public virtual PaymentMethodCreditCardInfo PaymentMethod { get; set; }
        public virtual decimal Amount { get; set; }
        public virtual string Currency { get; set; }
        public virtual string OrderId { get; set; }
        public virtual DateTime TransActionDate { get; set; }
        public virtual bool SaveCardToToken { get; set; }
    }

    public partial class WebshopOrderLineSummary
    {
        public virtual int ID { get; set; }
        public virtual int ProductId { get; set; }
        public virtual int VariantId { get; set; }
        public virtual string ProductName { get; set; }
        public virtual string Size { get; set; }
        public virtual string Color { get; set; }
        public virtual int UnitPriceMinor { get; set; }
        public virtual int Quantity { get; set; }
        public virtual int LineTotalMinor { get; set; }
        public virtual string Status { get; set; }
        public virtual int? PayoutInfoId { get; set; }
        public virtual string PayoutTag { get; set; }
    }

    public partial class WebshopOrderPurchaseRequest
    {
        public WebshopOrderPurchaseRequest()
        {
            Lines = new List<WebshopPurchaseLine>{};
            Tenders = new List<OrderTender>{};
        }

        public virtual int OwnerId { get; set; }
        public virtual string ExternalId { get; set; }
        public virtual List<WebshopPurchaseLine> Lines { get; set; }
        public virtual string BuyerName { get; set; }
        public virtual string BuyerEmail { get; set; }
        public virtual string BuyerPhone { get; set; }
        public virtual string DeliveryType { get; set; }
        public virtual string DroppLocationId { get; set; }
        public virtual string Address { get; set; }
        public virtual string City { get; set; }
        public virtual string ZipCode { get; set; }
        public virtual string Country { get; set; }
        public virtual string IdempotencyKey { get; set; }
        public virtual string DiscountCode { get; set; }
        public virtual List<OrderTender> Tenders { get; set; }
        public virtual string PaymentMethodId { get; set; }
        public virtual string PaymentId { get; set; }
        public virtual PaymentRequestCreditCard CardInfo { get; set; }
        public virtual Borgun3DFinalRequest Borgun3DFinalInfo { get; set; }
        public virtual BorgunApplePayFinalInfo ApplePayInfo { get; set; }
    }

    public partial class WebshopOrderResult
    {
        public virtual bool Success { get; set; }
        public virtual string Reason { get; set; }
        public virtual LocalizedMessage Message { get; set; }
        public virtual string OrderReference { get; set; }
        public virtual WebshopOrderSummary Order { get; set; }
        public virtual int StatusCode { get; set; }
    }

    public partial class WebshopOrderSummary
    {
        public WebshopOrderSummary()
        {
            Lines = new List<WebshopOrderLineSummary>{};
        }

        public virtual int ID { get; set; }
        public virtual string OrderReference { get; set; }
        public virtual int OwnerId { get; set; }
        public virtual string Status { get; set; }
        public virtual int TotalMinor { get; set; }
        public virtual int DeliveryFeeMinor { get; set; }
        public virtual int TotalDiscountMinor { get; set; }
        public virtual string Currency { get; set; }
        public virtual string BuyerName { get; set; }
        public virtual string BuyerEmail { get; set; }
        public virtual string BuyerPhone { get; set; }
        public virtual string Address { get; set; }
        public virtual string City { get; set; }
        public virtual string ZipCode { get; set; }
        public virtual string Country { get; set; }
        public virtual string DeliveryType { get; set; }
        public virtual string DroppOrderId { get; set; }
        public virtual string DroppLocationId { get; set; }
        public virtual bool NeedsDeliveryAttention { get; set; }
        public virtual string PaymentMethodId { get; set; }
        public virtual string PaymentId { get; set; }
        public virtual string PaymentReference { get; set; }
        public virtual string DiscountCode { get; set; }
        public virtual int GiftPaidMinor { get; set; }
        public virtual DateTime CreatedAt { get; set; }
        public virtual DateTime UpdatedAt { get; set; }
        public virtual List<WebshopOrderLineSummary> Lines { get; set; }
    }

    public partial class WebshopPurchaseLine
    {
        public virtual int VariantId { get; set; }
        public virtual int Quantity { get; set; }
    }

}

C# 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
}