Producto Territorial

Territorial Invoices

El sistema que lleva la facturación de Territorial: registro de horas en calendario, contratos con matemática de cobro determinista y facturas generadas en minutos.

1/2Panel: horas, ingresos, distribución diaria por cliente y alertas

Territorial factura a varios clientes bajo distintos tipos de contrato cada mes. Esta plataforma interna registra horas en un calendario de arrastrar y crear, consolida las horas por contrato e hito y genera un lote completo de facturas con PDF. Un cierre que llevaba una tarde hoy toma menos de quince minutos.

En resumen

  • Las horas se registran en un calendario como se crea un evento en Google Calendar: arrastrar, redimensionar, mover
  • Tres tipos de contrato con matemática de cobro pura y testeable: por hora, por hora con base fija y por hora con crédito acumulable
  • Las facturas en borrador son proyecciones en vivo; las emitidas son instantáneas inmutables con tipo de cambio congelado y PDF A4
  • Un servidor MCP permite que Territorial Assistant registre horas automáticamente a partir de mi propia actividad

El problema

Facturar consultoría es simple hasta que deja de serlo: un cliente por hora simple, otro en retainer con horas extra, un tercero con una base que traslada las horas no usadas al siguiente ciclo, todos en monedas distintas, todos necesitando un documento con aspecto definitivo. Quería que el mes entero cerrara en minutos y que los números fueran reproducibles.

Qué hace

Clientes, contratos, proyectos e hitos forman el modelo; las entradas de tiempo se asocian a un proyecto e hito y heredan la tarifa del contrato. El calendario es la vía rápida para registrar, con filtros por cliente, proyecto e hito y colores por proyecto. Al cerrar un periodo, el sistema calcula las horas facturables de cada contrato: por hora simple cobra lo trabajado; con base cobra el mínimo más las extras a su propia tarifa; con rollover cobra la base, difiere el excedente a un búfer de un ciclo y usa el crédito arrastrado para cubrir déficits antes de que expire. Cada regla es una función pura con ejemplos resueltos en la documentación y las pruebas.

Las facturas empiezan como borradores proyectados en vivo desde las entradas y se vuelven inmutables al emitirse, con líneas, totales y tipo de cambio congelados. Los PDF se renderizan con Playwright a partir del mismo HTML que muestra la aplicación, en inglés o portugués, con direcciones estructuradas de emisor y cliente e instrucciones de pago por moneda. Un panel muestra horas, ingresos, distribución por cliente y alertas de entradas huérfanas y riesgo de horas base.

Automatización e integración fiscal

Con el tiempo me volví perezoso para registrar, así que ahora Territorial Assistant propone entradas a partir del historial git, transcripciones de Claude Code y actividad de ventanas y las registra aquí por un endpoint MCP con token de acceso personal, con el mismo modelo de roles que la aplicación web. La integración fiscal con el sistema NF-e de Brasil está en marcha: hoy la plataforma prepara todo lo que pide el sistema fiscal, de modo que emitir la nota es copiar y pegar en vez de reconstruir.

El stack es un monorepo pnpm con una API Fastify (validación Zod, Prisma, PostgreSQL) y un frontend Next.js App Router que mantiene toda la lógica de negocio en el servidor.

Más proyectos

Todos los proyectos