What you see
Every machine, what it sold, and whether it is still reporting.
- checkSales per machine and per location, over any range.
- checkProduct-level breakdowns, aggregated automatically from the product name on each transaction — no separate catalogue to maintain.
- checkCash versus cashless split, from the payment type you send with each sale.
- checkOffline detection against your own heartbeat window, so a machine that stops reporting surfaces immediately.
- checkFailed and refunded transactions tracked separately — a machine taking failed payments is a different problem from a quiet one.
Sales telemetry, not stock counts
Worth being straight about this, because it decides whether PulseGrid fits. Products and SKUs are derived from the transaction events you send — the product name and quantity on each sale. That gives you what sold, where, when, and for how much.
It is not a planogram or an inventory system. PulseGrid does not know a machine holds forty units of a line and does not count down from that. If your machines report vend events, you get accurate sales intelligence and can infer depletion from it. If you need true stock levels, that belongs in your VMS.
How it connects
PulseGrid does not talk to your hardware directly. Your software — whatever runs on the machine, or the middleware behind it — posts events to a REST API as they happen. That means no gateway to install, no agent to maintain, and no vendor lock on the device side.
The whole integration is five steps, and most teams have the first events flowing in an afternoon:
- checkCreate an org API key in the dashboard’s Developer settings.
- checkExchange it for a short-lived JWT at POST /api/v1/auth/token.
- checkCreate a location — a site, a store, a depot.
- checkProvision terminals in bulk; each one comes back with its own ingest key.
- checkPost transactions, heartbeats and errors using that key in the X-Api-Key header.
Alerts worth acting on
A machine that goes quiet triggers an email against the offline threshold you configured, and you can set preferences per terminal so the noisy ones do not train everyone to ignore the inbox.
Errors carry your own codes and messages, so a bill validator fault reads as a bill validator fault instead of a generic failure.
Common questions
Does PulseGrid track stock levels?
No. It tracks sales — what was vended, when, where, and for how much — derived from the transaction events your machines send. It does not hold a planogram or count remaining units. Many operators use the sales data to infer depletion, but true inventory belongs in a VMS.
Can it tell cash from card?
Yes, provided you include the payment type on each transaction. The dashboard breaks revenue down by payment method from that field.
What if a machine has no network?
PulseGrid needs the machine, or something behind it, to reach the API over HTTPS. Machines on an intermittent connection can buffer locally and post when they reconnect — each event carries its own occurred-at timestamp, so late arrivals land in the right place in your history rather than bunching at the time they were received.
How does it know a machine is down?
Machines send heartbeats. If one has not checked in within the window you set for your organisation, it flips to offline and alerting fires. You choose the window, because a machine reporting every 30 seconds and one reporting every 10 minutes are both perfectly normal.