Une API que les agents IA peuvent payer seuls : x402 en production

Publié le

Il existe désormais trois façons de payer un contrôle de facture chez nous, et la plus étrange des trois est peut-être la plus importante : un agent logiciel autonome peut consommer l'API sans compte, sans carte, sans inscription — il paie l'appel, littéralement, dans la requête HTTP.

Le code de statut oublié

HTTP a réservé le code 402 Payment Required en 1997 et ne l'a jamais vraiment utilisé. Le protocole ouvert x402 lui donne enfin son sens :

  1. L'agent appelle POST /v1/validate sans authentification.
  2. L'API répond 402 avec un descriptif machine-lisible : réseau (base), actif (USDC), montant (0.108 USDC pour un contrôle à 0,10 €), adresse de règlement, durée de validité.
  3. L'agent signe une autorisation de paiement (EIP-3009 : un transfert pré-autorisé, pas une clé de wallet exposée) et rejoue la requête avec l'en-tête X-PAYMENT.
  4. Nous vérifions et réglons via un facilitateur, exécutons le contrôle, et renvoyons le résultat plus le reçu on-chain dans X-PAYMENT-RESPONSE.

Point de conception qui compte : le règlement a lieu après le calcul. Un appel qui échoue n'est jamais débité — c'est la condition pour qu'un agent (ou son opérateur humain) accepte de pointer un budget vers vous.

Pourquoi c'est adapté aux agents — et pas seulement un gadget

Un agent qui doit s'inscrire, attendre un e-mail, stocker une clé et gérer un abonnement mensuel n'est pas autonome : il a un humain dans sa boucle pour chaque nouveau fournisseur. Le paiement à l'appel inverse le rapport : la découverte (notre llms.txt et le catalogue machine-lisible), le prix, et le paiement sont tous lisibles et exécutables par la machine. Le premier appel utile d'un agent peut être à trente secondes de sa découverte du service.

Pour les volumes réguliers, les humains gardent l'avantage : les abonnements Starter et Scale incluent des documents et se paient en euros par carte — clé API délivrée automatiquement après le paiement, preuve signée dans les deux cas. Même moteur, même référentiel, seule la tuyauterie de facturation change.

Les détails qui fâchent (et qu'on assume)

  • Testnet d'abord. Notre challenge 402 a tourné sur Base Sepolia jusqu'à ce que la chaîne de règlement réelle soit vérifiée de bout en bout. Annoncer du mainnet avec un règlement factice, c'est servir gratuit en le cachant — nous avons préféré tester, puis basculer.
  • Le plafond de dépense reste utile. Même en x402, un agent en boucle de retry peut brûler un budget. Les comptes à clé API ont un plafond mensuel dur côté serveur ; en x402 pur, c'est le wallet de l'agent qui borne le risque — par construction, il ne peut pas dépenser plus qu'il ne signe.
  • La comptabilité existe encore. Encaisser des USDC dans une société française a des implications comptables réelles. Ce n'est pas un détail technique, et votre expert-comptable a son mot à dire.

Essayer

Le descriptif complet du protocole côté API est dans la documentation interactive. Et si vous voulez juste voir le 402 de vos propres yeux :

curl -s -X POST https://api.validationfacture.fr/v1/validate \
  -H "Content-Type: application/json" -d '{"invoice": {}}' | jq .accepts