Verificare il numero IDI in WooCommerce

Chi in Svizzera vende ad aziende chiede, nel checkout o nel modulo d’offerta, il numero d’identificazione delle imprese, l’IDI. Se il numero inserito è corretto e se l’impresa esiste ancora si verifica in tre passi: formato, cifra di controllo e iscrizione nel registro IDI della Confederazione. Questa guida mostra tutti e tre, a mano e in un negozio WooCommerce.

Svolgimento della verifica IDI: inserimento nel checkout, formato e cifra di controllo in locale, stato nel registro IDI, poi l’ordine viene accettato o respintoCheckout o moduloIl clienteinserisce ilsuo IDIIl vostro negozioFormato e cifradi controllo,senza richiestain reteRegistro IDI dellaConfederazioneL’impresaesiste, èattiva?CheckoutOrdineaccettato orespinto con unmessaggioSvolgimento della verifica IDI: inserimento nel checkout, formato e cifra di controllo in locale, stato nel registro IDI, poi l’ordine viene accettato o respintoCheckout o moduloIl cliente inserisce il suo IDIIl vostro negozioFormato e cifra di controllo, senzarichiesta in reteRegistro IDI della ConfederazioneL’impresa esiste, è attiva?CheckoutOrdine accettato o respinto con unmessaggio

Che cos’è il numero IDI svizzero

L’IDI è il numero unico con cui un’impresa è nota alle autorità svizzere. Lo attribuisce l’Ufficio federale di statistica (UST) e figura nel registro IDI. Quando un’autorità annuncia una nuova impresa, questa vi riceve il suo IDI. Il registro conosce anche imprese non iscritte nel registro di commercio, per esempio molte ditte individuali e associazioni.

Il numero è composto dal prefisso «CHE» e da nove cifre, scritto CHE-123.456.789. L’ultima cifra è una cifra di controllo. Se un’impresa è assoggettata all’IVA, le sue fatture riportano lo stesso numero seguito da «IVA», in tedesco «MWST», in francese «TVA».

Passo 1: verificare il formato

I clienti inseriscono l’IDI in molti modi. Una verifica dovrebbe accettare tutti quelli che indicano lo stesso numero e poi salvarlo in modo uniforme:

  • con punti e trattino: CHE-353.272.857
  • senza separatori: CHE353272857
  • con spazi: CHE 353 272 857
  • con l’aggiunta IVA: CHE-353.272.857 IVA

Sono dunque ammessi il prefisso CHE, poi esattamente nove cifre, tra di esse al massimo punti, trattini o spazi, e alla fine, facoltativo, MWST, TVA o IVA. Si salva sempre nella forma CHE-353.272.857, perché la stessa impresa non finisca due volte nel sistema con grafie diverse.

Passo 2: calcolare la cifra di controllo

La nona cifra deriva dalle prime otto, secondo il metodo modulo 11. Così la verifica riconosce la maggior parte degli errori di battitura senza interrogare il registro:

  1. Moltiplicare le prime otto cifre per i pesi 5, 4, 3, 2, 7, 6, 5, 4 e sommare.
  2. Dividere la somma per 11 e prendere il resto.
  3. La cifra di controllo è 11 meno questo resto. Se il risultato è 11, la cifra di controllo è 0. Se è 10, il numero non è un IDI valido.

Un esempio con le cifre 1 2 3 4 5 6 7 8: 1·5 + 2·4 + 3·3 + 4·2 + 5·7 + 6·6 + 7·5 + 8·4 dà 168. 168 diviso 11 lascia il resto 3, la cifra di controllo è quindi 11 − 3 = 8. Il numero CHE-123.456.788 ha così un formato valido. Il CHE-123.456.789, spesso usato come esempio, invece no.

Una cifra di controllo corretta non significa ancora che l’impresa esista. Lo dice solo il registro.

Passo 3: consultare il registro IDI

A mano si fa su uid.admin.ch: inserire l’IDI o il nome dell’impresa, il registro mostra nome, forma giuridica, indirizzo, stato e l’iscrizione nel registro IVA.

Per un negozio esiste il servizio web IDI dell’UST. I suoi «PublicServices» sono utilizzabili pubblicamente senza login, in forma limitata, e sono gratuiti. Il servizio web usa SOAP, i dati seguono lo standard eCH-0108. L’interrogazione di un singolo numero si chiama 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 risposta contiene nome, forma giuridica, indirizzo e stato. Sono considerati attivi i valori 3 (definitivo) e 4 (in mutazione); 5 e 6 significano cancellata, 7 annullata. Se nella risposta manca l’organizzazione, il numero non è iscritto nel registro.

Registro IDI o Zefix?

Zefix è l’indice centrale delle ditte del registro di commercio. Vi figurano solo le imprese iscritte nel registro di commercio, ma con scopo, capitale e pubblicazioni nel Foglio ufficiale svizzero di commercio. Per la domanda «Questo IDI esiste, e l’impresa è attiva?» il registro IDI è la fonte migliore: conosce più imprese e si interroga senza credenziali. L’interfaccia di Zefix richiede un account. Come funziona è spiegato nella guida sull’API Zefix.

Cosa va storto in un negozio

Senza verifica, nel negozio finiscono numeri con cui più tardi nessuno può fare nulla:

  • errori di battitura e cifre invertite, che emergono solo alla fatturazione o al sollecito
  • la stessa impresa più volte, perché l’IDI è salvato una volta con i punti e una volta senza
  • ordini su fattura di imprese cancellate dal registro da tempo
  • plugin per la partita IVA europea che verificano tramite il sistema europeo VIES: VIES non conosce l’IDI svizzero, la verifica va a vuoto
  • un guasto del registro che blocca tutto il checkout anche se il numero è giusto

Una buona verifica controlla quindi subito nel negozio formato e cifra di controllo, interroga il registro solo dopo, conserva la risposta per un po’ e lascia passare un numero con cifra di controllo corretta quando il registro non risponde.

Guida: impostare la verifica IDI nel checkout WooCommerce

È esattamente ciò che fa il mio plugin gratuito «Strainovic UID Check Schweiz» dalla directory dei plugin WordPress:

  1. Nell’amministrazione WordPress, sotto «Plugin → Aggiungi nuovo», cercare «Strainovic UID Check Schweiz» e installarlo.
  2. Attivarlo. Il campo «IDI» compare da solo nel checkout WooCommerce, nella sezione contatto del blocco checkout, dopo il nome dell’azienda nel checkout classico. È facoltativo e viene verificato appena compilato.
  3. Per Contact Form 7, aggiungere al modulo un campo di testo chiamato uid, per esempio [text uid], oppure [text* uid] come campo obbligatorio.
  4. Provare: con CHE-123.456.789 il modulo segnala un numero non valido, con un’impresa cancellata un rifiuto, con un’impresa attiva l’ordine passa.

Il plugin non richiede né account né chiave. Al registro vanno solo le nove cifre, dal server del negozio, mai nome o indirizzo del cliente. Ogni risposta resta salvata un giorno, quindi lo stesso numero viene interrogato al massimo una volta al giorno.

Risultato della verifica in bexio

Chi gestisce i clienti in bexio di solito ha bisogno del risultato lì. La versione Controllo IDI per bexio interroga il registro a ogni ordine, salva il risultato con l’ora nell’ordine e crea contatto e nota di verifica in bexio.

Tutte le guide