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

# API de détection de fraude

> Planifiez et exécutez en une seule requête des contrôles d'identité, de risque de contact, d'enrichissement et de réseau avec Didit.

Soumettez les identifiants saisis et les attributs d'identité déclarés, sélectionnez les vérifications à exécuter, et examinez chaque résultat séparément.
Commencez par consulter [Planifier une vérification de fraude](https://docs.didit.me/fr/standalone-apis/fraud-check-plan.md) pour vérifier les données requises et les frais estimés.

## Choisir un profil

Fixez `profile_version` afin que les valeurs par défaut sélectionnées et la politique de décision soient explicites.
Le profil par défaut est `standard`, version `2026-08-27`.
La version `2026-09-14` ajoute l'enrichissement social facultatif par e-mail et par téléphone, et enregistre chaque vérification terminée comme une session native de Vérification des utilisateurs.
Dans cette version, les options payantes doivent être activées explicitement.
La version `2026-09-14.1` active également les recherches d'identifiants dans le réseau mondial de détection de fraude pour les organisations du forfait Enterprise qui partagent leurs données à l'échelle mondiale.
La version `2026-09-14.2` ajoute une vérification facultative de correspondance entre le selfie et le CPF pour le Brésil.
Les versions antérieures conservent leur comportement d'origine.

Les profils actuels prennent en charge le risque lié à l'e-mail, le risque lié au téléphone, le risque lié à l'IP, la validation en base de données lorsqu'elle est éligible, et l'historique réseau privé de votre application.
La liaison d'identité fondée sur le selfie exige la version `2026-09-14.2`. La sélectionner dans les versions antérieures renvoie `not_available_in_profile_version`.

## Identité déclarée et contexte

Indiquez l'e-mail, le téléphone et les identifiants gouvernementaux dans `subject.identifiers`.
Les identifiants gouvernementaux exigent leur pays de délivrance ; un émetteur peut également être nécessaire lorsque les numéros ne sont uniques qu'au sein d'une région.
Indiquez les noms, la date de naissance, la nationalité et l'adresse dans `subject.attributes`.
Ce sont des éléments déclarés à comparer lorsqu'une source sélectionnée les prend en charge, et non des faits vérifiés du seul fait de leur soumission.

Utilisez `context` pour l'adresse IP de la tentative, le user agent, la finalité, le pays et toute attestation de consentement requise.
Cela sépare les informations sur la tentative de vérification de celles sur la personne.
Pour les contrôles biométriques pris en charge, fournissez `subject.selfie` au format JPEG, PNG ou WebP encodé en base64, jusqu'à 6 Mo.
Une URI de données d'image correspondante est également acceptée.
N'envoyez ni image de référence, ni URL distante, ni clé de stockage.

## Selfie et identifiant déclaré

Sélectionnez `biometric_identity`, soumettez un identifiant `tax_number` brésilien et un selfie, puis confirmez `context.consent_obtained`.
La vérification de référence vérifie si ce selfie appartient au titulaire du CPF déclaré.
Un consentement absent renvoie `consent_required`, et les pays non pris en charge renvoient `unsupported_region`.
Le module a un prix par vérification, fondé sur le tarif de validation en base de données de votre organisation ; consultez le forfait avant de l'exécuter.

Lorsque la référence répond, `identity_relationship.result` vaut `match`, `mismatch` ou `inconclusive`.
Une réponse non concluante exige un examen et n'est jamais traitée comme une non-correspondance.
Le résultat établit uniquement le lien entre le selfie et le CPF.
Il ne valide pas un nom ou une date de naissance soumis, ne fournit pas de preuve de détection du vivant, et ne recherche pas de visage sur Internet ni dans le réseau mondial de détection de fraude.
Les noms et la date de naissance restent des éléments déclarés, sauf si une autre source sélectionnée fournit une preuve pour ces champs.
Les délais d'attente dépassés et les erreurs de source sont des résultats indisponibles et ne sont pas facturés.
Les réponses non concluantes obtenues sont facturées au même tarif que les vérifications de référence.
Le selfie n'est ni inclus dans le résultat ni stocké comme média de session par cette vérification.

## Sélectionner les vérifications

`checks.include` sélectionne les modules, et `checks.exclude` est prioritaire.
Une liste `include` explicitement vide désactive toutes les opérations facultatives ; la normalisation s'exécute toujours.
Si `include` est omis, les valeurs par défaut du profil épinglé sont utilisées.
Les enrichissements sociaux par e-mail et par téléphone sont sélectionnés séparément avec `email_social` et `phone_social`.
Ils exigent un identifiant valide et correspondant, et n'envoient pas d'OTP.

```json theme={null}
{
  "profile_version": "2026-09-14.1",
  "client_reference": "review-attempt-001",
  "subject": {
    "identifiers": [
      { "type": "email", "value": "applicant@example.com" }
    ],
    "attributes": { "first_name": "Alex", "last_name": "Example" }
  },
  "checks": { "include": ["networks_same_org", "networks_cross_org", "email_risk"] }
}
```

## Lire les résultats sans les confondre

Chaque module indique son statut d'exécution, sa raison et ses unités facturables.
`not_requested`, `excluded_by_caller`, `missing_required_input` et `source_unavailable` décrivent des issues différentes.
Une source manquante n'est ni une non-correspondance d'identité ni un résultat de risque nul.

`attribute_evidence` décrit les preuves au niveau des champs, tandis que `risk` sépare les dimensions d'identité, de contact, d'appareil, comportementale et de réseau de fraude.
Un e-mail, un appareil ou un autre identifiant partagé est une connexion observée, et non une preuve que deux comptes appartiennent à la même personne ou qu'une fraude a été commise.
`recommendation` est la recommandation de la vérification ; elle ne modifie pas le statut d'un autre enregistrement.
Les résultats de l'enrichissement social apparaissent sous `enrichment`, les résultats indisponibles étant distincts des résultats terminés.

## Réseau mondial de fraude

Sélectionnez `networks_cross_org` pour interroger les identifiants d'e-mail et de téléphone pris en charge, ainsi que les identifiants de document correctement qualifiés et dotés d'un espace de noms, dans le réseau partagé.
La recherche nécessite le forfait Enterprise et que le mode de partage de votre organisation soit défini sur `global`.
Sans ces conditions, le forfait signale le module avec `available: false` et `availability_reason: "entitlement_required"`, et un contrôle qui le sélectionne l'ignore avec le statut `skipped` et la raison `entitlement_required`.
La même raison s'applique lorsque Networks n'est pas activé pour votre organisation.
Les applications sandbox ne sont pas soumises au forfait ni au mode de partage : avec un identifiant pris en charge, le module s'exécute et renvoie un résultat d'exemple vide.
La recherche utilise le budget de lecture existant de l'organisation et enregistre un audit de la lecture.
Elle n'entraîne aucun frais par recherche.
La planification d'un contrôle n'interroge pas l'index partagé et ne consomme pas son budget de lecture.

`network.cross_organization` contient `signals_checked` et les `insights` agrégés divulgués lorsque le contrôle se termine.
Chaque information contient le type de signal, les classes de résultat, le nombre de contributeurs, la tranche de récence et, uniquement si la divulgation est activée, les catégories sectorielles.
Il n'identifie jamais une autre organisation, un autre compte, une personne ou une autre vérification.
Les résultats situés sous le seuil de divulgation sont omis ; une liste vide ne prouve pas l'absence d'antécédents de fraude.
Un signal partagé divulgué déclenche une recommandation d'examen, jamais un rejet automatique ni une correspondance d'identité.

Une recherche indisponible indique sa raison séparément d'une recherche terminée sans résultat.
Si votre organisation perd plus tard l'accès inter-organisations, par exemple après un changement de forfait ou lorsque le partage n'est plus `global`, la récupération des résultats, les nouvelles tentatives et les détails de session masquent les agrégats partagés et les éléments de preuve de risque qui en découlent.
La recommandation initiale reste une décision historique ; les lectures ne modifient pas le statut de la vérification.

## Sessions, nouvelles tentatives et facturation

`check_id` permet de récupérer le résultat stocké via [Récupérer un contrôle de fraude](https://docs.didit.me/fr/standalone-apis/fraud-check-result.md).
Lorsqu'il est présent, `request_id` identifie sa session de vérification native.
Les versions `2026-09-14`, `2026-09-14.1` et `2026-09-14.2` créent toujours cette session, y compris lorsque seul l'historique du réseau privé est sélectionné.

Réutiliser `client_reference` avec le même corps de requête renvoie le résultat initial sans nouvelle exécution ni nouveau frais tant que ce contrôle existe.
Un corps différent avec la même référence renvoie `409`.
Si l'exécution est encore en cours, relancez la même requête après l'intervalle indiqué dans l'en-tête `Retry-After` de la réponse.
La suppression de la vérification associée supprime également le résultat du contrôle de fraude ; la récupération renvoie alors `404`.
Un contrôle supprimé pendant son exécution ne peut pas publier un résultat finalisé.

Les tarifs proviennent des tarifs prépayés ou contractuels actuels de votre organisation.
Les modules indisponibles et ignorés ne sont pas facturés, et l'historique du réseau privé n'entraîne aucun frais par contrôle.
Les contrôles sandbox utilisent des réponses d'exemple, sans appels payants aux fournisseurs ni frais.


## OpenAPI

````yaml fr/openapi-25.json POST /v3/fraud/checks/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/fraud/checks/:
    post:
      tags:
        - Fraud Check
      summary: Exécuter un contrôle de fraude
      description: >-
        Soumettez un ou plusieurs identifiants typés et recevez en une seule
        réponse une normalisation, un enrichissement récent, une validation
        faisant autorité lorsque le pays et le type d'identifiant sont couverts,
        des dimensions de risque indépendantes et une recommandation.


        Ces profils prennent en charge les vérifications d'identifiants. La
        liaison d'identité basée sur un selfie (`biometric_identity`) requiert
        la version de profil `2026-09-14.2` et un CPF brésilien ; elle ne
        s'exécute qu'avec le consentement de l'utilisateur et lorsque votre
        organisation y a droit. Les versions antérieures la signalent comme
        `not_available_in_profile_version`. Les modules ne pouvant pas
        s'exécuter sont signalés comme ignorés avec une raison déterministe ;
        une source n'ayant pas pu répondre n'est jamais signalée comme une
        non-concordance d'identité.
      operationId: create_fraud_check
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
          application/json:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
            example:
              client_reference: review-attempt-001
              subject:
                identifiers:
                  - type: email
                    value: applicant@example.com
                attributes:
                  first_name: Alex
                  last_name: Example
              checks:
                include:
                  - networks_same_org
                  - networks_cross_org
                  - email_risk
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FraudCheckRequestRequest'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudCheckResponse'
          description: ''
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudClientCredentialsErrorMessage'
          description: ''
        '403':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/FraudClientCredentialsForbiddenErrorMessage
          description: ''
        '409':
          description: >-
            Conflit, renvoyé sans facturation : la valeur `client_reference` a
            déjà été utilisée avec un corps de requête différent ; un contrôle
            avec la même valeur `client_reference` est toujours en cours
            d'exécution (réessayez après `Retry-After` secondes avec la même
            référence) ; ou la vérification à laquelle ce contrôle est associé a
            été supprimée avant la fin du contrôle.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                required:
                  - error
              examples:
                different_body:
                  summary: Référence réutilisée avec un corps de requête différent
                  value:
                    error: >-
                      client_reference has already been used with a different
                      request body.
                still_running:
                  summary: >-
                    Une vérification portant cette référence est toujours en
                    cours d'exécution
                  value:
                    error: >-
                      A check with this client_reference is already running.
                      Retry with the same reference later.
                verification_deleted:
                  summary: La vérification a été supprimée avant la fin du contrôle
                  value:
                    error: This verification was deleted before the check completed.
          headers:
            Retry-After:
              description: >-
                Secondes à attendre avant de réessayer, envoyées lorsqu'une
                vérification avec le même `client_reference` est toujours en
                cours.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
        - BearerAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.fraud_checks.create(
                client_reference="review-attempt-001",
                subject={
                    "identifiers": [{
                        "type": "email",
                        "value": "applicant@example.com",
                    }],
                    "attributes": {
                        "first_name": "Alex",
                        "last_name": "Example",
                    },
                },
                checks={
                    "include": ["networks_same_org", "networks_cross_org", "email_risk"],
                },
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.fraudChecks.create({
              client_reference: "review-attempt-001",
              subject: {
                identifiers: [{
                  type: "email",
                  value: "applicant@example.com",
                }],
                attributes: {
                  first_name: "Alex",
                  last_name: "Example",
                },
              },
              checks: {
                include: ["networks_same_org", "networks_cross_org", "email_risk"],
              },
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.FraudChecks.Create(ctx, didit.FraudCheckRequestRequest{\n\tClientReference: didit.String(\"review-attempt-001\"),\n\tSubject: didit.FraudCheckSubjectRequest{\n\t\tIdentifiers: []didit.FraudCheckIdentifierRequest{{\n\t\t\tType:  didit.FraudTypeEnum(\"email\"),\n\t\t\tValue: \"applicant@example.com\",\n\t\t}},\n\t\tAttributes: didit.Some(didit.FraudCheckAttributesRequest{\n\t\t\tFirstName: didit.String(\"Alex\"),\n\t\t\tLastName:  didit.String(\"Example\"),\n\t\t}),\n\t},\n\tChecks: didit.Some(didit.FraudCheckModuleSelectionRequest{\n\t\tInclude: didit.Some([]didit.FraudExcludeEnum{didit.FraudExcludeEnum(\"networks_same_org\"), didit.FraudExcludeEnum(\"networks_cross_org\"), didit.FraudExcludeEnum(\"email_risk\")}),\n\t}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.FraudCheckAttributesRequest;

            import me.didit.types.FraudCheckIdentifierRequest;

            import me.didit.types.FraudCheckModuleSelectionRequest;

            import me.didit.types.FraudCheckRequestRequest;

            import me.didit.types.FraudCheckSubjectRequest;

            import me.didit.types.FraudExcludeEnum;

            import me.didit.types.FraudTypeEnum;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.fraudChecks().create(FraudCheckRequestRequest.builder()
                    .clientReference("review-attempt-001")
                    .subject(FraudCheckSubjectRequest.builder()
                            .identifiers(List.of(FraudCheckIdentifierRequest.builder()
                                    .type(FraudTypeEnum.of("email"))
                                    .value("applicant@example.com")
                                    .build()))
                            .attributes(FraudCheckAttributesRequest.builder()
                                    .firstName("Alex")
                                    .lastName("Example")
                                    .build())
                            .build())
                    .checks(FraudCheckModuleSelectionRequest.builder()
                            .include(List.of(FraudExcludeEnum.of("networks_same_org"), FraudExcludeEnum.of("networks_cross_org"), FraudExcludeEnum.of("email_risk")))
                            .build())
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->fraudChecks->create([
                'client_reference' => 'review-attempt-001',
                'subject' => [
                    'identifiers' => [[
                        'type' => 'email',
                        'value' => 'applicant@example.com',
                    ]],
                    'attributes' => [
                        'first_name' => 'Alex',
                        'last_name' => 'Example',
                    ],
                ],
                'checks' => [
                    'include' => ['networks_same_org', 'networks_cross_org', 'email_risk'],
                ],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.fraud_checks.create(
              client_reference: "review-attempt-001",
              subject: {
                identifiers: [{
                  type: "email",
                  value: "applicant@example.com",
                }],
                attributes: {
                  first_name: "Alex",
                  last_name: "Example",
                },
              },
              checks: {
                include: ["networks_same_org", "networks_cross_org", "email_risk"],
              }
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.FraudChecks.CreateAsync(new
            FraudCheckRequestRequest

            {
                ClientReference = "review-attempt-001",
                Subject = new()
                {
                    Identifiers = new FraudCheckIdentifierRequest[]
                    {
                        new()
                        {
                            Type = "email",
                            Value = "applicant@example.com",
                        },
                    },
                    Attributes = new FraudCheckAttributesRequest
                    {
                        FirstName = "Alex",
                        LastName = "Example",
                    },
                },
                Checks = new FraudCheckModuleSelectionRequest
                {
                    Include = new FraudExcludeEnum[] { "networks_same_org", "networks_cross_org", "email_risk" },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    FraudCheckRequestRequest:
      type: object
      properties:
        client_reference:
          type: string
          minLength: 1
          description: >-
            Votre propre référence pour cette vérification. Fait également
            office de clé d'idempotence : la réutiliser avec le même corps de
            requête renvoie la vérification d'origine sans réexécuter ni
            refacturer les modules ; la réutiliser avec un corps différent
            renvoie une erreur 409.
          maxLength: 255
        profile:
          type: string
          minLength: 1
          default: standard
          description: >-
            ID du profil d'orchestration. Le profil `standard` de Didit est
            utilisé par défaut.
          maxLength: 64
        profile_version:
          type: string
          minLength: 1
          description: >-
            Épingler une version de profil gelée. Correspond par défaut à la
            version actuelle du profil.
          maxLength: 32
        subject:
          $ref: '#/components/schemas/FraudCheckSubjectRequest'
        context:
          $ref: '#/components/schemas/FraudCheckContextRequest'
        checks:
          $ref: '#/components/schemas/FraudCheckModuleSelectionRequest'
        vendor_data:
          type: string
          maxLength: 1000
        metadata: {}
      required:
        - subject
    FraudCheckResponse:
      type: object
      properties:
        check_id:
          type: string
          format: uuid
        request_id:
          type: string
          format: uuid
          description: Session de vérification native créée pour cette vérification.
        client_reference:
          type: string
          nullable: true
        processing_status:
          $ref: '#/components/schemas/FraudProcessingStatusEnum'
        profile_id:
          type: string
        profile_version:
          type: string
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
          nullable: true
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckInput'
        modules:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckModuleReport'
        attribute_evidence:
          type: array
          items:
            type: object
            additionalProperties: {}
        compound_evidence:
          type: array
          items:
            type: object
            additionalProperties: {}
        risk:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckRisk'
        network:
          type: object
          additionalProperties: {}
        enrichment:
          type: object
          additionalProperties: {}
        identity_relationship:
          allOf:
            - $ref: '#/components/schemas/FraudCheckIdentityRelationship'
          nullable: true
        recommendation:
          $ref: '#/components/schemas/FraudRecommendationEnum'
        next_action:
          $ref: '#/components/schemas/FraudNextActionEnum'
        decision_reasons:
          type: array
          items:
            type: string
        coverage:
          type: object
          additionalProperties: {}
        usage:
          type: array
          items:
            type: object
            additionalProperties: {}
        vendor_data:
          type: string
          nullable: true
        metadata:
          nullable: true
      required:
        - attribute_evidence
        - check_id
        - client_reference
        - completed_at
        - compound_evidence
        - coverage
        - created_at
        - decision_reasons
        - inputs
        - modules
        - network
        - next_action
        - processing_status
        - profile_id
        - profile_version
        - recommendation
        - risk
        - usage
    FraudClientCredentialsErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: 'Authentication failed: Invalid client access token.'
    FraudClientCredentialsForbiddenErrorMessage:
      type: object
      properties:
        detail:
          type: string
          default: Forbidden - User doesn't have permission
    FraudCheckSubjectRequest:
      type: object
      properties:
        selfie:
          type: string
          minLength: 1
          description: >-
            Selfie au format JPEG, PNG ou WebP en Base64, jusqu'à 6 Mo. Aucune
            image de référence ni URL.
          maxLength: 8388672
        identifiers:
          type: array
          items:
            $ref: '#/components/schemas/FraudCheckIdentifierRequest'
          description: Un ou plusieurs identifiants typés. Un seul suffit.
          maxItems: 10
          minItems: 1
        attributes:
          $ref: '#/components/schemas/FraudCheckAttributesRequest'
      required:
        - identifiers
    FraudCheckContextRequest:
      type: object
      properties:
        ip_address:
          type: string
          minLength: 1
        user_agent:
          type: string
          maxLength: 512
        country:
          type: string
          description: >-
            Pays dans lequel la personne déclare se trouver. Purement contextuel
            - ne constitue jamais une preuve de propriété de l'identité.
          maxLength: 3
        purpose:
          type: string
          maxLength: 128
        consent_obtained:
          type: boolean
    FraudCheckModuleSelectionRequest:
      type: object
      properties:
        include:
          type: array
          items:
            $ref: '#/components/schemas/FraudExcludeEnum'
        exclude:
          type: array
          items:
            $ref: '#/components/schemas/FraudExcludeEnum'
    FraudProcessingStatusEnum:
      enum:
        - pending
        - running
        - completed
        - failed
      type: string
      description: |-
        * `pending` - En attente
        * `running` - En cours d'exécution
        * `completed` - Terminé
        * `failed` - Échoué
    FraudCheckInput:
      type: object
      properties:
        reference:
          type: string
          description: Identifiant masqué pour l'identifiant transmis.
        type:
          $ref: '#/components/schemas/FraudTypeEnum'
        namespace:
          type: object
          additionalProperties: {}
        quality:
          type: string
        normalization:
          type: object
          additionalProperties: {}
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
      required:
        - availability
        - namespace
        - normalization
        - quality
        - reference
        - type
    FraudCheckModuleReport:
      type: object
      properties:
        module:
          $ref: '#/components/schemas/FraudExcludeEnum'
        status:
          $ref: '#/components/schemas/FraudStatusEnum'
        reason:
          type: string
          nullable: true
        latency_ms:
          type: integer
        freshness:
          type: string
          nullable: true
        billable_units:
          type: integer
      required:
        - billable_units
        - freshness
        - latency_ms
        - module
        - reason
        - status
    FraudCheckRisk:
      type: object
      properties:
        dimension:
          $ref: '#/components/schemas/FraudDimensionEnum'
        score:
          type: integer
          nullable: true
        band:
          $ref: '#/components/schemas/FraudBandEnum'
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
        requested_but_unavailable:
          type: boolean
          description: >-
            Vrai lorsque la requête a fourni tout ce dont cette dimension avait
            besoin et que la plateforme n'a tout de même pas pu y répondre. Une
            telle vérification n'est jamais recommandée pour approbation sur la
            seule base des dimensions ayant répondu.
        reason_codes:
          type: array
          items:
            type: string
        evidence_indexes:
          type: array
          items:
            type: integer
      required:
        - availability
        - band
        - dimension
        - evidence_indexes
        - reason_codes
        - requested_but_unavailable
        - score
    FraudCheckIdentityRelationship:
      type: object
      properties:
        result:
          $ref: '#/components/schemas/FraudResultEnum'
        reference_type:
          type: string
        country:
          type: string
        availability:
          $ref: '#/components/schemas/FraudAvailabilityEnum'
        reason_codes:
          type: array
          items:
            type: string
      required:
        - availability
        - country
        - reason_codes
        - reference_type
        - result
    FraudRecommendationEnum:
      enum:
        - approve
        - review
        - reject
      type: string
      description: |-
        * `approve` - Approuver
        * `review` - Examiner
        * `reject` - Rejeter
    FraudNextActionEnum:
      enum:
        - none
        - manual_review
        - step_up
        - resubmit_capture
      type: string
      description: |-
        * `none` - Aucun
        * `manual_review` - Examen manuel
        * `step_up` - Vérification renforcée
        * `resubmit_capture` - Resoumettre la capture
    FraudCheckIdentifierRequest:
      type: object
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/FraudTypeEnum'
          description: |-
            Type d'identifiant. Détermine quels champs de namespace sont requis.

            * `email` - Email
            * `phone` - Téléphone
            * `national_id` - Identifiant national
            * `tax_number` - Numéro fiscal
            * `passport_number` - Numéro de passeport
            * `driving_licence_number` - Numéro de permis de conduire
            * `residence_permit_number` - Numéro de titre de séjour
            * `voter_id` - Carte d'électeur
            * `external_id` - Identifiant externe
        value:
          type: string
          minLength: 1
          description: La valeur de l'identifiant, dans tout format habituel.
          maxLength: 255
        country:
          type: string
          description: >-
            Pays de délivrance ISO-3166 alpha-2 ou alpha-3. Requis pour les
            types d'identifiants gouvernementaux : les mêmes chiffres
            correspondent à des personnes différentes selon les pays.
          maxLength: 3
        issuer:
          type: string
          description: >-
            Autorité de délivrance ou émetteur infranational optionnel, lorsque
            le pays seul n'est pas unique.
          maxLength: 128
      required:
        - type
        - value
    FraudCheckAttributesRequest:
      type: object
      description: >-
        Attributs corroborants. Tous optionnels ; ils élargissent la couverture
        des modules.
      properties:
        first_name:
          type: string
          maxLength: 128
        last_name:
          type: string
          maxLength: 128
        full_name:
          type: string
          maxLength: 256
        date_of_birth:
          type: string
          format: date
        nationality:
          type: string
          maxLength: 3
        gender:
          type: string
          maxLength: 16
        address:
          type: string
          maxLength: 512
        city:
          type: string
          maxLength: 128
        state:
          type: string
          maxLength: 128
        postal_code:
          type: string
          maxLength: 32
    FraudExcludeEnum:
      enum:
        - normalization
        - email_risk
        - email_social
        - phone_social
        - phone_risk
        - ip_risk
        - database_validation
        - networks_same_org
        - networks_cross_org
        - biometric_identity
      type: string
      description: |-
        * `normalization` - Normalisation
        * `email_risk` - Risque lié à l'e-mail
        * `email_social` - Réseaux sociaux de l'e-mail
        * `phone_social` - Réseaux sociaux du téléphone
        * `phone_risk` - Risque lié au téléphone
        * `ip_risk` - Risque lié à l'IP
        * `database_validation` - Validation en base de données
        * `networks_same_org` - Réseaux au sein de la même organisation
        * `networks_cross_org` - Réseaux inter-organisations
        * `biometric_identity` - Identité biométrique
    FraudTypeEnum:
      enum:
        - email
        - phone
        - national_id
        - tax_number
        - passport_number
        - driving_licence_number
        - residence_permit_number
        - voter_id
        - external_id
      type: string
      description: |-
        * `email` - E-mail
        * `phone` - Téléphone
        * `national_id` - Identifiant national
        * `tax_number` - Identifiant fiscal
        * `passport_number` - Numéro de passeport
        * `driving_licence_number` - Numéro de permis de conduire
        * `residence_permit_number` - Numéro de titre de séjour
        * `voter_id` - Identifiant d'électeur
        * `external_id` - Identifiant externe
    FraudAvailabilityEnum:
      enum:
        - available
        - not_requested
        - no_reference
        - insufficient_history
        - unsupported_region
        - source_unavailable
      type: string
      description: |-
        * `available` - Disponible
        * `not_requested` - Non demandé
        * `no_reference` - Aucune référence
        * `insufficient_history` - Historique insuffisant
        * `unsupported_region` - Région non prise en charge
        * `source_unavailable` - Source indisponible
    FraudStatusEnum:
      enum:
        - planned
        - completed
        - skipped
        - failed
      type: string
      description: |-
        * `planned` - Planifié
        * `completed` - Terminé
        * `skipped` - Ignoré
        * `failed` - Échoué
    FraudDimensionEnum:
      enum:
        - identity
        - contact
        - device_network
        - behavioral
        - fraud_network
      type: string
      description: |-
        * `identity` - Identité
        * `contact` - Contact
        * `device_network` - Réseau de l'appareil
        * `behavioral` - Comportemental
        * `fraud_network` - Réseau de fraude
    FraudBandEnum:
      enum:
        - low
        - medium
        - high
        - unknown
      type: string
      description: |-
        * `low` - Faible
        * `medium` - Moyen
        * `high` - Élevé
        * `unknown` - Inconnu
    FraudResultEnum:
      enum:
        - match
        - mismatch
        - inconclusive
        - no_reference
      type: string
      description: |-
        * `match` - Correspondance
        * `mismatch` - Non-correspondance
        * `inconclusive` - Non concluant
        * `no_reference` - Aucune référence
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.
    BearerAuth:
      type: http
      scheme: bearer
      description: Le token d'accès client-credentials de l'application.

````

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