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

# Outcome de assess y bucle de feedback

> Cierra el bucle antifraude tras capture, chargebacks y fraude confirmado con POST /api/v1/assess/outcome

Tras **`POST /api/v1/assess`** conoces la decisión **pre-capture**. Los resultados reales llegan después: pago capturado, chargeback perdido, fraude confirmado o falso positivo. Repórtalos para que Clausum actualice blocklists, historial del pagador y allowlists de release opcionales.

## Cuándo llamar

| Outcome | Trigger típico |
| - | - |
| `captured` | Pago liquidado con éxito |
| `chargeback_lost` | Disputa cerrada en tu contra |
| `chargeback_won` | Disputa ganada |
| `fraud_confirmed` | Confirmaste fraude (ops / expediente) |
| `false_positive` | Cliente legítimo bloqueado incorrectamente |
| `refunded` / `failed` | Reembolso o fallo duro |

**Solo servidor** — autentica con **`clm_sk_*`** (permiso `assess`). No llames desde el SDK de navegador.

## Solicitud

```http theme={null}
POST /api/v1/assess/outcome
Authorization: Bearer clm_sk_xxx
Content-Type: application/json
Idempotency-Key: outcome-ps_abc-chargeback_lost

{
  "session_id": "ps_1716998400000_abc",
  "outcome": "chargeback_lost",
  "provider": "stripe",
  "provider_dispute_id": "dp_1Nxyz",
  "reason": "Issuer chargeback 10.4"
}
```

`session_id` es el mismo valor que guardaste como **`clausum_session_id`** en metadata del PSP.

## Respuesta

```json theme={null}
{
  "outcome_id": "uuid",
  "session_id": "ps_1716998400000_abc",
  "outcome": "chargeback_lost",
  "feedback_applied": true,
  "feedback": { "blocklist": true },
  "idempotent_replay": false
}
```

Los outcomes negativos (`chargeback_lost`, `fraud_confirmed`) pueden agregar entradas de blocklist e incrementar contadores de disputa del pagador. Las resoluciones positivas (`chargeback_won`, `false_positive`) pueden agregar allowlist temporal de release.

## Webhook saliente

Suscríbete a **`assess.outcome_applied`** en **Conexiones → Empezar → Webhooks salientes**. El payload incluye `session_id`, `outcome`, `outcome_id`, `feedback_applied`, y opcionalmente `provider` / `provider_dispute_id`.

Stripe **`charge.dispute.closed`** puede alimentar el bucle automáticamente cuando el metadata del cargo incluye `clausum_session_id`.

## Panel

**Protección** muestra una franja compacta **Bucle de feedback** (ℹ️ para métricas). Conecta tu backend primero — la tarjeta refleja outcomes reportados en los últimos 30 días.

## Relacionado

* [SDK de navegador v1.3](/es/guides/browser-sdk) — `getHandoffPayload`, `getSessionId`
* [Eventos webhook](/es/concepts/webhook-events) — catálogo outbound completo
* [Webhooks Stripe](/es/guides/stripe-webhooks) — disputas inbound


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.