> ## Documentation Index
> Fetch the complete documentation index at: https://docs-attestly.code4source.com/llms.txt
> Use this file to discover all available pages before exploring further.

# POST /v1/evaluate

> Ejecuta un ruleset y devuelve un verdict de compliance.

El endpoint principal de compliance. Envía una geometría (y/o un
identificador tipado) más un ruleset; recibe un verdict estructurado
con evidencias por check.

## Request

```json theme={null}
{
  "input": {
    "geometry": {
      "type": "Polygon",
      "coordinates": [[[-60,-3],[-60,-2],[-59,-2],[-59,-3],[-60,-3]]]
    },
    "scheme": { "type": "br:cnpj", "value": "00.000.000/0001-91" }
  },
  "ruleset_id": "br-bacen-cmn-5193-credito-rural@1"
}
```

| Campo            | Obligatorio | Notas                                                                  |
| ---------------- | ----------- | ---------------------------------------------------------------------- |
| `input.geometry` | sí¹         | GeoJSON Polygon, MultiPolygon o Point.                                 |
| `input.scheme`   | sí¹         | Identificador tipado `{type, value}` para checks de subject register.  |
| `input.crs`      | no          | CRS de origen (ej.: `EPSG:31983`). Default: `EPSG:4326`.               |
| `ruleset_id`     | sí²         | `name@version` para una versión fijada, o `name` para la más reciente. |
| `ruleset`        | sí²         | Ruleset inline.                                                        |

¹ Al menos uno entre `geometry` o `scheme` es obligatorio.
² Exactamente uno entre `ruleset_id` / `ruleset`.

## Response

```json theme={null}
{
  "data": {
    "ruleset_ref": "br-bacen-cmn-5193-credito-rural@1",
    "evaluated_at": "2026-05-05T12:34:56Z",
    "status":  "ok",
    "outcome": "non_compliant",
    "checks": [
      {
        "id": "no_indigenous_overlap",
        "severity": "critical",
        "triggered": true,
        "status": "ok",
        "evidence": [
          {
            "source_name": "funai_tis",
            "name": "Yanomami",
            "overlap_area_m2": 420314.5,
            "overlap_pct_input": 0.42
          }
        ],
        "total_matched": 3
      }
    ],
    "projections": []
  }
}
```

### Dos campos distintos

* **`status`** — salud de ejecución: `ok` si cada check corrió
  limpio, `degraded` si algún source o check no pudo evaluarse.
* **`outcome`** — resultado de compliance: `compliant`, `warning`,
  `non_compliant` o `degraded`.

Lees ambos. La respuesta puede tener `status: ok` con `outcome:
non_compliant` (evaluación limpia, política violada). Un `status:
degraded` es incompleto — trátalo con cautela y considera
reintentar.

Ver [Verdicts](/es/concepts/verdicts) para la semántica completa.

## Idempotencia

Envía `Idempotency-Key: <string-única>` para hacer la llamada
seguramente reintenable. La primera respuesta se replica para
claves iguales; las colisiones con bodies distintos se rechazan.

## Formatos de salida

* Default: JSON.
* `Accept: application/geo+json` — devuelve una FeatureCollection
  GeoJSON con las features de evidencia.
