Use Cases

Portail fiscal autorisé : gérer les CAPTCHA de vos extractions de données

Périmètre sûr : ce guide s'applique uniquement à vos propres applications, à vos environnements de QA et de préproduction, ou à des sources pour lesquelles vous disposez d'un mandat ou d'une autorisation écrite. Il ne décrit pas l'automatisation de sites tiers sans accord.

Un défi CAPTCHA sur un portail fiscal ne casse pas votre collecte : il la met en pause jusqu'au retour du token. Reste à savoir si ce token arrive en quelques secondes, dans la bonne session, sans réveiller personne à 3 h du matin. Voici où placer l'appel de résolution, quoi mesurer et quels garde-fous poser avant de laisser le job tourner seul.

Ce que recouvre un accès autorisé

Avant l'architecture, la base juridique. Trois cas justifient un tel pipeline : vous éditez l'application qui affiche le défi, vous l'exploitez pour un client qui a validé l'intégration, ou vous agissez sous mandat sur vos propres dossiers.

Côté données, le réflexe RGPD reste classique : ne collectez que les pièces nécessaires, fixez une durée de conservation, et n'écrivez jamais un identifiant fiscal en clair dans vos logs. Un hachage de la référence de dossier suffit à corréler une exécution. Faites relire ce périmètre avant la mise en production, pas après le premier incident.

Scénario : la collecte nocturne d'un cabinet comptable

Prenons un cabinet d'expertise comptable à Lyon. Chaque nuit, un worker hébergé chez OVHcloud parcourt les dossiers sous mandat, ouvre l'espace professionnel, télécharge les pièces de la période et les dépose dans le coffre documentaire. Deux cents dossiers, personne devant l'écran.

En pleine campagne déclarative, le portail ajoute un défi Cloudflare Turnstile à la connexion. Sans résolution automatisée, la collecte s'arrête et la reprise manuelle coûte une matinée. C'est là que CaptchaAI s'insère : une étape de plus dans la séquence, pas une réécriture du pipeline.

Architecture du pipeline d'extraction fiscale

L'orchestrateur pilote la séquence ; CaptchaAI n'intervient que sur les étapes où un défi apparaît.

Étape Point de rupture fréquent
Ouverture de session Cookies non isolés entre dossiers
Résolution du défi Token appliqué dans une autre session
Téléchargement des pièces Fichier tronqué accepté comme valide
Dépôt dans le coffre Reprise non idempotente après échec

La deuxième ligne coûte le plus cher : le token doit être injecté dans le contexte exact qui a déclenché le défi, mêmes cookies, même client HTTP. La plupart des rejets après résolution viennent de là.

Enchaîner les appels de résolution CAPTCHA

La séquence tient en quatre gestes. Relevez dans le HTML réel les paramètres attendus par la famille de CAPTCHA présente sur la page (sitekey, URL, action éventuelle). Envoyez la tâche, puis interrogez le résultat sans saturer l'endpoint : 15 secondes d'attente initiale, un polling toutes les 5 secondes, un plafond dur par tâche. Injectez enfin le token dans la même session.

Voici le côté client, tel qu'il apparaît dans votre propre suite de tests :

import fetch from 'node-fetch';

const API_KEY = process.env.CAPTCHAAI_KEY;

export async function createTurnstileTask(siteKey, pageUrl) {
  const res = await fetch('https://api.captchaai.com/createTask', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      clientKey: API_KEY,
      task: {
        type: 'TurnstileTaskProxyless',
        websiteURL: pageUrl,
        websiteKey: siteKey,
      },
    }),
  });
  const data = await res.json();
  return data.taskId;
}

La clé API se lit depuis une variable d'environnement alimentée par un coffre ou un secret CI. Jamais depuis le dépôt.

Les signaux à instrumenter

Un pipeline nocturne se juge sur ses métriques, pas sur son dernier succès. Les chiffres ci-dessous reposent sur des mesures observées et des retours d'utilisateurs ; les résultats varient selon l'environnement, le volume et le moment de la journée.

