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

FuenteQué es
AlojamientoUn cargo por noche, más uno por cada fee del plan tarifario.
ManualUn servicio adicional que alguien agregó en el mostrador.
TiendaUn 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},
    o null cuando 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 × quantity no es confiablemente el bruto. Cuál de amount y
net_amount equivale 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}/charges devuelve el folio
    con el impuesto congelado de cada línea. GET /api/merchant/charges es la
    vista entre reservas desde la que se explican las cifras de ingreso.
  • La External API no expone folios. Una reserva creada ahí queda pending y sin
    pagar, y su total_price es el total de alojamiento.

Relacionado


Did this page help you?