Vérifier un numéro IDE dans WooCommerce

Qui vend à des entreprises en Suisse demande, dans le checkout ou dans le formulaire d’offre, le numéro d’identification des entreprises, l’IDE. Savoir si le numéro saisi est correct et si l’entreprise existe encore se vérifie en trois étapes : format, chiffre de contrôle et inscription au registre IDE de la Confédération. Ce guide montre les trois, à la main et dans une boutique WooCommerce.

Déroulement du contrôle IDE : saisie dans le checkout, format et chiffre de contrôle en local, statut dans le registre IDE, puis la commande est acceptée ou refuséeCheckout ouformulaireLe clientsaisit son IDEVotre boutiqueFormat etchiffre decontrôle, sansrequête réseauRegistre IDE de laConfédérationL’entrepriseexiste-t-elle,est-elle active?CheckoutCommandeacceptée ourefusée avec unmessageDéroulement du contrôle IDE : saisie dans le checkout, format et chiffre de contrôle en local, statut dans le registre IDE, puis la commande est acceptée ou refuséeCheckout ou formulaireLe client saisit son IDEVotre boutiqueFormat et chiffre de contrôle, sansrequête réseauRegistre IDE de la ConfédérationL’entreprise existe-t-elle, est-elleactive ?CheckoutCommande acceptée ou refusée avec unmessage

Qu’est-ce qu’un numéro IDE suisse

L’IDE est le numéro unique sous lequel une entreprise est connue des autorités suisses. Il est attribué par l’Office fédéral de la statistique (OFS) et figure dans le registre IDE. Lorsqu’une autorité annonce une nouvelle entreprise, celle-ci y reçoit son IDE. Le registre connaît aussi des entreprises qui ne sont pas inscrites au registre du commerce, par exemple de nombreuses entreprises individuelles et associations.

Le numéro se compose du préfixe « CHE » et de neuf chiffres, écrit CHE-123.456.789. Le dernier chiffre est un chiffre de contrôle. Si une entreprise est assujettie à la TVA, ses factures portent le même numéro suivi de « TVA », en allemand « MWST », en italien « IVA ».

Étape 1 : vérifier le format

Les clients saisissent l’IDE de bien des manières. Un contrôle devrait accepter toutes celles qui désignent le même numéro, puis l’enregistrer de façon uniforme :

  • avec points et tiret : CHE-353.272.857
  • sans séparateurs : CHE353272857
  • avec espaces : CHE 353 272 857
  • avec la mention TVA : CHE-353.272.857 TVA

Sont donc admis le préfixe CHE, puis exactement neuf chiffres, entre eux au plus des points, des tirets ou des espaces, et à la fin, en option, MWST, TVA ou IVA. L’enregistrement se fait toujours sous la forme CHE-353.272.857, pour que la même entreprise n’apparaisse pas deux fois sous des écritures différentes.

Étape 2 : calculer le chiffre de contrôle

Le neuvième chiffre découle des huit premiers, selon la méthode modulo 11. Le contrôle détecte ainsi la plupart des fautes de frappe sans interroger le registre :

  1. Multiplier les huit premiers chiffres par les poids 5, 4, 3, 2, 7, 6, 5, 4 et additionner.
  2. Diviser la somme par 11 et garder le reste.
  3. Le chiffre de contrôle vaut 11 moins ce reste. Si le résultat est 11, le chiffre de contrôle est 0. S’il est 10, le numéro n’est pas un IDE valable.

Un exemple avec les chiffres 1 2 3 4 5 6 7 8 : 1·5 + 2·4 + 3·3 + 4·2 + 5·7 + 6·6 + 7·5 + 8·4 donne 168. 168 divisé par 11 laisse un reste de 3, le chiffre de contrôle est donc 11 − 3 = 8. Le numéro CHE-123.456.788 a ainsi un format valable. Le CHE-123.456.789 souvent utilisé comme modèle, en revanche, non.

Un chiffre de contrôle correct ne signifie pas encore que l’entreprise existe. Seul le registre le dit.

Étape 3 : consulter le registre IDE

