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.

01Clear primary action
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 saleF1
D discount·F2 fast cash
Built for Multiple sites, one protected workspace Blind close by denomination Split cash + card payments Cashier · manager · admin roles Per-shift audit trail
Product

Every module speaks the same 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 are the source of truth, and services sell without touching inventory. Real units (kg, litre, dozen) with GS1 scale labels: the weighed price enters the cart as printed.

Per-site stock · services · GS1 scale

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

Business isolation & audit

Each business keeps its data isolated, with per-site sequentials and a per-shift audit trail. Changes to a user's role or business access refresh the session without interrupting a sale in progress.

Sequentials · roles · audit trail

Taxes the way your business charges them

VAT and consumption tax (INC) per product, frozen on every sale line. Prices with tax included or added on top, per business, with the same rounding engine at the register and on the fiscal document.

VAT · INC · tax-inclusive or not

Customer price levels

Three catalog prices per product and a level per customer: wholesale buyers pay their price without every line looking like a manual override. Changing a customer level is audited.

P1 · P2 · P3 · wholesale
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…K
Core · AI

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

Ask in plain language, review unusual cashier patterns, search products by meaning, or extract a supplier invoice from an image. Co-pilot, OCR, voice and semantic embeddings now share tenant-scoped usage accounting. Amounts remain provider-priced estimates, and calls without usable pricing stay visibly unknown. All four capabilities ship turned off: enable them from Settings › AI when you choose.

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

Talk to your business. It answers with visible evidence.

Type what you want to know in plain language — "best-selling products", "top cashier", "sites with low margin". Puntovivo builds the SQL and runs it against your business data. An administrator can keep the generated explanation or choose results only; the SQL, row count, table and available chart stay visible in both modes.

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…K
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 for 7 days · usage audited

Semantic search

Products by meaning

An administrator builds the catalog's local vector index with the configured embedding provider and rebuilds it when the model or product text becomes stale. Search "low-fat dairy" and Yogurt Alpina light can appear even without an exact name match; if embeddings are unavailable, the catalog returns to ordinary text search.

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
Vectors stored locally · generated by the configured provider

Invoice OCR

Photo → logged purchase

Upload an image of a supplier invoice. A compatible configured AI provider attempts to extract supplier, lines, quantities, VAT and total and pre-fills purchasing for you to review before confirming.

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
Requires a compatible provider · review every extracted field
AI roadmapIdeas under research.

These are candidate directions, not committed dates. They move into delivery only after the underlying retail problem and operating boundary are validated.

ResearchDemand forecast per SKUResearchSuggested auto-reorder to supplierResearchSpoken shift summaryCandidateVoice checkout for the customerCandidatePhysical-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?+
The configured provider receives your question and may receive rows returned from a bounded, tenant-scoped analytics snapshot. Those rows can include cashier, site, product and customer names when the query selects them; tax IDs, emails, phones and card numbers are not part of the snapshot. Invoice OCR sends the selected invoice image to the configured provider, and cloud semantic search sends product or query text for embedding. The provider never receives database credentials or direct database access. Choose a local Ollama provider if supported processing must stay on your own network.
Where does the model run? Does my data leave the country?+
The Co-pilot uses the provider you configure: OpenAI, Anthropic or Ollama. OpenAI and Anthropic are cloud services; Ollama can run on your own network. SQL executes locally inside a disposable, tenant-scoped, read-only analytics snapshot. Semantic-search vectors are stored and matched locally, but OpenAI or Ollama generates the product and query embeddings; Anthropic falls back to ordinary text search.
What happens if the site loses internet?+
Sales continue without internet because AI never sits in the checkout path. A cloud-configured Co-pilot and invoice OCR pause while offline. Semantic search also needs its configured embedding provider for each query, so it falls back to ordinary text search when that provider is unavailable. Ollama can keep supported AI paths local if it is running on the store network.
How much does the AI cost?+
Puntovivo does not add an AI subscription: you use the provider account you configure. The tenant monthly guard and usage audit cover language, OCR, voice, catalog, invoice-match and semantic-query provider calls. Known model prices produce estimates; unpriced remote calls are reported separately as unknown cost instead of being shown as free, and local Ollama calls record US$0 external provider cost. Provider invoices and quotas remain authoritative because Puntovivo cannot reserve or certify a third-party bill. Anomaly detection does not use a language model.
Can I trust the answers? What if it makes up numbers?+
Every Co-pilot response includes the executed SQL, row count and result table. An administrator can choose data with an explanation or results only for the whole business. Results-only mode requests no generated narrative and keeps the SQL, rows and deterministic chart evidence visible. A valid query does not automatically prove that a business conclusion is correct.
How do I turn the AI on or off?+
All four capabilities ship turned off. From Settings › AI, an administrator enables the AI system and chooses the individual capabilities for the business: Co-pilot, anomalies, semantic search and OCR. Leaving AI off keeps the ordinary register and catalog paths available.
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.

