PrestaShop : boutique non vérifiée (accounts-api/connect-error), causes et solutions
PrestaShop

PrestaShop : boutique non vérifiée (accounts-api/connect-error), causes et solutions

PrestaShop Account affiche « Non vérifié » ou accounts-api/connect-error ? Le diagnostic complet : fonctionnement, tests, causes (pare-feu, WAF, adresse IP de PrestaShop bloquée) et solution trouvée chez PlanetHoster.

Votre boutique PrestaShop reste « Non vérifiée » et affiche l’erreur accounts-api/connect-error ? La vérification se passe en deux sens : votre boutique contacte l’API PrestaShop Accounts, puis cette API rappelle votre boutique pour contrôler une « preuve ». Si l’un des deux sens est bloqué (pare-feu, WAF, proxy, adresse IP mal réputée), la vérification échoue. Cet article explique comment le vérifier en quelques commandes, quelles sont les causes connues et que demander à votre hébergeur.

Il s’appuie sur un cas réel que nous avons diagnostiqué sur l’une de nos boutiques (PrestaShop 9.2.0, module PrestaShop Account 8.0.20, la dernière version à ce jour) et sur les rapports publics du dépôt GitHub du module.

Mise à jour du 26 octobre 2026 : problème résolu. Dans notre cas, la cause était une des trois adresses IP de PrestaShop, 104.199.32.134, bloquée par le pare-feu ModSecurity de l’hébergeur (PlanetHoster) à cause d’une inscription sur la liste de réputation « Malware Expert ». Après l’intervention de l’hébergeur (levée du blocage et demande de délistage), la vérification a réussi. Le détail, avec les adresses IP concernées et le message à envoyer au support, est dans la section Le dénouement chez PlanetHoster.

À quoi ressemble le problème

Dans le back-office, ouvrez Modules > Gestionnaire de modules > PrestaShop Account > Configurer. Le bloc « Informations sur la boutique » affiche le statut Non vérifié, puis le message suivant : « Échec de la vérification de la boutique : le serveur de la boutique a renvoyé une erreur lors de la tentative d’accès à l’API Accounts. »

Page de configuration de PrestaShop Account sur PrestaShop 9.2.0 : statut « Non vérifié », message « Échec de la vérification de la boutique » et code d'erreur accounts-api/connect-error

Le même blocage apparaît dans d’autres modules qui dépendent de PrestaShop Account. Dans PrestaShop Checkout (paiement PayPal), la section « Verify your store » (« Vérifiez votre boutique ») affiche « Store verification failed » avec le même code. Des commerçants le signalent aussi avec PrestaShop Social (Facebook et Instagram) et lors de la connexion à la place de marché de modules.

Concrètement, tant que la boutique n’est pas vérifiée, la configuration de ces modules peut rester incomplète. Le catalogue, les commandes et le reste de la boutique continuent en revanche de fonctionner.

Comment fonctionne la vérification

La vérification n’est pas un simple « ping » : la boutique doit prouver qu’elle est bien joignable depuis Internet à l’adresse déclarée. Voici les trois étapes, telles que le module les exécute dans la version 8.0.20.

Schéma de la vérification : 1) la boutique envoie une demande POST à l'API Accounts, 2) l'API rappelle la boutique sur apiV2ShopProof, 3) la boutique répond avec la preuve et passe au statut Vérifié

  1. La boutique contacte l’API. Le module génère une « preuve » aléatoire, l’enregistre dans la configuration, puis envoie une requête POST à accounts-api.distribution.prestashop.net/v1/shop-identities/{id}/verify, avec les adresses du front-office et du back-office. Le module n’attend la réponse que 10 secondes.
  2. L’API rappelle la boutique. Depuis ses propres serveurs, l’API appelle l’adresse /module/ps_accounts/apiV2ShopProof de votre boutique, avec un en-tête X-PrestaShop-Authorization qui contient un jeton signé.
  3. La boutique répond. Si la preuve correspond, la boutique passe au statut « Vérifié ».

Deux conséquences importantes pour le diagnostic :

Après deux échecs de suite, le module active en plus un coupe-circuit : il cesse de contacter l’API pendant 30 secondes (valeurs par défaut de la version 8.0.20) et affiche immédiatement « Circuit Breaker Open ». Ce message est une conséquence, pas une cause : attendez une minute entre deux essais pour que le test soit réel.

Diagnostic en 6 étapes

Remplacez votre-boutique.com par votre domaine. Les commandes se lancent depuis n’importe quel terminal, sauf indication contraire.

