---
title: "Servicios Web (API)"
description: ""
type: "docs"
category: "doc"
tags: []
authors: [Anonymous]
date: "2026-09-11"
last_update: "2026-09-11"
time_minutes: 1
draft: false
unlisted: false
url: "https://www.contafi.cl/docs/api"
---




## ContaFi API


**ContaFi** provee en [contafi.cl](https://app.contafi.cl) una API para interactuar con diferentes características del software ContaFi.

> ¡Tenemos una API que ni el propio SII tiene disponible!

Si requiere soporte con el uso de la API, por favor [abrir un ticket de soporte](https://app.contafi.cl/ayuda).

**Revisa la documentación dinámica de la API en** [API ContaFi Interactiva](https://app.contafi.cl/docs/devtools)

---

# Autenticación mediante Token

La API soporta sólo el método de autenticación mediante Token.

Se debe generar un *Token* a través de la [plataforma web de ContaFi](https://app.contafi.cl/usuarios/perfil#token) y hacer las solicitudes enviando el token en la cabecera:

```text
Authorization: Token TOKEN
```

## Error Token inválido

El mensaje:

```json
{
  "detail": "Token inválido."
}
```

Puede ser a causa de los siguientes motivos:

- No se envió el *token*.
- Se envió un *access token* incorrecto.

---

# Realizando peticiones

Los parámetros que se puedan pasar a la API tienen 3 posibles ubicaciones:

1. **Variable en el PATH del recurso consumido**: parámetros que identifican un elemento en el recurso que se está consumiendo. Pueden existir casos donde cierto parámetro sea opcional, en cuyo caso se indicará en cada recurso.
2. **Variable agregada a la URL**: parámetros que permiten modificar el comportamiento de la consulta. Por ejemplo para cambiar el formato de la respuesta o el delimitador usado en los CSV. Estos parámetros siempre serán opcionales.
3. **Variable en el cuerpo de la solicitud POST**: agregada como un diccionario de datos en JSON. Este tipo de variables se usará principalmente para envío de datos para creación o modificación de datos en los recursos.

A menos que se especifique lo contrario, todos los cuerpos de las llamadas a la API deben ser JSON con la cabecera:

```text
Content-Type: application/json
```

Y de forma similar, la aplicación, a menos que se indique o soliciten los datos en un formato diferente, debe aceptar los datos en formato JSON con la cabecera:

```text
Accept: application/json
```

Adicionalmente, existen consultas que requieren la cabecera X-Contafi-Contribuyente (indicado en cada recurso). Esta cabecera debe contener el RUT del contribuyente sin puntos, con guión y dígito verificador. Ejemplo:

```text
X-Contafi-Contribuyente: 11222333-K
```

Esta cabecera indica con qué contribuyente se desea trabajar.

## Formato respuesta

En general, la respuesta siempre será primero en JSON, a menos que el recurso de la API especifíque lo contrario.

---

# Errores

Todos los errores incluyen un código HTTP y un mensaje claro.

| Código | Descripción HTTP         | Descripción ContaFi                                         |
|--------|--------------------------|--------------------------------------------------------------|
| 400    | Bad Request              | Petición inválida                                            |
| 401    | Unauthorized             | *Token* incorrecto                                           |
| 403    | Forbidden                | No tiene autorización                                        |
| 404    | Not Found                | Recurso no encontrado                                        |
| 405    | Method Not Allowed       | Método no permitido                                          |
| 406    | Not Acceptable           | Formato de datos incorrecto                                  |
| 410    | Gone                     | El recurso ya no existe                                      |
| 423    | Locked                   | Cuenta bloqueada                                             |
| 429    | Too Many Requests        | Demasiadas solicitudes                                       |
| 500    | Internal Server Error    | Error inesperado en el servidor                              |
| 503    | Service Unavailable      | Servicio temporalmente no disponible                         |

> Con el paso del tiempo podríamos ir agregando o eliminando tipos de errores. Se recomienda verificar que la aplicación se adapte a estos cambios o al menos maneje un caso por defecto cuando hay un error desconocido.

Ejemplo de error:

```json
{
    ​​"status": "401",
    ​​"code": "error",
    ​​"detail": "Token incorrecto."
}
```


Índice:

- Boletas de Honorarios
  - Listado de BHE recibidas

  - Datos de una BHE recibida

  - Listado de emisores

  - Observar una BHE recibida

  - PDF de una BHE recibida

- Boletas de Terceros
  - Anular una BTE

  - Listado de BTE emitidas

  - Datos de una BTE emitida

  - Calcular monto bruto

  - Emitir una BTE

  - HTML de una BTE emitida

  - Calcular monto líquido

  - PDF de una BTE emitida

  - Listado de Receptores

- Contribuyentes
  - Datos de un Contribuyente

  - Estadísticas de un Contribuyente

  - Listado de roles

  - Agregar un permiso a un rol

  - Quitar un permiso de un rol

  - Datos de la Sucursal de un Contribuyente

  - Agregar usuario autorizado

  - Quitar usuario autorizado

- Facturación
  - Listado de clientes

  - Listado de documentos de compras

  - Listado de proveedores

  - Listado de documentos de ventas

  - Resumen de ventas sin detalle

- Otros Ingresos y Egresos
  - Listado de movimientos

- Remuneraciones
  - Listado de remuneraciones

### Boletas de Honorarios

#### GET /api/v1/bhe/boletas

Listado de BHE recibidas

Recurso que permite obtener el listado paginado de boletas de honorarios electrónicas (BHE) recibidas por el contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `emisor_codigo` (query, string) — Código del emisor
- `emisor_rut` (query, string) — RUT del emisor de la BHE
- `fecha_desde` (query, string) — Fecha desde (YYYY-MM-DD)
- `fecha_hasta` (query, string) — Fecha hasta (YYYY-MM-DD)
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período en formato AAAAMM o AAAA
Respuestas:

- `200`
#### GET /api/v1/bhe/boletas/{emisor_rut}/{boleta_numero}

Datos de una BHE recibida

Recurso para obtener los datos de una boleta de honorarios electrónica recibida a partir del RUT del emisor y el número de la boleta.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la boleta de honorarios
- `emisor_rut` (path, string, requerido) — RUT del emisor con guion (ej: 11222333-4)
- `format` (query, string)
Respuestas:

- `200`
#### GET /api/v1/bhe/emisores

Listado de emisores

Recurso que permite obtener el listado paginado de emisores asociados a boletas de honorarios electrónicas (BHE).



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `nuevos` (query, string) — Emisores que han emitido por primera vez una BHE en el período indicado
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
Respuestas:

- `200`
#### POST /api/v1/bhe/observar/{emisor_rut}/{boleta_numero}

Observar una BHE recibida

Recurso que permite observar una boleta de honorarios electrónica previamente recibida.

**Causas válidas de observación:**
- `1`: No se reconoce la relación contractual o comercial con el emisor
- `2`: No se reconoce al emisor de la BHE

Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la boleta de honorarios
- `emisor_rut` (path, string, requerido) — RUT del emisor con guión (ej: 11222333-4)
- `format` (query, string)
Respuestas:

- `200`
#### GET /api/v1/bhe/pdf/{emisor_rut}/{boleta_numero}

PDF de una BHE recibida

Recurso para obtener el PDF de una boleta de honorarios electrónica 

Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la boleta de honorarios
- `compress` (query, integer) — 1 para entregar el PDF comprimido (ZIP), 0 para entrega directa
- `emisor_rut` (path, string, requerido) — RUT del emisor con guion (ej: 16261063-5)
- `format` (query, string)
Respuestas:

- `200`
### Boletas de Terceros

#### POST /api/v1/bte/anular/{boleta_numero}

Anular una BTE

Recurso que permite anular una boleta de terceros electrónica previamente emitida.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la boleta a anular
- `format` (query, string)
Ejemplo de cuerpo de la solicitud:

```
{
    "causa": 3
}
```

Respuestas:

- `200` — Boleta anulada exitosamente
#### GET /api/v1/bte/boletas

Listado de BTE emitidas

Recurso que permite obtener el listado paginado de boletas de terceros electrónicas (BTE) emitidas.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `fecha_desde` (query, string) — Fecha inicial para el filtro, en formato YYYY-MM-DD.
- `fecha_hasta` (query, string) — Fecha final para el filtro, en formato YYYY-MM-DD.
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período tributario. Puede ser un mes (AAAAMM) o año (AAAA).
- `receptor_codigo` (query, string) — Código interno del receptor.
- `receptor_rut` (query, string) — RUT del receptor (ej: 12345678-9).
Respuestas:

- `200`
#### GET /api/v1/bte/boletas/{boleta_numero}

Datos de una BTE emitida

Recurso para obtener los datos de una boleta de terceros electrónica emitida por el contribuyente autenticado.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la BTE emitida
- `format` (query, string)
Respuestas:

- `200` — Datos de la boleta emitida
#### GET /api/v1/bte/bruto/{liquido}/{periodo}

Calcular monto bruto

Recurso que permite calcular el monto bruto a partir del monto líquido.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `liquido` (path, integer, requerido) — Monto líquido
- `periodo` (path, string, requerido) — Período en formato AAAAMM
- `receptor` (query, string) — RUT del receptor (opcional)
Respuestas:

- `200` — Montos calculados
#### POST /api/v1/bte/emitir

Emitir una BTE

Recurso que permite emitir una boleta de honorarios de terceros (BTE). La boleta debe contener los datos del receptor y al menos un ítem detallado.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
Ejemplo de cuerpo de la solicitud:

```
{
    "Encabezado": {
        "IdDoc": {
            "FchEmis": "2022-09-06"
        },
        "Emisor": {
            "RUTEmisor": ""
        },
        "Receptor": {
            "RUTRecep": "66666666-6",
            "RznSocRecep": "Receptor generico",
            "DirRecep": "Santa Cruz",
            "CmnaRecep": "Santa Cruz"
        }
    },
    "Detalle": [
        {
            "NmbItem": "Prueba integracion ContaFi 1",
            "MontoItem": 50
        },
        {
            "NmbItem": "Prueba integracion ContaFi 2",
            "MontoItem": 100
        }
    ]
}
```

Respuestas:

- `200` — Boleta emitida correctamente
#### GET /api/v1/bte/html/{boleta_numero}

HTML de una BTE emitida

Recurso que permite obtener el archivo HTML de una boleta de terceros electrónica emitida por el contribuyente autenticado.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la boleta emitida
- `format` (query, string)
Respuestas:

- `200` — Archivo HTML de la boleta emitida
#### GET /api/v1/bte/liquido/{bruto}/{periodo}

Calcular monto líquido

Recurso que permite calcular el monto líquido a partir del monto bruto.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `bruto` (path, integer, requerido) — Monto bruto
- `format` (query, string)
- `periodo` (path, string, requerido) — Período en formato AAAAMM
- `receptor` (query, string) — RUT del receptor (opcional)
Respuestas:

- `200` — Montos calculados
#### GET /api/v1/bte/pdf/{boleta_numero}

PDF de una BTE emitida

Recurso que permite obtener el archivo PDF de una boleta de terceros electrónica emitida por el contribuyente autenticado.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `boleta_numero` (path, integer, requerido) — Número de la boleta emitida
- `compress` (query, integer) — Indica si el PDF se entrega comprimido (1) o no (0). Por defecto es 0.
- `format` (query, string)
Respuestas:

- `200` — Archivo PDF o ZIP con el PDF de la boleta
#### GET /api/v1/bte/receptores

Listado de Receptores

Recurso que permite obtener el listado paginado de receptores asociados a boletas de terceros electrónicas (BTE).



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
Respuestas:

- `200`
### Contribuyentes

#### GET /api/v1/contribuyentes/{contribuyente_rut}

Datos de un Contribuyente

Recurso que permite obtener los datos de un contribuyente a partir de su RUT.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `contribuyente_rut` (path, string, requerido) — RUT del contribuyente a consultar
- `format` (query, string)
Respuestas:

- `200`
#### GET /api/v1/contribuyentes/estadisticas

Estadísticas de un Contribuyente

Recurso que permite obtener la estadística de un contribuyente a partir de su RUT.

Si se omite la cabecera con el RUT, se obtendrá la estadística general de todos los contribuyentes a los que el usuario tiene acceso.

Parámetros:

- `X-Contafi-Contribuyente` (header, string) — RUT del contribuyente para filtrar resultados.
- `format` (query, string)
- `periodo` (query, string) — Período tributario en formato `YYYYMM`.
Respuestas:

- `200` — Estadísticas agrupadas
#### GET /api/v1/contribuyentes/roles

Listado de roles

Recurso que entrega todos los roles definidos por el contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
Respuestas:

- `200`
#### PUT /api/v1/contribuyentes/roles

Agregar un permiso a un rol

Recurso que permite agregar uno o más permisos a un rol existente, o bien crear un nuevo rol si no existe.

Si el rol no existe, se puede usar el recurso para crear el rol indicando `rol` y `rol_descripcion` en vez de `rol_id`.

Parámetros:

- `format` (query, string)
Ejemplo de cuerpo de la solicitud:

```
{
    "rol_id": 6,
    "permisos": [
        "bhe_ver",
        "bte_emitir"
    ]
}
```

Respuestas:

- `200`
#### DELETE /api/v1/contribuyentes/roles/{rol_id}/{permiso}

Quitar un permiso de un rol

Recurso que permite quitar un permiso de un rol definido por el contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `permiso` (path, string, requerido) — Código del permiso a quitar
- `rol_id` (path, integer, requerido) — ID del rol
Respuestas:

- `200`
#### GET /api/v1/contribuyentes/sucursales/{sucursal_codigo}

Datos de la Sucursal de un Contribuyente

Recurso que permite obtener los datos de una sucursal de un contribuyente a partir de su código.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `sucursal_codigo` (path, integer, requerido) — Código de la sucursal
Respuestas:

- `200`
#### PUT /api/v1/contribuyentes/usuarios

Agregar usuario autorizado

Recurso que permite autorizar un usuario con cierto rol en un contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
Ejemplo de cuerpo de la solicitud:

```
{
    "usuario_username": "esteban",
    "rol_id": 1
}
```

Respuestas:

- `200`
#### DELETE /api/v1/contribuyentes/usuarios/{usuario_username}/{rol_id}

Quitar usuario autorizado

Recurso que permite quitar a un usuario con cierto rol en un contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `rol_id` (path, integer, requerido) — ID del rol
- `usuario_username` (path, string, requerido) — Nombre del usuario
Respuestas:

- `200` — Usuario desautorizado correctamente
### Facturación

#### GET /api/v1/dte/clientes

Listado de clientes

Recurso que permite obtener el listado paginado de clientes asociados a ventas para el contribuyente autenticado.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
Respuestas:

- `200`
#### GET /api/v1/dte/compras

Listado de documentos de compras

Recurso que permite obtener el listado paginado de documentos tributarios electrónicos asociados a compras.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `emisor_codigo` (query, string) — Código interno asignado al emisor en el sistema.
- `emisor_nacionalidad` (query, integer) — Código de nacionalidad del emisor según Aduana de Chile.
- `emisor_rut` (query, string) — RUT del emisor del documento. Ejemplo: 11222333-4.
- `estado` (query, integer) — Estado del documento en el registro de compras: 1=Registrado, 2=Pendiente, 3=No incluir, 4=Reclamado.
- `fecha_desde` (query, string) — Fecha inicial desde la cual filtrar los documentos. Formato: AAAA-MM-DD.
- `fecha_hasta` (query, string) — Fecha final hasta la cual filtrar los documentos. Formato: AAAA-MM-DD.
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período a consultar. Puede ser un mes en formato AAAAMM o un año en formato AAAA.
Respuestas:

- `200`
#### GET /api/v1/dte/proveedores

Listado de proveedores

Recurso que permite obtener el listado paginado de proveedores asociados a compras para el contribuyente autenticado.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
Respuestas:

- `200`
#### GET /api/v1/dte/ventas

Listado de documentos de ventas

Recurso que permite obtener el listado paginado de documentos tributarios electrónicos asociados a ventas.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `fecha_desde` (query, string) — Fecha inicial desde la cual filtrar los documentos. Formato: AAAA-MM-DD.
- `fecha_hasta` (query, string) — Fecha final hasta la cual filtrar los documentos. Formato: AAAA-MM-DD.
- `folio` (query, integer) — Número de folio del documento.
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período a consultar. Puede ser un mes (AAAAMM) o un año completo (AAAA).
- `receptor_codigo` (query, string) — Código interno del receptor en el sistema.
- `receptor_nacionalidad` (query, integer) — Código de nacionalidad del receptor según Aduana de Chile.
- `receptor_rut` (query, string) — RUT del receptor del DTE. Ejemplo: 11222333-4.
- `reclamadas` (query, string) — Período del reclamo (formato AAAAMM).
Respuestas:

- `200`
#### GET /api/v1/dte/ventas/resumen

Resumen de ventas sin detalle

Recurso que permite obtener el listado paginado de resumenes asociados a ventas.

En este resumen están los datos de documentos que no se tiene el detalle en el registro de ventas del SII, por ejemplo las boletas.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período en formato AAAAMM o AAAA
Respuestas:

- `200`
### Otros Ingresos y Egresos

#### GET /api/v1/movimientos

Listado de movimientos

Recurso que permite obtener el listado paginado de movimientos (otros ingresos/egresos) del contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período en formato AAAAMM o AAAA
Respuestas:

- `200`
### Remuneraciones

#### GET /api/v1/remuneraciones

Listado de remuneraciones

Recurso que permite obtener el listado paginado de remuneraciones del contribuyente.



Parámetros:

- `X-Contafi-Contribuyente` (header, string, requerido) — RUT del contribuyente autenticado
- `format` (query, string)
- `page` (query, integer) — Un número de página dentro del conjunto de resultados paginado.
- `periodo` (query, string) — Período en formato AAAAMM o AAAA
Respuestas:

- `200`


---
Última actualización el 11/09/2026

