Skip to content

Move a sandbox request to its next status (test keys only)

POST
/api/integrations/v1/sandbox/shipment-requests/{id}/advance
curl --request POST \
--url https://app.quatlasglobal.com/api/integrations/v1/sandbox/shipment-requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/advance \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "step": "example" }'

Requires a test key (qk_test_…) with the requests:write scope. Moves a sandbox request through the life a real one has: Published, then BidReceived (any number of times), Awarded, Delivered. A live key gets 403 and nothing real ever moves.

id
required
string format: uuid
Media typeapplication/json
object
step
required

Published, BidReceived, Awarded or Delivered. Each step follows the one before it: Published from Draft, BidReceived and Awarded from Published, Delivered from Awarded.

null | string
Examplegenerated
{
"step": "example"
}

OK

Media typeapplication/json
object
awardedAt
required
null | string format: date-time
awardedCarrierName
required

The awarded carrier, once a deal exists (when the app names it).

null | string
bidCount
required

Open offers right now: a count only, never who made them or what they offered.

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
biddingDeadline
required
null | string format: date-time
cancellationReason
required

The reason given when the request was cancelled, if any.

null | string
cancelledAt
required
null | string format: date-time
costCenter
required
null | string
createdAt
required
string format: date-time
dealId
required
null | string format: uuid
dealNumber

The deal’s business number (DEAL-206447), once a deal exists. Never changes.

null | string
deliveredAt
required
null | string format: date-time
externalReference
required
null | string
id
required
string format: uuid
livemode
required

True for a live key. False for a test key (qk_test_…): a sandbox request, never real data.

boolean
metadata
required

Your own fields on the request: your company’s only, never shown to anyone else. An empty object when there are none.

object
key
additional properties
string
operationStatus
required

Once a deal exists: Closing, InProgress, Delivered, Completed, Cancelled, Withdrawn or Ended.

null | string
publishedAt
required
null | string format: date-time
purchaseOrderNumber
required
null | string
quoteNumber

The winning quote’s business number (QTE-731905), once a deal exists. Never changes.

null | string
requestNumber

The request’s business number (REQ-048213): the number a person reads out and your system can store. Never changes.

null | string
revision
required

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).

integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
shipmentNumber

The operation’s business number (SHPT-012618), once the deal went live. Never changes.

null | string
status
required

Draft, Published, BiddingClosed, Awarded or Cancelled.

string
webUrl
required
string
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"
}

Unauthorized

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Forbidden

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Not Found

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Conflict

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}

Too Many Requests

Media typeapplication/problem+json
object
detail
null | string
instance
null | string
status
null | integer | string format: int32
/^-?(?:0|[1-9]\d*)$/
title
null | string
type
null | string
Examplegenerated
{
"detail": "example",
"instance": "example",
"status": 1,
"title": "example",
"type": "example"
}