Trendsic Platform Service

<back to all web services

CustomerAppAuthVerifyRequest

The following routes are available for this service:
POST/v1/c/{Slug}/auth/verify
import Foundation
import ServiceStack

public class CustomerAppAuthVerifyRequest : Codable
{
    public var slug:String
    public var profile:String
    public var phone:String
    public var code:String

    required public init(){}
}

public class CustomerAppResponse : Codable
{
    public var boot:CustomerAppBoot
    public var customer:CustomerAppMe
    public var addresses:[CustomerAppAddress] = []
    public var cards:[CustomerAppCard] = []
    public var notif:CustomerAppNotif
    public var recurring:[CustomerAppRecurrence] = []
    public var booked:CourierBookOrderResponse
    public var sent:Bool
    public var token:String
    public var needsName:Bool
    public var name:String
    public var url:String
    public var clientSecret:String
    public var publishableKey:String
    public var message:String
    public var reopenStep:String
    public var customers:[CourierCustomerRow] = []
    public var run:RunResult
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class CustomerAppBoot : Codable
{
    public var profile:String
    public var available:Bool
    public var reason:String
    public var authMethod:String
    public var slug:String
    public var page:CourierBookPageView
    public var manifestUrl:String

    required public init(){}
}

public class CourierBookPageView : Codable
{
    public var available:Bool
    public var bookingOn:Bool
    public var business:CourierTrackBusiness
    public var profile:CourierBookProfile
    public var profiles:[CourierBookProfileLink] = []
    public var cardEnabled:Bool
    public var publishableKey:String
    public var appUrl:String
    public var today:String
    public var weekday:Int
    public var nowMin:Int

    required public init(){}
}

public class CourierTrackBusiness : Codable
{
    public var name:String
    public var phone:String

    required public init(){}
}

public class CourierBookProfile : Codable
{
    public var code:String
    public var name:String
    public var shape:String
    public var template:String
    public var unitOne:String
    public var unitMany:String
    public var unitOneEs:String
    public var unitManyEs:String
    public var facilityNoun:String
    public var facilityNounEs:String
    public var facilityName:String
    public var levels:[CourierBookLevel] = []
    public var asap:Bool
    public var recurring:Bool
    public var payTiming:String
    public var finalAfterCount:Bool
    public var cancelFee:Double
    public var missedFee:Double
    public var missedWaitMin:Int
    public var serviceArea:[String] = []
    public var zips:[String] = []
    public var handoffs:HandoffOptions

    required public init(){}
}

public class CourierBookLevel : Codable
{
    public var code:String
    public var name:String
    public var ready:String
    public var withinMin:Int
    public var inBy:String
    public var surcharge:Double
    public var days:[Int] = []
    public var deadlineMin:Int?

    required public init(){}
}

public class HandoffOptions : Codable
{
    public var hand:Bool
    public var porch:Bool
    public var desk:Bool
    public var sigRequired:Bool
    public var idRequired:Bool
    public var codeRequired:Bool

    required public init(){}
}

public class CourierBookProfileLink : Codable
{
    public var code:String
    public var name:String
    public var shape:String

    required public init(){}
}

public class CustomerAppMe : Codable
{
    public var contactId:Int
    public var firstName:String
    public var lastName:String
    public var name:String
    public var phone:String
    public var needsName:Bool
    public var billingMode:String
    public var accountCode:String
    public var addresses:[CustomerAppAddress] = []
    public var cards:[CustomerAppCard] = []
    public var notif:CustomerAppNotif
    public var orders:[CustomerAppOrder] = []
    public var recurring:[CustomerAppRecurrence] = []
    public var invoices:[CustomerAppInvoice] = []
    public var today:String
    public var nowMin:Int

    required public init(){}
}

public class CustomerAppAddress : Codable
{
    public var id:Int
    public var label:String
    public var street:String
    public var unit:String
    public var city:String
    public var zip:String
    public var lat:Double?
    public var lng:Double?
    public var inArea:Bool

    required public init(){}
}

public class CustomerAppCard : Codable
{
    public var id:Int
    public var label:String
    public var brand:String
    public var last4:String
    public var isDefault:Bool

    required public init(){}
}

public class CustomerAppNotif : Codable
{
    public var texts:Bool
    public var push:Bool
    public var promos:Bool

    required public init(){}
}

public class CustomerAppOrder : Codable
{
    public var id:Int
    public var code:String
    public var status:String
    public var state:String
    public var active:Bool
    public var levelCode:String
    public var levelName:String
    public var units:Int
    public var unitsFound:Int?
    public var address:String
    public var unit:String
    public var zip:String
    public var dropAddress:String
    public var recipientName:String
    public var handoff:String
    public var isAsap:Bool
    public var dayIx:Int
    public var dateText:String
    public var startMin:Int?
    public var endMin:Int?
    public var driverFirstName:String
    public var etaMin:Int?
    public var promise:String
    public var payMode:String
    public var amount:Double
    public var charged:Double?
    public var tip:Double?
    public var cardLast4:String
    public var recurrenceId:Int?
    public var steps:[CustomerAppStep] = []

    required public init(){}
}

public class CustomerAppStep : Codable
{
    public var key:String
    public var done:Bool
    public var time:String

    required public init(){}
}

public class CustomerAppRecurrence : Codable
{
    public var id:Int
    public var weekday:Int
    public var startMin:Int
    public var endMin:Int
    public var cadence:String
    public var levelCode:String
    public var units:Int
    public var handoff:String
    public var address:String
    public var paused:Bool
    public var payMode:String
    public var cardLast4:String
    public var nextDate:String
    public var skippedDate:String
    public var aheadDays:Int

    required public init(){}
}

public class CustomerAppInvoice : Codable
{
    public var uid:String
    public var number:String
    public var dateText:String
    public var total:Double
    public var balance:Double
    public var paid:Bool

    required public init(){}
}

public class CourierBookOrderResponse : Codable
{
    public var done:Bool
    public var needsAction:Bool
    public var clientSecret:String
    public var setupIntentId:String
    public var code:String
    public var trackUrl:String
    public var icsUrl:String
    public var windowText:String
    public var promise:String
    public var total:Double
    public var payTiming:String
    public var cardLast4:String
    public var repeats:String
    public var linkSentBy:String
    public var reopenStep:String
    public var responseStatus:ResponseStatus

    required public init(){}
}

public class CourierCustomerRow : Codable
{
    public var contactId:Int
    public var name:String
    public var phone:String
    public var billingMode:String
    public var accountCode:String
    public var orders:Int
    public var lastOrderAt:Date?
    public var unbilled:Int
    public var unbilledAmount:Double
    public var cards:Int

    required public init(){}
}

public class RunResult : Codable
{
    public var invoices:Int
    public var orders:Int
    public var total:Double
    public var skipped:[String] = []

    required public init(){}
}


Swift CustomerAppAuthVerifyRequest 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/{Slug}/auth/verify HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Slug: String,
	Profile: String,
	Phone: String,
	Code: 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
		}
	}
}