Hola a todos,
Buscando la URL de marras, me he topado con
esta entrada en StackOverflow, donde se muestra la siguiente URL:
Código:
https://ec.europa.eu/taxation_customs/vies/rest-api/ms/[country]/vat/[vat]
En efecto, parece funcionar como se espera, por ejemplo, la siguiente URL, y, mediante un "simple" HTTP GET:
Código:
https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/122268496
... ya retorna un JSON que nos da la respuesta de si el VAT es válido o no.
Por otro lado, parece que la URL "base" que se necesita es la siguiente:
Código:
https://ec.europa.eu/taxation_customs/vies/rest-api/
... a la que se podría ya añadir el método que se quiere utilizar:
Código:
https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number
Acabo de probarlo y funciona como se espera, esto es, enviando a dicho método (mediante HTTP POST) el JSON / argumento necesario, tal como se define aquí:
Código:
https://ec.europa.eu/assets/taxud/vow-information/swagger_publicVAT.yaml
... y puede verse "mejor" en el editor
Swagger, la respuesta es la esperada.
P.D. Puede probarse todo esto fácilmente en
REQ BIN.
URL:
https://ec.europa.eu/taxation_custom...eck-vat-number
Method: POST
JSON de entrada:
Código:
{
"countryCode": "DE",
"vatNumber": "122268496"
}
JSON de salida / respuesta:
Código:
{
"countryCode": "DE",
"vatNumber": "122268496",
"requestDate": "2023-09-28T12:41:19.417Z",
"valid": true,
"requestIdentifier": "",
"name": "---",
"address": "---",
"traderName": "---",
"traderStreet": "---",
"traderPostalCode": "---",
"traderCity": "---",
"traderCompanyType": "---",
"traderNameMatch": "NOT_PROCESSED",
"traderStreetMatch": "NOT_PROCESSED",
"traderPostalCodeMatch": "NOT_PROCESSED",
"traderCityMatch": "NOT_PROCESSED",
"traderCompanyTypeMatch": "NOT_PROCESSED"
}
Supongo que puede jugarse un poco con todo esto, porque, en el archivo YAML se puede ver un JSON de entrada para el método de arriba tal que así:
Código:
{
"countryCode": "string",
"vatNumber": "string",
"requesterMemberStateCode": "string",
"requesterNumber": "string",
"traderName": "string",
"traderStreet": "string",
"traderPostalCode": "string",
"traderCity": "string",
"traderCompanyType": "string"
}
Como se ve en el ejemplo que he puesto arriba, no es necesario enviar toda esa información. Con las dos primeras claves se obtiene ya información. Podemos añadir las dos siguientes y también funciona. El resto de claves, imagino, son para utilizarlas sin las anteriores (sin al menos las dos primeras), es decir, para intentar obtener un VAT proporcionando el "traderName" únicamente, etc.