Étape 1 : consulter le bilan de santé du module

Le module expose une page publique qui résume son état :

curl -s "https://votre-boutique.com/index.php?fc=module&module=ps_accounts&controller=apiV2ShopHealthCheck"

Vous obtenez un document JSON. Vérifiez ces champs :

ChampValeur attendueCe que cela signifie
shopLinkedtrueLa boutique est bien associée à votre compte PrestaShop
accountsApiConnectivitytrueLe serveur sait joindre l’API Accounts
oauthApiConnectivitytrueLe serveur sait joindre le serveur d’authentification
isExpired (jetons)falseLes jetons de connexion sont valides
curlActivetrueL’extension cURL de PHP est active
serverUTC et mysqlUTCquasi identiquesL’horloge du serveur web et celle de la base sont synchronisées

Si tout est au vert, comme dans notre cas, le problème ne vient ni du module, ni de PHP, ni de votre compte : il vient du réseau. Passez à l’étape 2.

Étape 2 : tester la sortie vers l’API

Depuis le serveur de la boutique (en SSH) :

curl -sI https://accounts.distribution.prestashop.net | head -1
curl -s -o /dev/null -w "%{http_code}\n" https://accounts-api.distribution.prestashop.net

La première commande doit répondre 200. La seconde répond 404 : c’est normal, la racine de l’API ne sert aucune page, mais cela prouve que la connexion et le certificat fonctionnent. Un délai dépassé, une réinitialisation de connexion ou une erreur de certificat indiquent au contraire un blocage sortant.

Testez aussi depuis PHP via le web, pas seulement en ligne de commande : certains hébergements appliquent des règles différentes aux deux. Le bilan de santé de l’étape 1 le fait déjà : son champ accountsApiConnectivity est calculé par la boutique elle-même, pendant une requête web.

Étape 3 : tester l’entrée, c’est-à-dire l’appel de retour

Appelez vous-même l’adresse que l’API doit joindre :

curl -s -w "\n%{http_code}\n" "https://votre-boutique.com/module/ps_accounts/apiV2ShopProof"

Réponse attendue : {"error":true,"message":"Authorization header is required."} avec le code 401. C’est le bon résultat : l’adresse répond, elle refuse seulement l’appel sans jeton.

Ajoutez ensuite l’en-tête exact que le module attend. Attention : ce n’est pas Authorization, mais X-PrestaShop-Authorization :

curl -s -H "X-PrestaShop-Authorization: Bearer test" "https://votre-boutique.com/module/ps_accounts/apiV2ShopProof"

Réponse attendue : {"error":true,"message":"Invalid token"}. Cela prouve que l’en-tête arrive bien jusqu’à PHP. Si vous obtenez de nouveau « Authorization header is required », un serveur intermédiaire (proxy inverse, règle .htaccess ou Nginx) supprime l’en-tête.

Ces tests réussissent depuis votre connexion, mais ils ne prouvent pas que les serveurs de PrestaShop passent : un pare-feu peut les bloquer eux seuls. C’est l’objet de l’étape 5.

Étape 4 : lire le journal du module

Le module écrit dans var/logs/, dans un fichier du type ps_accounts-2026-10-24 :

grep -E "Curl error|Circuit Breaker|Unauthorized|Authorization" var/logs/ps_accounts-*
Ligne du journalInterprétation
Shop responds with an incorrect HTTP code et, juste au-dessus, une ligne - Response avec "status":403PrestaShop a bien appelé votre boutique, mais un filtre du serveur (ModSecurity, pare-feu, liste de réputation d’adresses IP) a répondu 403 avant PHP. La page HTML contenue dans cette ligne vous dit qui a répondu (LiteSpeed, Apache, Nginx, Cloudflare).
Operation timed out after 10002 milliseconds with 0 bytes received sur l’adresse /verifyLa connexion s’établit, mais l’API ne répond pas en 10 s : elle attend très probablement son appel de retour. Blocage entrant ou lenteur côté API.
Could not resolve host, SSL connect error, Connection reset by peerBlocage sortant (DNS, pare-feu, proxy, adresse IP filtrée).
Circuit Breaker OpenSimple conséquence d’un échec précédent. Cherchez la ligne qui le précède.
Authorization header is required suivi d’un appel externeL’API rappelle bien, mais l’en-tête est perdu en route.
Invalid token, Invalid audience, Token expiredJeton refusé : vérifiez l’horloge du serveur (étape 1) et réinitialisez le module en dernier recours.

