Couriers

Optimize your delivery operations with CHRT's powerful courier API

Couriers provide the last-mile delivery solutions that complete the logistics chain. CHRT’s API enables you to manage drivers, track deliveries, and handle complex cargo requirements efficiently.

Quick Start

  1. Create Account: Sign up at chrt.com
  2. Get API Access: Contact us to obtain your Bearer token
  3. Set Base URL: Use https://api.chrt.com for production

Core Workflows

Driver Management

As a courier, your drivers are your most valuable asset. CHRT provides comprehensive driver management capabilities.

Register a New Driver

1POST /oort/drivers/create

View in API Reference →

1{
2 "schema_version": 1,
3 "user_id": "user_abc123",
4 "first_name": "John",
5 "last_name": "Smith",
6 "email_address": "john.smith@courier.com",
7 "phone_number": "+1-555-0123",
8 "license_number": "DL123456789",
9 "license_expiry": "2025-12-31",
10 "is_active": true,
11 "vehicle_id": "vehicle_xyz789"
12}

Get All Organization Drivers

1GET /oort/drivers/list/by_org_id

View in API Reference →

Update Driver Status

1POST /oort/drivers/set_activation

View in API Reference →

Control driver availability for order assignments in real-time.

Track Driver Location

1POST /oort/drivers/last_seen

View in API Reference →

Send periodic location updates (every 30-60 seconds) to enable real-time tracking for customers.

Order Operations

View Assigned Orders

1GET /oort/orders/list/by_courier_org_id

View in API Reference →

Returns all orders currently assigned to your courier organization.

Get Complete Order Details

1GET /oort/orders/{order_id_or_short_id}/full

View in API Reference →

Use this to get comprehensive order information including:

  • Complete cargo manifests
  • Pickup and delivery addresses
  • Special handling requirements
  • Customer contact information

Accept and Start Orders

1PUT /oort/task_groups/{task_group_id}/start

View in API Reference →

Assign the order to a specific driver and mark it as in-progress.

Creating Orders

As a courier, you can also create orders directly for your own customers or internal operations.

Create a New Order

1POST /oort/orders/create

View in API Reference →

1{
2 "order_client_create": {
3 "schema_version": 1
4 },
5 "task_client_creates_bundle_groupings": [
6 [
7 {
8 "task_client_create": {
9 "schema_version": 1,
10 "action": "pickup",
11 "location": {
12 "type": "Feature",
13 "geometry": {
14 "type": "Point",
15 "coordinates": [-122.4194, 37.7749]
16 },
17 "properties": {
18 "address": "123 Warehouse St, San Francisco, CA"
19 }
20 },
21 "primary_point_of_contact_id": "contact_123",
22 "arrive_by": "2024-01-15T10:00:00Z",
23 "arrive_at": "2024-01-15T09:00:00Z",
24 "comments": "Pickup from warehouse"
25 },
26 "milestone_client_creates": [
27 {
28 "schema_version": 1,
29 "type": "image",
30 "requestor_comments": "Proof of pickup"
31 }
32 ],
33 "cargo_client_creates_uuids": ["cargo-uuid-1"],
34 "email_addresses": ["dispatch@courier.com"]
35 },
36 {
37 "task_client_create": {
38 "schema_version": 1,
39 "action": "deliver",
40 "location": {
41 "type": "Feature",
42 "geometry": {
43 "type": "Point",
44 "coordinates": [-118.2437, 34.0522]
45 },
46 "properties": {
47 "address": "456 Customer Ave, Los Angeles, CA"
48 }
49 },
50 "primary_point_of_contact_id": "contact_789",
51 "arrive_by": "2024-01-15T18:00:00Z",
52 "arrive_at": "2024-01-15T17:00:00Z",
53 "comments": "Deliver to customer"
54 },
55 "milestone_client_creates": [
56 {
57 "schema_version": 1,
58 "type": "signature",
59 "requestor_comments": "Delivery confirmation"
60 }
61 ],
62 "cargo_client_creates_uuids": ["cargo-uuid-1"],
63 "email_addresses": ["dispatch@courier.com"]
64 }
65 ]
66 ],
67 "cargo_client_creates_map": {
68 "cargo-uuid-1": {
69 "schema_version": 1,
70 "cargo_type": "documents",
71 "quantity": 1,
72 "weight_pounds": 2.5,
73 "length_inches": 12,
74 "width_inches": 9,
75 "height_inches": 1
76 }
77 },
78 "order_created_by_type": "courier",
79 "order_dispatch_type": "dtc",
80 "transport_type": "ground",
81 "courier_org_id": "org_abc123",
82 "courier_user_id": "user_xyz789",
83 "shipper_org_id": null
84}

This allows you to:

  • Create orders for your own customers
  • Handle internal logistics operations
  • Manage direct customer relationships
  • Set your own pricing and terms

Task Management

Orders are organized into task groups that can be efficiently assigned to drivers.

Get Driver Task List

1GET /oort/task_groups/list/by_driver_id/{driver_id}

View in API Reference →

Update Task Progress

1POST /oort/task_groups/update

