Cómo consultar RUC SUNAT con Python y Requests
La validación de contribuyentes ante SUNAT es un requerimiento esencial para cualquier software de facturación electrónica, ERP o sistema de compras en el Perú. En esta guía veremos cómo realizar consultas automáticas con latencias mínimas.
Requisitos previos
- Python 3.9 o superior
- Biblioteca
requestsinstalada (pip install requests) - Un token de acceso generado desde tu panel de MLV APIs
Código de integración
A continuación se muestra un script simple y robusto con manejo de excepciones:
import requests
def consultar_ruc(numero_ruc: str, api_token: str) -> dict:
url = f"https://api.mlvapis.com/v1/ruc/{numero_ruc}"
headers = {
"Authorization": f"Bearer {api_token}",
"Content-Type": "application/json"
}
try:
response = requests.get(url, headers=headers, timeout=5)
response.raise_for_status()
return response.json()
except requests.exceptions.HTTPError as err:
print(f"Error HTTP: {err}")
return None
# Ejemplo de uso
if __name__ == "__main__":
token = "mlv_live_tu_token_aqui"
datos_ruc = consultar_ruc("20100070970", token)
print(datos_ruc)
Estructura de la respuesta JSON
La API responde con un objeto normalizado:
{
"ruc": "20100070970",
"razon_social": "SUPERMERCADOS PERUANOS SOCIEDAD ANONIMA",
"estado": "ACTIVO",
"condicion": "HABIDO",
"direccion": "CAL. MORELLI NRO. 181 INT. P-2",
"ubigeo": "150140"
}
Buenas prácticas
- Almacenar en caché local: Guarda los resultados de RUCs consultados recientemente para ahorrar consumo de cuota mensual.
- Validar antes de enviar: Asegúrate de que el RUC tenga exactamente 11 dígitos numéricos y empiece por 10, 15, 17 o 20 antes de invocar el endpoint.