Create shipments
Use this endpoint to book shipments with Jet Delivery. A valid API key is required.
Requests are submitted as JSON and may include single-stop, multi-stop routes, and optional piece details.
Authentication: include your API key in data.token.
Endpoint
POST https://www.jetdelivery.com/api/v1/order/json/
Recommended: send raw JSON with Content-Type: application/json.
For backwards compatibility, the endpoint also accepts a data form field containing the JSON string.
Quick example (minimal)
curl -X POST "https://www.jetdelivery.com/api/v1/order/json/" \
-H "Content-Type: application/json" \
-d '{
"data": {
"token": "YOUR_API_KEY",
"jsonstrn": "ABC123",
"shipments": [
{
"Contact": "John Smith",
"Phone": "9095551212",
"PickupName": "Anaya Tile",
"PickupAddress": "993 W 9th St",
"PickupCity": "Upland",
"PickupState": "CA",
"PickupZip": "91786",
"DeliverName": "Brian'\''s House",
"DeliverAddress": "126 Prospect St",
"DeliverCity": "Newport Beach",
"DeliverState": "CA",
"DeliverZip": "92663",
"Pieces": "1",
"Weight": "1",
"ServiceType": "1",
"VehicleType": "TRK",
"Pickupdate": "today",
"Deliverdate": "today"
}
]
}
}'
Tip: Start with a simple single-stop shipment first. Once that works, add scheduling windows, multi-stop routing, and piece details.
How multi-stop works
A multi-stop shipment is defined by the multistop_route array. Each item represents a stop in order.
The first stop is treated as the pickup, the last stop is the final delivery, and any stops in between are intermediate stops.
- Stop order matters: stops are processed in
stop_id order (1 to 2 to 3, etc.).
- When to use it: include
multistop_route when you have more than one delivery or intermediate stop.
- Single-stop vs multi-stop: if you only have pickup + delivery (2 stops), you can use the standard pickup/deliver fields alone.
- Still include pickup/deliver fields: we recommend setting
Pickup* and Deliver* to match the first and last stops for clarity and compatibility.
Note: Multi-stop routing is most useful with 3+ stops. Two stops is a normal pickup + delivery.
Multi-stop route + piece details example
Use multistop_route to define pickup + one or more intermediate stops + final delivery.
Add piece_details when you want to include per-piece dimensions and identifiers.
{
"data": {
"token": "YOUR_API_KEY",
"jsonstrn": "",
"shipments": [
{
"Contact": "Jason Barbata",
"Phone": "9094500892",
"Email": "jason.barbata@gmail.com",
"BillingReference": "LEAF IGNORE",
"SignatureReq": "N",
"ServiceType": "1",
"VehicleType": "TRK",
"LiftgateReq": "N",
"multistop_route": [
{
"stop_id": 1,
"name": "Anaya Tile",
"address": "993 W 9th St",
"city": "Upland",
"state": "CA",
"zip": "91786",
"contact_name": "Inpatient Pharmacy (David Chu)",
"phone_no": "9099204001",
"stop_note": "TEST",
"update_address_book": "N",
"location_idx_key": "287235"
},
{
"stop_id": 2,
"name": "Jet Delivery, Inc (Hayward)",
"address": "28312 Industrial Blvd",
"city": "Hayward",
"state": "CA",
"zip": "94545",
"contact_name": "Ed Evrmeulen",
"phone_no": "8007168803",
"stop_note": "TEST",
"update_address_book": "N",
"location_idx_key": "10450"
},
{
"stop_id": 3,
"name": "Brian's House",
"address": "126 Prospect St",
"city": "Newport Beach",
"state": "CA",
"zip": "92663",
"contact_name": "Brent Barbata",
"phone_no": "9493559254",
"stop_note": "TEST",
"update_address_book": "N",
"location_idx_key": "163924"
}
],
"PickupName": "Anaya Tile",
"PickupAddress": "993 W 9Th St",
"PickupCity": "Upland",
"PickupState": "CA",
"PickupZip": "91786",
"PickupSpecinst": "TEST",
"DeliverName": "Brian's House",
"DeliverAddress": "126 Prospect St",
"DeliverCity": "Newport Beach",
"DeliverState": "CA",
"DeliverZip": "92663",
"DeliverSpecinst": "TEST",
"Pieces": "1",
"Weight": "50",
"Pickupdate": "2024-09-02",
"Deliverdate": "2024-09-02",
"piece_details": [
{
"piece_no": "1",
"piece_weight": "10",
"length": "5",
"width": "6",
"height": "7",
"pc": "PC1",
"id": "ID1",
"description": "DESC 1"
},
{
"piece_no": "2",
"piece_weight": "30",
"length": "12",
"width": "10",
"height": "8",
"pc": "PC2",
"id": "ID2",
"description": "DESC 2"
}
]
}
]
}
}
Notes:
- Multi-stop routing: When you provide 3+ stops, Jet will treat the route as a multi-stop shipment and create legs between each stop.
- Piece details: Each object in
piece_details represents one piece row. Use piece_no as an identifier/label (not a quantity).
- Totals:
Pieces and Weight should still reflect the overall shipment totals used for rating and validation.
Required fields
data.token (required) — your API key
data.shipments (required) — array of one or more shipment objects
Within each shipment, the typical minimum required fields are:
Contact, Phone, pickup address fields, delivery address fields, Pieces, Weight,
ServiceType, VehicleType, Pickupdate, and Deliverdate.
Request schema (practical)
Click to expand each section.
data.token
string
Required
Your API key (linked to a Jet Delivery account). Required to create shipments.
data.jsonstrn
string
Optional
Optional sender-provided correlation ID (useful for matching your request to our response).
data.shipments
array
Required
Array of shipment objects. Each object represents one booked shipment request (or one leg when using multi-stop routes).
shipment.Contact
string
Required
Contact name for questions/issues during the shipment. Note: currently truncated server-side (max length enforcement).
shipment.Phone
string
Required
Contact phone number. We sanitize to digits and validate typical 10-digit formatting.
shipment.Pickup*
object fields
Required
Pickup location fields typically required for single-stop bookings:
PickupName, PickupAddress, PickupCity, PickupState, PickupZip
shipment.Deliver*
object fields
Required
Delivery location fields typically required for single-stop bookings:
DeliverName, DeliverAddress, DeliverCity, DeliverState, DeliverZip
shipment.Pieces / shipment.Weight
string/number
Required
Total pieces and total weight for the shipment. We sanitize these values and validate required presence.
shipment.ServiceType / shipment.VehicleType
string
Required
Service type and vehicle type. Values must map to valid configured service/vehicle options.
shipment.Pickupdate / shipment.Deliverdate
date string
Required
Requested pickup and delivery dates. Supported friendly values include today and now.
For explicit dates, provide a parsable date string (your system’s standard format is recommended).
shipment.multistop_route
array
Optional
Optional multi-stop routing array. If provided with 3+ stops, the route is built from these stops.
Each stop should include stop_id, name, address, zip, and optional contact details.
shipment.piece_details
array
Optional
Optional list of piece line-items. Each object represents a single piece row (dimensions, item ID, etc.).
Useful when you want more accurate vehicle/handling decisions or downstream label details.
Note: Some fields are validated and/or truncated server-side (for example, max lengths on names, phones, and instructions).
If you send extra fields we don’t use, they may be ignored safely.
Response
{
"data": {
"jsonstrn": "ABC123",
"shipments_with_errors": 0,
"shipments": [
{
"order": 1,
"result": "success",
"track_no": "D300038",
"billing_reference": "ABC123",
"service_type": "1",
"vehicle_type": "TRK",
"estimated_delivery": "2026-02-28T16:30:00",
"guaranteed_delivery": "2026-02-28T17:00:00",
"destination_tz": "PST",
"estimated_charge": 174.61,
"errors": []
}
]
},
"error": null
}
If validation fails, the response may include error at the top level (or per-shipment errors when multiple shipments are submitted).