Skip to main content

Introduction

The DIAN is the Colombian government agency responsible for managing and overseeing tax collection, customs operations, and facilitating international trade. Before issuing electronic invoices, a business must be registered with the DIAN with an active RUT (Registro Único Tributario), pass the DIAN enablement (habilitación) with its chosen technology provider, and hold an authorized numbering range for its invoices. Invopop has partnered with Alegra, a DIAN-authorized technology provider, to onboard suppliers and issue documents on their behalf. Registering a supplier involves three steps:
  1. Invopop: a workflow creates the supplier’s Alegra account and publishes a portal link.
  2. DIAN: the supplier selects Alegra as their technology provider and submits the enablement test set through that portal.
  3. Numbering (live only): the supplier links their authorized numbering range to Alegra in the DIAN portal.
Once a supplier is registered, continue with the companion guide: Invoicing in Colombia.
The previous Plemsi integration is deprecated and no longer maintained. If your suppliers still issue through Plemsi, follow Migrate from Plemsi to move them to this integration.

Prerequisites

To register a supplier in Colombia, you will need:
  • Supplier details to build the GOBL party: legal name, NIT with the verification digit, and email. The address and the co-dian-municipality extension are optional here but required on the supplier’s invoices (see When is the municipality code required?).
  • The supplier’s legal representative, with access to the email on their own RUT (the DIAN’s Habilitación portal sends its login links there) and, for numbering, a MUISCA account with a DIAN electronic signature.
  • For live issuing, a numbering range authorization (resolución de numeración) from the DIAN for each invoice series. See Numbering resolutions.
The name, NIT with the verification digit, and an email address are required for registration. The example also includes the address and the co-dian-municipality extension identifying where the supplier is registered, and uses Alegra’s sandbox NIT so it can be registered in the sandbox.
Colombia supplier example
If the supplier has special tax obligations, set them with the co-dian-fiscal-responsibility extension: O-13 Gran contribuyente, O-15 Autorretenedor, O-23 Agente de retención IVA, or O-47 Régimen simple de tributación. It defaults to R-99-PN when none apply.

Setup

All of the following steps must be carried out from the Invopop Console.
1

Connect the Colombia app

  1. Navigate to Configuration → Apps
  2. Find Colombia in the app discovery list
  3. Click Connect to activate
2

Create the registration workflow

Colombia register supplier workflow

Add to my workspace →

How it works

1

Set state → Processing

Sets the state of the silo entry to Processing.
2

Register supplier

Validates the party’s name, NIT, and email, creates the supplier’s company in Alegra, and publishes a public enablement portal link under the registration-link key in the entry’s meta section.
3

Wait for DIAN enablement

Pauses until the DIAN accepts the enablement test set the supplier submits from the portal. The step resumes automatically as soon as the DIAN responds. If the DIAN rejects the test set, the step fails and the workflow continues in its error handling flow; see Failed enablement.
4

Set state → Registered

Sets the state of the silo entry to Registered.
To be notified of the outcome instead of polling, add a Send Webhook step after Wait for DIAN enablement for the accepted case, and another in the error handling flow for failures. The failure payload carries the job’s faults, including the DIAN’s rejection reason.

Register a supplier

Each supplier NIT can be registered once per workspace and environment. For each supplier:
1

Upload the supplier party

Create a silo entry with the supplier’s details as a GOBL org.Party document, either from the Console or via the API:
Colombia supplier example
2

Run the registration workflow

Run the workflow created during setup on the supplier entry, from the Console or by creating a job. The job creates the Alegra company and pauses at the Wait for DIAN enablement step.
3

Share the portal link

Open the supplier entry in the Console and copy the registration-link from its meta section. Share it with the supplier’s legal representative: it is public and needs no Invopop account.Via the API, fetch the silo entry and read the link_url of the meta row with the key registration-link:
To skip the portal entirely, submit the TestSetId yourself as described in Complete the enablement via the API.
4

Register as electronic invoicer at the DIAN