Attention : les lignes d’erreur détaillées contiennent le jeton d’autorisation de votre boutique. Ne les copiez jamais telles quelles dans un forum, un ticket public ou un dépôt GitHub. Ne conservez que le message d’erreur et l’heure.

Étape 5 : vérifier si l’appel de retour arrive

C’est l’étape qui tranche. Pendant que vous cliquez sur « Vérifier », regardez le journal d’accès de votre serveur (panneau de l’hébergeur ou access.log) et cherchez une requête sur apiV2ShopProof.

Si votre hébergement ne donne pas accès aux journaux, vous pouvez ajouter temporairement un petit script PHP en pré-chargement (auto_prepend_file) qui note l’heure et l’adresse des requêtes reçues, sans aucun contenu. C’est la méthode que nous avons utilisée. Prenez une sauvegarde du .htaccess avant, et retirez le script juste après le test.

Étape 6 : exclure un blocage de ressources PHP

Dernier piège, plus rare : si l’hébergement n’autorise qu’un seul processus PHP à la fois, la boutique ne peut pas répondre à l’appel de retour pendant qu’elle attend la réponse de l’API. Les deux se bloquent mutuellement. Pour le vérifier, déposez temporairement ce fichier sur un site du même compte :

<?php sleep(4); echo "ok";

Lancez ensuite huit appels en parallèle. S’ils se terminent tous en environ 4 secondes, le serveur traite bien plusieurs requêtes en même temps. S’ils s’enchaînent (environ 32 secondes en tout), vous avez une limite de processus à faire relever. Supprimez le fichier après le test.

Les causes connues et leurs solutions

CauseComment la reconnaîtreSolution
Adresse IP de PrestaShop bloquée par la liste de réputation de l’hébergeur (ModSecurity, Malware Expert, Imunify, BitNinja)Le module affiche store-identity/incorrect-http-code et son journal montre une réponse 403 Forbidden reçue par PrestaShop. Le même appel passe depuis votre connexion (401 sans jeton).Demander à l’hébergeur de vérifier chacune des trois adresses de PrestaShop, d’autoriser celles qui sont bloquées et, si besoin, de demander leur retrait de la liste de réputation (voir « Le dénouement chez PlanetHoster »).
Appel de retour bloqué (pare-feu de l’hébergeur, WAF, ModSecurity, filtre anti-robots)Étape 5 : aucune requête n’arrive. Journal : délai dépassé sur /verify.Demander à l’hébergeur d’autoriser les serveurs de PrestaShop Accounts (voir ci-dessous). Désactiver seulement le WAF suffit rarement.
Sortie bloquée (pare-feu sortant, proxy, adresse IP mal réputée)Étape 2 en échec : délai, certificat, connexion réinitialisée.Autoriser la sortie vers *.distribution.prestashop.net et oauth.prestashop.com. En cas de blocage côté PrestaShop, passer par leur support.
En-tête supprimé par un proxy ou une règle serveurÉtape 3 : l’en-tête de test n’arrive pas à PHP.Laisser passer l’en-tête X-PrestaShop-Authorization jusqu’à PHP.
Accès au site restreint (mot de passe HTTP, mode maintenance, filtre par pays ou par IP)La page d’accueil ou apiV2ShopProof demande un mot de passe ou répond 403 depuis l’extérieur.Retirer la restriction le temps de la vérification, ou y faire une exception.
Mauvaise adresse de boutique (redirections http vers https en boucle, www et non-www, domaine différent dans Paramètres de la boutique > Trafic et SEO)L’adresse déclarée ne répond pas, ou redirige ailleurs.Aligner le domaine et le SSL dans la configuration, puis relancer.
Horloge décaléeÉtape 1 : serverUTC et mysqlUTC différents.Synchroniser le serveur (NTP) et la base de données.
Identité de boutique orpheline ou en doubleErreurs comme « Refresh token cannot be empty » après plusieurs réinstallations.Contacter le support PrestaShop : seule leur équipe peut recréer l’identité.

Les adresses des serveurs de PrestaShop

Dans une discussion publique de 2025 sur GitHub, un développeur de PrestaShop indique que leurs serveurs appellent la boutique depuis trois adresses (Google Cloud) : 104.199.32.134, 23.251.142.64 et 34.78.238.154. Il précise, dans une autre discussion de 2026, que ces adresses servent aux appels entrants vers votre boutique : les autoriser n’aide donc pas si c’est votre propre sortie qui est bloquée.

