Point of sale Optional AIopen source · in development

A calm register for everyday retail.

Puntovivo brings sales, inventory and purchasing into a single desktop console. Fast scanning, blind close, inter-site transfers and split payment — all under one design language. Open source, in active development, with a demo available.

5Actions per screen
F1Charge a sale
local·firstOffline-first sync
ES · ENNatively bilingual
Shift open · 09:42
$ 1,84MSold today
Register · CentroCra 7 · BogotáSale · PV-002841MMaría R.Cashier
Cart4 items · 6 units
Cheese arepa · Pack 12
SKU · ARQ-12-PV
× 3
$ 28.500
Ground black coffee 500g
SKU · CAF-500-TIN
× 2
$ 39.800
Medium recyclable bag
SKU · BLS-M-RCY
× 1
$ 1.200
Frequent-customer discount
−3% · Applied by María
−$ 2.085
SummaryPV-002841
Subtotal$ 69.500
Discounts−$ 2.085
VAT 19%$ 12.808
Total due
Four items
$80.223
Cash
Card
Nequi
Charge saleC
D discount·N new sale
Built for Multi-site & multi-tenant Blind close by denomination Split cash + card payments Cashier · manager · admin roles Per-shift audit trail
Product

Six modules, one design language.

Every surface shares the same grid, the same editorial serif and the same calm blue. The register feels like a digital notebook, not a control panel.

Friction-free checkout

Scan, search by SKU or barcode and adjust quantities without opening modals. Checkout splits cash, card, transfer, credit and other methods on a single screen.

Alt+P · F5 catalog · F1 charge

Register with blind close

Open with a count by denomination, log cash-in and cash-out movements during the shift, and close blind — the expected balance stays hidden until you submit the final count.

Open · movements · blind close

Inventory per site

Per-site balances as the source of truth. Movements, physical counts, opening inventory and stock lookups stay in lockstep with the tenant aggregate.

Movements · stock · counts

Inter-site transfers

Send now and receive later with an in-transit state. Receiving discrepancies are logged with a note, and a cancellation reverses balances instantly.

In transit · receive · cancel

Purchasing, orders & quotes

Receive partially or fully against an order, return stock to the supplier, and issue quotes from the same catalog. Every movement updates the product's cost history.

PO · partial receipt · return

Multi-tenant & audit

Per-tenant isolation, per-site sequentials and a per-shift audit log. Role or tenant changes invalidate the session without interrupting a sale in progress.

Sequentials · roles · audit logs
Register · Blind close

The register reconciles itself — no guessing for the cashier.

Open the shift counting bill by bill, log every drawer cash-in or cash-out through the day, and close blind: the expected balance stays hidden until you submit the final count. Any difference lands in the recent-closes report — not a separate notebook.

Open by denomination Cash-in · cash-out · drop to safe Change replenishment Balanced / over / short difference
Register PV-02 · María R.Centro · Opened 08:14
On shift
Opening logged · $180,000
Base counted by denomination · 3×$50,000, 3×$10,000. Matches the register template.
Audit
Drop to safe · $400,000
Drawer surplus sent to the safe. Note: "Skim 11:30 — partial cut".
View line
Blind close pending
The expected balance stays hidden until you submit the final count by denomination. The difference is computed on save.
Close register
Log a cash movement…AltM
Core · AI

An AI that knows your counter — not a chatbot bolted on the side.

Ask in plain language, let it watch your cashiers, search products by meaning, dictate a supplier invoice with the camera. All inside the same console, with the same per-shift audit. All four capabilities ship turned off: enable them from Settings › AI whenever you want.

Puntovivo AI · open-source coreco-pilot · anomalies · semantic search · OCR · 4 optional capabilities
Co-pilotAsk your data

Talk to your business. It answers with data, not text.

Type what you want to know in plain language — "best-selling products", "top cashier", "sites with low margin". Puntovivo builds the SQL, runs it on your tenant, and returns the answer, the table and the chart. The SQL stays visible so any manager can audit it.

What are the 10 best-selling products of the last month by quantity and amount?
Puntovivo · answer
At Sede Norte the top sellers last month are Ground beef 500g · 37 Toilet paper x12 · 33 Doria Spaghetti · 32 and seven more. Combined they total $5.73M across 282 units.
+ view executed SQL+ export CSV+ compare to last month
openai · gpt-4.1-mini10 filas·$0.00088·312 ms
Ask your data…AltK
total_quantityTop 10 · last 30 days
1 Carne de res molida 500g37 u
2 Papel Higiénico x1233 u
3 Pasta Doria Espagueti32 u
4 Costilla de cerdo 1kg31 u
5 Pegante barra Pritt28 u
6 Empanada de carne28 u
7 Aguardiente Antioqueño 750ml24 u
-- generado por Co-pilot · auditable
WITH last_month_sales AS (
  SELECT *
  FROM sale_line_items
  WHERE sale_date  date('now', '-1 month')
    AND site_id = '…Norte'
)
SELECT product_id, product_name,
       SUM(quantity) AS total_quantity
