> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usecroma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# INVIMA

> Busca cada registro sanitario que el INVIMA ha expedido o dejado vencer, en todos los grupos de productos, y cada presentación de medicamento registrada con su código CUM, ATC y principios activos.

El Instituto Nacional de Vigilancia de Medicamentos y Alimentos (INVIMA) es la autoridad sanitaria de Colombia. Nada de lo que regula puede venderse en el país sin su registro sanitario o, para cosméticos y productos de aseo de bajo riesgo, su notificación sanitaria obligatoria (NSO): medicamentos, alimentos y bebidas, cosméticos, dispositivos médicos, reactivos de diagnóstico, suplementos dietarios, biológicos, homeopáticos y fitoterapéuticos, productos odontológicos y plaguicidas.

Este es el registro completo, cerca de 385.000 registros vigentes o vencidos, cada uno con su número, fechas, titular, todos los nombres de producto que ampara y cada empresa o persona con un rol en él. Para medicamentos baja un nivel más: cada presentación comercial, cerca de 163.000, con su código CUM (Código Único de Medicamento), código ATC, forma farmacéutica, principios activos y concentración, vía, presentación y si está activa.

Busca registros por producto, número, titular, grupo, estado o vencimiento; busca medicamentos por principio activo, código ATC, nombre o titular; y luego lee un registro por su expediente o una presentación por su CUM.

<Note>
  La fuente entera, organizada y lista para consultar: cada endpoint de esta página responde en milisegundos. Cada respuesta incluye `as_of`: qué tan actualizados están los datos. [Cómo funcionan los datasets](/es/datasets).
</Note>

## Buscar registros sanitarios

`POST /co/invima/registrations-search/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

Una sola búsqueda sobre cada registro y notificación, en todos los grupos de productos, por producto, número, titular, grupo, estado o vencimiento.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales que se buscan en los nombres de producto, el titular y cada empresa o persona con un rol. |
| `registration_number` | string | Número opcional de registro o notificación en cualquier escritura, p. ej. `INVIMA 2020M-0019848`, `2020M-0019848` o `NSO-PC-C 32.233 -VE`. Se ignoran espacios, guiones, puntos y mayúsculas. |
| `holder` | string | Titular opcional, comparado desde el inicio. No importan mayúsculas ni tildes. |
| `product_group` | string | Grupo opcional como lo nombra el INVIMA: `MEDICAMENTOS`, `ALIMENTOS`, `COSMETICOS`, `MEDICO QUIRURGICOS`, `REACTIVO DIAGNOSTICO`, `REACTIVOS IN VITRO`, `BEBIDAS ALCOHOLICAS`, `ASEO Y LIMPIEZA`, `SUPLEMENTO DIETARIO`, `BIOLOGICOS`, `HOMEOPATICOS`, `FITOTERAPEUTICO`, `ODONTOLOGICOS` o `PLAGUICIDAS`. |
| `status` | string | Estado opcional: `vigente` o `vencido`. |
| `expires_from` | string | Opcional: solo registros que vencen en esta fecha o después, `yyyy-mm-dd`. |
| `expires_to` | string | Opcional: solo registros que vencen en esta fecha o antes, `yyyy-mm-dd`. |
| `page` | integer | Número de página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Resultados por página (1-100). Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/invima/registrations-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "query": "acetaminofen",
        "product_group": "MEDICAMENTOS",
        "status": "vigente"
      }'
```

Devuelve `as_of` (qué tan actualizados están los datos), los filtros aplicados, `total` y `total_is_exact`, `page`, `per_page`, `total_pages`, `count` y `results[]`, del vencimiento más lejano al más antiguo. Cada registro incluye `id` (el número de expediente del INVIMA), `registration_number` (como lo escribe el INVIMA, p. ej. `INVIMA 2020M-0019848`), `product` y `products` (todos los nombres de producto que ampara), `product_group` (p. ej. `MEDICAMENTOS`, `ALIMENTOS`, `COSMETICOS`, `MEDICO QUIRURGICOS`), `directorate`, `status` (`Vigente` o `Vencido`), `issued_at`, `expires_at`, `holder`, `modality` (p. ej. `FABRICAR Y VENDER`), `risk_level` (dispositivos y reactivos), `uses`, `shelf_life`, `parties[]` (`role` y `name`: fabricantes, importadores, acondicionadores, apoderados, representantes legales, químicos farmacéuticos) y `entries`.

## Un registro

`POST /co/invima/registration/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `file_number` | string | **Obligatorio.** El número de expediente del INVIMA, el `id` de un resultado de búsqueda, p. ej. `20190868`. |

```bash theme={"dark"}
curl https://api.croma.run/co/invima/registration/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "file_number": "20190868" }'
```

Devuelve `as_of`, `found`, `file_number` y `registration`. Cada registro incluye `id` (el número de expediente del INVIMA), `registration_number` (como lo escribe el INVIMA, p. ej. `INVIMA 2020M-0019848`), `product` y `products` (todos los nombres de producto que ampara), `product_group` (p. ej. `MEDICAMENTOS`, `ALIMENTOS`, `COSMETICOS`, `MEDICO QUIRURGICOS`), `directorate`, `status` (`Vigente` o `Vencido`), `issued_at`, `expires_at`, `holder`, `modality` (p. ej. `FABRICAR Y VENDER`), `risk_level` (dispositivos y reactivos), `uses`, `shelf_life`, `parties[]` (`role` y `name`: fabricantes, importadores, acondicionadores, apoderados, representantes legales, químicos farmacéuticos) y `entries`.

<Note>
  Un número bajo el cual el INVIMA no lista nada devuelve `found: false` con HTTP 200, no un error.
</Note>

## Buscar medicamentos

`POST /co/invima/medicines-search/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

