Quién lo aprobó, a qué tipo de cambio y qué día: guardado, lo pregunte alguien o no.
Las aprobaciones, el estado de los pagos, los tipos de cambio y los cambios de rol los registra el servidor en el momento, no se reconstruyen desde un grupo de chat seis semanas después.
- Gasto aprobado · €980,00A. Silva · hace 2 min · supera el umbral
- Rol de un miembro cambiado · M. Lopes → ContabilidadA. Silva · hace 14 min
- Gasto enviado · $500 → €462,18 @ 0,9244J. Costa · hace 1 h
- Línea de presupuesto editada · Producción +€2.000A. Silva · ayer
Registro de auditoría de serie
Cada cambio financiero lleva la persona que lo hizo y el momento. Crear el evento, aprobar un gasto, mover una línea de presupuesto: todo queda en el historial propio del evento.
- Autor y hora en cada cambio
- Lo escribe la API, no el cliente
Acceso por roles
Un regidor que sube justificantes y una contable que marca facturas como pagadas no necesitan los mismos permisos. Cuatro roles, y cada endpoint comprueba el del usuario antes de actuar.
- Cuatro roles, comprobados en el servidor
- Claim de organización en el token
Tipos de cambio históricos conservados
Un proveedor que factura en dólares conserva el importe en dólares y el tipo del día en que lo introdujiste. Un informe sacado meses después muestra lo que costó el espectáculo, no lo que costaría al tipo de hoy.
- Tipo de cambio guardado al introducirlo
- Tratamiento del IVA fijado por línea
Claridad operativa
Presupuesto, gasto, ingresos y aprobaciones están en los mismos registros, así el margen que ves en un informe sale de líneas en las que puedes hacer clic.
- Presupuesto, gasto e ingresos juntos
- Exportaciones desde los mismos registros
Cuatro barreras que cruza cada escritura.
Son las capas que atraviesa una solicitud antes de poder cambiar una cifra. Son las mismas en todos los entornos.
Sesión autenticada
Firebase Auth establece quién hace la solicitud. El acceso admite correo y SSO de Google.
- Correo y SSO de Google
- La sesión se establece antes que nada
Claim de organización en el token
Un claim orgId emitido en el servidor limita cada lectura a los datos de esa organización. Todos los registros están en /orgs/{orgId}.
- Claim orgId en el token
- Todos los registros en /orgs/{orgId}
Comprobación de permisos en el servidor
Cada endpoint comprueba el rol del usuario antes de actuar. Ocultar un botón no es el control; la comprobación en el servidor, sí.
- requireRole() antes de actuar
- Un botón oculto no es un control
Las escrituras pasan por la API
Las reglas de seguridad rechazan las escrituras desde el cliente, así que las instantáneas de IVA y de tipo de cambio no se pueden falsificar desde el navegador.
- Escrituras del cliente rechazadas
- Las instantáneas no se pueden falsificar
Cuatro líneas del registro de un evento.
Cada línea de aquí la escribe el servidor. El cliente no puede crear una entrada de auditoría ni una instantánea del tipo de cambio.
- Gasto aprobado · €980,00A. Silva · supera el umbral · registrado con autor y hora
- Tipo de IVA fijado · IVA 23 % guardado en la líneaCambiar después el nombre del tipo en el catálogo no cambiará esta línea
- Tipo de cambio registrado al introducirlo · $500 → €462,18 @ 0,9244Guardado en el registro, nunca recalculado al generar el informe
- Rol cambiado · M. Lopes → ContabilidadClaim reemitido en el servidor; se aplica en la próxima renovación del token
Lo que podemos poner por escrito.
La versión honesta de una página de seguridad: lo que está implantado hoy y dónde puedes comprobarlo tú. Cuando algo no está en marcha, lo decimos claramente.
| Ámbito | Situación | Cómo comprobarlo |
|---|---|---|
| Ubicación de los datos | Firebase (Google Cloud), europe-west1, Bélgica. Solo en la UE por defecto. | Indicado en nuestra política de privacidad, con la lista de subencargados. |
| RGPD | Se atienden solicitudes de acceso, rectificación, supresión y portabilidad. | Política de privacidad; escríbenos para ejercer un derecho. |
| Datos de tarjeta | Cashbox nunca guarda datos de tarjeta. Stripe trata los datos de pago en su propio entorno con cumplimiento PCI. | Stripe figura en la lista de subencargados. |
| Aislamiento entre organizaciones | Separación por organización impuesta por las reglas de seguridad de Firestore sobre un claim emitido en el servidor. | Las reglas están cubiertas por una batería de tests automáticos en el repositorio. |
| Registro de auditoría | Los cambios financieros se registran con autor y hora, escritos en el servidor. | Visible en el producto, en el historial de cada evento. |
| Contrato de encargo de tratamiento | Disponible bajo solicitud; contrato a medida en el plan Enterprise. | Contacta con nosotros y te enviamos el contrato vigente. |
| Certificación formal | Cashbox no tiene actualmente la certificación SOC 2 ni ISO 27001. No diremos lo contrario. | Pregúntanos directamente por los planes y plazos actuales. |
Cómo lo configuran los equipos de eventos.
Solo los propietarios ven la facturación. Propietarios y dirección pueden invitar. Da al resto del equipo de producción el rol de responsable de evento y a tu gestoría el rol de contabilidad.
Pon el umbral en el importe que querrías ver antes de que se gaste. Lo que esté por debajo o igual se aprueba al enviarlo; lo que lo supere espera a que alguien lo revise.
Adjunta la factura al gasto al registrarlo. Se queda en el registro, tras el mismo control de organización que todo lo demás, así el cierre no es rebuscar en el correo.
Exporta desde los mismos registros por los que pasaron las aprobaciones. Tu gestoría recibe las cifras del evento con todo el historial detrás, no una hoja que alguien volvió a teclear.
¿Necesitas el contrato de encargo de tratamiento o verlo más a fondo?
Pídenoslo y te enviamos el contrato de encargo de tratamiento vigente, la lista de subencargados o una explicación de cómo se configuran roles y aprobaciones.