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

# Autenticación

> Claves partner, claves de ingest de webhooks y JWT de sesión del panel

Clausum usa **autenticación Bearer**:

```bash theme={null}
Authorization: Bearer <your_key_or_token>
```

<Note>
  Las solicitudes Partner API usan el hostname de tu stage — sandbox `https://sandbox.clausum.ai`, producción `https://dashboard.clausum.ai`, o un host dedicado de tu equipo de cuenta. Consulta [Acceso y entornos](/es/concepts/access-and-environments).
</Note>

## Tres tipos de clave

Crea claves en **Panel de Control → Conexiones → Claves API** (claves de ingest en la pestaña **Entrada (webhooks)**).

| Necesitas… | Etiqueta del panel | Prefijo | Uso típico |
| - | - | - | - |
| Checkout en navegador | **Publishable** | `clm_pub_` | SDK, assess del lado cliente |
| Integración backend | **Secret** | `clm_sk_` | Assess, reportar fraude, payout |
| Canalizar eventos entrantes | **Webhook ingest** | `clm_wh_` | Solo `POST /api/webhooks/ingest` |

<CardGroup cols={3}>
  <Card title="Publishable" icon="globe">
    `clm_pub_*` — solo assess. Segura en el navegador.
  </Card>

  <Card title="Secret" icon="server">
    `clm_sk_*` — solo servidor. Nunca en clientes.
  </Card>

  <Card title="Ingest" icon="inbox">
    `clm_wh_*` — solo endpoint de ingest.
  </Card>
</CardGroup>

<Warning>
  Las claves se muestran **una sola vez** al crearlas. La revocación en Conexiones es inmediata.
</Warning>

## Usar una clave

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://dashboard.clausum.ai/api/v1/assess" \
    -H "Authorization: Bearer clm_sk_xxx" \
    -H "Content-Type: application/json" \
    -d '{ "amount": 10.00, "amount_unit": "major", "currency": "USD" }'
  ```

  ```ts Node.js theme={null}
  const res = await fetch(`${process.env.CLAUSUM_API_BASE}/api/v1/assess`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.CLAUSUM_SECRET_KEY}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ amount: 10.0, amount_unit: "major", currency: "USD" }),
  })
  ```
</CodeGroup>

<Tip>
  Usa el header `Authorization` — los parámetros `api_key` en query están deshabilitados en producción.
</Tip>

## Permisos (claves secret)

| Endpoint | Tipo de clave | Permiso |
| - | - | - |
| `POST /api/v1/assess` | Publishable o secret | `assess` |
| `POST /api/v1/assess/payout` | Solo secret | `assess` |
| `POST /api/v1/report-fraud` | Solo secret | `fraud:report` |
| `POST /api/v1/network/intelligence` | Solo secret | `network:contribute` o `fraud:report` |
| `GET /api/v1/network/intelligence` | Solo secret | `network:signals:read`, `network:contribute`, `fraud:report` o `assess` |
| `POST /api/webhooks/ingest` | Ingest (`clm_wh_`) | clave de ingest válida |
| `GET/POST /api/v1/merchant/*` | Secret | scopes por clave |

## Sesión del panel (no claves API)

Las rutas de gestión (`blocklists`, `cases`, `submerchants`, `network/membership`, …) usan un **JWT de Supabase** tras iniciar sesión — no claves partner.

## Errores

| Status | Significado |
| - | - |
| `401` | Clave ausente, inválida, deshabilitada o revocada |
| `403` | Tipo de clave incorrecto o permiso faltante |
| `429` | Límite de tasa excedido |

Consulta [Errores](/es/reference/errors) y [Claves API](/es/guides/api-keys).


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