Facturación electrónica (App B) — Visión general
La app TributaPro Facturador emite comprobantes electrónicos de Costa Rica integrándose directo con la API del Ministerio de Hacienda (estándar v4.4). Incluye un POS (punto de venta) y un módulo de facturación avanzada para contadores.
Capacidades
- Emisión de los 6 tipos de comprobante (factura, tiquete, NC, ND, FEC, exportación).
- Firma digital XAdES-EPES con el certificado del emisor.
- Envío durable a Hacienda + consulta de estado (vía Cloud Tasks).
- Entrega al cliente: XML + acuse de Hacienda + PDF por correo.
- Catálogos: productos (con inventario y unidades fraccionables), clientes/proveedores (con MAG y exoneración), CABYS.
- Notas: crédito, débito, anulación total, y plantillas para repetir facturas.
Tipos de comprobante
| Código | Tipo | Particularidad |
|---|---|---|
| 01 | Factura Electrónica | Receptor identificado obligatorio |
| 02 | Nota de Débito (ND) | Aumenta una factura; referencia obligatoria |
| 03 | Nota de Crédito (NC) | Anula/reduce una factura; referencia obligatoria |
| 04 | Tiquete Electrónico | Cliente opcional (consumidor final) |
| 08 | Factura Electrónica de Compra (FEC) | Roles invertidos: el emisor del XML es el proveedor |
| 09 | Factura Electrónica de Exportación (FEE) | Sin exoneraciones; con partida arancelaria |
Mapa rápido del código
| Área | Ubicación |
|---|---|
| Orquestador de emisión | lib/facturacion/server/emitir.ts → emitirComprobante() |
| Armado del XML v4.4 | lib/facturacion/xml/facturaElectronica.ts |
| Cálculo de líneas/IVA | lib/facturacion/server/calculo.ts |
| Cliente API Hacienda | lib/facturacion/hacienda/recepcion.ts, oauth.ts |
| Persistencia | lib/facturacion/server/emisorStore.ts (Firestore + Storage) |
| Notificación (correo) | lib/facturacion/server/notificacion.ts |
lib/facturacion/server/pdf.ts (pdf-lib) | |
| Helper cliente (fetch) | lib/facturacion/client/api.ts → fcApi |
| POS (wizard) | components/organisms/pos/PuntoVentaCaja.tsx |
| Factura avanzada | components/organisms/accountants/facturacion/EmitirComprobante.tsx |
| Listado/notas | components/organisms/pos/ComprobantesView.tsx |
Seguí con Arquitectura para el detalle de infraestructura y el pipeline de emisión.