Skip to main content

Status field added to driver scope

Drivers public API

  • Extended Drivers public API responses with readonly status field.
  • Possible values:
    • pending
    • activated
    • deactivated
  • The order of sorting the driver list has been changed so that drivers with the status pending come first, followed by activated, and then deactivated.
Example of get drivers list API response:

Request: GET <base_url>/carriers/<carrier_id>/drivers/

Response:

{
"meta": {
"code": 200,
"request_id": "05281e87-d992...f88063f2fcf3"
},
"data": [
{
"id": 1,
"name": "Dispatch",
"phone": "+12010000001",
"email": "newdriveremail@email.com",
"truck_capacity": 5,
"status": "activated"
},
...
],
"pagination": {
"previous": null,
"next": null
}
}
Example of get driver by ID API response:

Request: GET <base_url>/drivers/<driver_id>/

Response:

{
"meta": {
"code": 200,
"request_id": "460a3ada-2192...e152716a33a8"
},
"data": {
"id": 1,
"name": "Dispatch",
"phone": "+12010000001",
"email": "newdriveremail@email.com",
"truck_capacity": 5,
"status": "activated"
}
}

Hide access to sensitive info in orders API

Orders public API

  • Sensitive info was hidden for next endpoints
    • View order: GET /v1/orders/{{order_id}}/
    • Order Vehicles: GET /v1/orders/{{order_id}}/vehicles/
    • Order List: GET /v1/orders/
  • pdf_bol_url was hidden for canceled orders in NEW status only
  • Data considered as sensitive:
    • Pickup Name, Pickup Contact, Pickup Address, Pickup Phone (keep city, state and zip)
    • Delivery Name, Delivery Contact, Delivery Address, Delivery Phone (keep city, state and zip)
    • Vehicle VIN, Lot #, Buyer #

Hide broker's attachments in canceled orders

Orders attachments

  • For canceled orders in the NEW status, broker's attachments will no longer be returned in the API response
  • Affected API endpoints:
    • GET <base_url>/orders/{id}/attachments/
    • GET <base_url>/order_attachments/{id}/
Example of GET <base_url>/order_attachments/{id}/ response
{
"meta": {
"code": 403,
"request_id": "1d219610-13d8-430d-b575-9d602085c2fd"
},
"error": {
"context": "Broker's attachment cannot be retrieved for canceled load"
}
}

Webhooks for damages updates

1. Damages Webhooks

  • Extended create damage webhook with new fields:
    • vehicle_id - ID of the vehicle associated with the damage
    • order_id - ID of the order associated with the damage
  • Extended delete damage webhook with new fields:
    • vehicle_id - ID of the vehicle associated with the damage
    • order_id - ID of the order associated with the damage
Example of create damage webhook payload:
{
"guid": "3308a9d9-52c7-46e4-994f-e204fc76e428",
"occurred_at": "2025-05-29T05:09:59.677261-0500",
"action": "damage.created",
"data": {
"id": 1,
"code": "BR",
"notes": "Some notes",
"step": "pickup",
"photo_id": 1,
"vehicle_id": 1,
"order_id": 1
}
}
Example of delete damage webhook payload:
{
"guid": "3308a9d9-52c7-46e4-994f-e204fc76e428",
"occurred_at": "2025-05-29T05:09:59.677261-0500",
"action": "damage.deleted",
"data": {
"id": 1,
"photo_id": 1,
"vehicle_id": 1,
"order_id": 1
}
}

New fields in EPOD Sync API

1. Damages API

  • Extended Damage API with step field taken from responsible Vehicle Photo object
  • Extended damages Webhooks with step field taken from responsible Vehicle Photo object
Example of get damages list API response:

Request: GET <base_url>/photos/<vehicle_photo_id>/damages/

Response:

{
"meta": {
"code": 200,
"request_id": "6b084923-...-6bd7f1a95830"
},
"data": [
{
"id": 1,
"code": "BR",
"notes": "Some note 1",
"step": "pickup"
},
{
"id": 2,
"code": "BR",
"notes": "Some note 2",
"step": "pickup"
}
],
"pagination": {
"previous": null,
"next": null
}
}
Example of get damage by ID API response:

