ZoneJump Shipper API
Integrating with ZoneJump for Shipping Services

ZoneJump's shipper API is a REST-based API for creating and tracking shipments. Only API clients that (1) are associated with a customer account and (2) have been pre-authorized with an assigned API key may access the API.

ZoneJump's REST API provides a means of creating new shipments and tracking existing shipments. Shipments are created by issuing an HTTP POST method with a valid JSON body containing shipment information and are assigned a trackingNumber that can be used for subsequent monitoring of shipment status.

The API supports several means of tracking shipments.

  • Using the assigned tracking number, a list of tracking events can be requested via an HTTP GET method for an existing shipment.
  • Alternatively, an API client may register a webhook to provide a callback URL and a list of tracking events that are of interest. The ZoneJump platform will push events to the client's registered callback as they occur, foregoing the need for the client to periodically poll for shipment status.

Client Development Checklist

Here are the steps to successfully implement and integrate an API client with the ZoneJump platform:

  • For access to ZoneJump's API development environment:
    1. Gain understanding to the API and its terms of use by reading this document.
    2. Use this API Access Request link to obtain an API key for the ZoneJump development environment.
    3. Exercise the API to ensure the client software is able to obtain responses for basic operations. See the section on API Testing that describes available testing methods such as cURL, Swagger UI, and Postman.
    4. Print off one of each sample shipping label on a printer that will be used for production shipping operations and provide a scanned image or photo of the printed labels to API Support for ZoneJump's validation.
  • In addition, for access to the Production API:
    1. Complete a service agreement with ZoneJump, which contains information needed to properly configure service operations.
    2. Complete testing and validation in the Development environment as described above;
    3. Contact API Support to obtain:
      • the API key for the Production environment;
      • the values needed to populate parameters for pickupAddressId and accountNumber in a shipment request.

Terms of Use

By creating API shipments within the ZoneJump system, the account holder agrees to ZoneJump’s service terms and conditions for API use that are listed here.

Only authorized ZoneJump account holders may invoke this API to create and track shipments for their business use. Customers' API clients are not to exceed a reasonable amount of method invocations, as outlined below. When developing software to access ZoneJump's platform you agree to the terms listed below:

Application restrictions:

  1. Customers are not to disclose their API credentials to any external parties, including third-party auditors or shipment tracking services without ZoneJump's prior permission. Best practices for securing API keys include:
    • Do not embed API keys directly in application code. This could lead to accidental public exposure.
    • Do not store API keys in source files that could be committed to a publicly accessible source code management system - e.g., GitHub.
    • Notify ZoneJump immediately if you suspect your API keys have been compromised. ZoneJump will invalidate your current keys and issue replacements.
  2. Only packages tendered to ZoneJump should be tracked; do not attempt to track (1) shipments tendered to other carriers (e.g., FedEx, UPS, etc.) or (2) shipments that have not yet been tendered to ZoneJump.
  3. Once delivered, shipments should not be tracked again. Use the ZoneJump dashboard to obtain additional service metrics and historical shipment data. No attempt to retrieve historical data via the API should ever be made. Special requests for this data should be sent to system.support@zonejump.com.
  4. Tracking requests may be issued several times a day but should be limited to less than 10 invocations per package per day. Excessive use of the API may result in throttling of tracking requests to an acceptable rate.
  5. Shipments older than two weeks, regardless of status, should not be tracked. Contact system.support@zonejump.com for problem package resolution.
  6. ZoneJump has been contracted to offer delivery services to a fixed list of ZIP codes. Shipments will only be successfully created when they contain ZIP codes that are serviced by ZoneJump. To facilitate API use, ZoneJump maintains a file of available ZIP codes and services for each.
  7. API client software should validate destination addresses before creating shipments via the API to ensure shipments are handled properly within the ZoneJump system. Any attempt to create a shipment for an unavailable destination or for a service that is unavailable for a given destination will be rejected. Delivery to a PO box address is supported for ZoneJump Flats service.
  8. Users in violation of Terms of Use will be contacted by ZoneJump and will be expected to take immediate action to rectify identified issues. If full compliance with the Terms of Use is not achieved, ZoneJump reserves the right to restrict or terminate access to the API and its services.

