SortieAnalyse · Sur le radarHabr AI→ original

Un développeur lance un bot d’IA payant dans MAX et évite les soldes négatifs grâce au blocage de fonds

Le coût d’une requête adressée à un réseau neuronal est inconnu à l’avance, et le schéma naïf « vérifier le solde — envoyer — débiter » fait passer le portefeuille dans le rouge dès que deux requêtes sont exécutées en parallèle. L’auteur du bot « Ask AI » dans MAX a résolu le problème en réservant les fonds avant l’appel au modèle, puis en débitant le coût réel. Il a aussi dû se pencher sur les reçus des travailleurs indépendants, les subtilités fiscales et la notification à Roskomnadzor.

Traité par IA depuis Habr AI ; édité par Hamidun News
Un développeur lance un bot d’IA payant dans MAX et évite les soldes négatifs grâce au blocage de fonds
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #1Un blocage réalisé dans un seul UPDATE avec vérification du solde élimine les conditions de concurrence
Chiffre clé #2Le service Robocheki SMZ envoie lui-même les reçus à My Tax
Chiffre clé #3Il faut répondre au webhook MAX en 30 secondes, puis placer le reste dans une file d’attente

Le code d’un bot d’IA payant dans une messagerie est la partie la plus simple du travail. C’est l’avis du créateur du bot « Ask AI » dans MAX, qui permet de poser une question à ChatGPT ou Gemini et de générer une image avec Nano Banana. Le paiement peut être effectué avec une carte bancaire russe ou via le SBP. Les difficultés ont commencé avec l’argent, les reçus et la législation — précisément les sujets que devrait connaître toute personne envisageant de créer un bot payant.

Pourquoi MAX, et que vérifier avant de coder

MAX est préinstallé sur les smartphones vendus en Russie, et les bots d’IA y sont encore peu nombreux : le créneau n’est donc pas aussi saturé que sur Telegram. Depuis juin 2026, la messagerie dispose d’une plateforme partenaire pour les travailleurs indépendants : inscription sur business.max.ru, vérification via Gosuslugi, jusqu’à deux bots par personne et modération de la fiche sous 48 heures. Les bots sont uniquement accessibles aux résidents de la Fédération de Russie — travailleurs indépendants, entrepreneurs individuels et personnes morales. Mieux vaut le vérifier avant de commencer à coder.

La Bot API présente plusieurs particularités qu’il vaut mieux connaître à l’avance. Il n’existe pas de paiement intégré comparable aux Telegram Stars : l’argent est encaissé via un lien vers un prestataire de paiement externe. Le certificat de l’API repose sur un certificat racine du ministère du Développement numérique, qui doit être ajouté aux certificats de confiance du serveur.

Le jeton est transmis dans l’en-tête Authorization sans le préfixe Bearer. Le webhook fonctionne uniquement en HTTPS sur le port 443 et doit renvoyer un code 200 sous 30 secondes ; la requête au réseau neuronal doit donc être placée dans une file d’attente en arrière-plan. Si le webhook renvoie une erreur pendant huit heures consécutives, MAX désabonne automatiquement le bot : sans supervision, on peut se réveiller avec un bot hors service.

Facturation : réserver plutôt qu’espérer

Le principal défi d’ingénierie consiste à éviter un solde négatif. Personne ne sait combien de jetons le modèle produira dans sa réponse. Le schéma « vérifier le solde, envoyer la requête, débiter » échoue immédiatement : un utilisateur possède 100 crédits, lance deux requêtes lourdes depuis son téléphone et son ordinateur portable, les deux passent la vérification, puis le solde devient négatif. C’est le propriétaire du bot qui paie la différence.

Chaque requête suit donc quatre étapes :

  1. Estimation maximale. Les jetons d’entrée sont comptés via les API des fournisseurs — OpenAI propose un endpoint de comptage et Gemini, countTokens — tandis que la sortie est plafonnée par le paramètre max_output_tokens. Le raisonnement du modèle est inclus dans la même limite. On obtient ainsi un plafond de prix que l’utilisateur voit avant l’envoi.
  2. Blocage. La somme est réservée par une transaction unique dans PostgreSQL, avec la condition de solde directement intégrée à l’UPDATE. La base verrouille la ligne du portefeuille ; la seconde requête réévalue alors la condition en tenant déjà compte du premier blocage. La clé d’idempotence est l’ID de mise à jour fourni par MAX : une nouvelle livraison du webhook ne crée donc pas un second blocage. Le nombre de requêtes simultanées est limité à deux.
  3. Débit réel. Après la réponse, le coût réel est lu dans usage ; le système débite la plus petite valeur entre le coût constaté et le montant bloqué, puis restitue le reliquat.
  4. Nettoyage. Si le processus tombe en panne, une tâche d’arrière-plan libère le blocage à l’expiration de son TTL. Le délai d’attente de la requête au fournisseur doit être inférieur au TTL, sinon le blocage sera levé alors que le modèle répond encore.

