> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ayuda.clay.cl/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Cómo conectar Power BI a la API V2 de Clay

## Contexto

La [API V2 de Clay](https://api.clay.cl/v2/reference) te permite consultar la información de tu empresa desde otras herramientas. En este artículo te mostramos cómo conectar **Power BI,** como ejemplo lo haremos con el endpoint de **Boletas de Honorarios** para analizar tus boletas emitidas y recibidas sin descargar archivos a mano.

El mismo procedimiento sirve para cualquier otro endpoint de la API V2 (facturas, movimientos bancarios, etc.): solo cambia la dirección y los parámetros.

## Antes de empezar

* ✅ Necesitas un **token de la API de Clay**. Si aún no lo tienes, revisa [Cómo crear un token para la API](https://ayuda.clay.cl/es/category/api-publica-1h8euy1). Solo los administradores o dueños de la cuenta pueden crearlo.
* ✅ Necesitas el **RUT de tu empresa sin puntos, sin guión y sin dígito verificador**. Ejemplo: si tu RUT es 76.570.751-K, debes usar `76570751`.
* ✅ Necesitas una cuenta de Power BI. Los pasos están hechos en la versión web ([app.powerbi.com](https://app.powerbi.com)), que funciona en Windows y Mac.
* ❌ El token es como una contraseña: no lo compartas ni lo dejes visible en capturas de pantalla.

## Paso a paso

### 1. Abrir Power Query en Power BI

1. Entra a [app.powerbi.com](https://app.powerbi.com).
2. En el menú izquierdo haz clic en **Crear**.
3. Haz clic en la tarjeta **Obtener datos**. Se abre la ventana de Power Query.

![Pantalla Crear de Power BI con la tarjeta Obtener datos](https://storage.crisp.chat/users/helpdesk/website/-/4/4/9/d/449dac2f63676000/01-crear-obtener-datos_95s0rc.png)

### 2. Crear una consulta en blanco

1. En el menú izquierdo de la ventana de Power Query haz clic en **Nuevo**.
2. En el buscador escribe `blanco` y elige **Consulta en blanco** (la tarjeta con el ícono de pergamino, no "Tabla en blanco").

![Buscador de orígenes con la opción Consulta en blanco](https://storage.crisp.chat/users/helpdesk/website/-/4/4/9/d/449dac2f63676000/02-consulta-en-blanco_727cz8.png)

### 3. Pegar el código de conexión

Se abre un editor con cuatro líneas de código de ejemplo. **Bórralas todas** y pega este bloque completo:

```
let
    Token      = "TU_TOKEN",
    CompanyRut = "76570751",
    DateFrom   = "2026-01-01",
    DateTo     = "2026-12-31",
    Limit      = 100,

    GetPage = (offset as number) =>
        Json.Document(
            Web.Contents(
                "https://api.clay.cl",
                [
                    RelativePath = "v2/obligations/honorarios",
                    Query = [
                        company_rut = CompanyRut,
                        date_from   = DateFrom,
                        date_to     = DateTo,
                        limit       = Text.From(Limit),
                        offset      = Text.From(offset)
                    ],
                    Headers = [ Authorization = "Bearer " & Token ]
                ]
            )
        ),

    Pages = List.Generate(
        () => [Page = GetPage(0), Offset = 0],
        each [Page] <> null,
        each if [Page][data][pagination][has_more]
             then [Page = GetPage([Page][data][pagination][next_offset]), Offset = [Page][data][pagination][next_offset]]
             else [Page = null, Offset = null],
        each [Page][data][items]
    ),

    Items = List.Combine(Pages),
    Tabla = Table.FromList(Items, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    Tabla
```

Solo tienes que cambiar las **cuatro primeras líneas**, manteniendo las comillas:

| Línea | Qué poner |
| ---- |
| `Token` | Tu token de la API de Clay |
| `CompanyRut` | RUT de tu empresa sin guión ni dígito verificador |
| `DateFrom` | Fecha de inicio del período, formato `AAAA-MM-DD` |
| `DateTo` | Fecha de término del período, formato `AAAA-MM-DD` |

El resto del código no se toca. Se encarga de pedir las boletas a Clay página por página hasta traerlas todas.

Deja **Puerta de enlace de datos** en `(ninguno)` y presiona **Siguiente**.

![Editor de consulta en blanco con el código pegado](https://storage.crisp.chat/users/helpdesk/website/-/4/4/9/d/449dac2f63676000/03-codigo-pegado_1e0c4eh.png)

### 4. Autorizar la conexión

Power Query mostrará una alerta amarilla: *"Se requieren credenciales para conectarse al origen Web"*. Es normal.

1. Haz clic en **Configurar conexión**.
2. En **Tipo de autenticación** deja **Anónima** (el token ya viaja dentro del código, no hace falta ingresarlo de nuevo).
3. En **Nivel de privacidad** elige **Organizacional**.
4. Presiona **Conectar**.

![Ventana de credenciales con Anónima y Organizacional](https://storage.crisp.chat/users/helpdesk/website/-/4/4/9/d/449dac2f63676000/04-credenciales_1n79wz0.png)

### 5. Ver tus boletas

En unos segundos aparece una tabla con una sola columna llamada `Column1` donde cada fila dice `[Record]`. Cada fila es una boleta.

![Tabla con una columna Column1 y filas Record](https://storage.crisp.chat/users/helpdesk/website/-/4/4/9/d/449dac2f63676000/05-boletas-expandidas_17dj8fn.png)

Para ver los datos:

1. Haz clic en el ícono de **dos flechas** que está a la derecha del nombre `Column1`.
2. Marca **(Seleccionar todas las columnas)** y presiona **Aceptar**.

Ahora verás todas las columnas de cada boleta: fecha, número, estado, emisor, receptor, monto, etc.

Las columnas `issuer` (emisor), `receiver` (receptor) y `total` (montos) siguen mostrando `[Record]` porque agrupan varios datos. Repite el mismo clic en las dos flechas sobre cada una para desplegarlas:

* `issuer` y `receiver` → `rut`, `dv`, `company_name`
* `total` → `gross_amount` (monto bruto) y `tax` (retención)

![Tabla con las columnas issuer/receiver expandidas](https://storage.crisp.chat/users/helpdesk/website/-/4/4/9/d/449dac2f63676000/05a-boletas-sin-expandir_coei5n.png)

Con eso la conexión está lista. Puedes renombrar la consulta (por ejemplo, `Honorarios`) y presionar **Crear un informe** para empezar a armar tus visualizaciones.

## Campos principales que entrega la API

| Campo | Qué es |
| ---- |
| `date` / `date_human` | Fecha de la boleta |
| `number` | Número de la boleta |
| `status` | Estado (`vigente`, `nula`) |
| `issuer` | Quién emitió la boleta (RUT y nombre) |
| `receiver` | Quién la recibió (RUT y nombre) |
| `total.gross_amount` | Monto bruto |
| `total.tax` | Retención |
| `outstanding_balance` | Saldo pendiente de pago: `0` si está pagada, el monto total si no tiene pagos asociados |

Para ver todos los filtros disponibles (por emisor, receptor, si tiene movimientos bancarios vinculados, etc.) revisa la [documentación del endpoint de Boletas de Honorarios](https://api.clay.cl/v2/reference#tag/obligaciones/GET/v2/obligations/honorarios).

## Problemas frecuentes

* **Error 401 o "acceso denegado"**: el token está mal copiado o vencido. Revisa que no tenga espacios al inicio o al final y que esté entre comillas.
* **Error 400 o tabla vacía**: revisa el RUT (sin guión ni dígito verificador) y que las fechas tengan el formato `AAAA-MM-DD`. El rango de fechas es obligatorio.
* **Sigo viendo `[Record]` después de expandir**: en el panel derecho "Pasos aplicados", asegúrate de tener seleccionado el **último paso** de la lista. Si está seleccionado uno anterior, verás la tabla en un estado previo.
* **Uso Power BI Desktop (Windows)**: el procedimiento es el mismo. Ve a **Obtener datos → Consulta en blanco**, abre el **Editor avanzado** y pega el mismo código.