curl --request GET \
--url https://api.abacco.ai/v1/documents \
--header 'Authorization: <api-key>'import requests
url = "https://api.abacco.ai/v1/documents"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.abacco.ai/v1/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.abacco.ai/v1/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.abacco.ai/v1/documents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.abacco.ai/v1/documents")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.abacco.ai/v1/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 123,
"next": "<string>",
"previous": "<string>",
"results": [
{
"id": 123,
"folio": "<string>",
"date_issued": "2023-12-25",
"amount_with_iva": 123,
"dte_type_code": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"has_trace": true,
"latest_trace_info": {
"has_acknowledgments": true,
"has_claims": true,
"is_more_than_eight_days": true,
"is_rejected": true,
"date_reception": "2023-11-07T05:31:56Z",
"events_count": 123
}
}
]
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}Listar documentos
Obtiene las listas de documentos emitidos o recibidos por una entidad específica. Soporta búsqueda por folio, nombre del receptor y filtros avanzados.
curl --request GET \
--url https://api.abacco.ai/v1/documents \
--header 'Authorization: <api-key>'import requests
url = "https://api.abacco.ai/v1/documents"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.abacco.ai/v1/documents', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.abacco.ai/v1/documents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.abacco.ai/v1/documents"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.abacco.ai/v1/documents")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.abacco.ai/v1/documents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"count": 123,
"next": "<string>",
"previous": "<string>",
"results": [
{
"id": 123,
"folio": "<string>",
"date_issued": "2023-12-25",
"amount_with_iva": 123,
"dte_type_code": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"has_trace": true,
"latest_trace_info": {
"has_acknowledgments": true,
"has_claims": true,
"is_more_than_eight_days": true,
"is_rejected": true,
"date_reception": "2023-11-07T05:31:56Z",
"events_count": 123
}
}
]
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}{
"error": "VALIDATION_ERROR",
"message": "<string>"
}Authorizations
API Key para autenticación. Debe proporcionarse en el header Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo 'Api-Key ' seguido de tu API key)
Query Parameters
ID de la entidad emisora o receptora cuyos documentos quieres consultar. Acepta el id opaco (eid_..., campo opaque_id de /master-entities?rut=) o el id entero.
"eid_NDgyMTM6c2lnbmF0dXJl"
issued (por defecto) o received. issued devuelve documentos donde la entidad es el emisor. received devuelve documentos donde la entidad es el receptor (cuando usas received, el parámetro search buscará en el nombre y RUT del emisor, y issuer_tax_id permite filtrar por RUT del emisor específico).
issued, received Folio exacto del documento. Si se envía, se ignoran otros filtros y se devuelve el documento específico.
Busca por nombre o RUT del receptor (cuando document_type=issued) o del emisor (cuando document_type=received).
Lista de códigos DTE separados por coma (ej: 33,34). Opcional: si no se envía, se devuelven todos los tipos según document_type (emitidos o recibidos).
RUT del emisor cuando document_type=received.
Fecha de emisión mínima (inclusive) en formato YYYY-MM-DD. Filtra documentos cuya fecha de emisión (date_issued) sea igual o posterior a esta fecha. Ejemplo: issue_date_gte=2026-01-01 devuelve documentos emitidos desde el 1 de enero de 2026 en adelante.
Fecha de emisión máxima (inclusive) en formato YYYY-MM-DD. Filtra documentos cuya fecha de emisión (date_issued) sea igual o anterior a esta fecha. Ejemplo: issue_date_lte=2026-01-31 devuelve documentos emitidos hasta el 31 de enero de 2026. Combínalo con issue_date_gte para definir un rango de fechas.
Fecha de recepción mínima (inclusive) en formato YYYY-MM-DD. Filtra documentos recibidos cuya fecha de recepción en el libro del SII sea igual o posterior a esta fecha. Solo aplica a documentos que están en el libro de compras del SII (document_type=received).
Fecha de recepción máxima (inclusive) en formato YYYY-MM-DD. Filtra documentos recibidos cuya fecha de recepción en el libro del SII sea igual o anterior a esta fecha. Solo aplica a documentos que están en el libro de compras del SII (document_type=received). Combínalo con reception_date_from para definir un rango.
Página actual, parte de la paginación estándar. Por defecto: 1. La respuesta incluye count (total), next, previous (URLs de navegación) y results (arreglo de documentos con información de emisor, receptor, montos, estado, PDF y referencias).
Tamaño de página (máx. 100). Por defecto: 20.
x <= 100Si es true, cada documento incluye el array completo traces con sus events (eventos de la traza del SII: ACD, ERM, RCD, etc.). Por defecto la lista solo trae el resumen liviano latest_trace_info para no inflar la respuesta. Úsalo solo cuando necesites trazabilidad detallada — el endpoint de detalle (GET /documents/{document_id}) ya retorna estos eventos siempre.
Si es true, cada documento incluye el objeto book_metadata con todos los datos del Registro de Compras y Ventas (RCV) del SII: montos según el libro (net_amount, vat_amount, total_amount, exempt_amount), IVA no recuperable/uso común/retenido, fechas de recepción y acuse, flags in_sii_compra_book/in_sii_venta_book y los períodos de carga compra_loading_period/venta_loading_period (YYYYMM). Es null si el documento aún no aparece en el RCV. Para reconstruir el libro de compras de un período usa document_type=received y filtra por in_sii_compra_book=true y compra_loading_period; para el libro de ventas usa document_type=issued con in_sii_venta_book=true y venta_loading_period (el período de carga del RCV puede diferir de la fecha de emisión en documentos de fin de mes).