e-CF 32 — Factura de Consumo Electrónica¶
POST /api/v1/documents/32
Es el comprobante de las ventas a consumidor final (B2C): el mayor volumen de la operación diaria. No sustenta crédito fiscal, por eso identificar al comprador es opcional… salvo que el monto llegue al umbral.
El umbral de RD$250.000 lo cambia todo¶
Este es el punto que más confunde. El comportamiento del tipo 32 depende de totales.monto_total:
| Por debajo de RD$250.000 | Igual o por encima de RD$250.000 | |
|---|---|---|
| Comprador | Opcional (venta a consumidor final) | Obligatorio (rnc y razon_social) |
| Líneas de detalle | Hasta 10.000 | Hasta 1.000 |
| Fecha de vencimiento en la RI | No se imprime | No se imprime |
| Cómo se transmite | Como resumen (RFCE) al servicio de la DGII para facturas de consumo | Como e-CF completo |
| Timbre del QR | ConsultaTimbreFC con 4 parámetros |
ConsultaTimbre con 7 parámetros |
Usted envía el mismo JSON en ambos casos: nosotros decidimos cómo transmitirlo según el monto. Por debajo del umbral firmamos y conservamos el e-CF completo (que es su obligación conservar) y a la DGII le remitimos únicamente el resumen, que referencia el código de seguridad del comprobante completo. Todo esto es transparente para su integración.
Particularidades¶
| Aspecto | Regla |
|---|---|
| Comprador | Opcional por debajo del umbral. Puede usar identificador_extranjero si no hay RNC. |
| Bonos y certificados de regalo | Es el único tipo que admite la forma de pago 5. |
| Venta de un bono | Use indicador_facturacion: 0 (No facturable): no es una venta de bien ni servicio todavía. |
referencia |
Opcional. |
Ejemplo mínimo (consumidor final)¶
Sin bloque comprador: es una venta de mostrador.
{
"id_doc": {
"tipo_ingresos": "01",
"tipo_pago": "1",
"formas_pago": [
{ "forma": "1", "monto": 590.00 }
]
},
"items": [
{
"nombre": "Camisa",
"cantidad": 10,
"unidad_medida": "34",
"precio_unitario": 50.00,
"monto": 500.00,
"indicador_facturacion": 1,
"indicador_bien_servicio": "1"
}
],
"totales": {
"monto_gravado_total": 500.00,
"itbis1": 18,
"total_itbis": 90.00,
"monto_total": 590.00
}
}
Archivo: ejemplos/ecf-32-minimo.json
Ejemplo: venta de un bono de regalo¶
Al vender el bono todavía no hay transferencia de bienes ni prestación de servicios (Norma
General 03-08), así que la línea va como no facturable (indicador_facturacion: 0).
{
"id_doc": {
"tipo_ingresos": "01",
"tipo_pago": "1",
"formas_pago": [ { "forma": "1", "monto": 2000.00 } ]
},
"items": [
{
"nombre": "Bono de regalo",
"cantidad": 1,
"unidad_medida": "43",
"precio_unitario": 2000.00,
"monto": 2000.00,
"indicador_facturacion": 0, // No facturable
"indicador_bien_servicio": "1"
}
],
"totales": {
"monto_no_facturable": 2000.00,
"monto_total": 0.00 // ¡ojo! ver la nota de abajo
}
}
Archivo: ejemplos/ecf-32-bono.json
⚠️
monto_totalva en 0. La fórmula normativa esmonto_total = gravado + exento + total ITBIS + impuesto adicional, y el monto no facturable no forma parte de ella. El valor cobrado se refleja enmonto_no_facturabley en las formas de pago. Si ponemonto_total: 2000.00, la validación de cuadratura lo rechazará con422.
Cuando el cliente redime el bono, emite una Factura de Consumo normal por los bienes entregados
y registra el bono como forma de pago 5.
Respuesta¶
Idéntica a la del tipo 31, con ecf_type_code: "32".
Errores frecuentes¶
| Mensaje | Causa |
|---|---|
| El campo RNC/Cédula del comprador es obligatorio. | El monto total alcanzó RD$250.000: ya debe identificar al comprador. |
| El campo detalle de ítems no debe tener más de 1000 elementos. | Pasó el umbral y con él el tope baja de 10.000 a 1.000 líneas. |
| El indicador de facturación seleccionado es inválido. | Valores válidos: 0, 1, 2, 3, 4. |