Contact/Inquiries

Contact ZoneJump in order to:

  • Obtain an API key for use with ZoneJump's API development environment. API keys will be issued within 1 business day of receiving a request, excluding weekends and holidays.
  • Submit questions or issues regarding API operation or to ask for support in client development. Please indicate the severity of the issue in the subject of the email and provide as much detail as possible in the body.
  • Submit a request for custom data exports. Describe the nature of the data you wish to obtain, the time period of interest, and any perceived need for ongoing data exports.

Send an email to system.support@zonejump.com and include the customer account number, if assigned, in the subject line.

API Methods

This section describes the details of the method invocations available to clients to create and track shipments. All methods are available in both the development and production API environments.

Electronic billing and invoicing functions are currently performed off-line and not available via the API, though these functions may be implemented in a future version of the API.

This section is meant to be an overview of the API. Please refer to the formal specification for an in-depth definition of the API methods and schema. Where the overview may differ, the formal specification has precedence.

Accessing the API

API access is achieved by targeting a base URL with an HTTP method invocation (POST, GET) for a specific resource (e.g., shipment or tracker). The base URLs for API access are:

  • Development API: https://api-dev.zonejump.com
  • Production API: https://api.zonejump.com

Customers developing API client software will be given keyed access to ZoneJump's Development environment. Access to the Production environment will be granted after successful exercise and validation of the customer's client in the Development environment.

Creating Shipments

Shipments are created in the ZoneJump platform by issuing an HTTP POST method with a JSON payload that describes the shipment. The client provides its API key in the X-Api-Key request header.


        POST /shipments 
        Content-Type: application/json
        X-Api-Key: <CLIENT_API_KEY>
        cache-control: no-cache

        {
          "testFlag": true,
          "requestId": "1564602222443",
          "accountNumber": "1",
          "serviceCode": "ZJG",
          "pickupAddressId": 1,
          "deliveryAddress": {
            "name": "Dean A Meyer",
            "street": "219 Via Fortuna",
            "city": "Henderson",
            "state": "NV",
            "zip": "89011",
            "phone": "7020001111",
            "residence": true,
            "phone": "9871236540",
            "email": "a.person@somewhere.com"
          },
          "package": {
            "weight": 0.75,
            "length": 4,
            "width": 6,
            "height": 8,
            "signatureRequired": false,
            "saturdayDelivery": true,
            "declaredValue": 0,
            "shipDate": 2025-07-31T12:43:42-07:00",
            "isIataDangerousGoods": false,
            "labelType": "ZPL"
          }
        }
      

Shipment Request Parameters

Each API request parameter is listed in the table below and is either a required (R) or optional (O) parameter.
Unused/empty optional (O) parameters should be omitted from the request.

Request Parameter Required Type Description
testFlag O boolean true - Indicates a test request
false - Indicates a normal shipment
Test requests will provide an API response that includes a printable label and an accurate estimate of transit time, delivery date and shipping charges; however, no shipment will be recorded for subsequent processing.
requestId R string A client-supplied unique ID to associate a request with its subsequent response
accountNumber R string A ZoneJump customer's pre-assigned account number
serviceCode R string Use one of the following codes to indicate the choice of service:
ZJG - ZoneJump® Ground Service for Parcels
FTF - ZoneJump FlatTrack Express® Service for USPS First-Class Flats
FTL - ZoneJump FlatTrack Express® Service for USPS First-Class Letters
DDG - DoorDash Ground Service for Parcels

Note: ZoneJump FlatTrack Express® Service shipments are rated on actual weight;
rates for all other services are determined using the greater of actual and dimensional weights. See the ZoneJump Service Guide for dimensional and weight requirements.