The legal representative opens the DIAN’s Habilitación portal (also linked from dian.gov.co under Factura Electrónica) and logs in as Empresa (or Persona for individuals). The DIAN emails an access link, valid for 60 minutes, to the address on the RUT of the person logging in, the legal representative for companies.
DIAN Habilitación login with the Empresa and Persona options highlighted

Habilitación login (DIAN)

The first time they open Registro y habilitación → Documentos electrónicos, the Registrar facturador screen appears: they enter the Correo electrónico para recepción de facturas and click Registrar. They then log out and log back in with a new access link before continuing.
DIAN Registrar facturador screen with the Registrar button highlighted

Registrar facturador (DIAN)

5

Select Alegra as technology provider at the DIAN

Back in the Habilitación portal, the legal representative:
  1. Goes to Registro y habilitación → Documentos electrónicos → Factura electrónica and clicks Configurar modos de operación.
DIAN Facturador electrónico page with the Configurar modos de operación button highlighted

Facturador electrónico (DIAN)

  1. Under Seleccione el modo de operación, picks Software de un proveedor tecnológico.
  2. Under Datos de empresa y software, sets Nombre empresa proveedora to Soluciones Alegra S.A.S and Nombre del software to Alegra’s software from the list, then clicks Asociar.
DIAN Configurar modos de operación form with the operation mode, provider and software fields and the Asociar button

Configurar modos de operación, filled in for Alegra (DIAN)

  1. Under Listado de modos de operación asociados, clicks the eye icon in Acciones. If asked for a Tipo de documento, they choose Factura electrónica and click Set de pruebas. They copy the TestSetId shown in the ¡Importante! banner.
DIAN list of associated operation modes with the Acciones icons

Listado de modos de operación asociados, with Alegra (DIAN)

DIAN Set de pruebas page with the TestSetId highlighted in the Importante banner

Set de pruebas with the TestSetId, for Alegra (DIAN)

The DIAN explains these screens in sections 1 and 2 of Registration and operation mode selection.
6

Submit the test set

The legal representative pastes the TestSetId into the Invopop portal and clicks Enviar set de pruebas. Alegra sends the required test documents to the DIAN automatically, signed with its own digital certificate, so the supplier doesn’t need one.
Enablement portal with the DIAN TestSetId field and the Enviar set de pruebas button

Enablement portal

To submit the TestSetId without the hosted portal, use the Submit test set endpoint.
7

Wait for the DIAN response

The portal refreshes while the DIAN processes the test set. Once accepted, the workflow resumes and the entry moves to the registered state. The DIAN then asks the supplier for their production start date, when their RUT is updated with responsibility 52 (Facturador electrónico). If the DIAN rejects the test set, the workflow fails and the DIAN’s reason is recorded in the job’s faults; see Failed enablement for where to read it and how to start again.
Re-running the registration workflow on the same entry is safe: it restarts a failed enablement, keeps a test set that is still waiting for the DIAN, and does nothing once the supplier is enabled.

Numbering resolutions

In live, every invoice series needs a DIAN numbering range authorization linked to Alegra. This isn’t needed in the sandbox, which uses the fixed SETP test resolution. Each authorization is valid for 2 years.
1

Request the numbering range

In the DIAN’s MUISCA system (Usuario Registrado on dian.gov.co), under Numeración de Facturación → Solicitar numeración de facturación, the legal representative:
DIAN MUISCA menu with Numeración de Facturación and Solicitar Numeración de Facturación

MUISCA menu (DIAN)

  1. Checks that the RUT is up to date (name, address, invoicing responsibility, and establishments).
  2. Clicks Autorizar Rangos and fills in Prefijo (up to four letters or digits, which becomes the invoice series), Tipo Facturación set to FACTURA ELECTRÓNICA DE VENTA, and Rango Desde / Rango Hasta, then clicks Agregar.
  3. Signs the request with their DIAN electronic signature (firma electrónica), first as form 1302 and then as form 1876, which the DIAN issues with the authorized ranges and validity.
