Trendsic Platform Service

<back to all web services

CourierTrackMessageRequest

The following routes are available for this service:
POST,OPTIONS/v1/dispatch/track/{Token}/messages

export class CourierTrackActRequest
{
    public Token: string;
    public ActToken: string;

    public constructor(init?: Partial<CourierTrackActRequest>) { (Object as any).assign(this, init); }
}

export class DispatchTrackStepView
{
    public Name: string;
    public At?: string;
    public Done: boolean;
    public Current: boolean;

    public constructor(init?: Partial<DispatchTrackStepView>) { (Object as any).assign(this, init); }
}

export class CourierTrackBusiness
{
    public Name: string;
    public Phone: string;

    public constructor(init?: Partial<CourierTrackBusiness>) { (Object as any).assign(this, init); }
}

export class CourierTrackDriver
{
    public FirstName: string;
    public Initial: string;
    public Vehicle: string;
    public Plate: string;
    public EtaMin?: number;
    public EtaPct?: number;

    public constructor(init?: Partial<CourierTrackDriver>) { (Object as any).assign(this, init); }
}

export class CourierTrackProof
{
    public Kind: string;
    public PhotoUrl: string;
    public AtText: string;
    public GpsOk: boolean;
    public Units: number;
    public DamageNote: string;
    public DeliveredTo: string;
    public WaitedMin: number;
    public Attempts: number;
    public ContactedText: string;
    public EachTagged: boolean;
    public EachScanned: boolean;

    public constructor(init?: Partial<CourierTrackProof>) { (Object as any).assign(this, init); }
}

export class CourierTrackRating
{
    public Stars: number;
    public Tags: string;
    public Tip: number;
    public TipStatus: string;

    public constructor(init?: Partial<CourierTrackRating>) { (Object as any).assign(this, init); }
}

export class CourierTrackSlot
{
    public Id: string;
    public Day: string;
    public DayEs: string;
    public Win: string;

    public constructor(init?: Partial<CourierTrackSlot>) { (Object as any).assign(this, init); }
}

export class CourierTrackMissed
{
    public Code: string;
    public Fee: number;
    public WaitedMin: number;
    public AutoRebook: boolean;
    public RebookWindowText: string;
    public Slots: CourierTrackSlot[] = [];

    public constructor(init?: Partial<CourierTrackMissed>) { (Object as any).assign(this, init); }
}

export class CourierTrackCan
{
    public EditInstructions: boolean;
    public ChangeUnits: boolean;
    public Cancel: boolean;
    public RescheduleDelivery: boolean;
    public Rebook: boolean;
    public Rate: boolean;
    public Message: boolean;
    public Report: boolean;
    public MaxUnits: number;

    public constructor(init?: Partial<CourierTrackCan>) { (Object as any).assign(this, init); }
}

export class CourierTrackMessage
{
    public Who: string;
    public Mine: boolean;
    public Office: boolean;
    public AtText: string;
    public Body: string;

    public constructor(init?: Partial<CourierTrackMessage>) { (Object as any).assign(this, init); }
}

export class CourierTrackView
{
    public State: string;
    public Code: string;
    public RunCode: string;
    public Shape: string;
    public Template: string;
    public CourierStep: string;
    public UnitOne: string;
    public UnitMany: string;
    public UnitOneEs: string;
    public UnitManyEs: string;
    public FacilityNoun: string;
    public FacilityNounEs: string;
    public Units: number;
    public UnitsCounted: boolean;
    public Address: string;
    public DropoffAddress: string;
    public DropoffName: string;
    public Instructions: string;
    public GateCode: string;
    public Handoff: string;
    public LevelName: string;
    public ReadyPromise: string;
    public WindowText: string;
    public IsAsap: boolean;
    public Times: { [index:string]: string; } = {};
    public StopPosition?: number;
    public StopCount?: number;
    public DeliveryWindowText: string;
    public Driver: CourierTrackDriver;
    public Proof: CourierTrackProof;
    public HandoffCode: string;
    public Rating: CourierTrackRating;
    public TipAllowed: boolean;
    public TipsPct: number;
    public Missed: CourierTrackMissed;
    public CancelFee: number;
    public CancelFeeCharged: number;
    public CancelledBy: string;
    public BookUrl: string;
    public Can: CourierTrackCan;
    public DeliverySlots: CourierTrackSlot[] = [];
    public Messages: CourierTrackMessage[] = [];
    public MessagesOpen: boolean;
    public CaseCode: string;
    public CaseStatus: string;
    public CaseReply: string;
    public ThreadHrs: number;
    public ExpiresUtc?: string;
    public LiveEta: boolean;
    public Live: boolean;
    public ServerUtc: string;

