FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Consulta VIES (Números documentos de la UE)
Hola a todos.
Estoy intentando realizar en delphi una consulta al servicio VIES. Que sirve para validar Números de documentos de la Unión Europea.https://ec.europa.eu/taxation_custom...al-information En principio hay dos modos de hacerlo, con un servicio SOAP y otro REST. Estoy pegándome con los dos maneras pero no hay forma de hacerlo. Respecto al servicio REST no encuentro por ningún lado la url donde esta el servicio. Y con el soap al importar los wsdl en delphi dan un error. ¿Alguien ha conseguido descifrarlo? |
#2
|
||||
|
||||
Por lo que leí en la web que envías están publicados los endpoints en formato YAML para poder ser leido en la web https://editor.swagger.io/
El fichero YAML indica las "paths" que serían los endpoints y los parámetros que puedes utilizar. Descarge el fichero y luego en la web que mencionan ves al menú "File" -> "Import File" y seleccionas el fichero. Parece que hay tres endpoints /check-vat-number Ejemplo con CURL Código:
curl -X 'POST' \ 'https://editor.swagger.io/check-vat-number' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ "countryCode": "ES", "vatNumber": "X3245299E", "requesterMemberStateCode": "ES", "requesterNumber": "1", "traderName": "TEST", "traderStreet": "STR", "traderPostalCode": "08035", "traderCity": "Barcelona", "traderCompanyType": "eCommerce" }' /check-status Contenido del fichero YAML Código:
swagger: "2.0" info: description: "This is the contract for Vies on-the-Web endpoints. The checkVat service supports exact and approximate matching at the same time. In order to retrieve the requestIdentifier, the information about requesterMemberStateCode and requesterNumber have to be provided." version: "1.0.0" title: "Vies on-the-Web Endpoint" produces: - "application/json" schemes: - "https" paths: /check-vat-number: post: tags: - "public" summary: "Check a Vat Number for a specific country" operationId: "checkVatNumber" parameters: - name: "body" in: "body" description: "The request body" required: true schema: $ref: "#/definitions/CheckVatRequest" responses: "200": description: "Successful operation" schema: $ref: "#/definitions/CheckVatResponse" "400": description: "Bad Request" schema: $ref: "#/definitions/CommonResponse" "500": description: "Internal server error" schema: $ref: "#/definitions/CommonResponse" /check-vat-test-service: post: tags: - "public" summary: "Test the check vat service" operationId: "checkVatTestService" parameters: - name: "body" in: "body" description: "The request body" required: true schema: $ref: "#/definitions/CheckVatRequest" responses: "200": description: "Successful operation" schema: $ref: "#/definitions/CheckVatResponse" "400": description: "Bad Request" schema: $ref: "#/definitions/CommonResponse" "500": description: "Internal server error" schema: $ref: "#/definitions/CommonResponse" /check-status: get: tags: - "public" summary: "Check the status of each member states" operationId: "checkStatus" responses: "200": description: "Successful operation" schema: $ref: "#/definitions/StatusInformationResponse" "400": description: "Bad Request" schema: $ref: "#/definitions/CommonResponse" "500": description: "Internal server error" schema: $ref: "#/definitions/CommonResponse" definitions: Match: type: "string" enum: - "VALID" - "INVALID" - "NOT_PROCESSED" CheckVatRequest: type: "object" properties: countryCode: type: "string" vatNumber: type: "string" requesterMemberStateCode: type: "string" requesterNumber: type: "string" traderName: type: "string" traderStreet: type: "string" traderPostalCode: type: "string" traderCity: type: "string" traderCompanyType: type: "string" CheckVatResponse: type: "object" properties: countryCode: type: "string" vatNumber: type: "string" requestDate: type: "string" format: "date-time" valid: type: "boolean" requestIdentifier: type: "string" name: type: "string" address: type: "string" traderName: type: "string" traderStreet: type: "string" traderPostalCode: type: "string" traderCity: type: "string" traderCompanyType: type: "string" traderNameMatch: $ref: "#/definitions/Match" traderStreetMatch: $ref: "#/definitions/Match" traderPostalCodeMatch: $ref: "#/definitions/Match" traderCityMatch: $ref: "#/definitions/Match" traderCompanyTypeMatch: $ref: "#/definitions/Match" CountryStatus: type: "object" properties: countryCode: type: "string" availability: type: "string" enum: - "Available" - "Unavailable" - "Monitoring Disabled" StatusInformationResponse: type: "object" properties: vow: type: "object" properties: available: type: "boolean" countries: type: "array" items: $ref: "#/definitions/CountryStatus" CommonResponse: type: "object" properties: actionSucceed: type: "boolean" description: "Indicate if the action succeed or not" errorWrappers: $ref: "#/definitions/ErrorWrappers" ErrorWrappers: type: "array" description: "Indicate the cause of the error when actionSucceed is false." items: $ref: "#/definitions/ErrorWrapper" ErrorWrapper: type: "object" description: "Define information about an error" properties: error: type: "string" description: "The error code" message: type: "string" |
#3
|
||||
|
||||
Le he dedicado un rato y he llegado hasta aquí:
https://viesapi.eu/vies-rest-api-documentation/ También he llegado a la parte de "Pricing". Aparentemente es un servicio que va de 5 a 20 euros al mes. La dirección para la API es Poducción: https://viesapi.eu/api Test: https://viesapi.eu/api-test En esa página muestran un ejemplo de pruebas que funciona: https://test_id:test_key@viesapi.eu/...t/PL7171642051 y devuelve Código:
<result> <vies> <uid>b862fbfeb7f17341</uid> <countryCode>PL</countryCode> <vatNumber>7171642051</vatNumber> <valid>true</valid> <traderName>MICHAŁ CZAPCZYŃSKI</traderName> <traderCompanyType>---</traderCompanyType> <traderAddress>AL. WILANOWSKA 366 M88 02-665 WARSZAWA</traderAddress> <id>cfa7c7c272ab4ea1</id> <date>2023-09-27+02:00</date> <source>http://ec.europa.eu</source> </vies> </result> |
#4
|
||||
|
||||
Hola.
Lo primero gracias. Hasta ahí es donde yo llego. En cuento a la primera respuesta la url que sale es https://editor.swagger.io/check-vat-number y esa no puede ser ya que esa es la dirección del editor, no encuentro por ningún otro lado la url correcta. En cuento a la segunda, ese enlace se trata de una empresa que ha desarrollado su propia api para realizar las consultas y cobra por ello. Gracias otra vez. |
#5
|
||||
|
||||
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] Código:
https://ec.europa.eu/taxation_customs/vies/rest-api/ms/DE/vat/122268496 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/ Código:
https://ec.europa.eu/taxation_customs/vies/rest-api/check-vat-number Código:
https://ec.europa.eu/assets/taxud/vow-information/swagger_publicVAT.yaml 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" } 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" } Código:
{ "countryCode": "string", "vatNumber": "string", "requesterMemberStateCode": "string", "requesterNumber": "string", "traderName": "string", "traderStreet": "string", "traderPostalCode": "string", "traderCity": "string", "traderCompanyType": "string" } Última edición por dec fecha: 28-09-2023 a las 15:46:40. |
#6
|
||||
|
||||
Acabo de encontrar la url y ahora tengo que hacer que funcione. Cuando lo tenga pondré el código.
https://ec.europa.eu/taxation_customs/vies/rest-api/ y tiene los tres siguientes servicios: /check-vat-number /check-vat-test-service /check-status A la del estado es fácil hacerla funcionar, ya que no tiene parámetros. Me estoy pegando con el primero. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Suma de números pares que hay entre dos números | Daniel2622 | Lazarus, FreePascal, Kylix, etc. | 21 | 26-04-2017 23:47:29 |
Tablas de multiplicar para todos los números entre dos números | Daniel2622 | Lazarus, FreePascal, Kylix, etc. | 3 | 22-04-2017 01:47:59 |
Documentos UDF's | johan | Firebird e Interbase | 1 | 23-03-2010 18:19:01 |
Documentos XML | cone220 | Internet | 1 | 03-11-2004 18:49:35 |
Documentos pdf | roman | PHP | 5 | 27-09-2004 17:14:23 |
|