![]() |
Har roat mig ikväll med att undersöka hur de olika medlemsländernas momsregistreringsnummer ser ut, även kallat VATIN (Value Added Tax Identification Number) för att sedan skapa regular expressions för att kunna kontrollera om ett inmatat VATIN är korrekt eller ej. En lista över utformningen av momsregistreringsnummer för respektive medlemsland hittade jag på EUs hemsida och dessa regex bygger på dessa och förutsätter att dessa är korrekta.
Jag har inte testat alla och en del går kanske att korta ner något men för mig är det av mindre betydelse att ha optimerade regex. För vissa länder ställer kanske dessa regex för stora krav på användaren när han fyller i informationen. Exempelvis har vissa länder så som Storbritannien och Danmark uppdelade block av siffror och regex förutsätter att mellanslagen är på med och på rätt ställe. Oavsett så hoppas jag att detta kan vara till nytta för någon. Själv ska jag använda detta som en första validering innan jag skickar en förfrågan till EUs script för att kontrollera om VATIN verkligen existerar. Listan: Austria = /^ATU[0-9]{8}$/ Belgium = /^BE[0]{0,1}[0-9]{9}$/ Bulgaria = /^BG[0-9]{9,10}$/ Cyprus = /^CY[0-9]{8}[a-zA-Z]{1}$/ Czech Republic = /^CZ[0-9]{8,10}$/ Denmark = /^DK\d\d \d\d \d\d \d\d$/ Estonia = /^EE[0-9]{9}$/ Finland = /^FI[0-9]{8}$/ France = /^FR[a-zA-Z0-9]{2} [0-9]{9}$/ Germany = /^DE[0-9]{9}$/ Greece = /^EL[0-9]{9}$/ Hungary = /^HU[0-9]{8}$/ Ireland = /^IE\d[a-zA-Z0-9+*][0-9]{5}[a-zA-Z]$/ Italy = /^IT[0-9]{11}$/ Latvia = /^LV[0-9]{11}$/ Lithuania = /^LT([0-9]{9}|[0-9]{12})$/ Luxembourg = /^LU[0-9]{8}$/ Malta = /^MT[0-9]{8}$/ Netherlands = /^NL[0-9]{9}B\d\d$/ Poland = /^PL[0-9]{10}$/ Portugal = /^PT[0-9]{9}$/ Romania = /^RO[0-9]{2,10}$/ Slovakia = /^SK[0-9]{10}$/ Slovenia = /^SI[0-9]{8}$/ Spain = /^ES[a-zA-Z0-9][0-9]{7}[a-zA-Z0-9]$/ Sweden = /^SE[0-9]{12}$/ United Kingdom = /^GB(\d\d\d \d\d\d\d \d\d|\d\d\d \d\d\d\d \d\d \d\d\d|(GD|HA)\d\d\d)$/ |
Erhm...
Finns ett SOAP interface på europa.eu... |
Citat:
Jag letade igår på sidan om de hade en färdig webservice men hittade ingenting, och hittar fortfarande ingenting på europa.eu. En mer förvirrande sida att surfa på har jag inte besökt på länge. |
Jag håller med dig Fredrik, att man skall validera innan man skickar vidare förfrågan. Ordning och reda... ;)
|
Riktigt bra gjort, den här sparar vi till senare =)
|
|
Citat:
Hur som helst så verkar det vara problem att göra detta live för användaren då det finns massor med tänkbara fel som går att läsa om här. Så jag kommer köra detta i efterhand och i värsta fall flagga om ett VATIN inte gick igenom så får man ta detta manuellt i efterhand. |
För den som vill kolla automatiskt mot taxation centret.
Tänk dock på att vissa utländska databaser ligger nere vissa tider på dygnet vilket innebär att man inte kan kanske kolla om ett VATnummer är korrekt eller inte. Enjoy Kod:
<?php |
Tack Jawn för scriptet!
Tyvärr har det nu efter 2 år har slutat funka, men det fixar man lätt med en liten justering. Sidan kräver nu att man skickar in parametern MS som är samma som ISO. Så ändra raden som ser ut så här: Kod:
curl_setopt($ch, CURLOPT_POSTFIELDS, "iso=$iso&vat=$vat"); Kod:
curl_setopt($ch, CURLOPT_POSTFIELDS, "iso=$iso&vat=$vat&ms=$iso"); För att göra det lite smidigare så kan man kontrollera om numret är matematiskt korrekt med Javascript först innan man skickar det vidare. Ett bra script finns här: http://www.braemoor.co.uk/software/vat.shtml Skriv gärna kommentarer på hur ni använder VAT-check, och hoppas detta hjälpte någon! |
Alla tider är GMT +2. Klockan är nu 23:17. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson