La facturación electrónica en República Dominicana dejó de ser un proyecto piloto. Con el cronograma de obligatoriedad de la Norma 06-2024 ya en marcha, cada ERP, cada POS y cada sistema de gestión que opere en el país necesita emitir e-CF antes de que su segmento entre en vigencia. Y emitir e-CF bien es difícil — no porque la idea sea compleja, sino porque la implementación está llena de bordes afilados: firma XAdES, polling de estados, contingencia de 72 horas, anulación por rangos, retención a 10 años, aprobación comercial, validaciones tipo-específicas, traducción de códigos de error crípticos y un entorno de pruebas (CerteCF) que cuando se cae —y se cae seguido— deja tu certificación en el aire por días.

Después de dos años emitiendo e-CFs dentro del POS de Nexo y de meses puliendo cada detalle del asistente de certificación DGII, llegamos a una conclusión que ya era obvia: este código no debería vivir atrapado dentro de un POS. Debería poder usarlo cualquier otro sistema que necesite emitir comprobantes en RD. Así nace Aura.

Qué es Aura

Aura es la capa intermedia entre tu POS/ERP y los servidores de la DGII. Recibe ventas, firma con XAdES, mantiene una cola de envío resiliente, sigue el estado en tiempo real, retiene 10 años los XMLs y te avisa por webhook firmado con HMAC-SHA256 cuando algo cambia. Tu sistema no necesita saber nada del XML, las semillas de autenticación, las secuencias, los códigos de la DGII ni los formatos de retorno.

La filosofía detrás del nombre es deliberada. "Aura" remite a un campo invisible que rodea y protege algo — y eso es exactamente lo que el servicio hace: se sienta entre tu negocio y la DGII, absorbe toda la fricción burocrática y técnica, y te deja operar tranquilo. No es un ERP, no es un POS. Es la pieza que tu ERP o POS usa cuando necesita hablarle a la DGII, igual que Stripe es la pieza que tu app usa para hablar con las redes de tarjeta.

Por qué lo sacamos del POS

Cuando empezamos a operar e-CF dentro de Nexo POS, todo vivía mezclado: la lógica de venta, la firma XAdES, el polling a DGII, los retries, las plantillas de impresión. Funcionaba, pero teníamos tres problemas que ya no podíamos seguir ignorando:

El primero era el ciclo de release. Un cambio en cómo construíamos un <DetalleISC> obligaba a redesplegar el POS completo. Y un POS desplegado a 500+ negocios no se actualiza con la ligereza con que se actualiza un microservicio detrás de un load balancer.

El segundo era el blast radius. Si el worker que firmaba XML se saturaba porque la DGII empezaba a tardar 30 segundos por request, también se saturaban los workers de inventario, de notificaciones y de webhooks comerciales. Una falla DGII contagiaba al resto del sistema.

El tercero, y el que terminó por convencernos: cada vez que conversábamos con otro equipo dominicano de software, terminaban preguntando "¿no podrían exponernos ese módulo?". La respuesta honesta era que sí, podríamos, pero antes había que despegarlo. Lo hicimos, lo pulimos, le dimos nombre propio y hoy lo abrimos.

Aura Cloud: una cuenta lista en minutos

Aura es un SaaS multi-tenant: creas tu cuenta y empiezas a emitir en minutos, sin levantar Postgres, Redis ni Ghostscript, sin mantener el bundle de CAs de la DGII y sin pelear con su entorno de pruebas. Nosotros operamos los workers, la base de datos y toda la infraestructura; tu sistema solo llama a la API o usa el panel. La misma capa que ya emite los e-CF de cientos de negocios dentro de Nexo, ahora disponible para cualquier ERP, POS o plataforma que opere en RD.

El modelo de cobro es por uso, sin mensualidad fija: pagas solo por el e-CF que emites en producción, y las emisiones en CerteCF (el ambiente de pruebas) no cuentan, para que puedas certificarte sin presión. Los primeros 100 e-CF de cada mes son gratis y, mientras más emites, menos pagas por comprobante. Empezar no cuesta nada.

Tres pilares de ingeniería que no negociamos

Si tuviéramos que resumir qué hace a Aura distinto del clásico "vamos a meterle Express, una integración con DGII y listo", son tres apuestas técnicas que mantenemos con disciplina:

1. Resiliente cuando la DGII no lo es

La DGII falla más de lo que admite — y cuando funciona, a veces tarda 30 segundos por request. Aura trata esa realidad como un problema de ingeniería, no como un golpe de mala suerte: cada comprobante se encola en BullMQ con un trackId propio, se reintenta con backoff exponencial (hasta 8 intentos, 2 h máximo), entra automáticamente en modo contingencia con IndicadorEnvioDiferido=1 cuando la DGII responde mal y dispara flush diferido en lote cuando vuelve. Un watchdog corre cada 5 minutos para avisarte antes de los 72 h reglamentarios. Tu cajero nunca se entera del incidente.

2. Developer-first, con trazabilidad quirúrgica

