Skip to main content
No cash circulates inside the venue: the wristband carries balance, it is topped up and spent at the bars. This page covers how to read it and, if the organiser authorises you, how to top it up. Scopes: cashless.read for everything read-only, cashless.write to top up (requires manual activation).
All amounts are integers in cents. 2500 is €25.00. The event’s currency is in GET /event.

Reading a wristband

It is addressed by its radio code, NFC or UHF, which is what your application has after a scan:
Possible statuses:
Anonymous wristbands — the ones sold at the top-up point with no ticket attached — return attendee.name: null and anonymous: true. They have no identified holder, and the internal name they carry is synthetic.

Negative balance

balance can be negative. It is not a bug on your side: when a terminal charges without connectivity and the sale syncs later, the drink has already been served, and VENTRY would rather record the overdraft than unbalance the till. The overdraft is capped by the event’s policy.

Purchases

Note the difference between quantity and charged_amount. In the example two €5.00 beers were served, but one was covered by a drink included in the VIP pass (included_quantity: 1), so only €5.00 was charged to the balance. total is always what was actually charged, not the nominal value of what was served. If you add up unit_price * quantity to reconcile takings, you will book revenue that never existed.

Top-ups and withdrawals

direction: "withdraw" entries are balance refunds to the attendee. amount is always positive; the direction is given by direction.

Topping up

Only if you have cashless.write. Meant for integrators who charge the top-up on their own platform — an online top-up app, for instance — and need to reflect it in VENTRY.
Charge first, top up after. VENTRY charges nothing: it only adds balance. Call this endpoint once your gateway has confirmed the payment, never before.The movement is recorded with payment method manual and against your API key’s virtual device, so it shows up in the event’s closeout. The organiser has to be able to see it in order to reconcile: you are the one holding the money.
If the wristband does not accept top-ups — it is under review, or released — the response is 422 topup_failed.

Reconciliation

To pull the takings into your own system:
These figures come from the same function that feeds the closeout in the VENTRY dashboard, so they match exactly what the organiser sees.
A sale made at 22:00 without connectivity and synced at 02:00 carries an occurred_at of 22:00. If you group by created_at, Friday night’s takings will appear split between Friday and Saturday.
For the same reason: go back a few hours from your last pass and deduplicate by id. See Pagination.
It is the balance left unspent on wristbands. Some will be refunded to attendees and some will not. Do not add it to sales.
GET /reports/sales-summary without day returns 422 day_required. This is deliberate: silently handing you a truncated total would look like the whole event’s total and would not be. Request each day separately.