Cómo probar la API
Problema común: "Failed to fetch"
Si ves este error al probar la API desde la documentación del navegador, es completamente normal. El problema se debe a las políticas CORS (Cross-Origin Resource Sharing) del navegador, no a un error en la API.
Soluciones recomendadas
1. Postman (Más fácil)
- Descarga Postman: https://www.postman.com/downloads/
- Importa la API:
- Abre Postman
- Clic en "Import"
- Pega esta URL:
https://aldored.com/openapi.json - ¡Listo! Todos los endpoints aparecerán automáticamente
- Configura tu token:
- Ve a la pestaña "Authorization"
- Selecciona "Bearer Token"
- Pega tu API key
2. cURL (Terminal)
Copia y pega estos comandos en tu terminal:
BTE Emitidas
curl -X POST "https://api.aldored.com/sii/bte/emitidas/documentos/12345678-9/202501" \
-H "Authorization: Bearer TU_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}'
BHE Recibidas
curl -X POST "https://api.aldored.com/sii/bhe/recibidas/documentos/12345678-9/202501" \
-H "Authorization: Bearer TU_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}'
RCV Informe Previo
curl -X POST "https://api.aldored.com/sii/rcv/informe-previo/12" \
-H "Authorization: Bearer TU_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}' \
--output informe.zip
F22 Declaración de Renta
curl -X POST "https://api.aldored.com/sii/f22/2025" \
-H "Authorization: Bearer TU_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}'
3. Desde tu código
JavaScript/Node.js
const response = await fetch(
"https://api.aldored.com/sii/bte/emitidas/documentos/12345678-9/202501",
{
method: "POST",
headers: {
Authorization: "Bearer TU_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
auth: {
pass: {
rut: "12345678-9",
clave: "tu_clave_sii",
},
},
}),
},
);
const data = await response.json();
console.log(data);
Python
import requests
url = "https://api.aldored.com/sii/bte/emitidas/documentos/12345678-9/202501"
headers = {
"Authorization": "Bearer TU_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
PHP
<?php
$url = "https://api.aldored.com/sii/bte/emitidas/documentos/12345678-9/202501";
$headers = [
"Authorization: Bearer TU_API_TOKEN",
"Content-Type: application/json"
];
$data = json_encode([
"auth" => [
"pass" => [
"rut" => "12345678-9",
"clave" => "tu_clave_sii"
]
]
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
SII F22 · Declaración de Renta
Endpoint: POST /sii/f22/{year}
Consulta el estado de la Declaración de Renta (Formulario 22) de un contribuyente para el año tributario indicado. Inicia sesión en el SII, selecciona el período y extrae folio, estado, situación tributaria y observaciones.
Respuesta en caso de éxito
{
"success": true,
"data": {
"periodo": 2024,
"fechaSistema": "2026",
"contribuyente": {
"rut": "77710636-8",
"razonSocial": "EMPRESA EJEMPLO S.A."
},
"declaracion": {
"folio": 316644584,
"estado": "Aceptada",
"estadoCodigo": "ACE",
"fechaPresentacion": "11/04/2024",
"impugnada": false,
"situacionTributaria": {
"tipo": "calzado",
"monto": 0
},
"observaciones": [
{ "codigo": "F135", "glosa": "Texto de la observación…" }
]
}
}
}
Valores posibles:
| Campo | Valores |
|---|---|
estado | Recibida | Aceptada | Aceptada con observaciones | Rechazada |
estadoCodigo | ENV | ACE | ODT | RCH |
situacionTributaria.tipo | "devolucion" | "a_pagar" | "calzado" |
situacionTributaria.monto | Entero en CLP; 0 si calzado |
Casos especiales:
- Sin declaración para el período →
declaracion: null+motivo.codigo: "SIN_DECLARACION" - RUT no encontrado →
contribuyente: null+motivo.codigo: "CONTRIBUYENTE_NO_ENCONTRADO" - Período no disponible →
motivo.codigo: "PERIODO_FUTURO"
Ejemplos de código
JavaScript/Node.js
const response = await fetch("https://api.aldored.com/sii/f22/2025", {
method: "POST",
headers: {
Authorization: "Bearer TU_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
auth: {
pass: {
rut: "12345678-9",
clave: "tu_clave_sii",
},
},
}),
});
const data = await response.json();
console.log(data);
Python
import requests
url = "https://api.aldored.com/sii/f22/2025"
headers = {
"Authorization": "Bearer TU_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
PHP
<?php
$url = "https://api.aldored.com/sii/f22/2025";
$headers = [
"Authorization: Bearer TU_API_TOKEN",
"Content-Type: application/json"
];
$data = json_encode([
"auth" => [
"pass" => [
"rut" => "12345678-9",
"clave" => "tu_clave_sii"
]
]
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
SII F22 · Declaración de Renta
Endpoint: POST /sii/f22/{year}
Consulta el estado de la Declaración de Renta (Formulario 22) de un contribuyente para el año tributario indicado. Inicia sesión en el SII, selecciona el período y extrae folio, estado, situación tributaria y observaciones.
Respuesta en caso de éxito
{
"success": true,
"data": {
"periodo": 2024,
"fechaSistema": "2026",
"contribuyente": {
"rut": "77710636-8",
"razonSocial": "EMPRESA EJEMPLO S.A."
},
"declaracion": {
"folio": 316644584,
"estado": "Aceptada",
"estadoCodigo": "ACE",
"fechaPresentacion": "11/04/2024",
"impugnada": false,
"situacionTributaria": {
"tipo": "calzado",
"monto": 0
},
"observaciones": [
{ "codigo": "F135", "glosa": "Texto de la observación…" }
]
}
}
}
Valores posibles:
| Campo | Valores |
|---|---|
estado | Recibida | Aceptada | Aceptada con observaciones | Rechazada |
estadoCodigo | ENV | ACE | ODT | RCH |
situacionTributaria.tipo | "devolucion" | "a_pagar" | "calzado" |
situacionTributaria.monto | Entero en CLP; 0 si calzado |
Casos especiales:
- Sin declaración para el período →
declaracion: null+motivo.codigo: "SIN_DECLARACION" - RUT no encontrado →
contribuyente: null+motivo.codigo: "CONTRIBUYENTE_NO_ENCONTRADO" - Período no disponible →
motivo.codigo: "PERIODO_FUTURO"
Ejemplos de código
cURL
curl -X POST "https://api.aldored.com/sii/f22/2025" \
-H "Authorization: Bearer TU_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}'
JavaScript/Node.js
const response = await fetch("https://api.aldored.com/sii/f22/2025", {
method: "POST",
headers: {
Authorization: "Bearer TU_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
auth: {
pass: {
rut: "12345678-9",
clave: "tu_clave_sii",
},
},
}),
});
const data = await response.json();
console.log(data);
Python
import requests
url = "https://api.aldored.com/sii/f22/2025"
headers = {
"Authorization": "Bearer TU_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
PHP
<?php
$url = "https://api.aldored.com/sii/f22/2025";
$headers = [
"Authorization: Bearer TU_API_TOKEN",
"Content-Type: application/json"
];
$data = json_encode([
"auth" => [
"pass" => [
"rut" => "12345678-9",
"clave" => "tu_clave_sii"
]
]
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
Configuración de autenticación
Bearer Token
Todos los endpoints requieren un token de autorización:
Authorization: Bearer tu_api_token_aqui
Credenciales SII
La mayoría de endpoints también requieren tus credenciales del SII en el body:
{
"auth": {
"pass": {
"rut": "12345678-9",
"clave": "tu_clave_sii"
}
}
}
¿Necesitas ayuda?
Si sigues teniendo problemas:
- Verifica tu API token: Asegúrate de que está activo en tu plan
- Revisa el rate-limit: Cada plan tiene límites por minuto
- Valida el formato: RUT debe incluir guión y dígito verificador
- Contacta soporte: aldo@aldored.com
Códigos de respuesta
200- Éxito400- Error en parámetros401- Token inválido403- Credenciales SII incorrectas429- Rate limit excedido
Recuerda: El error "Failed to fetch" en el navegador NO significa que la API esté rota. Es una limitación del navegador, no de nuestro servicio.