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:
| Perfil | Aplica a |
|---|---|
| Reservas | Reservas directas y manuales. |
| Tienda | Productos de tienda agregados a una reserva. |
| Servicios adicionales | Cargos 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_price | Neto | El huésped paga |
|---|---|---|
| encendido — la tarifa ya trae el impuesto | 84.03 | 100 |
| apagado — el impuesto se suma encima | 100 | 119 |
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_source | Significado |
|---|---|
profile | Lo calculó el perfil de esta propiedad. La tasa es la que uno configuró. |
ota | Lo 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. |
none | No aplicó nada cuando esto se publicó. |
otacon monto cero no es lo mismo quenone. 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-settingsdevuelve cada ajuste con su
esquema de formulario y sus valores por defecto ya puestos — es un objeto con
llaves, así que se leeresponse.tax_profile_accommodation, no
response[0].PUT /api/merchant/property-settings/{key}escribe uno. - Cada cargo lleva
net_amount,tax_amount,amount,tax_sourcey
tax_breakdown.amount = net_amount + tax_amount, siempre. - External:
POST /quotedevuelvetax_amounty
total_with_tax.total_with_taxes lo que debe el huésped y la cifra que hay
que mostrar.
Relacionado
- Folios y cargos — donde vive el desglose congelado.
- Reglas de precio — los precios acordados y la excepción que abren.
- Distribución y Channel Manager — de dónde sale el impuesto
ota.
Updated 13 days ago