e-CF 34 — Nota de Crédito Electrónica¶
El emisor.rnc del cuerpo dice de qué empresa es el comprobante y, a la vez, en nombre de quién se emite: la API
comprueba que su token esté habilitado para esa empresa (cómo funciona).
Anula, corrige o disminuye un comprobante ya emitido: devoluciones de mercancía, descuentos posteriores, anulaciones, correcciones de texto. Es la única vía para corregir un e-CF ya aceptado por la DGII.
Particularidades¶
| Aspecto | Regla |
|---|---|
referencia |
Obligatoria (NCF modificado, su fecha y el código de modificación). |
id_doc.indicador_nota_credito |
Obligatorio: 0 si se emite dentro de los 30 días del comprobante original, 1 si después. |
codigo_modificacion |
Sólo 1–4. |
| Formas de pago | No aplican: el XSD del 34 no las contempla. |
| Numeración | id_doc.e_ncf (E34 + 10 dígitos) obligatorio; no lleva fecha de vencimiento de la secuencia (no aplica, y no se imprime en la representación impresa). Ver numeracion.md. |
| Comprador | Opcional; debe coincidir con el del documento original. |
La regla de los 30 días¶
Es la particularidad fiscal más importante de este documento (Arts. 8 y 28 del Reglamento 293-11):
indicador_nota_credito |
Cuándo | Efecto |
|---|---|---|
0 |
La NC se emite dentro de los 30 días del comprobante original | Devuelve el precio y el ITBIS. |
1 |
Se emite después de los 30 días | Devuelve sólo el precio: no procede la devolución del ITBIS. |
Si usa
indicador_nota_credito: 1, no debería declarar ITBIS en los totales.
Ejemplo: devolución parcial¶
Devolución de 50 pares de zapatos de una factura emitida hace más de 30 días (por eso el ITBIS va en 0).
{
"emisor": {
"rnc": "133802074"
},
"comprador": {
"rnc": "131880738",
"razon_social": "COMERCIO, SRL"
},
"id_doc": {
"e_ncf": "E340000000001",
"indicador_monto_gravado": 0,
"indicador_nota_credito": 1,
"tipo_ingresos": "01",
"tipo_pago": "1"
},
"items": [
{
"nombre": "Zapatos de cuero (devolucion)",
"cantidad": 50,
"unidad_medida": "6",
"precio_unitario": 550.00,
"monto": 27500.00,
"indicador_facturacion": 1,
"indicador_bien_servicio": "1"
}
],
"totales": {
"monto_gravado_total": 27500.00,
"itbis1": 18,
"total_itbis": 0,
"monto_total": 27500.00,
"monto_gravado_i1": 27500.00,
"total_itbis1": 0
},
"referencia": {
"ncf_modificado": "E310000000001",
"fecha_ncf_modificado": "01-02-2026",
"codigo_modificacion": "3",
"razon_modificacion": "Devolucion parcial de mercancia"
}
}
Archivo: ejemplos/ecf-34-minimo.json
Los montos van en positivo: es una nota de crédito, el signo lo da el tipo de documento.
Casos según el código de modificación¶
| Caso | codigo_modificacion |
Cómo armarlo |
|---|---|---|
| Anular una factura completa | 1 |
El detalle y los totales replican los del comprobante original. |
| Corregir sólo texto (nombre mal escrito, dirección) | 2 |
Los montos deben ser 0: no hay efecto económico. |
| Devolución o descuento posterior | 3 |
El detalle refleja lo devuelto, no la factura completa. |
| Reemplazar un NCF de contingencia | 4 |
Límite del monto¶
El monto total de la nota de crédito no puede exceder el del comprobante que modifica, y la suma de todas las notas de crédito que lo afecten tampoco. Hoy no validamos esta regla porque requiere consultar el documento original; si la incumple, la rechazará la DGII.
Sobre el ejemplo. Lleva
indicador_nota_credito: 1contotal_itbis: 0a propósito: es una nota emitida más de 30 días después del comprobante afectado, así que no rebaja ITBIS y el ejemplo sigue siendo válido por mucho tiempo que pase. Para el caso más habitual (dentro de los 30 días) pongaindicador_nota_credito: 0, la fecha real del comprobante afectado y el ITBIS que corresponda. El indicador no se elige: se deriva de esa fecha, y si no coincide se rechaza.TrackID. La respuesta
202siempre traetrack_id: null: la transmisión ocurre después, en segundo plano. Al transmitirse, este tipo completo recibe su TrackID y el documento pasa ain_process_dgii(dónde aparece el TrackID).
Errores frecuentes¶
Cada mensaje llega en un 422 dentro de document.errors (y, por campo, en document.detailed_errors); la forma completa está en Cómo responde la API.
| Mensaje | Causa |
|---|---|
| El campo indicador de nota de crédito es obligatorio. | Debe indicar si la NC va dentro o fuera de los 30 días. |
| El campo información de referencia es obligatorio. | Toda NC debe decir qué documento modifica. |
| El campo código de modificación seleccionado es inválido. | En las notas sólo 1–4. |
| El monto total (…) no cuadra… | Revise la aritmética de totales. |
| Hay ítems gravados con ITBIS, así que el indicador de monto gravado (id_doc.indicador_monto_gravado) es obligatorio: 0 si los montos de las líneas no incluyen ITBIS, 1 si lo incluyen. | Falta id_doc.indicador_monto_gravado. La DGII lo exige cuando hay ítems gravados (Formato e-CF, campo 7) y, si no viene, rechaza el comprobante con el código 176. |
| El campo fecha límite de pago es obligatorio cuando tipo de pago es 2. | Una venta a crédito siempre declara su fecha_limite_pago. |
| La fecha límite de pago (…) no puede ser anterior a la fecha de emisión, que es la de hoy (…). | id_doc.fecha_limite_pago está en el pasado. Con tipo_pago 2 (crédito) es obligatoria y tiene que ser igual o posterior a hoy. |