Consultar un RUC: GET /ruc/{id}

Devuelve los datos del padrón reducido de SUNAT para un RUC. Cada consulta cuesta 1 crédito.

GET https://consultaruc-api.karvesol.com/ruc/{id}

Autenticación

Cabecera Authorization: Bearer <api_key>. Sin key válida la API responde 401.

Parámetro

NombreEnDescripción
idrutaRUC de 11 dígitos, solo números.

Respuesta 200

Un objeto JSON con estos campos:

CampoTipoDescripción
rucnúmeroEl RUC consultado.
razon_socialtexto o nullRazón social o nombre del contribuyente.
estadotexto o nullEstado del contribuyente según SUNAT (por ejemplo ACTIVO, BAJA DEFINITIVA, SUSPENSION TEMPORAL).
condiciontexto o nullCondición de domicilio según SUNAT (por ejemplo HABIDO, NO HABIDO).
direcciontexto o nullDomicilio fiscal.
ubigeotexto o nullCódigo de ubigeo de 6 dígitos.
distritotexto o nullDistrito del domicilio fiscal.
provinciatexto o nullProvincia del domicilio fiscal.
departamentotexto o nullDepartamento del domicilio fiscal.
es_agente_retencionbooleanotrue si el RUC figura como agente de retención del IGV.

Ten en cuenta:

  • Los datos se devuelven tal como los publica SUNAT. Algunos textos de estado y condicion vienen abreviados o truncados en la fuente (por ejemplo NO HALLADO SE MUDO D) y no se completan.
  • direccion, ubigeo, distrito, provincia y departamento solo vienen para RUC que empiezan con 20 (empresas). Para otros RUC son null, porque SUNAT no los publica.
  • Un campo sin dato llega como null.

Ejemplo (datos ficticios)

{
  "ruc": 20100000008,
  "razon_social": "EMPRESA DE EJEMPLO S.A.C.",
  "estado": "ACTIVO",
  "condicion": "HABIDO",
  "direccion": "AV. EJEMPLO 123",
  "ubigeo": "150101",
  "distrito": "LIMA",
  "provincia": "LIMA",
  "departamento": "LIMA",
  "es_agente_retencion": false
}

Códigos de estado

CódigoCuándoCuerpo
200El RUC existe.El JSON de arriba.
400El id no tiene 11 dígitos o no es numérico.{"error": "…"}
401Falta la key o no es válida.{"error": "no autorizado"}
404El RUC no está en el padrón.{"error": "RUC no encontrado"}
429Superaste el límite por minuto o la cuota del plan Free.{"error": "…"} y cabecera Retry-After
503El padrón no está disponible por un momento.{"error": "padrón no disponible"}

Más detalle, incluido qué consume créditos, en errores y límites.