> ## Documentation Index
> Fetch the complete documentation index at: https://www.zippendo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Authorize the printer client

> Download the Zippendo Printer Client, authorize it in the browser, then Approve a pending printer on Printers.

The **Zippendo Printer Client** is a desktop app that connects local printers over WebSocket. You authorize it in the browser, register printers in the client, then **Approve** each device on **Printers**.

Walkthrough: [Labels and printing](/docs/tutorials/labels-printing). Install, **Sign in with Browser**, and **Add Printer**: [Set up the printer client](/docs/how-to/setup-printer-client). Naming, type, and rotate-wide-pages on the web list: [Add a printer](/docs/how-to/add-a-printer).

<Info>
  This page is the **web** authorize screen (`/authorize-printer`) and the **Approve** / **Disable** actions on **Printers**. Every screen in the **Zippendo Printer** desktop app is [Set up the printer client](/docs/how-to/setup-printer-client).
</Info>

## Download the client

Sidebar **Printers**. Header action **Download Printer Client**. Menu title **Download for your system**:

| Item                      | Subtitle             | File                             |
| ------------------------- | -------------------- | -------------------------------- |
| **macOS — Apple Silicon** | **M1 and newer**     | `Zippendo-Printer-mac-arm64.dmg` |
| **macOS — Intel**         | **Older Macs**       | `Zippendo-Printer-mac-x64.dmg`   |
| **Windows**               | **10 / 11 (64-bit)** | `Zippendo-Printer-win-x64.exe`   |

Links open the latest GitHub release in a new tab.

<Frame caption="Download Printer Client lists macOS Apple Silicon, macOS Intel, and Windows">
  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/01-download-client-light.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=30239e12ef02894f681a1b65313eaf2d" alt="Printers header with Download Printer Client menu open showing macOS and Windows downloads" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/01-download-client-light.png" />

  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/01-download-client-dark.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=ab438ffb4f02c2d4748fd8d2c0d76179" alt="Printers header with Download Printer Client menu open showing macOS and Windows downloads" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/01-download-client-dark.png" />
</Frame>

## Authorize in the browser

In the printer client, choose sign in with the browser. Zippendo opens `/authorize-printer?session_id=…` (optional `callback_port` for the HTTP fallback). You must already be signed in.

Title: **Authorize Printer Client**. Description: **A printer client is requesting access to your Zippendo account.**

| Element       | Copy                                                                                                                            |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| Signed-in box | **Signed in as \{\{email}}**                                                                                                    |
| Org count     | **Access to \{\{count}} organization** / **organizations**                                                                      |
| Warning       | **By authorizing, you will grant this printer client access to manage printers and receive print jobs for your organizations.** |
| Primary       | **Authorize Printer Client** (pending: **Authorizing…**)                                                                        |
| Secondary     | **Reject** (pending: **Rejecting…**)                                                                                            |

<Frame caption="Authorize Printer Client — signed-in account, warning, Authorize or Reject">
  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/02-authorize-pending-light.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=8b7dc637797acc61ea820a67d6c5a989" alt="Authorize Printer Client page with signed-in email, access warning, and Authorize Printer Client button" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/02-authorize-pending-light.png" />

  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/02-authorize-pending-dark.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=89c96ea725eb0964eacdd6167e6d2f1b" alt="Authorize Printer Client page with signed-in email, access warning, and Authorize Printer Client button" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/02-authorize-pending-dark.png" />
</Frame>

**Authorize Printer Client** calls the approve API, then redirects to `zippendo://callback?token=…` (preferred) or `http://localhost:PORT/callback`. Stay on this tab until the client receives the token.

<Frame caption="Authorization Complete — close the tab and return to the printer client">
  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/03-authorize-complete-light.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=34b811d691c80761d73c47aec1dae769" alt="Authorization Complete message after approving the printer client" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/03-authorize-complete-light.png" />

  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/03-authorize-complete-dark.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=f16dc36b991e6fc459bf3683bfb1735b" alt="Authorization Complete message after approving the printer client" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/03-authorize-complete-dark.png" />
</Frame>

### Other authorize states

None of these have extra fields — close the window and start again from the client if needed.

| State                   | Title                      | Description                                                                                           |
| ----------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------- |
| Loading                 | —                          | **Loading…**                                                                                          |
| Missing `session_id`    | **Invalid Request**        | **No session ID provided. Please start the authorization from the printer client.**                   |
| Session error           | **Session Error**          | API message, or **Failed to load session**                                                            |
| Already approved        | **Already Authorized**     | **This printer client has already been authorized. You can close this window.**                       |
| Rejected (this session) | **Authorization Rejected** | **This authorization request was rejected. You can close this window.**                               |
| Expired                 | **Session Expired**        | **This authorization session has expired. Please start a new authorization from the printer client.** |
| After reject click      | **Authorization Rejected** | **You have rejected the authorization request. You can close this window.**                           |
| After approve           | **Authorization Complete** | **The printer client has been authorized. You can close this window and return to the application.**  |

Toasts / inline errors: **Failed to approve authorization**, **Failed to reject authorization**.

OAuth consent internals (`/authorize` for API apps) are a different screen. Do not use that flow for the printer client.

## Approve a pending printer

After the client registers a printer, it appears on **Printers** with status **Pending Approval**. Stat **Pending approval** / **Waiting for admin approval** counts those rows.

Row menu **Approve** is only shown when status is **Pending Approval**. Toast: **Printer approved successfully** (or **Failed to approve printer**). Status becomes **Active**. **Approved** shows the date and **by \{\{name}}**. Until then the column is **Not approved**.

<Frame caption="Pending Approval row — Approve is in the row menu until an admin confirms the device">
  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/04-pending-approval-light.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=40a0851b3ef0e7bd1b3834d374881710" alt="Printers table with a Pending Approval printer and the Approve action in the row menu" className="block dark:hidden" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/04-pending-approval-light.png" />

  <img src="https://mintcdn.com/zippendo/C18Zs_-3chtQ-0St/images/how-to/authorize-a-printer/04-pending-approval-dark.png?fit=max&auto=format&n=C18Zs_-3chtQ-0St&q=85&s=c514f2baeafd63da85f56d48b160247b" alt="Printers table with a Pending Approval printer and the Approve action in the row menu" className="hidden dark:block" width="2880" height="1800" data-path="images/how-to/authorize-a-printer/04-pending-approval-dark.png" />
</Frame>

Statuses on the list: **Active**, **Pending Approval**, **Disabled**. Connection: **Online** (green) or **Offline**. Testenv printers stay **Offline** because no printer-client WebSocket is connected.

**Last Seen**: **Never**, **Just now**, **\{\{count}} min ago**, **hour(s) ago**, or **day(s) ago**.

### Disable

On an **Active** printer, row menu **Disable**. Toast: **Printer disabled successfully** / **Failed to disable printer**. Disabled printers do not receive new jobs.

### Filters

Header **Filters**: **Search**, **Status** (**Active** / **Pending Approval** / **Disabled**), **Type** (**Label printer** / **Document printer**).

## Related

* [Set up the printer client](/docs/how-to/setup-printer-client) — install, sign in, Add Printer
* [Add a printer](/docs/how-to/add-a-printer) — name, type, rotate wide pages
* [Printer jobs](/docs/how-to/printer-jobs)
* [Shipment printer settings](/docs/how-to/shipment-printer-settings)
* [Labels and printing](/docs/tutorials/labels-printing)
