1Fetch Client API

<back to all web services

PicUpCreateShipmentRequest

The following routes are available for this service:
POST/picup/createshipment

export class LinkedWaypoint
{
    public FromWaypointNumber: number;
    public ToWaypointNumber: number;
    public FromLatitude: number;
    public FromLongitude: number;
    public ToLatitude: number;
    public ToLongitude: number;

    public constructor(init?: Partial<LinkedWaypoint>) { (Object as any).assign(this, init); }
}

export class WaypointQuoteInformation extends LinkedWaypoint
{
    /** @description Distance between waypoints as a number */
    // @ApiMember(Description="Distance between waypoints as a number")
    public Distance: number;

    /** @description String formatted distance */
    // @ApiMember(Description="String formatted distance")
    public DistanceValue: string;

    public WaypointValid: boolean;
    public Message: string;
    public ErrorDetails: string[];
    /** @description Caculated price between waypoints excluding vat */
    // @ApiMember(Description="Caculated price between waypoints excluding vat")
    public Price: number;

    /** @description Price excluding vat formatted as a string rand value */
    // @ApiMember(Description="Price excluding vat formatted as a string rand value")
    public PriceValue: string;

    /** @description The price between waypoints including vat */
    // @ApiMember(Description="The price between waypoints including vat")
    public PriceWithVAT: number;

    /** @description The price including vat formatted as a rand value string */
    // @ApiMember(Description="The price including vat formatted as a rand value string")
    public PriceValueWithVAT: string;

    public constructor(init?: Partial<WaypointQuoteInformation>) { super(init); (Object as any).assign(this, init); }
}

export class WaypointValidationInformation
{
    public WaypointNumber: number;
    public IsValid: boolean;
    public ErrorMessages: string[];

    public constructor(init?: Partial<WaypointValidationInformation>) { (Object as any).assign(this, init); }
}

export class PicUpCreateShipmentResponse
{
    // @DataMember(Name="is_success")
    public is_success: boolean;

    // @DataMember(Name="courier_reference")
    public courier_reference: string;

    // @DataMember(Name="error")
    public error: string;

    /** @description List of order information for pricing etc between each waypoint */
    // @ApiMember(Description="List of order information for pricing etc between each waypoint")
    public Waypoints: WaypointQuoteInformation[];

    /** @description List with validation information for each waypoint */
    // @ApiMember(Description="List with validation information for each waypoint")
    public WaypointValidations: WaypointValidationInformation[];

    /** @description The 1Fetch Waybill reference for the shipment */
    // @ApiMember(Description="The 1Fetch Waybill reference for the shipment")
    public Waybill: string;

    public constructor(init?: Partial<PicUpCreateShipmentResponse>) { (Object as any).assign(this, init); }
}

export class BucketDetails
{
    // @DataMember(Name="delivery_date")
    public delivery_date: string;

    public constructor(init?: Partial<BucketDetails>) { (Object as any).assign(this, init); }
}

export class CourierRequest
{
    // @DataMember(Name="bucket_details")
    public bucket_details: BucketDetails;

    // @DataMember(Name="shipments")
    public shipments: Shipment[];

    public constructor(init?: Partial<CourierRequest>) { (Object as any).assign(this, init); }
}

export class PicUpCreateShipmentRequest implements IHasApiKey, ILogRequest
{
    public ApiKey: string;
    // @DataMember(Name="courier_request")
    public courier_request: CourierRequest;

    public constructor(init?: Partial<PicUpCreateShipmentRequest>) { (Object as any).assign(this, init); }
}

export class Address
{
    // @DataMember(Name="address_line_1")
    public address_line_1: string;

    // @DataMember(Name="address_line_2")
    public address_line_2: string;

    // @DataMember(Name="address_line_3")
    public address_line_3: string;

    // @DataMember(Name="address_line_4")
    public address_line_4: string;

    // @DataMember(Name="city")
    public city: string;

    // @DataMember(Name="formatted_address")
    public formatted_address: string;

    // @DataMember(Name="latitude")
    public latitude: number;

    // @DataMember(Name="longitude")
    public longitude: number;

    // @DataMember(Name="postal_code")
    public postal_code: string;

    // @DataMember(Name="suburb")
    public suburb: string;

    // @DataMember(Name="unit")
    public unit: string;

    // @DataMember(Name="building")
    public building: string;

    public constructor(init?: Partial<Address>) { (Object as any).assign(this, init); }
}

export class Contact
{
    // @DataMember(Name="customer_name")
    public customer_name: string;

    // @DataMember(Name="customer_phone")
    public customer_phone: string;

    // @DataMember(Name="email_address")
    public email_address: string;

    // @DataMember(Name="special_instructions")
    public special_instructions: string;

    public constructor(init?: Partial<Contact>) { (Object as any).assign(this, init); }
}

export class Sender
{
    // @DataMember(Name="address")
    public address: Address;

    // @DataMember(Name="contact")
    public contact: Contact;

    public constructor(init?: Partial<Sender>) { (Object as any).assign(this, init); }
}

export class Receiver
{
    // @DataMember(Name="parcels")
    public parcels: Parcel[];

    // @DataMember(Name="address")
    public address: Address;

    // @DataMember(Name="contact")
    public contact: Contact;

    public constructor(init?: Partial<Receiver>) { (Object as any).assign(this, init); }
}

export class Shipment
{
    // @DataMember(Name="waybill_number")
    public waybill_number: string;

    // @DataMember(Name="business_reference")
    public business_reference: string;

    // @DataMember(Name="service_type")
    public service_type: string;

    // @DataMember(Name="sender")
    public sender: Sender;

    // @DataMember(Name="receiver")
    public receiver: Receiver;

    public constructor(init?: Partial<Shipment>) { (Object as any).assign(this, init); }
}

export class Parcel
{
    // @DataMember(Name="parcel_waybill")
    public parcel_waybill: string;

    // @DataMember(Name="parcel_reference")
    public parcel_reference: string;

    // @DataMember(Name="tracking_number")
    public tracking_number: string;

    // @DataMember(Name="length_mm")
    public length_mm: number;

    // @DataMember(Name="width_mm")
    public width_mm: number;

    // @DataMember(Name="height_mm")
    public height_mm: number;

    // @DataMember(Name="weight_kg")
    public weight_kg: number;

    public constructor(init?: Partial<Parcel>) { (Object as any).assign(this, init); }
}

TypeScript 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
}