FROM last_month_sales
GROUP BY product_id, product_name
ORDER BY total_quantity DESC
LIMIT 10
openai / gpt-4.1-mini · 10 filas · $0.00088 Ask again

Detected anomalies

Statistical outliers per cashier

We cross each cashier against their own 30-day average and against the rest of the team. When something breaks the pattern — a ticket spike, an unusual return, suspicious discounts — it reaches your inbox with a severity and the raw context.

HighTickets/hour spike Camilo · Sur23vs 1
HighTickets/hour spike Carolina · Norte23vs 1
MediumAtypical return amount María · Norte$377kvs $82k
A starting point, not an accusation · mute 7 days · per-shift audit

Semantic search

Products by meaning

The catalog is indexed with embeddings on every sync. Search "low-fat dairy" and Yogurt Alpina light shows up even though the SKU says "light" nowhere. Handy for cashiers who know a product by its description, not its exact name.

low-fat dairySEMANTIC · AI
Yogurt Alpina Fresa 200g LAC-00160.92
Leche Alpina UHT 1L LAC-00140.81
Crema de leche 250ml LAC-00180.64
Local embeddings · regenerated when you edit prices/descriptions

Invoice OCR

Photo → logged purchase

Upload a photo of the supplier invoice — crooked, smudged, handwritten where allowed. Puntovivo extracts supplier, lines, quantities, VAT and total, and pre-fills the purchase screen so you only confirm.

F-2026-1842
LÁCTEOS EL CAMPO S.A.S.
NIT 900.421.118-3
Cl 14 #28-30 · Bogotá

Crema leche 250ml × 24$ 84.000
Yogurt fresa 200g × 60$ 56.400
Queso campesino × 12$ 24.200

SUBTOTAL$ 164.600
IVA 19%$ 10.000
TOTAL$ 174.600
SupplierLácteos El Campo
Tax ID900.421.118-3
Lines3 · 96 units
Subtotal$ 164.600
Total$ 174.600
Upload file · take photo · 5 fields extracted · matched to SKUs
AI roadmapMore capabilities on the way.

AI in Puntovivo isn't a separate module — it's a cross-cutting layer. Every release touches at least one of these verbs: predict, summarize, search or extract.

NextDemand forecast per SKUNextSuggested auto-reorder to supplierNextSpoken shift summaryBetaVoice checkout for the customerBetaPhysical-inventory assistant
AI FAQ

What owners and managers ask before turning the AI on.

Privacy, cost, what happens offline and how to turn it off. If these six answers don't convince you, leave it off — the register works just the same without it.

No hidden telemetry
Can the AI see my customers' sensitive data?+
No. Before any question reaches the model, Puntovivo redacts names, ID numbers, emails, phones and card numbers. The SQL runs on your local database with a read-only user — the model sees the question and the tabulated result, never the raw database or the PII. The redaction policy is recorded in the per-shift audit log.
Where does the model run? Does my data leave the country?+
The Co-pilot calls whichever AI provider you configure per tenant (OpenAI, Anthropic or Ollama) — the model runs in that provider's cloud, not inside Puntovivo. Everything else stays local: the SQL is built and executed against your own database, and the catalog embeddings are computed and stored at the site, so semantic search never leaves your network. Anomalies are 100% classic statistics: no language model required.
What happens if the site loses internet?+
The register keeps charging — the AI never blocks sales. The Co-pilot and invoice OCR rely on the cloud provider, so offline they pause with an amber banner; semantic search uses the last local embedding index, so it keeps finding products by meaning even offline. Anomalies are computed in batch the next time you sync.
How much does the AI cost?+
Puntovivo doesn't charge you for the AI: you use your own account with the provider you configure (OpenAI, Anthropic or Ollama) and pay that provider directly for usage. With Ollama you can run a local model and pay nothing per token. To avoid surprises, every tenant has configurable usage quotas that cap spend — but that's a limit you set, not a bill from us. Semantic search and anomalies don't consume tokens.
Can I trust the answers? What if it makes up numbers?+
That's why we always show you the executed SQL and the row count below. The narrative answer is a summary of the tabulated result — not of the model's knowledge. If you want to be strict: the manager role can enable "hard audit" mode, which hides the narrative answer and shows you only the table. The AI proposes; you decide.
How do I turn the AI on or off?+
All four capabilities ship turned off. From Settings › AI you enable them with a switch per capability: Co-pilot, anomalies, semantic search and OCR turn on or off individually and per site. A tenant that leaves them off gets the exact same console — no chips, no sparkles, no chats.
Command center · Alerts & updates

What's happening across all your sites, in one view.

Low stock, closes with a difference, transfers in transit, refunds. Puntovivo cross-references data per site and only interrupts you when it's worth it.

3 active sites 4 alerts today

Don't check three consoles. Check one.

The dashboard gathers sales, inventory, shifts and syncs into one feed. Every alert takes you to the exact spot in the console — one click, not three tabs.

