Skip to main content
Dentro del recinto no circula dinero: la pulsera lleva saldo, se recarga y se gasta en las barras. Esta sección cubre cómo consultarlo y, si el organizador te lo autoriza, cómo recargarlo. Permisos: cashless.read para todo lo de lectura, cashless.write para recargar (requiere activación manual).
Todos los importes son enteros en céntimos. 2500 son 25,00 €. La moneda del evento está en GET /event.

Consultar una pulsera

Se direcciona por su código de radio, NFC o UHF, que es lo que tu aplicación tiene tras un escaneo:
Estados posibles:
Las pulseras anónimas —las que se venden en el punto de recarga sin entrada asociada— devuelven attendee.name: null y anonymous: true. No tienen un titular identificado, y el nombre interno que llevan es sintético.

Saldo negativo

balance puede ser negativo. No es un error de tu lado: cuando un terminal cobra sin cobertura y la venta se sincroniza más tarde, la consumición ya se sirvió y VENTRY prefiere registrar el descubierto a descuadrar la caja. El descubierto está acotado por la política del evento.

Consumiciones

Fíjate en la diferencia entre quantity y charged_amount. En el ejemplo se sirvieron dos cervezas de 5,00 €, pero una estaba cubierta por una consumición incluida en el abono VIP (included_quantity: 1), así que sólo se cobraron 5,00 € al saldo. total es siempre lo realmente cobrado, no el valor nominal de lo servido. Si sumas unit_price * quantity para cuadrar caja, te saldrán ingresos que nunca existieron.

Recargas y retiradas

direction: "withdraw" son devoluciones de saldo al asistente. amount es siempre positivo; el sentido lo da direction.

Recargar saldo

Sólo si tienes cashless.write. Pensado para integradores que cobran la recarga en su propia plataforma —una app de recarga online, por ejemplo— y necesitan reflejarla en VENTRY.
Cobra tú primero, recarga después. VENTRY no cobra nada: se limita a añadir saldo. Llama a este endpoint sólo cuando tu pasarela haya confirmado el pago, nunca antes.El movimiento se registra con método de pago manual y contra el dispositivo virtual de tu API key, así que aparece en el cierre de caja del evento. El organizador tiene que poder verlo para cuadrar: el dinero lo tienes tú.
Si la pulsera no admite recargas —está en revisión, o liberada— la respuesta es 422 topup_failed.

Conciliación

Para volcar la facturación a tu propio sistema:
Estas cifras salen de la misma función que alimenta el cierre de caja del panel de VENTRY, así que coinciden exactamente con lo que ve el organizador.
Una venta hecha a las 22:00 sin cobertura y sincronizada a las 02:00 lleva occurred_at de las 22:00. Si agrupas por created_at, la facturación de la noche del viernes aparecerá partida entre viernes y sábado.
Por lo mismo: retrocede unas horas respecto a tu última pasada y deduplica por id. Ver Paginación.
Es el saldo que queda en las pulseras sin gastar. Parte se devolverá al asistente y parte no. No lo sumes a las ventas.
GET /reports/sales-summary sin day responde 422 day_required. Es deliberado: devolverte un total recortado en silencio parecería el total del evento y no lo sería. Pide cada día por separado.