| 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 .jsv suffix or ?format=jsv
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: 1fetch.api.client.prod.86degrees.com
Accept: text/jsv
Content-Type: text/jsv
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/jsv
Content-Length: length
{
is_success: False,
courier_reference: String,
error: String,
Waypoints:
[
{
}
],
WaypointValidations:
[
{
}
],
Waybill: String
}