FacturaScripts

Vies extends Vies
in package

Class created by Core/Internal/PluginsDeploy

Table of Contents

Constants

EU_COUNTRIES  : mixed = ['AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE'...
Códigos ISO aceptados por VIES (UE + XI para Irlanda del Norte tras el Brexit).
RESULT_ERROR  : mixed = -1
No se ha podido comprobar (extensión SOAP ausente, país no UE, red caída, etc.).
RESULT_INVALID  : mixed = 0
El número de IVA tiene formato correcto pero VIES lo da por inválido o inexistente.
RESULT_VALID  : mixed = 1
El número de IVA existe y está activo en el país indicado.
VIES_TIMEOUT  : mixed = 10
Timeout (en segundos) aplicado tanto a la conexión SOAP como al socket HTTP.
VIES_URL  : mixed = "https://ec.europa.eu/taxation_customs/vies/che...

Methods

check()  : int
Comprueba contra VIES si un número de IVA es válido en el país indicado.
fetch()  : array<string|int, mixed>|null
Consulta VIES y devuelve los datos del titular del NIF intracomunitario.
getLastError()  : string
Devuelve el mensaje de la última excepción capturada al hablar con VIES, o cadena vacía si la última llamada no produjo error de transporte/SOAP.
normalize()  : string
Normaliza un cifnif para enviarlo a VIES: lo pasa a mayúsculas, descarta separadores habituales (espacios, guiones, puntos, barras...) y, si el resultado empieza por el código ISO indicado, también lo elimina.
simulateFetchResponse()  : void
Fija una respuesta fija que {@see fetch()} devolverá sin tocar la red.
simulateViesResponse()  : void
Fija una respuesta fija que {@see check()} devolverá sin tocar la red.

Constants

EU_COUNTRIES

Códigos ISO aceptados por VIES (UE + XI para Irlanda del Norte tras el Brexit).

public mixed EU_COUNTRIES = ['AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'EL', 'ES', 'FI', 'FR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK', 'XI']

RESULT_ERROR

No se ha podido comprobar (extensión SOAP ausente, país no UE, red caída, etc.).

public mixed RESULT_ERROR = -1

RESULT_INVALID

El número de IVA tiene formato correcto pero VIES lo da por inválido o inexistente.

public mixed RESULT_INVALID = 0

RESULT_VALID

El número de IVA existe y está activo en el país indicado.

public mixed RESULT_VALID = 1

VIES_TIMEOUT

Timeout (en segundos) aplicado tanto a la conexión SOAP como al socket HTTP.

public mixed VIES_TIMEOUT = 10

VIES_URL

public mixed VIES_URL = "https://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl"

Methods

check()

Comprueba contra VIES si un número de IVA es válido en el país indicado.

public static check(string $cifnif, string $codiso[, bool $msg = true ]) : int

El cifnif se normaliza antes de enviarlo (ver normalize()), por lo que admite indistintamente "B12345678", "ES-B12345678" o "es b12345678".

Parameters
$cifnif : string

número de IVA (con o sin prefijo ISO)

$codiso : string

código ISO de país en mayúsculas y dos caracteres

$msg : bool = true

si true, registra warnings en el log ante errores de validación

Return values
int

uno de Vies::RESULT_VALID, Vies::RESULT_INVALID o Vies::RESULT_ERROR

fetch()

Consulta VIES y devuelve los datos del titular del NIF intracomunitario.

public static fetch(string $cifnif, string $codiso[, bool $msg = true ]) : array<string|int, mixed>|null

Junto al flag valid se incluye razón social y dirección si el país las publica (varios estados miembros las devuelven vacías por privacidad).

Parameters
$cifnif : string

número de IVA (con o sin prefijo ISO)

$codiso : string

código ISO de país en mayúsculas y dos caracteres

$msg : bool = true

si true, registra warnings en el log ante errores de validación

Return values
array<string|int, mixed>|null

array con claves valid (bool), name (string), address (string), o null si no se pudo completar la consulta

getLastError()

Devuelve el mensaje de la última excepción capturada al hablar con VIES, o cadena vacía si la última llamada no produjo error de transporte/SOAP.

public static getLastError() : string
Return values
string

normalize()

Normaliza un cifnif para enviarlo a VIES: lo pasa a mayúsculas, descarta separadores habituales (espacios, guiones, puntos, barras...) y, si el resultado empieza por el código ISO indicado, también lo elimina.

public static normalize(string $cifnif, string $codiso) : string

El codiso debe llegar ya en mayúsculas; si no, no se reconocerá como prefijo y se enviará tal cual a VIES.

Parameters
$cifnif : string

valor original tal como lo introduce el usuario

$codiso : string

código ISO de país en mayúsculas

Return values
string

cifnif normalizado, sin prefijo ISO

simulateFetchResponse()

Fija una respuesta fija que {@see fetch()} devolverá sin tocar la red.

public static simulateFetchResponse(array<string|int, mixed>|null $response) : void

Pensado exclusivamente para tests; pasar null para restaurar el comportamiento real.

Parameters
$response : array<string|int, mixed>|null

array con claves valid/name/address (o null en errores), o null para desactivar

simulateViesResponse()

Fija una respuesta fija que {@see check()} devolverá sin tocar la red.

public static simulateViesResponse(int|null $response) : void

Pensado exclusivamente para tests; pasar null para restaurar el comportamiento real.

Parameters
$response : int|null

uno de los Vies::RESULT_* o null para desactivar la simulación

On this page

Search results