Contingencia

Contingencia: facturar cuando algo falla

El Decreto 587-24 (arts. 39 a 43) prevé tres situaciones en las que no se puede completar el envío normal de un e-CF a la DGII. Dos las resuelve FiscalFlow solo. La tercera necesita preparación de tu lado, y esta página explica qué hacer en cada una.

Situación Quién la resuelve Qué haces tú
1. La DGII está caída FiscalFlow, automático Nada. Sigue facturando.
2. FiscalFlow no logra conectar con la DGII FiscalFlow, automático Nada. Sigue facturando.
3. No se puede emitir e-CF
tu sistema no llega a FiscalFlow, o FiscalFlow no puede firmar
Tú, con comprobantes en papel serie B Activar tu contingencia en papel y regularizar después. Ver abajo.

1 y 2. La DGII no responde

FiscalFlow firma el e-CF al recibirlo, así que el comprobante ya tiene e-NCF, código de seguridad, fecha de firma y QR aunque la DGII no conteste. El documento queda en pending_transmission y FiscalFlow lo reenvía solo hasta que la DGII lo recibe, dentro de las 72 horas que da la norma.

  • Puedes entregar la factura al cliente. El PDF de un documento pendiente lleva la leyenda obligatoria de contingencia y el estado «Pendiente de envío a DGII».
  • La firma no cambia. Cada reintento envía exactamente el mismo XML firmado, así que el código de seguridad y el QR que tiene tu cliente coinciden con lo que acepta la DGII. Si corriges la factura antes del reenvío, se firma de nuevo.
  • Te avisamos. Recibes los webhooks document.transmission.pending, .expiring (quedan 12 h) y .expired (ver Webhooks). Además, el dueño de la organización recibe un correo cuando la DGII lleva 5 minutos sin responder y otro cuando vuelve.
  • No hay que esperar al reintento. Desde el panel, en el detalle de la emisión, «Reenviar ahora» lo envía en el momento.
  • Si pasan las 72 horas sin que la DGII lo reciba, el documento pasa a expired, su e-NCF se declara como no utilizado y hay que emitir la venta de nuevo.
Si la DGII sigue caída por más de 15 días hábiles, la propia DGII habilita en la Oficina Virtual el envío de reportes para operar con comprobantes no electrónicos (art. 43).

3. No se puede emitir e-CF: contingencia en papel

Si tu sistema no puede emitir e-CF (no llega a FiscalFlow, se venció el certificado, se agotó el rango…), la norma permite facturar con comprobantes en papel serie B hasta que se restablezca (art. 40.2), con estas condiciones:

  1. Tener la serie B autorizada antes de necesitarla. Se solicita en la Oficina Virtual de la DGII como cualquier secuencia de NCF. Pide al menos B01 (crédito fiscal) y B02 (consumo), y los demás tipos que uses. Si ya eras emisor con serie B, esas secuencias siguen sirviendo para la contingencia: no las anules.
  2. Declarar la contingencia en la Oficina Virtual, en Facturación Electrónica → Contingencia FE, al empezar, y registrar ahí la fecha de fin al terminar. Si no se declara, tu cliente no puede usar esos comprobantes para su crédito fiscal (art. 42).
  3. Máximo 15 días calendario en papel.
  4. Regularizar en un máximo de 30 días calendario después de salir de la contingencia: por cada NCF en papel se emite un e-CF de reemplazo, que va solo a la DGII. Tu cliente se queda con su comprobante en papel.

Regularizar: emitir el e-CF de reemplazo

Es un POST /api/v1/documents normal, con los mismos ítems, totales y comprador del comprobante en papel, más dos campos:

POST /api/v1/documents
curl -X POST https://api.fiscalflowsupport.com/api/v1/documents \
  -H "X-API-Key: ffs_live_ejemplodeclavenoreal000000000000000000" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "31",
    "external_ref": "reemplazo-B0100000042",
    "replacement_of": "B0100000042",
    "replacement_date": "19-09-2026",
    "buyer": { "rnc": "131880681", "name": "Comercial Dominicana SRL" },
    "items": [ ...los mismos ítems del comprobante en papel... ],
    "totals": { ...los mismos totales... }
  }'
Parameter Type Required Description
replacement_of string Required El NCF en papel que se reemplaza: B + 10 dígitos (ej. B0100000042).
replacement_date string Required Fecha en que se emitió el comprobante en papel, dd-mm-yyyy.
type string Required El tipo e-CF que corresponde al tipo del papel (tabla abajo). FiscalFlow no lo deduce del NCF.
external_ref string Optional Usa uno derivado del NCF, así un reintento de la regularización nunca emite dos reemplazos.

