Cancel a shipment request
using System.Net.Http.Headers;var client = new HttpClient();var request = new HttpRequestMessage{ Method = HttpMethod.Post, RequestUri = new Uri("https://app.quatlasglobal.com/api/integrations/v1/shipment-requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancel"), Headers = { { "Authorization", "Bearer <token>" }, }, Content = new StringContent("{ \"reason\": \"example\" }") { Headers = { ContentType = new MediaTypeHeaderValue("application/json") } }};using (var response = await client.SendAsync(request)){ response.EnsureSuccessStatusCode(); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);}HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://app.quatlasglobal.com/api/integrations/v1/shipment-requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancel")) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"reason\": \"example\" }")) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'https://app.quatlasglobal.com/api/integrations/v1/shipment-requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancel';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"reason":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://app.quatlasglobal.com/api/integrations/v1/shipment-requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancel \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "reason": "example" }'Requires the requests:write scope and an X-Idempotency-Key header; If-Match is optional (412 on a mismatch, checked under the request’s lock). Only a request your systems created through the API (409 Integration.RequestNotCreatedViaApi). Cancels where the app lets an owner cancel: Draft, Published or BiddingClosed; the pending offers expire and their carriers are told, as in the app. Cancelling a cancelled request answers it again (200). Once awarded the request is a deal: 409 Integration.RequestAwarded with the dealId; withdrawing a deal or cancelling its operation is done in the app.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Header Parameters
Section titled “Header Parameters”Request Body
Section titled “Request Body”Responses
Section titled “Responses”OK
object
The awarded carrier, once a deal exists (when the app names it).
Open offers right now: a count only, never who made them or what they offered.
The reason given when the request was cancelled, if any.
The deal’s business number (DEAL-206447), once a deal exists. Never changes.
True for a live key. False for a test key (qk_test_…): a sandbox request, never real data.
Your own fields on the request: your company’s only, never shown to anyone else. An empty object when there are none.
object
Once a deal exists: Closing, InProgress, Delivered, Completed, Cancelled, Withdrawn or Ended.
The winning quote’s business number (QTE-731905), once a deal exists. Never changes.
The request’s business number (REQ-048213): the number a person reads out and your system can store. Never changes.
Which version of the listing this is: 1 until the first change, then one more for each change of its fields (in the app or through PATCH).
The operation’s business number (SHPT-012618), once the deal went live. Never changes.
Draft, Published, BiddingClosed, Awarded or Cancelled.
Examplegenerated
{ "awardedAt": "2026-04-15T12:00:00Z", "awardedCarrierName": "example", "bidCount": 1, "biddingDeadline": "2026-04-15T12:00:00Z", "cancellationReason": "example", "cancelledAt": "2026-04-15T12:00:00Z", "costCenter": "example", "createdAt": "2026-04-15T12:00:00Z", "dealId": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "dealNumber": "example", "deliveredAt": "2026-04-15T12:00:00Z", "externalReference": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "livemode": true, "metadata": { "additionalProperty": "example" }, "operationStatus": "example", "publishedAt": "2026-04-15T12:00:00Z", "purchaseOrderNumber": "example", "quoteNumber": "example", "requestNumber": "example", "revision": 1, "shipmentNumber": "example", "status": "example", "webUrl": "example"}Bad Request
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Unauthorized
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Forbidden
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Not Found
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Conflict
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Precondition Failed
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}Unprocessable Entity
object
object
Examplegenerated
{ "detail": "example", "errors": { "additionalProperty": [ "example" ] }, "instance": "example", "status": 1, "title": "example", "type": "example"}Too Many Requests
object
Examplegenerated
{ "detail": "example", "instance": "example", "status": 1, "title": "example", "type": "example"}