Trendsic Platform Service

<back to all web services

CourierOrderRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/dispatch/courier/orders/{Code}
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 CourierOrderRuleView:
    ping_secs: int = 0
    missed_wait_min: int = 0
    missed_fee: Decimal = decimal.Decimal(0)
    cancel_fee: Decimal = decimal.Decimal(0)
    missed_auto_rebook: bool = False
    missed_require_contact: bool = False
    missed_require_photo: bool = False
    pay_timing: Optional[str] = None
    final_price_after_count: bool = False
    pay_plan_name: 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)
    accepted_utc: Optional[datetime.datetime] = None
    proof: Dict[str, str] = field(default_factory=dict)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierItemView:
    courier_item_i_d: int = 0
    dispatch_od_request_i_d: int = 0
    seq: int = 0
    tag_code: Optional[str] = None
    custody: Optional[str] = None
    is_open: bool = False
    is_missing: bool = False
    missing_reason: Optional[str] = None
    is_manual: bool = False
    re_tag_flag: bool = False
    scanned: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierScanView:
    tag_code: Optional[str] = None
    stage: Optional[str] = None
    result: Optional[str] = None
    at_utc: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierProofResultView:
    stage: Optional[str] = None
    step_key: Optional[str] = None
    value: Optional[str] = None
    at_utc: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierEventView:
    kind: Optional[str] = None
    party: Optional[str] = None
    body: Optional[str] = None
    at_utc: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPhotoView:
    photo_id: int = 0
    kind: Optional[str] = None
    file_name: Optional[str] = None
    url: Optional[str] = None
    taken_utc: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierPayLineView:
    dispatch_load_i_d: int = 0
    kind: Optional[str] = None
    label: Optional[str] = None
    qty: Optional[Decimal] = None
    rate: Optional[Decimal] = None
    amount: Decimal = decimal.Decimal(0)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderView:
    dispatch_od_request_i_d: int = 0
    code: Optional[str] = None
    courier_profile_id: int = 0
    profile_name: Optional[str] = None
    route_shape: Optional[str] = None
    unit_one: Optional[str] = None
    unit_many: Optional[str] = None
    courier_facility_id: Optional[int] = None
    facility_name: Optional[str] = None
    service_level_code: Optional[str] = None
    level_name: Optional[str] = None
    source: Optional[str] = None
    address: Optional[str] = None
    unit: Optional[str] = None
    city: Optional[str] = None
    zip: Optional[str] = None
    zone: Optional[str] = None
    pickup_contact_name: Optional[str] = None
    dropoff_address: Optional[str] = None
    dropoff_unit: Optional[str] = None
    dropoff_city: Optional[str] = None
    dropoff_zip: Optional[str] = None
    dropoff_contact_name: Optional[str] = None
    miles: Optional[Decimal] = None
    units: int = 0
    units_found: Optional[int] = None
    stage: Optional[str] = None
    courier_step: Optional[str] = None
    step_label: Optional[str] = None
    driver_code: Optional[str] = None
    driver_name: Optional[str] = None
    driver_contact_id: Optional[int] = None
    courier_run_id: Optional[int] = None
    run_code: Optional[str] = None
    stop_sequence: Optional[int] = None
    queue_sequence: Optional[int] = None
    is_asap: bool = False
    window_start_utc: Optional[datetime.datetime] = None
    window_end_utc: Optional[datetime.datetime] = None
    window_text: Optional[str] = None
    due_utc: Optional[datetime.datetime] = None
    due_text: Optional[str] = None
    ping_after_utc: Optional[datetime.datetime] = None
    ping_expires_utc: Optional[datetime.datetime] = None
    candidate_code: Optional[str] = None
    held_reason: Optional[str] = None
    held_utc: Optional[datetime.datetime] = None
    customer_name: Optional[str] = None
    customer_phone: Optional[str] = None
    handoff: Optional[str] = None
    gate_code: Optional[str] = None
    instructions: Optional[str] = None
    damage_note: Optional[str] = None
    delivered_to_name: Optional[str] = None
    pay_mode: Optional[str] = None
    fare: Optional[Decimal] = None
    final_price: Optional[Decimal] = None
    tip_amount: Optional[Decimal] = None
    cancelled_by: Optional[str] = None
    cancel_reason: Optional[str] = None
    cancel_fee_applied: Optional[Decimal] = None
    missed_fee_applied: Optional[Decimal] = None
    capture_mode: Optional[str] = None
    authorized_amount: Optional[Decimal] = None
    captured_amount: Optional[Decimal] = None
    refunded_amount: Decimal = decimal.Decimal(0)
    charge_error: Optional[str] = None
    created_at: Optional[datetime.datetime] = None
    arrived_utc: Optional[datetime.datetime] = None
    picked_up_utc: Optional[datetime.datetime] = None
    intake_utc: Optional[datetime.datetime] = None
    ready_utc: Optional[datetime.datetime] = None
    out_for_delivery_utc: Optional[datetime.datetime] = None
    delivered_utc: Optional[datetime.datetime] = None
    missed_utc: Optional[datetime.datetime] = None
    cancelled_utc: Optional[datetime.datetime] = None
    is_closed: bool = False
    rebook_of_id: Optional[int] = None
    recurrence_id: Optional[int] = None
    pickup_load_id: Optional[int] = None
    rule: Optional[CourierOrderRuleView] = None
    items: List[CourierItemView] = field(default_factory=list)
    scans: List[CourierScanView] = field(default_factory=list)
    proof: List[CourierProofResultView] = field(default_factory=list)
    events: List[CourierEventView] = field(default_factory=list)
    photos: List[CourierPhotoView] = field(default_factory=list)
    pay_lines: List[CourierPayLineView] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderResponse:
    orders: List[CourierOrderView] = field(default_factory=list)
    order: Optional[CourierOrderView] = None
    message: Optional[str] = None
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierOrderRequest:
    code: Optional[str] = None