pickupAddressId R integer An origination address identifier assigned by ZoneJump at service configuration time; typically indicating a customer's warehouse location or shipping center
deliveryAddress R object The destination's address must be validated by address validation software prior to issuing the request. An address contains the following parameters:
name R string Length: 35
The name of the person to receive the shipment
company O string Length: 35
This field may be used to further specify the recipient's delivery address - e.g., a work address
street R string Length: 35
Street number and name

Note: Only ZoneJump® Flats Service permit a post office (PO) box in lieu of a street address; Ground service will not accept a PO box as a street address.

street2 O string Length: 35
Additional address information
city R string Length: 30
state R string Length: 2
The 2-letter state abbreviation (e.g., AZ)
zip R string A 5-digit (99999) or 9-digit zip code (99999-0000)
residence R boolean true - Address is a residence
false - Address is a business or non-residential location
phone R string Length: 10 - Digits 0-9 only. The recipient's phone number
email O string A well-formed email address for the recipient of the shipment; if provided, the recipient will receive notifications for certain tracking event types.
validateAddress O boolean TRUE - Validate the delivery address and fail the shipment if invalid.

When address validation fails, detailed results will be provided in the returned error response.

If the address validation is successful, the API response will include a success indicator.

Note: There may be an additional charge for this option.

specialInstructions O string Maximum length: 100
Special delivery instructions for the driver ‐ e.g., gate code, etc. ‐ that will be provided to the carrier to assist delivery.

Note: This attribute is only applicable for ZJG service requests. Instructions are not rendered on the label; use reference1 or reference2 attributes for information to be printed on the label.

package R object The item to be shipped, defined by the following attributes:
shipperName O string The name of the shipper; 3PL customers may indicate their customer's name in this field which will be displayed on the shipping label as part of the return address.
shipDate R string A timestamp expressed in RFC3339 date-time format - e.g., 2019-07-04T11:00:00-07:00. This timestamp is the basis for calculating the daysInTransit and expectedDeliveryDate fields in the API response.

Note: For the most accurate results for daysInTransit and expectedDeliveryDate, the shipDate field should be set to the date the shipper expects to submit the package to the carrier.

type R string The type of shipment

PACKAGE - indicates a parcel type for ZJG or DDG service
FLAT - indicates a USPS Flats compliant type; use with FTF service
LETTER - indicates a USPS Letter compliant type; use with FTL service

weight R number A decimal representation of weight in pounds

Note: Ounce weights should be specified as fractional pounds; i.e. 1 ounce = 0.0625 pounds; intermediate ounce values will be rounded to the next whole ounce. Weights greater than 1 pound will be rounded up the next whole pound. Rounded weights will be recorded and used for billing calculations. Please ensure accurate measurements to avoid billing corrections as billing is based on these measurements. Follow best practices for scale calibration at regular intervals.

length R number A decimal representation of the dimension in inches. Standard rounding will apply to this value for rate calculations using dimensional weight.

Note: Dimension values will be rounded to the nearest whole inch. Values with a fraction < 0.5 will be rounded down while fractions ≥ 0.5 will be rounded up; e.g., 11.49in rounds to 11in while 11.5in rounds to 12in. Rounded dimension values will be used to calculate dimensional weight.

width R number A decimal representation of the dimension in inches. Standard rounding will apply to this value for rate calculations using dimensional weight.
height R number A decimal representation of the dimension in inches. Standard rounding will apply to this value for rate calculations using dimensional weight.
isIataDangerousGoods O boolean true - Explicityly indicates the item is a dangerous item per IATA guidelines
false - indicates the classification does not apply

Note: This field is an explicit indication that the shipped item is not subject to the IATA classification for dangerous goods. ZoneJump does not accept dangerous goods for shipment.

signatureRequired O boolean true - Signature required
false - No signature required currently a placeholder for future use.

