Automatické načtení sídla firmy a verifikace DIČ (VAT) pro celou EU

MyEgo.cz

home foto blogy mywindows.cz kontakt

Automatické načtení sídla firmy a verifikace DIČ (VAT) pro celou EU

PHP 13.02.12

Minulý rok jsem publikoval krátký článek ohledně automatické načtení sídla české firmy a DIČ podle zadaného IČ z ARES XML pomocí PHP a jQuery. Uvedenou službu je možné snado rozšířit na celou EU pomocí webové služby dostupné na adrese ec.europa.eu. Tato službá má totiž veřejně dostupné WSDL a pomocí SOAP klienta ji snadno můžete dotazovat.

Zjednodušený kód produkující stejný výstup jako dříve odkazovaný skript pro ARES může vypadat takto - vstupem je dvouznakový kód země a IČ (přesněji DIČ bez počátečního kódu země, což v praxi bývá IČ):

<?php 

header("Content-Type: application/json; charset=UTF-8");

$a = array();
try {
 $ic = $_REQUEST['ic']; // IČ
 $country = $_REQUEST['country']; // Country code
 $soap = new SoapClient(
  'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl');
 $params = array('countryCode' => $country, 'vatNumber' => $ic);
 $result = $soap->checkVatApprox($params);
 if (!$result->valid) {
 	$a['stav'] = 'DIČ '.$country.$ic.' nebylo nalezeno';
 } else {
  $a['ic'] = strval($result->vatNumber);  
  $a['dic'] = $country.$a['ic'];  
  $a['firma'] = strval($result->traderName);  
  if (!$result->traderCity && $result->traderAddress) {
   $t = explode("\n",$result->traderAddress);
   $result->traderStreet = $t[0];
   $result->traderCity = $t[1];
   $result->traderPostcode = $t[2];
  }
  $a['ulice'] = strval($result->traderStreet);  
  $a['mesto'] = strval($result->traderCity);  
  $a['psc'] = strval($result->traderPostcode);  
  $a['stav'] = 'ok'; 
 }
} catch (Exception $e) {
 $a['stav'] 	= 'EC služba právě není dostupná';
}

echo json_encode($a);

?>

A výstupem třeba pro Mladá fronta a.s. je takovýto JSON:

{
  "ic":"49240315",
  "dic":"CZ49240315",
  "firma":"Mlad\u00e1 fronta a.s.",
  "ulice":"Mezi Vodami 1952\/9",
  "mesto":"PRAHA 12 - MOD\u0158ANY",
  "psc":"143 00  PRAHA 412",
  "stav":"ok" 
}

A pokud chcete to samé řešení nezjednodušené, Jirka Knesl je napsal.


Komentáře

  1. 1 Kuba 17.02.12, 12:02:15
    FB

    Škoda jen, že tahle funkce je použitelná jen pro plátce DPH v EU. Nevíte jestli někde existuje nějaká dostupná databáze vč. neplátců?