مكون يستخدم نظام تبادل معلومات ضريبة القيمة المضافة (VIES) التابع للمفوضية الأوروبية (EC) للتحقق والتحقق من صحة أرقام تسجيل ضريبة القيمة المضافة في الاتحاد الأوروبي، باستخدام PHP وComposer.
توفر فئة Vies
وظيفة لإجراء استدعاء SOAP إلى VIES وإرجاع كائن CheckVatResponse
الذي يحتوي على المعلومات التالية:
رمز البلد (سلسلة): تدوين مكون من حرفين لرمز البلد
رقم تسجيل ضريبة القيمة المضافة (سلسلة): يحتوي على رقم التسجيل الكامل بدون رمز البلد
تاريخ الطلب (DateTime): تاريخ تقديم الطلب
صالح (منطقي): علامة تشير إلى أن رقم التسجيل صالح (TRUE) أم لا (FALSE)
الاسم (السلسلة): اسم الشركة المسجلة (إذا تم تقديمه من قبل دولة عضو في المفوضية الأوروبية)
العنوان (سلسلة): عنوان الشركة المسجلة (إذا تم توفيره من قبل دولة عضو في المفوضية الأوروبية)
جاء في موقع المفوضية الأوروبية:
للقيام بالتوريد داخل المجتمع دون فرض ضريبة القيمة المضافة، يجب عليك التأكد من أن الشخص الذي تقوم بتوريد البضائع إليه هو شخص خاضع للضريبة في دولة عضو أخرى، وأن البضائع المعنية قد غادرت، أو ستغادر دولة عضو إلى أخرى آنسة. يجب أن يكون رقم ضريبة القيمة المضافة موجودًا أيضًا في الفاتورة.
مزيد من المعلومات على http://ec.europa.eu/taxation_customs/vies/faqvies.do#item16
في 25 مايو 2018، أصبحت اللائحة العامة لحماية البيانات أو الناتج المحلي الإجمالي (GDPR) بمثابة قانون في جميع الدول الأعضاء الأوروبية البالغ عددها 28 دولة. هل ستكون حزمة خدمات VIES هذه متوافقة مع القانون العام لحماية البيانات (GDPR)؟
باختصار: نعم.
الإجابة الأطول هي أن حزمة VIES هذه تتفاعل فقط مع خدمة التحقق من معرف ضريبة القيمة المضافة التي تقدمها المفوضية الأوروبية. يعد التحقق من ضريبة القيمة المضافة إلزاميًا في الدول الأوروبية، وبالتالي يُسمح بهذه الخدمة كأساس قانوني وقانوني. يرجى قراءة المزيد عن هذا في DPO-3816.1 الأوروبي. لا تقوم هذه الخدمة بتخزين أي بيانات بنفسها أو بجمع معلومات أكثر مما هو مطلوب بشكل صارم بموجب القانون وما توفره خدمة EC VIES.
عند تنفيذ حزمة الخدمة هذه في مشروعك الخاص، تأكد من أنك تتأكد من أنك تقوم فقط بتخزين معرف ضريبة القيمة المضافة والطابع الزمني للتحقق ونتيجة التحقق ومعرف التحقق المحدد اختياريًا المقدم من خدمة 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 أو عامل أو أي شيء آخر) لأن هذا سيكون على الأرجح حالة الاستخدام الأكثر شيوعًا لديك.
<?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 = new 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' // معرف ضريبة القيمة المضافة للطالب);
$vatResult = $vies->validateVat('BE', // رمز بلد التاجر '0203430576', // معرّف ضريبة القيمة المضافة للتاجر'BE', // رمز بلد الطالب '0811231190' // معرّف ضريبة القيمة المضافة للطالب'B-Rail', // اسم التاجر "NV"، // نوع الشركة التجارية "Frankrijkstraat 65"، // شارع التاجر العنوان '1060'، // الرمز البريدي للتاجر "Sint-Gillis" // مدينة التاجر );
الوظيفة الأكثر أهمية هي معرفة ما إذا كان معرف ضريبة القيمة المضافة صالحًا
echo ($vatResult->isValid() ? 'Valid' : 'غير صالح') . PHP_EOL;// النتيجة: صالحة
صدى "المعرف:" . $vatResult->getIdentifier() . PHP_EOL;// النتيجة: المعرف: WAPIAAAAWaXGj4Ra
ملاحظة: تقوم خدمة VIES بإرجاع التاريخ والمنطقة الزمنية، ولكن ليس الوقت
صدى "التاريخ والوقت:" . $vatResult->getRequestDate()->format('r') . PHP_EOL;// النتيجة: التاريخ والوقت: السبت، 31 أغسطس 2019 00:00:00 +0200
صدى "اسم الشركة:" . $vatResult->getName() . PHP_EOL;// النتيجة: اسم الشركة: NV OR NATIONALE MAATSCHAPPIJ DER BELGISCHE SPOORWEGEN
صدى "عنوان الشركة:" . $vatResult->getAddress() . PHP_EOL;// النتيجة: عنوان الشركة: FRANKRIJKSTRAAT 56 1060 SINT-GILLIS (BIJ-BRUSSEL)
echo "تطابق اسم المتداول:" . $vatResult->getNameMatch() . PHP_EOL;// النتيجة: تطابق اسم التاجر:
echo "مطابقة نوع شركة التاجر:" . $vatResult->getCompanyTypeMatch() . PHP_EOL;// النتيجة: تطابق نوع الشركة المتداولة:
صدى "مباراة شارع المتداول:" . $vatResult->getStreetMatch() . PHP_EOL;// النتيجة: مطابقة شارع المتداول:
echo "تطابق الرمز البريدي للمتداول:" . $vatResult->getPostcodeMatch() . PHP_EOL;// النتيجة: تطابق الرمز البريدي للمتداول:
صدى "تطابق مدينة المتداول:" . $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' => 'سينت جيليس', ];try {$vatResult = $vies->validateVat($company['country_code'], // رمز بلد التاجر$company['vat_id'], // معرف ضريبة القيمة المضافة للمتداول'BE', // رمز بلد الطالب (الخاص بك) رمز البلد)'0811231190'، // معرف ضريبة القيمة المضافة الخاص بالطالب (معرف ضريبة القيمة المضافة الخاص بك)$company['trader_name']، // تاجر name$company['trader_company_type'], // نوع شركة التاجر$company['trader_street'], // عنوان شارع التاجر$company['trader_postcode'], // الرمز البريدي للتاجر$company['trader_city'] // مدينة التاجر ); } Catch (ViesException $viesException) {echo "لا يمكن معالجة التحقق من صحة ضريبة القيمة المضافة:" . $viesException->getMessage();exit (2); } Catch (ViesServiceException $viesServiceException) {echo "لا يمكن معالجة التحقق من صحة ضريبة القيمة المضافة:" . $viesServiceException->getMessage();exit (2); }echo ($vatResult->isValid() ? 'Valid' : 'غير صالح') . PHP_EOL;صدى "المعرف:" . $vatResult->getIdentifier() . PHP_EOL;صدى "التاريخ والوقت:" . $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
ساندويتش/تنافس-حزمة
إذا كان لديك منتج أو مشروع يستخدم هذه الحزمة وتريد بعض الإسناد لعملك، أرسل لي بريدًا إلكترونيًا أو اتصل بي على Twitter أو Facebook.
إذا كنت ترغب في الحصول على حاويات Docker، فيمكنك الآن الاستفادة من حاوية مصممة لهذا الغرض.
docker run --rm -d -p 8000:18080 dragonbe/vies-web
قم بتوجيه متصفحك إلى localhost:8000 لاستخدام واجهة الويب للتحقق من صحة ضريبة القيمة المضافة.
Microsoft Dynamics GP - Dynamics GP التحقق من صحة رقم التسجيل الضريبي للاتحاد الأوروبي في الوقت الحقيقي باستخدام VIES
مشاريع قانون RIA الشهيرة في الاتحاد الأوروبي
أمثلة على كود PHP - HotExamples.com
بالنسبة لليونان، رمز ISO الخاص بالدولة هو GR ، ولكن بالنسبة لـ VAT IDN، فإنهم يستخدمون البادئة EL . شكرًا ليوهان ويلفر على الإبلاغ عن هذا.
منذ 1 يناير 2021، لم تعد المملكة المتحدة عضوًا في الاتحاد الأوروبي ونتيجة لذلك، لم تعد خدمة VIES التي تقدمها المفوضية الأوروبية تتحقق من صحة معرف ضريبة القيمة المضافة للمملكة المتحدة. ومع ذلك، هناك استثناء واحد وهو لأيرلندا الشمالية (XI) حيث يمكن التحقق من صحة معرف ضريبة القيمة المضافة باستخدام هذه المكتبة وخدمة EC VIES.
تم إصدار DragonBeVies بموجب ترخيص MIT. راجع ملف الترخيص المرفق للحصول على التفاصيل.