All systems operational API v2.4 · Updated Apr 2026
Choice Logistics Developer Portal

Build integrations with the Choice API

Connect your logistics operations to Choice's fulfillment platform. OAuth 2.0 secured, webhook-driven, production-ready.

POST /oauth/token
curl -X POST \
  https://api.choicelogistics.com/oauth/token \
  -H "Content-Type: application/json" \
  -d '{
  "client_id": "cl_abc123",
  "client_secret": "your_secret",
  "grant_type": "client_credentials"
}'
POST /v2/tickets
{
  "requestType": "OUTBOUND",
  "clientRef": "ORD-12345",
  "idempotencyKey": "uuid-v4",
  "subaccount": "ACME-EAST",
  "ssl": "JFK-SSL-001",
  "shipTo": { "name": "John Doe", "address1": "123 Main St" },
  "lines": [{ "partNumber": "SFP-10G-LR", "quantity": 2 }]
}

Get your credentials and start building:

What Compass enables

A complete logistics integration API for orders, inventory, products, and notifications.

Orders & Tickets

Create inbound, outbound, and transfer tickets. Track fulfillment status in real-time with synchronous responses and async webhook events.

Inventory & Product Master

Query on-hand stock across stocking locations. Update product catalogs with bulk operations and validation semantics.

Event Notifications

Receive webhook notifications at every fulfillment milestone. POSTACK, STAGE, PACK, DLVD, and exception events.

Order Fulfillment Lifecycle

1

Order Created

2

Ticket Request

3

Fulfillment

4

Delivery

Compass provides async event notifications at each stage: POSTACK (accepted), NEWETA (ETA revised), STAGE (parts staged), PACK (shipped), DLVD (delivered). Subscribe to webhooks to stay synchronized.

Quick Start in 4 Steps

Minimal setup. Maximum clarity.

1

Get credentials

Contact your Choice integration engineer for client_id and client_secret. Your API key grants access to the staging environment.

2

Authenticate

Exchange credentials for a Bearer token using OAuth 2.0 client credentials. Tokens expire after 3600 seconds.

3

Create a ticket

POST an OUTBOUND TicketRequest to /v2/tickets. Include idempotencyKey, subaccount, ssl, and line items.

4

Subscribe to events

Register a webhook URL to receive async status updates as the ticket moves through fulfillment.

{
  "requestType": "OUTBOUND",
  "clientRef": "ORD-2024-001",
  "idempotencyKey": "550e8400-e29b-41d4-a716-446655440000",
  "subaccount": "ACME-EAST",
  "ssl": "JFK-SSL-001",
  "shipTo": {
    "name": "Jane Technician",
    "address1": "456 Oak Ave",
    "city": "Boston",
    "state": "MA",
    "postalCode": "02101",
    "country": "US"
  },
  "lines": [
    {
      "partNumber": "SFP-10G-LR",
      "quantity": 2,
      "serialized": false
    },
    {
      "partNumber": "PSU-500W-GOLD",
      "quantity": 1,
      "serialized": true,
      "serialNumbers": ["PSU-500W-2024-001"]
    }
  ]
}

Security & Compliance

🔐

OAuth 2.0

Client credentials flow with 3600s token expiration. All credentials encrypted in transit.

🔗

mTLS

Mutual TLS certificate pinning available for production integrations.

📝

NDA Required

All API access requires a signed Data Processing Agreement and Integration NDA.

Support & Resources

Reporting an Issue

Found a bug or unexpected behavior? Contact your Choice integration engineer or email api-support@choicelogistics.com.

Get support →

Integration Review

Ready to move to production? Submit your integration for security and performance review before go-live.

Start review →

Changelog & Status

Stay updated on API enhancements, deprecations, and platform status. Subscribe to notifications.

View changelog →