Build integrations with the Choice API
Connect your logistics operations to Choice's fulfillment platform. OAuth 2.0 secured, webhook-driven, production-ready.
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"
}'
{
"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
Order Created
Ticket Request
Fulfillment
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.
Get credentials
Contact your Choice integration engineer for client_id and client_secret. Your API key grants access to the staging environment.
Authenticate
Exchange credentials for a Bearer token using OAuth 2.0 client credentials. Tokens expire after 3600 seconds.
Create a ticket
POST an OUTBOUND TicketRequest to /v2/tickets. Include idempotencyKey, subaccount, ssl, and line items.
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"]
}
]
}
Documentation
Quick Start Guide
OAuth 2.0 authentication and your first ticket request in 5 minutes.
Core Concepts
Tickets, orders, SSLs, serialization, subaccounts, and idempotency explained.
API Reference
Complete schemas, error codes, and endpoint documentation.
Integration Patterns
Real-world patterns for inventory lookup, notifications, and bulk updates.
Environments & Versioning
Staging vs production, versioning strategy, and deprecation policy.
Error Handling
HTTP status codes, exception payloads, and retry strategies.
Security & Access
NDA requirements, credentials, and mTLS for production integrations.
Support & Escalation
Open tickets, schedule integration reviews, and check platform status.
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 →