Skip to Content

Developer / API Learning Center

Integrate shipping, tracking, labels, and rate quotes into your platform.

Errors & troubleshooting

Jet’s APIs are designed to return actionable error messages (not generic failures). This page covers the most common issues and how to resolve them quickly.

Tip: When testing, log the full request URL (minus your key), request body (if any), response body, and the IP address your server is calling from.

Quick triage checklist

  • Are you calling the correct endpoint? (quote vs track vs order vs cancel)
  • Is an API key required? (Create + Cancel require it; Quote/Track may work without it)
  • Is your request format correct? (querystring vs JSON body)
  • Are you testing with your own shipments? (especially for tracking/cancel)
  • Are you blocked? (unusual traffic patterns can trigger temporary blocks)

Authentication & access issues

Some endpoints are public (key optional), but account-specific behavior requires a key. Other endpoints require a key and will fail without it.
  • Create shipments: API key required (send it in data.token).
  • Cancel shipments: API key required (send it as key query param).
  • Quotes / Tracking: key optional, but including a key unlocks account-authorized details (pricing, precision, etc.).

Common messages

"You did not provide an access token."
"Sender access token is missing."
"Sender access token is invalid."
"Access denied."
"Account has been closed or is on credit hold."

If you believe your key should have access, contact support and include your customer number and calling IP address.

Blocked IP address

For security, Jet may temporarily block requests that appear unauthorized or abusive (for example, a single IP tracking many unrelated shipments).

Common message

"IP address is blocked"
What to do: Contact support and provide (1) your company name / customer number, (2) the IP address you’re calling from, and (3) a brief description of what you were testing. We can typically unblock or approve your IP for testing.

Create shipments: request validation issues

Most Create Shipments failures come from missing required fields or invalid values. Start by confirming your JSON is valid and includes required fields.

  • Missing JSON: you didn’t send a JSON body (or data form field).
  • Invalid JSON: malformed JSON string.
  • Missing required fields: Contact/Phone, pickup/delivery fields, Pieces/Weight, ServiceType/VehicleType, dates.
  • Invalid values: zip codes, service type, vehicle type, time windows, etc.

Common messages

"Missing JSON object."
"Invalid JSON format. Check your JSON string at: http://jsonlint.com/"
"Sender access token is missing."
"No shipments were found in the request."
"Contact name was missing from the shipment request."
"Contact phone number was missing from the shipment request."
"Invalid originating zip-code."
"Invalid destination zip-code."
"Invalid service type."
"Invalid vehicle type."
"Requested pickup date has already passed."
"Requested pickup date is more than 7 days away."
"Requested deliver date is before the pickup date."
Best practice: include a jsonstrn value in your request so you can correlate your outbound request with Jet’s response and logs.

Tracking: common issues

  • No key provided: some details may be redacted or approximated for privacy.
  • Wrong identifier: your id may be a billing reference instead of a tracking number (try ref=link-ref).
  • Shipment not found: confirm the tracking number is correct and belongs to your account (if using a key).
Tip: If you’re matching by billing reference, send ref=link-ref. Otherwise, id is treated as a tracking number.

Cancel shipments: common issues

Cancellations are only allowed when the order has not been assigned to a driver. If cancellation is not allowed, the endpoint returns a clear message.

Common messages

"A valid tracking number is required."
"The order is already canceled."
"This order cannot be canceled."

Webhooks: delivery issues

  • No deliveries: endpoint URL incorrect, not reachable, or events not enabled.
  • Repeated deliveries: your endpoint is returning non-200 or timing out.
  • Slow endpoint: acknowledge quickly (200) and process asynchronously.
Tip: Log raw webhook deliveries during initial rollout (headers + body) so you can validate parsing and dedupe behavior.

What to send support

If you need help, include the items below and we can usually pinpoint the issue quickly:

  • Endpoint URL you called (redact your API key)
  • Request body (Create Shipments only)
  • Full response body
  • Your calling IP address
  • Tracking number / reference used (if applicable)
  • jsonstrn correlation ID (if provided)