Si algo sale mal, quieres saber exactamente qué. Aura guarda por cada comprobante: el payload JSON que enviaste, el XML firmado con el digest de la firma, la respuesta cruda de la DGII en XML, los milisegundos por etapa (firma, envío, polling) y el TrackId. Bull Board en modo read-only te muestra la cola completa. Sentry captura cada excepción con un requestId correlacionable. No es trazabilidad como adjetivo de marketing; es trazabilidad como capa de evidencia que aguanta una auditoría DGII.

3. Seguridad estricta, sin teatro

Los certificados PFX/P12 se cifran con AES-256-GCM (header propietario NXP1) con una clave maestra que vive fuera de la base de datos. La contraseña del P12 viaja por el mismo cifrado y nunca se guarda en claro. Las secuencias NCF se reservan con SELECT … FOR UPDATE atómico — cero saltos, cero duplicados, incluso bajo ráfagas concurrentes. Las claves maestras se rotan trimestralmente.

Paz mental fiscal: errores traducidos a acciones

Algo que aprendimos viendo a cajeros lidiar con la DGII: los códigos de error crudos no sirven. "Validación 1463" es un susto, no una instrucción. Aura mantiene un mapa completo de los códigos de error de la DGII y los traduce a acciones humanas, en español, con la línea afectada y el monto exacto. En lugar de "Validación 1463", el cajero ve:

El ITBIS calculado no coincide con el detallado en la línea 2. Esperado: RD$ 18.00 · Recibido: RD$ 15.25

La interfaz del panel (las tablas, las alertas, los modales) está pensada para transmitir control absoluto, no fricción. Cuando un comprobante pasa por la cola, el operador ve exactamente dónde está: En proceso, Reintentando 2/5, Aceptado, Aceptado condicional con observación, Esperando contingencia. Sin pantallas en blanco, sin mensajes crípticos.

Lo que hay debajo del capó

El stack técnico es deliberadamente conservador, porque la facturación electrónica no admite experimentos:

  • Backend: Node 20 + Express + TypeScript + Zod + Drizzle ORM sobre PostgreSQL 16.
  • Colas asíncronas: BullMQ sobre Redis 7, con workers separables (perfil --profile workers) que escalan horizontalmente independientes del proceso HTTP.
  • DGII: librería propia dgii-ecf que cubre firma XAdES, autenticación con semilla, recepción, aprobación y anulación.
  • Multi-tenant: aislamiento por ProjectClientVoucher, con API keys scoped por proyecto y rate-limit independiente.
  • Webhooks salientes: HMAC-SHA256 firmado, reintentos con backoff, dead-letter visible en el panel.
  • Frontend: React + Vite + TanStack Query + Ant Design + Zustand. Panel completo para operar manualmente.
  • Docs: OpenAPI 3.1 con Scalar en aura.nexo.com.do/docs, importable a Postman, Insomnia o cualquier generador de clientes.
  • Observabilidad: Sentry para errores + Resend para alertas + Bull Board en /admin/queues para inspección de colas (read-only por default en prod).
Aura no reemplaza a la DGII ni a tu ERP. Es la pieza intermedia que existe para que ninguno de los dos lados tenga que preocuparse del otro. Tu ERP/POS sigue siendo el dueño de la venta y de la verdad del negocio. Aura solo se encarga del lenguaje DGII.

Para quién es Aura

Si construyes cualquiera de estos sistemas y operas en RD, Aura te ahorra entre 3 y 9 meses de desarrollo y certificación:

  • ERPs y sistemas contables que necesitan emitir facturas de crédito fiscal a partir de las ventas que ya registran.
  • E-commerce y marketplaces que necesitan facturar consumo electrónico (E32) por cada checkout exitoso.
  • POS verticales (restaurantes, ferreterías, talleres, farmacias) que no quieren mantener su propio motor DGII.
  • Plataformas SaaS que cobran a clientes dominicanos y necesitan emitir factura de consumo o de crédito fiscal según el caso.
  • Integradores y agencias que sirven a varios RNC a la vez — el modelo multi-tenant, con un proyecto por integrador y múltiples clientes, encaja directo.

Cómo empezar

Crear una cuenta es gratis y te permite correr el asistente de certificación punta a punta sin pagar nada: los primeros 100 e-CF de cada mes están incluidos y las emisiones en CerteCF no se cobran.

Crea tu cuenta: regístrate en aura.nexo.com.do y sigue el asistente de onboarding. En 30 minutos tienes tu primer e-CF emitido en CerteCF.

¿Prefieres revisar la API antes de crear cuenta? La documentación viva (OpenAPI 3.1 + Scalar) está en aura.nexo.com.do/docs — puedes probar los endpoints desde el mismo navegador y exportar el spec a Postman o Insomnia.

Si tu caso de uso es más grande (multi-tenant agresivo, > 10,000 e-CF al mes o necesidades de SLA y soporte dedicado), escríbenos directo y armamos un plan Enterprise a la medida.

Para los detalles completos de la propuesta y los planes, visita la página del producto.