Note: There is an additional charge for this option.

increaseLiabilityLimit O boolean true - In case of damaged or missing package, ZoneJump will be liable for the declared value.
false - ZoneJump is liable for up to $100 per package even if actual value of the shipment is greater than $100.

Note: There is an additional charge for this option. The limit is capped at $999.99.
Omit if your service contract does not have insurance or liability terms.

declaredValue O number The dollar value of the shipped item. Required if increaseLiabilityLimit is specified.

Note: Omit if your service contract does not have insurance or liability terms.

saturdayDelivery O boolean true - Request a Saturday delivery.
If the destination supports this option, the package will be marked for Saturday delivery.

Note: There may be an additional charge for this option.

reference1 O string Maximum length: 50
A customer-supplied field that will be rendered on the shipping label

Note: Shippers should consider populating the reference1 field with an order number for the shipment.

reference2 O string Maximum length: 50
A customer-supplied field that will be rendered on the shipping label

Note: Shippers should consider populating the reference2 field with a product SKU, especially in the case where the SKU indicates standard packaging. This permits automated resolution of carrier disputes where scanned package dimensions may differ from past shipments of the same SKU. See the ZoneJump Support Guide for Finance — ZoneJump’s process to reduce billing exceptions — for more information about billing auditing and disputes.

labelType O string The image encoding for 4-by-6 inch label to be provided in the response
PDF - a Portable Document Format label; Base64 encoded
PNG - a Portable Network Graphic image; Base64 encoded
ZPL - a Zebra Printer Language text string
Note: PDF and PNG labels must be Base64 decoded to binary to render the image for printing.
Only PNG format is available for FTF and FTL shipments.
ZPL label strings are UTF-8 text strings.

A shipment response is returned synchronously by the API. The response content is a JSON payload:


        {
          "requestId": "1564602222443",
          "accountNumber": "1",
          "serviceCode": "ZJG",
          "trackingNumber": "92748902069736000099996666",
          "shippingLabel": "^XA^LH0,10
                            ^FS^FO040,010^AQN,20,30^FDABC RETAIL
                            ^FS^FO040,035^AQN,20,30^FD21 MAIN ST # 552
                            ^FS^FO040,085^AQN,20,30^FDMORRIS, NJ 07962
                            ^FS^FO500,010^GB250,150,5
                            ^FS^FO535,030^AQN,20,30^FDPS LIGHTWEIGHT
                            ^FS^FO530,060^AQN,20,30^FDUS POSTAGE PAID
                            ^FS^FO585,090^AQN,20,30^FDOnTrac
                            ^FS^FO600,120^AQN,20,30^FDeVS
                            ^FS^FO040,155^ARN,20,30^FDNO ENDORSEMENTS REQUIRED
                            ^FS^FO040,225^ARN,20,30^FDSHIP
                            ^FS^FO040,255^ARN,20,30^FDTO:
                            ^FS^FO150,225^ATN,30,50^FD
                            ^FS^FO150,265^ATN,30,50^FDDEAN A SMITH
                            ^FS^FO150,305^ATN,30,50^FD219 VIA FORTUNA
                            ^FS^FO150,385^ATN,30,50^FDHENDERSON, NV 89011
                            ^FS^FO020,460^GB775,1,12,B,0
                            ^FS^FO240,500^ASN,20,30^FDUSPS TRACKING # eVS
                            ^FS^FO055,560^BY3^BCN,160,N,N,N,D^FD4208901192748902069736000099996666
                            ^FS^FO170,740^ASN,20,30^FD9274 8902 0697 3600 0099 9966 66
                            ^FS^FO020,800^GB775,1,12,B,0
                            ^FS^FO040,875^AVN,10,20^FDDDU
                            ^FS^FO190,880^ARN,20,30^FD404 S BOULDER HWY
                            ^FS^FO190,910^ARN,20,30^FDHENDERSON, NV 89015
                            ^FS^FO540,840^AVN,10,20^FDVEG-B
                            ^FS^FO540,910^AVN,10,20^FDB11^XZ",
          "daysInTransit": 3,
          "expectedDeliveryDate": 2025-08-03",
          "deliveryCharge": "12.00",
          "totalCharge": "12.00"
        }
        