Ce que nous avons constaté en pratique (octobre 2026). Ces trois adresses sont bien celles qui appellent la boutique, mais une seule peut être bloquée alors que les deux autres passent. Chez PlanetHoster, seule 104.199.32.134 était refusée (403 de LiteSpeed). Si vous demandez une autorisation, donnez donc les trois adresses et demandez à l’hébergeur de contrôler chacune d’elles :

Une autorisation partielle ne suffit pas : l’appel de PrestaShop peut partir d’une adresse ou d’une autre, la vérification échoue tant qu’une seule reste bloquée.

Ces adresses peuvent évoluer. Confirmez-les auprès du support PrestaShop avant de modifier un pare-feu et, si votre pare-feu le permet, limitez l’autorisation à l’adresse apiV2ShopProof plutôt qu’à tout le site.

Notre cas : un hébergement mutualisé avec LiteSpeed

Voici ce que nous avons constaté sur une boutique PrestaShop 9.2.0, hébergée chez PlanetHoster (offre N0C, serveur LiteSpeed, PHP 8.3), avec le module PrestaShop Account 8.0.20.

Conclusion de ce diagnostic : tout ce qui dépend de la boutique est correct, et l’appel de retour est arrêté en amont, probablement par un filtre au niveau du réseau de l’hébergeur. Nous ne pouvons pas le prouver sans les journaux du pare-feu, que seul l’hébergeur possède.

Ce cas n’est pas isolé. Une discussion ouverte sur le dépôt du module décrit exactement les mêmes symptômes sur le même type d’hébergement (PlanetHoster N0C avec LiteSpeed), et un second commerçant hébergé au même endroit confirme le même délai de 10 secondes sur /verify. Dans les deux cas, désactiver le pare-feu applicatif n’a rien changé. La discussion était encore ouverte, sans réponse de PrestaShop, à la date de publication.

Le dénouement chez PlanetHoster

Voici la chronologie, pour que vous puissiez reproduire la démarche sur votre hébergement.

  1. 24 octobre 2026. Nous écrivons au support PlanetHoster avec l’adresse appelée, l’heure exacte de deux vérifications (14h40 UTC) et les trois adresses IP de PrestaShop. Le journal de notre boutique ne montrait alors aucun appel de PrestaShop.
  2. 25 octobre. Le support autorise « l’adresse de vérification de PrestaShop ». Nous relançons la vérification : toujours en échec. Le module affiche cette fois le code store-identity/incorrect-http-code, et son journal contient la réponse que PrestaShop a reçue de notre boutique : 403 Forbidden, avec la page d’erreur de LiteSpeed, sur GET //index.php?fc=module&module=ps_accounts&controller=apiV2ShopProof (agent « PrestaShop-Account/2.14.0 »). Le même appel fait depuis notre connexion répondait 401, donc le blocage dépendait de l’adresse de l’appelant. Nous renvoyons au support les trois adresses et demandons laquelle des règles déclenche le 403.
  3. Réponse de l’hébergeur. Après vérification des trois adresses, seule 104.199.32.134 était bloquée par leur système ModSecurity, parce qu’elle figurait sur la liste de réputation de Malware Expert. Les deux autres n’étaient pas bloquées. PlanetHoster dépose une demande de délistage auprès de Malware Expert.
  4. 26 octobre. Nous relançons « Verify » : la vérification réussit et PrestaShop Checkout passe à l’étape suivante (connexion à PayPal).

Ce qu’il faut retenir :

Que demander à votre hébergeur ou au support PrestaShop

Un ticket précis est traité beaucoup plus vite qu’un « ma boutique ne se vérifie pas ». Voici un modèle à adapter :

Bonjour, le module PrestaShop Account ne peut pas vérifier ma boutique votre-boutique.com (erreur accounts-api/connect-error). Pendant la vérification, les serveurs de PrestaShop doivent appeler https://votre-boutique.com/module/ps_accounts/apiV2ShopProof. J’ai testé le 24/10/2026 à 14h40 UTC : aucune requête n’atteint mon serveur. Merci de vérifier dans vos journaux (pare-feu, ModSecurity, Imunify, BitNinja ou équivalent) si ces appels sont bloqués ou ralentis, et de les autoriser pour mon compte.

Si l’appel de PrestaShop reçoit un 403, voici une version plus précise, qui nous a permis d’obtenir la réponse :

