Statuses and Error Codes

Status objects in PrintedDirect always have a canonical and a translation. An example payload:

{
  "canonical": "job.status.production_dispatched",
  "translation": {
    "locale": "en",
    "name": "Production Dispatched",
    "summary": "The job has been dispatched"
  }
}

Job statuses

Job statuses can be transitioned automatically by PrintedDirect, or by user action.

NameCanonicalSummary
Pendingjob.status.incompleteThe job is pending verification from the system
Readyjob.status.readyThe job is ready and awaiting confirmation from the shop to progress to production
Imposition Queuedjob.status.imposition_queuedThe job is awaiting imposition
Imposition Manualjob.status.imposition_manualThe job requires manual imposition
Production Queuedjob.status.production_queuedThe job is sitting in the production queue awaiting to be processed
Production Startedjob.status.production_startedThe job has started the production process
Production Finishedjob.status.production_finishedThe job has finished the production process
Production Dispatchedjob.status.production_dispatchedThe job has been dispatched
Cancelledjob.status.cancelledThe job has been cancelled

Job Batch statuses

Job Batch statuses are transitioned automatically by PrintedDirect.

NameCanonicalSummary
Incompletejob_batch.status.incompleteThe job batch is incomplete and waiting on jobs to be ready or delivery information to be verified
Readyjob_batch.status.readyThe job batch is verified and ready
Dispatchedjob_batch.status.dispatchedThis job batch is dispatched
Cancelledjob_batch.status.cancelledThis job batch is delivered

Error codes

Error objects from our API will always be in the 4xx range, and contain a canonical and a message. Sometimes a Violations object is returned to indicate specific fields that failed validation.

Example without violations:

{
  "error": {
    "canonical": "api.wizard.error.conflict",
    "message": "The job provided is not valid due to conflicts between the selected options. Most common conflicts are between materials and finishings where they disable each other. Potentially the size provided cannot be supported by the finishings/material either. These can be detected by making selections one-by-one against the wizard endpoint."
  }
}

Example with violations:

{
  "error": {
    "message": "Your payload has violations that need to be looked at.",
    "canonical": "api.request.error.payload"
  },
  "violations": {
    "delivery_address.phone": [
      "Please provide a valid phone number. The phone number must be valid for the provided country or country code."
    ]
  }
}