Hmx Accounts

<back to all web services

CreatePurchaseOrder

The following routes are available for this service:
POST/api/purchaseordersCreate a new PurchaseOrder
namespace Hmx.Accounts.Models

open System
open System.Collections
open System.Collections.Generic
open System.Runtime.Serialization
open ServiceStack
open ServiceStack.DataAnnotations

    [<AllowNullLiteral>]
    type PurchaseOrderItem() = 
        member val Id:Int32 = new Int32() with get,set
        [<References(typeof<PurchaseOrder>)>]
        member val PurchaseOrderId:Int32 = new Int32() with get,set

        [<References(typeof<Product>)>]
        member val ProductId:String = null with get,set

        member val ProductName:String = null with get,set
        member val Quantity:Int32 = new Int32() with get,set
        member val Price:Decimal = new Decimal() with get,set
        member val DiscountDescription:String = null with get,set
        member val DiscountSource:String = null with get,set
        member val Discount:Decimal = new Decimal() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type PurchaseOrderDto() = 
        member val Id:Int32 = new Int32() with get,set
        member val UserId:String = null with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val PaymentType:String = null with get,set
        member val Void:Boolean = new Boolean() with get,set
        member val Paid:Boolean = new Boolean() with get,set
        member val TransactionIdentifier:String = null with get,set
        member val CouponCode:String = null with get,set
        member val OrderItems:ResizeArray<PurchaseOrderItem> = new ResizeArray<PurchaseOrderItem>() with get,set
        member val Payer:String = null with get,set
        member val BillingAddressLine1:String = null with get,set
        member val BillingAddressCity:String = null with get,set
        member val BillingAddressState:String = null with get,set
        member val BillingAddressPostalCode:String = null with get,set
        member val BillingAddressCountryCode:String = null with get,set

    [<AllowNullLiteral>]
    type Details() = 
        member val Code:String = null with get,set
        member val Field:String = null with get,set
        member val Issue:String = null with get,set

    [<AllowNullLiteral>]
    type CreatePurchaseOrderResponse() = 
        member val Message:String = null with get,set
        member val Status:HttpStatusCode = new HttpStatusCode() with get,set
        member val PurchaseOrder:PurchaseOrderDto = null with get,set
        member val Details:ResizeArray<Details> = new ResizeArray<Details>() with get,set

    [<AllowNullLiteral>]
    type PurchaseOrderItemDto() = 
        member val Id:Int32 = new Int32() with get,set
        member val PurchaseOrderId:Int32 = new Int32() with get,set
        member val ProductId:String = null with get,set
        member val ProductName:String = null with get,set
        member val Quantity:Int32 = new Int32() with get,set
        member val Price:Decimal = new Decimal() with get,set
        member val DiscountDescription:String = null with get,set
        member val DiscountSource:String = null with get,set
        member val Discount:Decimal = new Decimal() with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set

    [<AllowNullLiteral>]
    type BillingInformationDto() = 
        member val CardNumber:String = null with get,set
        member val CardType:String = null with get,set
        member val ExpireMonth:Int32 = new Int32() with get,set
        member val ExpireYear:Int32 = new Int32() with get,set
        member val Cvv2:String = null with get,set
        member val FirstName:String = null with get,set
        member val LastName:String = null with get,set
        member val City:String = null with get,set
        member val CountryCode:String = null with get,set
        member val Line1:String = null with get,set
        member val PostalCode:String = null with get,set
        member val State:String = null with get,set

    [<AllowNullLiteral>]
    type CreatePurchaseOrder() = 
        member val UserId:String = null with get,set
        member val UserEmail:String = null with get,set
        member val CreatedDate:DateTime = new DateTime() with get,set
        member val Void:Boolean = new Boolean() with get,set
        member val CouponCode:String = null with get,set
        member val OrderItems:ResizeArray<PurchaseOrderItemDto> = new ResizeArray<PurchaseOrderItemDto>() with get,set
        member val PaymentType:String = null with get,set
        member val BillingInformationDto:BillingInformationDto = null with get,set

F# CreatePurchaseOrder 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 /api/purchaseorders HTTP/1.1 
Host: accounts.dev.healthmonix.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	userId: String,
	userEmail: String,
	createdDate: 0001-01-01,
	void: False,
	couponCode: String,
	orderItems: 
	[
		{
			id: 0,
			purchaseOrderId: 0,
			productId: String,
			productName: String,
			quantity: 0,
			price: 0,
			discountDescription: String,
			discountSource: String,
			discount: 0,
			createdDate: 0001-01-01
		}
	],
	paymentType: String,
	billingInformationDto: 
	{
		cardNumber: String,
		cardType: String,
		expireMonth: 0,
		expireYear: 0,
		cvv2: String,
		firstName: String,
		lastName: String,
		city: String,
		countryCode: String,
		line1: String,
		postalCode: String,
		state: String
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	message: String,
	status: Continue,
	purchaseOrder: 
	{
		id: 0,
		userId: String,
		createdDate: 0001-01-01,
		paymentType: String,
		void: False,
		paid: False,
		transactionIdentifier: String,
		couponCode: String,
		orderItems: 
		[
			{
				id: 0,
				purchaseOrderId: 0,
				productId: String,
				productName: String,
				quantity: 0,
				price: 0,
				discountDescription: String,
				discountSource: String,
				discount: 0,
				createdDate: 0001-01-01
			}
		],
		payer: String,
		billingAddressLine1: String,
		billingAddressCity: String,
		billingAddressState: String,
		billingAddressPostalCode: String,
		billingAddressCountryCode: String
	},
	details: 
	[
		{
			code: String,
			field: String,
			issue: String
		}
	]
}