Request: GET <base_url>/damages/<damage_id>/

Response:

{
"meta": {
"code": 200,
"request_id": "6b084923-...-6bd7f1a95830"
},
"data": {
"id": 1,
"code": "BR",
"notes": "Some note 1",
"step": "delivery"
}
}
Example of damage.created webhook payload:
{
"data": {
"id": 1,
"code": "BR",
"notes": "Some note 1",
"step": "pickup",
"photo_id": 1
}
}

2. Orders API

  • Extended Orders API with driver_pay field
Example of get order by ID API response:

Request: GET <base_url>/orders/<id>/

Response:

{
"meta": {
"code": 201,
"request_id": "3fe34e79-f2de...2514b2ee9aaa"
},
"data": {
"id": 1382732,
"carrier_id": 1,
"carrier_name": "Carrier",
"driver_id": null,
"number": "Test Order",
"instructions": "instructions here",
"buyer_number": "10000",
"price": "200.00",
"broker_fee": "20.00",
"status": "new",
"vehicles": [
{
"id": 444,
"make": "Chevrolet",
"model": "Camaro",
"year": 1950,
"color": "yellow",
"vin": "93773NF830JF83KD",
"type": "sedan",
"lot_number": "9384",
"is_inoperable": true,
"requires_enclosed_trailer": false,
"photos": [
{
"url": "https://superdispatch-staging.s3.amazonaws.com/static/msd/images/vehicles/10.png"
}
]
}
],
"pdf_bol_url": "https://staging.carrier.superdispatch.org/orders/pdf-bol/.../",
"inspection_type": "advanced",
"is_canceled": false,
"internal_notes": [],
"internal_load_id": "Load #1",
"parent_order_id": 1,
"driver_pay": "100.12",
"payment": {
"terms": "ach",
"notes": "payment notes",
"paid_at": null,
"invoice": {
"id": "5",
"sent_at": null
}
},
"trip": {
"id": 1,
"name": "Trip 1"
},
"customer": {
"name": "Test Shipper",
"address": "9525 Manchester Lane Bay Shore",
"city": "New York",
"state": "NY",
"zip": "90210",
"contact": {
"name": "Test Shipper",
"phone": "+12011111111",
"email": "testshipperemail@email.com",
"fax": null
}
},
"pickup": {
"scheduled_at": "2023-10-15T00:00:00-05:00",
"completed_at": null,
"notes": null,
"venue": {
"name": "Test Pickup",
"address": "pickup test address",
"city": "Kansas City",
"state": "MO",
"zip": "64030",
"contact": {
"name": "Joe",
"phone": "+12015550123",
"phone2": "+12015551234",
"email": "test.pickup_contact@email.com"
}
}
},
"delivery": {
"scheduled_at": "2023-10-20T00:00:00-05:00",
"completed_at": null,
"notes": null,
"venue": {
"name": "Test Delivery",
"address": "delivery test address",
"city": "Austin",
"state": "TX",
"zip": "10999",
"contact": {
"name": "Doe",
"phone": "+12015550123",
"phone2": "+12015550122",
"email": "test.delivery_contact@email.com"
}
}
}
}
}
Example of create order API request:

Request: POST <base_url>/orders/

Body:

