E31 — Factura de Crédito Fiscal Electrónica#
Para qué sirve#
Es la factura que emites cuando le vendes a un contribuyente (empresa o persona con RNC/cédula) que va a usar el ITBIS de la compra como crédito fiscal o el gasto como deducible. Identifica obligatoriamente al comprador.
Cuándo NO usarlo#
- Venta a consumidor final que no necesita crédito fiscal → E32.
- Venta a una entidad del gobierno → E45.
- Venta a una empresa de zona franca u otro régimen especial exento → E44.
- Exportación → E46.
- Corregir una factura ya emitida → E33 (aumentar) o E34 (anular/disminuir).
Campos#
Obligatorios
| Campo | Notas |
|---|---|
tipo_ecf = "31", encf (E31 + 10 dígitos), fecha_emision |
|
fecha_vencimiento |
Vencimiento de la secuencia autorizada por la DGII. Sin él, 422 por XSD. |
tipo_pago |
1, 2 o 3. Sin él, 422 por XSD. |
direccion_emisor |
Ver README. |
rnc_comprador, razon_social_comprador |
RNC (9) o cédula (11) del cliente. Sin ellos, 422 por XSD. |
monto_total, valor_pagar y los totales por tasa |
Ver cálculo abajo. |
detalle (al menos una línea) |
numero_linea, nombre_item, cantidad, precio_unitario, monto_item. |
Opcionales: tipo_ingresos (por defecto 01), indicador_monto_gravado (por defecto 0),
formas_pago, fecha_limite_pago, termino_pago, todos los datos opcionales de emisor y comprador,
descuento por línea, itbis1/2/3 (tasas), total_itbis_retenido / total_isr_retencion /
total_itbis_percepcion / total_isr_percepcion (cuando tu cliente te retiene o percibe).
No aplican: datos de referencia (ncf_modificado, …).
Retención por línea: en E31 no se emite el bloque Retencion del ítem, pero monto_itbis_retenido
/ monto_isr_retenido del detalle no se ignoran: si no envías total_itbis_retenido /
total_isr_retencion, el API los suma del detalle y los emite en los totales del encabezado.
Totales#
Con indicador_monto_gravado = 0 (precios sin ITBIS):
monto_item = cantidad × precio_unitario − descuento
monto_gravado_i1 = Σ monto_item (indicador_facturacion 1)
monto_gravado_i2 = Σ monto_item (indicador_facturacion 2)
monto_exento = Σ monto_item (indicador_facturacion 4)
total_itbis1 = monto_gravado_i1 × 18 %
total_itbis2 = monto_gravado_i2 × 16 %
monto_total = monto_gravado_total + monto_exento + total_itbis
valor_pagar = monto_total
Ejemplo 1:
| Línea | Cálculo | MontoItem |
|---|---|---|
| Consultoría (ind. 1) | 10 h × 1,500.00 | 15,000.00 |
| Memoria USB (ind. 1) | 2 × 850.00 | 1,700.00 |
monto_gravado_i1 = 16,700.00 · total_itbis1 = 16,700.00 × 18 % = 3,006.00 ·
monto_total = 16,700.00 + 3,006.00 = 19,706.00.
Particularidades#
- Si no envías
formas_pago, el API declara una sola forma de pago deducida detipo_pago(contado → efectivo, crédito → venta a crédito) por elmonto_total. - Retenciones que te hace el cliente (por ejemplo, ITBIS retenido por una empresa): envía
total_itbis_retenido/total_isr_retencionenfactura. No se restan devalor_pagar. - La entrega al comprador (si es receptor electrónico) se hace automáticamente tras la aceptación.
Ejemplo 1: crédito fiscal simple, contado#
{
"factura": {
"tipo_ecf": "31",
"encf": "E310000000001",
"fecha_emision": "2026-10-01",
"fecha_vencimiento": "2027-12-31",
"indicador_monto_gravado": 0,
"tipo_ingresos": "01",
"tipo_pago": "1",
"direccion_emisor": "Av. Winston Churchill 1099, Santo Domingo",
"municipio_emisor": "010100",
"provincia_emisor": "010000",
"numero_factura_interna": "FAC-000101",
"rnc_comprador": "131000001",
"razon_social_comprador": "CLIENTE EJEMPLO SRL",
"correo_comprador": "cuentas@cliente-ejemplo.com.do",
"monto_gravado_total": 16700.00,
"monto_gravado_i1": 16700.00,
"total_itbis": 3006.00,
"total_itbis1": 3006.00,
"monto_total": 19706.00,
"valor_pagar": 19706.00
},
"detalle": [
{
"numero_linea": 1,
"nombre_item": "Servicio de consultoria",
"indicador_bien_servicio": 2,
"indicador_facturacion": 1,
"cantidad": 10,
"unidad_medida": "19",
"precio_unitario": 1500.00,
"monto_item": 15000.00
},
{
"numero_linea": 2,
"nombre_item": "Memoria USB 64GB",
"indicador_bien_servicio": 1,
"indicador_facturacion": 1,
"cantidad": 2,
"unidad_medida": "43",
"precio_unitario": 850.00,
"monto_item": 1700.00
}
]
}
Ejemplo 2: descuento, tasa 16 % y línea exenta#
Pago mixto: RD$50,000.00 con tarjeta y el resto por transferencia.
| Línea | Cálculo | MontoItem | Indicador |
|---|---|---|---|
| Laptop | 2 × 35,000.00 − 3,500.00 | 66,500.00 | 1 (18 %) |
| Yogurt | 10 × 85.00 | 850.00 | 2 (16 %) |
| Libro | 3 × 1,200.00 | 3,600.00 | 4 (exento) |
total_itbis1 = 66,500.00 × 18 % = 11,970.00 · total_itbis2 = 850.00 × 16 % = 136.00 ·
monto_total = 67,350.00 + 3,600.00 + 12,106.00 = 83,056.00 = 50,000.00 + 33,056.00 (formas de pago).
{
"factura": {
"tipo_ecf": "31",
"encf": "E310000000002",
"fecha_emision": "2026-10-02",
"fecha_vencimiento": "2027-12-31",
"indicador_monto_gravado": 0,
"tipo_ingresos": "01",
"tipo_pago": "1",
"formas_pago": [
{ "forma_pago": "3", "monto": 50000.00 },
{ "forma_pago": "2", "monto": 33056.00 }
],
"direccion_emisor": "Av. Winston Churchill 1099, Santo Domingo",
"rnc_comprador": "131000001",
"razon_social_comprador": "CLIENTE EJEMPLO SRL",
"monto_gravado_total": 67350.00,
"monto_gravado_i1": 66500.00,
"monto_gravado_i2": 850.00,
"monto_exento": 3600.00,
"total_itbis": 12106.00,
"total_itbis1": 11970.00,
"total_itbis2": 136.00,
"monto_total": 83056.00,
"valor_pagar": 83056.00
},
"detalle": [
{
"numero_linea": 1,
"nombre_item": "Laptop 14 pulgadas",
"indicador_bien_servicio": 1,
"indicador_facturacion": 1,
"cantidad": 2,
"unidad_medida": "43",
"precio_unitario": 35000.00,
"descuento": 3500.00,
"monto_item": 66500.00
},
{
"numero_linea": 2,
"nombre_item": "Yogurt natural 1 litro",
"indicador_bien_servicio": 1,
"indicador_facturacion": 2,
"cantidad": 10,
"unidad_medida": "43",
"precio_unitario": 85.00,
"monto_item": 850.00
},
{
"numero_linea": 3,
"nombre_item": "Libro tecnico de contabilidad",
"indicador_bien_servicio": 1,
"indicador_facturacion": 4,
"cantidad": 3,
"unidad_medida": "43",
"precio_unitario": 1200.00,
"monto_item": 3600.00
}
]
}
Respuesta esperada#
201 con el código de seguridad y el QR (formato en el README).
url_dgii apunta a https://ecf.dgii.gov.do/{TesteCF|CerteCF|ecf}/consultatimbre?...&rnccomprador=131000001.
El estado pasa de pendiente a Aceptado cuando la DGII lo procesa
(GET /{ambiente}/ecf/estado?encf=E310000000001).