DEV Community

Pablo Nieto
Pablo Nieto

Posted on

Solucionando Validador VIES with @etld SDK

# Tutorial técnico para implementar un Validador VIES usando @etld Python SDK (v3.2.0)

# Vamos a crear un script para validar números de IVA de compañías europeas
# utilizando el sistema VIES (VAT Information Exchange System) de la UE.

# Importamos las bibliotecas necesarias
from etld import Transform, Context, step

# Configuración del contexto ETL
context = Context(
    source_type='API',
    source='http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl',
    destination_type='Local',
    destination='vies_validation_results.csv'
)

# Definimos una función para validar cada número de IVA
@step
def validate_vat_numbers(context):
    # Obtención de datos - lista de números de IVA a validar
    vat_numbers = context.pull('vat_numbers')

    # Lista que almacenará los resultados de la validación
    validation_results = []

    for vat in vat_numbers:
        # Llamada al servicio VIES
        response = context.source.service.checkVat(countryCode=vat['country_code'], vatNumber=vat['number'])

        # Agregamos el resultado a la lista, incluyendo si es válido y el nombre de la empresa
        validation_results.append({
            'VAT Number': vat['number'],
            'Valid': response.valid,
            'Company Name': response.name if response.valid else 'N/A',
            'Request Date': response.requestDate.strftime('%Y-%m-%d')
        })

    # Enviamos los resultados hacia el destino configurado
    context.push(validation_results)

# Definición del transformador
validator = Transform(
    context=context,
    steps=[validate_vat_numbers]
)

# Ejecución del proceso de validación
if __name__ == '__main__':
    # Lista ficticia de números de IVA para ilustración
    validator.context.register_source('vat_numbers', [
        {'country_code': 'DE', 'number': '123456789'},
        {'country_code': 'FR', 'number': '987654321'},
        # Agrega más números según sea necesario
    ])

    # Ejecutamos el transformador
    validator.run()
Enter fullscreen mode Exit fullscreen mode

Para ejecutar este script:

  1. Asegúrate de tener instalada la versión 3.2.0 del SDK de @etld.
  2. Guarda el script en un archivo Python, por ejemplo, validador_vies.py.
  3. Ejecuta el script usando el intérprete Python en tu terminal: python validador_vies.py.

Este script conectará al servicio VIES, validará los números de IVA proporcionados y generará un archivo CSV con los resultados.

Top comments (0)