Trendsic Platform Service

<back to all web services

CustomerAppOrderRequest

The following routes are available for this service:
POST/v1/c/app/orders
namespace CRM.AgencyPlatform.API.Internal

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

    [<AllowNullLiteral>]
    type CourierTrackBusiness() = 
        member val Name:String = null with get,set
        member val Phone:String = null with get,set

    [<AllowNullLiteral>]
    type CourierBookLevel() = 
        member val Code:String = null with get,set
        member val Name:String = null with get,set
        member val Ready:String = null with get,set
        member val WithinMin:Int32 = new Int32() with get,set
        member val InBy:String = null with get,set
        member val Surcharge:Decimal = new Decimal() with get,set
        member val Days:ResizeArray<Int32> = new ResizeArray<Int32>() with get,set
        member val DeadlineMin:Nullable<Int32> = new Nullable<Int32>() with get,set

    [<AllowNullLiteral>]
    type HandoffOptions() = 
        member val Hand:Boolean = new Boolean() with get,set
        member val Porch:Boolean = new Boolean() with get,set
        member val Desk:Boolean = new Boolean() with get,set
        member val SigRequired:Boolean = new Boolean() with get,set
        member val IdRequired:Boolean = new Boolean() with get,set
        member val CodeRequired:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CourierBookProfile() = 
        member val Code:String = null with get,set
        member val Name:String = null with get,set
        member val Shape:String = null with get,set
        member val Template:String = null with get,set
        member val UnitOne:String = null with get,set
        member val UnitMany:String = null with get,set
        member val UnitOneEs:String = null with get,set
        member val UnitManyEs:String = null with get,set
        member val FacilityNoun:String = null with get,set
        member val FacilityNounEs:String = null with get,set
        member val FacilityName:String = null with get,set
        member val Levels:ResizeArray<CourierBookLevel> = new ResizeArray<CourierBookLevel>() with get,set
        member val Asap:Boolean = new Boolean() with get,set
        member val Recurring:Boolean = new Boolean() with get,set
        member val PayTiming:String = null with get,set
        member val FinalAfterCount:Boolean = new Boolean() with get,set
        member val CancelFee:Decimal = new Decimal() with get,set
        member val MissedFee:Decimal = new Decimal() with get,set
        member val MissedWaitMin:Int32 = new Int32() with get,set
        member val ServiceArea:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Zips:ResizeArray<String> = new ResizeArray<String>() with get,set
        member val Handoffs:HandoffOptions = null with get,set

    [<AllowNullLiteral>]
    type CourierBookProfileLink() = 
        member val Code:String = null with get,set
        member val Name:String = null with get,set
        member val Shape:String = null with get,set

    [<AllowNullLiteral>]
    type CourierBookPageView() = 
        member val Available:Boolean = new Boolean() with get,set
        member val BookingOn:Boolean = new Boolean() with get,set
        member val Business:CourierTrackBusiness = null with get,set
        member val Profile:CourierBookProfile = null with get,set
        member val Profiles:ResizeArray<CourierBookProfileLink> = new ResizeArray<CourierBookProfileLink>() with get,set
        member val CardEnabled:Boolean = new Boolean() with get,set
        member val PublishableKey:String = null with get,set
        member val AppUrl:String = null with get,set
        member val Today:String = null with get,set
        member val Weekday:Int32 = new Int32() with get,set
        member val NowMin:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CustomerAppBoot() = 
        member val Profile:String = null with get,set
        member val Available:Boolean = new Boolean() with get,set
        member val Reason:String = null with get,set
        member val AuthMethod:String = null with get,set
        member val Slug:String = null with get,set
        member val Page:CourierBookPageView = null with get,set
        member val ManifestUrl:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerAppAddress() = 
        member val Id:Int32 = new Int32() with get,set
        member val Label:String = null with get,set
        member val Street:String = null with get,set
        member val Unit:String = null with get,set
        member val City:String = null with get,set
        member val Zip:String = null with get,set
        member val Lat:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Lng:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val InArea:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CustomerAppCard() = 
        member val Id:Int32 = new Int32() with get,set
        member val Label:String = null with get,set
        member val Brand:String = null with get,set
        member val Last4:String = null with get,set
        member val IsDefault:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CustomerAppNotif() = 
        member val Texts:Boolean = new Boolean() with get,set
        member val Push:Boolean = new Boolean() with get,set
        member val Promos:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CustomerAppStep() = 
        member val Key:String = null with get,set
        member val Done:Boolean = new Boolean() with get,set
        member val Time:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerAppOrder() = 
        member val Id:Int32 = new Int32() with get,set
        member val Code:String = null with get,set
        member val Status:String = null with get,set
        member val State:String = null with get,set
        member val Active:Boolean = new Boolean() with get,set
        member val LevelCode:String = null with get,set
        member val LevelName:String = null with get,set
        member val Units:Int32 = new Int32() with get,set
        member val UnitsFound:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Address:String = null with get,set
        member val Unit:String = null with get,set
        member val Zip:String = null with get,set
        member val DropAddress:String = null with get,set
        member val RecipientName:String = null with get,set
        member val Handoff:String = null with get,set
        member val IsAsap:Boolean = new Boolean() with get,set
        member val DayIx:Int32 = new Int32() with get,set
        member val DateText:String = null with get,set
        member val StartMin:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val EndMin:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val DriverFirstName:String = null with get,set
        member val EtaMin:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Promise:String = null with get,set
        member val PayMode:String = null with get,set
        member val Amount:Decimal = new Decimal() with get,set
        member val Charged:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Tip:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val CardLast4:String = null with get,set
        member val RecurrenceId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val Steps:ResizeArray<CustomerAppStep> = new ResizeArray<CustomerAppStep>() with get,set

    [<AllowNullLiteral>]
    type CustomerAppRecurrence() = 
        member val Id:Int32 = new Int32() with get,set
        member val Weekday:Int32 = new Int32() with get,set
        member val StartMin:Int32 = new Int32() with get,set
        member val EndMin:Int32 = new Int32() with get,set
        member val Cadence:String = null with get,set
        member val LevelCode:String = null with get,set
        member val Units:Int32 = new Int32() with get,set
        member val Handoff:String = null with get,set
        member val Address:String = null with get,set
        member val Paused:Boolean = new Boolean() with get,set
        member val PayMode:String = null with get,set
        member val CardLast4:String = null with get,set
        member val NextDate:String = null with get,set
        member val SkippedDate:String = null with get,set
        member val AheadDays:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CustomerAppInvoice() = 
        member val Uid:Guid = new Guid() with get,set
        member val Number:String = null with get,set
        member val DateText:String = null with get,set
        member val Total:Decimal = new Decimal() with get,set
        member val Balance:Decimal = new Decimal() with get,set
        member val Paid:Boolean = new Boolean() with get,set

    [<AllowNullLiteral>]
    type CustomerAppMe() = 
        member val ContactId:Int32 = new Int32() with get,set
        member val FirstName:String = null with get,set
        member val LastName:String = null with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set
        member val NeedsName:Boolean = new Boolean() with get,set
        member val BillingMode:String = null with get,set
        member val AccountCode:String = null with get,set
        member val Addresses:ResizeArray<CustomerAppAddress> = new ResizeArray<CustomerAppAddress>() with get,set
        member val Cards:ResizeArray<CustomerAppCard> = new ResizeArray<CustomerAppCard>() with get,set
        member val Notif:CustomerAppNotif = null with get,set
        member val Orders:ResizeArray<CustomerAppOrder> = new ResizeArray<CustomerAppOrder>() with get,set
        member val Recurring:ResizeArray<CustomerAppRecurrence> = new ResizeArray<CustomerAppRecurrence>() with get,set
        member val Invoices:ResizeArray<CustomerAppInvoice> = new ResizeArray<CustomerAppInvoice>() with get,set
        member val Today:String = null with get,set
        member val NowMin:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type CourierBookOrderResponse() = 
        member val Done:Boolean = new Boolean() with get,set
        member val NeedsAction:Boolean = new Boolean() with get,set
        member val ClientSecret:String = null with get,set
        member val SetupIntentId:String = null with get,set
        member val Code:String = null with get,set
        member val TrackUrl:String = null with get,set
        member val IcsUrl:String = null with get,set
        member val WindowText:String = null with get,set
        member val Promise:String = null with get,set
        member val Total:Decimal = new Decimal() with get,set
        member val PayTiming:String = null with get,set
        member val CardLast4:String = null with get,set
        member val Repeats:String = null with get,set
        member val LinkSentBy:String = null with get,set
        member val ReopenStep:String = null with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type CourierCustomerRow() = 
        member val ContactId:Int32 = new Int32() with get,set
        member val Name:String = null with get,set
        member val Phone:String = null with get,set
        member val BillingMode:String = null with get,set
        member val AccountCode:String = null with get,set
        member val Orders:Int32 = new Int32() with get,set
        member val LastOrderAt:Nullable<DateTime> = new Nullable<DateTime>() with get,set
        member val Unbilled:Int32 = new Int32() with get,set
        member val UnbilledAmount:Decimal = new Decimal() with get,set
        member val Cards:Int32 = new Int32() with get,set

    [<AllowNullLiteral>]
    type RunResult() = 
        member val Invoices:Int32 = new Int32() with get,set
        member val Orders:Int32 = new Int32() with get,set
        member val Total:Decimal = new Decimal() with get,set
        member val Skipped:ResizeArray<String> = new ResizeArray<String>() with get,set

    [<AllowNullLiteral>]
    type CustomerAppResponse() = 
        member val Boot:CustomerAppBoot = null with get,set
        member val Customer:CustomerAppMe = null with get,set
        member val Addresses:ResizeArray<CustomerAppAddress> = new ResizeArray<CustomerAppAddress>() with get,set
        member val Cards:ResizeArray<CustomerAppCard> = new ResizeArray<CustomerAppCard>() with get,set
        member val Notif:CustomerAppNotif = null with get,set
        member val Recurring:ResizeArray<CustomerAppRecurrence> = new ResizeArray<CustomerAppRecurrence>() with get,set
        member val Booked:CourierBookOrderResponse = null with get,set
        member val Sent:Boolean = new Boolean() with get,set
        member val Token:String = null with get,set
        member val NeedsName:Boolean = new Boolean() with get,set
        member val Name:String = null with get,set
        member val Url:String = null with get,set
        member val ClientSecret:String = null with get,set
        member val PublishableKey:String = null with get,set
        member val Message:String = null with get,set
        member val ReopenStep:String = null with get,set
        member val Customers:ResizeArray<CourierCustomerRow> = new ResizeArray<CourierCustomerRow>() with get,set
        member val Run:RunResult = null with get,set
        member val ResponseStatus:ResponseStatus = null with get,set

    [<AllowNullLiteral>]
    type CustomerAppSessionRequest() = 
        member val Slug:String = null with get,set
        member val Profile:String = null with get,set

    [<AllowNullLiteral>]
    type CustomerAppOrderRequest() = 
        inherit CustomerAppSessionRequest()
        member val Level:String = null with get,set
        member val WindowId:String = null with get,set
        member val Recur:String = null with get,set
        member val AddressId:Int32 = new Int32() with get,set
        member val DropAddressId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val RecipientName:String = null with get,set
        member val Units:Int32 = new Int32() with get,set
        member val Handoff:String = null with get,set
        member val GateCode:String = null with get,set
        member val Note:String = null with get,set
        member val CardId:Nullable<Int32> = new Nullable<Int32>() with get,set
        member val QuotedTotal:Nullable<Decimal> = new Nullable<Decimal>() with get,set
        member val Lang:String = null with get,set

