Vendra
A till and stock ledger that cannot oversell, even when two tills sell the last unit.
For retail shops, cafés and market stalls. Often replaces Square POS, Lightspeed Retail or Erply.
Single license $59 · Extended license $129 · paid once, yours for good
What it does
Overselling is stopped in the database itself. Two cashiers selling the last unit at once cannot both succeed.
Sales, purchases, returns and adjustments post to an append-only ledger with cost, reference and who did it. One click rebuilds every count and flags a mismatch.
Weighted-average cost updates on every purchase, in whole-number maths. Freight, duty and fees on a delivery go into what each item cost.
Product grid with category tabs, barcode scanning, split payments, and hold and resume. A tablet can show the customer the basket, the total and the change.
Scan or type a shelf and post the differences with a reason. A sale during the count is never lost or counted twice.
Choose add or take off and a reason, then scan. A breakage, a find or a return is on the ledger in one scan.
Each scan adds one to that product's line on the delivery. Each line shows its margin at the cost you enter.
Every sale and refund updates your own Restock. A member's sale earns Loyalora points. The till never waits on either.
Sell a latte from cups, shots and milk, or a gift box from what is in it. The parts come off the shelf.
Print price labels on A4 or US Letter sheets or a label printer. Items that came without a barcode get a label too.
Email the customer a receipt through your own SMTP, off until you switch it on. Closing the drawer can email you the Z-report.
Connect your own agent over MCP and the API. It can check stock, pull a sales report and record a sale through the same checkout.
Also: returns, register sessions, reports by cashier, camera scanning, customer and supplier exports, roles, 2FA and backups.
What Vendra deliberately doesn’t do.
- One shop per installation (single stock ledger, single drawer).
- Vendra records card tender; it does not process cards.
- No e-commerce or website stock sync.
- Emailed receipts and the day-close email need your own SMTP details, and both ship switched off; without SMTP the receipt is still printable and viewable on screen.
- Barcode hardware: keyboard-wedge USB scanners work as typed input; no driver-level integration.
- The till needs its server: if the connection drops, a sale cannot complete until it returns; the cart stays on screen until the page is reloaded.
- No fiscal module. Vendra records sales, stock and tenders; it is not a fiscal cash register and does not report to any tax authority. It has no certified security device, no fiscal signature and no connection to any tax authority. Many countries have rules for tills that take payments, including Germany, Austria, France, Italy, Spain, Portugal, Poland, Sweden, Norway, Croatia and Greece. Where rules like these apply to your business, Vendra on its own does not meet them. Check what applies to you with your tax adviser or tax authority before you use Vendra as your till.
What renting costs instead
2 months of Square POS costs what Vendra costs once.
Read Sep 3, 2026 · source1 month of Lightspeed Retail costs what Vendra costs once.
Read Sep 26, 2026 · source1 month of Erply costs what Vendra costs once.
Read Sep 3, 2026 · sourceThe full comparison: every rival, what each does better, and who should stay with them →
Replacing one of these? Square POS alternative · Lightspeed Retail alternative · Erply alternative · Hike POS alternative · KORONA POS alternative · Shopify POS alternative
Release history
For Vendra, 4.1 makes two changes that every app gets. What’s new in 4.1 →
For Vendra, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and… What’s new in 4.0 →
3.3 puts stock corrections at the scanner: choose add or take off and a reason, then scan, and a breakage, a find or a return goes on the ledger in one scan. What’s new in 3.3 →
3.2 connected Vendra to the rest of the shop: every sale and refund updates your own Restock, a member's sale earns Loyalora points, and the till never waits on either.
The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar…
An MCP endpoint lets an agent list products, check stock, pull a sales report and record a sale — through the same checkout the till runs, so stock still cannot…
Vendra 2.0 adds the 2.0 owner layer.
What’s in the zip
The tree as the zip ships it — the working leftovers the packager deletes are not listed
- .htaccess
- API.md
- Dockerfile
- QUICKSTART.txt
- assets/
- bin/
- config.php
- config.sample.php
- controllers/
- deploy/
- import-maps/
- index.php
- install/
- manifest.json
- offline.html
- router.php
- src/
- sw.js
- tests/
- views/
src/Suite.php: a real module, the first 24 of 403 lines
Chosen as the largest module in src/ that is not one of the shared cores — this product's own logic, not a file every product carries.
<?php
/**
* Suite.php — the Retail Suite link (3.2.0): Vendra, the till, talks to the other two apps a shop
* may run on its own server, through their documented REST APIs and nothing else.
*
* Restock — every sale (and every refund) replaces that day's units per SKU in Restock's sales
* history (`POST /api/sales-history` with "replace": true, so a resend counts once), and
* the on-hand figure for those SKUs goes to `POST /api/stock-levels`. Restock's reorder
* list then follows the till instead of a weekly CSV ritual.
* Loyalora — a sale rung up for a customer who is a member earns points by what was spent
* (`POST /api/customers/{id}/earn`, amount in cents, the sale code as the reference);
* the till shows the balance when the customer is picked, and can enroll them.
*
* Rules this file keeps:
* - The sale is already committed when anything here runs. Nothing here can fail, undo or delay
* a sale beyond one short timeout: every call is caught, logged in `suite_log`, and forgotten.
* - An app that did not answer is not asked again for COOLDOWN seconds, so a dead server costs a
* busy Saturday till one timeout, not one per sale.
* - Members are matched by email address only. A customer with no email is never guessed at.
* - The till never sets a points figure; Loyalora's program decides, as its API insists.
*/
declare(strict_types=1);
final class SuiteRuns on: 2-minute web installer, plain PHP 8.1+ with MySQL (or SQLite for a trial), no Composer or build step — Docker image included. Tested on PHP 8.3. Or run it in Docker: the Dockerfile is in the zip.
Technical owners can install it with one line and their license key: curl -fsSL https://ownware.io/install.sh | sh -s -- vendra <your license key>
Nothing is obfuscated or encoded; what you read is what runs. Manual · API · the test run
Which license do I need?
It comes down to how many installations you need. Running your own business on one site is the Single license. A second domain of your own, or sites you build or run for other people, is the Extended license.
- Install it on one domain or subdomain you own or operate
- Change the source however you like for that installation
- Run your own business on it commercially, client work included
- Re-download the current build any time from your buyer portal
- A second site, or an installation you hand to a client as theirs, needs the Extended license
- No reselling, redistributing or sublicensing the source
- Not for offering it to other people as a hosted service
- Everything the Single license grants
- Install it on as many domains as you own or operate — no cap on the number
- Up to ten client installations, one per client project, handed over or hosted for each client; for more, buy another Extended license
- White-label: remove or replace the product name and logo in the screens of client installations
- Still no reselling or redistributing the source itself
- Running it as a multi-tenant service others sign up for needs a SaaS agreement
Every download carries the full terms as LICENSE.txt. The complete wording is on the terms page.
After you buy
The app’s Updates page installs a new release with your license key, with the release’s signature checked and a backup taken first. Your download link always serves the current build. Download again any time from your order page or the buyer portal; there is no renewal fee.
Email support for installation and for defects in the code as delivered: a person reads and answers every message. It does not cover custom development or server administration. What support covers
Refunds are handled by Lemon Squeezy as merchant of record, case by case. EU consumers keep the statutory 14-day right until delivery starts. Refund terms
It keeps running: your server, the full PHP source, no license check that can fail. If no stable release is published for 365 days, the domain limit lifts; after three such years your copy becomes MIT-licensed. The terms have the exact wording: continuity.
Questions
Does it process card payments online?
Can I run multiple stores?
Does barcode scanning need special drivers?
MySQL or SQLite?
What do I need to run it?
Can it email receipts?
Is Vendra a subscription?
Our POS charges per terminal and takes a card fee. What changes?
What exactly do I get for the money?
Can I get the sales and stock out?
Covered in these guides
- What's new in Own It 4.0
- What's new in Own It 3.3
- What's new in Own It 3.2
- SaaS price record: how it is read and dated
- Retail shop software: rent it or own it
- The Retail Suite: what a shop floor actually runs on
Also covered in: The restaurant ops stack, bought once: the food-safety diary, the menu into the till, and the review you ask for · What's new in Own It 3.1 · SQLite or MySQL? SQLite's Own Authors Say You Probably Need Less Than You Think · Your POS Charges You Twice — And Square's Free Tier Means Most Shops Should Not Pay Either · What's new in Own It 3.0 · From spreadsheet to system: when a business tool pays for itself.
More about Vendra
Self-hosted POS and inventory that will not sell below zero recorded stock, even when two tills sell the last unit at the same moment.
The problem it solves
Retail shops, cafés, and market stalls need stock counts they can trust and profit numbers built from recorded cost — but cheap POS scripts fall apart on exactly that: counts drift, overselling happens, and margin reports become fiction because cost isn't tracked properly.
- Stock counts that drift from what's actually on the shelf
- Overselling the last unit when two cashiers ring up at once
- Profit reports built on a guessed cost of goods
Every feature
- Email the customer their receipt. A receipt can go to the customer by email — through your own SMTP, off until you switch it on, and the printed or on-screen receipt keeps working with no SMTP at all.
- The day-close report, in your inbox. Closing the drawer can email you the Z-report — takings by tender, the counted difference, the day's numbers — so the record exists outside the till the moment the day ends.
- Oversell-proof checkout. Overselling is enforced at the database level, even when two cashiers sell the last unit at the same instant.
- Append-only stock ledger. Every stock change — sales, purchases, returns, adjustments — posts to an auditable movement ledger with cost, reference, and who did it.
- One-click ledger verification. Rebuild every stock count from the ledger and flag any mismatch.
- Weighted-average costing. Drift-free integer-math costing updates on every purchase, so profit reports use the cost you actually recorded.
- Barcode-ready POS screen. Fast product grid with category tabs, keyboard-wedge barcode scanning, split payments, and hold & resume sales.
- Full store operations. Purchases and receiving, returns, register sessions with Z-report, and reports by product and cashier.
- Installable mobile app (PWA). Add it to a phone or tablet home screen straight from the browser — a full-screen app served from your own server, with no app store involved. Business data is not stored offline on the device; what you see is read live.
- Works with Restock and Loyalora. Connect your own Restock and every sale and refund updates its sales history and shelf counts, so the reorder list follows the till. Connect Loyalora and a member's sale earns points by what was spent, with the balance shown at the till.
- The till never waits on them. The sale is recorded first; an app that is down costs one short wait, and anything that did not arrive is listed in a log.
- Count your stock, while you keep selling. Scan or type a shelf, post the differences with a reason; a sale during the count is never lost or counted twice.
- Real margins, freight included. Spread a delivery's freight, duty and fees into what each item cost you.
- Barcode labels. Print price labels on A4 or US Letter sheets or a label printer, even for items that came without a barcode.
- Recipes and bundles. Sell a latte from cups, shots and milk, or a gift box from what is in it; the parts come off the shelf.
- A screen for the customer. A tablet shows the basket, the total and the change as you ring it up.
- Scan to adjust stock. Choose add or take off and a reason, then scan: a breakage, a find or a return goes on the ledger in one scan, and stock never goes below zero unless you allow it.
- Updates from inside the app. The Updates page installs a new release with your license key: Ownware's signature is checked, a backup is taken first, and the app puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. It never checks by itself.
- Backups by themselves. Automatic backups, an optional copy to S3-compatible storage you own, and a weekly check that the latest backup reads back. The Health page names anything that needs attention.
- Switch from Square. Upload Square's item library and customer directory. A switch report checks every row with Vendra's own rules before one Import button brings them across, and importing the same file again adds nothing.
- Own It 4.0.1 — fixes and an up-to-date manual. For Vendra, 4.0.1 fixes an installer that had lost its styling, a rollback that a page opened during an update could stop and a command-line update that ended in an error after putting the previous version back. Its manual, FAQ and QUICKSTART now cover everything 4.0 added, including two Nginx rules that keep the data folder private. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0.2 — the installer opens on every host. For Vendra, 4.0.2 fixes a fresh install on an Apache host: the one-page setup at /install/ looped back to itself and never opened, and now it opens. Your license covers it: press Check for updates on the Updates page, or download it from your order page.
Release notes in full
- Own It 4.1: client installations and your other tools. For Vendra, 4.1 makes two changes that every app gets. An Extended license bought from October 4, 2026 covers up to ten client installations, one per client project: hand each one over to the client or host it for them, with the client's logo and colors from the app's branding settings. The API reference now shows how to connect Vendra to Zapier, Make or n8n, using its own webhooks and API key. Your license covers the update: press Check for updates on the Updates page, or download it from your order page.
- Own It 4.0: it updates and backs itself up. For Vendra, 4.0 means updates from inside the app: the Updates page checks for a new release with your license key, verifies Ownware's signature, takes a backup and puts the previous version back by itself if the update is interrupted or the database step or start-up check of the new version fails. A new install can start with a sample business and remove it in one click; backups run by themselves, with an optional offsite copy and a weekly check that the latest one reads back; and the Health page says whether the install is looking after itself. It also switches you over from Square: the item library and the customer directory.
- Own It 3.3: stock moves at the scanner. 3.3 puts stock corrections at the scanner: choose add or take off and a reason, then scan, and a breakage, a find or a return goes on the ledger in one scan. Stock never goes below zero unless you allow it.
- Own It 3.2: the shop floor, connected. 3.2 connected Vendra to the rest of the shop: every sale and refund updates your own Restock, a member's sale earns Loyalora points, and the till never waits on either. On the floor it brought stock counts while you keep selling, barcode labels, recipes and bundles, a screen for the customer, and real margins with freight included. Receiving stock became scan-to-receive, with the margin shown before you receive.
- Own It 3.1: it writes to the people you serve. The 3.1 wave gave the catalog a way to reach the other side of the transaction: counterparty email through your own SMTP server, calendar feeds your own calendar subscribes to, attachments filed where the paperwork belongs, and export presets other people's software imports. Each outbound feature ships switched off and runs on your own credentials; a failed send is recorded, and the action that triggered it stands. What this app gained is listed at the top of this section.
- Own It 3.0: works for your AI, not just for you. An MCP endpoint lets an agent list products, check stock, pull a sales report and record a sale — through the same checkout the till runs, so stock still cannot oversell and a sale still needs an open register. The POS gains camera barcode scanning straight from the browser.
- Own It 2.0: API, 2FA, backups, dark mode. Vendra 2.0 adds the 2.0 owner layer. Upgrade by replacing the files — the database migrates itself, and it is still the same one-time purchase.
Browse self-hosted: Front-office software · Retail & shop software · Restaurant & café software · Charity, club & association software · Event & venue software · Hotel & hospitality software