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.

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.


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étodoHeaderCuándo usarlo
API TokenAuthorization: Bearer <token>Uso frecuente, suscripción mensual
x402 pay-per-callPago automático via walletSin suscripción, pago por uso

Obtener tu token →


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ódigoSignificado
401Token inválido o no enviado
402Pago x402 requerido (sin token de suscripción)
422Parámetros de request inválidos
429Rate limit excedido