| POST | /picup/createshipment |
|---|
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
open class PicUpCreateShipmentRequest : IHasApiKey, ILogRequest
{
var ApiKey:String? = null
@DataMember(Name="courier_request")
@SerializedName("courier_request")
var CourierRequest:CourierRequest? = null
}
open class CourierRequest
{
@DataMember(Name="bucket_details")
@SerializedName("bucket_details")
var BucketDetails:BucketDetails? = null
@DataMember(Name="shipments")
@SerializedName("shipments")
var Shipments:ArrayList<Shipment>? = null
}
open class BucketDetails
{
@DataMember(Name="delivery_date")
@SerializedName("delivery_date")
var DeliveryDate:Date? = null
}
open class Shipment
{
@DataMember(Name="waybill_number")
@SerializedName("waybill_number")
var WaybillNumber:String? = null
@DataMember(Name="business_reference")
@SerializedName("business_reference")
var BusinessReference:String? = null
@DataMember(Name="service_type")
@SerializedName("service_type")
var ServiceType:String? = null
@DataMember(Name="sender")
@SerializedName("sender")
var Sender:Sender? = null
@DataMember(Name="receiver")
@SerializedName("receiver")
var Receiver:Receiver? = null
}
open class Sender
{
@DataMember(Name="address")
@SerializedName("address")
var Address:Address? = null
@DataMember(Name="contact")
@SerializedName("contact")
var Contact:Contact? = null
}
open class Address
{
@DataMember(Name="address_line_1")
@SerializedName("address_line_1")
var AddressLine1:String? = null
@DataMember(Name="address_line_2")
@SerializedName("address_line_2")
var AddressLine2:String? = null
@DataMember(Name="address_line_3")
@SerializedName("address_line_3")
var AddressLine3:String? = null
@DataMember(Name="address_line_4")
@SerializedName("address_line_4")
var AddressLine4:String? = null
@DataMember(Name="city")
@SerializedName("city")
var City:String? = null
@DataMember(Name="formatted_address")
@SerializedName("formatted_address")
var FormattedAddress:String? = null
@DataMember(Name="latitude")
@SerializedName("latitude")
var Latitude:Double? = null
@DataMember(Name="longitude")
@SerializedName("longitude")
var Longitude:Double? = null
@DataMember(Name="postal_code")
@SerializedName("postal_code")
var PostalCode:String? = null
@DataMember(Name="suburb")
@SerializedName("suburb")
var Suburb:String? = null
@DataMember(Name="unit")
@SerializedName("unit")
var Unit:String? = null
@DataMember(Name="building")
@SerializedName("building")
var Building:String? = null
}
open class Contact
{
@DataMember(Name="customer_name")
@SerializedName("customer_name")
var CustomerName:String? = null
@DataMember(Name="customer_phone")
@SerializedName("customer_phone")
var CustomerPhone:String? = null
@DataMember(Name="email_address")
@SerializedName("email_address")
var EmailAddress:String? = null
@DataMember(Name="special_instructions")
@SerializedName("special_instructions")
var SpecialInstructions:String? = null
}
open class Receiver
{
@DataMember(Name="parcels")
@SerializedName("parcels")
var Parcels:ArrayList<Parcel>? = null
@DataMember(Name="address")
@SerializedName("address")
var Address:Address? = null
@DataMember(Name="contact")
@SerializedName("contact")
var Contact:Contact? = null
}
open class Parcel
{
@DataMember(Name="parcel_waybill")
@SerializedName("parcel_waybill")
var ParcelWaybill:String? = null
@DataMember(Name="parcel_reference")
@SerializedName("parcel_reference")
var ParcelReference:String? = null
@DataMember(Name="tracking_number")
@SerializedName("tracking_number")
var TrackingNumber:String? = null
@DataMember(Name="length_mm")
@SerializedName("length_mm")
var LengthMm:Long? = null
@DataMember(Name="width_mm")
@SerializedName("width_mm")
var WidthMm:Long? = null
@DataMember(Name="height_mm")
@SerializedName("height_mm")
var HeightMm:Long? = null
@DataMember(Name="weight_kg")
@SerializedName("weight_kg")
var WeightKg:Long? = null
}
open class PicUpCreateShipmentResponse
{
@DataMember(Name="is_success")
@SerializedName("is_success")
var IsSuccess:Boolean? = null
@DataMember(Name="courier_reference")
@SerializedName("courier_reference")
var CourierReference:String? = null
@DataMember(Name="error")
@SerializedName("error")
var Error:String? = null
/**
* List of order information for pricing etc between each waypoint
*/
@ApiMember(Description="List of order information for pricing etc between each waypoint")
var Waypoints:ArrayList<WaypointQuoteInformation> = ArrayList<WaypointQuoteInformation>()
/**
* List with validation information for each waypoint
*/
@ApiMember(Description="List with validation information for each waypoint")
var WaypointValidations:ArrayList<WaypointValidationInformation> = ArrayList<WaypointValidationInformation>()
/**
* The 1Fetch Waybill reference for the shipment
*/
@ApiMember(Description="The 1Fetch Waybill reference for the shipment")
var Waybill:String? = null
}
open class WaypointQuoteInformation : LinkedWaypoint()
{
/**
* Distance between waypoints as a number
*/
@ApiMember(Description="Distance between waypoints as a number")
var Distance:Double? = null
/**
* String formatted distance
*/
@ApiMember(Description="String formatted distance")
var DistanceValue:String? = null
var WaypointValid:Boolean? = null
var Message:String? = null
var ErrorDetails:ArrayList<String> = ArrayList<String>()
/**
* Caculated price between waypoints excluding vat
*/
@ApiMember(Description="Caculated price between waypoints excluding vat")
var Price:BigDecimal? = null
/**
* Price excluding vat formatted as a string rand value
*/
@ApiMember(Description="Price excluding vat formatted as a string rand value")
var PriceValue:String? = null
/**
* The price between waypoints including vat
*/
@ApiMember(Description="The price between waypoints including vat")
var PriceWithVAT:BigDecimal? = null
/**
* The price including vat formatted as a rand value string
*/
@ApiMember(Description="The price including vat formatted as a rand value string")
var PriceValueWithVAT:String? = null
}
open class LinkedWaypoint
{
var FromWaypointNumber:Int? = null
var ToWaypointNumber:Int? = null
var FromLatitude:Double? = null
var FromLongitude:Double? = null
var ToLatitude:Double? = null
var ToLongitude:Double? = null
}
open class WaypointValidationInformation
{
var WaypointNumber:Int? = null
var IsValid:Boolean? = null
var ErrorMessages:ArrayList<String> = ArrayList<String>()
}
Kotlin 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
}