Retrieve a Print Job
Get complete details about a specific print job using its ID:List All Print Jobs
Retrieve a list of your print jobs with filtering and pagination:Filtering Options
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of results (1-1000, default: 10) |
skip | integer | Pagination offset (default: 0) |
sort_field | string | Sort by: created, confirmed_at, reference, etc. |
sort_order | string | asc or desc (default: desc) |
testmode | boolean | Filter by test/live mode |
confirmed | boolean | Filter by confirmed status |
type | string | letter or postcard |
reference | string | Search by exact reference (case-sensitive) |
letters.status | string | Filter by letter status |
Understanding Letter Status
Each letter in a print job goes through these statuses:Status Descriptions
| Status | Description | Can Cancel? |
|---|---|---|
draft | Unconfirmed print job | ✅ Yes (delete entirely) |
waiting_to_print | Confirmed, queued for printing | ✅ Yes |
printing | Currently being printed | ❌ No |
enclosing | Being inserted into envelopes | ❌ No |
shipping | Handed to Royal Mail | ❌ No |
sent | Successfully delivered | ❌ No |
cancelled | Cancelled before printing | - |
returned | Returned to sender | ❌ No |
failed_wrong_address | Address validation failed | ❌ No |
Track Delivery Status
For tracked services, get Royal Mail tracking numbers:Tracking numbers are only available for services that return a tracking reference:
Royal Mail Signed For services give a delivery scan and signature (proof of delivery), but not full end-to-end tracking like Special Delivery or Tracked 24/48.
uk_second_class_signed_for, uk_first_class_signed_for, uk_special_delivery, uk_special_delivery_9am, tracked_24, tracked_48.Royal Mail Signed For services give a delivery scan and signature (proof of delivery), but not full end-to-end tracking like Special Delivery or Tracked 24/48.
Cancel a Print Job
Cancel confirmed print jobs before they’re printed:Cancellation Behaviour
For confirmed print jobs:- Attempts to cancel all
waiting_to_printletters - Letters already in
printing,enclosing, orshippingcannot be cancelled - Returns HTTP 200 with updated print job
- You’re refunded for successfully cancelled letters
- Deletes the entire print job
- Returns HTTP 202 with deletion confirmation
- No charges involved (was never confirmed)
Search by Reference
Use thereference field to find specific print jobs:
Monitoring Workflows
Example: Track Campaign Delivery
Example: Check for Returns
Pagination for Large Lists
Handle large numbers of print jobs with pagination:Best Practices
Use references for tracking
Use references for tracking
Always set meaningful
reference values when creating print jobs. This makes it much easier to find specific mailings later.Poll for status updates
Poll for status updates
For tracked deliveries, poll the API periodically to check status:
- Check every few hours for standard mail
- Check more frequently for urgent/tracked mail
- Store print job IDs in your database for monitoring
Handle returns gracefully
Handle returns gracefully
Monitor for returned mail and update your records:
- Update customer addresses
- Flag problematic addresses
- Implement retry logic or alternative contact methods
Cancel quickly if needed
Cancel quickly if needed
If you need to cancel, do it as soon as possible. Once printing starts, cancellation is no longer possible.

