Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-01-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 671
Poder: 18
espinete Va camino a la fama
Buenas...

¿Hay alguna url donde poder probar/verificar las facturas XML, con o sin firmar? ¿Alguna utilidad online como la oficial de FacturaE, donde subes tu xml y te dice si está todo bien?
¿o la única manera es hacer un envío? También echo en falta ejemplos de facturas en xml, aunque solo sea para compararlas.

Esto de firmar el XML, firmar el envío y firmar el .exe va a acabar conmigo, pero bueno. Teóricamente tengo todos los certificados necesarios.

Lo que no me queda muy claro es cómo, cuándo y dónde obtener y colocar el "código identificativo" y el "código QR"...

Se entiende que el código identificativo se debe crear después de haber firmado el XML, ya que necesito los primeros caracteres del campo SignatureValue del XML firmado para generarlo.
A dicho código se le aplica un CRC8 (que ya he encontrado el algoritmo en el foro).

El QR se añade a la factura impresa o en PDF; supongo, ya que servirá para buscar/comprobar la factura por el cliente final.

Imagino que cuando empiece a hacer pruebas de envío me quedarán estas dudas resueltas.

Entiendo que vosotros lleváis más de un año con esto, pero yo empecé hace dos días y, después de haber integrado la factura electrónica de varios países, puedo decir que esta es la más tiquismiquis de todas. Y eso que la de Costa Rica por ejemplo exige incluir los productos (líneas) de la factura, con códigos específicos para cada tipo de producto, etc.

En fin, espero que cuando el resto de España se ponga de acuerdo para habilitar la factura electrónica, se pongan de acuerdo y no haga cada provincia una cosa distinta.

PD: solo me han respondido desde Bizkaia (bastante rápido, por cierto). Del resto de provincias no sé nada aún.
Responder Con Cita
  #2  
Antiguo 21-01-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.458
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por espinete Ver Mensaje
¿Hay alguna url donde poder probar/verificar las facturas XML, con o sin firmar?
Desde PostMan/Imsomnia puedes llegar a enviar ficheros que ya tengas hecho.
Se pueden añadir certificados de cliente y sirve para realizar pruebas.


Cita:
Empezado por espinete Ver Mensaje
Lo que no me queda muy claro es cómo, cuándo y dónde obtener y colocar el "código identificativo" y el "código QR"...
Para aclarar estas dudas revisa los mensajes existentes en el hilo. al principio discutimos todos estos temas.



Cita:
Empezado por espinete Ver Mensaje
También echo en falta ejemplos de facturas en xml, aunque solo sea para compararlas.
Yo encontré este que adjunto por internet.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 03-05-2021 a las 13:59:12.
Responder Con Cita
  #3  
Antiguo 25-01-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 671
Poder: 18
espinete Va camino a la fama
¿Alguien ha conseguido importar los esquemas XSD para poder generar el "cuerpo" de la petición con los TicketBAI a enviar?

Estoy intentando importar por ejemplo el "LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_1.xsd" pero Delphi Sydney me devuelve el error:

Archivo Adjunto 3885

Solo para confirmar:
Entiendo que los ficheros TicketBAI generados no se envían directamente, sino que se debe crear un XML que contiene como máximo 1000 TicketBAI, codificarlo en Base64, comprimirlo y añadirlo en el cuerpo de la petición/envío, junto con un json como cabecera de la petición y otros requisitos en el header.

El problema es que no puedo usar el XML Data Binding para generar ese XML que contiene los TicketBAI por culpa de ese error.

Entiendo también que cada tipo de TicketBAI usa un esquema XSD diferente según el caso, y que cada petición/envío solo puede contener TicketBAI del mismo tipo/esquema.

¿Soy el único al que le parece todo esto bastante engorroso, o es que he empezado tarde y fue demasiada información de golpe?

Última edición por Neftali [Germán.Estévez] fecha: 03-05-2021 a las 13:59:12.
Responder Con Cita
  #4  
Antiguo 26-01-2021
Emiliopm Emiliopm is offline
Miembro
 
Registrado: jun 2013
Ubicación: Huelva
Posts: 15
Poder: 0
Emiliopm Va por buen camino
Buenas compañeros, hemos creado un curso relacionado con TicketBAI en nuestra plataforma abatic . net

Así pues, si estáis interesados en TicketBAI, esta es una buena forma de comenzar.

Durante el curso crearemos una anulación de factura, la firmaremos y la enviaremos a TicketBAI. Todo ello durante 12 horas repartidas en 2 semanas en directo.

Un saludo.
Responder Con Cita
  #5  
Antiguo 26-01-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.238
Poder: 25
keys Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
¿Alguien ha conseguido importar los esquemas XSD para poder generar el "cuerpo" de la petición con los TicketBAI a enviar?

