Peru · pe_osce_penalidades_legacy_ruc
OpenAPI

Lookup osce · penalidades-legacy by RUC

GET https://api.latinfo.dev/pe/osce/penalidades-legacy/ruc/{ruc}

A historical contract penalty; source dates retain two-digit years. Coverage: Historical contract penalties for legal-entity RUCs retained from legacy publications. Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below. Historical coverage is not current compliance status; amounts use decimal commas in PEN. Returns all records as an array. Import time is not observation time; inspect freshness headers. Add limit (1–500) and offset to retrieve an explicit page; without them the complete original array is returned. X-Total-Count gives the exact row count; follow Link rel=next to retrieve all pages.

Contrato de la fuente

Publicador
OSCE / OECE, Peru
Cobertura
Historical contract penalties for legal-entity RUCs retained from legacy publications.
Qué representa un registro
A historical contract penalty; source dates retain two-digit years.
Identificador
Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below.
Patrón admitido
^(C\d{10}|L\d{10}|\d{11})$
Cantidad de registros
many
Licencia
No se ha verificado el permiso de reutilización. El acceso público no equivale a una licencia de reutilización.

Limitaciones conocidas

  • Historical coverage is not current compliance status; amounts use decimal commas in PEN.

Contrato de la fuente para agentes · Documentación de la fuente

Requiere autenticación. Las solicitudes REST usan una clave de api de Latinfo. La consola agrega el encabezado de autorización y no guarda la clave.

Parámetros

rucstringpathobligatorio

RUC in the source's normalized format. Keep identifiers as strings; preserve leading zeros.

Example: 20541511955
limitintegerquery

Optional page size. Supplying limit or offset enables explicit pagination; default page size is 100.

offsetintegerquery

Row offset, default 0. Keep the same source generation while collecting pages.

generationstringquery

Opaque source-generation guard, automatically included in the next-page Link. A changed generation returns 409; restart retrieval.

Ejemplo de solicitud

curl https://api.latinfo.dev/pe/osce/penalidades-legacy/ruc/20541511955 \
  -H "Authorization: Bearer $LATINFO_API_KEY"

Respuestas

200Published source records. Missing data is not a clearance or a negative finding.

Encabezados de la respuesta

X-Latinfo-Imported-At

Import time, not the date of the government observation.

X-Source-Updated-At

Publisher update time, when known.

X-Latest-Observation-At

Latest date in returned records, when known.

X-Freshness-Status

string

CURRENT · DELAYED · STALE · UNKNOWN
X-Credits-Cost

Actual credits charged for this request.

X-Source-Generation

Opaque immutable source generation. Follow the guarded next-page Link when collecting a history.

X-Total-Count

Exact row count for this identifier when pagination is requested.

X-Page-Offset

integer

X-Page-Limit

integer

Link

Next page URL, rel=next. Absent at the end.

Content-Type: application/json

Campos de la respuesta

[].ruc string obligatorio

Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below.

[].id_contrato string obligatorio

OSCE contract identifier.

[].tipo_penalidad string obligatorio

Published penalty category, including late delivery and other penalties.

[].objeto_contrato string obligatorio

Published contract subject/category.

[].entidad_contratante string obligatorio

Public buyer that applied the penalty; not the supplier name.

[].fecha_penalidad string obligatorio

Published fecha penalidad date. Format: DD/MM/YY.

[].descripcion string obligatorio

Published penalty reason.

[].monto string obligatorio

Published contractual penalty amount; decimal commas are retained. Unit: PEN.

PEN

Esquema de respuesta
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "ruc": {
        "type": "string",
        "description": "Lookup by ruc as a string, preserving leading zeros. Accepted syntax and normalization are defined by the contract below."
      },
      "id_contrato": {
        "type": "string",
        "description": "OSCE contract identifier.",
        "x-latinfo-meaning": "identifier"
      },
      "tipo_penalidad": {
        "type": "string",
        "description": "Published penalty category, including late delivery and other penalties.",
        "x-latinfo-meaning": "text"
      },
      "objeto_contrato": {
        "type": "string",
        "description": "Published contract subject/category.",
        "x-latinfo-meaning": "text"
      },
      "entidad_contratante": {
        "type": "string",
        "description": "Public buyer that applied the penalty; not the supplier name.",
        "x-latinfo-meaning": "text"
      },
      "fecha_penalidad": {
        "type": "string",
        "description": "Published fecha penalidad date. Format: DD/MM/YY.",
        "x-latinfo-meaning": "date"
      },
      "descripcion": {
        "type": "string",
        "description": "Published penalty reason.",
        "x-latinfo-meaning": "text"
      },
      "monto": {
        "type": "string",
        "description": "Published contractual penalty amount; decimal commas are retained. Unit: PEN.",
        "x-latinfo-meaning": "amount",
        "x-latinfo-unit": "PEN"
      }
    },
    "required": [
      "ruc",
      "id_contrato",
      "tipo_penalidad",
      "objeto_contrato",
      "entidad_contratante",
      "fecha_penalidad",
      "descripcion",
      "monto"
    ],
    "additionalProperties": false
  }
}
400Invalid identifier or query. Correct the input before retrying.
No se documentó un cuerpo de respuesta.
401Missing or invalid API key. Authenticate before retrying.
No se documentó un cuerpo de respuesta.
404No published record, or identifier outside the legal-entity scope. Not proof that the company does not exist.
No se documentó un cuerpo de respuesta.
409Source generation changed during paginated retrieval. Restart from offset 0.
No se documentó un cuerpo de respuesta.
429Rate or credit limit exceeded. Inspect the response and rate-limit headers before retrying.
No se documentó un cuerpo de respuesta.
503Source unavailable. Report unavailable, not an empty result.
No se documentó un cuerpo de respuesta.
Ejemplo JSON

Ejemplo ilustrativo del esquema. No es una respuesta en vivo.

[
  {
    "ruc": "string",
    "id_contrato": "string",
    "tipo_penalidad": "string",
    "objeto_contrato": "string",
    "entidad_contratante": "string",
    "fecha_penalidad": "string",
    "descripcion": "string",
    "monto": "string"
  }
]

Procedencia y limitaciones

La cobertura varía por país y fuente pública. Un campo ausente no demuestra que el hecho no exista. Los registros públicos pueden tener retrasos o errores; revisa la evidencia y la fecha de la fuente antes de usar un resultado.