1Fetch Client API

<back to all web services

PicUpCreateShipmentRequest

The following routes are available for this service:
POST/picup/createshipment
Imports System
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports WebService.ClientServiceModel
Imports BusinessLogic.Entities

Namespace Global

    Namespace BusinessLogic.Entities

        Public Partial Class LinkedWaypoint
            Public Overridable Property FromWaypointNumber As Integer
            Public Overridable Property ToWaypointNumber As Integer
            Public Overridable Property FromLatitude As Double
            Public Overridable Property FromLongitude As Double
            Public Overridable Property ToLatitude As Double
            Public Overridable Property ToLongitude As Double
        End Class
    End Namespace

    Namespace WebService.ClientServiceModel

        Public Partial Class Address
            <DataMember(Name:="address_line_1")>
            Public Overridable Property AddressLine1 As String

            <DataMember(Name:="address_line_2")>
            Public Overridable Property AddressLine2 As String

            <DataMember(Name:="address_line_3")>
            Public Overridable Property AddressLine3 As String

            <DataMember(Name:="address_line_4")>
            Public Overridable Property AddressLine4 As String

            <DataMember(Name:="city")>
            Public Overridable Property City As String

            <DataMember(Name:="formatted_address")>
            Public Overridable Property FormattedAddress As String

            <DataMember(Name:="latitude")>
            Public Overridable Property Latitude As Double

            <DataMember(Name:="longitude")>
            Public Overridable Property Longitude As Double

            <DataMember(Name:="postal_code")>
            Public Overridable Property PostalCode As String

            <DataMember(Name:="suburb")>
            Public Overridable Property Suburb As String

            <DataMember(Name:="unit")>
            Public Overridable Property Unit As String

            <DataMember(Name:="building")>
            Public Overridable Property Building As String
        End Class

        Public Partial Class BucketDetails
            <DataMember(Name:="delivery_date")>
            Public Overridable Property DeliveryDate As DateTimeOffset
        End Class

        Public Partial Class Contact
            <DataMember(Name:="customer_name")>
            Public Overridable Property CustomerName As String

            <DataMember(Name:="customer_phone")>
            Public Overridable Property CustomerPhone As String

            <DataMember(Name:="email_address")>
            Public Overridable Property EmailAddress As String

            <DataMember(Name:="special_instructions")>
            Public Overridable Property SpecialInstructions As String
        End Class

        Public Partial Class CourierRequest
            Public Sub New()
                Shipments = New Shipment(){}
            End Sub

            <DataMember(Name:="bucket_details")>
            Public Overridable Property BucketDetails As BucketDetails

            <DataMember(Name:="shipments")>
            Public Overridable Property Shipments As Shipment()
        End Class

        Public Partial Class Parcel
            <DataMember(Name:="parcel_waybill")>
            Public Overridable Property ParcelWaybill As String

            <DataMember(Name:="parcel_reference")>
            Public Overridable Property ParcelReference As String

            <DataMember(Name:="tracking_number")>
            Public Overridable Property TrackingNumber As String

            <DataMember(Name:="length_mm")>
            Public Overridable Property LengthMm As Long

            <DataMember(Name:="width_mm")>
            Public Overridable Property WidthMm As Long

            <DataMember(Name:="height_mm")>
            Public Overridable Property HeightMm As Long

            <DataMember(Name:="weight_kg")>
            Public Overridable Property WeightKg As Long
        End Class

        Public Partial Class PicUpCreateShipmentRequest
            Implements IHasApiKey
            Implements ILogRequest
            Public Overridable Property ApiKey As String
            <DataMember(Name:="courier_request")>
            Public Overridable Property CourierRequest As CourierRequest
        End Class

        Public Partial Class PicUpCreateShipmentResponse
            Public Sub New()
                Waypoints = New List(Of WaypointQuoteInformation)
                WaypointValidations = New List(Of WaypointValidationInformation)
            End Sub

            <DataMember(Name:="is_success")>
            Public Overridable Property IsSuccess As Boolean

            <DataMember(Name:="courier_reference")>
            Public Overridable Property CourierReference As String

            <DataMember(Name:="error")>
            Public Overridable Property [Error] As String

            '''<Summary>
            '''List of order information for pricing etc between each waypoint
            '''</Summary>
            <ApiMember(Description:="List of order information for pricing etc between each waypoint")>
            Public Overridable Property Waypoints As List(Of WaypointQuoteInformation)

            '''<Summary>
            '''List with validation information for each waypoint
            '''</Summary>
            <ApiMember(Description:="List with validation information for each waypoint")>
            Public Overridable Property WaypointValidations As List(Of WaypointValidationInformation)

            '''<Summary>
            '''The 1Fetch Waybill reference for the shipment
            '''</Summary>
            <ApiMember(Description:="The 1Fetch Waybill reference for the shipment")>
            Public Overridable Property Waybill As String
        End Class

        Public Partial Class Receiver
            Public Sub New()
                Parcels = New Parcel(){}
            End Sub

            <DataMember(Name:="parcels")>
            Public Overridable Property Parcels As Parcel()

            <DataMember(Name:="address")>
            Public Overridable Property Address As Address

            <DataMember(Name:="contact")>
            Public Overridable Property Contact As Contact
        End Class

        Public Partial Class Sender
            <DataMember(Name:="address")>
            Public Overridable Property Address As Address

            <DataMember(Name:="contact")>
            Public Overridable Property Contact As Contact
        End Class

        Public Partial Class Shipment
            <DataMember(Name:="waybill_number")>
            Public Overridable Property WaybillNumber As String

            <DataMember(Name:="business_reference")>
            Public Overridable Property BusinessReference As String

            <DataMember(Name:="service_type")>
            Public Overridable Property ServiceType As String

            <DataMember(Name:="sender")>
            Public Overridable Property Sender As Sender

            <DataMember(Name:="receiver")>
            Public Overridable Property Receiver As Receiver
        End Class

        Public Partial Class WaypointQuoteInformation
            Inherits LinkedWaypoint
            Public Sub New()
                ErrorDetails = New List(Of String)
            End Sub

            '''<Summary>
            '''Distance between waypoints as a number
            '''</Summary>
            <ApiMember(Description:="Distance between waypoints as a number")>
            Public Overridable Property Distance As Double

            '''<Summary>
            '''String formatted distance
            '''</Summary>
            <ApiMember(Description:="String formatted distance")>
            Public Overridable Property DistanceValue As String

            Public Overridable Property WaypointValid As Boolean
            Public Overridable Property Message As String
            Public Overridable Property ErrorDetails As List(Of String)
            '''<Summary>
            '''Caculated price between waypoints excluding vat
            '''</Summary>
            <ApiMember(Description:="Caculated price between waypoints excluding vat")>
            Public Overridable Property Price As Decimal

            '''<Summary>
            '''Price excluding vat formatted as a string rand value
            '''</Summary>
            <ApiMember(Description:="Price excluding vat formatted as a string rand value")>
            Public Overridable Property PriceValue As String

            '''<Summary>
            '''The price between waypoints including vat
            '''</Summary>
            <ApiMember(Description:="The price between waypoints including vat")>
            Public Overridable Property PriceWithVAT As Decimal

            '''<Summary>
            '''The price including vat formatted as a rand value string
            '''</Summary>
            <ApiMember(Description:="The price including vat formatted as a rand value string")>
            Public Overridable Property PriceValueWithVAT As String
        End Class

        Public Partial Class WaypointValidationInformation
            Public Sub New()
                ErrorMessages = New List(Of String)
            End Sub

            Public Overridable Property WaypointNumber As Integer
            Public Overridable Property IsValid As Boolean
            Public Overridable Property ErrorMessages As List(Of String)
        End Class
    End Namespace
End Namespace

VB.NET PicUpCreateShipmentRequest 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 /picup/createshipment HTTP/1.1 
Host: api.1fetch.co.za 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"ApiKey":"String","courier_request":{"bucket_details":{"delivery_date":"0001-01-01T00:00:00.0000000+00:00"},"shipments":[{"waybill_number":"String","business_reference":"String","service_type":"String","sender":{"address":{"address_line_1":"String","address_line_2":"String","address_line_3":"String","address_line_4":"String","city":"String","formatted_address":"String","latitude":0,"longitude":0,"postal_code":"String","suburb":"String","unit":"String","building":"String"},"contact":{"customer_name":"String","customer_phone":"String","email_address":"String","special_instructions":"String"}},"receiver":{"parcels":[{"parcel_waybill":"String","parcel_reference":"String","tracking_number":"String","length_mm":0,"width_mm":0,"height_mm":0,"weight_kg":0}],"address":{"address_line_1":"String","address_line_2":"String","address_line_3":"String","address_line_4":"String","city":"String","formatted_address":"String","latitude":0,"longitude":0,"postal_code":"String","suburb":"String","unit":"String","building":"String"},"contact":{"customer_name":"String","customer_phone":"String","email_address":"String","special_instructions":"String"}}}]}}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

{"is_success":false,"courier_reference":"String","error":"String","Waypoints":[{}],"WaypointValidations":[{}],"Waybill":"String"}