Python CourierOrderRequest DTOs

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

HTTP + OTHER

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

GET /v1/dispatch/courier/orders/{Code} HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsonl
HTTP/1.1 200 OK
Content-Type: text/jsonl
Content-Length: length

{"Orders":[{"DispatchOdRequestID":0,"Code":"String","CourierProfileId":0,"ProfileName":"String","RouteShape":"String","UnitOne":"String","UnitMany":"String","CourierFacilityId":0,"FacilityName":"String","ServiceLevelCode":"String","LevelName":"String","Source":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Zone":"String","PickupContactName":"String","DropoffAddress":"String","DropoffUnit":"String","DropoffCity":"String","DropoffZip":"String","DropoffContactName":"String","Miles":0,"Units":0,"UnitsFound":0,"Stage":"String","CourierStep":"String","StepLabel":"String","DriverCode":"String","DriverName":"String","DriverContactId":0,"CourierRunId":0,"RunCode":"String","StopSequence":0,"QueueSequence":0,"IsAsap":false,"WindowStartUtc":"0001-01-01T00:00:00.0000000","WindowEndUtc":"0001-01-01T00:00:00.0000000","WindowText":"String","DueUtc":"0001-01-01T00:00:00.0000000","DueText":"String","PingAfterUtc":"0001-01-01T00:00:00.0000000","PingExpiresUtc":"0001-01-01T00:00:00.0000000","CandidateCode":"String","HeldReason":"String","HeldUtc":"0001-01-01T00:00:00.0000000","CustomerName":"String","CustomerPhone":"String","Handoff":"String","GateCode":"String","Instructions":"String","DamageNote":"String","DeliveredToName":"String","PayMode":"String","Fare":0,"FinalPrice":0,"TipAmount":0,"CancelledBy":"String","CancelReason":"String","CancelFeeApplied":0,"MissedFeeApplied":0,"CaptureMode":"String","AuthorizedAmount":0,"CapturedAmount":0,"RefundedAmount":0,"ChargeError":"String","CreatedAt":"0001-01-01T00:00:00.0000000","ArrivedUtc":"0001-01-01T00:00:00.0000000","PickedUpUtc":"0001-01-01T00:00:00.0000000","IntakeUtc":"0001-01-01T00:00:00.0000000","ReadyUtc":"0001-01-01T00:00:00.0000000","OutForDeliveryUtc":"0001-01-01T00:00:00.0000000","DeliveredUtc":"0001-01-01T00:00:00.0000000","MissedUtc":"0001-01-01T00:00:00.0000000","CancelledUtc":"0001-01-01T00:00:00.0000000","IsClosed":false,"RebookOfId":0,"RecurrenceId":0,"PickupLoadId":0,"Rule":{"PingSecs":0,"MissedWaitMin":0,"MissedFee":0,"CancelFee":0,"MissedAutoRebook":false,"MissedRequireContact":false,"MissedRequirePhoto":false,"PayTiming":"String","FinalPriceAfterCount":false,"PayPlanName":"String","PerPickup":0,"PerStop":0,"PerMissed":0,"PerCancel":0,"AcceptedUtc":"0001-01-01T00:00:00.0000000","Proof":{"String":"String"}},"Items":[{"CourierItemID":0,"DispatchOdRequestID":0,"Seq":0,"TagCode":"String","Custody":"String","IsOpen":false,"IsMissing":false,"MissingReason":"String","IsManual":false,"ReTagFlag":false,"Scanned":false}],"Scans":[{"TagCode":"String","Stage":"String","Result":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Proof":[{"Stage":"String","StepKey":"String","Value":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Events":[{"Kind":"String","Party":"String","Body":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Photos":[{"PhotoId":0,"Kind":"String","FileName":"String","Url":"String","TakenUtc":"0001-01-01T00:00:00.0000000"}],"PayLines":[{"DispatchLoadID":0,"Kind":"String","Label":"String","Qty":0,"Rate":0,"Amount":0}]}],"Order":{"DispatchOdRequestID":0,"Code":"String","CourierProfileId":0,"ProfileName":"String","RouteShape":"String","UnitOne":"String","UnitMany":"String","CourierFacilityId":0,"FacilityName":"String","ServiceLevelCode":"String","LevelName":"String","Source":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Zone":"String","PickupContactName":"String","DropoffAddress":"String","DropoffUnit":"String","DropoffCity":"String","DropoffZip":"String","DropoffContactName":"String","Miles":0,"Units":0,"UnitsFound":0,"Stage":"String","CourierStep":"String","StepLabel":"String","DriverCode":"String","DriverName":"String","DriverContactId":0,"CourierRunId":0,"RunCode":"String","StopSequence":0,"QueueSequence":0,"IsAsap":false,"WindowStartUtc":"0001-01-01T00:00:00.0000000","WindowEndUtc":"0001-01-01T00:00:00.0000000","WindowText":"String","DueUtc":"0001-01-01T00:00:00.0000000","DueText":"String","PingAfterUtc":"0001-01-01T00:00:00.0000000","PingExpiresUtc":"0001-01-01T00:00:00.0000000","CandidateCode":"String","HeldReason":"String","HeldUtc":"0001-01-01T00:00:00.0000000","CustomerName":"String","CustomerPhone":"String","Handoff":"String","GateCode":"String","Instructions":"String","DamageNote":"String","DeliveredToName":"String","PayMode":"String","Fare":0,"FinalPrice":0,"TipAmount":0,"CancelledBy":"String","CancelReason":"String","CancelFeeApplied":0,"MissedFeeApplied":0,"CaptureMode":"String","AuthorizedAmount":0,"CapturedAmount":0,"RefundedAmount":0,"ChargeError":"String","CreatedAt":"0001-01-01T00:00:00.0000000","ArrivedUtc":"0001-01-01T00:00:00.0000000","PickedUpUtc":"0001-01-01T00:00:00.0000000","IntakeUtc":"0001-01-01T00:00:00.0000000","ReadyUtc":"0001-01-01T00:00:00.0000000","OutForDeliveryUtc":"0001-01-01T00:00:00.0000000","DeliveredUtc":"0001-01-01T00:00:00.0000000","MissedUtc":"0001-01-01T00:00:00.0000000","CancelledUtc":"0001-01-01T00:00:00.0000000","IsClosed":false,"RebookOfId":0,"RecurrenceId":0,"PickupLoadId":0,"Rule":{"PingSecs":0,"MissedWaitMin":0,"MissedFee":0,"CancelFee":0,"MissedAutoRebook":false,"MissedRequireContact":false,"MissedRequirePhoto":false,"PayTiming":"String","FinalPriceAfterCount":false,"PayPlanName":"String","PerPickup":0,"PerStop":0,"PerMissed":0,"PerCancel":0,"AcceptedUtc":"0001-01-01T00:00:00.0000000","Proof":{"String":"String"}},"Items":[{"CourierItemID":0,"DispatchOdRequestID":0,"Seq":0,"TagCode":"String","Custody":"String","IsOpen":false,"IsMissing":false,"MissingReason":"String","IsManual":false,"ReTagFlag":false,"Scanned":false}],"Scans":[{"TagCode":"String","Stage":"String","Result":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Proof":[{"Stage":"String","StepKey":"String","Value":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Events":[{"Kind":"String","Party":"String","Body":"String","AtUtc":"0001-01-01T00:00:00.0000000"}],"Photos":[{"PhotoId":0,"Kind":"String","FileName":"String","Url":"String","TakenUtc":"0001-01-01T00:00:00.0000000"}],"PayLines":[{"DispatchLoadID":0,"Kind":"String","Label":"String","Qty":0,"Rate":0,"Amount":0}]},"Message":"String","ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}}}