Trendsic Platform Service

<back to all web services

CourierProfilesRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/dispatch/courier/profiles
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProfileSummary:
    courier_profile_i_d: int = 0
    code: Optional[str] = None
    name: Optional[str] = None
    business_name: Optional[str] = None
    route_shape: Optional[str] = None
    enabled: bool = False
    template_from: Optional[str] = None
    drivers: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierTemplateOption:
    key: Optional[str] = None
    label: Optional[str] = None
    detail: Optional[str] = None
    route_shape: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPay:
    worker_class: Optional[str] = None
    per_pickup: Decimal = decimal.Decimal(0)
    per_stop: Decimal = decimal.Decimal(0)
    per_missed: Decimal = decimal.Decimal(0)
    per_cancel: Decimal = decimal.Decimal(0)
    wait_after_min: int = 0
    wait_per_min: Decimal = decimal.Decimal(0)
    mileage_on: bool = False
    per_mile: Decimal = decimal.Decimal(0)
    min_per_job: Decimal = decimal.Decimal(0)
    tips_pct: Decimal = decimal.Decimal(0)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierDispatch:
    ping_secs: int = 0
    radius_mi: Decimal = decimal.Decimal(0)
    decline_penalty: bool = False
    next_rule: Optional[str] = None
    go_min: int = 0
    last_min: int = 0
    near_full: int = 0
    margin_min: int = 0
    traffic_source: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierMissed:
    wait_min: int = 0
    fee: Decimal = decimal.Decimal(0)
    cancel_fee: Decimal = decimal.Decimal(0)
    auto_rebook: bool = False
    require_contact: bool = False
    require_photo: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPrivacy:
    thread_hrs: int = 0
    photo_days: int = 0
    lock_names: Optional[str] = None
    hide_addr: bool = False
    live_eta: bool = False
    tipping: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPricing:
    base: Decimal = decimal.Decimal(0)
    per_unit: Decimal = decimal.Decimal(0)
    per_mile: Decimal = decimal.Decimal(0)
    min_order: Decimal = decimal.Decimal(0)
    tax_pct: Decimal = decimal.Decimal(0)
    final_after_count: bool = False
    service_area: List[str] = field(default_factory=list)
    window_min: int = 0
    surcharges: Dict[str, Decimal] = field(default_factory=dict)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierBooking:
    on: bool = False
    slug: Optional[str] = None
    asap: bool = False
    min_lead_min: int = 0
    open: Optional[str] = None
    close: Optional[str] = None
    drive_buffer_min: int = 0
    zips: List[str] = field(default_factory=list)
    recurring: bool = False
    pay_timing: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierLevelView:
    code: Optional[str] = None
    name: Optional[str] = None
    in_by: Optional[str] = None
    within_min: int = 0
    ready: Optional[str] = None
    days: List[int] = field(default_factory=list)
    is_on: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierFacilityView:
    code: Optional[str] = None
    name: Optional[str] = None
    address: Optional[str] = None
    intake_min: int = 0
    levels: List[CourierLevelView] = field(default_factory=list)
    holidays: List[str] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierVehicleView:
    equipment_i_d: int = 0
    unit_number: Optional[str] = None
    name: Optional[str] = None
    unit: Optional[str] = None
    cap: Decimal = decimal.Decimal(0)
    cold: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProfileContext:
    drivers: int = 0
    profile_count: int = 0
    pay_plan_id: Optional[int] = None
    zone_mode: Optional[str] = None
    zone_name: Optional[str] = None
    zone_count: int = 0
    has_booking_page: bool = False
    has_rate_config: bool = False
    vehicle_facts: Dict[str, str] = field(default_factory=dict)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProfileView:
    courier_profile_i_d: int = 0
    code: Optional[str] = None
    name: Optional[str] = None
    business_name: Optional[str] = None
    route_shape: Optional[str] = None
    enabled: bool = False
    template_from: Optional[str] = None
    unit_one: Optional[str] = None
    unit_many: Optional[str] = None
    facility_noun: Optional[str] = None
    unit_one_es: Optional[str] = None
    unit_many_es: Optional[str] = None
    facility_noun_es: Optional[str] = None
    tag_mode: Optional[str] = None
    tag_formats: List[str] = field(default_factory=list)
    pay: Optional[CourierPay] = None
    dispatch: Optional[CourierDispatch] = None
    missed: Optional[CourierMissed] = None
    privacy: Optional[CourierPrivacy] = None
    pricing: Optional[CourierPricing] = None
    booking: Optional[CourierBooking] = None
    facilities: List[CourierFacilityView] = field(default_factory=list)
    vehicles: List[CourierVehicleView] = field(default_factory=list)
    proof: Dict[str, Dict[str, str]] = field(default_factory=dict)
    context: Optional[CourierProfileContext] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierIssue:
    key: Optional[str] = None
    section: Optional[str] = None
    message: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierChange:
    key: Optional[str] = None
    section: Optional[str] = None
    label: Optional[str] = None
    from_: Optional[str] = field(metadata=config(field_name='from'), default=None)
    to: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPreviewLine:
    k: Optional[str] = None
    v: Optional[str] = None
    dot: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPreview:
    deadline_title: Optional[str] = None
    deadline_lead: Optional[str] = None
    room_w: Optional[str] = None
    last_w: Optional[str] = None
    go_w: Optional[str] = None
    zones: List[CourierPreviewLine] = field(default_factory=list)
    pay_sub: Optional[str] = None
    pay_rows: List[CourierPreviewLine] = field(default_factory=list)
    pay_total: Optional[str] = None
    proof_rows: List[CourierPreviewLine] = field(default_factory=list)
    ping: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierFleetVehicle:
    equipment_i_d: int = 0
    unit_number: Optional[str] = None
    name: Optional[str] = None
    vehicle_type: Optional[str] = None
    unit: Optional[str] = None
    cap: Optional[Decimal] = None
    cold: bool = False
    status: Optional[str] = None
    assigned: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierResponse:
    profiles: List[CourierProfileSummary] = field(default_factory=list)
    templates: List[CourierTemplateOption] = field(default_factory=list)
    profile: Optional[CourierProfileView] = None
    issues: List[CourierIssue] = field(default_factory=list)
    changes: List[CourierChange] = field(default_factory=list)
    preview: Optional[CourierPreview] = None
    fleet: List[CourierFleetVehicle] = field(default_factory=list)
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProfilesRequest:
    pass