Shipment Response Parameters

All string representations are UTF-8 encoded.

Response Parameter Type Description
requestId string Echoed from the request body
accountNumber string Echoed from the request body
serviceCode string Echoed from the request body
trackingNumber string A unique identifier assigned by ZoneJump and associated to the shipment for subsequent tracking purposes
shippingLabel string A pre-formatted shipping label. For the ZPL label type, the label string may be printed directly on any ZPL or EPL2 label printer. For PNG or PDF label types, the label string as a base64-encoded string representation of a .png or .pdf file that must be decoded before printing.

Note:
ZPL label strings are typically 1000-2000 characters in length; a sample ZPL file is available for testing purposes.
PDF or PNG label strings are typically in the range of 200K-250K characters.
Shipping label formats will vary by destination to meet the requirements of ZoneJump's last-mile carrier partners.
Do not modify any label strings or labels may print incorrectly and affect shipment delivery.

daysInTransit integer The number of calendar days the shipment will be in transit
expectedDeliveryDate string YYYY-MM-DD - The expected date of delivery

Note: This date is the date of shipment creation plus the number of days in transit and assumes the package will be tendered to ZoneJump prior to shipment cut-off time. The client is responsible for managing shipments and recipient expectations accordingly. The ZoneJump platform will adjust the expected delivery date in the case that the shipment is tendered to ZoneJump after the cut-off time; i.e., is tendered the "next day".

deliveryCharge number Delivery charge is the base charge exclusive of add-ons, in US dollars
deliveryAreaSurcharge number Per shipper agreement, if delivery area surcharges apply
peakSurcharge number Per shipper agreement, if peak season surcharges apply
declaredValueSurcharge number Per shipper agreement, if declared value surcharges apply
signatureRequiredCharge number Per shipper agreement, if signature required surcharges apply
residentialSurcharge number Per shipper agreement, if residential delivery surcharges apply
fuelSurcharge number Per shipper agreement, if fuel surcharges apply
totalCharge number The total charge is the base charge with add-ons (e.g., declared value, etc.), in US dollars
deliveryAddressValid boolean If validateAddress was present in the request and the address was validated successfully, this attribute will be present in the response and set to true. Validation errors will be presented and described in a returned error response.
Shipping Label Format

The shippingLabel string in the response message should render on a compatible label printer.

Shipping labels are formatted for compatibility with ZoneJump's last mile delivery partners. The currently supported 4x6 shipping label formats are:

Tracking Shipments

The ZoneJump platform provides several options for tracking shipments once they are in the ZoneJump system.

  • Tracking via API. The API can support dynamic queries of shipment status for individual shipments.
  • Tracking via Webhook. A tracking webhook can be configured via the API to report incremental status updates for all outstanding shipments.
  • Tracking via File Export. A status file export can be configured at the time of initial account establishment to provide incremental status updates, similar to the webhook option.

The following table list the tracking event codes, their meaning, and the action taken by the ZoneJump platform on detection of the associated event.