Estoy intentando importar por ejemplo el "LROE_PF_140_1_1_Ingresos_ConfacturaConSG_AltaPeticion_V1_0_1.xsd" pero Delphi Sydney me devuelve el error:

Archivo Adjunto 3885

Solo para confirmar:
Entiendo que los ficheros TicketBAI generados no se envían directamente, sino que se debe crear un XML que contiene como máximo 1000 TicketBAI, codificarlo en Base64, comprimirlo y añadirlo en el cuerpo de la petición/envío, junto con un json como cabecera de la petición y otros requisitos en el header.

El problema es que no puedo usar el XML Data Binding para generar ese XML que contiene los TicketBAI por culpa de ese error.

Entiendo también que cada tipo de TicketBAI usa un esquema XSD diferente según el caso, y que cada petición/envío solo puede contener TicketBAI del mismo tipo/esquema.

¿Soy el único al que le parece todo esto bastante engorroso, o es que he empezado tarde y fue demasiada información de golpe?
Hola.

Yo trabajo con delphi Tokio y no he tenido ningún problema al importar los xsd. ¿Has metido todos los ficheros a descargar dentro de la misma carpeta?. Te adjunto los ficheros importados por si te sirve de algo.

En Bizkaia los ficheros no se envían directamente, sino que van dentro de un modelo de hacienda 140/240. El fichero de ticketbai es el mismo para los dos modelos pero se envían de diferente forma.En Gipuzkoa si se envían directamente y en alava ¿?. La estructura del fichero ticketBAi es la misma para las tres haciendas.

Igual si es un poco engorroso al princio, pero una vez que lo consigues entender es siempre igual.

Animo Compañero.

Última edición por Neftali [Germán.Estévez] fecha: 03-05-2021 a las 13:59:12.
Responder Con Cita
  #6  
Antiguo 26-01-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 671
Poder: 18
espinete Va camino a la fama
Muchas gracias, keys.

Fallo mío. No descomprimí *todos* los archivos del ZIP, sino únicamente el .xsd que quería importar. Por eso Delphi daba el error, porque necesitaba el resto de archivos. Disculpa, no tenía experiencia usando el XML Data Binding.

Usé un "XML importer" online y ahí sí obtuve un mensaje de error más descriptivo que hacía referencia a que faltaba un archivo, y eso me dio la pista.

A ver si por fin consigo cumplir todos los requisitos para generar una simple petición de envío. Por cierto, hoy martes el entorno de pruebas no estará operativo, según me dicen de Bizkaia.
Responder Con Cita
  #7  
Antiguo 26-01-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 671
Poder: 18
espinete Va camino a la fama
Resumen para envíos a Bizkaia

Iba a crear un post-resumen de todo el proceso, al menos de lo que ya tengo, pero creo que ahora mismo no soy el que más experiencia tiene con TicketBAI. De hecho empecé a elaborar el post y son tantos pasos que cuesta explicarlo, así que por ahora lo dejo hasta que esté familiarizado con todo esto.

Ya he conseguido crear el XML final (el LROE), que contiene los TicketBAI firmados a enviar, en Base64 y comprimirlo en ZIP, pero al realizar un envío usando NetHTTPClient solo obtengo Bad Request, así que no sé cual de las 1000 cosas que hay que hacer previamente es la que está mal.

Primero genero el xml del LROE, a partir de uno de los esquemas XSD, concretamente el del envío de "ingresos con factura con software garante". Como son datos de prueba no sé si es que falta (o sobra) algún dato.
Obviamente el fichero "firmado.xml" es el TicketBAI firmado con certificado digital.

Código Delphi [-]
    
    f := NewLROEPF140IngresosConFacturaConSGAltaPeticion;

    f.Cabecera.Modelo:='140';
    f.Cabecera.Ejercicio:=2021;
    f.Cabecera.Capitulo:='';
    f.Cabecera.SubCapitulo:='1.1';
    f.Cabecera.Operacion:='A00';  //A00 = Alta / M00 = Modificación
    f.Cabecera.Version:='';

    f.Cabecera.ObligadoTributario.NIF:='XXXXXXX';
    f.Cabecera.ObligadoTributario.ApellidosNombreRazonSocial:='XXXXXXXXXXXX';

    with f.Ingresos.Add do
    begin
        TicketBai := EncodeFileToBase64('firmado.xml');

        with Renta.Add do
        begin
            Epigrafe:='';
            ImporteIngresoIRPF:='121';
            IngresoAComputarIRPFDiferenteBaseImpoIVA:='121';
            CriterioCobros:='';
        end;
    end;

    XMLDocument2.XML.Text:=f.XML;
    xmldocument2.Active:=True;
    xmldocument2.SaveToFile('lroe.xml');

