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.
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:
- Moltiplicare le prime otto cifre per i pesi 5, 4, 3, 2, 7, 6, 5, 4 e sommare.
- Dividere la somma per 11 e prendere il resto.
- 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:
- Nell’amministrazione WordPress, sotto «Plugin → Aggiungi nuovo», cercare «Strainovic UID Check Schweiz» e installarlo.
- 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.
- Per Contact Form 7, aggiungere al modulo un campo di testo chiamato
uid, per esempio[text uid], oppure[text* uid]come campo obbligatorio. - 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.