{
"driver_id": 1,
"number": "Test Order",
"price": 200,
"buyer_number": "10000",
"broker_fee": 20,
"instructions": "instructions here",
"inspection_type": "advanced",
"internal_load_id": "Load #1",
"driver_pay": 100.12,
"payment": {
"terms": "ach",
"notes": "payment notes",
"payment_method": "ach"
"payment_terms": "2_days"
},
"customer": {
"name": "Test Shipper",
"address": "9525 Manchester Lane Bay Shore",
"city": "New York",
"state": "NY",
"zip": "90210",
"contact": {
"name": "Test Shipper",
"phone": "+12011111111",
"email": "testshipperemail@email.com"
}
},
"pickup": {
"scheduled_at": "2023-10-15",
"note": "Some pickup notes",
"venue": {
"name": "Test Pickup",
"notes": "notes",
"address": "pickup test address",
"city": "Kansas City",
"state": "MO",
"zip": "64030",
"contact": {
"name": "Joe",
"phone": "+12015550123",
"phone2": "+12015551234",
"email": "test.pickup_contact@email.com"
}
}
},
"delivery": {
"scheduled_at": "2023-10-20",
"note": "Some delivery notes",
"venue": {
"name": "Test Delivery",
"address": "delivery test address",
"city": "Austin",
"state": "TX",
"zip": "10999",
"contact": {
"name": "Doe",
"phone": "+12015550123",
"phone2": "+12015550122",
"email": "test.delivery_contact@email.com"
}
}
},
"vehicles": [
{
"make": "Chevrolet",
"model": "Camaro",
"year": "1950",
"color": "yellow",
"vin": "93773NF830JF83KD",
"type": "sedan",
"lot_number": "9384",
"is_inoperable": true,
"requires_enclosed_trailer": false
},
...
]
}

Response:

{
"meta": {
"code": 201,
"request_id": "3fe34e79-f2de...2514b2ee9aaa"
},
"data": {
"id": 1382732,
"carrier_id": 1,
"carrier_name": "Carrier",
"driver_id": null,
"number": "Test Order",
"instructions": "instructions here",
"buyer_number": "10000",
"price": "200.00",
"broker_fee": "20.00",
"status": "new",
"vehicles": [
{
"id": 444,
"make": "Chevrolet",
"model": "Camaro",
"year": 1950,
"color": "yellow",
"vin": "93773NF830JF83KD",
"type": "sedan",
"lot_number": "9384",
"is_inoperable": true,
"requires_enclosed_trailer": false,
"photos": [
{
"url": "https://superdispatch-staging.s3.amazonaws.com/static/msd/images/vehicles/10.png"
}
]
}
],
"pdf_bol_url": "https://staging.carrier.superdispatch.org/orders/pdf-bol/.../",
"inspection_type": "advanced",
"is_canceled": false,
"internal_notes": [],
"internal_load_id": "Load #1",
"parent_order_id": 1,
"driver_pay": "100.12",
"payment": {
"terms": "ach",
"notes": "payment notes",
"paid_at": null,
"invoice": {
"id": "5",
"sent_at": null
}
},
"trip": {
"id": 1,
"name": "Trip 1"
},
"customer": {
"name": "Test Shipper",
"address": "9525 Manchester Lane Bay Shore",
"city": "New York",
"state": "NY",
"zip": "90210",
"contact": {
"name": "Test Shipper",
"phone": "+12011111111",
"email": "testshipperemail@email.com",
"fax": null
}
},
"pickup": {
"scheduled_at": "2023-10-15T00:00:00-05:00",
"completed_at": null,
"notes": null,
"venue": {
"name": "Test Pickup",
"address": "pickup test address",
"city": "Kansas City",
"state": "MO",
"zip": "64030",
"contact": {
"name": "Joe",
"phone": "+12015550123",
"phone2": "+12015551234",
"email": "test.pickup_contact@email.com"
}
}
},
"delivery": {
"scheduled_at": "2023-10-20T00:00:00-05:00",
"completed_at": null,
"notes": null,
"venue": {
"name": "Test Delivery",
"address": "delivery test address",
"city": "Austin",
"state": "TX",
"zip": "10999",
"contact": {
"name": "Doe",
"phone": "+12015550123",
"phone2": "+12015550122",
"email": "test.delivery_contact@email.com"
}
}
}
}
}

Carrier Public API Webhook Changes

New Webhook Fields and Their Usage

We've enhanced our Carrier public API webhook system with two important new fields and improved our documentation around webhook handling:

New Fields
  1. guid - A unique identifier for each webhook event

    • Use this field to implement idempotency in your webhook handling
    • Store this ID to detect and handle duplicate webhook deliveries
  2. occurred_at - Timestamp when the event was processed by our system

    • Helps with event ordering and debugging
    • Format: ISO 8601 with timezone offset
Improved Webhook Handling

