# Ritevo Printer Ritevo Printer - the app that prints courier labels (PDF, ZPL, EPL) and receipts on Polish fiscal printers: supported systems, download, connecting a printer, printing from orders and actions. Ritevo Printer prints courier labels and fiscal receipts straight from your Ritevo orders. You install it on the computer your printer is connected to - or several printers at once - and order printouts in the panel: from an order, with an automatic action or even from your phone. > **Required integration:** You need a computer with Windows, macOS or Linux that your printer (or several printers) is connected to, with the Ritevo Printer app installed. In the Ritevo panel add a new **Printer** integration - a separate one for each printer - and link it with the Ritevo Printer app on the computer. ## How it works - **One printer - one integration.** Every printer is a separate **Printer** integration in the panel, with its own token. - **Many printers in one app.** At one workstation you can add e.g. a fiscal printer for receipts and an ordinary printer for PDF labels - each works on its own. - **Many workstations.** Every computer has its own Ritevo Printer app with its own printers - e.g. a till with receipts and a packing station with labels, or separate workstations for several employees. - **Order from anywhere.** You order a printout in the panel - on a computer or on your phone - and it is printed by the computer running the app with that printer. - **Runs in the background.** Closing the window hides the app in the system tray. Tick **Start the agent at login** so it keeps printing after the computer restarts. ## Supported systems and printers PDF labels print on any printer added to the computer, also an ordinary inkjet or laser printer. ZPL and EPL labels print only on a label printer, e.g. Zebra. Receipts are printed through software supplied by the fiscal printer vendor - and not every vendor made it for every system. What works where: | | Windows | Linux | macOS | | --- | --- | --- | --- | | PDF labels | ✓ | ✓ | ✓ | | ZPL / EPL labels | ✓ | ✓ | ✓ | | Receipts - Novitus | ✓ | ✓ network printer only | ✓ | | Receipts - Posnet | ✓ | ✓ | ✓ Intel Macs only | | Receipts - Elzab | ✓ | ✓ /dev/ttyS port or network printer | ✗ | - A Novitus printer must use the XML protocol - a setting in the printer's menu. In the older classic protocol the app recognises it but cannot print a receipt. - The system sees a fiscal printer connected over USB as a serial port (a COM port on Windows) - on Windows this needs the printer vendor's driver. - A fiscal printer on the network is given as its address and port, e.g. `tcp:192.168.1.50:6666` - you will find the port in the printer's settings. - We support Novitus, Posnet and Elzab fiscal printers, and receipts are printed only in PLN. ## Download and installation Download the version for your system - all versions are also on the [Download Ritevo Printer](/en/ritevo-printer) page: - **Windows** - [ritevo-printer-setup.exe](https://ritevo-printer.s3.eu-north-1.amazonaws.com/ritevo-printer/ritevo-printer-setup.exe) - **macOS, Apple Silicon (M1 and newer)** - [ritevo-printer-arm64.dmg](https://ritevo-printer.s3.eu-north-1.amazonaws.com/ritevo-printer/ritevo-printer-arm64.dmg) - **macOS, Intel** - [ritevo-printer-x64.dmg](https://ritevo-printer.s3.eu-north-1.amazonaws.com/ritevo-printer/ritevo-printer-x64.dmg) - **Linux** - [ritevo-printer.AppImage](https://ritevo-printer.s3.eu-north-1.amazonaws.com/ritevo-printer/ritevo-printer.AppImage) or [ritevo-printer_amd64.deb](https://ritevo-printer.s3.eu-north-1.amazonaws.com/ritevo-printer/ritevo-printer_amd64.deb) The app is not signed with a certificate, so on the first launch the system asks for your consent: - **Windows** - in the SmartScreen window click **More info**, then **Run anyway**. - **macOS** - when told that Apple cannot verify the app, click **Done**, go to **System Settings → Privacy & Security** and click **Open Anyway**. Updates: on Windows and Linux (AppImage) a new version downloads by itself and installs when nothing is printing - you can also click **Restart and update**. On macOS the app shows **Download the new version** - download the file and drag Ritevo Printer to the Applications folder. The .deb version is updated by hand. ![The Updates section in Ritevo Printer with the version number and the Check for updates button](https://ritevo.com/docs/integrations/ritevo-printer/en-agent-updates.webp) ## Adding the printer in the panel 1. Go to **Integrations** in the left panel and click **Add integration** in the top right corner. 2. In the **Printers** section pick the **Printer** tile. 3. Enter the **Printer name** - your own name, e.g. of the workstation - and click **Add integration**. 4. Open the printer in the integrations list and in the **Printer token** card click **Show token**. Copy it - you paste it in the app. ![The integrations list in Ritevo with the Add integration button in the top right corner framed](https://ritevo.com/docs/integrations/en-integrations-list.webp) ![The Ritevo integration catalogue with the Printer tile framed in the Printers section](https://ritevo.com/docs/integrations/ritevo-printer/en-catalogue.webp) ![The add printer form with the Printer name field](https://ritevo.com/docs/integrations/ritevo-printer/en-add.webp) ![The integrations list with the added printer Stanowisko #1](https://ritevo.com/docs/integrations/ritevo-printer/en-list.webp) ## Adding the printer in the app 1. Open Ritevo Printer and click **+ Add printer**. 2. Paste the **Printer token** from the panel. 3. In the **Printer** field choose the printer you want to use. Choose a fiscal printer connected to the network as **Fiscal printer on the network (IP address)** and enter its address. 4. The app finds out by itself what printer it is and shows **Connected printer**. 5. Click **Save printer**. 6. Click **Start**. The printer shows **Working - waiting for jobs**. You can add more printers, e.g. one for labels and another for receipts: click **+ Add printer** again and paste the token of the next printer from the panel. ![The new printer form in Ritevo Printer with the token and a recognised system printer](https://ritevo.com/docs/integrations/ritevo-printer/en-agent-add.webp) ![The Ritevo Printer window with the printers list and the Add printer button](https://ritevo.com/docs/integrations/ritevo-printer/en-agent-printers.webp) > **Good to know:** Your label printer is not on the list? Add it to the system first: on Windows in **Settings → Printers & scanners**, on a Mac in **System Settings → Printers & Scanners**. On a Mac pick the **AirPrint** driver for an ordinary inkjet or laser printer - with the generic PostScript driver nothing comes out. ## Printing You order a printout by hand or with an automatic action: - **Label** (by hand) - in the order details, in the **Shipments** card, click **Print** and choose the printer. - **Receipt** (by hand) - in the order details open the receipt button and choose the printer in the **Print** section. You can do the same from the documents list. - **Print shipment label** (action step) (API: "Print shipment label" = `PRINT_SHIPMENT_LABEL`; value in `actionSteps[].action.type`) - prints the label of the order's newest successful shipment on the chosen printer. - **Print receipt** (action step) (API: "Print receipt" = `PRINT_RECEIPT`; value in `actionSteps[].action.type`) - prints the order's newest receipt on the chosen fiscal printer. - **Print job ordered** (action trigger) (API: "Print job ordered" = `CREATE_PRINT_JOB`; value in `triggerType`) - starts the action when a printout is ordered. ![The Shipments card in an order with the Print button open and the list of printers](https://ritevo.com/docs/integrations/ritevo-printer/en-print-label.webp) ![Issued documents in an order with the receipt open and the Print section listing the printers](https://ritevo.com/docs/integrations/ritevo-printer/en-print-receipt.webp) An ordered printout waits in the **Current queue** card in the printer's details until the app picks it up - printouts ordered while the computer is off come out once it is on. You see the result in the **Print history** card: - **Printed** (API: "Printed" = `SUCCESS`; value in `status`) - the app picked up the printout and sent it to the printer. - **Error** (API: "Error" = `ERROR`; value in `status`) - the printout could not be prepared, e.g. the courier did not hand over the label. The badge shows the kind of error and the icon next to it the message. ![Printer details in Ritevo: token, current queue and print history](https://ritevo.com/docs/integrations/ritevo-printer/en-details.webp) In the app itself, in the **Recent jobs and errors** section, you see what was printed on which printer, and printer errors such as running out of paper. ![The Recent jobs and errors section in Ritevo Printer](https://ritevo.com/docs/integrations/ritevo-printer/en-agent-history.webp) ## Printing in an automatic action What to keep in mind when an action is to print something: - **Print shipment label** (API: "Print shipment label" = `PRINT_SHIPMENT_LABEL`; value in `uuidValue`: id of a printer integration: `GET /integrations/printers`) - takes the order's newest shipment that was created successfully. If there is none, the step ends with an error. - **Print receipt** (API: "Print receipt" = `PRINT_RECEIPT`; value in `uuidValue`: id of a printer integration: `GET /integrations/printers`) - takes the order's newest receipt that has not been deleted. If the order has no receipt, the step ends with an error. - **Create shipment**, then **Print shipment label** (API: "Create shipment" = `CREATE_SHIPMENT`, "Print shipment label" = `PRINT_SHIPMENT_LABEL`) - first the shipment, the label in the next step. The shipment step waits for the courier's answer, so the label is ready before it is time to print. - **Generate receipt**, then **Print receipt** (API: "Generate receipt" = `GENERATE_RECEIPT`, "Print receipt" = `PRINT_RECEIPT`) - the same for a receipt: first the document, the printout in the next step. - **Shipment status is** (API: "Shipment status is" = `SHIPMENT_STATUS_IS`; value in `enumValues`: `PENDING`, `SUCCESS`, `ERROR`) - to avoid printing a label after a failed shipment, add a [branch](https://ritevo.com/en/docs/automations/how-it-works#branches) with this condition and the value Created successfully in the print step. The print step does not wait for the paper to come out of the printer. The action moves on once the printout is in the queue, or right away when it fails - an error does not stop the action. There is no condition on the printout's result, so you check it in the **Print history**. If a printout reaches the wrong kind of printer - a label on a fiscal one or a receipt on an ordinary one - only the app on the computer rejects it. You see that in the app's history; the action does not learn about it. ## Fiscal receipts - A receipt is printed only through the printer vendor's official library. - Before a receipt reaches the printer we check that it is a receipt in Polish zloty and that its items add up to the document total. - The app remembers every receipt it printed. If the same receipt is ordered again on this computer, it is not printed a second time and the app shows a message. This protection works only within one computer, so connect a fiscal printer in the app at one workstation only and order each receipt to one printer - another workstation does not know what has already been printed. - When the connection to the printer breaks during a receipt, the app shows **Check the printer** - check on the printer whether it came out before sending it again. > **Good to know:** The receipt header - company name, address and tax ID - comes from the fiscal printer's own memory, entered by the service technician at fiscalisation. The seller details and issuer name from the Ritevo receipt settings are left out of a fiscal printout and cannot be changed from the panel. ## Deleting the integration In the printer's details in the panel click **Delete integration** - printouts stop going to it. In the app remove it with the **Remove** button next to the printer. ## What the integration does not do - It does not print invoices or corrections on a fiscal printer - only receipts. - It does not print receipts in a currency other than PLN. - It does not support fiscal printers from outside Poland or Novitus printers in the classic protocol. ## The integration through the API Printers: `GET /integrations/printers` (list), `GET /integrations/printers/{integrationId}` (details), `GET /integrations/printers/{integrationId}/queue` (current queue), `GET /integrations/printers/{integrationId}/history` (print history, `status`: `SUCCESS` or `ERROR`, with `errorType` and `errorMessage` on an error), `GET /integrations/printers/{integrationId}/token` (the token for the app). Adding: `POST /integrations/printers`, renaming: `PATCH /integrations/printers/{integrationId}`, deleting: `DELETE /integrations/printers/{integrationId}`. Printing a label: `POST /orders/{orderId}/print-shipment-label/{shipmentId}/{printerIntegrationId}` (only a shipment with `status` = `SUCCESS`), printing a receipt: `POST /orders/billings/{billingId}/print/{printerIntegrationId}`. In order actions the steps are `PRINT_SHIPMENT_LABEL` and `PRINT_RECEIPT` in `actionSteps[].action.type` with `uuidValue` = the printer id, and the **Print job ordered** trigger is `triggerType` = `CREATE_PRINT_JOB`. Full description: [Order actions](https://ritevo.com/en/docs/automations/order-actions). Print steps are not among the steps that wait for an external system: the next step starts right after the printout is accepted into the queue, or after an error (in the history `status` = `ERROR`, e.g. when the order has no shipment with `status` = `SUCCESS` or no receipt). The label always comes from the newest shipment with `status` = `SUCCESS`, the receipt from the newest not-deleted document with `billingType` = `RECEIPT`. There is no action condition on the printout's result. The `CREATE_PRINT_JOB` trigger starts an action after every such result, successful or failed. Rejections by the app (wrong kind of printer, printer not ready) do not come back to the action. --- All help in one file: https://ritevo.com/llms-full.txt. Help map with links to every page: https://ritevo.com/llms.txt.