Vérifier vos clients en 3 minutes

idantitem vérifie l'identité de vos clients en quelques secondes. Cette documentation vous montre comment intégrer la vérification dans votre site, votre boutique en ligne, ou directement par API.

Pour les outils IA — un index machine-lisible est exposé à /llms.txt et la référence complète à /llms-full.txt (format llmstxt.org).

1. Obtenir une clé API

  1. Créez un compte (500 vérifs/mois offertes, sans CB).
  2. Dans le dashboard, ouvrez votre projet → Clés API.
  3. Générez une clé pk_live_… (publishable, pour le navigateur) et une clé sk_live_… (secrète, pour votre serveur).

2. Choisir un mode d'intégration

Trois façons, par ordre de simplicité :

  • Lien hébergé — vous partagez une URL, on s'occupe de tout.
  • Plugin WooCommerce — installation en 2 clics dans votre admin.
  • API REST — pour les intégrations sur mesure.

Lien hébergé — le plus simple

Pour les marchands qui n'ont pas d'équipe dev, partagez ce type de lien :

https://idantitem.com/w?pk=pk_live_xxx&country=HTI&ruleset=ecommerce_signup

Le client clique, fait sa vérif, vous voyez le résultat dans votre dashboard. Pas une ligne de code.

Paramètres URL

  • pk — clé publishable (obligatoire)
  • rulesetecommerce_signup, mobile_money, bank_onboarding
  • country — ISO-3 (HTI / CAN / FRA / USA / DOM)
  • docpassport / national_id / permis
  • langfr / ht / en
  • primary / bg — couleurs du widget en hexadécimal (voir section suivante)

Couleurs du widget

Par défaut le widget utilise notre palette (boutons verts, fond blanc). Vous pouvez choisir vos propres couleurs.

Méthode recommandée : depuis votre dashboard, ouvrez le projet, section Apparence du widget, choisissez la couleur principale (boutons + étapes actives) et la couleur de fond. Un aperçu en direct vous montre le rendu. Le widget récupère ces couleurs automatiquement à chaque ouverture, peu importe le mode d'intégration (lien hébergé, plugin, JS, iframe).

Override ponctuel : pour tester une palette sans l'enregistrer, ajoutez les paramètres primary et bg au lien hébergé. Le # doit être URL-encodé en %23 :

https://idantitem.com/w?pk=pk_live_xxx&primary=%23ff5722&bg=%23ffffff

La couleur du texte sur les boutons est calculée automatiquement (noir ou blanc selon la luminance) pour garder un bon contraste.

Format accepté — hexadécimal #rrggbb (6 caractères). Les noms CSS et les notations rgb() ne sont pas reconnus, le widget retombe alors sur les valeurs par défaut.

WordPress

Le plugin idantitem Verify marche sur n'importe quel site WordPress, pas seulement les boutiques. Trois manières de poser la vérification : un shortcode à coller où vous voulez, un gate qui bloque du contenu réservé, ou un bloc Gutenberg. Plus des hooks pour WooCommerce, Contact Form 7 et Gravity Forms quand ces plugins sont présents.

Installation (~2 minutes)

  1. Télécharger le plugin (ZIP)
  2. WP admin → Extensions → Ajouter → Téléverser une extension → choisir le ZIP → Activer
  3. Réglages → idantitem Verify → coller la clé publishable pk_… et la clé secrète sk_… (générées dans le dashboard idantitem)
  4. Optionnel : coller le webhook secret et copier l'URL /wp-json/idantitem/v1/webhook dans le dashboard idantitem (synchronisation reverse)
Validité d'une vérification — par défaut une identité validée reste valide 90 jours sur ce site. Configurable dans la page Réglages (0 = sans expiration).

Shortcode [idantitem_verify]

Affiche un bouton Démarrer la vérification partout où WordPress accepte du contenu (page, article, widget, gabarit de thème via do_shortcode()).

[idantitem_verify]

[idantitem_verify ruleset="bank_onboarding"
                  country="HTI"
                  label="Vérifier mon identité"
                  on_done="/welcome"]

Attributs (tous facultatifs) :

  • ruleset — surcharge le ruleset configuré globalement (ecommerce_signup, mobile_money, bank_onboarding).
  • country — code ISO-3 pré-sélectionné (HTI, CAN, FRA, USA, DOM).
  • label — texte du bouton.
  • on_done — URL vers laquelle rediriger après succès (utile pour un parcours guidé).

Gate de contenu [idantitem_required]

Emballez du contenu pour qu'il ne soit visible qu'aux visiteurs ayant complété leur vérification :

[idantitem_required message="Cette section est réservée aux profils vérifiés."]
<h3>Documents privés</h3>
<p>Lien vers le PDF, code de réduction, contact direct…</p>
[/idantitem_required]

Le gate utilise deux backends de stockage :

  • Utilisateurs connectés — la vérif est stockée dans user_meta, donc valide entre toutes les sessions et tous les appareils du même compte.
  • Visiteurs non connectés — un cookie idantitem_session_token de 30 jours est posé, lié à un transient WP. Le gate reste fermé même après une fermeture du navigateur.

Bloc Gutenberg

Dans l'éditeur, + → Recherche « idantitem Verify » et glissez le bloc. Mêmes attributs que le shortcode (configurables dans la barre latérale du bloc). Aucun JavaScript à compiler — le rendu est server-side.

Helper PHP pour les développeurs de thèmes / plugins

// dans n'importe quel fichier PHP du thème ou d'un autre plugin
if ( idantitem_user_is_verified() ) {
    // L'utilisateur courant est vérifié — afficher du contenu réservé,
    // autoriser un téléchargement, débloquer un formulaire, etc.
}

