Partner API
Integrate your service with Zeccer printing
Print Links (GET)
Create print links that redirect users directly to the print page. Perfect for email links, buttons on your website, or any place where you need a simple URL.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| documentUrls | string | Yes | URL to download file from (repeat parameter for multiple files) |
| format | "a4" | "a3" | "photo" | No | Print format: "a4" for documents, "a3" for large format (delivery only), "photo" for photos. If omitted, the user selects on the print page. |
| fulfillment.method | "express" | "delivery" | No | Pre-selects the production method. Omit to let the user choose. |
| fulfillment.printerId | string | No | Self-service printer code; binds the order to that printer. Express only. |
| partnerId | string | No | Your partner identifier for analytics |
| redirect | boolean | No | Set to "true" to redirect directly to print page |
Fulfillment method
Optional. Pre-selects how the order is produced. Omit to let the user choose on the print page.
methodstring= "express"requiredprinterIdstringoptionalBinds the order to a specific self-service printer. Omit to let the user pick.
methodstring= "delivery"requiredURL query / multipart form keys
fulfillment.method = express | delivery fulfillment.printerId = <printer-code> # express only
Example with one file
https://start.zeccer.pl/api/orders/new?documentUrls=https://example.com/doc.pdf&format=a4&partnerId=your-partner-id&redirect=true
Example with flow pre-selection
https://start.zeccer.pl/api/orders/new?documentUrls=https://example.com/doc.pdf&format=a4&fulfillment.method=express&fulfillment.printerId=ABCD&partnerId=your-partner-id&redirect=true
Example with multiple files
https://start.zeccer.pl/api/orders/new?documentUrls=https://example.com/doc1.pdf&documentUrls=https://example.com/doc2.pdf&format=a4&redirect=true
Add redirect=true to automatically redirect to the print page. Without it, you'll get a JSON response with the redirect URL. Repeat the documentUrls parameter to include multiple files.
Backend Integration (POST)
For server-side integrations where you need to upload files directly or process multiple documents programmatically.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| documentUrls | string[] | * | Array of URLs to download files from |
| files | File[] | * | Files to upload (multipart/form-data) |
| format | "a4" | "a3" | "photo" | No | Print format: "a4" for documents, "a3" for large format (delivery only), "photo" for photos. If omitted, the user selects on the print page. |
| fulfillment | object | No | Production method (express / delivery). See Fulfillment method below. |
| partnerId | string | No | Your partner identifier for analytics |
| redirect | boolean | No | If true, returns HTTP 302 redirect instead of JSON |
* Either documentUrls or files must be provided
Fulfillment method
Optional. Pre-selects how the order is produced. Omit to let the user choose on the print page.
methodstring= "express"requiredprinterIdstringoptionalBinds the order to a specific self-service printer. Omit to let the user pick.
methodstring= "delivery"requiredJSON body
"fulfillment": { "method": "express", "printerId": "ABCD" }
"fulfillment": { "method": "delivery" }Multipart uploads use the flat keys shown above (fulfillment.method, fulfillment.printerId).
Example with URLs (JSON)
curl -X POST https://start.zeccer.pl/api/orders \
-H "Content-Type: application/json" \
-d '{
"documentUrls": [
"https://example.com/doc1.pdf",
"https://example.com/doc2.pdf"
],
"partnerId": "your-partner-id",
"format": "a4",
"fulfillment": { "method": "express", "printerId": "ABCD" }
}'Example with file upload
curl -X POST https://start.zeccer.pl/api/orders \ -F "files=@document1.pdf" \ -F "files=@document2.pdf" \ -F "partnerId=your-partner-id" \ -F "format=a4" \ -F "fulfillment.method=delivery"
Success Response (201)
{
"sessionId": "abc123xyz",
"redirectUrl": "https://start.zeccer.pl/abc123xyz"
}Error Response (4xx / 5xx)
All error responses use a consistent format with a machine-readable code and human-readable message.
{
"error": {
"code": "NO_FILES_PROVIDED",
"message": "No files provided"
}
}Error Codes
| Code | Description |
|---|---|
| INVALID_CONTENT_TYPE | Request Content-Type is not multipart/form-data or application/json |
| NO_FILES_PROVIDED | No files or documentUrls were provided |
| TOO_MANY_FILES | Number of files exceeds the per-request limit |
| FILE_TYPE_NOT_ALLOWED | File extension is not in the allowed list |
| FILE_TOO_LARGE | File exceeds the per-file size limit |
| FILE_DOWNLOAD_FAILED | A documentUrl could not be fetched |
| INVALID_URL | A documentUrl is not a valid URL |
| INVALID_FORMAT | The format parameter is not one of the accepted values |
| INVALID_FLOW | The flow parameter is not one of the accepted values |
| FLOW_FORMAT_INCOMPATIBLE | The chosen flow does not support the chosen format |
| INTERNAL_ERROR | Unexpected server-side failure |
Limits
- Maximum 10 files per request
- Maximum 50MB per file
- Supported: PDF, DOC, DOCX, ODT, XLS, XLSX, PPT, PPTX, TXT, RTF, PNG, JPG, WEBP
Questions about integration? wsparcie@zeccer.pl