Skip to content

Automation · Collections and receivables

Create a Siigo electronic invoice with approval before sending it to DIAN

Verify the customer, products, and Siigo catalogs, show the summary, and create the invoice only after new human approval. Read the actual DIAN status.

How do I create an electronic invoice in Siigo without sending it to DIAN before review?

From the Meteor desk, the Met verifies an existing active customer, every product by code, and the actual document, sales rep, tax, and payment catalogs. It uses only an automatically numbered electronic document that requires neither a per-item rep nor a cost center. It then shows every field, ends the turn, and waits for explicit approval in a new message. That approval enables confirmar set to true. The initial request, silence, and the text "true" do not. CO is an administrative precondition because these tools do not expose the country or detect a mistaken configuration. enviar_dian is a separate choice: true requests filing, and the Met reports the Draft, Accepted, or Rejected status returned by Siigo. The task is manual and does not run from a channel Met.

Where it applies: Colombia. This recipe uses Colombia's electronic invoice contract and the DIAN statuses documented by Siigo. It does not present them as equivalent to Mexican CFDI.

What starts it

When someone asks for it

A person starts the task from the desk and supplies the sale to invoice. The Met prepares and shows the summary, but creation remains stopped until an explicit approval arrives in a later message. If the customer, rep, document, line, payment, or filing choice changes, it shows the complete summary again and asks for fresh approval.

A manual task: someone on the team runs it with a button, or asks the Met for it in chat.

Who runs it

Billing Met for Siigo Colombia

Finance and operations team

It supports an internal operator from the web platform. It separates preparation from the fiscal write, lets a person review the concrete document, and preserves the status returned by Siigo as the source of truth instead of turning a filing request into invented acceptance.

What you need connected

6 steps · 6 tools

The procedure, step by step

Each step shows the tool that runs. They belong to the real connector: if one of them stopped existing, this page would not build.

  1. 1

    Verify the customer and check that the invoice does not exist

    The Met searches for the exact tax ID and accepts only an active customer record, with the branch that will be used. This recipe does not register parties. If the customer is missing, someone creates and validates it in Siigo before resuming. It also lists the customer's invoices on the applicable date, walking every needed page, to detect a prior issue with the same data. A match is read and handed to the operator rather than duplicated by reflex.

  2. 2

    Read every product with its actual tax treatment

    Every line starts from an existing code, never an approximate name. The lookup returns prices, taxes, tax classification, and whether the configured price includes tax. This recipe uses the pre-tax unit price accepted by the handler. If the operation has only a tax-inclusive price, it stops for a person to establish the correct value. An incomplete name sweep leads to a request for the code, not a claim that the product does not exist.

  3. 3

    Resolve document, rep, taxes, and payments from catalogs

    For the document, the Met queries FV and requires it to be active, electronic, automatically numbered, with vendedor_por_item false and centro_costo_obligatorio false. The sales rep must also be active. Tax identifiers come from the catalog, and payment methods are queried with catalogo formas_pago and the published input tipo_documento="FV". When a payment requires a due date, it preserves the YYYY-MM-DD value. It keeps the exact selected id as documento_id, which must be a positive integer; there is no fallback to the first FV. No identifier or sequence comes from a label.

  4. 4

    Show the complete document and end the turn

    Before writing, the Met shows customer and branch, document type and its documento_id, rep, date, every code with quantity, price, and taxes, every payment with value and due date, the operation's expected total, and the separate choices to file with DIAN and email the invoice. It then stops. The original request does not approve this summary. A new, explicit message is required. A question, silence, or ambiguous reply leaves the invoice uncreated. Any change replaces the summary and invalidates earlier approval.

  5. 5

    Create once and read the status Siigo returns

    Only after the new yes does the Met call siigo_crear_factura with confirmar as the literal boolean true, the required sales rep, and the approved documento_id as a positive integer. These values are validated before any request and the tool never selects a document automatically. confirmar is never forwarded to Siigo. When included, enviar_dian and enviar_email must be literal booleans; strings, 1, and objects are rejected before the network. enviar_dian is true only when that decision was approved too. The Met then reads the created id and reports number, total, and status: Draft is saved without filing and with no CUFE; Accepted is accepted by DIAN; Rejected was sent but rejected and needs correction and resubmission in Siigo Nube.

  6. 6

    Reconcile an uncertain response without repeating the invoice

    When creation returns posiblemente_creada, the Met does not call the write again. It lists invoices by customer and date, walks every applicable page, and reads candidates to compare customer, date, rep, lines, payments, and total. Even when no match appears, it does not retry automatically. It gives the evidence to the operator to review the sequence and status in Siigo Nube. A second invoice requires a later human decision, never a technical retry.

Before you start

What you need ready

The Met solves none of these for you. If one is missing, the automation stops there.

The limits

What this automation does NOT solve

Better said here than discovered halfway through the rollout.

FAQ

Questions about this automation

The first request does not contain the evidence to approve. The second message responds to the customer, rep, document, date, lines, payments, expected total, and DIAN decision the Met just showed. The handler requires the literal boolean true. Missing, false, and the text "true" are rejected before any network request.

No. It means filing was requested. Draft is saved without filing and with no CUFE, Accepted means DIAN accepted it, and Rejected means it was sent but rejected. The Met reads the status returned by Siigo rather than inferring Accepted from the input.

The recipe reports that status and stops. Siigo's documentation directs correction and resubmission from Siigo Nube. It does not change data or reissue automatically because that can produce another fiscal document.

No. The customer must exist, be active, and have the correct branch before invoice preparation. Registration happens in Siigo or a separate flow, and the record is then verified here again.

In Siigo Nube. The API has a separate operation that returns the PDF as base64, but the current connector does not expose it. This recipe's lookup returns data and fiscal status, not a file or URL.

It treats the outcome as possibly created, lists the customer's invoices for that date across all applicable pages, and reads every candidate. It never retries automatically, even with no match. The operator reviews the sequence in Siigo.

Keep going

Other automations built on the same tools

Want this automation running on your own data?

We will show it to you with your accounts connected, not with a canned demo.