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 pagado y saldo regalado

Una pulsera lleva dos saldos:
  • balance: lo que pagó el asistente. Es el único que se le devuelve al final.
  • promo_balance: lo que le regaló el organizador (cortesías y bonificaciones de recarga). Se gasta en barra igual que el otro, pero no se devuelve nunca.
Lo que puede gastar es la suma de los dos. Si enseñas un saldo al asistente, enseña los dos por separado: «55 €, de ellos 5 € regalados y no reembolsables».

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

Bonificaciones de recarga

El organizador puede regalar saldo por recargar: «recarga 50 € y te regalamos 5 €». Las reglas se configuran en el panel, y lo que vale es el escalón más alto alcanzado; si coinciden varias reglas, la que más regala. El regalo va a promo_balance. Para que funcione bien, el asistente tiene que ver el regalo antes de pagar:
  1. Pide el regalo de los importes que ofreces. code (entrada o pulsera) aplica el tope por persona, si la regla lo tiene.
    next es el siguiente escalón que mejora el regalo, para animar a recargar más: «añade 30 € y te regalamos 5 €».
  2. Enséñalo junto al importe y cobra.
  3. Al recargar, manda lo que enseñaste y cuándo:
    La regla se comprueba en granted_at, así que una recarga pagada antes del evento conserva su regalo aunque la entregues cuando la promoción ya terminó. Se concede como mucho lo que la regla permite para ese importe; la respuesta dice cuánto se dio en bonus_amount y deja el saldo regalado en new_promo_balance.
Si guardas recargas para entregarlas más tarde (por ejemplo, las que se pagan antes del evento y se entregan al acreditarse), pásalas en pending_rules al presupuestar: una entrada por recarga pendiente con regalo. Cuentan para el tope por persona, y así no prometes un regalo que al entregar ya no toque.
GET /topup-bonuses lista las reglas activas del canal online, con sus escalones y fechas, por si quieres anunciarlas.

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. topups son sólo recargas pagadas. El saldo que regala el organizador (cortesías, bonificaciones) va aparte en courtesy: mueve saldo, pero no es dinero ingresado. En GET /topups, cada recarga lo indica con nature.
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.