Indicateur Ce qu'il révèle
Temps de résolution (Turnstile < 10 s, reCAPTCHA v2 < 60 s) Aucune attente sur des retries
Taux de réussite Les paramètres collent au défi réel
Acceptation en aval Le token part dans la bonne session
Dossiers repris à la main Le budget de retry tient

Séparez les journaux par environnement et propagez un identifiant de corrélation compatible avec votre traçage distribué, OpenTelemetry par exemple. Rejouer une nuit entière depuis un seul identifiant divise le temps de diagnostic.

Robustesse et reprise

Trois mécanismes rendent le pipeline exploitable : un retry borné avec backoff exponentiel (trois tentatives, délai doublé, plafond à 30 secondes), une reprise idempotente qui ne retraite pas un dossier déjà déposé, et une alerte sur un écart durable plutôt que sur un échec isolé. Un retry infini masque les défauts et consomme vos threads.

Dépannage

Symptôme Cause probable Correctif
Token refusé après résolution Session différente Garder le même contexte navigateur jusqu'à la soumission
File d'attente qui s'allonge Threads saturés en pic nocturne Étaler le lot ou monter d'un palier
Paramètres rejetés à l'envoi Sitekey pris sur une autre page Réextraire le sitekey de la page ciblée
Collecte partielle sans erreur Fichier tronqué accepté Vérifier taille et type MIME avant dépôt

Dimensionner les threads et le budget

La facturation CaptchaAI se fait au thread simultané, résolutions illimitées par thread. Ce qui compte n'est donc pas le nombre de dossiers mais le nombre de défis traités en parallèle. Un lot séquentiel de 200 dossiers reste confortable sur BASIC ($15/mois, 5 threads) ; une exécution répartie sur dix workers appelle STANDARD ($30/mois, 15 threads). Mesurez votre parallélisme réel avant de choisir le palier.

Liste de contrôle avant la mise en production

  • Le mandat ou l'autorisation écrite couvre chaque source interrogée.
  • La clé CaptchaAI vit dans un coffre ou un secret CI, jamais dans le code.
  • Durées de résolution et codes retour sont tracés à chaque exécution.
  • La reprise est idempotente, testée sur un lot interrompu volontairement.
  • Aucun identifiant fiscal en clair dans les journaux.

FAQ

Quel plan CaptchaAI choisir pour une collecte nocturne ?

Regardez votre parallélisme, pas votre volume. BASIC ($15/mois, 5 threads) suffit à un lot séquentiel ; au-delà de dix workers simultanés, STANDARD ($30/mois, 15 threads) évite la file d'attente.

Le RGPD s'applique-t-il à ce type de pipeline ?

Oui, dès que les documents extraits contiennent des données personnelles. Limitez la collecte, fixez une durée de conservation, chiffrez le stockage et excluez les identifiants fiscaux des journaux. Ce guide ne remplace pas l'avis de votre référent conformité.

Pourquoi mon token est-il refusé alors que la résolution a réussi ?

Parce qu'il est presque toujours appliqué ailleurs que là où le défi est apparu. Vérifiez que contexte navigateur, cookies et adresse de sortie sont identiques entre résolution et soumission, puis que le token n'a pas expiré entre-temps.

CaptchaAI prend-il en charge hCaptcha sur ces portails ?

Non. hCaptcha n'est pas pris en charge, pas plus que FunCaptcha ; GeeTest v4 est annoncé à venir. Sont couverts reCAPTCHA v2 et v3, Cloudflare Turnstile et Cloudflare Challenge, GeeTest v3, les CAPTCHA image et OCR et les grilles d'images, plus CaptchaFox (bêta), Friendly Captcha (bêta) et Lemin (bêta).

Guides connexes

Votre collecte mérite mieux qu'une reprise manuelle. – Obtenez votre clé CaptchaAI.

Les commentaires sont désactivés pour cet article.