Tengo dudas con la compresión de dicho XML en gzip. He usado System.ZLib para comprimir el lroe.xml con la siguiente función, pero no estoy seguro de que sea la forma correcta.

Código Delphi [-]
procedure comprimir(origen,destino:string);
var LInput, LOutput: TFileStream;
    LZip: TZCompressionStream;
begin
    { Create the Input, Output, and Compressed streams. }
    LInput := TFileStream.Create(origen, fmOpenRead);
    LOutput := TFileStream.Create(destino, fmCreate);
    LZip := TZCompressionStream.Create(clDefault, LOutput);

    { Compress data. }
    LZip.CopyFrom(LInput, LInput.Size);

    { Free the streams. }
    LZip.Free;
    LInput.Free;
    LOutput.Free;
end;

El envío del LROE lo realizo usando código que encontré en este hilo. No tiene mucha complejidad, pero por si acaso lo pongo:

Código Delphi [-]
    
    NetHTTPRequest1.CustomHeaders['Accept-Encoding'] := 'gzip';
    NetHTTPRequest1.CustomHeaders['Content-Encoding'] := 'gzip';
    NetHTTPRequest1.CustomHeaders['Content-Type'] := 'application/octet-stream';
    NetHTTPRequest1.CustomHeaders['eus-bizkaia-n3-version'] := '1.0';
    NetHTTPRequest1.CustomHeaders['eus-bizkaia-n3-content-type'] := 'application/xml';

    json :=  '{"con": "LROE", "apa": "1.1", "inte": {"nif": "XXXXXXX","nrs": "XXXXXXXXXX","ap1": "","ap2": ""},"drs": {"mode": "140","ejer": "2021"}}';

    NetHTTPRequest1.CustomHeaders['eus-bizkaia-n3-data'] := json;

    ss := TStringStream.Create('', TEncoding.UTF8);
    ss.Position := 0;
    ss.LoadFromFile('archivo.gz');

    NetHTTPRequest1.MethodString := 'POST';
    Memo1.Text := NetHTTPClient1.Post('https://pruesarrerak.bizkaia.eus/N3B4000M/aurkezpena', ss).ContentAsString(tencoding.UTF8);

Pero en el Memo no obtengo nada. Tengo que irme al evento RequestCompleted, y con AResponse.StatusCode y AResponse.StatusText solo obtengo 400 - Bad Request.

Sé que hoy el entorno de pruebas no estará operativo, pero me gustaría saber si lo anterior es correcto o no, porque dudo mucho que las respuestas a las peticiones sean lo suficientemente detalladas como para saber cual es el error exacto en los envíos.

Gracias de antemano. Espero que este post pueda servir también como pequeño resumen del proceso para los que empiecen desde cero, aunque hay muchísimos detalles que faltan.
Responder Con Cita
  #8  
Antiguo 27-01-2021
Dadaista Dadaista is offline
Registrado
 
Registrado: jun 2020
Posts: 2
Poder: 0
Dadaista Va por buen camino
Hola buenos dias

Este es mi primer post desde que me di de alta. Despues de leer y releer este Hilo, por fin me atrevo a escribir. Soy un programador independiente con una solucion informatica la cual utilizan en un par de tiendas en vizcaya, entre otras. Es un simple programa de ventas que emite tickets de caja. Realmente yo programo en Java pero me avisaron del tema de ticketbai y despues de dar muchas vueltas por internet, encontré éste foro en el que he podido encontrar bastante información al respecto... para mi, el mejor sitio... despues de lo que he visto que hay por la red.

Lo que os digo anteriormente. Me llamaron desde vizcaya y me dijeron oye!!! ticketbai!!! y encontré este foro. Tengo algunas dudas que no se si alguno de vosotros podria contestarme ya que veo que en el hilo hay personas que saben bastante.

Mi programa es una simulacion de una caja resgistradora que emite tickets de caja desde una computadora con windows 10. Los propietarios de las tiendas pasan la informacion de las ventas a sus asesores/contables y son estos últimos los que se encargan de todo el papeleo con hacienda.

Mi pregunta es, si vosotros veis necesario/obligatorio que yo implemente Ticketbai en mi pequeña aplicación para las personas dueñas de las tiendas donde se utiliza mi aplicacion que se encuentran en Euskadi.

En caso que considereis que es necesario.. los ficheros XML quien los firmaria?... la persona dueña de la tienda o yo?

Perdonad por ser tan extenso y por desviarme un poco del tema central de este hilo pero es que no se me ocurre un sitio mejor donde preguntar. Muchas gracias por leer.

Salu2
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 15:37:42.


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
Copyright 1996-2007 Club Delphi