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 .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: 1fetch.api.client.prod.86degrees.com 
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"}