---
title: "SUTRAN Infraction Record"
method: POST
path: "/pe/sutran/infracciones/v1"
tags: ["Peru", "SUTRAN"]
---

# SUTRAN Infraction Record

`POST /pe/sutran/infracciones/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/pe/sutran/infracciones/v1`
- Auth: HTTP bearer

Look up the infraction documents (papeletas and other actos) on record for a vehicle plate from SUTRAN (Superintendencia de Transporte Terrestre de Personas, Carga y Mercancías), Peru's national road-transport authority. `has_infractions: false` means the plate has no infractions on record. When infractions exist, `infractions` lists each one (document number, type, date, infraction code, classification).

Supports async delivery: set `Prefer: wait=N` for an inline result, pass `callback_url` to receive a POST when ready, or poll `GET /jobs/{id}`.

## Headers

- `Idempotency-Key` string
- `Prefer` string

## Request body

- object
  - `plate` string, required: The vehicle plate to look up (4-10 characters).
  - `callback_url` string, uri: POST the job result here when it finishes.

## Response `200`

Successful response

- SutranInfraccionesResponse
  - `data` SutranInfraccionesData, required
    - `found` boolean, required: Whether the source returned a definitive verdict for the plate.
    - `plate` string, required: Echoes the searched plate (trimmed, uppercased).
    - `has_infractions` boolean, required: True when the plate has at least one infraction on record.
    - `count` number, required: Number of infraction rows.
    - `message` string, nullable, required: The source's verdict line (present when the plate is clear).
    - `report_date` string, nullable, required: Report date (yyyy-mm-dd when parseable, else null).
    - `currency` string, required: ISO 4217 currency of `total` (Peruvian sol).
    - `total` number, required: Total amount payable across the infractions.
    - `infractions` object[], required: Infraction rows when present (empty when the plate is clear).
      - `document_number` string, required: "Número de documento" (e.g. the papeleta number).
      - `document_type` string, required: "Tipo de Documento" (e.g. "Papeletas Transito").
      - `document_date` string, nullable, required: "Fecha de Documento" (yyyy-mm-dd when parseable, else null).
      - `infraction_code` string, required: "Código de Infracción" (e.g. "M20").
      - `classification` string, required: "Clasificación" (e.g. "Muy Grave").

## Other responses

- `202`: Accepted — the result is being computed asynchronously. Poll `job.status_url` (GET /jobs/{id}) or supply `callback_url` to have the result POSTed to you. Returned when `Prefer: wait` elapses before completion, or immediately when `callback_url` is set.
- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error
- `502`: Upstream source returned an error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
