diff --git a/src/pretix/base/services/tax.py b/src/pretix/base/services/tax.py index 07255bfa08..287632d111 100644 --- a/src/pretix/base/services/tax.py +++ b/src/pretix/base/services/tax.py @@ -94,6 +94,10 @@ def _validate_vat_id_NO(vat_id, country_code): def _validate_vat_id_EU(vat_id, country_code): # Inspired by vat_moss library vat_id = vat_moss.id.normalize(vat_id) + + if not vat_id or len(vat_id) < 3: + raise VATIDFinalError(error_messages['invalid']) + number = vat_id[2:] if vat_id[:2] != cc_to_vat_prefix(country_code): diff --git a/src/tests/base/test_vat_id_validation.py b/src/tests/base/test_vat_id_validation.py index de65b87fe6..cd5386ee50 100644 --- a/src/tests/base/test_vat_id_validation.py +++ b/src/tests/base/test_vat_id_validation.py @@ -16,6 +16,12 @@ def test_eu_invalid_format(): validate_vat_id('AT12345', 'AT') +@responses.activate +def test_eu_no_prefix(): + with pytest.raises(VATIDFinalError): + validate_vat_id('12345', 'AT') + + @responses.activate def test_eu_country_mismatch(): with pytest.raises(VATIDFinalError):