Provider · September 30, 2026

Quoting an invited request from a carrier system

A provider checks whether it has already quoted a shipment, then posts one quote for an invited request from its own pricing system.

A shipper invites a provider to quote. The rate is calculated in the carrier’s pricing system. This write-up is how that rate is posted to the request the provider was actually invited to, without posting a second quote for the same shipment.

The problem

The invitation is in Cargobase. The price is in the carrier system. Until someone copies it across, the shipper’s request stays open with no quote from this provider. Posting again on the next save creates a duplicate.

The integration should quote only requests this provider can see, and it should be able to answer “have we already quoted S…?” before it posts.

What we use

A Provider token. Shipper tokens do not submit quotes. See Get API access.

These calls are in the Provider API reference.

NeedCall
The request, if it is not awarded yetGET /api/1/requests/{shipment_reference}/
Quotes this provider already posted for that shipmentGET /api/1/quotes/?shipment={shipment_reference}
Post the quotePOST /api/1/quotes/
Change a quote already submittedPUT /api/1/quotes/{quotation_reference}/

A provider can quote only requests they were invited to. The quotes list returns quotes submitted by the authenticated provider for the shipment query, not every carrier’s quotes.

After the request is awarded it becomes a shipment. Read GET /api/1/shipments/{shipment_reference}/ for the live record. Do not keep posting quotes onto an awarded shipment.

How it plugs into the carrier system

Store the Cargobase shipment_reference (S…) on the pricing job when the invitation is imported. Store quotation_reference (Q…) after the first successful post.

Before creating a price:

GET https://sandbox.cargobase.com/api/1/quotes/?shipment=S12345678
Authorization: Token <access_token>
Accept: application/json

If count is already greater than zero, update the existing quotation with PUT instead of posting another one.

The body is the same four groups the reference documents: organization (including shipment_id and the provider team), service (freight mode), financial (currency and charges), and schedule (expected pickup and delivery). On Submit Quote, the example menu has a payload for each supported mode: regular air freight, NFO, OBC, road, and ocean. Use the one that matches freight_mode. Chargeable weight applies to air and NFO, max weight to OBC, truck type to road, and vessel fields to ocean.

POST https://sandbox.cargobase.com/api/1/quotes/
Authorization: Token <access_token>
Content-Type: application/json

A successful post returns the quote that was stored. Persist quotation_reference on the carrier job and treat a later edit as PUT, not a second POST.

403 means the token cannot see that shipment or is not a provider token. Do not record a quote in the carrier system in that case.

What this achieves

An invited request receives one quote from this carrier, tied to the S… id, with the rate that was calculated in the pricing system. A second run sees the existing quote and updates it instead of adding another. Once the shipment is awarded, status and milestones move to the shipment and tracking calls, not to another quote.