SOAP · ¿Me avisan si cambia?
Vigilancia de RUT
Tus listas de RUT, verificadas contra cada publicación del SII, con las novedades —también las del Boletín Concursal— por API, correo o webhook. Los ejemplos de abajo son la petición y la respuesta real de cada operación, no una aproximación.
Lo que descuenta cada operación es lo mismo por REST, SOAP, GraphQL y MCP —pagas por el dato, no por el protocolo—; la tabla completa está en Empezar.
POST /soap/v1
LeerNovedades — Las novedades de tu cartera
Lo que el SII o el Boletín Concursal publicó sobre los RUT que vigilas, ya entregado: se lee las veces que quieras, por cualquier mecanismo. De la más antigua a la más nueva desde el cursor, con retenidas diciendo cuántas esperan a que tu cuenta tenga consultas.
Nunca descuenta: cada novedad ya se descontó al entregarse, y leerla no descuenta.
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tns="https://api.datario.cl/soap/v1">
<soapenv:Header/>
<soapenv:Body>
<tns:LeerNovedades>
<tns:limite>100</tns:limite>
</tns:LeerNovedades>
</soapenv:Body>
</soapenv:Envelope>
curl -s -i https://api.datario.cl/soap/v1 \
-H "Authorization: Bearer dtr_TU_KEY" \
-H "Content-Type: text/xml; charset=utf-8" \
--data-binary @peticion.xml
import requests
sobre = open("peticion.xml", "rb").read()
r = requests.post(
"https://api.datario.cl/soap/v1",
data=sobre,
headers={
"Authorization": "Bearer dtr_TU_KEY",
"Content-Type": "text/xml; charset=utf-8",
},
timeout=10,
)
if "<soap:Fault>" in r.text:
raise SystemExit(r.text) # faultstring dice qué pasó
print(r.text)
<?php
// SoapClient lee el WSDL y genera las operaciones solo.
$contexto = stream_context_create(["http" => [
"header" => "Authorization: Bearer dtr_TU_KEY",
]]);
$cliente = new SoapClient(
"https://api.datario.cl/soap/v1?wsdl",
["stream_context" => $contexto]
);
try {
$ficha = $cliente->LeerNovedades([
"rut" => "61.704.000-K",
]);
print_r($ficha);
} catch (SoapFault $f) {
echo $f->faultcode . ": " . $f->faultstring;
}
using var http = new HttpClient();
http.DefaultRequestHeaders.Add(
"Authorization", "Bearer dtr_TU_KEY");
var sobre = new StringContent(
File.ReadAllText("peticion.xml"),
Encoding.UTF8, "text/xml");
var r = await http.PostAsync(
"https://api.datario.cl/soap/v1", sobre);
var xml = await r.Content.ReadAsStringAsync();
if (xml.Contains("<soap:Fault>"))
throw new Exception(xml); // faultstring dice qué pasó
Console.WriteLine(xml);
var sobre = Path.of("peticion.xml");
var req = HttpRequest.newBuilder()
.uri(URI.create(
"https://api.datario.cl/soap/v1"))
.header("Authorization", "Bearer dtr_TU_KEY")
.header("Content-Type",
"text/xml; charset=utf-8")
.POST(BodyPublishers.ofFile(sobre))
.build();
var r = HttpClient.newHttpClient()
.send(req, BodyHandlers.ofString());
// 500 = fault: el faultstring dice qué pasó.
System.out.println(r.body());
Set Variable [ $accion ; Value:
"https://api.datario.cl/soap/v1/LeerNovedades" ]
Insert from URL [ Select ; With dialog: Off ; Target: $r ;
"https://api.datario.cl/soap/v1" ; cURL options:
"-X POST" &
" -H \"Authorization: Bearer dtr_TU_KEY\"" &
" -H \"Content-Type: text/xml\"" &
" -H \"SOAPAction: " & $accion & "\"" &
" -D @peticion.xml" ]
# 500 = fault: el faultstring dice qué pasó.
Show Custom Dialog [ $r ]
La respuesta
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<LeerNovedadesResponse xmlns="https://api.datario.cl/soap/v1">
<pagina>
<novedades/>
<hay_mas>false</hay_mas>
<retenidas>0</retenidas>
<fuente>Tus listas, cruzadas con el historial de cambios del padrón del SII</fuente>
<padron_publicado>2026-08-05T15:36:37+00:00</padron_publicado>
<consultado_en>2026-08-29T04:12:07+00:00</consultado_en>
</pagina>
</LeerNovedadesResponse>
</soap:Body>
</soap:Envelope>
Por SOAP se leen las novedades. Las listas —crear, agregar RUT, quitar— y el webhook se administran por REST: gestionar las listas y el webhook.
Probar en la consola Este producto por REST Este producto por GraphQL Este producto por MCP Qué es Vigilancia de RUT