Trendsic Platform Service

<back to all web services

CourierCustomersRequest

Requires Authentication
The following routes are available for this service:
GET/v1/dispatch/courier/customers
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*


open class CourierCustomersRequest
{
    open var Q:String? = null
}

open class CustomerAppResponse
{
    open var Boot:CustomerAppBoot? = null
    open var Customer:CustomerAppMe? = null
    open var Addresses:ArrayList<CustomerAppAddress> = ArrayList<CustomerAppAddress>()
    open var Cards:ArrayList<CustomerAppCard> = ArrayList<CustomerAppCard>()
    open var Notif:CustomerAppNotif? = null
    open var Recurring:ArrayList<CustomerAppRecurrence> = ArrayList<CustomerAppRecurrence>()
    open var Booked:CourierBookOrderResponse? = null
    open var Sent:Boolean? = null
    open var Token:String? = null
    open var NeedsName:Boolean? = null
    open var Name:String? = null
    open var Url:String? = null
    open var ClientSecret:String? = null
    open var PublishableKey:String? = null
    open var Message:String? = null
    open var ReopenStep:String? = null
    open var Customers:ArrayList<CourierCustomerRow> = ArrayList<CourierCustomerRow>()
    open var Run:RunResult? = null
    open var ResponseStatus:ResponseStatus? = null
}

open class CustomerAppBoot
{
    open var Profile:String? = null
    open var Available:Boolean? = null
    open var Reason:String? = null
    open var AuthMethod:String? = null
    open var Slug:String? = null
    open var Page:CourierBookPageView? = null
    open var ManifestUrl:String? = null
}

open class CourierBookPageView
{
    open var Available:Boolean? = null
    open var BookingOn:Boolean? = null
    open var Business:CourierTrackBusiness? = null
    open var Profile:CourierBookProfile? = null
    open var Profiles:ArrayList<CourierBookProfileLink> = ArrayList<CourierBookProfileLink>()
    open var CardEnabled:Boolean? = null
    open var PublishableKey:String? = null
    open var AppUrl:String? = null
    open var Today:String? = null
    open var Weekday:Int? = null
    open var NowMin:Int? = null
}

open class CourierTrackBusiness
{
    open var Name:String? = null
    open var Phone:String? = null
}

open class CourierBookProfile
{
    open var Code:String? = null
    open var Name:String? = null
    open var Shape:String? = null
    open var Template:String? = null
    open var UnitOne:String? = null
    open var UnitMany:String? = null
    open var UnitOneEs:String? = null
    open var UnitManyEs:String? = null
    open var FacilityNoun:String? = null
    open var FacilityNounEs:String? = null
    open var FacilityName:String? = null
    open var Levels:ArrayList<CourierBookLevel> = ArrayList<CourierBookLevel>()
    open var Asap:Boolean? = null
    open var Recurring:Boolean? = null
    open var PayTiming:String? = null
    open var FinalAfterCount:Boolean? = null
    open var CancelFee:BigDecimal? = null
    open var MissedFee:BigDecimal? = null
    open var MissedWaitMin:Int? = null
    open var ServiceArea:ArrayList<String> = ArrayList<String>()
    open var Zips:ArrayList<String> = ArrayList<String>()
    open var Handoffs:HandoffOptions? = null
}

open class CourierBookLevel
{
    open var Code:String? = null
    open var Name:String? = null
    open var Ready:String? = null
    open var WithinMin:Int? = null
    open var InBy:String? = null
    open var Surcharge:BigDecimal? = null
    open var Days:ArrayList<Int> = ArrayList<Int>()
    open var DeadlineMin:Int? = null
}

open class HandoffOptions
{
    open var Hand:Boolean? = null
    open var Porch:Boolean? = null
    open var Desk:Boolean? = null
    open var SigRequired:Boolean? = null
    open var IdRequired:Boolean? = null
    open var CodeRequired:Boolean? = null
}

open class CourierBookProfileLink
{
    open var Code:String? = null
    open var Name:String? = null
    open var Shape:String? = null
}

open class CustomerAppMe
{
    open var ContactId:Int? = null
    open var FirstName:String? = null
    open var LastName:String? = null
    open var Name:String? = null
    open var Phone:String? = null
    open var NeedsName:Boolean? = null
    open var BillingMode:String? = null
    open var AccountCode:String? = null
    open var Addresses:ArrayList<CustomerAppAddress> = ArrayList<CustomerAppAddress>()
    open var Cards:ArrayList<CustomerAppCard> = ArrayList<CustomerAppCard>()
    open var Notif:CustomerAppNotif? = null
    open var Orders:ArrayList<CustomerAppOrder> = ArrayList<CustomerAppOrder>()
    open var Recurring:ArrayList<CustomerAppRecurrence> = ArrayList<CustomerAppRecurrence>()
    open var Invoices:ArrayList<CustomerAppInvoice> = ArrayList<CustomerAppInvoice>()
    open var Today:String? = null
    open var NowMin:Int? = null
}