Una sola búsqueda sobre cada presentación de medicamento registrada, por principio activo, código ATC, nombre, número, titular o estado.

| Campo | Tipo | Notas |
| - | - | - |
| `query` | string | Palabras opcionales que se buscan en el nombre del medicamento, sus principios activos, el titular y la descripción ATC. |
| `registration_number` | string | Número de registro opcional en cualquier escritura, p. ej. `INVIMA 2023M-0013598-R2`. Se ignoran espacios, guiones y mayúsculas. |
| `file_number` | string | Expediente opcional del INVIMA, p. ej. `20042480`: todas las presentaciones de ese registro. |
| `active_ingredient` | string | Principio activo opcional como lo nombra el INVIMA, p. ej. `ACETAMINOFEN` o `AMOXICILINA TRIHIDRATO`. Coincidencia exacta; no importan mayúsculas ni tildes. |
| `atc_code` | string | Código ATC opcional o su prefijo, p. ej. `N02BE01` para una sustancia o `N02` para todo un grupo. |
| `holder` | string | Titular opcional, comparado desde el inicio. No importan mayúsculas ni tildes. |
| `status` | string | Estado opcional del registro como lo escribe el INVIMA: `vigente`, `vencido`, `perdida fuerza ejec`, `cancelado`, `negado`, `suspendido`, `en tramite renov`, entre otros. No importan mayúsculas ni tildes. |
| `cum_status` | enum | Estado opcional de la presentación: `activo` o `inactivo`. |
| `expires_from` | string | Opcional: solo registros que vencen en esta fecha o después, `yyyy-mm-dd`. |
| `expires_to` | string | Opcional: solo registros que vencen en esta fecha o antes, `yyyy-mm-dd`. |
| `page` | integer | Número de página, empieza en 1. Por defecto `1`. |
| `per_page` | integer | Resultados por página (1-100). Por defecto `20`. |

```bash theme={"dark"}
curl https://api.croma.run/co/invima/medicines-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "active_ingredient": "ACETAMINOFEN",
        "status": "vigente",
        "cum_status": "activo"
      }'
```

Devuelve `as_of` (qué tan actualizados están los datos), los filtros aplicados, `total` y `total_is_exact`, `page`, `per_page`, `total_pages`, `count` y `results[]`, de la presentación activada más recientemente a la más antigua. Cada presentación incluye `id` (el código CUM, p. ej. `20042480-41`), `file_number` y `cum_sequence` (sus dos mitades), `registration_number`, `product`, `holder`, `status` (el del registro: `Vigente`, `Vencido`, `Perdida Fuerza Ejec`, `Cancelado`, `Negado`, `Suspendido`, `En tramite renov` y otros), `cum_status` (`activo` o `inactivo`), `issued_at`, `expires_at`, `cum_active_since`, `cum_inactive_since`, `commercial_description`, `pack_quantity`, `pack_unit`, `medical_sample`, `atc_code`, `atc_description`, `pharmaceutical_form`, `administration_routes[]`, `active_ingredients[]` (`name`, `quantity`, `unit`, `reference_unit`), `parties[]` (`role` y `name`), `modality`, `ium` y `entries`.

## Una presentación

`POST /co/invima/medicine/v1` <a className="dataset-pill" href="/es/datasets">Dataset</a>

| Campo | Tipo | Notas |
| - | - | - |
| `cum` | string | **Obligatorio.** El código CUM, el `id` de un resultado de búsqueda: el expediente y el consecutivo unidos por un guion, p. ej. `20042480-41`. |

```bash theme={"dark"}
curl https://api.croma.run/co/invima/medicine/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "cum": "20042480-41" }'
```

Devuelve `as_of`, `found`, `cum` y `medicine`. Cada presentación incluye `id` (el código CUM, p. ej. `20042480-41`), `file_number` y `cum_sequence` (sus dos mitades), `registration_number`, `product`, `holder`, `status` (el del registro: `Vigente`, `Vencido`, `Perdida Fuerza Ejec`, `Cancelado`, `Negado`, `Suspendido`, `En tramite renov` y otros), `cum_status` (`activo` o `inactivo`), `issued_at`, `expires_at`, `cum_active_since`, `cum_inactive_since`, `commercial_description`, `pack_quantity`, `pack_unit`, `medical_sample`, `atc_code`, `atc_description`, `pharmaceutical_form`, `administration_routes[]`, `active_ingredients[]` (`name`, `quantity`, `unit`, `reference_unit`), `parties[]` (`role` y `name`), `modality`, `ium` y `entries`.

<Note>
  Un número bajo el cual el INVIMA no lista nada devuelve `found: false` con HTTP 200, no un error.
</Note>

<Card title="Referencia completa" icon="code" href="/es/api-reference/overview">
  Esquemas, todos los campos de respuesta y un playground interactivo.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.