curl --request GET \
--url https://api.pruff.com/api/clients/syncronizations \
--header 'x-api-key: <api-key>'import requests
url = "https://api.pruff.com/api/clients/syncronizations"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.pruff.com/api/clients/syncronizations', 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.pruff.com/api/clients/syncronizations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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.pruff.com/api/clients/syncronizations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<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.pruff.com/api/clients/syncronizations")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pruff.com/api/clients/syncronizations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"syncronizations": [
{
"scrapingId": "Documentos SII",
"businessIdentifier": "11111111-1",
"date": "2026-01-19T13:09:36.340Z",
"userName": "Ana Pérez",
"businessName": "Cliente Ejemplo SpA",
"isUpdated": true,
"lastScrapedAt": "2026-01-19T13:09:37.489Z"
}
]
}Listar últimas sincronizaciones
Lista las sincronizaciones que se pidieron para los clientes de tu empresa, ya sea desde la plataforma o con el endpoint de ejecutar sincronización. Por cada una indica quién la pidió, cuándo, y si los datos del cliente ya se actualizaron (isUpdated).
Por defecto devuelve las sincronizaciones desde un día antes de la hora actual hasta un día después. Para consultar otro rango envía startDate y endDate juntos, con startDate no posterior a endDate; si envías solo uno, la solicitud responde 400.
Solo aparecen sincronizaciones de clientes de tu cartera que estén activos. Los registros vienen ordenados desde la más reciente y la respuesta no está paginada.
Para saber si una sincronización terminó, revisa isUpdated. Para el SII es true cuando las facturas de venta y las cesiones del cliente se actualizaron después de la solicitud (las facturas de compra y el IVA no se consideran). Para la TGR, compara lastScrapedAt con date en lugar de usar isUpdated.
Una lista vacía significa que no hay sincronizaciones en el rango. Si Pruff no logra leer el historial de sincronizaciones, responde 503 en vez de una lista vacía: reintenta más tarde.
curl --request GET \
--url https://api.pruff.com/api/clients/syncronizations \
--header 'x-api-key: <api-key>'import requests
url = "https://api.pruff.com/api/clients/syncronizations"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.pruff.com/api/clients/syncronizations', 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.pruff.com/api/clients/syncronizations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <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.pruff.com/api/clients/syncronizations"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<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.pruff.com/api/clients/syncronizations")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pruff.com/api/clients/syncronizations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"syncronizations": [
{
"scrapingId": "Documentos SII",
"businessIdentifier": "11111111-1",
"date": "2026-01-19T13:09:36.340Z",
"userName": "Ana Pérez",
"businessName": "Cliente Ejemplo SpA",
"isUpdated": true,
"lastScrapedAt": "2026-01-19T13:09:37.489Z"
}
]
}Parámetros de consulta
Inicio del rango, en UTC y en formato ISO 8601: YYYY-MM-DD o YYYY-MM-DDTHH:mm:ssZ (por ejemplo 2026-01-16 o 2026-01-16T00:00:00Z). Otros formatos, como January 16, 2026 o una marca de tiempo en milisegundos, responden 400. Debes enviarlo junto con endDate y no puede ser posterior a él.