Trendsic Platform Service

<back to all web services

CourierBookOrderRequest

The following routes are available for this service:
POST,OPTIONS/v1/book/{Slug}/orders
POST,OPTIONS/v1/book/{Slug}/orders/confirm
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 CourierBookOrderResponse:
    done: bool = False
    needs_action: bool = False
    client_secret: Optional[str] = None
    setup_intent_id: Optional[str] = None
    code: Optional[str] = None
    track_url: Optional[str] = None
    ics_url: Optional[str] = None
    window_text: Optional[str] = None
    promise: Optional[str] = None
    total: Decimal = decimal.Decimal(0)
    pay_timing: Optional[str] = None
    card_last4: Optional[str] = None
    repeats: Optional[str] = None
    link_sent_by: Optional[str] = None
    reopen_step: Optional[str] = None
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CourierBookOrderRequest:
    slug: Optional[str] = None
    profile: Optional[str] = None
    turnstile_token: Optional[str] = None
    level: Optional[str] = None
    window_id: Optional[str] = None
    recur: Optional[str] = None
    address: Optional[str] = None
    unit: Optional[str] = None
    city: Optional[str] = None
    zip: Optional[str] = None
    lat: Optional[Decimal] = None
    lng: Optional[Decimal] = None
    pickup_name: Optional[str] = None
    drop_address: Optional[str] = None
    drop_unit: Optional[str] = None
    drop_city: Optional[str] = None
    drop_zip: Optional[str] = None
    drop_lat: Optional[Decimal] = None
    drop_lng: Optional[Decimal] = None
    recipient_name: Optional[str] = None
    units: int = 0
    handoff: Optional[str] = None
    gate_code: Optional[str] = None
    note: Optional[str] = None
    name: Optional[str] = None
    phone: Optional[str] = None
    email: Optional[str] = None
    sms_consent: bool = False
    terms: bool = False
    payment_method_id: Optional[str] = None
    setup_intent_id: Optional[str] = None
    quoted_total: Optional[Decimal] = None
    lang: Optional[str] = None

Python CourierBookOrderRequest DTOs

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

HTTP + CSV

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

POST /v1/book/{Slug}/orders HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"Slug":"String","Profile":"String","TurnstileToken":"String","Level":"String","WindowId":"String","Recur":"String","Address":"String","Unit":"String","City":"String","Zip":"String","Lat":0,"Lng":0,"PickupName":"String","DropAddress":"String","DropUnit":"String","DropCity":"String","DropZip":"String","DropLat":0,"DropLng":0,"RecipientName":"String","Units":0,"Handoff":"String","GateCode":"String","Note":"String","Name":"String","Phone":"String","Email":"String","SmsConsent":false,"Terms":false,"PaymentMethodId":"String","SetupIntentId":"String","QuotedTotal":0,"Lang":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"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"}}}