# OnTrac

[OnTrac](https://www.ontrac.com/) is a regional carrier providing next-day delivery services to businesses and consumers across the western United States. Known for reliable ground shipping solutions, OnTrac serves Arizona, California, Colorado, Idaho, Nevada, Oregon, Utah, Washington, and parts of New Mexico and Montana.

This guide provides developers with the details needed to build OnTrac shipping capabilities into your ShipStation API workflows. You can also connect your OnTrac account via the [ShipStation API Platform](https://help.shipstation.com/hc/en-us/articles/360025856132-OnTrac).

## 2026 Migration Notice

OnTrac V3 Integration Migration
OnTrac is migrating all legacy OnTrac customers currently using ShipStation to the new Unified OnTrac integration (V3). ShipStation has adopted this integration over the past several months and is consolidating the number of OnTrac integrations it supports, so all customers will transition to the updated system.

**What this means for you:**

- **New account structure**: Legacy accounts use a numeric Account Number; V3 uses Customer Branches (unique alphanumeric IDs) aligned to your current origin and injection locations.
- **Tracking number changes**: Current format starts with "D"; new format starts with "1LS." Coordination with your third-party tracking providers may be required.
- **Invoice format updates**: Invoices will move to a new format.
- **ShipStation setup required**: You must add a new OnTrac carrier integration in ShipStation.


**Migrating in ShipStation:**

1. Contact [OnTrac](https://www.ontrac.com/contactus.asp) to request your new credentials. The new OnTrac API requires a different set of parameters than OnTrac Legacy or LaserShip.
2. Once you have your new credentials, connect your OnTrac account via the Carriers page just like connecting any other carrier.


## Requirements

**Carrier API Code:** `ontrac_v3`

| Property | Type | Required? | Description |
|  --- | --- | --- | --- |
| `nickname` | *string* | **required** | Used to identify your account in ShipStation API |
| `ws_id` | *string* | **required** | WSID |
| `ws_key` | *string* | **required** | WSKey |
| `customer_branch` | *string* | **required** | Customer Branch |
| `pickup_time` | *string* | **required** | Pickup Time |
| `contact` | *string* | **required** | Contact |
| `street_address` | *string* | **required** | Address |
| `postal_code` | *string* | **required** | Postal Code |
| `city` | *string* | **required** | City |
| `state` | *string* | **required** | State |
| `special_instructions` | *string* | **required** | Special Instructions |
| `company` | *string* | Optional | Company |
| `address2` | *string* | Optional | Address2 |
| `iso_country_code` | *string* | Optional | ISO Country Code |
| `phone` | *string* | Optional | Phone |
| `declare_piece_attributes_separately_for_every_shipment` | *boolean* | Optional | Declare Piece Attributes Separately for Every Shipment |
| `attr_alcohol` | *boolean* | Optional | Alcohol |
| `attr_dryice` | *boolean* | Optional | DryIce |
| `attr_explosive` | *boolean* | Optional | Explosive |
| `attr_two_persons` | *boolean* | Optional | Two Persons |
| `attr_controlled_substance` | *boolean* | Optional | Controlled Substance |
| `attr_refrigerated` | *boolean* | Optional | Refrigerated |
| `attr_perishable` | *boolean* | Optional | Perishable |
| `attr_norts` | *boolean* | Optional | NoRTS |
| `attr_desktop_delivery` | *boolean* | Optional | Desktop Delivery |
| `attr_hazmat` | *boolean* | Optional | Hazmat |
| `attr_saturday` | *boolean* | Optional | Saturday |
| `attr_sunday` | *boolean* | Optional | Sunday |
| `attr_signature_required` | *boolean* | Optional | SignatureRequired |


### Shipping Requirements

* Weight and dimensions are required for all shipments.
* Ship From and Ship To addresses must be complete and valid.


## Connect Account

You can connect an OnTrac account via the ShipStation dashboard or programmatically via API.

### Connect via Dashboard

To connect your OnTrac account through the ShipStation API Platform:

1. Navigate to **Settings > Carriers** in your ShipStation dashboard
2. Click **Add Carrier** and select **OnTrac**
3. Enter your OnTrac V3 credentials
4. Click **Connect** to complete the setup


For detailed step-by-step instructions, see our [OnTrac connection help article](https://help.shipstation.com/hc/en-us/articles/360025856132-OnTrac).

### Connect via API

**POST /v1/connections/carriers/ontrac_v3**


```http
POST /v1/connections/carriers/ontrac_v3 HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json

{
  "nickname": "my ontrac account",
  "ws_id": "your_ws_id_here",
  "ws_key": "your_ws_key_here",
  "customer_branch": "BRANCH123",
  "pickup_time": "14:00",
  "contact": "John Doe",
  "street_address": "123 Main St",
  "postal_code": "90210",
  "city": "Los Angeles",
  "state": "CA",
  "special_instructions": "Call on arrival"
}
```

A successful connection will return the carrier's `carrier_id` property in the response.

Once connected, you can retrieve your carrier configuration using the [list carriers endpoint](/apis/shipengine/docs/reference/list-carriers).

## Rates

OnTrac supports [rate shopping](/apis/shipengine/docs/rates/rates) with ShipStation API.

## Service Details

Available OnTrac services are provided below. Please note that carriers may update their available services at any time. To ensure you are always using valid services, you can use the [list carrier services](/apis/shipengine/docs/reference/list-carrier-services) endpoint at any time.

### Services

| Service | API Code | Features |
|  --- | --- | --- |
| Ground Pickup Ontrac | `ground_v3_ontrac` | Tracking, Multi-Package |
| Ground Pickup None | `ground_v3_none` | Tracking, Same-Day Service, Multi-Package |


### Packages

OnTrac supports the following package types for shipments:

| Package Type | API Code |
|  --- | --- |
| Polybag | `ontrac_v3_polybag` |
| Custom Packaging | `ontrac_v3_custom_packaging` |
| Envelope | `ontrac_v3_envelope` |


You can also use [custom package types](/apis/shipengine/docs/shipping/custom-package-types) with OnTrac.

### Adding Shipment Insurance

OnTrac supports adding carrier insurance to shipments created with ShipStation API. Review our [insurance page](/apis/shipengine/docs/shipping/insurance) for details on adding insurance to your shipments.

## Label Support

* Label sizes: 4" x 6"
* Label formats: PDF, ZPL
* Supports unicode characters: Yes


### Label Reference Fields

OnTrac supports adding [custom label messages](/apis/shipengine/docs/labels/messages).

### Multi-Package Labels

OnTrac supports creating multi-package shipments.

See our [Multi-Package Shipping page](/apis/shipengine/docs/shipping/multi-package) for details about creating multi-package labels.

### Label Branding

OnTrac does not support [label branding](/apis/shipengine/docs/labels/branding).

### Voiding Labels

OnTrac supports voiding labels with ShipStation API.

See our [Void a Label page](/apis/shipengine/docs/labels/voiding) for details about voiding labels with ShipStation API.

### Paperless Labels

OnTrac does not support [paperless labels](/apis/shipengine/docs/labels/paperless).

## Delivery Confirmation

| Confirmation Type | API Code | Description |
|  --- | --- | --- |
| None | `none` | No confirmation requested. |
| Signature Required | `signature` | Signature is required for the shipment to be delivered. |


See our [Delivery Confirmation page](/apis/shipengine/docs/shipping/delivery-confirmation) for more details about using the `confirmation` property.

## Advanced Options

OnTrac supports certain [advanced options](/apis/shipengine/docs/carriers/advanced-options), which you can add to the `shipment` object when creating a shipment or label.

Specific advanced options supported by OnTrac include attributes for special handling requirements like alcohol, dry ice, hazmat, refrigerated items, and Saturday/Sunday delivery.

To ensure you always have the most up-to-date information about a carrier's advanced options, use the [list carrier options call](/apis/shipengine/docs/reference/list-carrier-options).

## Manifests

OnTrac does not require [manifesting](/apis/shipengine/docs/shipping/manifests) your shipments.

## Scheduling Pickups

OnTrac supports [scheduling pickups](/apis/shipengine/docs/shipping/pickups) using ShipStation API.

## Tracking

OnTrac supports receiving tracking updates. Review our ​[Track a Package guides​](/apis/shipengine/docs/tracking/tracking)​ for details on tracking with the ShipStation API.

## Disconnecting Your OnTrac Account

See the Disconnect section in our [Delete a Carrier page](/apis/shipengine/docs/reference/carriers/delete-carrier) for the process of deleting or disconnecting a carrier from ShipStation API.

Carrier ID Changes
If you disconnect a carrier account and reconnect it, the account will have a new `carrier_id` in ShipStation API.