We've expanded our documentation to provide clearer guidance on:

  • Duplicate Event Handling: How to use the new guid field to detect and handle duplicate webhook deliveries
  • Retry Logic: Understanding our webhook retry behavior
  • Event Ordering: How to use occurred_at to properly sequence events in your system

These changes will help you build more reliable webhook integrations and make it easier to debug issues when they arise.

For more details, please refer to our updated documentations.

Carrier public API ePOD synchronization

1. Inspection Photos API

  • Extended Vehicle API with additional photos fields: id, step, subject, taken_at, latitude, longitude
  • Added new API endpoint for creating inspection photos
  • Added new API endpoint for receiving inspection photos
  • Added new API endpoint for receiving inspection photo by id
  • Added new API endpoint for deleting inspection photo by id
Example of vehicle list API endpoint response

Request: GET <base_url>/orders/<order_id>/vehicles/

{
"meta": {
"status": 200,
"request_id": "ad123-ada434....-123def"
},
"data": [
{
"id": 1,
"make": "BMW",
"model": "E250",
"year": 1995,
"color": "black",
"vin": "VIN",
"type": "sedan",
"lot_number": "LOT number",
"is_inoperable": false,
"requires_enclosed_trailer": true,
"photos": [
{
"id": 1,
"step": "pickup",
"subject": "all_keys",
"taken_at": "2025-03-20T10:25+0000",
"latitude": 12.3454,
"longitude": 24.4543,
"url": "Super Dispatch file bucket URL",
}
]
}
],
"pagination": {
"next": "",
"prev": ""
}
}
Example of vehicle create API endpoint

Request: POST <base_url>/vehicles/<vehicle_id>/photos/

{
"url": "url",
"step": "pickup",
"subject": "front_windshield",
"taken_at": "2025-03-20T10:25+0000",
"latitude": 12.3454,
"longitude": 24.4543
}

Response:

{
"meta": {
"code": 201,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"url": "Super Dispatch file bucket URL",
"step": "pickup",
"subject": "front_windshield",
"taken_at": "2025-03-20T10:25+0000",
"latitude": 12.3454,
"longitude": 24.4543
}
}
Example of receiving inspection photos API endpoint

Request: GET <base_url>/vehicles/{vehicle_id}/photos/

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": [
{
"id": 1,
"url": "Super Dispatch file bucket URL",
"step": "pickup",
"subject": "front_windshield",
"taken_at": "2025-03-20T10:25+0000",
"latitude": 12.3454,
"longitude": 24.4543
}
],
"pagination": {
"previous": "",
"next": ""
}
}
Example of receiving inspection photo by id API endpoint

Request: GET <base_url>/photos/<photo_id>/

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"url": "Super Dispatch file bucket URL",
"step": "pickup",
"subject": "front_windshield",
"taken_at": "2025-03-20T10:25+0000",
"latitude": 12.3454,
"longitude": 24.4543
}
}
Example of deleting inspection photo by id API endpoint

Request: DELETE <base_url>/photos/<photo_id>/

{
"meta": {
"code": 204,
"request_id": "ad123-ada434....-123def"
}
}

2. Damages API

  • Added new API endpoint for creating vehicle damage
  • Added new API endpoint for receiving vehicle damages
  • Added new API endpoint for receiving vehicle damage by id
  • Added new API endpoint for deleting vehicle damage by id
Example of vehicle damage create API endpoint

Request: POST <base_url>/photos/<photo_id>/damages/

{
"code": "BR",
"notes": "Notes about damage"
}

Response:

{
"meta": {
"code": 201,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"code": "BR",
"notes": "Notes about damage"
}
}
Example of receiving vehicle damages API endpoint

Request: GET <base_url>/photos/<photo_id>/damages/

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": [
{
"id": 1,
"code": "BR",
"notes": "Notes about damage"
}
],
"pagination": {
"previous": "",
"next": ""
}
}
Example of receiving vehicle damage by id API endpoint

Request: GET <base_url>/damages/<damage_id>/

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"code": "BR",
"notes": "Notes about damage"
}
}
Example of deleting vehicle damage by id API endpoint

