{"openapi":"3.1.0","info":{"title":"LDX Consultas API — sunat-ruc","description":"API de consulta de LDX Software: un solo gateway, un solo token y un mismo\nformato de respuesta para todos los servicios del catálogo. Cada servicio\ndeclara sus parámetros y sus campos en su propio documento OpenAPI.\n\n**Autenticación.** Toda petición lleva `Authorization: Bearer ldx_live_...`.\nCrea tu token en el portal; se muestra una sola vez.\n\n**Prueba gratis.** Al registrarte tienes 3 días y 300 consultas. Después el\nacceso se bloquea con un `402` hasta que habilitemos tu cuenta.\n\n**Volumen.** Hasta 25 ítems por lote síncrono; para más, usa\n`POST /v1/batch/jobs` y recoge los resultados por webhook o por sondeo.\n\n**Origen de los datos.** Provienen de los sistemas de consulta pública de\nterceros y pertenecen a esas fuentes, no a LDX Software. LDX Software no\nmantiene relación oficial con ninguna de ellas, no las representa y no\ngarantiza la exactitud, la vigencia ni la disponibilidad de la información que\npublican.","version":"1.0.0"},"servers":[{"url":"https://ldxsoftware.com.pe"}],"paths":{"/consultas/v1/me":{"get":{"tags":["consultas"],"summary":"Mi Cuenta","operationId":"mi_cuenta_consultas_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mi Cuenta Consultas V1 Me Get"}}}}}}},"/consultas/v1/sunat-ruc/consulta":{"get":{"tags":["consultas"],"summary":"Consultar un servicio","description":"Consulta puntual de los servicios que no son de rastreo (identidad, vehículos, logística). Los parámetros y la forma de `datos` los declara cada servicio en su documento OpenAPI.","operationId":"consulta_consultas_v1__sunat-ruc__consulta_get","parameters":[{"name":"ruc","in":"query","required":true,"description":"Registro Único de Contribuyentes: 11 dígitos. El gateway comprueba el dígito verificador antes de consultar, así que un RUC mal tecleado se rechaza con un 400 y no consume cuota.","example":"20614790530","schema":{"type":"string","pattern":"^[0-9]{11}$"}},{"name":"raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Raw"}}],"responses":{"200":{"description":"El dato consultado, o `encontrado: false` si la fuente no lo tiene.","content":{"application/json":{"schema":{"type":"object","title":"Consulta de sunat-ruc","properties":{"ok":{"type":"boolean","description":"`true` cuando la consulta se resolvió. Que la fuente no tenga el dato NO es un fallo: eso se mira en `encontrado`.","example":true},"request_id":{"type":"string","description":"Identificador de esta petición, el mismo que viaja en la cabecera `X-Request-Id`. Cítalo al reportar una incidencia.","example":"req_9505"},"servicio":{"type":"string","enum":["sunat-ruc"],"description":"Servicio consultado.","example":"sunat-ruc"},"operacion":{"type":"string","enum":["consulta"],"description":"Operación del servicio que resolvió esta petición. Un servicio puede publicar varias —shalom publica rastreo, agencias y cotización— y cada una devuelve un `datos` distinto, así que es esto y no `servicio` lo que dice qué forma tiene.","example":"consulta"},"encontrado":{"type":"boolean","description":"La fuente tiene el dato. Cuando es `false`, `datos` viene en `null` y la consulta se cobra igual: se llegó a la fuente y respondió que no existe.","example":true},"consultado":{"type":"object","title":"Consultado en sunat-ruc","description":"Los parámetros que se consultaron de verdad, ya normalizados por el gateway. Útil para casar la respuesta con la petición cuando se lanzan varias en paralelo.","properties":{"ruc":{"type":"string","description":"Registro Único de Contribuyentes: 11 dígitos. El gateway comprueba el dígito verificador antes de consultar, así que un RUC mal tecleado se rechaza con un 400 y no consume cuota.","example":"20614790530"}},"required":["ruc"],"example":{"ruc":"20614790530"}},"datos":{"type":["object","null"],"title":"Datos de sunat-ruc","description":"Lo que publica la fuente. Las claves son siempre estas y solo estas: lo que la fuente no devuelva viaja en `null`. Es `null` entero cuando `encontrado` es `false`.","properties":{"razon_social":{"type":["string","null"],"description":"Razón social del contribuyente. En los RUC que empiezan por 10 (persona natural con negocio) es el nombre completo de la persona.","example":"LDX SOFTWARE E.I.R.L."},"direccion":{"type":["string","null"],"description":"Domicilio fiscal del establecimiento, tal como lo arma SUNAT. Los RUC de persona natural suelen no traerlo.","example":"CAL. VISTA ALEGRE - Nro: 183 - ASENTAMIENTO HUMANO EL CARMEN - COMAS"},"departamento":{"type":["string","null"],"description":"Departamento del domicilio fiscal.","example":"LIMA"},"provincia":{"type":["string","null"],"description":"Provincia del domicilio fiscal.","example":"LIMA"},"distrito":{"type":["string","null"],"description":"Distrito del domicilio fiscal.","example":"COMAS"},"ubigeo":{"type":["string","null"],"description":"Ubigeo INEI de 6 dígitos del domicilio fiscal, armado con los tres códigos que SUNAT devuelve por separado (departamento, provincia y distrito). Viaja en null cuando el RUC no tiene domicilio registrado.","example":"150110"}},"required":["razon_social","direccion","departamento","provincia","distrito","ubigeo"],"example":{"razon_social":"LDX SOFTWARE E.I.R.L.","direccion":"CAL. VISTA ALEGRE - Nro: 183 - ASENTAMIENTO HUMANO EL CARMEN - COMAS","departamento":"LIMA","provincia":"LIMA","distrito":"COMAS","ubigeo":"150110"}},"cached":{"type":"boolean","description":"La respuesta se sirvió de nuestra caché en vez de consultar a la fuente. Se cobra igual.","example":false},"raw":{"type":["object","null"],"description":"La respuesta cruda de la fuente, SOLO si pides `?raw=true`. Su forma la decide la fuente y puede cambiar sin aviso: no es parte del contrato.","additionalProperties":true}},"required":["ok","request_id","servicio","operacion","encontrado","consultado","datos","cached","raw"]}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Token de API con formato `ldx_live_...`. Se obtiene en https://ldxsoftware.com.pe/apis/cuenta y se envía como `Authorization: Bearer <token>`."}}},"security":[{"bearerAuth":[]}]}