Sales today$3.21M +18%
Tickets112
To handle4
Updates inboxLast update · 09:42
TodayWeekMonth
Low stock · 4 SKUsSede Centro
Coffee 500g, long-life milk, white corn flour, 80mm thermal paper — all below the configured minimum.
4 min ago
Close with a shortage · −$14,200Sede Norte
Camilo's shift closed short against the expected balance. The difference is logged in recent closes.
yesterday 21:14
Transfer in transit · TR-0142Sede Sur
Sede Centro sent 28 units of coffee 500g. Pending receipt at Sede Sur.
2 h ago
Partial receipt PO-0182Sede Norte
Equimercado delivered 28 of 40 units. The remaining 12 stay pending on the order.
6 h ago
Best day of the monthSede Centro
$1.84M across 47 tickets · average ticket $39,140 · 30-day revenue window.
today
Sale refunded · PV-002714Sede Sur
Lina refunded the sale. Stock restored across the 3 lines and excluded from completed revenue.
2 d ago
How it works

The cashier's loop, in four steps.

At most five actions per screen. The console doesn't teach — the cashier already knows how to charge. Puntovivo just gets out of the way.

01Open the register

Count the opening base by denomination. The register is ready to charge right away.

denominations
02Scan and build the sale

SKU, barcode, quantities and discounts without opening unnecessary modals.

Alt+PF5
03Charge

Cash, card, transfer, credit — or a split payment that adds up to the total. The receipt prints at 58 or 80 mm.

F1
04Close blind

Count the drawer by denomination. The system hides the expected balance until you submit the final count.

blind close
What's built

What's already built into the console.

The POS, cash, inventory and purchasing core is real code you can run today. DIAN electronic invoicing and physical hardware are still on the roadmap.

Built

AI core (optional)

  • Co-pilot: plain-language questions about your data · auditable SQL · chart + table.
  • Anomalies detected per cashier against their own 30-day average.
  • Semantic catalog search with local embeddings — find by meaning, not exact SKU.
  • Invoice OCR: photo → supplier, lines, VAT and total pre-filled into purchasing.
Built

Register with blind close

  • Opening with a count by denomination against the register template.
  • Shift movements: cash-in, cash-out, drop to safe, change replenishment.
  • Blind close — expected balance hidden until you submit the final count.
  • Cash-control report with active sessions and differences to review.
Built

Inter-site transfers

  • In-transit mode: the origin site is debited now, the destination on receipt.
  • Partial receipt with discrepancy notes and a history badge.
  • Cancellation with immediate reversal of both balances.
Built

Split payments

  • Combine cash, card, transfer, credit and other methods.
  • Optional reference per payment for reconciliation.
  • Exact-sum validation before confirming the charge.
Built

Purchasing + returns

  • Staged receipt with per-line progress against the order.
  • Purchase returns with restock and an auditable reason.
  • Quotes from the same catalog and selling unit.
How you use it

Open source. Self-host it yourself, for free.

Puntovivo is MIT-licensed open-source software. The self-hosted version is free forever: download the desktop app or build it from source. A managed cloud is on the way, with no pricing yet.

Managed cloudComing soon
Coming soon

A hosted version for anyone who doesn't want to run their own server: managed backups, updates and syncing. It isn't ready yet and has no defined price.

  • Managed hosting and backups
  • Automatic updates
  • Inter-site syncing
  • No server of your own to run
Tell me when it ships
Questions

What owners and cashiers ask before switching systems.

Does it issue DIAN electronic invoices?+
Not yet. Valid DIAN emission is on the roadmap: today the fiscal layer is a simulation to exercise the flow, not real document transmission. When it lands, the design already targets what matters most in Colombia — keep selling when the internet drops and transmit afterward, within the contingency window the regulation allows. We would rather say this plainly than promise a stamp we do not have yet.
What does a site need to get started?+
A computer running Windows 10+, macOS 12+ or a recent Linux. The desktop app runs right there and the cloud isn't required to sell. Thermal printing, a cash drawer and USB scanners are on the roadmap — we haven't validated physical hardware yet, so today the demo is on screen.
Does it work without internet?+
Yes. Changes made offline stay local and sync when the network returns. The app's status bar shows pending changes and conflicts to resolve — none of them blocks a sale in progress.
How do I handle several sites or registers?+
Puntovivo is multi-site and multi-tenant from day one. Each site has its own sale sequence, its own inventory and its own independent register. The selector in the top bar switches the active site without signing out.
What roles does the system have?+
Admin, manager, cashier (sales) and viewer. Every console route — dashboard, sales, purchasing, settings — explicitly declares which roles can see it, and changing roles invalidates the session instantly.
How does the blind close work?+
When closing the shift, the cashier counts the drawer by denomination. The system keeps the expected balance hidden until the counted total is submitted. The difference (balanced, over or short) is logged in the cash-control report — nobody fixes it by hand.
Can I migrate my catalog?+
Yes, via a CSV / Excel import with SKU, description, cost, price, VAT and stock per warehouse — that's the path that already works. Automatic per-system mappers (Loyverse, Alegra, Siigo, World Office) are on the roadmap; for now you export to CSV and import that.

A register that respects your store's rhythm.

Try it today: download the desktop app or build it from source. It's open source, in active development, and there's a demo ready for you to see it running.