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

# Suivi du parcours utilisateur

> Suivez et validez les événements de transaction utilisateur en séquence pour détecter un comportement hors ordre ou suspect.

L'API de parcours utilisateur suit les étapes critiques du flux de transaction d'un utilisateur via des points de contrôle définis. Elle valide que les événements attendus se produisent dans le bon ordre et signale un comportement suspect ou hors ordre en temps réel.

## Soumettre un événement

Soumettez un événement de parcours utilisateur pour une évaluation de fraude.

### Endpoint

```
POST /api/v1/journey/event/
```

### En-têtes

| En-tête          | Valeur                | Requis |
| ---------------- | --------------------- | ------ |
| `x-access-token` | Votre clé secrète API | Oui    |
| `Content-Type`   | `application/json`    | Oui    |

### Paramètres de corps

| Paramètre           | Type   | Requis | Description                                                                              |
| ------------------- | ------ | ------ | ---------------------------------------------------------------------------------------- |
| `user_id`           | string | Oui    | Identifiant unique de l'utilisateur                                                      |
| `session_id`        | string | Oui    | Identifiant de la session en cours                                                       |
| `event`             | string | Oui    | Type d'événement : `LOGIN`, `OTP_VERIFY`, `PAYMENT_INIT`, `PAYMENT_COMPLETE` ou `LOGOUT` |
| `timestamp`         | string | Oui    | Date-heure ISO-8601 de l'événement                                                       |
| `device_id`         | string | Non    | Identifiant de l'appareil                                                                |
| `ip_address`        | string | Non    | Adresse IP pendant l'événement                                                           |
| `metadata.amount`   | number | Non    | Montant de la transaction le cas échéant                                                 |
| `metadata.currency` | string | Non    | Code de devise                                                                           |

### 201 Created

```json theme={null}
{
  "status": "Success",
  "data": {
    "status": "allow",
    "risk_score": 0.12,
    "reason": "Normal login pattern",
    "session_state": "OTP_VERIFY",
    "alert_triggered": false
  },
  "message": "success"
}
```

***

## Obtenir l'état de la session

Récupérez l'état actuel et l'historique des événements d'une session.

### Endpoint

```
GET /api/v1/journey/session/{session_id}/
```

### Paramètres de chemin

| Paramètre    | Type   | Requis | Description                           |
| ------------ | ------ | ------ | ------------------------------------- |
| `session_id` | string | Oui    | Identifiant de la session à récupérer |

### 200 OK

```json theme={null}
{
  "status": "success",
  "data": {
    "session_id": "abc-123",
    "user_id": "user-456",
    "current_state": "PAYMENT_INIT",
    "events": [],
    "start_time": "2025-08-01T10:00:00Z"
  },
  "message": "success"
}
```

***

## Effacer la session

Supprimez toutes les données stockées pour une session.

### Endpoint

```
DELETE /api/v1/journey/session/{session_id}/
```

### Paramètres de chemin

| Paramètre    | Type   | Requis | Description                         |
| ------------ | ------ | ------ | ----------------------------------- |
| `session_id` | string | Oui    | Identifiant de la session à effacer |

### 204 No Content

```json theme={null}
{
  "message": "Session cleared"
}
```

***

## Analytique utilisateur

Récupérez les statistiques de fraude et de risque pour un utilisateur sur toutes les sessions.

### Endpoint

```
GET /api/v1/journey/analytics/user/{user_id}/
```

### Paramètres de chemin

| Paramètre | Type   | Requis | Description                  |
| --------- | ------ | ------ | ---------------------------- |
| `user_id` | string | Oui    | Identifiant de l'utilisateur |

### 200 OK

```json theme={null}
{
  "status": "success",
  "data": {
    "user_id": "user-456",
    "total_events": 42,
    "average_risk_score": 0.08,
    "blocked_events": 1,
    "reviewed_events": 3,
    "total_sessions": 10,
    "average_session_risk": 0.07
  },
  "message": "Success"
}
```

***

## Contrôle de santé

Vérifiez l'état de santé du service et le statut des dépendances.

### Endpoint

```
GET /api/v1/journey/health/
```

### 200 OK

```json theme={null}
{
  "status": "healthy",
  "broker": "connected",
  "database": "connected",
  "timestamp": "2025-08-01T10:00:00Z"
}
```

***

## Codes d'erreur

| Code  | Description                                                   |
| ----- | ------------------------------------------------------------- |
| `200` | Succès                                                        |
| `201` | Événement traité avec succès                                  |
| `400` | Champs manquants, malformés ou invalides                      |
| `401` | Échec de l'authentification ou clé API manquante              |
| `403` | Permissions insuffisantes pour cette ressource                |
| `404` | Ressource ou endpoint non trouvé                              |
| `429` | Limite de débit dépassée — réessayez après le délai d'attente |
| `500` | Erreur serveur inattendue                                     |


## OpenAPI

````yaml POST /api/v1/journey/event/
openapi: 3.0.3
info:
  title: Adhere API
  description: >-
    Identity verification, credit checks, transaction monitoring, and loan fraud
    detection across Africa.
  version: 3.0.0
servers:
  - url: https://adhere-api.smartcomply.com
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Nigeria KYC
  - name: Kenya KYC
  - name: Ghana KYC
  - name: Rwanda KYC
  - name: Uganda KYC
  - name: Document Verification
  - name: Biometrics
  - name: Individual Credit
  - name: Business Credit
  - name: Transaction Monitoring
  - name: Transaction Screening
  - name: Transaction KYC
  - name: Loan Fraud
  - name: User Journey
paths:
  /api/v1/journey/event/:
    post:
      tags:
        - User Journey
      summary: Submit Journey Event
      operationId: submitJourneyEvent
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - user_id
                - session_id
                - event
                - timestamp
              properties:
                user_id:
                  type: string
                session_id:
                  type: string
                event:
                  type: string
                  enum:
                    - LOGIN
                    - OTP_VERIFY
                    - PAYMENT_INIT
                    - PAYMENT_COMPLETE
                    - LOGOUT
                timestamp:
                  type: string
                  format: date-time
                device_id:
                  type: string
                ip_address:
                  type: string
                metadata:
                  type: object
                  properties:
                    amount:
                      type: number
                    currency:
                      type: string
      responses:
        '201':
          description: Event processed
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: failed
              data:
                type: array
                items: {}
              message:
                type: string
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                example: failed
              message:
                type: string
                example: Authentication credentials were not provided.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-access-token
      description: Your Adhere API secret key

````