    public constructor(init?: Partial<CourierTrackView>) { (Object as any).assign(this, init); }
}

export class DispatchTrackResponse
{
    public Kind: string;
    public Code: string;
    public What: string;
    public FromLoc: string;
    public ToLoc: string;
    public Bags?: number;
    public Fare?: number;
    public PayMode: string;
    public CardLast4: string;
    public Charged: boolean;
    public Stage: string;
    public Headline: string;
    public Sub: string;
    public IsClosed: boolean;
    public Eta: string;
    public DriverName: string;
    public CustomerName: string;
    public Steps: DispatchTrackStepView[] = [];
    public Expired: boolean;
    public Invalid: boolean;
    public Business: CourierTrackBusiness;
    public Courier: CourierTrackView;
    public Notice: string;
    public ResponseStatus: ResponseStatus;

    public constructor(init?: Partial<DispatchTrackResponse>) { (Object as any).assign(this, init); }
}

export class CourierTrackMessageRequest extends CourierTrackActRequest
{
    public Text: string;

    public constructor(init?: Partial<CourierTrackMessageRequest>) { super(init); (Object as any).assign(this, init); }
}

TypeScript CourierTrackMessageRequest 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/dispatch/track/{Token}/messages HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Text: String,
	Token: String,
	ActToken: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	Kind: String,
	Code: String,
	What: String,
	FromLoc: String,
	ToLoc: String,
	Bags: 0,
	Fare: 0,
	PayMode: String,
	CardLast4: String,
	Charged: False,
	Stage: String,
	Headline: String,
	Sub: String,
	IsClosed: False,
	Eta: String,
	DriverName: String,
	CustomerName: String,
	Steps: 
	[
		{
			Name: String,
			At: 0001-01-01,
			Done: False,
			Current: False
		}
	],
	Expired: False,
	Invalid: False,
	Business: 
	{
		Name: String,
		Phone: String
	},
	Courier: 
	{
		State: String,
		Code: String,
		RunCode: String,
		Shape: String,
		Template: String,
		CourierStep: String,
		UnitOne: String,
		UnitMany: String,
		UnitOneEs: String,
		UnitManyEs: String,
		FacilityNoun: String,
		FacilityNounEs: String,
		Units: 0,
		UnitsCounted: False,
		Address: String,
		DropoffAddress: String,
		DropoffName: String,
		Instructions: String,
		GateCode: String,
		Handoff: String,
		LevelName: String,
		ReadyPromise: String,
		WindowText: String,
		IsAsap: False,
		Times: 
		{
			String: String
		},
		StopPosition: 0,
		StopCount: 0,
		DeliveryWindowText: String,
		Driver: 
		{
			FirstName: String,
			Initial: String,
			Vehicle: String,
			Plate: String,
			EtaMin: 0,
			EtaPct: 0
		},
		Proof: 
		{
			Kind: String,
			PhotoUrl: String,
			AtText: String,
			GpsOk: False,
			Units: 0,
			DamageNote: String,
			DeliveredTo: String,
			WaitedMin: 0,
			Attempts: 0,
			ContactedText: String,
			EachTagged: False,
			EachScanned: False
		},
		HandoffCode: String,
		Rating: 
		{
			Stars: 0,
			Tags: String,
			Tip: 0,
			TipStatus: String
		},
		TipAllowed: False,
		TipsPct: 0,
		Missed: 
		{
			Code: String,
			Fee: 0,
			WaitedMin: 0,
			AutoRebook: False,
			RebookWindowText: String,
			Slots: 
			[
				{
					Id: String,
					Day: String,
					DayEs: String,
					Win: String
				}
			]
		},
		CancelFee: 0,
		CancelFeeCharged: 0,
		CancelledBy: String,
		BookUrl: String,
		Can: 
		{
			EditInstructions: False,
			ChangeUnits: False,
			Cancel: False,
			RescheduleDelivery: False,
			Rebook: False,
			Rate: False,
			Message: False,
			Report: False,
			MaxUnits: 0
		},
		DeliverySlots: 
		[
			{
				Id: String,
				Day: String,
				DayEs: String,
				Win: String
			}
		],
		Messages: 
		[
			{
				Who: String,
				Mine: False,
				Office: False,
				AtText: String,
				Body: String
			}
		],
		MessagesOpen: False,
		CaseCode: String,
		CaseStatus: String,
		CaseReply: String,
		ThreadHrs: 0,
		ExpiresUtc: 0001-01-01,
		LiveEta: False,
		Live: False,
		ServerUtc: 0001-01-01
	},
	Notice: String,
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	}
}