Skip to main content

Integrated Insurance API

Shipper's Interest insurance is coming to the API, offered by Super Dispatch in partnership with Tint, our insurance provider. The endpoints serve two distinct purposes.

Quoting gets you an estimated price of coverage for one vehicle at a time, from its year, make, model and vehicle type plus the pickup and delivery locations. No order is involved, so you can quote at any point.

Policies on an order create draft policies for an order's vehicles and read back the insurance state. Completing checkout and managing the insurance afterwards happen in the Tint portal, which you reach through the personal_link the API returns. Webhooks tell you when a policy is issued or canceled, so you do not have to poll for those.

This is an additive change. No existing endpoint, field, or webhook action changes behavior.

New Endpoints

EndpointWhat it does
POST /v1/public/insurances/quotesEstimates a premium for one vehicle on a route.
GET /v1/public/orders/{guid}/insuranceReturns the insurance state of an order and its Tint portal link.
POST /v1/public/orders/{guid}/sync-insurance-policyCreates draft policies for the order's eligible vehicles.

Quoting does not require an order, so you can get an estimated insurance quote for a vehicle at any point — before the order exists, or once it is created but not yet picked up:

curl -X "POST" "https://api.shipper.superdispatch.com/v1/public/insurances/quotes" \
-H 'Authorization: Bearer <access_token>' \
-H 'Content-Type: application/json; charset=utf-8' \
-d $'{
"pickup": { "city": "San Francisco", "state": "CA", "zip": "94102" },
"delivery": { "city": "Los Angeles", "state": "CA", "zip": "90001" },
"vehicle": {
"year": 2020,
"make": "Honda",
"model": "Accord",
"vehicle_type": "sedan",
"vin": "JHMZE2H73AS009608"
}
}'
{
"status": "success",
"data": {
"objects": [
{
"plan_slug": "shippers-interest",
"calculated_premium": 47.79
}
]
}
}

New Webhook Actions

insurance.issued is sent when the insurer issues a policy, carrying the issued premium and the portal link. insurance.canceled is sent when a policy ends, with a cancellation_reason.

A policy can be canceled as a side effect of editing an order — removing or changing an insured vehicle voids its policy — so insurance.canceled is not always the result of a deliberate cancellation. Check cancellation_reason rather than assuming.

What To Expect

  • vin is optional. Send it when you have it; a quote does not require one.
  • The premium is estimated from the vehicle's declared value and the distance between pickup and delivery. Normally the insurer estimates that declared value itself from the vehicle details you send. Your value is a fallback, used only when it cannot arrive at a figure, not an override — so sending one does not always mean the premium quote is based on it.
  • A quote can fail with 409 VEHICLE_VALUE_REQUIRED. This happens when the insurer cannot determine what the vehicle is worth and you supplied no value to fall back on. Retry with vehicle.value set.
  • personal_link is null until a draft policy exists. GET .../insurance only reports the state it finds; it does not create anything. Call POST .../sync-insurance-policy first for an order that has never been quoted.
  • sync-insurance-policy is rate limited to one call per order every 30 seconds. Calls inside that window return 429 RATE_LIMIT_EXCEEDED. The window is consumed even by a failed sync, so wait rather than retrying immediately.
  • ZIP is optional on quotes. Supply city and state at minimum; that only generates the distance. A full address (building number, street, city) produces a more accurate premium, so the price matches when you proceed to purchase the insurance on Tint's platform.

API reference: Calculate an insurance premium, Get insurance details for an order, Sync insurance policy for an order. See the Webhooks documentation for full payload details.