FiscalFlow pone CodigoModificacion = 4 («Reemplazo NCF emitido en contingencia»), comprueba que el comprador sea el mismo del papel y no envía el e-CF al receptor. Las notas de crédito y débito (33 y 34) no pueden ser reemplazos.

Papele-CF de reemplazo
B01 Crédito fiscal31
B02 Consumo32
B11 Compras41
B13 Gastos menores43
B14 Regímenes especiales44
B15 Gubernamental45
B16 Exportaciones46
B17 Pagos al exterior47

Qué tiene que tener tu sistema

Para que la contingencia en papel funcione sin improvisar, tu software de facturación (Odoo, Kaching o uno propio) necesita un interruptor de contingencia y un asistente de regularización. El bloque siguiente es una especificación que puedes pasarle tal cual a tu equipo técnico o a una IA de programación.

ESPECIFICACIÓN: contingencia en papel para e-CF (República Dominicana, Decreto 587-24 arts. 40-42)

Contexto: el sistema emite e-CF a través de la API de FiscalFlow (POST /api/v1/documents).
Cuando no se puede emitir e-CF, hay que facturar con NCF en papel serie B y luego
regularizar cada uno con un e-CF de reemplazo. Docs: https://app.fiscalflowsupport.com/docs/contingencia

1. CONFIGURACIÓN
   - Secuencias serie B por tipo (B01, B02 y las que use la empresa), cada una con
     prefijo, número siguiente, número final autorizado y fecha de vencimiento.
   - Bloquear la emisión si la secuencia se agotó o venció, con un mensaje claro.

2. INTERRUPTOR «Contingencia en papel» (a nivel de empresa)
   - Solo lo activa un usuario administrador. Guarda: fecha y hora de inicio, usuario, motivo.
   - Al activarlo, mostrar un aviso con el paso obligatorio: «Declare la contingencia en
     la Oficina Virtual de la DGII: Facturación Electrónica → Contingencia FE. Sin esa
     declaración su cliente no puede usar el crédito fiscal».
   - Mientras esté activo, un banner visible en todo el sistema con los días transcurridos.
     Alerta a los 10 días y bloqueo de nuevas facturas en papel a los 15 días calendario.

3. FACTURAR EN CONTINGENCIA (interruptor activo)
   - No llamar a FiscalFlow. Asignar el siguiente NCF de la serie B que corresponda al tipo:
     B01 si el comprador tiene RNC y requiere crédito fiscal, B02 si es consumidor final, etc.
   - Imprimir el comprobante en papel con: NCF, fecha de vencimiento de la secuencia, RNC y
     razón social del emisor, fecha, RNC y nombre del comprador (obligatorio en B01),
     detalle, ITBIS y total.
   - Guardar en la factura: ncf_contingencia, fecha_contingencia (dd-mm-yyyy) y
     estado_regularizacion = "pendiente".
   - Las notas de crédito o débito sobre estas facturas se hacen después de regularizarlas,
     contra el e-CF de reemplazo.

4. DESACTIVAR EL INTERRUPTOR
   - Guarda fecha y hora de fin. Aviso: «Registre la fecha de fin de la contingencia en la
     Oficina Virtual». Abre el asistente de regularización.

5. ASISTENTE DE REGULARIZACIÓN (plazo: 30 días calendario desde el fin)
   - Lista las facturas con estado_regularizacion = "pendiente" y los días que quedan.
   - Por cada una: POST /api/v1/documents con
       type             = tipo e-CF equivalente (B01→31, B02→32, B11→41, B13→43, B14→44,
                          B15→45, B16→46, B17→47)
       replacement_of   = ncf_contingencia
       replacement_date = fecha_contingencia
       external_ref     = "reemplazo-" + ncf_contingencia   (idempotente: reintentar es seguro)
       buyer, items, totals = los mismos del comprobante en papel
   - Guardar el e-NCF devuelto en la factura y seguir su estado (webhook document.emitted o
     GET /api/v1/documents/{id}). Aceptado → estado_regularizacion = "regularizada".
     Rechazado → mostrar el motivo y permitir corregir y reintentar con otro external_ref.
   - No enviar el e-CF de reemplazo al cliente: el comprador conserva su papel.
   - Alerta a los 20 días si quedan pendientes.

Próximos pasos

  1. Solicita hoy la serie B en la Oficina Virtual, aunque no la necesites todavía.
  2. Implementa en tu sistema el interruptor y el asistente de la especificación de arriba, y pruébalo en el ambiente de pruebas de FiscalFlow (TesteCF) emitiendo un reemplazo.
  3. Escribe un procedimiento de una página para el personal de caja: quién activa la contingencia, cómo se declara en la Oficina Virtual y quién regulariza.

Referencias de la DGII