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.
A wristband carries two balances:
  • balance: what the attendee paid. The only one refunded at the end.
  • promo_balance: what the organiser gifted (courtesy credit and top-up bonuses). Spent at the bar like the other one, but never refunded.
What can be spent is the sum of both. If you show a balance to the attendee, show both separately: “€55, of which €5 is a non-refundable gift”.

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 online 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.

Top-up bonuses

The organiser can gift balance for topping up: “top up €50 and get €5 free”. Rules are set up in the dashboard, and the highest tier reached applies; if several rules match, the most generous one wins. The gift goes to promo_balance. To work well, the attendee has to see the gift before paying:
  1. Ask for the gift of the amounts you offer. code (ticket or wristband) applies the per-person cap, if the rule has one.
    next is the next tier that improves the gift, to encourage a bigger top-up: “add €30 and get €5 free”.
  2. Show it next to the amount and charge.
  3. When topping up, send what you showed and when:
    The rule is checked at granted_at, so a top-up paid before the event keeps its gift even if you deliver it after the promotion has ended. At most what the rule allows for that amount is granted; the response tells you how much was given in bonus_amount and leaves the gifted balance in new_promo_balance.
If you hold top-ups to deliver later (for instance, those paid before the event and delivered at check-in), pass them in pending_rules when quoting: one entry per pending top-up with a gift. They count towards the per-person cap, so you never promise a gift that would no longer apply at delivery.
GET /topup-bonuses lists the active rules for the online channel, with their tiers and dates, in case you want to advertise them.

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. topups only contains paid top-ups. Balance given away by the organiser (courtesies, bonuses) goes separately in courtesy: it moves balance, but it is not money received. In GET /topups, each top-up says so in nature.
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.