Documentación Root SpA
Root SpA ofrece APIs de infraestructura financiera para América Latina: datos tributarios confiables, sin dependencias externas, con latencia sub-10ms y disponibilidad 99.9%.
APIs disponibles
Honorarios Chile
Calcula retención, líquido a pagar y cotizaciones previsionales de boletas de honorarios en Chile. Tasas actualizadas 2025–2028 según Ley N°21.133.
- Base URL:
https://honorarios.rootspa.cl - Swagger UI:
https://honorarios.rootspa.cl/docs - Ver documentación →
TaxID LatAm
Valida RUTs, RFCs, CNPJs y 15 tipos más de identificadores tributarios con un solo endpoint. Cobertura completa de 18 países de América Latina.
- Base URL:
https://latam.rootspa.cl - Ver documentación →
Quickstart
Tu primera llamada — Honorarios Chile
Obtén tu token en /cuenta y envía tu primer cálculo:
curl -X POST https://honorarios.rootspa.cl/honorarios/calcular
-H "Authorization: Bearer <tu_token>"
-H "Content-Type: application/json"
-d '{"monto_bruto": 1000000, "anio": 2026}' Tu primera llamada — TaxID LatAm
curl -X POST https://latam.rootspa.cl/v1/validate
-H "Authorization: Bearer <tu_token>"
-H "Content-Type: application/json"
-d '{"id": "12.345.678-9", "country": "CL"}' Autenticación
Todas las APIs soportan dos métodos de autenticación:
| Método | Header | Cuándo usarlo |
|---|---|---|
| API Token | Authorization: Bearer <token> | Uso frecuente, suscripción mensual |
| x402 pay-per-call | Pago automático via wallet | Sin suscripción, pago por uso |
Pagos con x402
Los endpoints usan el protocolo HTTP x402 como alternativa a suscripción. Cada request requiere $0.001 USDC en la red Base (mainnet). Sin pago, el servidor retorna HTTP 402 con instrucciones en el header Payment-Required.
import { wrapFetchWithPayment } from "@x402/fetch";
import { createWalletClient, http } from "viem";
import { base } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount("0xTU_CLAVE_PRIVADA");
const walletClient = createWalletClient({ account, chain: base, transport: http() });
const fetch402 = wrapFetchWithPayment(fetch, walletClient);
const res = await fetch402("https://honorarios.rootspa.cl/honorarios/calcular", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ monto_bruto: 1000000, anio: 2026 })
}); Errores comunes
| Código | Significado |
|---|---|
401 | Token inválido o no enviado |
402 | Pago x402 requerido (sin token de suscripción) |
422 | Parámetros de request inválidos |
429 | Rate limit excedido |