DIAN MUISCA Solicitud de Autorización de Rangos form with Prefijo, Tipo Facturación, Rango Desde and Rango Hasta fields

Solicitud de autorización de rangos (DIAN)

See Request for invoice numbering authorization.
2

Link the range to Alegra

Once the DIAN has accepted the test set, and about two hours after the range request, log in to the production environment through Facturando Electrónicamente. Go to Configuración → Rangos de numeración, pick Soluciones Alegra S.A.S under Proveedor - Software and the range under Prefijo, and click Agregar.
DIAN Gestionar Asociación de Prefijos page with the Proveedor - Software and Prefijo fields and the Agregar button

Gestionar asociación de prefijos, with Alegra selected (DIAN)

If production shows Empresa no se encuentra habilitada, or Alegra’s operation mode doesn’t appear there, click Sincronizar Contribuyente a producción on the Facturador electrónico page of the Habilitación portal:
DIAN Facturador electrónico page with the Sincronizar Contribuyente a producción button highlighted

Sincronizar contribuyente a producción (DIAN)

The DIAN explains this in sections 3 and 4 of Registration and operation mode selection.

Renew a range

A range with numbers left can be extended once it’s within 15 business days of its expiry date; the new validity is set by the DIAN on the resulting form 1876. Once a range is used up or expired, request a new one as described above instead.
1

Open the range

In MUISCA, under Numeración de Facturación → Solicitar numeración de facturación, the legal representative clicks Habilitar Rangos.
DIAN MUISCA Consultar Numeración de Facturación screen with the Habilitar Rangos button highlighted

Consultar numeración de facturación (DIAN)

2

Request the extension

They enter the same Prefijo and Tipo Facturación, click Consultar, review the range shown (editing Rango Desde if prompted), and click Borrador.
3

Sign it

They sign form 1302 and then form 1876, which carries the new validity.
See Request for invoice numbering extension. Invopop picks up new and renewed resolutions automatically on the next send. Check them anytime with List resolutions.

Contingency range

To keep invoicing on paper when electronic invoicing isn’t possible (see Transmitting invoices issued during a contingency), the supplier needs a separate range for paper invoices. Request it ahead of time following the same steps as above, with Tipo Facturación set to the paper invoice option (factura de talonario o de papel), then link it the same way. The DIAN doesn’t assign a technical key to these ranges.
Contingency resolutions can’t be fetched from the DIAN, so once form 1876 is issued, upload the resolution to Invopop using Upload contingency resolution. Without it, contingency invoices can’t be sent.
See the DIAN’s contingency numbering and transcription guide.

Complete the enablement via the API

For platforms that want to drive the enablement programmatically instead of sharing the hosted portal, use the enablement API (both endpoints under /apps/gov-co/v1/entries/{silo_entry_id}/enablement). The entry must belong to the authenticated workspace and have been registered first.
1

Submit the test set

Submit test set with the TestSetId from the DIAN enablement portal. It responds 400 when a test set is already awaiting the DIAN outcome, the supplier is already enabled, or a previous enablement failed. Run the registration workflow again to restart a failed enablement.
2

Track the outcome

Fetch the enablement status: status moves from pending to accepted or failed once the DIAN responds. The workflow’s Wait for DIAN enablement step picks up the outcome exactly as it does for portal submissions.The endpoint returns the status only. When it’s failed, read the reason in the registration job’s faults, as described in Failed enablement.

Failed enablement

When the DIAN rejects the test set, or the submission fails, the Wait for DIAN enablement step fails, the enablement status becomes failed, and the registration job continues in the workflow’s error handling flow. The DIAN’s reason isn’t returned by the enablement endpoint; it’s recorded in the faults of the registration job, under the gov-co.wait.enablement provider. Read it from any of:
  • The Console: open the supplier entry and check its job history.
  • The API: fetch the job and read its faults array. Prefer the job’s faults over the faults field on the silo entry.
  • A webhook: with a Send Webhook step in the error handling flow, the payload includes the same faults.
