Ir al contenido

DgiEmitirCFE

Emite un Comprobante Fiscal Electrónico (CFE) de Uruguay ante la DGI. El nodo orquesta todo el proceso: consume de forma atómica un número del CAE cargado para el tipo/serie correspondiente, arma el XML del CFE con los datos del emisor, receptor e ítems, lo firma digitalmente (XMLDSig, con el certificado .p12 de la credencial) y lo persiste con estado issued.

El comprobante emitido queda listo para dos pasos siguientes: enviarlo al receptor (DgiEnviarReceptor) e incluirlo en el reporte diario obligatorio a la DGI (DgiReporteDiario). Requiere que exista un CAE activo cargado previamente con DgiCargarCAE para el tipo de CFE y serie que se va a emitir.

CampoTipoRequeridoDescripción
credentials_idcredentialsSíCredencial dgi (certificado .p12 + RUT + entorno)
cfejsonNoComprobante en JSON: tipoCfe (101 e-Ticket, 111 e-Factura), receptor, items. Si se deja vacío se usan los datos de entrada
firma_sha256booleanNoFirmar con SHA-256 en vez de SHA-1 (según lo que exija la DGI)

El emisor (RUT, razón social, sucursal) y la serie se completan automáticamente desde la credencial cuando no vienen en cfe.

Este módulo requiere una credencial de tipo dgi con los siguientes campos:

  • Certificado (.p12): certificado de firma avanzada en base64
  • Contraseña del certificado: contraseña del .p12
  • RUT: RUT del emisor
  • Razón Social: razón social del emisor
  • Casa Central / Sucursal: identificación del punto de emisión
  • Serie: serie por defecto para los CFE emitidos
  • Entorno: test (homologación) o prod (producción)
{
"tipoCfe": 111,
"serie": "A",
"numero": 159,
"codigoSeguridad": "AB12CD34",
"montoTotal": 1220,
"totals": { "neto": 1000, "iva": 220 },
"estado": "issued",
"xml": "<CFE>...firmado...</CFE>"
}
{
"credentials_id": "cred-dgi-prod",
"cfe": {
"tipoCfe": 111,
"receptor": {
"tipoDocumento": 2,
"documento": "212345670010",
"razonSocial": "Cliente SA"
},
"items": [
{ "descripcion": "Servicio de consultoría", "cantidad": 1, "precioUnitario": 1000, "indicadorIva": "22" }
]
}
}
  • El campo cfe.items es obligatorio y debe tener al menos un ítem; si falta, el nodo devuelve error sin consumir numeración.
  • El número se consume de forma atómica del CAE activo: si no hay CAE cargado o está agotado para ese tipo/serie, la emisión falla antes de generar el XML.
  • Si el certificado .p12 de la credencial está vencido, el nodo rechaza la emisión con un error explícito.
  • El XML firmado devuelto en xml es el mismo que necesitan DgiEnviarReceptor y DgiReporteDiario; no hace falta volver a generarlo.