Core ShipVia API Endpoints
These are the core shipment requests teams rely on to sync, print, write back, and review shipment status.
Sync Shipments
Sync shipment details in bulk so ShipVia can easily pull your shipment details and find the best carrier and print labels.
- POST
/api/v1/shipments/syncwith your bearer session token. - Send addresses, package data, and custom attributes exactly as configured in ShipVia Web.
- Receive a normalized payload that echoes ShipVia shipment identifiers and processing state.
Record External Print
Report that a label was printed in a third-party system so ShipVia records label details and marks the shipment PRNT.
- POST
/api/v1/shipments/printwithconnectIdand shipment tracking references. - Include
carrier,totalCost, andtypeas metadata from the external label print. - Confirm in the response that ShipVia recorded the update and set status to
PRNT.
Writeback Shipment
Push shipment IDs back to ShipVia after labels are printed so your ERP can capture finalized shipment details.
- POST
/api/v1/shipments/writebackwith anobjectIdsarray. - Provide one or more non-empty object IDs tied to printed shipments.
- Use the response to confirm ShipVia accepted the writeback batch.
Shipment Inquiry
Review shipment history by status and date to understand volume, exceptions, and invoice timing.
- POST
/api/v1/shipments/inquirywithstartDate,endDate,status, and optionalpageandpageSize. - Statuses include
ALL,PARK,VOID, andSHPD. - Use the response to monitor shipping volumes, exceptions, and invoice visibility.
Integration in Five Simple Steps
Walk through the same milestones we coach customers on when moving from a first login to live shipping.
-
01
Request ShipVia Credentials
Reach out to your ShipVia account team so they can turn on API access.
-
02
Auth Login
Log in once with your username and password to receive the bearer token you will reuse in later steps.
-
03
Sync Shipments or Record External Print
Send manifests with
/api/v1/shipments/syncor call/api/v1/shipments/printwhen labels are created in an external system. -
04
Inquiry Shipments
Use
/api/v1/shipments/inquiryto review shipment history and status across date ranges. -
05
Writeback Shipment Details to ERP
Write shipping details back into your ERP once ShipVia processing is complete by calling
/api/v1/shipments/writeback.
Shipment Sync Blueprint
Choose the mode that matches your freight. Each example shows the core JSON body plus the validation callouts teams ask about most.
POST /api/v1/shipments/sync
Content-Type: application/json
Authorization: Bearer XXXXXXXXXXXXX
[
{
"locationId": 1,
"ltlItems": [
{
"id": "1762713433810",
"pallets": "2",
"pieces": "2",
"unitOfMeasurement": "PCS",
"itemNumber": "1",
"hazardousFlag": false,
"description": "Fasteners",
"nmfcNumber": "3783332",
"class": "50.0",
"weight": "200",
"length": "10",
"width": "12",
"height": "8",
"orderNumber": ""
}
],
"itn": "",
"proNumber": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null,
"userField6": null,
"userField7": null,
"userField8": null,
"userField9": null,
"userField10": null
},
"customerPickTicketNumber": "2",
"addresses": {
"shipTo": {
"id": "",
"locationId": 0,
"line1": "1660 W SUNSET BLVD",
"line2": "H6",
"line3": "",
"city": "SAINT GEORGE",
"state": "UT",
"postalCode": "84770",
"country": "US",
"email": "ME@ME.COM",
"phone": "5551234567",
"name": "CUSTOMER",
"company": "",
"type": "SHIPTO"
},
"origin": {
"id": "1",
"line1": "1001 Innovation Road",
"line2": "",
"line3": "",
"city": "Rantoul",
"state": "IL",
"postalCode": "61866",
"country": "US",
"email": "test@rudirock.com",
"phone": "5551234567",
"name": "Shipping",
"company": "RUDIROCK"
}
},
"clientLocationId": "0001"
}
]
LTL Validation Highlights
-
Send at least one
ltlItemsentry with pallet and piece counts, NMFC number, freight class, weight, and dimensions. -
Use
locationIdandclientLocationIdto anchor the shipment to the correct facility. -
Provide complete postal and contact details for
addresses.shipToandaddresses.origin. -
Requests fail when required address data or
ltlItemsvalues are missing because the API treats them as mandatory.
- Required arrays
ltlItems[]with at least one pallet record- Freight classification
- Include
nmfcNumberandclasswhen applicable - Useful extras
referencesfields acceptnullwhen you do not have custom data
POST /api/v1/shipments/sync
Content-Type: application/json
Authorization: Bearer XXXXXXXXXXXXX
[
{
"customerPickTicketNumber": "1",
"locationId": 1,
"clientLocationId": "0001",
"addresses": {
"shipTo": {
"id": "",
"locationId": 0,
"line1": "820 E CHADDS FORD LN",
"line2": "APT 11",
"line3": "",
"city": "MIDVALE",
"state": "UT",
"postalCode": "84047",
"country": "US",
"email": "DEV@SHIP-VIA.COM",
"phone": "5551234567",
"name": "DEVELOPER",
"company": "SHIPVIA",
"type": "SHIPTO"
},
"origin": {
"id": "1",
"line1": "1001 Innovation Road",
"line2": "",
"line3": "",
"city": "Rantoul",
"state": "IL",
"postalCode": "61866",
"country": "US",
"email": "test@rudirock.com",
"phone": "5551234567",
"name": "Shipping",
"company": "RUDIROCK"
}
},
"packages": [
{
"id": 1,
"orderCount": 1,
"orderNumber": "",
"itn": "",
"customerTrackingNumber": "1",
"carrierTrackingNumber": "",
"label": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
},
"poNumber": "",
"weight": {
"value": 4,
"unit": "pounds"
},
"dimensions": {
"unit": "inches",
"length": 2,
"width": 2,
"height": 2
},
"accessorials": {
"BillingType": "1",
"PackagingType": "02"
}
}
],
"itn": ""
}
]
Small Parcel Validation Highlights
-
Every package object carries
weight.valueandweight.unit, plusdimensionsto inform carton-level rating. -
Capture the
customerTrackingNumberfor each package and the carrier-provided tracking number when it becomes available. -
accessorialssuch as billing and packaging codes flow directly into the label request. -
Requests fail if the
packagesarray is empty or a package omits required weight data.
- Required arrays
packages[]with at least one parcel- Recommended extras
- Contact email and phone on both addresses for delivery alerts
- Typical errors
- Missing weight units, empty package list, or invalid accessorial code
POST /api/v1/shipments/sync
Content-Type: application/json
Authorization: Bearer XXXXXXXXXXXXX
[
{
"customerPickTicketNumber": "",
"locationId": 1,
"clientLocationId": "0001",
"addresses": {
"shipTo": {
"id": "",
"locationId": 1,
"line1": "50 BAY STREET",
"line2": "SUITE 500",
"line3": "",
"city": "TORONTO",
"state": "ON",
"postalCode": "M5J2L2",
"country": "CA",
"email": "",
"phone": "5551234567",
"name": "RECEIVING",
"company": "TORONTO MAPLE LEAFS",
"type": "SHIPTO"
},
"origin": {
"id": "1",
"line1": "1001 Innovation Road",
"line2": "",
"line3": "",
"city": "Rantoul",
"state": "IL",
"postalCode": "61866",
"country": "US",
"email": "test@rudirock.com",
"phone": "5551234567",
"name": "Shipping",
"company": "RUDIROCK"
}
},
"packages": [
{
"id": 1,
"orderCount": 1,
"orderNumber": "",
"itn": "",
"customerTrackingNumber": "",
"carrierTrackingNumber": "",
"label": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
},
"poNumber": "",
"weight": {
"value": 1,
"unit": "pounds"
},
"dimensions": {
"unit": "inches",
"length": 2,
"width": 2,
"height": 2
},
"accessorials": {},
}
],
"intlItems": [
{
"id": "1762714525298",
"declaredValue": "45",
"descr": "Fasteners",
"itemCode": "123",
"itemNumber": "",
"lineNumber": 1,
"producerCountryCode": "US",
"qty": "3",
"unitValue": "15",
"uom": "",
"weight": 0.46,
"dims": null,
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
}
}
],
"itn": "",
"proNumber": "",
"references": {
"userField1": null,
"userField2": null,
"userField3": null,
"userField4": null,
"userField5": null
},
"accessorials": {
"B13Type": "1",
"BillingType": "1",
"CurrencyType": "USD",
"DutyPayType": "2",
"PackagingType": "1"
}
}
]
International Validation Highlights
-
Pair each package in
packageswith matching customs data inintlItems, including declared value, unit value, and country of origin. -
Use
accessorialsto set duty billing, packaging type, and currency handling for cross-border paperwork. -
Requests fail if required customs fields like
producerCountryCodeordeclaredValueare missing.
- Required arrays
packages[]andintlItems[]with synchronized line numbers- Typical errors
- Missing customs valuation data or misaligned quantity and weight totals
Ready to move faster with ShipVia?
Connect to ShipVia's production API in minutes and start moving packages with confidence.