Intercambio de mensajes con la AEAT Agencia Tributaria
Posted: Wed Mar 20, 2019 2:02 pm
Buenas tardes,
estamos adaptando el sistema informatico utilizando al entorno de pruebas de la AEAT para poder hacer intercambio de mensajes xml .
Intentamos utilizar CURL.EXE que lo trae el propio Windows 10.
Como CURL.EXE parece ser que no maneja los certificados pfx.p12 emitidos por la FNMT (Fabrica Nacional de Moneda y Timbre) los pasamos a dos ficheros pem, uno con el certificado y otro con la clave privada con openssl.exe:
Desde el símbolo de sistema:
Con eso se generan los ficheros en formato PEM para utilizar con curl.exe; uno es CertificadoFNMT.pem (el certificado) y el otro CertificadoFNMT_key.pem (la clave).
Después para por ejemplo tratar de comprobar un CIF/NIF utilizamos la llamada a CURL.EXE siguiente:
Siendo el xml para la consulta del NIF: EnvioNif.xml
Y la respuesta de la AEAT es como que el certificado de la FNMT tuviera algún fallo. Pero hemos comprobado que el certificado es correcto, eso si, en el formato pfx.p12 original antes de pasarlo por el openssl para generar los archivos .pem
Fallo devuelto por la AEAT:
Error 401 No autorizado. Se ha producido un error al verificar el certificado presentado. Las causas más probables de este error son:
El certificado no ha sido firmado por una autoridad reconocida.
El tipo de certificado no es válido para el servicio al que se quiere acceder.
El certificado ha expirado.
Pero ninguno de los tres casos son la causa del posible error.
Les ruego me ayuden porque ya no se qué más pruebas hacer para poderlo echar a andar.
De antemano gracias.
Cordiales Saludos.
estamos adaptando el sistema informatico utilizando al entorno de pruebas de la AEAT para poder hacer intercambio de mensajes xml .
Intentamos utilizar CURL.EXE que lo trae el propio Windows 10.
Como CURL.EXE parece ser que no maneja los certificados pfx.p12 emitidos por la FNMT (Fabrica Nacional de Moneda y Timbre) los pasamos a dos ficheros pem, uno con el certificado y otro con la clave privada con openssl.exe:
Desde el símbolo de sistema:
Code: Select all
C:\openssl-1.1.1-win64-mingw\openssl pkcs12 -in ./CertificadoFNMT.pfx.p12 -out ./CertificadoFNMT.pem -clcerts -nokeys
C:\openssl-1.1.1-win64-mingw\openssl pkcs12 -in CertificadoFNMT.pfx.p12 -out CertificadoFNMT_key.pem -nocerts -nodes
Después para por ejemplo tratar de comprobar un CIF/NIF utilizamos la llamada a CURL.EXE siguiente:
Code: Select all
curl.exe --connect-timeout 60 -m 60 -S -L -d "@EnvioNif.xml" -o RespuestaNif.xml --cert ./CertificadoFNMT.pem --key ./CertificadoFNMT_key.pem https://www1.agenciatributaria.gob.es/wlpl/BURT-JDIT/ws/VNifV2SOAP --trace ./RespuestaTrace.txt --pass CALVEEXPORTACIONCERTIFICADO
Siendo el xml para la consulta del NIF: EnvioNif.xml
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:vnif="http://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/burt/jdit/ws/VNifV2Ent.xsd">
<soapenv:Header/>
<soapenv:Body>
<vnif:VNifV2Ent>
<vnif:Contribuyente>
<vnif:Nif>99999999R</vnif:Nif>
<vnif:Nombre>JUAN MANUEL ESPAÑOL</vnif:Nombre>
</vnif:Contribuyente>
</vnif:VNifV2Ent>
</soapenv:Body>
</soapenv:Envelope>
Fallo devuelto por la AEAT:
Error 401 No autorizado. Se ha producido un error al verificar el certificado presentado. Las causas más probables de este error son:
El certificado no ha sido firmado por una autoridad reconocida.
El tipo de certificado no es válido para el servicio al que se quiere acceder.
El certificado ha expirado.
Pero ninguno de los tres casos son la causa del posible error.
Les ruego me ayuden porque ya no se qué más pruebas hacer para poderlo echar a andar.
De antemano gracias.
Cordiales Saludos.