Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   TICKET BAI (TicketBAI); Nuevo sistema de la Agencia Tributaria del Pais Vasco (https://www.clubdelphi.com/foros/showthread.php?t=94264)

luismartin 26-05-2021 16:44:16

Cita:

Empezado por Sistel (Mensaje 541057)
Hola luismartin,

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

Gracias Sistel! No tenía ni idea. El tema de los certificados y firmas digitales es muy alien para mi.

Sistel 26-05-2021 16:49:57

Cita:

Empezado por Band (Mensaje 541056)
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

Hola Band,

Es diferente el caso de envío a Bizkaia (en LROE) al caso de envío a Gipuzkoa (envío directo inmediato).
En el caso de Bizkaia (LROE):
Código:

Content-Type: application/octet-stream
eus-bizkaia-n3-content-type: application/xml

En el caso de Gipuzkoa (envío directo inmediato):
Código:

Content-Type: application/xml;charset=UTF-8
Saludos

luismartin 26-05-2021 16:56:17

Cita:

Empezado por tejano (Mensaje 541058)
Te doy las instrucciones para la DBF con la línea de comando de autofirma "autofirmacommandline"

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=..../fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
\npolicyIdentifierHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
\npolicyIdentifierHashAlgorithm=..../2001/04/xmlenc#sha256
\npolicyQualifier=.../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.

Hola tejano. Sí, justo eso es lo que decía que había probado después del primer error. Lo he probado de nuevo, y sigo con el mismo error (de nuevo tengo que quitar los enlaces que hay dentro del formato, porque de momento, no me deja publicar si los pongo):

Código:

No se reconoce el parametro -config=format=XAdES Enveloped
policyIdentifier=...sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
policyIdentifierHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
policyIdentifierHashAlgorithm=.../2001/04/xmlenc#sha256
policyQualifier=.../fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf


Sistel 26-05-2021 16:56:25

Cita:

Empezado por luismartin (Mensaje 541059)
Gracias Sistel! No tenía ni idea. El tema de los certificados y firmas digitales es muy alien para mi.

Normal.
Para mí también el tema de certificados digitales era territorio comanche ... hasta hace poco. :D

Saludos

Sistel 26-05-2021 17:01:48

Cita:

Empezado por tejano (Mensaje 541058)
Te doy las instrucciones para la DBF con la línea de comando de autofirma "autofirmacommandline"

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.

Hola tejano,

Yo también probé Autofirma para este tema de TicketBAI.
(Aunque odio con todas mis fuerzas las aplicaciones en Java :mad: )
Y también noté que tardaba del orden de segundos la firma de cada fichero.

Me puse a desarrollarlo en PHP (y sin librerías externas).
Y ahora la generación del XML y su firma tardan en total unos 15 milisegundos.

Saludos

luismartin 26-05-2021 17:06:26

Cita:

Empezado por Sistel (Mensaje 541063)
Hola tejano,

Yo también probé Autofirma para este tema de TicketBAI.
(Aunque odio con todas mis fuerzas las aplicaciones en Java :mad: )
Y también noté que tardaba del orden de segundos la firma de cada fichero.

Me puse a desarrollarlo en PHP (y sin librerías externas).
Y ahora la generación del XML y su firma tardan en total unos 15 milisegundos.

Saludos

Y, ese programa PHP que hiciste para la firma... se puede compartir?? :rolleyes: :o

Sistel 26-05-2021 17:20:02

Cita:

Empezado por luismartin (Mensaje 541064)
Y, ese programa PHP que hiciste para la firma... se puede compartir?? :rolleyes: :o

Hola luismartin,

Estaba atrancado con la firma (me daba errores).
Nuestro colega Bilbur publicó su clase Firmador en PHP en este mismo hilo
Que funciona de maravilla y me permitió entender los errores que hasta entonces tenía.

La tienes en:
https://www.clubdelphi.com/foros/sho...&postcount=539

Saludos

luismartin 26-05-2021 17:26:46

Cita:

Empezado por Sistel (Mensaje 541065)
Hola luismartin,

Estaba atrancado con la firma (me daba errores).
Nuestro colega Bilbur publicó su clase Firmador en PHP en este mismo hilo
Que funciona de maravilla y me permitió entender los errores que hasta entonces tenía.


Saludos

Ah, genial! No lo había visto!
Voy a probarlo con ello. Gracias a los dos! ^\||/^\||/^\||/

tejano 26-05-2021 17:29:16

Cita:

Empezado por luismartin (Mensaje 541061)
Hola tejano. Sí, justo eso es lo que decía que había probado después del primer error. Lo he probado de nuevo, y sigo con el mismo error (de nuevo tengo que quitar los enlaces que hay dentro del formato, porque de momento, no me deja publicar si los pongo):

Código:

No se reconoce el parametro -config=format=XAdES Enveloped
policyIdentifier=...sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf
policyIdentifierHash=Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es=
policyIdentifierHashAlgorithm=.../2001/04/xmlenc#sha256
policyQualifier=.../fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf


Creo que te faltan unas comillas y sobre el símbolo "=" debería ser así
-config "format=XAdES Enveloped

HerensugeBeltz 26-05-2021 18:00:15

Cita:

Empezado por Noe277 (Mensaje 541051)
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.

Muchas gracias!!

Band 26-05-2021 18:22:23

Cita:

Empezado por Sistel (Mensaje 541060)
Hola Band,

Es diferente el caso de envío a Bizkaia (en LROE) al caso de envío a Gipuzkoa (envío directo inmediato).
En el caso de Bizkaia (LROE):
Código:

Content-Type: application/octet-stream
eus-bizkaia-n3-content-type: application/xml

En el caso de Gipuzkoa (envío directo inmediato):
Código:

Content-Type: application/xml;charset=UTF-8
Saludos


Gracias por esta aclaración! Es que manda... ya bastante tedioso es controlar como lo tiene cada pais, que encima nosotros nos liamos más :mad:. Ya solo queda que cada ciudad tribute diferente... aunque espero que ningún político lumbreras lea esto :rolleyes:

keys 27-05-2021 09:02:09

Hola a todos.

Para los de delphi o no. El lunes al realizar envíos a Bizkaia, resulta que me empezó a dar errores del servidor y se había estado enviando sin problemas hasta ahora. Después de envíar la consulta a hacienda me dijeron que el problema es que habían tocado algo y el sistema ya no aceptaba saltos de línea ni retornos de carro en el campo TicketBai, es decir donde va el fichero TicketBai en Base64.

Me dijeron que lo volvían a cambiar y ya esta funcionando como antes.

Y ahora al grano, la función que estamos utilizando para pasar a Base64 en delphi esta devolviendo saltos de linea y retornos de carro. He modificado la función para que no tenga en cuenta esos caracteres y salga todo en una misma linea como en los ejemplo de hacienda.

Código Delphi [-]
 
function DevolverFicheroBase64(Nfichero:string): string; //nfichero es el fichero xml de TBai a enviar
var
     ListaFichero : TStringList;
     Base64: TBase64Encoding;
     i : integer;
     resultado : string;
begin
   ListaFichero := TStringList.Create;
   ListaFichero.LoadFromFile(NFichero);
   Base64 := TBase64Encoding.Create;
   resultado := Base64.Encode(ListaFichero.Text);
   Base64.Destroy;
   ListaFichero.Destroy;

   result := '';
   for i := 1 to Length(resultado) do
    if (resultado[i] = Char(13)) or (resultado[i] = Char(10)) then //Vamos a quitarles los saltos de linea y retornos de carro
    else
     result := result + resultado[i];


end;

rci 27-05-2021 11:34:02

Gipuzkoa - Error en el servidor remoto: (503) Servidor no disponible
 
Hola, hace un par de días que cuando intento enviar a Gipuzkoa me da un error:


Error en el servidor remoto: (503) Servidor no disponible.


¿Os funciona a vosotros?
Antes me funcionaba sin problema y no he cambiado nada.

Estoy utilizando la url que indica en el documento de guía de entorno de pruebas ticketBAI

https://tbai-prep.egoitza.gipuzkoa.e...nFacturas/alta


Muchas gracias. Saludos





Cita:

Empezado por keys (Mensaje 541073)
Hola a todos.

Para los de delphi o no. El lunes al realizar envíos a Bizkaia, resulta que me empezó a dar errores del servidor y se había estado enviando sin problemas hasta ahora. Después de envíar la consulta a hacienda me dijeron que el problema es que habían tocado algo y el sistema ya no aceptaba saltos de línea ni retornos de carro en el campo TicketBai, es decir donde va el fichero TicketBai en Base64.

Me dijeron que lo volvían a cambiar y ya esta funcionando como antes.

Y ahora al grano, la función que estamos utilizando para pasar a Base64 en delphi esta devolviendo saltos de linea y retornos de carro. He modificado la función para que no tenga en cuenta esos caracteres y salga todo en una misma linea como en los ejemplo de hacienda.

Código Delphi [-] function DevolverFicheroBase64(Nfichero:string): string; //nfichero es el fichero xml de TBai a enviar var ListaFichero : TStringList; Base64: TBase64Encoding; i : integer; resultado : string; begin ListaFichero := TStringList.Create; ListaFichero.LoadFromFile(NFichero); Base64 := TBase64Encoding.Create; resultado := Base64.Encode(ListaFichero.Text); Base64.Destroy; ListaFichero.Destroy; result := ''; for i := 1 to Length(resultado) do if (resultado[i] = Char(13)) or (resultado[i] = Char(10)) then //Vamos a quitarles los saltos de linea y retornos de carro else result := result + resultado[i]; end;


luismartin 27-05-2021 11:41:57

Cita:

Empezado por rci (Mensaje 541077)
Hola, hace un par de días que cuando intento enviar a Gipuzkoa me da un error:


Error en el servidor remoto: (503) Servidor no disponible.


¿Os funciona a vosotros?
Antes me funcionaba sin problema y no he cambiado nada.

Estoy utilizando la url que indica en el documento de guía de entorno de pruebas ticketBAI


Muchas gracias. Saludos

Eso me estaba sucediendo ayer. Ahora recibo otro error de servidor 503, con el código de error del servicio web: 006, y la descripción:
Error inesperado en la verificación del certificado remitente

luismartin 27-05-2021 12:00:24

Estoy usando la librería PHP que publicó Bilbur, la cual es de gran ayuda para la generación de la firma xades enveloped mediante PHP (a la mierda java y Autofirma!).
Sin embargo, lo que estoy recibiendo ahora, es un código http 503, pero con respuesta XML por parte del servidor, en la cual se indica:

Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
<Salida>
<FechaRecepcion>27-05-2021 11:38:02</FechaRecepcion>
<Estado>01</Estado>
<Descripcion>Rechazado</Descripcion>
<Azalpena>Baztertua</Azalpena>
<ResultadosValidacion>
<Codigo>006</Codigo>
<Descripcion>Error inesperado en la verificación del certificado remitente.</Descripcion>
<Azalpena>Ustekabeko errorea bidaltzailearen ziurtagiria egiaztatzean.</Azalpena>
</ResultadosValidacion>
</Salida>
</ns2:TicketBaiResponse>

No he encontrado referencia a este error en la documentación oficial. En ella, el código 006 se refiere a "El servicio de recepción no está disponible. Repita la operación más tarde".
Sabéis algo de esto?

Band 27-05-2021 12:12:21

Cita:

Empezado por luismartin (Mensaje 541079)
Estoy usando la librería PHP que publicó Bilbur, la cual es de gran ayuda para la generación de la firma xades enveloped mediante PHP (a la mierda java y Autofirma!).
Sin embargo, lo que estoy recibiendo ahora, es un código http 503, pero con respuesta XML por parte del servidor, en la cual se indica:

Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
<Salida>
<FechaRecepcion>27-05-2021 11:38:02</FechaRecepcion>
<Estado>01</Estado>
<Descripcion>Rechazado</Descripcion>
<Azalpena>Baztertua</Azalpena>
<ResultadosValidacion>
<Codigo>006</Codigo>
<Descripcion>Error inesperado en la verificación del certificado remitente.</Descripcion>
<Azalpena>Ustekabeko errorea bidaltzailearen ziurtagiria egiaztatzean.</Azalpena>
</ResultadosValidacion>
</Salida>
</ns2:TicketBaiResponse>

No he encontrado referencia a este error en la documentación oficial. En ella, el código 006 se refiere a "El servicio de recepción no está disponible. Repita la operación más tarde".
Sabéis algo de esto?

Me sucede exactamente lo mismo. Tengo mis dudas en que estemos enviando correctamente el certificado... que en mi caso y con curl lo hago así:

' --cert-type P12 --cert sello_entidad_act.p12:IZDesa2021 '

En este caso es un certificado de izenpe de prueba que cualquiera se puede descargar.

En el xml tengo puesto también, dentro de <Sujetos>:

<EmitidaPorTercerosODestinatario>T</EmitidaPorTercerosODestinatario>

Tal y como muy bien se me aconsejó.

El servicio no parece caído, por lo que si alguien soluciona este tema que comente el motivo o solución que haya encontrado.

HerensugeBeltz 27-05-2021 12:21:50

Cita:

Empezado por rci (Mensaje 541077)
Hola, hace un par de días que cuando intento enviar a Gipuzkoa me da un error:


Error en el servidor remoto: (503) Servidor no disponible.


¿Os funciona a vosotros?

Yo llevo toda la mañana probando y siempre devuelve lo mismo.
Estarán de mantenimiento.

rci 27-05-2021 12:27:14

No puedo hacer pruebas :(
 
Muchas gracias a todos.

A ver si lo solucionan pronto.


Ahora no puedo hacer pruebas, como en Araba no tienen entorno de pruebas y en Bizkaia va con un sistema distinto (que todavía no he desarrollado) pues no puedo seguir enviando ficheros TicketBAI firmados :(
A esperar.



Saludos



Cita:

Empezado por HerensugeBeltz (Mensaje 541081)
Yo llevo toda la mañana probando y siempre devuelve lo mismo.
Estarán de mantenimiento.


rci 28-05-2021 09:12:55

hoy tampoco funciona Gipuzkoa
 
Buenos días, acabo de hacer la prueba y hoy tampoco funciona el entorno de pruebas de Gipuzkoa, es muy extraño, llevan como mínimo 3 días sin funcionar!!!!:-|:(


Vaya "mantenimiento" mas largo... estarán preparando los cambios para el nuevo servicio "SUBSNAR"?:confused:


A ver si la semana que viene ya podemos volver a hacer pruebas...


Saludos





Cita:

Empezado por rci (Mensaje 541082)
Muchas gracias a todos.

A ver si lo solucionan pronto.


Ahora no puedo hacer pruebas, como en Araba no tienen entorno de pruebas y en Bizkaia va con un sistema distinto (que todavía no he desarrollado) pues no puedo seguir enviando ficheros TicketBAI firmados :(
A esperar.



Saludos


rci 28-05-2021 10:51:09

por fin ya funciona
 
Bueno al final parece que lo han solucionado y ahora he podido enviar un fichero firmado a Gipuzkoa


Muchas gracias,

Saludos

tejano 28-05-2021 10:56:42

Cabecera HTTP de la petición
 
Buenos días,
Sabe alguien responderme a estas preguntas?

Cabecera HTTP de la petición del LROE

• Cuando enviamos los fichero a la DFB, en la cabera de HTTP, el contenido del json pide la Razón social de la empresa campo “nrs”, en nuestro caso es TECNICAS DE REFRACTARIOS S.A.U, debo poner algún carácter en los espacios, si lo dejo en blanco da problemas y si pongo un guion bajo parece que va bien.
• El certificado que tenemos es de representante, es necesario rellenar los datos de PRIMER APELLIDO “ap1” y SEGUNDO APELLIDO “ap2” con los apellidos del representante que hay en el certificado.
• Por último en “Content-Length” que tamaño hay que poner el del fichero gz??, y en que unidad Bytes, KBytes, …..

Gracias

sline 28-05-2021 14:16:16

formato json
 
Hola
El formato json tiene que ser sin saltos de línea:
Código:

{"con": "LROE", "apa": "1.1", "inte": {"nif": "B00000034","nrs": "HOTEL ADIBIDEZ"},"drs": {"mode": "240","ejer": "2022"}}
en vez de

Código:

{
  "con": "LROE",
  "apa": "1.1",
  "inte": {
    "nif": "B00000034",
    "nrs": "HOTEL ADIBIDEZ",
  },
  "drs": {
    "mode": "240",
    "ejer": "2022"
  }
}

Prueba a quitar los "." y dejarlo "TECNICAS DE REFRACTARIOS SAU"

Cita:

Empezado por tejano (Mensaje 541096)
Buenos días,
Sabe alguien responderme a estas preguntas?

Cabecera HTTP de la petición del LROE

• Cuando enviamos los fichero a la DFB, en la cabera de HTTP, el contenido del json pide la Razón social de la empresa campo “nrs”, en nuestro caso es TECNICAS DE REFRACTARIOS S.A.U, debo poner algún carácter en los espacios, si lo dejo en blanco da problemas y si pongo un guion bajo parece que va bien.
• El certificado que tenemos es de representante, es necesario rellenar los datos de PRIMER APELLIDO “ap1” y SEGUNDO APELLIDO “ap2” con los apellidos del representante que hay en el certificado.
• Por último en “Content-Length” que tamaño hay que poner el del fichero gz??, y en que unidad Bytes, KBytes, …..

Gracias


sline 28-05-2021 14:19:49

consultas lroe batuz
 
Estoy realizando consultas a lroe a batuz pero siempre tengo el mismo resultado:


Código:

eus-bizkaia-n3-mensaje-respuesta: Operación errónea.
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto

El xml que uso para enviar es el mismo que el del ejemplo (cambiando lo necesario) Ejemplo_Consulta_1_LROE_PJ_240_FacturasEmitidasConSG_B00000034.xml



¿A alguien mas le pasa?

Band 28-05-2021 17:35:24

Yo me estoy encontrando con que me devuelve esta respuesta al hacer un envío con uno de los ejemplos de prueba (concretamente este fichero, aunque me pasa con todos "Ejemplo_TicketBAI_79732487C_A2022_0399.xml"):

Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <FechaRecepcion>28-05-2021 17:28:52</FechaRecepcion>
        <Estado>01</Estado>
        <Descripcion>Rechazado</Descripcion>
        <Azalpena>Baztertua</Azalpena>
        <ResultadosValidacion>
            <Codigo>002</Codigo>
            <Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se ha podido procesar el mensaje. Detalle del error: Content is not allowed in prolog.</Descripcion>
            <Azalpena>Errorea: TicketBAI altako fitxategiak ez du betetzen XSD eskema. Mezua ezin da prozesatu. Errorearen xehetasuna: Content is not allowed in prolog.</Azalpena>
        </ResultadosValidacion>
    </Salida>
</ns2:TicketBaiResponse>


A alguien le ha pasado o sabe a qué puede ser debido? Obviamente ya veo que el error dice eso de que no cumple el esquema XSD, pero es un fichero generado por ellos que en teoría está bien y no veo ningún caràcter especial, ni ninguna pista como para ver que el fichero no es válido.

landaga 28-05-2021 22:04:37

consultas lroe batuz
 
Cita:

Empezado por sline (Mensaje 541098)
Estoy realizando consultas a lroe a batuz pero siempre tengo el mismo resultado:


Código:

eus-bizkaia-n3-mensaje-respuesta: Operación errónea.
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto

El xml que uso para enviar es el mismo que el del ejemplo (cambiando lo necesario) Ejemplo_Consulta_1_LROE_PJ_240_FacturasEmitidasConSG_B00000034.xml



¿A alguien mas le pasa?


A Bizkaia no puedes enviar el XML directamente, tienes que mandarlo comprimido en formato gzip.

landaga 28-05-2021 22:24:04

Cita:

Empezado por Band (Mensaje 541100)
Yo me estoy encontrando con que me devuelve esta respuesta al hacer un envío con uno de los ejemplos de prueba (concretamente este fichero, aunque me pasa con todos "Ejemplo_TicketBAI_79732487C_A2022_0399.xml"):

Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <FechaRecepcion>28-05-2021 17:28:52</FechaRecepcion>
        <Estado>01</Estado>
        <Descripcion>Rechazado</Descripcion>
        <Azalpena>Baztertua</Azalpena>
        <ResultadosValidacion>
            <Codigo>002</Codigo>
            <Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se ha podido procesar el mensaje. Detalle del error: Content is not allowed in prolog.</Descripcion>
            <Azalpena>Errorea: TicketBAI altako fitxategiak ez du betetzen XSD eskema. Mezua ezin da prozesatu. Errorearen xehetasuna: Content is not allowed in prolog.</Azalpena>
        </ResultadosValidacion>
    </Salida>
</ns2:TicketBaiResponse>

A alguien le ha pasado o sabe a qué puede ser debido? Obviamente ya veo que el error dice eso de que no cumple el esquema XSD, pero es un fichero generado por ellos que en teoría está bien y no veo ningún caràcter especial, ni ninguna pista como para ver que el fichero no es válido.


Si no lo has hecho ya prueba a poner al principio, antes de la cabecera del xml, los siguientes tags y atributos:


<?xml version="1.0" encoding="UTF-8"?>
<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="htxp://ww.w3.org/2000/09/xmldsig#" xmlns:xsi="htxp://ww.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htxp://ww.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">


(las url llevan una x donde debería ir una t y falta una w para que me permita enviar el mensaje)

landaga 28-05-2021 22:32:40

Cita:

Empezado por tejano (Mensaje 541096)
Buenos días,
Sabe alguien responderme a estas preguntas?

Cabecera HTTP de la petición del LROE

• Cuando enviamos los fichero a la DFB, en la cabera de HTTP, el contenido del json pide la Razón social de la empresa campo “nrs”, en nuestro caso es TECNICAS DE REFRACTARIOS S.A.U, debo poner algún carácter en los espacios, si lo dejo en blanco da problemas y si pongo un guion bajo parece que va bien.
• El certificado que tenemos es de representante, es necesario rellenar los datos de PRIMER APELLIDO “ap1” y SEGUNDO APELLIDO “ap2” con los apellidos del representante que hay en el certificado.
• Por último en “Content-Length” que tamaño hay que poner el del fichero gz??, y en que unidad Bytes, KBytes, …..

Gracias


- Tienes que poner comillas en la razon social y puedes dejar los espacios y los puntos: "TECNICAS DE REFRACTARIOS S.A.U"
- "ap1" y "ap2" sólo si corresponden a la razón social, no tienen relación con el certificado.

- El Content-Lenght es el del fichero gz en Bytes pero por una razón que no llego a comprender no hace falta que lo pongas tu porque se asigna en el envío (al menos es lo que me sucede a mi y es donde estoy fallando....)

sline 31-05-2021 07:59:37

Hola Band


Tuve ese mismo problema y era porque generaba el xml con una etiqueta en diferente orden al que aparecía en el xsd.



Saludos.



Cita:

Empezado por Band (Mensaje 541100)
Yo me estoy encontrando con que me devuelve esta respuesta al hacer un envío con uno de los ejemplos de prueba (concretamente este fichero, aunque me pasa con todos "Ejemplo_TicketBAI_79732487C_A2022_0399.xml"):

Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <FechaRecepcion>28-05-2021 17:28:52</FechaRecepcion>
        <Estado>01</Estado>
        <Descripcion>Rechazado</Descripcion>
        <Azalpena>Baztertua</Azalpena>
        <ResultadosValidacion>
            <Codigo>002</Codigo>
            <Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se ha podido procesar el mensaje. Detalle del error: Content is not allowed in prolog.</Descripcion>
            <Azalpena>Errorea: TicketBAI altako fitxategiak ez du betetzen XSD eskema. Mezua ezin da prozesatu. Errorearen xehetasuna: Content is not allowed in prolog.</Azalpena>
        </ResultadosValidacion>
    </Salida>
</ns2:TicketBaiResponse>

A alguien le ha pasado o sabe a qué puede ser debido? Obviamente ya veo que el error dice eso de que no cumple el esquema XSD, pero es un fichero generado por ellos que en teoría está bien y no veo ningún caràcter especial, ni ninguna pista como para ver que el fichero no es válido.


sline 31-05-2021 08:04:07

Lo mando en formato gzip.



Cita:

Empezado por landaga (Mensaje 541102)
A Bizkaia no puedes enviar el XML directamente, tienes que mandarlo comprimido en formato gzip.


jaiser 31-05-2021 10:20:20

Estoy intentando enviar un xml-tbai a la url de pruebas de guipuzkoa "h t t p s://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta" y al obtener la respuesta me da error 503 servidor no disponible. Llevo varios días intentadolo y me da error todo el rato, a alguien le pasa o le ha pasado lo mismo?. Probe a mandar al real y hay si que me respondía, luego me indicaron que no mandará pruebas al real, pero al de pruebas me da error todo el rato.

HerensugeBeltz 31-05-2021 10:30:01

Cita:

Empezado por Band (Mensaje 541100)
Yo me estoy encontrando con que me devuelve esta respuesta al hacer un envío con uno de los ejemplos de prueba (concretamente este fichero, aunque me pasa con todos "Ejemplo_TicketBAI_79732487C_A2022_0399.xml"):

Código:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
    <Salida>
        <FechaRecepcion>28-05-2021 17:28:52</FechaRecepcion>
        <Estado>01</Estado>
        <Descripcion>Rechazado</Descripcion>
        <Azalpena>Baztertua</Azalpena>
        <ResultadosValidacion>
            <Codigo>002</Codigo>
            <Descripcion>Error: El fichero de alta TicketBAI no cumple el esquema XSD. No se ha podido procesar el mensaje. Detalle del error: Content is not allowed in prolog.</Descripcion>
            <Azalpena>Errorea: TicketBAI altako fitxategiak ez du betetzen XSD eskema. Mezua ezin da prozesatu. Errorearen xehetasuna: Content is not allowed in prolog.</Azalpena>
        </ResultadosValidacion>
    </Salida>
</ns2:TicketBaiResponse>


A alguien le ha pasado o sabe a qué puede ser debido? Obviamente ya veo que el error dice eso de que no cumple el esquema XSD, pero es un fichero generado por ellos que en teoría está bien y no veo ningún caràcter especial, ni ninguna pista como para ver que el fichero no es válido.

A mí me pasaba haciendo pruebas con los componentes Chilkat.
El error te dice que hay algún carácter antes de la etiqueta inicial del xml (<?xml version="1.0"...)
El problema puede estar relacionado con el BOM del fichero UTF-8 (si lo tiene prueba a quitárselo). Comprueba que el juego de caracteres del XML sea UTF-8 y no ISO8859-1, por ejemplo. Yo sinceramente no encontré la solución ya que finalmente opté por los componentes de SecureBlackBox.

HerensugeBeltz 31-05-2021 10:31:18

Cita:

Empezado por jaiser (Mensaje 541111)
Estoy intentando enviar un xml-tbai a la url de pruebas de guipuzkoa "h t t p s://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta" y al obtener la respuesta me da error 503 servidor no disponible. Llevo varios días intentadolo y me da error todo el rato, a alguien le pasa o le ha pasado lo mismo?. Probe a mandar al real y hay si que me respondía, luego me indicaron que no mandará pruebas al real, pero al de pruebas me da error todo el rato.

Yo acabo de mandar varios ficheros de prueba sin problema a la Hacienda de Gipuzkoa.

jaiser 31-05-2021 11:09:53

No se porque me da el error 503. Estoy progrmamando en vb.net, no se si alguien me puede ayudar a ver donde está el error, lo he pasado a c el código.

Código:

public void envio(System.Xml.XmlDocument xml, System.Security.Cryptography.X509Certificates.X509Certificate2 certificado)
{
    byte[] sentXml = System.Text.Encoding.UTF8.GetBytes(xml.OuterXml);
    Stream stream;

    request.Method = "POST";
    request.ContentType = "application/xml; charset=utf-8";
    request.ContentType = "text/xml; charset=utf-8";
    request.Timeout = 3000000;
    request.ClientCertificates.Add(certificado);
    // soap action (this is the header I tried to add. Didn't work.)
    request.Headers.Add("SOAPAction", "h t t p s://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta");

    // Set the ContentLength property of the WebRequest.
    request.ContentLength = sentXml.Length;

    stream = request.GetRequestStream();

    try
    {
        stream.Write(sentXml, 0, sentXml.Length);
    }
    catch (Exception ex)
    {
        Interaction.MsgBox("Error Sending Data: " + ex.Message);
    }

    // Close the Stream object.
    stream.Close();

    try
    {
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Console.WriteLine("Received response with status {0} {1}.", response.StatusCode, response.StatusDescription);

        if (response.StatusCode == HttpStatusCode.OK)
        {
            XmlDocument responseXML = new XmlDocument();
            Stream a = response.GetResponseStream;
            StreamReader reader = new StreamReader(a);
            Interaction.MsgBox(reader.ReadToEnd());

            responseXML.Load(response.GetResponseStream());
            responseXML.Save("respuesta.xml");
            responseXML.Save(Console.Out);
        }

        response.Close();
    }
    catch (Exception ex)
    {
        Interaction.MsgBox("Error Getting Response: " + ex.Message);
    }
}


jaiser 31-05-2021 11:57:24

Alguien puede poner el codigo de envio en delphi a ver si me da alguna pista?
Gracias

luismartin 31-05-2021 12:07:04

Error en XML
 
Hola. Estoy obteniendo este error en el envío, al validar el XML contra el esquema XSD (TicketBai-V1-2.xsd):

Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'Detallesfactura'. One of '{DetallesFactura, ImporteTotalFactura}' is expected.

Pero no veo que se salga del esquema. Factura de ejemplo:

Código:

<T:TicketBai xsi:schemaLocation="...">
        <Cabecera>
                <IDVersionTBAI>1.2</IDVersionTBAI>
        </Cabecera>
        <Sujetos>
                <Emisor>
                        <NIF>B12345678</NIF>
                        <ApellidosNombreRazonSocial>Mi empresa</ApellidosNombreRazonSocial>
                </Emisor>
                <Destinatarios>
                        <IDDestinatario>
                                <NIF>B87654321</NIF>
                                <ApellidosNombreRazonSocial>empresa</ApellidosNombreRazonSocial>
                                <CodigoPostal>46001</CodigoPostal>
                                <Direccion>dgrgrege</Direccion>
                        </IDDestinatario>
                </Destinatarios>
        </Sujetos>
        <Factura>
                <CabeceraFactura>
                        <SerieFactura>CA</SerieFactura>
                        <NumFactura>4</NumFactura>
                        <FechaExpedicionFactura>31-05-2021</FechaExpedicionFactura>
                        <HoraExpedicionFactura>11:41:13</HoraExpedicionFactura>
                </CabeceraFactura>
                <DatosFactura>
                        <DescripcionFactura>Trabajos facturados</DescripcionFactura>
                        <Detallesfactura>
                                <IDDetalleFactura>
                                        <DescripcionDetalle>Localizacion de avera en hogar y comercio.</DescripcionDetalle>
                                        <Cantidad>1.00</Cantidad>
                                        <ImporteUnitario>34.50</ImporteUnitario>
                                        <Descuento>0.00</Descuento>
                                        <ImporteTotal>34.50</ImporteTotal>
                                </IDDetalleFactura>
                        </Detallesfactura>

                        <ImporteTotalFactura>39.65</ImporteTotalFactura>
                        <Claves>
                                <IDClave>
                                        <ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
                                </IDClave>
                        </Claves>
                </DatosFactura>
                <TipoDesglose>
                        <DesgloseFactura>
                                <Sujeta>
                                        <NoExenta>
                                                <DetalleNoExenta>
                                                        <TipoNoExenta>S1</TipoNoExenta>
                                                        <DesgloseIVA>
                                                                <DetalleIVA>
                                                                        <BaseImponible>32.77</BaseImponible>
                                                                        <TipoImpositivo>21</TipoImpositivo>
                                                                        <CuotaImpuesto>6.88</CuotaImpuesto>
                                                                </DetalleIVA>
                                                        </DesgloseIVA>
                                                </DetalleNoExenta>
                                        </NoExenta>
                                </Sujeta>
                        </DesgloseFactura>
                </TipoDesglose>
        </Factura>
        <HuellaTBAI>
                <EncadenamientoFacturaAnterior>
                        <SerieFacturaAnterior>ACA</SerieFacturaAnterior>
                        <NumFacturaAnterior>1</NumFacturaAnterior>
                        <FechaExpedicionFacturaAnterior>24-03-2021</FechaExpedicionFacturaAnterior>
                        <SignatureValueFirmaFacturaAnterior>TBAI-B12345678-24032021-rL9wfS7KL4pNK-168</SignatureValueFirmaFacturaAnterior>
                </EncadenamientoFacturaAnterior>
                <Software>
                        <LicenciaTBAI>********************</LicenciaTBAI>
                        <EntidadDesarrolladora>
                                <NIF>B12345678</NIF>
                        </EntidadDesarrolladora>
                        <Nombre>EMPRESA, S.L.</Nombre>
                        <Version>5.1.7</Version>
                </Software>
                <NumSerieDispositivo/>
        </HuellaTBAI>
</T:TicketBai>

Según el esquema XSD, me da la impresión de que cumple con la estructura:

Código:

...
<complexType name="DatosFacturaType">
                <sequence>
                        <element name="FechaOperacion" type="T:FechaType" minOccurs="0"/>
                        <element name="DescripcionFactura" type="T:TextMax250Type"/>
                        <element name="DetallesFactura" type="T:DetallesFacturaType" minOccurs="0"/>
                        <element name="ImporteTotalFactura" type="T:ImporteSgn12.2Type"/>
                        <element name="RetencionSoportada" type="T:ImporteSgn12.2Type" minOccurs="0"/>
                        <element name="BaseImponibleACoste" type="T:ImporteSgn12.2Type" minOccurs="0"/>
                        <element name="Claves" type="T:ClavesType"/>
                </sequence>
        </complexType>
        <complexType name="DetallesFacturaType">
                        <sequence>
                                <element name="IDDetalleFactura" type="T:IDDetalleFacturaType" maxOccurs="1000"/>
                        </sequence>
        </complexType>       
        <complexType name="IDDetalleFacturaType">
                <sequence>       
                        <element  name="DescripcionDetalle" type="T:TextMax250Type"/>
                        <element  name="Cantidad" type="T:ImporteSgn12.2Type"/>
                        <element  name="ImporteUnitario" type="T:ImporteSgn12.8Type"/>
                        <element  name="Descuento" type="T:ImporteSgn12.2Type" minOccurs="0"/>
                        <element  name="ImporteTotal" type="T:ImporteSgn12.2Type"/>
                </sequence>
        </complexType>

....

Alguna idea al respecto?

sline 31-05-2021 12:32:09

Hola luismartin
DetallesFactura es con la F mayúscula.





Cita:

Empezado por luismartin (Mensaje 541116)
Hola. Estoy obteniendo este error en el envío, al validar el XML contra el esquema XSD (TicketBai-V1-2.xsd):

Error: El fichero de alta TicketBAI no cumple el esquema XSD. Detalle del error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'Detallesfactura'. One of '{DetallesFactura, ImporteTotalFactura}' is expected.

Pero no veo que se salga del esquema. Factura de ejemplo:

Código:

<T:TicketBai xsi:schemaLocation="...">
    <Cabecera>
        <IDVersionTBAI>1.2</IDVersionTBAI>
    </Cabecera>
    <Sujetos>
        <Emisor>
            <NIF>B12345678</NIF>
            <ApellidosNombreRazonSocial>Mi empresa</ApellidosNombreRazonSocial>
        </Emisor>
        <Destinatarios>
            <IDDestinatario>
                <NIF>B87654321</NIF>
                <ApellidosNombreRazonSocial>empresa</ApellidosNombreRazonSocial>
                <CodigoPostal>46001</CodigoPostal>
                <Direccion>dgrgrege</Direccion>
            </IDDestinatario>
        </Destinatarios>
    </Sujetos>
    <Factura>
        <CabeceraFactura>
            <SerieFactura>CA</SerieFactura>
            <NumFactura>4</NumFactura>
            <FechaExpedicionFactura>31-05-2021</FechaExpedicionFactura>
            <HoraExpedicionFactura>11:41:13</HoraExpedicionFactura>
        </CabeceraFactura>
        <DatosFactura>
            <DescripcionFactura>Trabajos facturados</DescripcionFactura>
            <Detallesfactura>
                <IDDetalleFactura>
                    <DescripcionDetalle>Localizacion de avera en hogar y comercio.</DescripcionDetalle>
                    <Cantidad>1.00</Cantidad>
                    <ImporteUnitario>34.50</ImporteUnitario>
                    <Descuento>0.00</Descuento>
                    <ImporteTotal>34.50</ImporteTotal>
                </IDDetalleFactura>
            </Detallesfactura>

            <ImporteTotalFactura>39.65</ImporteTotalFactura>
            <Claves>
                <IDClave>
                    <ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
                </IDClave>
            </Claves>
        </DatosFactura>
        <TipoDesglose>
            <DesgloseFactura>
                <Sujeta>
                    <NoExenta>
                        <DetalleNoExenta>
                            <TipoNoExenta>S1</TipoNoExenta>
                            <DesgloseIVA>
                                <DetalleIVA>
                                    <BaseImponible>32.77</BaseImponible>
                                    <TipoImpositivo>21</TipoImpositivo>
                                    <CuotaImpuesto>6.88</CuotaImpuesto>
                                </DetalleIVA>
                            </DesgloseIVA>
                        </DetalleNoExenta>
                    </NoExenta>
                </Sujeta>
            </DesgloseFactura>
        </TipoDesglose>
    </Factura>
    <HuellaTBAI>
        <EncadenamientoFacturaAnterior>
            <SerieFacturaAnterior>ACA</SerieFacturaAnterior>
            <NumFacturaAnterior>1</NumFacturaAnterior>
            <FechaExpedicionFacturaAnterior>24-03-2021</FechaExpedicionFacturaAnterior>
            <SignatureValueFirmaFacturaAnterior>TBAI-B12345678-24032021-rL9wfS7KL4pNK-168</SignatureValueFirmaFacturaAnterior>
        </EncadenamientoFacturaAnterior>
        <Software>
            <LicenciaTBAI>********************</LicenciaTBAI>
            <EntidadDesarrolladora>
                <NIF>B12345678</NIF>
            </EntidadDesarrolladora>
            <Nombre>EMPRESA, S.L.</Nombre>
            <Version>5.1.7</Version>
        </Software>
        <NumSerieDispositivo/>
    </HuellaTBAI>
</T:TicketBai>

Según el esquema XSD, me da la impresión de que cumple con la estructura:

Código:

...
<complexType name="DatosFacturaType">
        <sequence>
            <element name="FechaOperacion" type="T:FechaType" minOccurs="0"/>
            <element name="DescripcionFactura" type="T:TextMax250Type"/>
            <element name="DetallesFactura" type="T:DetallesFacturaType" minOccurs="0"/>
            <element name="ImporteTotalFactura" type="T:ImporteSgn12.2Type"/>
            <element name="RetencionSoportada" type="T:ImporteSgn12.2Type" minOccurs="0"/>
            <element name="BaseImponibleACoste" type="T:ImporteSgn12.2Type" minOccurs="0"/>
            <element name="Claves" type="T:ClavesType"/>
        </sequence>
    </complexType>
    <complexType name="DetallesFacturaType">
            <sequence>
                <element name="IDDetalleFactura" type="T:IDDetalleFacturaType" maxOccurs="1000"/>
            </sequence>
    </complexType>   
    <complexType name="IDDetalleFacturaType">
        <sequence>   
            <element  name="DescripcionDetalle" type="T:TextMax250Type"/>
            <element  name="Cantidad" type="T:ImporteSgn12.2Type"/>
            <element  name="ImporteUnitario" type="T:ImporteSgn12.8Type"/>
            <element  name="Descuento" type="T:ImporteSgn12.2Type" minOccurs="0"/>
            <element  name="ImporteTotal" type="T:ImporteSgn12.2Type"/>
        </sequence>
    </complexType>

....

Alguna idea al respecto?


Neftali [Germán.Estévez] 31-05-2021 13:15:13

Cita:

Empezado por jaiser (Mensaje 541114)
No se porque me da el error 503.

La URL es la correcta para PREPRODUCCIÓN.
Ten en cuenta que desde el Vierner hasta hoy, está fallando el servidor de forma intermitente.
Deben estar haciendo pruebas/cabios en preproducción.

¿Sigues con ese problema?

luismartin 31-05-2021 14:48:44

Cita:

Empezado por sline (Mensaje 541117)
Hola luismartin
DetallesFactura es con la F mayúscula.

Siii, gracias sline! me había dado cuenta de ello ya, pero te agradezco la respuesta! ^\||/

tejano 31-05-2021 15:50:40

Buenas tardes, alguien ha utilizado el comando "tar" del Windows para crear el fichero gzip?
No estoy seguro de si hay que utilizar algún programa en concreto o sirve cualquier programa que comprima en gzip.

jaiser 31-05-2021 15:54:12

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 541118)
La URL es la correcta para PREPRODUCCIÓN.
Ten en cuenta que desde el Vierner hasta hoy, está fallando el servidor de forma intermitente.
Deben estar haciendo pruebas/cabios en preproducción.

¿Sigues con ese problema?

Ya lo he conseguido, he comentado la linea del soapaction y va, me imagino que no hará falta, en algún ejemplo lo vería. Gracias, peros si parece que ha habido algún problema con el servidor de pruebas.
Gracias


La franja horaria es GMT +2. Ahora son las 21:24:39.

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