---
name: zeccer-print
description: Print documents or photos with Zeccer — upload a local file or a public URL and get a checkout link. Self-service printers across Poland, Germany and Czechia, or delivery. Use whenever the user wants to physically print a file.
---

# Printing with Zeccer

Zeccer prints documents and photos at 1500+ self-service printers across Poland,
Germany and Czechia, or by delivery. Guest checkout — no account, no app.
Payment is online (fast bank transfer, BLIK, Google Pay, or card) and always
happens in the user's own browser.

As an AI agent you can place a print order on the user's behalf over a simple
HTTP API. You prepare the order; the user finishes by paying in the browser.

## Endpoint

`POST https://start.zeccer.pl/api/orders`

### A. Upload local files (multipart/form-data)

Use this when the user has a file on their device. Run it from your shell / code
environment:

```bash
curl -sS \
  -F files=@/path/to/document.pdf \
  -F format=a4 \
  -F fulfillment.method=express \
  https://start.zeccer.pl/api/orders
```

Repeat `-F files=@...` for multiple files (up to 10).

### B. From public URLs (application/json)

Use this when the file is already at a public URL.

```bash
curl -sS -X POST https://start.zeccer.pl/api/orders \
  -H 'Content-Type: application/json' \
  -d '{"documentUrls":["https://example.com/doc.pdf"],"format":"a4","fulfillment":{"method":"express"}}'
```

### Response

```json
{ "sessionId": "...", "redirectUrl": "https://start.zeccer.pl/<sessionId>" }
```

Hand the user the `redirectUrl`. They open it to confirm options and pay.
Nothing is charged until they do.

## If you can't run a command

Some environments can't run `curl` (no code execution, or the sandbox blocks the
network). Fallbacks:

- Build a link with `GET https://start.zeccer.pl/api/orders/new?documentUrls=<url>&format=a4&fulfillment.method=express&redirect=true`
  (public URLs only) and hand it to the user.
- Or just send the user to <https://start.zeccer.pl> to drop the file and pay in
  the browser. The browser is not sandboxed, so this always works for local files.

> In Claude.ai / Claude Desktop the code sandbox blocks outbound network by
> default — the user must allow `start.zeccer.pl` under
> Settings → Capabilities → Code execution → allowed domains for `curl` to reach it.

## Parameters

| Param | Where | Values |
|---|---|---|
| `files` | multipart | the file(s); repeat for multiple |
| `documentUrls` | JSON | array of public URLs |
| `format` | both | `a4`, `a3`, `photo` (optional; user picks if omitted) |
| `fulfillment.method` | multipart / query | `express` or `delivery` (optional) |
| `fulfillment.printerId` | multipart / query | self-service printer code to bind the order to (express only) |
| `fulfillment` | JSON | nested: `{"method":"express","printerId":"8888"}` or `{"method":"delivery"}` |
| `partnerId` | both | your identifier, for analytics (optional) |
| `redirect` | both | `true` → HTTP 302 to the print page instead of JSON |

## Formats × fulfillment

- `express` (self-service printer): `a4`, `photo`
- `delivery` (shipped): `a4`, `a3`, `photo`

## Limits

- Up to 10 files per order, 50 MB each.
- Allowed: PDF, DOC(X), ODT, XLS(X), PPT(X), TXT, RTF, ODS, ODP, PAGES, PNG, JPG,
  WEBP. PDF recommended.

## Errors

Errors return `{ "error": { "code": "...", "message": "..." } }`. Codes:
`NO_FILES_PROVIDED`, `TOO_MANY_FILES`, `FILE_TYPE_NOT_ALLOWED`, `FILE_TOO_LARGE`,
`FILE_DOWNLOAD_FAILED`, `INVALID_URL`, `INVALID_FORMAT`, `FLOW_FORMAT_INCOMPATIBLE`,
`INVALID_CONTENT_TYPE`.

Full reference: <https://start.zeccer.pl/api-docs>

## Install this as a skill (optional, for repeat use)

This file is a valid Claude Agent Skill. To install it for future print requests:

- **Claude Code** — one line:

  ```bash
  mkdir -p .claude/skills/zeccer-print && curl -sS https://start.zeccer.pl/SKILL.md -o .claude/skills/zeccer-print/SKILL.md
  ```

- **Claude.ai / Claude Desktop:** Settings → Capabilities → Skills → add a skill,
  paste this file's contents.

Once installed, "print this file with Zeccer" loads these instructions
automatically.
