curl --request POST \
--url https://api.smartsend.io/v2/teams/{teamUuid}/print-jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_uuid": "44444444-4444-4444-8444-444444444444",
"copies": 1
}
'{
"data": {
"uuid": "77777777-7777-4777-8777-777777777777",
"document": {
"uuid": "44444444-4444-4444-8444-444444444444",
"name": "Shipping label",
"filename": "ORDER-1042-label.pdf",
"format": "pdf"
},
"printer": {
"uuid": "88888888-8888-4888-8888-888888888888",
"name": "Packing station"
},
"copies": 1,
"state": "pending",
"error": null,
"created_at": "2026-09-16T10:00:02Z",
"updated_at": "2026-09-16T10:00:02Z",
"printed_at": null
}
}Print or reprint a document
Validate a completed document, resolve its target printer and check file/layout compatibility, then create a print attempt. Return 201 as soon as that local job is durably accepted, normally with state pending; external submission and printing continue asynchronously. Read Location with GET or listen for print_job.updated. POST and GET use the same PrintJobResponse schema. A new call without a key creates another attempt; reusing a key never intentionally creates another print. Invalid input, unsupported format or unavailable printer selection returns 422 before creating a job. Failures after an attempt is accepted remain visible on that job.
curl --request POST \
--url https://api.smartsend.io/v2/teams/{teamUuid}/print-jobs \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"document_uuid": "44444444-4444-4444-8444-444444444444",
"copies": 1
}
'{
"data": {
"uuid": "77777777-7777-4777-8777-777777777777",
"document": {
"uuid": "44444444-4444-4444-8444-444444444444",
"name": "Shipping label",
"filename": "ORDER-1042-label.pdf",
"format": "pdf"
},
"printer": {
"uuid": "88888888-8888-4888-8888-888888888888",
"name": "Packing station"
},
"copies": 1,
"state": "pending",
"error": null,
"created_at": "2026-09-16T10:00:02Z",
"updated_at": "2026-09-16T10:00:02Z",
"printed_at": null
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Preferred language(s) for translatable content using BCP 47 language tags. Supports quality values (q-factors) for priority ordering. The API negotiates the best available language based on this header, the team's configured language, and available translations. If omitted, the team's default language is used.
"da-DK, da;q=0.9, en;q=0.8"
Optional client-supplied request identifier. When provided and matching the validation pattern, the value is echoed back in the Request-ID response header. Otherwise the server generates one. Use this to correlate requests between client and server when reporting issues.
1 - 64^[A-Za-z0-9._-]{1,64}$Optional, case-sensitive key for one intended action. Scope: team, HTTP method and canonical path. Retained for at least 24 hours and while processing. Same key and payload reuses the stored outcome without repeating side effects; the resource representation is current. Changed payload: 422 with an Idempotency-Key entry in errors. Concurrent duplicate: 409 with Retry-After and Location when known. Without a key there is no deduplication. Use GET at Location after 202.
16 - 128^[A-Za-z0-9._-]{16,128}$Path Parameters
Team uuid. All resources are scoped to this team.
Body
Print/reprint request. Validate the document, target printer and compatibility before accepting the job. A new POST without an idempotency key creates another print job. Copies apply to the complete file; per-page selection is not offered by this operation. A rejected request creates no job and does not change Document.print_status.
Completed Document to print. QR images and data exports are not eligible.
Target printer. Omit to resolve the applicable team print settings for the selected file format and page layout. The accepted job records the resolved target; later setting changes do not redirect it. Missing or incompatible selection returns 422.
Number of copies of the entire document, including every page.
1 <= x <= 100Response
Print job created.
One logical print attempt for one completed document file and copy count. It includes fixed file and printer identity snapshots, plus evolving job state. Every attempt uses this representation regardless of how it was initiated. Accepted print intent is recorded locally before file preparation or external submission, so setup failures are visible as jobs, including failures before a printer can be selected. A new reprint creates a new job; repeated delivery/status notifications update the existing job. Printer configuration changes or removal do not alter or delete print history.
Show child attributes
Show child attributes
Was this page helpful?