Request: DELETE <base_url>/damages/<damage_id>/

{
"meta": {
"code": 204,
"request_id": "ad123-ada434....-123def"
}
}

3. Inspections API

  • Added new API endpoint for creating vehicle inspection
  • Added new API endpoint for receiving vehicle inspection by step
  • Added new API endpoint for updating vehicle inspection by step
Example of vehicle inspection create API endpoint

Request: POST <base_url>/vehicles/<vehicle_id>/inspections/<step>/

{
"title_present": true,
"is_drivable": true,
"all_glasses_ok": true,
"navigation_disk_present": true,
"spare_tire_present": true,
"cargo_cover_present": true,
"plugin_charger_cable_present": true,
"windscreen_present": true,
"radio_present": true,
"manuals_present": true,
"headphones_present": true,
"headrests_count": 3,
"remotes_count": 3,
"valet_keys_count": 3
}

Response:

{
"meta": {
"code": 201,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"step": "pickup",
"title_present": true,
"is_drivable": true,
"all_glasses_ok": true,
"navigation_disk_present": true,
"spare_tire_present": true,
"cargo_cover_present": true,
"plugin_charger_cable_present": true,
"windscreen_present": true,
"radio_present": true,
"manuals_present": true,
"headphones_present": true,
"headrests_count": 3,
"remotes_count": 3,
"valet_keys_count": 3
}
}
Example of receiving vehicle inspection by step API endpoint

Request: GET <base_url>/vehicles/<vehicle_id>/inspections/<step>/

{
"meta": {
"code": 200,
"request_id": ""
},
"data": {
"id": 1,
"step": "pickup",
"title_present": true,
"is_drivable": true,
"all_glasses_ok": true,
"navigation_disk_present": true,
"spare_tire_present": true,
"cargo_cover_present": true,
"plugin_charger_cable_present": true,
"windscreen_present": true,
"radio_present": true,
"manuals_present": true,
"headphones_present": true,
"headrests_count": 3,
"remotes_count": 3,
"valet_keys_count": 3
}
}
Example of updating vehicle inspection by step API endpoint

Request: PATCH <base_url>/vehicles/<vehicle_id>/inspections/<step>/

{
"title_present": true,
"is_drivable": true,
"all_glasses_ok": true,
"navigation_disk_present": true,
"spare_tire_present": true,
"cargo_cover_present": true,
"plugin_charger_cable_present": true,
"windscreen_present": true,
"radio_present": true,
"manuals_present": true,
"headphones_present": true,
"headrests_count": 3,
"remotes_count": 3,
"valet_keys_count": 3
}

Response:

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"step": "pickup",
"title_present": true,
"is_drivable": true,
"all_glasses_ok": true,
"navigation_disk_present": true,
"spare_tire_present": true,
"cargo_cover_present": true,
"plugin_charger_cable_present": true,
"windscreen_present": true,
"radio_present": true,
"manuals_present": true,
"headphones_present": true,
"headrests_count": 3,
"remotes_count": 3,
"valet_keys_count": 3
}
}

4. Offers API

  • Added new API endpoint for receiving offers
  • Added new API endpoint for receiving offer by id
  • Added new API endpoint for accepting offer
  • Added new API endpoint for declining offer
Example of receiving offers API endpoint

Request: GET <base_url>/offers/

{
"mata": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": [
{
"id": 1,
"status": "pending",
"load_id": null,
"order": {
"number": "Test Order",
"payment_method": "cash",
"payment_terms": "1_3_days",
"instructions": "instructions here",
"price": "200.00",
"price_per_mile": "10.20",
"distance_in_miles": 98.2,
"inspection_type": "advanced",
"pickup": {
"scheduled_at": "2023-10-15T00:00:00-05:00",
"notes": null,
"venue": {
"name": "Test Pickup",
"address": "pickup test address",
"city": "Kansas City",
"state": "MO",
"zip": "64030",
"contact": {
"name": "Joe",
"phone": "+12015550123",
"email": "test.pickup_contact@email.com"
}
}
},
"delivery": {
...
}
"customer": {
...
},
"vehicles": [
...
]
}
}
]
"pagination": {
"prev": "",
"next": ""
}
}
Example of receiving offer by id API endpoint