Tous les mouvements d’argent sont inscrits dans un journal append-only, ce qui permet de reconstruire le solde. L’auteur a testé les conditions de concurrence sur une véritable instance PostgreSQL, et non avec des mocks.

Autre point concernant les modèles : chaque famille comporte trois niveaux, car le modèle OpenAI haut de gamme coûte 20 fois plus cher que le modèle d’entrée de gamme. Si tout le monde accède au modèle phare, une simple demande comme « traduis ce paragraphe » coûtera autant que l’analyse d’un contrat.

Reçus et législation

Une surprise attend les travailleurs indépendants : depuis le 29 décembre 2025, YooKassa n’envoie plus leurs reçus à My Tax. Il est impossible de les émettre manuellement, car la législation sur le régime NPD exige un reçu au moment du règlement. L’auteur a choisi Robokassa avec son service « Robocheki SMZ » : les reçus sont envoyés automatiquement et gratuitement, le paiement par lien est disponible, ainsi qu’une notification serveur ResultURL.

Avec l’offre « Starter », la commission est de 3,9 % pour une carte et de 2,7 % pour le SBP. Le gestionnaire ResultURL doit être idempotent sur le numéro de facture, faute de quoi une notification répétée créditera deux fois le paiement. Le remboursement du solde est automatisé via l’API Robokassa avec annulation du reçu.

La loi n’interdit pas directement un tel service, mais elle impose de nombreuses obligations. L’auteur précise qu’il n’est pas juriste. La notification à Roskomnadzor est souvent oubliée : depuis le 30 mai 2025, un particulier s’expose à une amende de 5 000 à 10 000 roubles. Les conditions de l’offre devraient interdire le téléversement de photos de tiers sans leur consentement, car les utilisateurs en enverront dès le premier jour.

Que faire

Si vous créez un bot payant dans MAX, commencez par trois points : vérifiez que vous pouvez vous inscrire sur la plateforme, choisissez un prestataire de paiement qui émet automatiquement les reçus et concevez la réservation des fonds avant la première requête au modèle, pas après le premier solde négatif. L’essentiel du temps ne sera pas consacré au dialogue ni à la génération, mais à garantir une comptabilisation équitable de l’argent.

Dossier

Questions clés sur cet article

Pourquoi MAX, et que vérifier avant de coder?

MAX est préinstallé sur les smartphones vendus en Russie, et les bots d’IA y sont encore peu nombreux : le créneau n’est donc pas aussi saturé que sur Telegram. Depuis juin 2026, la messagerie dispose d’une plateforme partenaire pour les travailleurs indépendants : inscription sur business.max.ru, vérification via Gosuslugi, jusqu’à deux bots par personne et modération de la fiche sous 48 heures.

Que sait-on sur Facturation : réserver plutôt qu’espérer ?

Le principal défi d’ingénierie consiste à éviter un solde négatif. Personne ne sait combien de jetons le modèle produira dans sa réponse. Le schéma « vérifier le solde, envoyer la requête, débiter » échoue immédiatement : un utilisateur possède 100 crédits, lance deux requêtes lourdes depuis son téléphone et son ordinateur portable, les deux passent la vérification, puis le solde devient négatif. C’est le propriétaire du bot qui paie la différence. Chaque requête suit donc quatre étapes : Estimation maximale.

Que sait-on sur Reçus et législation ?

Une surprise attend les travailleurs indépendants : depuis le 29 décembre 2025, YooKassa n’envoie plus leurs reçus à My Tax. Il est impossible de les émettre manuellement, car la législation sur le régime NPD exige un reçu au moment du règlement. L’auteur a choisi Robokassa avec son service « Robocheki SMZ » : les reçus sont envoyés automatiquement et gratuitement, le paiement par lien est disponible, ainsi qu’une notification serveur ResultURL.

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…