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

# Audit Logs

> Logs d'audit immutables avec hash chain SHA-256, prêts pour la conformité SOC 2.

## Architecture

Les audit logs Finkare utilisent une **hash chain SHA-256** pour garantir l'immutabilité et la traçabilité de chaque opération sensible. Chaque entrée contient le hash de l'entrée précédente, formant une chaîne cryptographique inviolable.

```
Entry N: { data, hash: SHA-256(data + hash_N-1) }
Entry N+1: { data, hash: SHA-256(data + hash_N) }
```

Toute modification ou suppression d'une entrée invalide la chaîne et est immédiatement détectable.

## Événements audités

### Authentification

| Événement         | Description                                       |
| ----------------- | ------------------------------------------------- |
| `CLIENT_CREATED`  | Création d'une nouvelle clé API                   |
| `CLIENT_UPDATED`  | Mise à jour d'un client (rotation de clé, scopes) |
| `CLIENT_DISABLED` | Révocation d'une clé API                          |
| `AUTH_SUCCESS`    | Authentification réussie                          |
| `AUTH_FAILURE`    | Tentative d'authentification échouée              |
| `TOKEN_ISSUED`    | Token OAuth émis                                  |
| `TOKEN_REVOKED`   | Token OAuth révoqué                               |

### Actions métier

| Événement                    | Description                                                       |
| ---------------------------- | ----------------------------------------------------------------- |
| `INVOICE_CREATED`            | Facture importée                                                  |
| `INVOICE_CANCELLED`          | Recouvrement annulé                                               |
| `WORKFLOW_TRIGGERED`         | Action de workflow déclenchée (start, pause, resume, escalate)    |
| `PAYMENT_RECEIVED`           | Paiement enregistré                                               |
| `COMMUNICATION_SENT`         | Relance envoyée (email, SMS, LRAR, appel)                         |
| `ANTI_HARASSMENT_CORRECTION` | Correction appliquée par le moteur de validation anti-harcèlement |

### Administration

| Événement         | Description                  |
| ----------------- | ---------------------------- |
| `WEBHOOK_CREATED` | Webhook configuré            |
| `WEBHOOK_DELETED` | Webhook supprimé             |
| `SECRET_ROTATED`  | Secret de webhook régénéré   |
| `DATA_EXPORT`     | Export de données (RGPD)     |
| `DATA_DELETION`   | Effacement de données (RGPD) |

## Structure d'une entrée

```json theme={null}
{
  "id": "audit_a1b2c3d4",
  "type": "INVOICE_CREATED",
  "timestamp": "2026-04-08T10:00:00.000Z",
  "clientId": "fk_client_mgen_prod",
  "companyId": "company_abc123",
  "requestId": "req_xyz789",
  "outcome": "success",
  "metadata": {
    "invoiceId": "c3d4e5f6-a1b2-7890-cdef-1234567890ab",
    "invoiceNumber": "FAC-2026-042",
    "amountCents": 285000
  },
  "hash": "a7f3b2c1d4e5...sha256",
  "previousHash": "e5d4c3b2a1f0...sha256"
}
```

## Rétention

| Type de log                    | Durée de conservation | Justification                          |
| ------------------------------ | --------------------- | -------------------------------------- |
| Audit métier                   | 5 ans                 | Obligations légales (Code de commerce) |
| Audit sécurité                 | 3 ans                 | Conformité SOC 2                       |
| Corrections anti-harcèlement   | 5 ans                 | Preuve de conformité CPCE              |
| Logs techniques (requêtes API) | 12 mois               | Monitoring et debug                    |

## SOC 2 — Readiness

L'architecture des audit logs Finkare est conçue pour la conformité SOC 2 Type II :

| Critère SOC 2                       | Implémentation                                       |
| ----------------------------------- | ---------------------------------------------------- |
| **CC6.1** — Accès logique           | Authentification API Key / OAuth, scopes granulaires |
| **CC6.2** — Restrictions d'accès    | IP whitelist, rate limiting, CORS restrictif         |
| **CC7.2** — Monitoring              | Audit logs immutables, hash chain SHA-256            |
| **CC7.3** — Réponse aux incidents   | Alerting automatique, rotation de secrets            |
| **CC8.1** — Gestion des changements | Versioning API, changelog public                     |

## Intégrité de la chaîne

La vérification de l'intégrité de la hash chain peut être effectuée par un auditeur externe :

```typescript theme={null}
// Pseudo-code de vérification
function verifyChain(entries: AuditEntry[]): boolean {
  for (let i = 1; i < entries.length; i++) {
    const expectedHash = sha256(
      JSON.stringify(entries[i].data) + entries[i - 1].hash
    );
    if (entries[i].hash !== expectedHash) {
      console.error(`Chaîne brisée à l'entrée ${i}`);
      return false;
    }
  }
  return true;
}
```

## Export pour audit

Les audit logs peuvent être exportés en format JSON ou CSV pour audit externe. Contactez [hello@finkare.io](mailto:hello@finkare.io) pour organiser un accès auditeur dédié.
