---
title: "Callao Traffic Tickets"
method: POST
path: "/pe/callao/papeletas/v1"
tags: ["Peru", "Municipalidad Provincial del Callao"]
---

# Callao Traffic Tickets

`POST /pe/callao/papeletas/v1`

## Request

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

List the outstanding traffic tickets (papeletas) registered against a vehicle plate in the province of Callao, issued by the Municipalidad Provincial del Callao. `has_papeletas: false` means the plate has no outstanding tickets on record. When tickets exist, `papeletas` lists each one (code, ticket number, infraction date, amount, installment) and `total` is the sum of the outstanding amounts in PEN.

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

- CallaoPapeletasResponse
  - `data` CallaoPapeletasData, required
    - `found` boolean, required: Whether the source returned a definitive verdict for the plate.
    - `plate` string, required: Echoes the searched plate (trimmed, uppercased).
    - `has_papeletas` boolean, required: True when the plate has at least one outstanding ticket.
    - `count` number, required: Number of outstanding tickets.
    - `currency` string, required: Currency of the amounts (PEN).
    - `total` number, required: Sum of the outstanding amounts.
    - `papeletas` object[], required: Outstanding tickets (empty when the plate is clear).
      - `plate` string, required: Vehicle plate the ticket is registered against.
      - `code` string, required: Infraction code (e.g. "M20").
      - `ticket_number` string, required: Ticket number (N° Papeleta).
      - `infraction_date` string, nullable, required: Infraction date (yyyy-mm-dd when parseable).
      - `amount` number, required: Outstanding amount in PEN.
      - `installment` number, required: Installment number (N° Cuota).
      - `ticket_id` string, nullable, required: The source's internal ticket id, when present.

## 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)