Code Description Action
ACN Access code needed. Carrier requires access or gate code to deliver package. Email sent to the shipper's email address that is provided at account creation.
ADC Delivery address changed by shipper or package recipient. Email sent to the shipper's email address that is provided at account creation. Address correction fee may apply.
AIC Address incorrect. Carrier requires updated information to deliver package. Email sent to the deliveryAddress.email provided in the shipment request. Address correction fee may apply.
AII Address incomplete. Carrier requires updated information to deliver package. Email sent to the shipper's email address that is provided at account creation. Address correction fee may apply.
AIR Undeliverable address. Package returned to sender. Email sent to the shipper's email address that is provided at account creation.
CLP The shipment information has been provided to the carrier. No action taken.
DAC Delivery attempted. Carrier reported company closed. Email sent to the shipper's email address that is provided at account creation. Expected delivery date may be extended 1 day.
DAN Delivery attempted. Carrier reported customer not home. Package not left for security reasons. Email sent to the shipper's email address that is provided at account creation. Expected delivery date may be extended 1 day.
DAP Delivery attempted. Recipient no longer at the address. Email sent to the shipper's email address that is provided at account creation.
DAR Delivery attempted. Package was refused. Email sent to the shipper's email address that is provided at account creation.
DDC Package en route delayed before reaching the delivery hub; possible one day delay. Expected delivery date may be extended 1-2 days.
DDW Delayed due to weather or inaccessible delivery location. Expected delivery date may be extended 1 day.
HFP Held for customer pickup at carrier facility. No action taken.
HIW Package will not be delivered until the problem is resolved at the carrier. Call carrier. Email sent to the shipper's email address that is provided at account creation.
MRC There was an issue with package routing by the carrier; possible one day delay. Email sent to the shipper's email address that is provided at account creation. Expected delivery date may be extended 1-2 days.
OFD Out for delivery today until 9pm. No action taken.
ODP Out for delivery by postal carrier. No action taken.
PDC Delivered. Email sent to the deliveryAddress.email provided in the shipment request.
PDD Carrier reported that the package was damaged and was delivered to the recipient. Email sent to the shipper's email address that is provided at account creation.
PDF Package delivered to local postal carrier. No action taken.
PDN Carrier reported package delivered to neighbor. No action needed. Email sent to the deliveryAddress.email provided in the shipment request.
PMA Package not delivered. Damaged. Notification sent to shipper. Email sent to the shipper's email address that is provided at account creation.
PMS Package has been accepted by USPS and is on its way to you.. Email sent to the shipper's email address that is provided at account creation.
PND Pick up at shipper completed. Pending acceptance scan.. Email sent to the shipper's email address that is provided at account creation.
PNL Package not delivered. Lost. Notification sent to shipper. Email sent to the shipper's email address that is provided at account creation.
PSH Package scanned at carrier facility that will deliver package. No action taken.
PUS Package has been scanned by the carrier and is on its way to you. Email sent to the deliveryAddress.email provided in the shipment request.
RRS Package return received by shipper. No action taken.
RTS Package returned to shipper. No action taken.
SLP Shipping label printed. Package at shipper facility until pickup. No action taken.
UPD Updated package delivery date. No action taken.
UPL Updated package location. No action taken.
XXX Package not able to be delivered. Notification sent to shipper. Email sent to the shipper's email address that is provided at account creation.

Note: The events that result in email to the shipperNotification recipients will also result in a bcc email to the ZoneJump customer account email addresses established at the time of account configuration.

Tracking via API

An API client may track shipment status via a tracking request API call. A tracking request is created by invoking an HTTP GET method on a specific shipment:


        GET /shipments/<TRACKING_NUMBER>
        Content-Type: application/json
        X-Api-Key: <CLIENT_API_KEY>
        cache-control: no-cache
        

The TRACKING_NUMBER is provided as a path parameter in the request. The client provides its API key in the X-Api-Key header.

A tracking response is returned synchronously by the API. The response content is a JSON payload consisting of an array of tracking events:


        {
          "trackingNumber": "TRACKING_NUMBER",
          "expectedDeliveryDate": "2025-08-03",
          "notice": "NOTICE_MESSAGE",
          "trackingEvents": [
            {
              "eventCode": "PUS",
              "description": "Package has been scanned by the carrier and is on its way to you",
              "occurredAt": 2025-01-19 18:43:21",
              "city": "Henderson",
              "state": "NV",
              "zip": "89011"
            },{
              :
            }
          ]
        }
      

