Impuestos

El impuesto en Axis Pro se configura una vez y se lee en diez lugares: cada
folio, cada cotización, cada reporte, los KPI del dashboard. No hay una pantalla
diaria de impuestos — hay una pantalla de configuración y muchos consumidores.

Axis Pro calcula el impuesto en cada cargo y le congela el desglose encima. No
emite facturas ni documentos fiscales — el desglose congelado es desde donde
imprime una factura.

El impuesto se congela cuando se publica un cargo

Un cargo guarda su propio desglose: qué impuestos
aplicaron, a qué tasa, sobre cuánto dinero. Ese desglose no se recalcula nunca.

Una estadía vendida en enero al 19% sigue leyendo 19% en abril, aunque la tasa
haya pasado a 21% en febrero. Cambiar un perfil no recotiza nada ya vendido.

Esta sola decisión explica casi todas las preguntas sobre el módulo:

  • por qué las reservas viejas no se actualizan cuando uno corrige una tasa;
  • por qué un cargo publicado antes de configurar el impuesto se queda sin
    impuesto para siempre;
  • por qué una factura emitida hace seis meses sigue cuadrando.

La alternativa — recalcular al leer — haría que el total de una reserva cambiara
por sí solo después de pagada. Eso no es un impuesto, es un bug.

Tres perfiles, que se encienden por separado

No existe un único "impuesto del hotel". Hay tres perfiles independientes, uno
por fuente de cargo:

PerfilAplica a
ReservasReservas directas y manuales.
TiendaProductos de tienda agregados a una reserva.
Servicios adicionalesCargos manuales del folio.

Cada uno se habilita, se deshabilita y se configura por su cuenta. Reservas con
impuesto y tienda sin impuesto es una configuración corriente, no un error.

Un perfil que nunca se configuró se lee como un perfil completo y deshabilitado
— enabled: false, taxes: [] — así que toda propiedad tiene una respuesta
válida en el momento en que se le pregunta.

Cada perfil admite hasta cinco impuestos, porque algunos mercados agregan una
tasa municipal encima del IVA. Casi nadie usa más de uno.

"El precio incluye impuesto" es el campo que decide el precio del huésped

Dos interruptores están cerca uno del otro y hacen cosas distintas. El primero
decide si se cobra impuesto. El segundo decide si ya viene dentro del
precio
.

Con 19% de IVA y una tarifa de 100:

included_in_priceNetoEl huésped paga
encendido — la tarifa ya trae el impuesto84.03100
apagado — el impuesto se suma encima100119

La misma tarifa configurada, dos precios finales distintos. Este es el ajuste que
más seguido se configura mal, y por eso la consecuencia va junto al interruptor y
no en un tooltip.

Una excepción deliberada: un precio acordado — una tarifa personalizada, o la
tarifa fija por noche de un grupo — siempre se trata como el bruto bajo ambos
perfiles. Ver
Reglas de precio.

Tres orígenes de impuesto, y son tres hechos distintos

Cada cargo declara de dónde vino su impuesto. tax_source es el campo que más
peso carga en esta página.

tax_sourceSignificado
profileLo calculó el perfil de esta propiedad. La tasa es la que uno configuró.
otaLo cobró el canal y él lo declara. La tasa es efectiva — derivada de los montos que mandó el canal — y puede no coincidir con la de uno.
noneNo aplicó nada cuando esto se publicó.

ota con monto cero no es lo mismo que none. El primero dice el canal
no cobró impuesto en esta estadía
; el segundo dice acá no aplicó ningún
impuesto
. La diferencia puede ser dinero que el operador igual debe, así que
un cargo de canal conserva su etiqueta sea cual sea el monto, y el cero tiene
su propia redacción.

Esto dejó de ser un caso raro: un canal que solo cobra fees de servicio publica
el alojamiento con impuesto cero y el fee como una línea aparte.

Los cargos de servicio del canal — limpieza, resort fees — llegan como
servicios adicionales, sin impuesto, con el nombre que les puso el canal.

En la API

  • Merchant: GET /api/merchant/property-settings devuelve cada ajuste con su
    esquema de formulario y sus valores por defecto ya puestos — es un objeto con
    llaves
    , así que se lee response.tax_profile_accommodation, no
    response[0]. PUT /api/merchant/property-settings/{key} escribe uno.
  • Cada cargo lleva net_amount, tax_amount, amount, tax_source y
    tax_breakdown. amount = net_amount + tax_amount, siempre.
  • External: POST /quote devuelve tax_amount y
    total_with_tax. total_with_tax es lo que debe el huésped y la cifra que hay
    que mostrar.

Relacionado


Did this page help you?