Each task keeps one clear primary action visible and moves advanced tools out of the way until they are needed.

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, purchasing, receipt, and provider-neutral fiscal foundations are real code you can run today. DIAN certification and representative physical-device qualification remain external gates.

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 locally stored vectors — OpenAI or Ollama generates the embeddings.
  • 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.
  • Completed-sale receipt handoff: local PNG plus WhatsApp text for the operator to review and send manually.
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.
Built

Flexible tax model

  • VAT and consumption tax (INC) per product; the kind rides with the rate and freezes on every sold line.
  • Tax-inclusive prices or base price + tax, configurable per business and audited.
  • Per-line fiscal classification (DIAN category) and per-kind breakdown on the document.
  • Uniform two-decimal rounding shared between the cart preview and the actual charge.
Built

Price levels and wholesale

  • Three catalog prices per product; every customer carries a level (retail, price 2, price 3).
  • P1/P2/P3 chips on the ticket reprice eligible lines without clobbering scale labels or manual edits.
  • The price-override detector knows the level: selling wholesale at their price raises no false alerts.
  • Changing a customer level leaves an audit trail with before and after.
Built

Verticals, services and scales

  • Onboarding asks what you sell and enables only your vertical; the restaurant surface lives behind its module.
  • Service items sell without stock and never touch inventory, mixed with physical products on the same ticket.
  • Units carry a dimension and UN/ECE code (kg, gram, litre, dozen) that flows into the fiscal document.
  • GS1 weight or price-embedded labels resolve at the classic register and the touch screen alike.
How you use it

Open source. Run it on your own computer, for free.

Puntovivo is MIT-licensed open-source software. The local 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. Puntovivo already has provider-neutral fiscal profiles, immutable sale-time evidence, controlled numbering, and a durable emission outbox with recovery controls. It does not yet sign or transmit production documents through a DIAN-authorized Technology Provider. That path still requires a provider contract, credentials, certificates, conformance testing, and certification.
What does a site need to get started?+
A computer running Windows 10+, an Apple Silicon Mac on macOS 15 Sequoia or 26 Tahoe, or a recent Linux. Intel Macs have no artifact today. The desktop app runs there and the cloud is not required to sell. System and TCP receipt printing, configurable receipt templates, scanner input, and drawer commands already have software paths; representative printers, drawers, scanners, and payment terminals still need physical qualification.
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 built for multiple sites from day one. Each site has its own sale sequence, inventory, and 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. The CSV / Excel importer supports SKU, description, cost, price, VAT and opening stock. It recognizes the exact tested export layouts for Loyverse, Alegra, Siigo and World Office and proposes a versioned profile; changed or unknown layouts use the generic mapper. You always confirm the mapping and preview before saving.
Can I send a receipt through WhatsApp?+
Puntovivo can render customer-facing receipt text, prepare a PNG locally and open the WhatsApp composer. It does not upload the receipt, attach the image or send in the background: the operator reviews the text, attaches the downloaded image when desired and presses send in WhatsApp.

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.