A tracking response is represented in JSON format as shown below. All string representations are UTF-8 encoded.

Response Parameter Type Description
trackingNumber string Echoed from the request path
expectedDeliveryDate string The date the package is expected to be delivered, in YYYY-MM-DD format
notice string An optional response element, a notification is included in the tracking response to indicate there is a condition (e.g., weather delays, equipment failure, etc) in effect that may affect package delivery or extend the expected delivery date
progressState string The current progress state of the shipment;
Possible values:
READY - The package is ready for pickup by the carrier.
TRANSITING - The package is in transit to the delivery address.
DELIVERED - The package has been delivered to the delivery address.
EXCEPTION - There is an exception that may affect the delivery of the package.
carrier array Carrier information for the shipment, described by the following parameters:
    company string The name of the carrier company.
    phone string The phone number of the carrier company.
    email string The email address of the carrier company.
    csHours string The customer service hours of the carrier company.
    url string The URL of the carrier company's website.
trackingEvents array A list of all events for the shipment, described by the following parameters:
    eventCode string The type of the event; see the table above
    description string Additional information about the event; see the table above
    occurredAt datetime The event timestamp expressed in 24-hour local time at the event location
Format: YYYY-MM-DD HH:mm:ss
    city string The city where the event occurred
    state string The state where the event occurred
    zip string The ZIP code where the event occurred
Tracking Webhook

In lieu of an API client issuing periodic tracking requests to poll the ZoneJump platform for shipment status, an API client may register a webhook target (i.e., "consumer"). The ZoneJump platform will individually post the current and historical status for each package that is currently being tracked by the system when new events are detected for those packages.

A webhook is created with an HTTP POST request and may be subsequently updated with an HTTP PUT request; for example:


      POST /shipments/webhook/<ACCOUNT_NUMBER>/<WEBHOOK_ID>  
      Content-Type: application/json
      X-Api-Key: <CLIENT_API_KEY>
      cache-control: no-cache
      ...
      {
        "url": "https://your-webhook-host.com",
        "headers": {
          "header_name_1": "header_value_1",
          "header_name_2": "header_value_2"
        }
      }
      

Once created, a webhook can be removed by an HTTP DELETE request:


      DELETE /shipments/webhook/<ACCOUNT_NUMBER>/<WEBHOOK_ID> 
      Content-Type: application/json
      X-Api-Key: <CLIENT_API_KEY> 
      cache-control: no-cache
      

A simple message is returned to indicate successful deletion:


      {
        "message": "Webhook deleted"
      }
      

Note: Currently, only one webhook can be registered per customer account; multiple requests to create or update a webhook will result in establishment of the webhook specified in the lastest POST or PUT request.

A webhook creation request is represented in JSON format as shown below. All string representations are UTF-8 encoded.
Note: Unused optional parameters should be omitted from the request.

Request Parameter Required Type Description
ACCOUNT_NUMBER R string A path parameter that specifies the customer's pre-assigned account number
WEBHOOK_ID R string A path parameter that specifies a unique identifier for the webhook
url R string The URL of the webhook consumer; subsequent event updates are posted to this URL
headers O object An optional list of key-value pairs that define the HTTP headers that are required by the webhook consumer to be included in the POST operation for event notifications

The JSON response to a webhook request simply echoes the request parameters:


      {
        "accountNumber": "ACCOUNT_NUMBER",
        "webhookId": "WEBHOOK_ID",
        "url": "https://webhook-consumer-host.com",
        "headers": {
          "header_name_1": "header_value_1",
          "header_name_2": "header_value_2"
        }
      }
      

Posting Events