Request: GET <base_url>/offers/<offer_id>/

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"status": "pending",
"load_id": null,
"order": {
...
}
}
}
Example of accepting offer API endpoint

Request: POST <base_url>/offers/<offer_id>/accept/

Response:

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"status": "accepted",
"load_id": 1,
"order": {
...
}
}
}
Example of declining offer API endpoint

Request: POST <base_url>/offers/<offer_id>/decline/

Response:

{
"meta": {
"code": 200,
"request_id": "ad123-ada434....-123def"
},
"data": {
"id": 1,
"status": "declined",
"load_id": null,
"order": {
...
}
}
}

5. Offer Webhooks

  • Added webhook for offer received
  • Added webhook for offer is updated
  • Added webhook for offer is canceled by shipper
Example of offer received webhook

Action name: offer.received Payload:

{
"action": "offer.receieved",
"data": {
"id": 1,
"status": "pending",
"load_id": null,
"order": {
"number": "Test Order",
"payment_method": "cash",
"payment_terms": "1_3_days",
"instructions": "instructions here",
"price": "200.00",
"price_per_mile": "10.2",
"distance_in_miles": 98.2,
"inspection_type": "advanced",
"pickup": {
"scheduled_at": "2023-10-15T00:00:00-05:00",
"notes": null,
"venue": {
"name": "Test Pickup",
"address": "pickup test address",
"city": "Kansas City",
"state": "MO",
"zip": "64030",
"contact": {
"name": "Joe",
"phone": "+12015550123",
"email": "test.pickup_contact@email.com"
}
}
},
"delivery": {
"scheduled_at": "2023-10-20T00:00:00-05:00",
"notes": null,
"venue": {
"name": "Test Delivery",
"address": "delivery test address",
"city": "Austin",
"state": "TX",
"zip": "10999",
"contact": {
"name": "Doe",
"phone": "+12015550123",
"email": "test.delivery_contact@email.com"
}
}
}
"customer": {
"name": "Test Shipper",
"address": "9525 Manchester Lane Bay Shore",
"city": "New York",
"state": "NY",
"zip": "90210",
"contact": {
"name": "Test Shipper",
"phone": "+12011111111",
"email": "testshipperemail@email.com"
}
},
"vehicles": [
{
"make": "Chevrolet",
"model": "Camaro",
"color": "yellow",
"vin": "93773NF830JF83KD",
"type": "sedan",
"lot_number": "9384",
"price": "23.00"
"is_inoperable": true,
"requires_enclosed_trailer": false,
"photos": [
{
"url": "Super Dispatch file bucket URL",
}
]
}
]
}
}
}
Example of offer updated webhook

Action name: offer.updated Payload:

{
"action": "offer.updated",
"data": {
"id": 1,
"status": "pending",
"load_id": null,
"order": {
"number": "Test Order",
"payment_method": "cash",
"payment_terms": "1_3_days",
"instructions": "instructions here",
"price": "200.00",
"price_per_mile": "10.2",
"distance_in_miles": 98.2,
"inspection_type": "advanced",
...
}
}
}
Example of offer canceled by shipper webhook

Action name: offer.canceled Payload:

{
"action": "offer.canceled",
"data": {
"id": 1,
"status": "canceled",
"load_id": null,
"order": {
"number": "Test Order",
"payment_method": "cash",
"payment_terms": "1_3_days",
...
}
}
}

6. Signatures API

  • Added new API endpoint for creating signature
  • Added new API endpoint for receiving signature by step
  • Added new API endpoint for delete signature
Example of creating signature API endpoint

Request: POST <base_url>/orders/<order_id>/signatures/<step>/

{
"url": "<url to file with signature>",
"owner": "driver",
"signer_name": "Name of signature",
"latitude": 12.3453,
"longitude": 24.5234
}

Response:

{
"meta": {
"code": 201,
"request_id": "ad123-ada434....-123def"
},
"data": {
"url": "Super Dispatch file bucket URL",
"owner": "driver",
"signer_name": "Name of signature",
"latitude": 12.3453,
"longitude": 24.5234
}
}
Example of receiving signature by step API endpoint

