我來自哪裏我不需要做增值稅(增值稅)。但是我正在做的一個項目需要它的輸入來合法完成交易。我在哪裏可以找到VAT API?
我在哪裏可以找到一個API,可以從VAT稅號中獲取相關信息(地址,公司名稱等)?我想用它來自動填充表單,因爲沒有更好的辦法來嚇跑客戶,而不是讓他工作。
我來自哪裏我不需要做增值稅(增值稅)。但是我正在做的一個項目需要它的輸入來合法完成交易。我在哪裏可以找到VAT API?
我在哪裏可以找到一個API,可以從VAT稅號中獲取相關信息(地址,公司名稱等)?我想用它來自動填充表單,因爲沒有更好的辦法來嚇跑客戶,而不是讓他工作。
在評論中提到的VIES有一個API。我已經實現了你所要求的,主要是出於同樣的原因。和它的'PHP。在這裏你去:
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;
}
}
的「XXX」代碼可能是你自己的增值稅號,爲了防止有點frauding通過只是在你自己的ID把...
這是美麗的 - 我不會期望的!我仍然困惑你想出了這個:http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl儘管如此,非常感謝!謝謝! – Orangeman555
公司名稱檢查怎麼辦?此工具只會檢查該號碼是否爲有效號碼,而不是如果向您提供此號碼的客戶來自該公司。我如何檢查增值稅號碼是否適合給定的公司名稱? – Ello
@Ello AFAIK這個工具也可以檢查給定的公司,如果公司名稱在請求中提供,它會檢查。它不會透露任何信息,但會給你一個「有效」或「無效」 –
通過*增值稅* ,你的意思是*增值稅*,對吧?應根據哪些法律計算增值稅? – Oswald
你想讓這個世界的哪個區域適用?例如,您的「增值稅」是否包含美國銷售稅?我懷疑你會找到適用於每個國家的增值稅登記處的解決方案。 –
嗨,謝謝。以下是直接從項目文件中摘錄的內容:「歐洲使用的英語單詞是增值稅 VAT的荷蘭語翻譯是BTW 在澳大利亞和新西蘭,它們將增值稅GST稱爲」...所以我們正在談論這些地區。我不確定縮寫的具體細節,但這裏是一個典型的格式化的增值稅號碼,它應該回答它的用途問題「NL174904241B0」 – Orangeman555