The fault message carries the reasons given by the DIAN or the technology provider, when they return any. Reasons that quote a DIAN validation rule (such as Regla: FAJ40) are explained in section 8 of the DIAN’s technical annex, and section 7.12 lists the test set status codes. To start again:
  1. Fix the cause, for example by correcting the supplier details in the entry or getting a new TestSetId from the DIAN portal.
  2. Re-run the registration workflow on the same entry. Until you do, Submit test set responds 400.
  3. Submit the test set again, from the portal or via the API.

Sandbox

The same registration flow runs in sandbox workspaces against the DIAN test environment, with a few differences:
  • Only Alegra’s own NIT (9005590882) can be registered, since the DIAN test registry accepts documents from that emitter alone. A NIT can be registered once per workspace, so each workspace has a single sandbox supplier.
  • The fixed DIAN test resolution (series SETP, codes 990000000–995000000) is seeded automatically on registration. The range is shared with other users testing in the sandbox, so pick codes unlikely to collide.
  • The enablement is simulated: instead of a real DIAN TestSetId, enter one of the following values in the portal to choose the outcome.
Use the accepted value to complete a supplier registration end to end; the other values let you test how your integration handles rejected, pending, and failed outcomes. Submit the rejected or failed value to exercise your failed enablement handling end to end, from reading the job’s faults to re-running the workflow.

Migrate from Plemsi

Moving a supplier from the old Plemsi integration takes the same steps as a new registration. At the DIAN, the supplier simply adds Alegra as another technology provider.
1

Set up the Colombia app

Connect the app and create the registration workflow as described in Setup, and the send workflow from the invoicing guide.
2

Register the supplier

Follow Register a supplier: run the registration workflow, add Alegra as technology provider at the DIAN, and submit the test set. The Plemsi enablement doesn’t carry over, so this is needed even for suppliers already issuing.
3

Set up the numbering ranges

Under Configuración → Rangos de numeración (see Numbering resolutions), choose one of:
  • Move the existing range: unlink it from Plemsi (the ✕ icon next to it in the list) and link it to Alegra. The series stays the same, and new invoices must continue after the last number issued through Plemsi.
  • Add a new range: request a new range with a new prefix and link it to Alegra. Invoices sent through Alegra start a fresh series, while the old range stays with Plemsi until it’s no longer needed.
4

Switch to the new send workflow

Send new invoices with the Colombia send workflow, using the series from the previous step. Once they clear, stop using the Plemsi workflow.
At this point, you’re ready to start sending invoices on behalf of the supplier. Head over to the Invoicing in Colombia guide to continue.

FAQ

The supplier must be registered with the DIAN with an active RUT (Registro Único Tributario), complete the DIAN habilitación, and hold a valid billing numbering range authorization. The supplier registration guide walks through each step.
Upload a GOBL party with the supplier’s name, NIT (with verification digit), and email, then run the registration workflow. It publishes an enablement portal link under registration-link in the entry’s meta; the supplier’s legal representative completes the DIAN enablement there, and the workflow finishes once the DIAN accepts it. See the supplier registration guide.
A one-time DIAN certification required before issuing real invoices. The supplier submits a TestSetId from the DIAN portal through the hosted portal, Alegra sends the test documents, and the supplier is enabled once the DIAN accepts them.
The enablement status only says failed. The DIAN’s reason is in the faults of the registration job: check the entry’s job history in the Console, fetch the job via the API, or receive it in a Send Webhook step in the workflow’s error handling flow. Fix the cause and re-run the registration workflow to start again. See Failed enablement.
Yes, but only Alegra’s NIT (9005590882) can be registered. The enablement is simulated: enter the TestSetId a70562e0-631e-4ceb-aa65-36887b57dc17 for an instant acceptance. Other outcomes are in the sandbox section of the guide.
Yes. Authorizations are valid for 2 years and also end when their numbers run out. Before a range with unused numbers expires, the supplier can extend it (extension request); once it’s used up, they request a new one (new authorization). Updated resolutions are picked up automatically.
More available in our Colombia FAQ section

Participate in our community

Ask and answer questions about invoicing in Colombia →