View in API Reference →

Update task status as drivers progress through their routes.

Handle Breaks and Delays

1PUT /oort/task_groups/set_pause/{task_group_id}

View in API Reference →

Pause tasks for driver breaks, traffic delays, or other interruptions.

Milestone Tracking & Proof of Delivery

Update Delivery Milestones

1POST /oort/milestones/update

View in API Reference →

Common milestone types:

  • pickup_arrival - Driver arrives at pickup location
  • pickup_complete - Cargo loaded and secured
  • in_transit - En route to destination
  • delivery_arrival - Driver arrives at delivery location
  • delivery_complete - Cargo delivered successfully

Upload Proof of Delivery

1POST /oort/milestones/upload_image/{milestone_id}

View in API Reference →

Upload photos for:

  • Signature confirmations
  • Cargo condition documentation
  • Delivery location verification
  • Incident reports
1{
2 "image": "[binary_file_data]"
3}

Retrieve Delivery Documentation

1GET /oort/milestones/images

View in API Reference →

Specialized Cargo Handling

CHRT supports various cargo types requiring different handling procedures:

Medical & Healthcare

  • blood - Blood products requiring temperature control
  • organ - Time-critical organ transport
  • pharmaceuticals - Temperature-sensitive medications
  • medical_devices - Sensitive medical equipment
  • lab_specimen - Laboratory samples

High-Value Items

  • aircraft_parts - Aviation components
  • manufacturing_equipment - Industrial machinery
  • electronics - Sensitive electronic devices

Special Handling

  • hazardous_materials - Requires special permits and handling
  • perishable - Time-sensitive perishable goods
  • frozen - Frozen goods requiring cold chain
  • documents - Important legal or business documents

Rate Management

View Your Rate Sheets

1GET /oort/courier_pay_driver_rate_sheets/by_courier_org_id

View in API Reference →

Create Custom Rate Sheet

1POST /oort/courier_pay_driver_rate_sheets/create

View in API Reference →

1{
2 "schema_version": 1,
3 "base_rate": 25.00,
4 "per_mile_rate": 1.50,
5 "per_minute_rate": 0.75,
6 "minimum_charge": 15.00,
7 "cargo_type_multipliers": {
8 "hazardous_materials": 2.0,
9 "pharmaceuticals": 1.5,
10 "organ": 3.0
11 }
12}

Get Driver-Specific Rates

1GET /oort/courier_pay_driver_rate_sheets/by_driver_id/{driver_id}

View in API Reference →

Shipper Connections

View Connection Opportunities

1GET /oort/connections/connections_info_for_couriers

View in API Reference →

See available shippers looking for courier partners in your service area.

Establish Shipper Connections

1POST /oort/connections/create_connection_to_courier

View in API Reference →

Build your network of shipper relationships for consistent order volume.

Advanced Features

Real-Time Fleet Tracking

  • Send driver location updates every 30-60 seconds during active deliveries
  • Use milestone updates to provide accurate ETAs
  • Implement geofencing for automatic pickup/delivery confirmations

Temperature Monitoring

For temperature-sensitive cargo:

  • Monitor and log temperature readings
  • Set up alerts for temperature excursions
  • Include temperature data in milestone updates

Incident Management

Handle delivery exceptions efficiently:

  • Document incidents with photos and descriptions
  • Update milestone status with delay reasons
  • Communicate proactively with shippers and customers

Notification Setup

Configure automated notifications to keep all parties informed:

1POST /oort/notification_preferences/create

View in API Reference →

1{
2 "schema_version": 1,
3 "email_on_pickup": true,
4 "email_on_delivery": true,
5 "email_on_exception": true,
6 "sms_on_delivery": true,
7 "notification_email_ids": [
8 "dispatch@courier.com",
9 "customer@shipper.com"
10 ]
11}

SDKs & Integration

Use our official SDKs for faster integration:

TypeScript:

$npm i -s @chrt-inc/typescript-sdk

See our SDK documentation for detailed examples and advanced configuration options.

Common Use Cases

1. Medical Deliveries

  • Cargo types: pharmaceuticals, medical_devices, lab_specimen
  • Key features: Temperature monitoring, chain of custody, expedited delivery
  • Best practices: Real-time tracking, immediate exception notifications

2. Same-Day Delivery

  • Cargo types: documents, electronics, spare_parts
  • Key features: Route optimization, real-time tracking, proof of delivery
  • Best practices: Frequent status updates, photo confirmations

3. Specialized Transport

  • Cargo types: hazardous_materials, aircraft_parts, organ
  • Key features: Compliance documentation, specialized handling, priority routing
  • Best practices: Enhanced monitoring, detailed documentation, immediate alerts

Best Practices

  • Always update driver locations during active deliveries for accurate tracking
  • Use detailed milestone updates to provide transparency to shippers and customers
  • Upload proof of delivery photos for every completed delivery
  • Monitor cargo-specific requirements (temperature, handling, timing)
  • Keep driver and vehicle information current for optimal order matching
  • Set up proactive notifications to reduce customer inquiries

Support

Need help with a specific integration? Contact our support team.