Skip to content

DGI Uruguay — Electronic Invoicing (CFE / e-Invoice)

The DGI nodes connect your workflows with Uruguay’s electronic invoicing (Electronic Fiscal Receipts, CFE, from the DGI) through direct integration with the official web services. Floogos manages the authorized numbering (CAE), builds the CFE XML, digitally signs it, sends it to the recipient and includes it in the Daily Report to the DGI.

NodeWhat it does
DGI: Load CAE (dgiCargarCAE)Loads a numbering range authorized by the DGI
DGI: Query CAE balance (dgiConsultarCAE)Available numbering by type/series
DGI: Issue CFE (dgiEmitirCFE)Issues a receipt (consumes CAE, builds, signs, stores)
DGI: Send CFE to recipient (dgiEnviarReceptor)Sends the receipt to the recipient and processes the acknowledgment
DGI: Daily report (dgiReporteDiario)Sends the daily CFE report to the DGI
DGI: Query CFE (dgiConsultarCFE)Status of a receipt at the DGI
DGI: Representation / QR (dgiRepresentacion)Generates the printable receipt with QR

The nodes use a DGI credential. Create it under Credentials → Add → Uruguay DGI / CFE with:

FieldDescription
Certificate (.p12)Your advanced-signature certificate, base64-encoded.
Certificate passwordThe .p12 password. Never shown in logs.
RUT and Legal nameIssuer data.
Environmenttest/homologation or prod.
Branch and SeriesDGI branch code and default series.

The same certificate signs the receipts and authenticates to the DGI via mutual TLS.

  1. Load the CAE the DGI issued you with Load CAE (once per range, one per CFE type). You can paste the CAE XML and its data is extracted.

  2. Issue the receipt with Issue CFE. It consumes the next CAE number (safely under concurrency), builds the XML, signs it and stores it.

  3. Send the receipt to the recipient with Send CFE to recipient (processes the acknowledgment).

  4. Report to the DGI with Daily report (ideally in a scheduled workflow, once a day).

  5. Generate the printable representation with Representation / QR to deliver/print the receipt.

The CAE is the numbering range the DGI authorizes (one per CFE type, ~2-year validity). First you load it with Load CAE; then Issue CFE automatically consumes the next available number. Consumption is concurrency-safe: two simultaneous issuances never take the same number. With Query CAE balance you can alert before running out of numbering.

Node: DGI: Issue CFE. The receipt comes from the cfe field (JSON) or the input data. Example of an e-Invoice:

{
"tipoCfe": 111,
"fechaEmision": "2026-07-29",
"receptor": { "tipoDocumento": 2, "documento": "218765432109", "razonSocial": "Cliente SA" },
"items": [
{ "descripcion": "Consulting service", "cantidad": 1, "precioUnitario": 12200, "indFact": 3 }
]
}

indFact sets the VAT treatment per item: 1 exempt, 2 minimum rate (10%), 3 basic rate (22%). Prices are taken VAT-included and the node computes the net and VAT.

tipoCfeReceiptRequirements
101 / 111e-Ticket / e-Invoice—
102 / 103 / 112 / 113Credit and debit notesreferencia (type/series/number of the original CFE)
121 / 122 / 123Export e-InvoiceCurrency USD by default
181e-RemitoNo amounts (moves goods)
182e-ResguardovalorRetencion per item

Send CFE to recipient wraps the receipt in a signed envelope and sends it to the recipient’s endpoint (per-recipient) over SOAP with mutual TLS, processing the acknowledgment. Identify the CFE by type/series/number (fetched from the database) or pass it in the input.

Daily report gathers the issued receipts not yet reported, wraps them in a signed report envelope and sends it to the DGI, marking them as reported. It’s meant to run in a scheduled workflow (once a day). If there’s nothing pending, it does nothing.

Representation / QR generates the printable receipt in HTML (exportable to PDF by the browser), with the security code and the DGI lookup QR. You can pass the already-issued CFE (type/series/number) or a CFE JSON to preview.

SituationRetryableWhat to do
No CAE availableNoLoad a CAE with valid numbering for that type.
DGI / recipient rejectionNoThe node returns the status and message. Fix the receipt.
Expired certificateNoRenew the .p12 and update the credential.
Network / TimeoutYesTransient issue; retried automatically.