Bonjour, la vérification de ma boutique votre-boutique.com par PrestaShop échoue avec un 403 de votre serveur sur GET /index.php?fc=module&module=ps_accounts&controller=apiV2ShopProof (agent « PrestaShop-Account/2.14.0 »), alors que la même adresse répond normalement depuis ailleurs. Pouvez-vous contrôler, dans ModSecurity, votre pare-feu et vos listes de réputation, chacune de ces trois adresses de PrestaShop : 104.199.32.134, 23.251.142.64 et 34.78.238.154 ? Merci d’autoriser celles qui sont bloquées, de m’indiquer la règle ou la liste concernée et de me prévenir quand c’est fait.

Joignez la date et l’heure exactes de vos tests (avec le fuseau horaire) et le résultat des étapes 1 à 5. Au support PrestaShop, ajoutez l’identifiant de requête (valeur X-Request-ID) d’un appel à /verify et l’identifiant de boutique (la partie {id} de l’adresse /v1/shop-identities/{id}/verify). Vous les trouvez tous deux dans le journal du module (étape 4). Ce ne sont pas des secrets, contrairement au jeton qui se trouve sur la même ligne : ne recopiez que ces deux valeurs.

Les erreurs à éviter

Questions fréquentes

Que signifie « accounts-api/connect-error » ?

Le module n’a pas obtenu de réponse de l’API PrestaShop Accounts pendant la vérification. Le nom de l’erreur parle de connexion, mais la cause peut aussi être l’appel de retour que l’API ne parvient pas à faire vers votre boutique.

Ma boutique fonctionne et vend normalement : pourquoi la vérification est-elle nécessaire ?

Elle conditionne la configuration de certains modules officiels, comme PrestaShop Checkout ou PrestaShop Social. La boutique elle-même, le catalogue et les commandes ne sont pas affectés, mais la configuration de ces modules peut rester bloquée.

Un problème de version du module peut-il l’expliquer ?

C’est possible, par exemple après une mise à jour qui change l’adresse de la boutique ou le format des jetons, mais ce n’était pas le cas ici. Installez la dernière version de PrestaShop Account (8.0.20 à la date de publication) et testez de nouveau avant de chercher ailleurs.

Faut-il autoriser les adresses IP de PrestaShop dans le pare-feu ?

Seulement si le journal d’accès montre que l’appel est bloqué (étape 5). Autorisez-les (si possible pour l’adresse apiV2ShopProof uniquement) après confirmation par le support PrestaShop, car la liste peut changer.

Le problème vient-il de mon hébergeur ?

Si votre bilan de santé est vert, que les tests des étapes 2 et 3 réussissent et qu’aucune requête n’arrive pendant la vérification, le blocage se situe très probablement sur le réseau de l’hébergeur ou chez PrestaShop. Seul l’hébergeur peut le confirmer avec ses journaux.

Combien de temps le module attend-il la réponse de l’API ?

10 secondes dans la version 8.0.20. Notre test avec 60 secondes d’attente montre que l’API répond en 504 après environ 15 secondes : allonger le délai ne règle donc pas le problème.

Comment savoir laquelle des adresses IP de PrestaShop est bloquée ?

Demandez à l’hébergeur de contrôler les trois adresses (104.199.32.134, 23.251.142.64 et 34.78.238.154) dans son pare-feu et dans la liste de réputation de ModSecurity. Chez nous, une seule des trois était refusée. De votre côté, vous ne pouvez pas le deviner : le journal du module indique seulement que PrestaShop a reçu un 403.

La vérification passe-t-elle immédiatement après l’autorisation ?

Il peut y avoir un délai le temps que l’hébergeur applique le changement. Si l’échec persiste, relancez la vérification après quelques heures, rechargez la page du module pour effacer l’ancien message d’erreur, puis relisez le journal (étape 4) : une nouvelle ligne datée de votre essai prouve que la requête est bien repartie.

Besoin d’aide pour débloquer votre boutique ?

Si la vérification bloque la configuration d’un module important pour votre activité, l’équipe Genisoft peut analyser votre configuration serveur, relire les journaux avec vous et préparer le dossier pour l’hébergeur ou le support PrestaShop. Consultez notre service de dépannage PrestaShop.

Pour aller plus loin

Sources

Agence web PrestaShop & WordPress

Agence web spécialisée PrestaShop et WordPress : création, maintenance, sécurité, performance et référencement. Nos tutoriels sont issus de nos interventions sur de vraies boutiques.

L'agence Genisoft → LinkedIn →