After the webhook has been registered, the ZoneJump platform will execute an HTTP POST with a content body that is the list of all events for all shipments that have occurred since the last webhook execution:


      POST /webhook-consumer-host.com
      Content-Type: application/json
      X-ZoneJump-Webhook-Id: <WEBHOOK_ID>
      header_key1: header_value1
      header_key2: header_value2
      ...
      {
        "expectedDeliveryDate": 2025-08-03T00:00:00+00:00",
        "trackingNumber": "TRACKING_NUMBER",
        "notice": "NOTICE_MESSAGE",
        "trackingEvents": [
          {
            "eventCode": "PUS",
            "description": "Package has been scanned by the carrier and is on its way to you",
            "occurredAt": "2025-01-19 18:43:21",
            "city": "Henderson",
            "state": "NV",
            "zip": "89011"
          },{
            :
          }
        ]
      }
      

The POST method will include an X-ZoneJump-Webhook-Id header with the webhook identifier. The expected response to the POST is a simple HTTP 200 status; no body content is required.

Note: The webhook consumer should be provisioned so that it is in a ready state to accept event posting requests. If the webhook consumer is unable to respond successfully to an event posting (i.e., an HTTP response status of 200) after 3 consecutive attempts, the webhook will be disabled and no further event postings will occur. Should this occur, the webhook consumer can check the status of the webhook and, if necessary, re-create it via the API.
Also, regardless of the event reporting options described above, ZoneJump relies on its carrier partners for timely upstream reporting of events for downstream aggregation and reporting to its customers. As a result, individual event timestamps may differ from the actual time the event was made available for reporting.

API Testing

The API development environment offers the ability to exercise API in a low-risk setting. The environment provides a "mock" implementation of the API that is fully validated, but no data is persisted in the system. Mock shipments are created with simulated tracking events to support a subsequent tracking operation.

The API can be exercised in several ways:

  1. cURL can be used to send both raw POST and GET requests to the API.
  2. Swagger UI can be used to send both POST and GET requests to the API. Swagger also offers the ability to create a client SDK in a variety of languages.
  3. Postman can be used to import the OAS 3.0 API definition to create both POST and GET method calls.

Testing with cURL

To test with cURL, simply copy the text below and paste into a command line. Replace <CLIENT_API_KEY> in these requests with a valid API key, the <ACCOUNT_NUMBER> with a valid account number, and <PICKUP_ADDRESS_ID> with the appropriate value.


      curl -X POST https://api-dev.zonejump.com/shipments \
          -H 'Content-Type: application/json' \
          -H 'X-Api-Key: <CLIENT_API_KEY>' \
          -H 'cache-control: no-cache' \
          -d '{
                "requestId": "1564602222443",
                "accountNumber": "ACCOUNT_NUMBER",
                "serviceCode": "ZJG",
                "pickupAddressId": "PICKUP_ADDRESS_ID",
                "deliveryAddress": {
                  "name": "Dean A Meyer",
                  "street": "219 Via Fortuna",
                  "city": "Henderson",
                  "state": "NV",
                  "zip": "89011",
                  "phone": "7020001111",
                  "residence": true
                },
                "package": {
                  "shipperName": "ABC Retail",
                  "weight": 0.75,
                  "length": 4,
                  "width": 6,
                  "height": 8,
                  "type": "PACKAGE",
                  "isIataDangerousGoods": false,
                  "signatureRequired": false,
                  "saturdayDelivery": true,
                  "declaredValue": 0,
                  "increaseLiabilityLimit": false,
                  "shipDate": 2025-07-31T12:43:42-07:00"
                }
              }'
      

Using the tracking number from a prior shipment request, a tracker test request can be issued with a GET method.


      curl -X GET https://api-dev.zonejump.com/shipments/<TRACKING_NUMBER> \
          -H 'x-api-key: <CLIENT_API_KEY>' \
          -H 'Accept: */*'
      

Testing with Postman and Swagger UI

You can test the API with a valid API key using Swagger UI or, alternatively, download the Open API Specification (OAS) 3.0 file and import it into Postman or other tooling. Refer to the respective user guides for these tools regarding their proper use to exercise the API.