Esta guía te lleva desde la inicialización de la plataforma hasta la creación de tu primera venta. Sigue los pasos en orden: cada uno desbloquea el siguiente. Al finalizar tendrás una empresa registrada, un proyecto activo, un lote en inventario, un contacto y una venta en el sistema.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/DevCarlosRodriguez/Documentacion-Arccnova-2.0/llms.txt
Use this file to discover all available pages before exploring further.
Prerrequisitos
Antes de levantar ArccNova v2 asegúrate de contar con lo siguiente:
| Dependencia | Versión mínima | Notas |
|---|---|---|
| .NET SDK | 10 | Runtime y SDK del backend |
| PostgreSQL | 17 | En producción se recomienda Aurora Serverless v2 |
| S3 / MinIO | — | MinIO sirve como sustituto local de S3 en desarrollo |
| Cuenta Stripe | — | Necesaria para suscripción SaaS y pagos en línea vía Connect Express |
El backend expone
/healthz para verificar la conexión a la base de datos. Úsalo para confirmar que el chasis está operativo antes de continuar.Inicializar la plataforma (primer SysAdmin)
El endpoint de bootstrap crea el primer usuario SysAdmin y solo puede ejecutarse una vez. Si ya existe un SysAdmin en la base de datos, la llamada devuelve Respuesta esperada (
409 Conflict.200 OK):Crear planes de precios del SaaS
El SysAdmin define los planes que las empresas pueden contratar. Cada plan establece límites por recurso (número de proyectos, lotes, usuarios, etc.) y el precio mensual que se cobra vía Stripe.Inicia sesión como SysAdmin (ver paso 4) y luego crea los planes desde el panel de administración del sistema (
/api/system/pricing-plans). Los planes son configurables en nombre, precio y límites; una vez publicados, las empresas los verán durante el registro público.Registrar una empresa (registro público con Stripe Checkout)
El registro de empresa es público: cualquier usuario puede acceder al flujo de alta desde la página de registro de ArccNova. El proceso crea simultáneamente el usuario, la empresa (Tenant) y asigna el rol CEO al usuario registrante.El flujo internamente:
- El usuario llena el formulario de registro con los datos de la empresa.
- Se inicia una sesión de Stripe Checkout para la selección y pago del plan.
- Una vez confirmado el pago, ArccNova recibe el webhook de Stripe y activa la cuenta.
El SysAdmin también puede registrar empresas directamente sin pasar por Stripe Checkout usando
POST /api/system/tenants, útil para onboarding manual o cuentas de demostración.Iniciar sesión y obtener JWT
Una vez registrada la empresa, el CEO inicia sesión para obtener los tokens de acceso. Todas las llamadas autenticadas requieren el Respuesta esperada (Claims incluidos en el JWT:
access_token en el header Authorization: Bearer.200 OK):| Claim | Descripción | Ejemplo |
|---|---|---|
sub | ID único del usuario (UUID) | "3fa85f64-5717-4562-b3fc-2c963f66afa6" |
name | Nombre completo del usuario | "Carlos Rodríguez" |
email | Correo electrónico | "ceo@miempresa.com" |
tenant_id | ID de la empresa activa | "a1b2c3d4-..." |
branch_id | ID del proyecto activo | "e5f6g7h8-..." (vacío hasta seleccionar proyecto) |
role | Rol del usuario en el contexto actual | "CEO" |
imp | ID del SysAdmin que impersona (solo presente en sesiones de impersonación) | "7f3c..." (ausente en sesión normal) |
El
refresh_token permite obtener un nuevo access_token sin reautenticarse. Usa POST /api/v1/auth/refresh antes de que el token expire.Los usuarios con rol CEO y Admin no son bloqueados por las verificaciones de contraseña del RBAC en los 18 permisos sensibles (C33/C34). El sistema les otorga paso directo en esas acciones.
Crear un proyecto inmobiliario (Branch)
Con la sesión activa, el CEO crea el primer proyecto de lotificación. Un Respuesta esperada (
Branch es un proyecto inmobiliario, no una sucursal física.201 Created):Agregar inventario: manzana y lote
El inventario se organiza en dos niveles: primero se crea la manzana (agrupador) y dentro de ella se registran los lotes individualmente.1. Crear una manzana:2. Registrar un lote dentro de la manzana:
Crear un contacto (cliente final)
Los contactos son los compradores de lotes. Son entidades independientes del proyecto y pueden estar asociados a ventas en múltiples proyectos.
Los contactos pueden tener datos de cónyuge y beneficiarios, requeridos para la generación del contrato de venta.
Crear una cotización y luego una reserva
El ciclo comercial comienza con una cotización (informativa, no compromete el lote) y avanza a una reserva que sí bloquea el lote.1. Crear una cotización:2. Crear una reserva a partir de la cotización:Una vez que el cliente acepta la cotización, se crea la reserva con el monto de apartado. Esto cambia el estado del lote a “Reservado”.
Crear una venta a partir de la reserva
La reserva se convierte en venta cuando se formaliza el contrato. Al crear la venta se definen los planes de financiamiento (hasta 4 por venta) y se genera el contrato con las variables del expediente del cliente y del lote.Al confirmar la venta:
- El lote pasa al estado “Vendido”.
- Se generan las cuotas del financiamiento con amortización francesa.
- El backend genera el PDF del contrato con QuestPDF, le calcula el hash SHA-256 y lo almacena en el bucket S3 aislado de documentos legales.
El PDF del contrato generado por el backend es el único binario descargable. No se puede regenerar ni modificar después de su creación; cualquier corrección requiere un nuevo contrato.
Siguientes pasos
Con la venta creada ya tienes el ciclo comercial básico funcionando. Los módulos que se abren a continuación son:- Collections: gestión de cuotas, cobros y mora.
- Treasury: recibos de entrada/salida y gastos del proyecto.
- Payments: habilitar pagos en línea del cliente final vía Stripe Connect Express.
- Reports: reportes operativos como el corte de caja, estado de cuenta del cliente y cartera de cobranza.