ส่วนประกอบที่ใช้ระบบแลกเปลี่ยนข้อมูล VAT (VIES) ของคณะกรรมาธิการยุโรป (EC) เพื่อตรวจสอบและตรวจสอบหมายเลขจดทะเบียน VAT ในสหภาพยุโรป โดยใช้ PHP และ Composer
คลาส Vies
มีฟังก์ชันในการเรียก SOAP ไปที่ VIES และส่งคืนอ็อบเจ็กต์ CheckVatResponse
ที่มีข้อมูลต่อไปนี้:
รหัสประเทศ (สตริง): สัญลักษณ์ 2 อักขระของรหัสประเทศ
หมายเลขทะเบียน VAT (สตริง): มีหมายเลขทะเบียนที่สมบูรณ์โดยไม่มีรหัสประเทศ
วันที่ขอ (DateTime): วันที่ที่มีการร้องขอ
ถูกต้อง (บูลีน): ธงที่ระบุหมายเลขทะเบียนถูกต้อง (TRUE) หรือไม่ (FALSE)
ชื่อ (สตริง): ชื่อบริษัทที่จดทะเบียน (หากระบุโดยรัฐสมาชิก EC)
ที่อยู่ (สตริง): ที่อยู่บริษัทที่จดทะเบียน (หากระบุโดยรัฐสมาชิก EC)
ระบุไว้ในเว็บไซต์คณะกรรมาธิการยุโรป:
หากต้องการจัดหาสินค้าภายในชุมชนโดยไม่เรียกเก็บภาษีมูลค่าเพิ่ม คุณ ควรตรวจสอบให้แน่ใจ ว่าบุคคลที่คุณกำลังส่งสินค้าให้นั้นเป็นบุคคลที่ต้องเสียภาษีในประเทศสมาชิกอื่น และสินค้าดังกล่าวได้ออกไปแล้ว หรือจะออกจากประเทศสมาชิกของคุณไปยังประเทศอื่น นางสาว หมายเลขภาษีมูลค่าเพิ่มควรอยู่ในใบแจ้งหนี้ด้วย
ข้อมูลเพิ่มเติมที่http://ec.europa.eu/taxation_customs/vies/faqvies.do#item16
ในวันที่ 25 พฤษภาคม 2018 กฎระเบียบคุ้มครองข้อมูลทั่วไปหรือ GDPR จะกลายเป็นกฎหมายภายใน 28 ประเทศสมาชิกยุโรปทั้งหมด แพ็คเกจบริการ VIES นี้จะสอดคล้องกับ GDPR หรือไม่
ในระยะสั้น: ใช่
คำตอบที่ยาวกว่าคือแพ็คเกจ VIES นี้โต้ตอบกับบริการสำหรับการตรวจสอบหมายเลขประจำตัวผู้เสียภาษีมูลค่าเพิ่มที่ได้รับจากคณะกรรมาธิการยุโรปเท่านั้น การตรวจสอบ VAT มีผลบังคับใช้ในประเทศยุโรป ดังนั้นบริการนี้จึงได้รับอนุญาตตามกฎหมายและเป็นพื้นฐานทางกฎหมาย โปรดอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ใน DPO-3816.1 ของยุโรป บริการนี้ไม่ได้จัดเก็บข้อมูลใดๆ ไว้เองหรือรวบรวมข้อมูลเกินกว่าที่กฎหมายกำหนดอย่างเคร่งครัดและให้บริการโดยบริการ EC VIES
เมื่อคุณใช้แพ็คเกจบริการนี้ในโครงการของคุณเอง ตรวจสอบให้แน่ใจว่าคุณได้จัดเก็บรหัส VAT การประทับเวลาของการตรวจสอบ ผลลัพธ์ของการตรวจสอบ และรหัสการตรวจสอบที่ให้มาโดยบริการ EC VIES (เป็นทางเลือก) .
เวอร์ชัน PHP ขั้นต่ำ: 7.3
เวอร์ชัน PHP ที่แนะนำ: 7.4
ส่วนขยาย: สบู่
ส่วนขยาย: pcntl
ส่วนขยาย: ctype
โปรดอ่านบันทึกประจำรุ่นเพื่อดูรายละเอียด
โครงการนี้อยู่ใน Packagist!
หากต้องการติดตั้งเวอร์ชันเสถียรล่าสุด ให้ใช้ composer require dragonbe/vies
หากต้องการติดตั้งเวอร์ชันเฉพาะ (เช่น 2.2.0) เพียงเพิ่มเวอร์ชันดังกล่าวลงในคำสั่งด้านบน เช่น composer require dragonbe/vies:2.2.0
นี่คือตัวอย่างการใช้งานที่คุณสามารถดำเนินการได้ทันทีบนบรรทัดคำสั่ง (หรือใน cron, worker หรืออะไรก็ตาม) เนื่องจากนี่จะเป็นกรณีการใช้งานที่พบบ่อยที่สุดของคุณ
<?phpuse DragonBeViesVies;use DragonBeViesViesException;use DragonBeViesViesServiceException;require_once dirname(__DIR__) '/vendor/autoload.php';$vies = new Vies();
if (false === $vies->getHeartBeat()->isAlive()) {echo 'บริการไม่พร้อมใช้งานในขณะนี้ โปรดลองอีกครั้งในภายหลัง' - PHP_EOL;ออก(1); -
$vies = ใหม่ Vies();$options = ['proxy_host' => '127.0.0.1','proxy_port' => '8888', ];$vies->setOptions($options);$heartBeat = new DragonBeViesHeartBeat('tcp://' . $options['proxy_host'], $options['proxy_port']);$vies->setHeartBeat($heartBeat );$isAlive = $vies->getHeartBeat()->isAlive();
เมื่อทราบแล้วว่าบริการนี้ยังคงใช้งานได้ เราก็สามารถเริ่มตรวจสอบหมายเลขประจำตัวผู้เสียภาษีมูลค่าเพิ่มได้
$vatResult = $vies->validateVat('BE', // รหัสประเทศของผู้ซื้อขาย '0203430576', // รหัสภาษีมูลค่าเพิ่มของผู้ซื้อขาย'BE', // รหัสประเทศของผู้ขอ '0811231190' // ID ภาษีมูลค่าเพิ่มของผู้ขอ);
$vatResult = $vies->validateVat('BE', // รหัสประเทศของผู้ซื้อขาย '0203430576', // รหัสภาษีมูลค่าเพิ่มของผู้ซื้อขาย'BE', // รหัสประเทศของผู้ขอ '0811231190' // รหัส VAT ของผู้ขอ'B-Rail', // ชื่อผู้ซื้อขาย 'NV', // บริษัทผู้ซื้อขายประเภท 'Frankrijkstraat 65', // ถนนผู้ซื้อขาย ที่อยู่ '1060', // รหัสไปรษณีย์ของผู้ซื้อขาย 'Sint-Gillis' // เมืองของผู้ซื้อขาย -
ฟังก์ชันที่สำคัญที่สุดคือการดูว่ารหัส VAT ถูกต้องหรือไม่
echo ($vatResult->isValid() ? 'Valid' : 'Not valid') . PHP_EOL;// ผลลัพธ์: ถูกต้อง
echo 'ตัวระบุ:' . $vatResult->getIdentifier() PHP_EOL;// ผลลัพธ์: ตัวระบุ: WAPIAAAAWaXGj4Ra
หมายเหตุ: บริการ VIES ส่งคืนวันที่และเขตเวลา แต่ไม่มีเวลา
echo 'วันที่และเวลา:' $vatResult->getRequestDate()->format('r') PHP_EOL;// ผลลัพธ์: วันที่และเวลา: เสาร์ที่ 31 ส.ค. 2019 00:00:00 +0200
echo 'ชื่อบริษัท:' . $vatResult->getName() PHP_EOL;// ผลลัพธ์: ชื่อบริษัท: NV OR NATIONALE MAATSCHAPPIJ DER BELGISCHE SPOORWEGEN
echo 'ที่อยู่บริษัท:' . $vatResult->getAddress() PHP_EOL;// ผลลัพธ์: ที่อยู่บริษัท: FRANKRIJKSTRAAT 56 1060 SINT-GILLIS (BIJ-BRUSSEL)
echo 'การจับคู่ชื่อผู้ซื้อขาย: ' $vatResult->getNameMatch() PHP_EOL;// ผลลัพธ์: ตรงกับชื่อผู้ซื้อขาย:
echo 'การจับคู่ประเภทบริษัทของผู้ซื้อขาย:' $vatResult->getCompanyTypeMatch() PHP_EOL;// ผลลัพธ์: การจับคู่ประเภทบริษัทของผู้ซื้อขาย:
echo 'การจับคู่ถนนของผู้ซื้อขาย: ' $vatResult->getStreetMatch() PHP_EOL;// ผลลัพธ์: การแข่งขันบนถนนของผู้ซื้อขาย:
echo 'การจับคู่รหัสไปรษณีย์ของผู้ซื้อขาย: ' $vatResult->getPostcodeMatch() PHP_EOL;// ผลลัพธ์: การจับคู่รหัสไปรษณีย์ของผู้ซื้อขาย:
echo 'การจับคู่เมืองของ Trader: ' $vatResult->getCityMatch() PHP_EOL;// ผลลัพธ์: การจับคู่เมืองของผู้ซื้อขาย:
<?phpuse DragonBeViesVies;use DragonBeViesViesException;use DragonBeViesViesServiceException;require_once dirname(__DIR__) '/vendor/autoload.php';$vies = new Vies();$company = [ 'country_code' => 'BE', 'vat_id' => '0203430576', 'trader_name' => 'B-Rail', 'trader_company_type' => 'NV', 'trader_street' => 'Frankrijkstraat 65', 'trader_postcode' => '1060', 'trader_city' => 'Sint-Gillis', ];ลอง {$vatResult = $vies->validateVat($company['country_code'], // รหัสประเทศของผู้ซื้อขาย$บริษัท['vat_id'], // รหัสภาษีมูลค่าเพิ่มของผู้ซื้อขาย 'BE', // รหัสประเทศของผู้ขอ (ของคุณ รหัสประเทศ)'0811231190', // ID ผู้ขอ VAT (VAT ID ของคุณ)$company['trader_name'], // ชื่อผู้ซื้อขาย$company['trader_company_type'], // บริษัทผู้ค้าประเภท$บริษัท['trader_street'], // ที่อยู่ถนนของผู้ซื้อขาย$บริษัท['trader_postcode'], // รหัสไปรษณีย์ของผู้ซื้อขาย$บริษัท['trader_city'] // เมืองของผู้ซื้อขาย - } catch (ViesException $viesException) {echo 'ไม่สามารถดำเนินการตรวจสอบ VAT: ' $viesException->getMessage();ออก (2); } catch (ViesServiceException $viesServiceException) {echo 'ไม่สามารถดำเนินการตรวจสอบ VAT: ' $viesServiceException->getMessage();ออก (2); }echo ($vatResult->isValid() ? 'Valid' : 'Not valid') PHP_EOL;echo 'ตัวระบุ:' . $vatResult->getIdentifier() PHP_EOL;echo 'วันที่และเวลา: ' . $vatResult->getRequestDate()->format('d/m/Y H:i') PHP_EOL;echo 'ชื่อบริษัท: ' . $vatResult->getName() PHP_EOL;echo 'ที่อยู่บริษัท: ' . $vatResult->getAddress() PHP_EOL;echo 'ชื่อผู้ซื้อขายตรงกัน: ' $vatResult->getNameMatch() PHP_EOL;echo 'การจับคู่ประเภทบริษัทของผู้ซื้อขาย:' $vatResult->getCompanyTypeMatch() PHP_EOL;echo 'การจับคู่ถนนของผู้ซื้อขาย: ' $vatResult->getStreetMatch() PHP_EOL;echo 'การจับคู่รหัสไปรษณีย์ของผู้ซื้อขาย: ' $vatResult->getPostcodeMatch() PHP_EOL;echo 'การจับคู่เมืองของผู้ซื้อขาย: ' $vatResult->getCityMatch() PHP_EOL;เอคโค PHP_EOL;
เมื่อคุณรันสิ่งนี้ คุณจะได้รับผลลัพธ์ดังต่อไปนี้:
Valid Identifier: WAPIAAAAWaYR0O8D Date and time: 21/10/2018 02:00 Company name: NV OR NATIONALE MAATSCHAPPIJ DER BELGISCHE SPOORWEGEN Company address: FRANKRIJKSTRAAT 56 1060 SINT-GILLIS (BIJ-BRUSSEL) Trader name match: Trader company type match: Trader street match: Trader postcode match: Trader city match:
นี่คือรายการผลิตภัณฑ์หรือโครงการที่รวมแพ็คเกจ VIES นี้
ชุด Symfony โดย MyOnlineStore
แซนวิช/vies-มัด
หากคุณมีผลิตภัณฑ์หรือโปรเจ็กต์ที่ใช้แพ็คเกจนี้ และต้องการระบุแหล่งที่มาสำหรับงานของคุณ โปรดส่งอีเมลถึงฉันหรือส่ง Ping มาให้ฉันทาง Twitter หรือ Facebook
หากคุณต้องการมีคอนเทนเนอร์ Docker ตอนนี้คุณสามารถใช้คอนเทนเนอร์ที่ออกแบบมาเพื่อจุดประสงค์นั้นได้แล้ว
นักเทียบท่าวิ่ง --rm -d -p 8000:18080 dragonbe/vies-web
ชี้เบราว์เซอร์ของคุณไปที่ localhost:8000 เพื่อใช้เว็บอินเตอร์เฟสสำหรับตรวจสอบ VAT
Microsoft Dynamics GP - การตรวจสอบหมายเลขทะเบียนภาษีของสหภาพยุโรปแบบเรียลไทม์ของ Dynamics GP โดยใช้ VIES
โครงการกฎหมาย RIA ยอดนิยมของสหภาพยุโรป
ตัวอย่างโค้ด PHP - HotExamples.com
สำหรับกรีซ รหัส ISO ของประเทศสากลคือ GR แต่สำหรับ VAT IDN จะใช้คำนำหน้า EL ขอขอบคุณ Johan Wilfer สำหรับการรายงานสิ่งนี้
ตั้งแต่วันที่ 1 มกราคม 2021 สหราชอาณาจักรไม่ได้เป็นสมาชิกของสหภาพยุโรปอีกต่อไป และด้วยเหตุนี้ บริการ VIES ที่ให้บริการโดยคณะกรรมาธิการยุโรปจึงไม่ตรวจสอบหมายเลขประจำตัวผู้เสียภาษีมูลค่าเพิ่มสำหรับสหราชอาณาจักรอีกต่อไป มีข้อยกเว้นอยู่ประการหนึ่ง นั่นคือสำหรับไอร์แลนด์เหนือ (XI) ซึ่งสามารถตรวจสอบรหัส VAT ได้โดยใช้ไลบรารีนี้และบริการ EC VIES
DragonBeVies ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT ดูรายละเอียดในไฟล์ LICENSE ที่ให้มา