open class CustomerAppAddress
{
    open var Id:Int? = null
    open var Label:String? = null
    open var Street:String? = null
    open var Unit:String? = null
    open var City:String? = null
    open var Zip:String? = null
    open var Lat:BigDecimal? = null
    open var Lng:BigDecimal? = null
    open var InArea:Boolean? = null
}

open class CustomerAppCard
{
    open var Id:Int? = null
    open var Label:String? = null
    open var Brand:String? = null
    open var Last4:String? = null
    open var IsDefault:Boolean? = null
}

open class CustomerAppNotif
{
    open var Texts:Boolean? = null
    open var Push:Boolean? = null
    open var Promos:Boolean? = null
}

open class CustomerAppOrder
{
    open var Id:Int? = null
    open var Code:String? = null
    open var Status:String? = null
    open var State:String? = null
    open var Active:Boolean? = null
    open var LevelCode:String? = null
    open var LevelName:String? = null
    open var Units:Int? = null
    open var UnitsFound:Int? = null
    open var Address:String? = null
    open var Unit:String? = null
    open var Zip:String? = null
    open var DropAddress:String? = null
    open var RecipientName:String? = null
    open var Handoff:String? = null
    open var IsAsap:Boolean? = null
    open var DayIx:Int? = null
    open var DateText:String? = null
    open var StartMin:Int? = null
    open var EndMin:Int? = null
    open var DriverFirstName:String? = null
    open var EtaMin:Int? = null
    open var Promise:String? = null
    open var PayMode:String? = null
    open var Amount:BigDecimal? = null
    open var Charged:BigDecimal? = null
    open var Tip:BigDecimal? = null
    open var CardLast4:String? = null
    open var RecurrenceId:Int? = null
    open var Steps:ArrayList<CustomerAppStep> = ArrayList<CustomerAppStep>()
}

open class CustomerAppStep
{
    open var Key:String? = null
    open var Done:Boolean? = null
    open var Time:String? = null
}

open class CustomerAppRecurrence
{
    open var Id:Int? = null
    open var Weekday:Int? = null
    open var StartMin:Int? = null
    open var EndMin:Int? = null
    open var Cadence:String? = null
    open var LevelCode:String? = null
    open var Units:Int? = null
    open var Handoff:String? = null
    open var Address:String? = null
    open var Paused:Boolean? = null
    open var PayMode:String? = null
    open var CardLast4:String? = null
    open var NextDate:String? = null
    open var SkippedDate:String? = null
    open var AheadDays:Int? = null
}

open class CustomerAppInvoice
{
    open var Uid:UUID? = null
    open var Number:String? = null
    open var DateText:String? = null
    open var Total:BigDecimal? = null
    open var Balance:BigDecimal? = null
    open var Paid:Boolean? = null
}

open class CourierBookOrderResponse
{
    open var Done:Boolean? = null
    open var NeedsAction:Boolean? = null
    open var ClientSecret:String? = null
    open var SetupIntentId:String? = null
    open var Code:String? = null
    open var TrackUrl:String? = null
    open var IcsUrl:String? = null
    open var WindowText:String? = null
    open var Promise:String? = null
    open var Total:BigDecimal? = null
    open var PayTiming:String? = null
    open var CardLast4:String? = null
    open var Repeats:String? = null
    open var LinkSentBy:String? = null
    open var ReopenStep:String? = null
    open var ResponseStatus:ResponseStatus? = null
}

open class CourierCustomerRow
{
    open var ContactId:Int? = null
    open var Name:String? = null
    open var Phone:String? = null
    open var BillingMode:String? = null
    open var AccountCode:String? = null
    open var Orders:Int? = null
    open var LastOrderAt:Date? = null
    open var Unbilled:Int? = null
    open var UnbilledAmount:BigDecimal? = null
    open var Cards:Int? = null
}

open class RunResult
{
    open var Invoices:Int? = null
    open var Orders:Int? = null
    open var Total:BigDecimal? = null
    open var Skipped:ArrayList<String> = ArrayList<String>()
}

Kotlin CourierCustomersRequest 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.

GET /v1/dispatch/courier/customers HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
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
		}
	}
}