Folios y cargos
Un folio es la lista de todo lo que debe una reserva. Cada
línea es un cargo.
Este es el lado del debe. El lado del haber — el dinero que efectivamente se
movió — son los movimientos de finanzas, y los
dos están separados a propósito: lo que se debe y lo que se recibió son
preguntas distintas con fechas distintas.
Qué publica un cargo
| Fuente | Qué es |
|---|---|
| Alojamiento | Un cargo por noche, más uno por cada fee del plan tarifario. |
| Manual | Un servicio adicional que alguien agregó en el mostrador. |
| Tienda | Un producto o servicio vendido a la reserva desde el catálogo. |
Cada cargo de alojamiento lleva su propia fecha de servicio — la noche en que
se dio el servicio. Esa fecha, y no la fecha en que se escribió la línea, es por
la que filtran los reportes devengados y la pantalla de cargos.
Una reserva de OTA puede además publicar líneas manual por cargos de servicio
que cobró el propio canal — una tarifa de limpieza, un resort fee. Son cargos
reales del folio, nombrados desde el canal y publicados sin impuesto.
Cada cargo congela su propio impuesto
Un cargo guarda cuatro campos de dinero, y la relación entre ellos nunca varía:
amount = net_amount + tax_amount
net_amount— la base, sin impuesto.tax_amount— el impuesto total de la línea.amount— lo que el huésped debe por esa línea.tax_breakdown— la lista congelada de líneas{name, rate, base, amount},
onullcuando no aplica nada. Esto es lo que imprimiría una factura.
El desglose se congela al publicar. Cambiar un perfil de impuestos mañana no
reescribe un cargo publicado hoy — ver Impuestos.
unit_price × quantityno es confiablemente el bruto. Cuál deamounty
net_amountequivale al precio publicado de la propiedad depende de si su
perfil de impuestos es inclusivo o exclusivo. Hay que leer el campo que uno
quiere decir.
El total de la reserva es derivado
bookings.total_price es una suma cacheada del folio, no una cifra
independiente. Los cargos son el registro; el total es una comodidad.
Esto importa en un lugar en particular: una reserva se crea antes de que se
publiquen sus cargos de alojamiento, así que total_price es '0.00' en el
instante de la creación y se vuelve correcto una vez construido el folio.
Cualquier cosa que lea un total inmediatamente después de una escritura debería
leerlo después de que los cargos existan, no durante.
Un folio, una moneda
Una reserva fija su moneda al crearse — desde su plan tarifario, o desde la
reserva del canal si es una reserva entrante de OTA. Todo lo que se publique en
ella se convierte al momento de publicar a esa moneda, y el cargo guarda su
propia foto: el monto origen, la moneda origen y la tasa usada.
La alternativa — un folio cuyo saldo es un vector, 150,000 CLP y 40 USD —
obliga a cada pantalla, total, factura y flujo de pago a razonar por moneda, y le
entrega al huésped una cuenta con dos totales.
El costo es real y vale decirlo: el precio en el folio de un producto de tienda
puede diferir de su precio de catálogo cuando la tasa se movió desde entonces.
Eso es correcto, y la foto es lo que lo hace auditable. Ver
Monedas.
En la API
- Merchant:
GET /api/merchant/bookings/{booking}/chargesdevuelve el folio
con el impuesto congelado de cada línea.GET /api/merchant/chargeses la
vista entre reservas desde la que se explican las cifras de ingreso. - La External API no expone folios. Una reserva creada ahí queda
pendingy sin
pagar, y sutotal_pricees el total de alojamiento.
Relacionado
- Impuestos — de dónde sale el desglose congelado.
- Pagos y saldo — el otro lado.
- Reservas de grupo — cuando los cargos de una habitación los debe una empresa.
Updated 13 days ago