1Fetch Client API

<back to all web services

PicUpCreateShipmentRequest

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

namespace BusinessLogic.Entities
{
    public partial class LinkedWaypoint
    {
        public virtual int FromWaypointNumber { get; set; }
        public virtual int ToWaypointNumber { get; set; }
        public virtual double FromLatitude { get; set; }
        public virtual double FromLongitude { get; set; }
        public virtual double ToLatitude { get; set; }
        public virtual double ToLongitude { get; set; }
    }

}

namespace WebService.ClientServiceModel
{
    public partial class Address
    {
        [DataMember(Name="address_line_1")]
        public virtual string AddressLine1 { get; set; }

        [DataMember(Name="address_line_2")]
        public virtual string AddressLine2 { get; set; }

        [DataMember(Name="address_line_3")]
        public virtual string AddressLine3 { get; set; }

        [DataMember(Name="address_line_4")]
        public virtual string AddressLine4 { get; set; }

        [DataMember(Name="city")]
        public virtual string City { get; set; }

        [DataMember(Name="formatted_address")]
        public virtual string FormattedAddress { get; set; }

        [DataMember(Name="latitude")]
        public virtual double Latitude { get; set; }

        [DataMember(Name="longitude")]
        public virtual double Longitude { get; set; }

        [DataMember(Name="postal_code")]
        public virtual string PostalCode { get; set; }

        [DataMember(Name="suburb")]
        public virtual string Suburb { get; set; }

        [DataMember(Name="unit")]
        public virtual string Unit { get; set; }

        [DataMember(Name="building")]
        public virtual string Building { get; set; }
    }

    public partial class BucketDetails
    {
        [DataMember(Name="delivery_date")]
        public virtual DateTimeOffset DeliveryDate { get; set; }
    }

    public partial class Contact
    {
        [DataMember(Name="customer_name")]
        public virtual string CustomerName { get; set; }

        [DataMember(Name="customer_phone")]
        public virtual string CustomerPhone { get; set; }

        [DataMember(Name="email_address")]
        public virtual string EmailAddress { get; set; }

        [DataMember(Name="special_instructions")]
        public virtual string SpecialInstructions { get; set; }
    }

    public partial class CourierRequest
    {
        public CourierRequest()
        {
            Shipments = new Shipment[]{};
        }

        [DataMember(Name="bucket_details")]
        public virtual BucketDetails BucketDetails { get; set; }

        [DataMember(Name="shipments")]
        public virtual Shipment[] Shipments { get; set; }
    }

    public partial class Parcel
    {
        [DataMember(Name="parcel_waybill")]
        public virtual string ParcelWaybill { get; set; }

        [DataMember(Name="parcel_reference")]
        public virtual string ParcelReference { get; set; }

        [DataMember(Name="tracking_number")]
        public virtual string TrackingNumber { get; set; }

        [DataMember(Name="length_mm")]
        public virtual long LengthMm { get; set; }

        [DataMember(Name="width_mm")]
        public virtual long WidthMm { get; set; }

        [DataMember(Name="height_mm")]
        public virtual long HeightMm { get; set; }

        [DataMember(Name="weight_kg")]
        public virtual long WeightKg { get; set; }
    }

    public partial class PicUpCreateShipmentRequest
        : IHasApiKey, ILogRequest
    {
        public virtual string ApiKey { get; set; }
        [DataMember(Name="courier_request")]
        public virtual CourierRequest CourierRequest { get; set; }
    }

    public partial class PicUpCreateShipmentResponse
    {
        public PicUpCreateShipmentResponse()
        {
            Waypoints = new List<WaypointQuoteInformation>{};
            WaypointValidations = new List<WaypointValidationInformation>{};
        }

        [DataMember(Name="is_success")]
        public virtual bool IsSuccess { get; set; }

        [DataMember(Name="courier_reference")]
        public virtual string CourierReference { get; set; }

        [DataMember(Name="error")]
        public virtual string Error { get; set; }

        ///<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 virtual List<WaypointQuoteInformation> Waypoints { get; set; }

        ///<summary>
        ///List with validation information for each waypoint
        ///</summary>
        [ApiMember(Description="List with validation information for each waypoint")]
        public virtual List<WaypointValidationInformation> WaypointValidations { get; set; }

        ///<summary>
        ///The 1Fetch Waybill reference for the shipment
        ///</summary>
        [ApiMember(Description="The 1Fetch Waybill reference for the shipment")]
        public virtual string Waybill { get; set; }
    }

    public partial class Receiver
    {
        public Receiver()
        {
            Parcels = new Parcel[]{};
        }

        [DataMember(Name="parcels")]
        public virtual Parcel[] Parcels { get; set; }

        [DataMember(Name="address")]
        public virtual Address Address { get; set; }

        [DataMember(Name="contact")]
        public virtual Contact Contact { get; set; }
    }

    public partial class Sender
    {
        [DataMember(Name="address")]
        public virtual Address Address { get; set; }

        [DataMember(Name="contact")]
        public virtual Contact Contact { get; set; }
    }

    public partial class Shipment
    {
        [DataMember(Name="waybill_number")]
        public virtual string WaybillNumber { get; set; }

        [DataMember(Name="business_reference")]
        public virtual string BusinessReference { get; set; }

        [DataMember(Name="service_type")]
        public virtual string ServiceType { get; set; }

        [DataMember(Name="sender")]
        public virtual Sender Sender { get; set; }

        [DataMember(Name="receiver")]
        public virtual Receiver Receiver { get; set; }
    }

    public partial class WaypointQuoteInformation
        : LinkedWaypoint
    {
        public WaypointQuoteInformation()
        {
            ErrorDetails = new List<string>{};
        }

        ///<summary>
        ///Distance between waypoints as a number
        ///</summary>
        [ApiMember(Description="Distance between waypoints as a number")]
        public virtual double Distance { get; set; }

        ///<summary>
        ///String formatted distance
        ///</summary>
        [ApiMember(Description="String formatted distance")]
        public virtual string DistanceValue { get; set; }

        public virtual bool WaypointValid { get; set; }
        public virtual string Message { get; set; }
        public virtual List<string> ErrorDetails { get; set; }
        ///<summary>
        ///Caculated price between waypoints excluding vat
        ///</summary>
        [ApiMember(Description="Caculated price between waypoints excluding vat")]
        public virtual decimal Price { get; set; }

        ///<summary>
        ///Price excluding vat formatted as a string rand value
        ///</summary>
        [ApiMember(Description="Price excluding vat formatted as a string rand value")]
        public virtual string PriceValue { get; set; }

        ///<summary>
        ///The price between waypoints including vat
        ///</summary>
        [ApiMember(Description="The price between waypoints including vat")]
        public virtual decimal PriceWithVAT { get; set; }

        ///<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 virtual string PriceValueWithVAT { get; set; }
    }

    public partial class WaypointValidationInformation
    {
        public WaypointValidationInformation()
        {
            ErrorMessages = new List<string>{};
        }

        public virtual int WaypointNumber { get; set; }
        public virtual bool IsValid { get; set; }
        public virtual List<string> ErrorMessages { get; set; }
    }

}

C# PicUpCreateShipmentRequest DTOs

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

HTTP + 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
}