Skip to main content

Cancel job

DELETE/v20/jobs/{jobId}

Cancels a scheduled job before it prints. The job must be in scheduled state — jobs that are already queued, processing, printed, or in any other state cannot be cancelled.

A successful cancel transitions the job to cancelled (a terminal state), removes the underlying schedule, and fires a job.cancelled webhook to your webhook_url.

Authentication​

Requires HTTP Basic authentication with your API Credential ID and Token.

Path Parameters​

ParameterTypeRequiredDescription
jobIdstring (UUID)YesThe job ID returned from POST /v20/jobs

Response​

200 — Job cancelled​

Returns the cancelled job in the same JSON:API envelope shape as GET /v20/jobs/{jobId}. The data.attributes.state is now "cancelled". Content-Type: application/vnd.api+json.

{
"data": {
"type": "jobs",
"id": "9af67ab2-ceb6-4dae-9ef3-fe145ae65cd1",
"attributes": {
"state": "cancelled",
"printAt": "2026-04-26T18:30:00.000Z",
"...": "..."
},
"relationships": { "...": "..." }
},
"included": [ "..." ]
}

404 — Job not found​

{
"errors": [
{
"status": "404",
"title": "Not Found",
"detail": "Job not found"
}
]
}

422 — Job not cancellable​

The job is in a state that doesn't allow cancellation (e.g. queued, processing, printed, cancelled).

{
"errors": [
{
"status": "422",
"title": "Unprocessable Entity",
"detail": "Only scheduled jobs can be cancelled (current state: queued)"
}
]
}

403 — Account not found or disabled​

Same JSON:API error shape as the other v20 endpoints.

401 — Not authorized​

Returned when the API credential is invalid, disabled, or missing.