À la main, cela se fait sur uid.admin.ch : saisir l’IDE ou le nom de l’entreprise, le registre affiche le nom, la forme juridique, l’adresse, le statut et l’inscription au registre TVA.

Pour une boutique, il existe le service web IDE de l’OFS. Ses « PublicServices » sont utilisables publiquement sans login, sous une forme restreinte, et sont gratuits. Le service web parle SOAP, les données suivent la norme eCH-0108. L’interrogation d’un seul numéro s’appelle GetByUID :

POST https://www.uid-wse.admin.ch/V5.0/PublicServices.svc
SOAPAction: "http://www.uid.admin.ch/xmlns/uid-wse/IPublicServices/GetByUID"

<uid:GetByUID>
  <uid:uid>
    <ech:uidOrganisationIdCategorie>CHE</ech:uidOrganisationIdCategorie>
    <ech:uidOrganisationId>353272857</ech:uidOrganisationId>
  </uid:uid>
</uid:GetByUID>

La réponse contient le nom, la forme juridique, l’adresse et le statut. Sont considérées comme actives les valeurs 3 (définitif) et 4 (en mutation) ; 5 et 6 signifient radiée, 7 annulée. Si l’organisation manque dans la réponse, le numéro n’est pas inscrit au registre.

Registre IDE ou Zefix ?

Zefix est l’index central des raisons de commerce du registre du commerce. On n’y trouve que les entreprises inscrites au registre du commerce, mais avec le but, le capital et les publications dans la Feuille officielle suisse du commerce. Pour la question « Cet IDE existe-t-il, et l’entreprise est-elle active ? », le registre IDE est la meilleure source : il connaît davantage d’entreprises et s’interroge sans identifiants. L’interface de Zefix exige un compte. Son fonctionnement est expliqué dans le guide sur l’API Zefix.

Ce qui se passe mal dans une boutique

Sans contrôle, la boutique accumule des numéros dont personne ne pourra rien faire plus tard :

  • fautes de frappe et chiffres inversés, qui n’apparaissent qu’à la facturation ou au rappel
  • la même entreprise plusieurs fois, parce que l’IDE est enregistré une fois avec points et une fois sans
  • des commandes sur facture d’entreprises radiées du registre depuis longtemps
  • des plugins pour le numéro de TVA européen qui vérifient via le système européen VIES : VIES ne connaît pas l’IDE suisse, le contrôle tombe dans le vide
  • une panne du registre qui bloque tout le checkout alors que le numéro est juste

Un bon contrôle vérifie donc format et chiffre de contrôle immédiatement dans la boutique, n’interroge le registre qu’ensuite, garde la réponse en mémoire un moment et laisse passer un numéro au chiffre de contrôle correct lorsque le registre ne répond pas.

Guide : mettre en place le contrôle IDE dans le checkout WooCommerce

C’est exactement ce que fait mon plugin gratuit « Strainovic UID Check Schweiz » du répertoire des plugins WordPress :

  1. Dans l’administration WordPress, sous « Extensions → Ajouter », chercher « Strainovic UID Check Schweiz » et l’installer.
  2. L’activer. Le champ « IDE » apparaît tout seul dans le checkout WooCommerce, dans la zone de contact du bloc checkout, après le nom de l’entreprise dans le checkout classique. Il est facultatif et vérifié dès qu’il est rempli.
  3. Pour Contact Form 7, ajouter au formulaire un champ texte nommé uid, par exemple [text uid], ou [text* uid] pour un champ obligatoire.
  4. Tester : avec CHE-123.456.789, le formulaire signale un numéro invalide, avec une entreprise radiée un refus, avec une entreprise active la commande passe.

Le plugin ne demande ni compte ni clé. Seuls les neuf chiffres partent vers le registre, depuis le serveur de la boutique, jamais le nom ou l’adresse du client. Chaque réponse est gardée un jour, un même numéro est donc interrogé au plus une fois par jour.

Résultat du contrôle dans bexio

Qui gère ses clients dans bexio a généralement besoin du résultat là-bas. La version Contrôle IDE pour bexio interroge le registre à chaque commande, enregistre le résultat avec l’heure dans la commande et crée le contact et la note de contrôle dans bexio.

Tous les guides