Request: GET <base_url>/orders/<order_id>/signatures/<step>/

Response:

{
"meta": {
"code": 200,
"request_id": ""
},
"data": {
"driver": {
"url": "Super Dispatch file bucket URL",
"signer_name": "Name of signature",
"latitude": 12.3453,
"longitude": 24.5234
},
"customer": {
"url": "Super Dispatch file bucket URL",
"signer_name": "Name of signature",
"latitude": 12.3453,
"longitude": 24.5234
}
}
}
Example of deleting signature API endpoint

Request: DELETE <base_url>/orders/<order_id>/signatures/<step>/<owner>/

Response:

{
"meta": {
"code": 204,
"request_id": "ad123-ada434....-123def"
}
}

Payment Method and Terms Improvements

We've enhanced our payment handling for Carrier API users to better distinguish between payment methods and terms. This update maintains backward compatibility with clearer payment fields.

What's New

1. Updated Payment Structure
  • Added fields directly in the payment object:
    • payment_method: Specifies how payment is made (e.g., Cash, ACH, Credit Card)
    • payment_terms: Specifies when payment is due (e.g., 2 Days, On Delivery)
2. Backward Compatibility
  • The legacy payment.terms field will remain supported until April 30, 2025
  • All new integrations should use the updated payment object
  • Legacy terms will be automatically mapped to new fields
Deprecation Notice
Old FieldStatusReplacementDeadline
payment.termsDeprecatedpayment.payment_method and payment.payment_termsMay 30, 2025
Migration Steps
  1. Update requests to use new structure:
"payment": {
"payment_method": "ach",
"payment_terms": "2_days"
}
  1. Remove payment.terms from your implementation
  2. Test with both field formats during transition period

Updated API Documentation

Create Order

POST <base_url>/orders/

Request Body
{
"...": "...",
"payment": {
"terms": "ach", // will be DEPRECATED - Use payment_details instead
"payment_method": "ach",
"payment_terms": "2_days"
}
}
Payment Method Options
  • cash - Cash
  • check - Check
  • cashiers_check - Cashier's Check
  • money_order - Money Order
  • comchek - Comchek
  • ach - ACH
  • direct_deposit - Direct Deposit
  • credit_card - Credit Card
  • venmo - Venmo
  • cashapp - CashApp
  • uship - UShip
  • zelle - Zelle
  • superpay - SuperPay
  • other - Other
Payment Term Options
  • on_delivery - On Delivery
  • on_pickup - On Pickup
  • cash_on_delivery - Cash on Delivery
  • cash_on_pickup - Cash on Pickup
  • check_on_delivery - Check on Delivery
  • check_on_pickup - Check on Pickup
  • quickpay - Quick Pay
  • 2_days - 2 Business Days
  • 5_days - 5 Business Days
  • 7_days - 7 Business Days
  • 10_days - 10 Business Days
  • 15_days - 15 Business Days
  • 20_days - 20 Business Days
  • 30_days - 30 Business Days
  • 45_days - 45 Business Days
  • 60_days - 60 Days
  • other - Other
Legacy Term Mapping
Legacy ValueNew MethodNew Term
achach(use payment_terms)
comchekcomchek(use payment_terms)
cash_on_pickupcashon_pickup
cash_on_deliverycashon_delivery
check_on_deliverycheckon_delivery
on_pickup(use payment_method)on_pickup
on_delivery(use payment_method)on_delivery
5_days(use payment_method)5_days
Full Example Request
{
"driver_id": 1,
"number": "ORDER-123",
"payment": {
"payment_method": "credit_card",
"payment_terms": "7_days"
},
"customer": {
"...": "..."
},
"...": "..."
}
Recommendations
1. Immediate Action
  • Begin using the updated payment object in all new order creations
  • Read from payment.payment_method and payment.payment_terms for order details
  • Update existing integrations by May 30, 2025
2. Monitoring
  • We'll send reminder emails 30 days before deprecation
3. Support