Python CourierProfilesRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /v1/dispatch/courier/profiles HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CourierResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
  <Changes>
    <CourierChange>
      <From>String</From>
      <Key>String</Key>
      <Label>String</Label>
      <Section>String</Section>
      <To>String</To>
    </CourierChange>
  </Changes>
  <Fleet>
    <CourierFleetVehicle>
      <Assigned>false</Assigned>
      <Cap>0</Cap>
      <Cold>false</Cold>
      <EquipmentID>0</EquipmentID>
      <Name>String</Name>
      <Status>String</Status>
      <Unit>String</Unit>
      <UnitNumber>String</UnitNumber>
      <VehicleType>String</VehicleType>
    </CourierFleetVehicle>
  </Fleet>
  <Issues>
    <CourierIssue>
      <Key>String</Key>
      <Message>String</Message>
      <Section>String</Section>
    </CourierIssue>
  </Issues>
  <Preview>
    <DeadlineLead>String</DeadlineLead>
    <DeadlineTitle>String</DeadlineTitle>
    <GoW>String</GoW>
    <LastW>String</LastW>
    <PayRows>
      <CourierPreviewLine>
        <Dot>String</Dot>
        <K>String</K>
        <V>String</V>
      </CourierPreviewLine>
    </PayRows>
    <PaySub>String</PaySub>
    <PayTotal>String</PayTotal>
    <Ping>String</Ping>
    <ProofRows>
      <CourierPreviewLine>
        <Dot>String</Dot>
        <K>String</K>
        <V>String</V>
      </CourierPreviewLine>
    </ProofRows>
    <RoomW>String</RoomW>
    <Zones>
      <CourierPreviewLine>
        <Dot>String</Dot>
        <K>String</K>
        <V>String</V>
      </CourierPreviewLine>
    </Zones>
  </Preview>
  <Profile>
    <Booking>
      <Asap>false</Asap>
      <Close>String</Close>
      <DriveBufferMin>0</DriveBufferMin>
      <MinLeadMin>0</MinLeadMin>
      <On>false</On>
      <Open>String</Open>
      <PayTiming>String</PayTiming>
      <Recurring>false</Recurring>
      <Slug>String</Slug>
      <Zips xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>String</d4p1:string>
      </Zips>
    </Booking>
    <BusinessName>String</BusinessName>
    <Code>String</Code>
    <Context>
      <Drivers>0</Drivers>
      <HasBookingPage>false</HasBookingPage>
      <HasRateConfig>false</HasRateConfig>
      <PayPlanId>0</PayPlanId>
      <ProfileCount>0</ProfileCount>
      <VehicleFacts xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </VehicleFacts>
      <ZoneCount>0</ZoneCount>
      <ZoneMode>String</ZoneMode>
      <ZoneName>String</ZoneName>
    </Context>
    <CourierProfileID>0</CourierProfileID>
    <Dispatch>
      <DeclinePenalty>false</DeclinePenalty>
      <GoMin>0</GoMin>
      <LastMin>0</LastMin>
      <MarginMin>0</MarginMin>
      <NearFull>0</NearFull>
      <NextRule>String</NextRule>
      <PingSecs>0</PingSecs>
      <RadiusMi>0</RadiusMi>
      <TrafficSource>String</TrafficSource>
    </Dispatch>
    <Enabled>false</Enabled>
    <Facilities>
      <CourierFacilityView>
        <Address>String</Address>
        <Code>String</Code>
        <Holidays xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:string>String</d5p1:string>
        </Holidays>
        <IntakeMin>0</IntakeMin>
        <Levels>
          <CourierLevelView>
            <Code>String</Code>
            <Days xmlns:d7p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
              <d7p1:int>0</d7p1:int>
            </Days>
            <InBy>String</InBy>
            <IsOn>false</IsOn>
            <Name>String</Name>
            <Ready>String</Ready>
            <WithinMin>0</WithinMin>
          </CourierLevelView>
        </Levels>
        <Name>String</Name>
      </CourierFacilityView>
    </Facilities>
    <FacilityNoun>String</FacilityNoun>
    <FacilityNounEs>String</FacilityNounEs>
    <Missed>
      <AutoRebook>false</AutoRebook>
      <CancelFee>0</CancelFee>
      <Fee>0</Fee>
      <RequireContact>false</RequireContact>
      <RequirePhoto>false</RequirePhoto>
      <WaitMin>0</WaitMin>
    </Missed>
    <Name>String</Name>
    <Pay>
      <MileageOn>false</MileageOn>
      <MinPerJob>0</MinPerJob>
      <PerCancel>0</PerCancel>
      <PerMile>0</PerMile>
      <PerMissed>0</PerMissed>
      <PerPickup>0</PerPickup>
      <PerStop>0</PerStop>
      <TipsPct>0</TipsPct>
      <WaitAfterMin>0</WaitAfterMin>
      <WaitPerMin>0</WaitPerMin>
      <WorkerClass>String</WorkerClass>
    </Pay>
    <Pricing>
      <Base>0</Base>
      <FinalAfterCount>false</FinalAfterCount>
      <MinOrder>0</MinOrder>
      <PerMile>0</PerMile>
      <PerUnit>0</PerUnit>
      <ServiceArea xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>String</d4p1:string>
      </ServiceArea>
      <Surcharges xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringdecimal>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>0</d4p1:Value>
        </d4p1:KeyValueOfstringdecimal>
      </Surcharges>
      <TaxPct>0</TaxPct>
      <WindowMin>0</WindowMin>
    </Pricing>
    <Privacy>
      <HideAddr>false</HideAddr>
      <LiveEta>false</LiveEta>
      <LockNames>String</LockNames>
      <PhotoDays>0</PhotoDays>
      <ThreadHrs>0</ThreadHrs>
      <Tipping>false</Tipping>
    </Privacy>
    <Proof xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringArrayOfKeyValueOfstringstringty7Ep6D1>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>
          <d3p1:KeyValueOfstringstring>
            <d3p1:Key>String</d3p1:Key>
            <d3p1:Value>String</d3p1:Value>
          </d3p1:KeyValueOfstringstring>
        </d3p1:Value>
      </d3p1:KeyValueOfstringArrayOfKeyValueOfstringstringty7Ep6D1>
    </Proof>
    <RouteShape>String</RouteShape>
    <TagFormats xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:string>String</d3p1:string>
    </TagFormats>
    <TagMode>String</TagMode>
    <TemplateFrom>String</TemplateFrom>
    <UnitMany>String</UnitMany>
    <UnitManyEs>String</UnitManyEs>
    <UnitOne>String</UnitOne>
    <UnitOneEs>String</UnitOneEs>
    <Vehicles>
      <CourierVehicleView>
        <Cap>0</Cap>
        <Cold>false</Cold>
        <EquipmentID>0</EquipmentID>
        <Name>String</Name>
        <Unit>String</Unit>
        <UnitNumber>String</UnitNumber>
      </CourierVehicleView>
    </Vehicles>
  </Profile>
  <Profiles>
    <CourierProfileSummary>
      <BusinessName>String</BusinessName>
      <Code>String</Code>
      <CourierProfileID>0</CourierProfileID>
      <Drivers>0</Drivers>
      <Enabled>false</Enabled>
      <Name>String</Name>
      <RouteShape>String</RouteShape>
      <TemplateFrom>String</TemplateFrom>
    </CourierProfileSummary>
  </Profiles>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
  <Templates>
    <CourierTemplateOption>
      <Detail>String</Detail>
      <Key>String</Key>
      <Label>String</Label>
      <RouteShape>String</RouteShape>
    </CourierTemplateOption>
  </Templates>
</CourierResponse>