// Pour un user spécifique :
if ( idantitem_user_is_verified( $user_id ) ) { … }

// Pour les visiteurs guests (cookie + transient) :
if ( idantitem_session_is_verified() ) { … }

Ces fonctions retournent true uniquement si le verdict était APPROVED ou MANUAL_REVIEW ET la vérification n'a pas dépassé la durée de validité configurée.

Webhook entrant /wp-json/idantitem/v1/webhook

Quand idantitem complète une vérification côté serveur (ex. l'utilisateur a fait sa vérif depuis le téléphone alors qu'il était sur l'ordi), le résultat peut être poussé directement vers WordPress. Le plugin :

  1. Reçoit le POST sur /wp-json/idantitem/v1/webhook
  2. Vérifie la signature HMAC (X-Idantitem-Signature: sha256=…) avec votre webhook secret
  3. Si le body contient un champ email et qu'un user WP a cet email → marque ce user comme vérifié
  4. Déclenche l'action WP idantitem_verification_received pour vos hooks personnalisés
// Exemple d'écoute custom
add_action( 'idantitem_verification_received', function( $body ) {
    // Logique sur mesure : envoyer un email, créer un post, etc.
    error_log( 'Verification: ' . $body['verdict'] );
} );

Contact Form 7 / Gravity Forms

Si l'un de ces deux plugins est installé, l'intégration s'active automatiquement :

  • Contact Form 7 — collez [idantitem_verify] ou [idantitem_required]…[/idantitem_required] dans le template du formulaire. La validation côté serveur bloque le submit si l'utilisateur n'est pas vérifié.
  • Gravity Forms — ajoutez un champ HTML dont le contenu inclut [idantitem_verify]. Le hook gform_validation rejette le submit tant que la vérif n'est pas faite.

WooCommerce (extension du même plugin)

Quand WooCommerce est actif, le plugin idantitem Verify ajoute automatiquement un gate au checkout. Aucune installation séparée — c'est le même ZIP.

Modes de déclenchement

  • always — chaque commande exige une vérif
  • threshold — seulement au-dessus d'un montant (ex. 5000 HTG)
  • product_flagged — case à cocher par produit (édition produit → onglet « Avancé »)

Le bouton Démarrer la vérification est rendu juste avant Place order. Le hook woocommerce_checkout_process recroise l'verification_id avec l'API idantitem (server-to-server, avec sk_…) avant de laisser passer la commande. L'identifiant est ensuite stocké dans _idantitem_verification_id et visible sur la fiche commande admin.

API REST

Authentification

Toutes les routes /api/v1/tools/* et /api/v1/screening acceptent une clé secrète :

Authorization: Bearer sk_live_...

Le widget utilise sa clé publique via l'header X-Idantitem-Key: pk_live_....

Vérifier un document

curl -X POST https://idantitem.com/api/v1/tools/document/structured \
  -H "Authorization: Bearer sk_live_..." \
  -F "file=@permis.png"

Retourne le type de document détecté + les champs structurés (numéro, nom, dates, etc.).

Cross-check partenaire (constituer un dossier KYC)

Après que votre client a terminé la vérification dans le widget, votre backend appelle GET /api/v1/widget/verifications/{id} avec votre clé secrète sk_live_…. Cette route est strictement serveur-à-serveur : la clé publishable pk_ est refusée.

curl -H "Authorization: Bearer sk_live_..." \
  https://idantitem.com/api/v1/widget/verifications/44

Réponse type (toujours présent : verdict, masked, reasons, signals) :

{
  "verification_id": 44,
  "verdict": "REJECTED",
  "confidence_percent": 0,
  "masked": { "country": "HTI", "verdict": "REJECTED", "status": "rejected" },
  "reasons": ["hard_rule:face_similarity_min", "face_not_detected", "mrz_or_qr_unreadable"],
  "signals": { "face_similarity": 0.0, "face_decision": "NO_FACE_DETECTED", "mrz_ok": false }
}

Avec expose_identity=true au moment du finalize, la même réponse contient en plus :

  • identity : { surname, given_names, birth_date, document_number, country, sex, document_type } extraits du document.
  • media : URLs HMAC signées (TTL 1h) vers les images document_front, document_back (si présent), selfie.

Les URLs media sont éphémères : votre backend doit les télécharger immédiatement et les ré-héberger dans votre propre stockage. Ne stockez jamais une URL idantitem.com/.../files/... en base, elle sera invalide après expiration. Un nouvel appel à /verifications/{id} regénère des URLs fraîches.

Consentement RGPD : vous êtes le responsable de traitement dès que votre serveur reçoit le bloc identity. Activez exposeIdentity: true uniquement après avoir collecté le consentement explicite de l'utilisateur (case à cocher au checkout, mention dans vos CGU). idantitem reste sous-traitant et journalise chaque accès dans widget.partner.identity_accessed.

Screening AML

curl -X POST https://idantitem.com/api/v1/screening \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Jean Dupont","birth_date":"1985-03-15","nationality":"HT"}'

Verdicts : CLEAR < 0.5, ENRICH_INVESTIGATION 0.5–0.8, MANUAL_REVIEW 0.8–0.95, HARD_BLOCK ≥ 0.95.

Ou activez le screening automatique sur votre projet : chaque vérif déclenche un screening en background, hits visibles dans le dashboard.

Outils IA (ChatGPT, Claude, Cursor)

Pour aider votre LLM préféré à écrire du code idantitem :