2014-02-22 2 views
1

저는 어디에서 왔으며 부가가치세 (VAT)를 할 필요가 없습니다. 그러나 내가하고있는 프로젝트는 합법적으로 트랜잭션을 완료하기 위해 입력이 필요합니다.VAT API는 어디에서 찾을 수 있습니까?

VAT 세금 번호에서 관련 정보 (주소, 회사 이름 등)를 얻을 수있는 API는 어디에서 찾을 수 있습니까? 나는 폼을 자동으로 채우기 위해 그것을 사용하고 싶다. 왜냐하면 그는 그를 일하게하는 것보다 고객을 놀라게하는 더 좋은 방법이 없기 때문이다.

+2

* 부가가치세 세금으로 * , 당신은 부가 가치세 *를 의미합니다, 맞습니까? VAT 세금은 어느 법에 따라 계산되어야합니까? – Oswald

+0

세계 어느 지역에서 작업하고 싶습니까? 귀하의 "부가가치세"에는 미국 판매 세가 포함됩니까? 모든 국가의 부가가치세 레지스트리에서 사용할 수있는 솔루션을 찾을 수 있을지 의심 스럽습니다. –

+0

안녕하세요. 감사합니다. 다음은 프로젝트 파일에서 직접 발췌 한 것입니다. "유럽에서 사용되는 영어 단어는 VAT입니다. VAT의 네덜란드어 번역은 BTW 입니다. 호주와 뉴질랜드에서는 VAT GST라고 부릅니다. . 약어에 대한 구체적인 내용은 확실하지 않지만 여기에 일반적인 형식의 부가가치세 세금 번호가 나와 있습니다.이 번호는 용도에 대한 질문에 대답해야합니다. "NL174904241B0" – Orangeman555

답변

2

의견에 언급 된 바와 같이 VIES에는 API가 있습니다. 그리고 저는 여러분이 요청한 것과 똑같은 이유로 주로 구현했습니다. 그리고 그것의 'PHP. 여기 요 : 코드에서

은 "XXX"
class VatValidator { 

const validVatId = 'valid'; 
const invalidVatId = 'invalid'; 

/** 
* 
* The european commission (ec) provides a validation database for VAT Id's, which can be accessed via WSDL. 
* We check the given VAT against that Database. 
* 
* Actually that is more reliable than any captcha !!! 
* 
* * only companies have one 
* * the code can not be "brute forced" 
* * simple mass requests can be cut off easily 
* 
* @param String $requestedVatId entire VAT Id including country code 
* @param string $company optional Company Name 
* @param string $city optional company city 
* @return Multiple false on error, String self::validVatId or String self::invalidVatId according to state. 
*/ 
public static function validateVATID($requestedVatId, $company=null, $city=null) 
{ 
    $ret = false; 
    $ecUrl = "http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl"; 
    $vatid = str_replace(array(' ', '.', '-', ',', ', '), '', trim($requestedVatId)); 
    $cc = substr($vatid, 0, 2); 
    $vn = substr($vatid, 2); 
    $client = new SoapClient($ecUrl); 

    if($client) 
    { 
     $params = array('countryCode' => $cc, 
         'vatNumber' => $vn, 
     ); 

     /* 
     * simple request only since we do not get any further information anyway. 
     * 
     * with $r = $client->checkVatApprox($params); 
     * we could: 
     * 
        'requesterCountryCode' => 'XXX', 
        'requesterVatNumber' => 'XXX' // Own ID!! 

     if (!empty($company)) 
      $params['traderName'] = $company; 
     if (!empty($city)) 
      $params['traderCity'] = $city; 

     $params["traderCompanyType"] = 1; 
     $params["traderStreet"] = 'xyz'; 
     $params["traderPostcode"] = '1234'; 
     */ 

     try 
     { 
      //$r = $client->checkVatApprox($params); 
      $r = $client->checkVat($params); 
      if($r->valid == true) 
      { 
       logMessage(Constants::$debug, 'valid: ' . $vatid); 
       $ret = self::validVatId; 
      } 
      else 
      { 
       logMessage(Constants::$debug, 'invalid: ' . $vatid); 
       $ret = self::invalidVatId; 
      } 

      // This foreach shows every single line of the returned information 
      //    foreach($r as $k=>$prop) 
      //    { 
      //     logMessage(Constants::$debug, $k.': '.$prop); 
      //    } 
      //logMessage(Constants::$debug, print_r($r, true)); 

     } catch(SoapFault $e) { 
      logMessage(Constants::$debug, 'Error, see message: '.$e->faultstring); 
      $ret = $e->faultstring; 
     } 
    } 
    else 
    { 
     logMessage(Constants::$debug, 'cannot connect to ' . $ecUrl); 
     $ret = 'CONNECTERROR'; 
    } 
    return $ret; 
} 
} 

는, 자신의 VAT ID를 할 그냥 자신의 ID에 넣어 비트 frauding을 방지하기 위해 수 ...

+0

이것은 아름답다 - 나는 그것을 기대하지 않고 있었다! 나는 아직도 당신이 이것을 생각해 내면 당황 스럽다 : http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl 그럼에도 불구하고, 매우 고맙게 생각한다! 고맙습니다! – Orangeman555

+0

회사 이름 확인은 어떻게됩니까? 이 도구는 해당 번호를 제공 한 고객이 해당 회사의 번호가 아닌 유효한 번호인지 여부 만 확인합니다. VAT 등록 번호가 주어진 회사 명에 맞는지 어떻게 확인할 수 있습니까? – Ello

+0

@Ello AFAIK이 도구는 또한 주어진 회사를 확인할 수 있습니다. 회사 이름이 요청에 제공된 경우 해당 도구가이를 확인합니다. 어떠한 정보도 공개하지 않지만 귀하에게 "유효한"또는 "유효하지 않은" –

관련 문제