F# CustomerAppOrderRequest 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 /v1/c/app/orders HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Level: String,
	WindowId: String,
	Recur: String,
	AddressId: 0,
	DropAddressId: 0,
	RecipientName: String,
	Units: 0,
	Handoff: String,
	GateCode: String,
	Note: String,
	CardId: 0,
	QuotedTotal: 0,
	Lang: String,
	Slug: String,
	Profile: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Boot: 
	{
		Profile: String,
		Available: False,
		Reason: String,
		AuthMethod: String,
		Slug: String,
		Page: 
		{
			Available: False,
			BookingOn: False,
			Business: 
			{
				Name: String,
				Phone: String
			},
			Profile: 
			{
				Code: String,
				Name: String,
				Shape: String,
				Template: String,
				UnitOne: String,
				UnitMany: String,
				UnitOneEs: String,
				UnitManyEs: String,
				FacilityNoun: String,
				FacilityNounEs: String,
				FacilityName: String,
				Levels: 
				[
					{
						Code: String,
						Name: String,
						Ready: String,
						WithinMin: 0,
						InBy: String,
						Surcharge: 0,
						Days: 
						[
							0
						],
						DeadlineMin: 0
					}
				],
				Asap: False,
				Recurring: False,
				PayTiming: String,
				FinalAfterCount: False,
				CancelFee: 0,
				MissedFee: 0,
				MissedWaitMin: 0,
				ServiceArea: 
				[
					String
				],
				Zips: 
				[
					String
				],
				Handoffs: 
				{
					Hand: False,
					Porch: False,
					Desk: False,
					SigRequired: False,
					IdRequired: False,
					CodeRequired: False
				}
			},
			Profiles: 
			[
				{
					Code: String,
					Name: String,
					Shape: String
				}
			],
			CardEnabled: False,
			PublishableKey: String,
			AppUrl: String,
			Today: String,
			Weekday: 0,
			NowMin: 0
		},
		ManifestUrl: String
	},
	Customer: 
	{
		ContactId: 0,
		FirstName: String,
		LastName: String,
		Name: String,
		Phone: String,
		NeedsName: False,
		BillingMode: String,
		AccountCode: String,
		Addresses: 
		[
			{
				Id: 0,
				Label: String,
				Street: String,
				Unit: String,
				City: String,
				Zip: String,
				Lat: 0,
				Lng: 0,
				InArea: False
			}
		],
		Cards: 
		[
			{
				Id: 0,
				Label: String,
				Brand: String,
				Last4: String,
				IsDefault: False
			}
		],
		Notif: 
		{
			Texts: False,
			Push: False,
			Promos: False
		},
		Orders: 
		[
			{
				Id: 0,
				Code: String,
				Status: String,
				State: String,
				Active: False,
				LevelCode: String,
				LevelName: String,
				Units: 0,
				UnitsFound: 0,
				Address: String,
				Unit: String,
				Zip: String,
				DropAddress: String,
				RecipientName: String,
				Handoff: String,
				IsAsap: False,
				DayIx: 0,
				DateText: String,
				StartMin: 0,
				EndMin: 0,
				DriverFirstName: String,
				EtaMin: 0,
				Promise: String,
				PayMode: String,
				Amount: 0,
				Charged: 0,
				Tip: 0,
				CardLast4: String,
				RecurrenceId: 0,
				Steps: 
				[
					{
						Key: String,
						Done: False,
						Time: String
					}
				]
			}
		],
		Recurring: 
		[
			{
				Id: 0,
				Weekday: 0,
				StartMin: 0,
				EndMin: 0,
				Cadence: String,
				LevelCode: String,
				Units: 0,
				Handoff: String,
				Address: String,
				Paused: False,
				PayMode: String,
				CardLast4: String,
				NextDate: String,
				SkippedDate: String,
				AheadDays: 0
			}
		],
		Invoices: 
		[
			{
				Uid: 00000000000000000000000000000000,
				Number: String,
				DateText: String,
				Total: 0,
				Balance: 0,
				Paid: False
			}
		],
		Today: String,
		NowMin: 0
	},
	Addresses: 
	[
		{
			Id: 0,
			Label: String,
			Street: String,
			Unit: String,
			City: String,
			Zip: String,
			Lat: 0,
			Lng: 0,
			InArea: False
		}
	],
	Cards: 
	[
		{
			Id: 0,
			Label: String,
			Brand: String,
			Last4: String,
			IsDefault: False
		}
	],
	Notif: 
	{
		Texts: False,
		Push: False,
		Promos: False
	},
	Recurring: 
	[
		{
			Id: 0,
			Weekday: 0,
			StartMin: 0,
			EndMin: 0,
			Cadence: String,
			LevelCode: String,
			Units: 0,
			Handoff: String,
			Address: String,
			Paused: False,
			PayMode: String,
			CardLast4: String,
			NextDate: String,
			SkippedDate: String,
			AheadDays: 0
		}
	],
	Booked: 
	{
		Done: False,
		NeedsAction: False,
		ClientSecret: String,
		SetupIntentId: String,
		Code: String,
		TrackUrl: String,
		IcsUrl: String,
		WindowText: String,
		Promise: String,
		Total: 0,
		PayTiming: String,
		CardLast4: String,
		Repeats: String,
		LinkSentBy: String,
		ReopenStep: String,
		ResponseStatus: 
		{
			ErrorCode: String,
			Message: String,
			StackTrace: String,
			Errors: 
			[
				{
					ErrorCode: String,
					FieldName: String,
					Message: String,
					Meta: 
					{
						String: String
					}
				}
			],
			Meta: 
			{
				String: String
			}
		}
	},
	Sent: False,
	Token: String,
	NeedsName: False,
	Name: String,
	Url: String,
	ClientSecret: String,
	PublishableKey: String,
	Message: String,
	ReopenStep: String,
	Customers: 
	[
		{
			ContactId: 0,
			Name: String,
			Phone: String,
			BillingMode: String,
			AccountCode: String,
			Orders: 0,
			LastOrderAt: 0001-01-01,
			Unbilled: 0,
			UnbilledAmount: 0,
			Cards: 0
		}
	],
	Run: 
	{
		Invoices: 0,
		Orders: 0,
		Total: 0,
		Skipped: 
		[
			String
		]
	},
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}