Guías

Ejemplos de código

Snippets completos para integrar FiscalBridge en Python, JavaScript, PHP y cURL — listos para copiar y pegar en tu proyecto. Cubre configuración inicial, autenticación, consultas, manejo de errores y retry con backoff exponencial.

Snippets completos en Python, JavaScript, PHP y cURL. Listos para copiar y pegar en tu proyecto. La pestaña de lenguaje activo se sincroniza con el resto del sitio: elige una vez y todos los bloques cambian.

Librerías recomendadas

LenguajeLibrería
Pythonrequests — cliente HTTP simple.
JavaScriptnode-fetch o axios.
PHPGuzzle o cURL nativo.
cURLjq para procesar JSON.

Configuración inicial

Importa las librerías necesarias y configura tu token.

Configuración
# Instalación
# pip install requests
 
import requests
 
API_BASE = "https://api.fiscalbridge.cl/api/v1"
API_TOKEN = "tu_token_aqui"
 
headers = {"X-API-Token": API_TOKEN}

Autenticación (login)

Obtén tokens JWT para usar la API desde un frontend.

Login
import requests
 
API_BASE = "https://api.fiscalbridge.cl/api/v1"
 
response = requests.post(
  f"{API_BASE}/auth/login",
  json={
      "email": "usuario@example.com",
      "password": "tu_contraseña",
  },
)
 
if response.status_code == 200:
  data = response.json()
  access_token = data["data"]["access_token"]
  refresh_token = data["data"]["refresh_token"]
  print(f"Access Token: {access_token}")
else:
  print(f"Error: {response.status_code}")

Consultar contribuyente

Ejemplo básico de consulta por RUT.

Consultar contribuyente
import requests
 
API_BASE = "https://api.fiscalbridge.cl/api/v1"
API_TOKEN = "tu_token_aqui"
 
headers = {"X-API-Token": API_TOKEN}
 
rut = "12345678-9"
response = requests.get(
  f"{API_BASE}/sii/contribuyente/{rut}",
  headers=headers,
)
 
if response.status_code == 200:
  data = response.json()
  if data["success"]:
      c = data["data"]
      print(f"RUT: {c['rut']}")
      print(f"Razón Social: {c['razon_social']}")
      print(f"Actividad: {c['actividad_economica']}")
else:
  print(f"Error {response.status_code}: {response.text}")

Manejo de errores

Captura y maneja los códigos de error HTTP que la API puede devolver.

Manejo de errores
import requests
from requests.exceptions import RequestException
 
API_BASE = "https://api.fiscalbridge.cl/api/v1"
API_TOKEN = "tu_token_aqui"
headers = {"X-API-Token": API_TOKEN}
 
try:
  response = requests.get(
      f"{API_BASE}/sii/contribuyente/12345678-9",
      headers=headers,
      timeout=10,
  )
  if response.status_code == 200:
      print("Consulta exitosa:", response.json()["data"])
  elif response.status_code == 401:
      print("Error: Token inválido o expirado")
  elif response.status_code == 403:
      print("Error: Cuenta bloqueada")
  elif response.status_code == 429:
      reset = response.headers.get("X-RateLimit-Reset")
      print(f"Rate limit excedido. Intenta de nuevo en: {reset}")
  else:
      print(f"Error {response.status_code}: {response.text}")
except RequestException as e:
  print(f"Error de conexión: {e}")

Retry con backoff exponencial

Cuando recibes un 429, espera y reintenta con tiempo de espera creciente (1s, 2s, 4s).

Retry exponencial
import time
import requests
 
API_BASE = "https://api.fiscalbridge.cl/api/v1"
API_TOKEN = "tu_token_aqui"
headers = {"X-API-Token": API_TOKEN}
 
def consultar_con_retry(rut, max_retries=3):
  for attempt in range(max_retries):
      response = requests.get(
          f"{API_BASE}/sii/contribuyente/{rut}",
          headers=headers,
          timeout=10,
      )
      if response.status_code == 200:
          return response.json()["data"]
      if response.status_code == 429:
          wait = 2 ** attempt  # 1s, 2s, 4s
          print(f"Rate limit alcanzado. Esperando {wait}s...")
          time.sleep(wait)
          continue
      print(f"Error {response.status_code}")
      return None
  print("Máximo de reintentos alcanzado")
  return None
 
resultado = consultar_con_retry("12345678-9")

Mejores prácticas

  • Cachea respuestas — si consultas el mismo RUT múltiples veces, guarda el resultado localmente para evitar consultas innecesarias.
  • Implementa retry con backoff — si recibes un 429, espera y reintenta con tiempo de espera creciente (1s, 2s, 4s).
  • Monitorea los headers X-RateLimit-* — léelos en cada respuesta para saber cuántas consultas te quedan.
  • Usa timeouts — configura timeouts de 10-15 segundos para evitar bloqueos indefinidos.
  • Nunca hardcodees tokens — usa variables de entorno, secrets managers o archivos de configuración seguros.

On this page