![]() |
PHP Envío a TBAI GIP
Buenos días,
Me acabo de poner con la programación en php para el envío de XML a TBAI a Gipuzkoa. Estoy utilizando el código que sugerís a continuación y recibo en todo momento el siguiente error: " No se puede conectar con la TBAI GIP. Error: unable to use client certificate (no key found or wrong pass phrase?) Respuesta de la TBAI GIP: 312 " Tengo un certificado pfx, el cual indico en la línea de declaración del CURLOPT_SSLCERT y añado la siguiente linea: curl_setopt($soap_do, CURLOPT_SSLCERTPASSWD, $pass); Si utilizo una conexión más sencilla, como la que indico a continuación, recibo el siguiente error: $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $server); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 100); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $requestXML); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); ERROR: " 01 Rechazado Baztertua 001 Error: No se ha utilizado certificado de cliente. Errorea: Ez da erabili bezeroaren ziurtagiririk. " Muchísimas gracias por vuestra ayuda. Cita:
|
Buenos días,
Estoy con el formato LROE 240 de la DFB. Sobre el campo "Factura emitida", "TicketBai" hay que codificar el fichero TicketBai en Base64. El fichero TicketBai al que se refieren que hay que codificar, es el fichero ya firmado, no? Gracias |
Cita:
El error parece claro, no les está llegando el certificado al enviar. |
Cita:
|
Cita:
En el envío a GIP o BAtUZ hay que identificarse, pero no firmar El certificado ha de estar tb instalado en el navegador (creo) El .pem no requiere pass Si necesitas el "como" tengo un apaño para importar certificados pfx y pasarlos a pem Ya dices |
Buenas,
tengo este pequeño código para pasar el certificado a pem, pero sigue sin funcionarme. Código:
$data = file_get_contents($dir_cert);Muchas gracias!! Cita:
|
Buenos días!!!
Ya conseguí la conexión. Ahora toca pegarse con el XML. Muchas gracias, Cita:
|
Cita:
Buenas Tengo el mismo problema y me ha parecido super bizarro el mensaje y sobre todo la ayuda que da la documentación sobre él. {StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: eus-bizkaia-n3-mensaje-respuesta: Todos los registros incluidos en la petición son incorrectos. eus-bizkaia-n3-codigo-respuesta: B4_1000002 eus-bizkaia-n3-numero-registro: eus-bizkaia-n3-tipo-respuesta: Incorrecto Alguién sabe como solucionarlo o por donde tirar? un saludo y gracias |
Cita:
|
Buenas,
Acabo de hacer una prueba de envío del 140 y me sale un error ya conocido: Cita:
Y, efectivamente, no existe, por lo que he probado con la de la versión 1.0.2: Y esa sí que existe, por lo que he modificado la cabecera del 140 para que coja la URL de la versión 1.0.2 y... ¡sorpresa! error 500 (error interno del servidor). Es decir, que con la URL de la versión 1.0.1 dice que no encuentra el xsd, y cuando se pone el xsd correcto da un error 500. ¡Maravilloso! ¿A alguien más le pasa? ¿Alguna solución? |
Hola a todos.
¿Alguien esta teniendo problemas hoy lunes al enviar a Bizkaia?. |
Envio XML
Buenos días,
Hoy he estado en un Webinar sobre "Batuz" y me ha parecido entender hay que enviar el XML firmado a la hacienda. Yo tenía entendido que los datos del XML se envían codificados en Base64 sobre el fichero LROE y en ningún momento hay que enviar el XML firmado. El XML firmado tenemos que tenerlo guardado por si hay alguna inspección o algo similar. Podéis decirme si estoy en lo correcto? Gracias |
Cita:
Un Saludo. |
Cita:
Gracias |
Cita:
Un Saludo. |
Cita:
|
Hola.
Lo interesante es la última pregunta. https://www.deia.eus/bizkaia/2021/05...a/1122904.html Cuando el rio suena. |
Cita:
Suponiendo que el negocio abre 300 días al año, se generarían 300.000 XML al año y 1.200.000 en 4 años, lo que a unos 15KB por XML hace la friolera de 18GB, siendo el número de XML individuales y el espacio en disco inmanejables. La cosa se complica si el programa, como ocurre en nuestro caso, hace copias de seguridad diarias en la nube, y en estas circunstancias la única solución posible es almacenar los XML comprimidos en una base de datos capaz de hacer copias de seguridad incrementales o diferenciales, cosa que no todas hacen. Todo un reto |
Cita:
Yo lo veo más sencillo que conservar eso en papel... ;);) |
Buenas, estoy enviando datos a la DFB y me devuelve este error, os ha pasado o sabéis a que puede ser debido?
<html><head><title>Error</title></head><body>Bad Request</body></html> Gracias |
Cita:
|
Cita:
Lo se. Nuestro trabajo es dar soluciones (más o menos complejas) a esos problemas. Por eso nos pagan. |
Buenas tardes, alguien ha probado a enviar datos con el comando de Windows curl?
El programa de gestión que tenemos es bastante antiguo y necesito tirar de programa externos para hacer todo lo que piden. Si alguno lo ha utilizado podría poner los parámetros que ha puesto Gracias |
Memoria TBAI
Hola,
Estoy preaprando la memoria para darnos de alta como software garante. Aún no tengo todo acabado. Alguien que este usando los componentes de chilckat puede decirme que certificados permite usar?, ya que hay que indicar los tipos de certificados permitidos. El QR debe aparecer en la parte inferior, pero no se especifica la alineación, el QR se puede alinear libremente? El Qr debe de aparacer en todas las páginas de factura o solo en la última? Gracias |
cabecera esta mal informada
Buenos días,
Envió el 140 y me dice que la cabecera esta mal informada. 1- No se si se refiere a la cabecera del xml 140 o a los datos de cabecera que mandamos para realizar el envió. 2- El certificado de empresa tiene que coincidir con los datos de la cabecera del envió? Gracias. |
Yo para el curl creo así los parámetros, y luego ejecuto el curl con shellexecute.
Entiendo que es correcto porque el servidor me devuelve la siguiente respuesta: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision"> <Salida> <FechaRecepcion>25-05-2021 18:20:50</FechaRecepcion> <Estado>01</Estado> <Descripcion>Rechazado</Descripcion> <Azalpena>Baztertua</Azalpena> <ResultadosValidacion> <Codigo>001</Codigo> <Descripcion>Error: No se ha utilizado certificado de cliente.</Descripcion> <Azalpena>Errorea: Ez da erabili bezeroaren ziurtagiririk.</Azalpena> </ResultadosValidacion> </Salida> </ns2:TicketBaiResponse> Lo cual es correcto imagino, ya que no le estoy enviando el certificado. Para enviar el certificado en curl, en teoría sería así:
Yo ando un poco perdido con el tema del certificado. Sirve enviar uno de prueba? (Me interesa saberlo porqué aqui: web.uanataca.com/es/certificados-prueba se pueden conseguir. También hay otros sitios) Lo que pasa es que cuando envio uno de estos certificados me sigue dando el mismo error y tengo mis dudas de si no lo envío bien o realmente no és válido (tampoco sé si debe ser crt, pem). Alguien me puede contestar a esto? Por cierto, soy nuevo en el foro y pido perdón por si no he puesto bien las etiquetas del código. Muchas gracias. |
Cita:
Si el certificado utilizado para firmar no es de la empresa o autónomo que emite la factura, es preciso añadir: Código:
<EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario>"T" es el valor de la clave L4 de la página 15 del documento de especificaciones de TicketBAI Saludos |
Cita:
Lo mismo de mi respuesta anterior a Noe277 Si el certificado utilizado para firmar no es de la empresa o autónomo que emite la factura, es preciso añadir: Código:
<EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario>"T" es el valor de la clave L4 de la página 15 del documento de especificaciones de TicketBAI Saludos |
Cita:
Código:
request.Headers["eus-bizkaia-n3-data"] = "{\"con\": \"LROE\", \"apa\": \"1.1\", \"inte\": {\"nif\": \"" + Nif + "\",\"nrs\":\"" + RazonSocial + "\",\"ap1\": \"" + apellido1 + "\",\"ap2\": \"" + apellido2+ "\"},\"drs\": { \"mode\": \"140\",\"ejer\": \"" + ejercicioPROVISIONAL + "\"}};"; |
Cita:
¿Cual es el código y el mensaje exacto del error? |
Cita:
Eso te servirá para avanzar un paso más y saber si lo envía correctamente, pero entonces obtendrás un error de este estilo: <012 - Aviso: Error en verificación alta-inscripción software TicketBAI: los datos de registro no coinciden.> Que significa que el certificado llega bien, pero no "cuadra" con los datos que tienen ellos. Al final, para poder enviar facturas y que te las acepten, debes usar un certificado "bueno", que coincida con los datos de empresa y que "cuadre" con los datos que tienen ellos (hay que darlos de alta). Cita:
|
Hola a todos!
Me acaban de endosar la adaptación a TicketBAI de una pequeña aplicación de facturación. Hemos adquirido los componentes SecureBlackBox2020 y ya tengo dos prototipos de prueba: uno de firma del XML y otro para el envío TLS del XML firmado a la Hacienda de Gipuzkoa. Adelanto ya que nunca he tenido que pelearme con certificados digitales y todo esto es nuevo para mí. La duda que me surge es que, tanto para la firma como para el envío, al cargar el certificado tengo que especificar su contraseña. Entiendo que la firma del XML debe ser automática, sin que intervenga el usuario. ¿Hay alguna forma de firmar o enviar el documento firmado sin que el usuario tenga que indicar su contraseña en, por ejemplo, una pantalla de configuración de la aplicación? Muchas gracias. Nota: soy nuevo en el foro y no he encontrado una opción de nuevo mensaje, por lo que he pulsado en respuesta rápida. SI he hecho mal que alguien me corrija. |
Cita:
En cuanto a HerensugeBeltz. Nosotros guardamos en local el certificado que vamos a usar para que no nos lo pida cada vez, aunque la contraseña si la pide. Hay maneras de instalar el certificado para que no pida la contraseña pero esto ya es externo a la aplicación es mas del almacén de certificados. |
Cita:
Hola Canfora, a ver si esto te puede ayudar, ya que llegué a ese punto, y finalmente la conexión me la validó (aunque ahora estoy con otro problema): como te indica Bilbur, debes usar un certificado de tipo PEM, pero según he hecho yo, generando 3 ficheros PEM por separado (usando el comando openssl): el del cliente, el de la clave privada, y el de la autoridad certificadora: Cita:
Al final, el código de la petición cURL es este: Código PHP:
|
Cita:
Si miras el documento de ESPECIFICACIONES FUNCIONALES Y TECNICAS DEL ENVIO MASIVO DEL LROE, en la página 17 y 18 verás: Para el LROE, se deben incluir en la cabecera HTTP de la petición obligatoriamente los siguientes parámetros con los valores que se indican a continuación: ▪ Accept-Encoding = gzip. ▪ Content-Encoding = gzip. ▪ Content-Length = tamaño del cuerpo del mensaje. ▪ Content-Type = application/octet-stream. ▪ eus-bizkaia-n3-version = 1.0. ▪ eus-bizkaia-n3-content-type = application/xml. ▪ eus-bizkaia-n3-data = contenido del fichero json. Json - eus-bizkaia-n3-data = { "con": "LROE", "apa": "1.1", "inte": { "nif": "número de identificación fiscal", "nrs": "nombre o Razón social", "ap1": "primer apellido", "ap2": "segundo apellido" }, "drs": { "mode": "140/240", "ejer": "ejercicio" } } Creo que te falta el content-length, el content-Type creo que esta mal y por lo demás todo OK. Una cosilla para todos, si sabéis...... el LROE de facturas recibidas hay que comprimir el fichero en formato gzip? Gracias |
(002) Error: No se permite firma Enveloping.
Hola a todos, soy nuevo en el foro, aunque ya lo llevo usando un tiempo, y me ha sido de gran ayuda para la generación de las facturas TBAI.
El problema con el que me encuentro ahora, es que al realizar el envío, recibo este error: Código:
(002) Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se permite firma Enveloping.Para la generación de la firma en el documento, utilizo el comando de la aplicación Autofirma, con las siguientes opciones: Código:
autofirma sign -i ruta/fichero.xml -o ruta/fichero.firmado.xml -format xades -store pkcs12:certificado.pfx -password ***** -filter "imported"Uno de chilkat Y otro de uanataca (lo siento, aún no puedo poner enlaces al ser usuario nuevo) Posteriormente, vi el mensaje #470 en el hilo, y añadí la opción que indica poner: Código:
-config="format=XAdES Enveloped\npolicyIdentifier=h......"Alguien sabría decirme qué más debo hacer para obtener la firma en el formato Enveloped?? Gracias! |
Cita:
Gracias! Tiraré por este camino de los certificados de prueba de Izenpe (solo para probar el envío del certificado). Después ya me haré con uno "bueno" para seguir con los errores de validación del xml que puedan haber, que seguro que los habrá xD |
Cita:
Cierto, falta el content-length pero de momento no se me ha quejado de esto. Si me da algún tipo de problema ya lo pondré. El content-type ya digo, yo tuve que cambiar el "application/octet-stream" por "application/xml;charset=UTF-8". Esto lo encontré en algún documento de FAQ para desarrolladores (concretamente el documento se llama "Problemas y dudas frecuentes en servicios de alta y anulación de facturas"). Lo encontré de chiripa poniendo "ticket bai error 415" en google |
Cita:
Cuando ya tienes convertido el certificado a formato PEM, ya no necesitas la clave. Puedes quitar la línea curl_setopt($ch, CURLOPT_SSLKEYPASSWD, $clave); Tampoco se necesita el certificado CA de la Autoridad Certificadora. Así que puede quitar también curl_setopt($ch, CURLOPT_CAINFO, PATH_TEMP . '/ca.pem'); Saludos |
Cita:
AutoFirmaCommandLine.exe sign -i nombre_fichero -o nombre_fichero_firmado -store pkcs12:nombre_certificado.p12 -password contraseña_certificado -filter nombre_certificado.p12 -format xades -xml -config "format=XAdES Enveloped \npolicyIdentifier=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf \npolicyIdentifierHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es= \npolicyIdentifierHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256 \npolicyQualifier=https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf A mi me funciona bien, aunque tarda unos 3 sg por cada fichero. Esto lo pusieron en el foro hace algún tiempo y me ayudo mucho. |
| La franja horaria es GMT +2. Ahora son las 22:52:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi