![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
|
|
#2
|
|||
|
|||
|
Hola
Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución. Lo comento por si a alguien le ha pasado lo mismo. Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más. Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad. ¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística? ![]() |
|
#3
|
|||
|
|||
|
Porque tardas 2 segundos en obtener el QR? Nosotros trabajamos también con grandes volúmenes de facturas y el proceso que consume más tiempo es el firmado de la factura al tener que encolar las facturas para conservar el encadenamiento. Una vez firmada ya la factura la generación del QR es instantáneo e independiente del envío.
|
|
#4
|
||||
|
||||
|
Cita:
|
|
#5
|
|||
|
|||
|
Cita:
2 segundos es una barbaridad de tiempo para generar y firmar el XML. Sólo se me ocurren varios casos en que se pudiese tardar tanto: 1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos) 2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento) 3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta ![]() Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur. Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma. Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo ![]() Saludos |
|
#6
|
|||
|
|||
|
Cita:
Estoy preparando una API en PHP Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc) Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada" Gracias |
|
#7
|
|||
|
|||
|
Cita:
El fichero JSON que se envía a mi API contiene sólo los datos básicos: - Identificación del emisor - Datos del destinatario (si lo hay, como en el caso de factura completa) - Tipo de factura y características esenciales - Líneas de detalle (nombres de productos, importes unitarios, cantidades, descuentos, tipo de IVA, ...) No se envían ni serie, ni número ni fecha de factura ni datos económicos ni total. La API se encarga de: - Verificar los datos que le llegan - Recabar los datos de la última factura (de ese tipo) del emisor desde la base de datos - Crear líneas de detalles adicionales si hay descuentos globales en la factura - Calcular datos económicos como bases, cuotas de IVA, totales, ... - Asignar serie, número y fecha de factura - Crear el XML - Firmar el XML - Comprobar la validez del XML firmado (con el esquema XSD) - Grabar los datos de la factura, los detalles y los importes en la base de datos - Devolver un JSON con todos los datos calculados (bases, cuotas, totales, líneas de detalle), serie, número y fecha de la factura y códigos TBAI y QR - Enviar a la correspondiente Hacienda Foral el XML TicketBAI y registrar el envío en la base de datos. Opté porque la API lo haga todo y retorne todo lo necesario para crear el documento de la factura. No puedo confiar en que llegue, del emisor, el total correcto o el número de factura o fecha correcta. Prefiero que eso lo genere mi API. Saludos Última edición por Sistel fecha: 02-06-2022 a las 09:13:31. |
|
#8
|
||||
|
||||
|
Buenas a todos, tengo un pequeño dolor de muelas:
Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo: "No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..." La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar? Gracias y buen finde! ![]() |
|
#9
|
||||
|
||||
|
Cita:
¿El error que obtienes, te da ejecutando algún código (dices que la generación parace correcta)? Puedes poner el código.
__________________
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. |
|
#10
|
|||
|
|||
|
Cita:
|
|
#11
|
|||
|
|||
|
Hola y muchas gracias por vuestra colaboración,
Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error: Date: Fri, 25 Mar 2022 16:38:49 GMT Server: JBoss-EAP/7 Content-Encoding: gzip eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación) X-Powered-By: Undertow/1 eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?= eus-bizkaia-n3-codigo-respuesta: B4_1000025 eus-bizkaia-n3-numero-registro: eus-bizkaia-n3-tipo-respuesta: Incorrecto Content-Type: application/xml; charset=UTF-8 Content-Length: 0 El XML que envío es el siguiente: <?xml version="1.0" encoding="utf-8"?> <lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd"> <Cabecera> <Modelo>140</Modelo> <Capitulo>1</Capitulo> <Subcapitulo>1.1</Subcapitulo> <Operacion>C00</Operacion> <Version>1.0</Version> <Ejercicio>2022</Ejercicio> <ObligadoTributario> <NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas) <ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial> </ObligadoTributario> </Cabecera> <FiltroConsultaIngresosConSG> <CabeceraFactura> <SerieFactura>VT21</SerieFactura> </CabeceraFactura> <NumPaginaConsulta>1</NumPaginaConsulta> </FiltroConsultaIngresosConSG> </lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion> Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...? Saludos y buen fin de semana, Joselu |
|
#12
|
|||
|
|||
|
Cita:
<complexType name="FiltroConsultaIngresosConFacturaType"> <sequence> <element name="Destinatario" type="tiposcomplejos ocumentoType" minOccurs="0"/><element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/> <element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/> <element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/> <element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/> </sequence> </complexType> |
|
#13
|
|||
|
|||
|
Cita:
Al final el problema era que estaba llamando a la a la URI de alta, modificación y anulación y debía ser a la de consulta: https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta Saludos y muchas gracias, Joselu |
|
#14
|
|||
|
|||
|
Cita:
No sé si te servirá, pero yo hago lo siguiente: - Lo primero de todo genero el registro de factura vacío, con solo el número, y fecha y hora de expedición. - Genero un registro en la "cola" de facturas para ese ID. - Empiezo a procesar los datos enviados (factura, líneas detalle, etc.) - Actualizo la tabla de factura con los datos definitivos, guardo las líneas de factura en otra tabla etc. - Genero XML, QR, etc... La instrucción SQL que utilizo genera el número y actualiza al mismo tiempo por lo que nunca se van a repetir. Tengo una tabla de "configuración" donde guardo el último número para cada CIF y serie (son dos empresas). Código PHP:
|
|
#15
|
|||
|
|||
|
XML de ejemplo
Buenas tardes, alguien tiene un XML de una factura de ejemplo antes de firmar y no le importaria compartir?
Mil gracias... Al intentar con AutoFirma me da el siguiente mensaje: [Fatal Error] :15:32: Byte no vßlido 1 de la secuencia UTF-8 de 1 bytes <afirma><result>false</result><response><msg>Error en la operacion de firma: Las firmas XAdES Enveloped solo pueden realizarse sobre datos XML</msg></response></afirma> Creo que me falta algo en el pie del XML referente a Signatures. Ayuda, gracias. |
|
#16
|
||||
|
||||
|
Cita:
La correcta es UTF8. De todas formas te adjunto un XML sin firmar.
__________________
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. |
|
#17
|
|||
|
|||
|
Signo en descuentos globales
Hola,
Como ya habíamos comentado en otras ocasiones, para registrar un descuento global de la factura (por ejemplo un descuento pronto pago), es preciso añadir una línea de detalle para ese descuento. En esa línea de detalle hay que poner, en Cantidad, -1 y en ImporteUnitario el importe, en positivo, correspondiente al descuento, antes de IVA. Quedamos en que en ImporteUnitario no se permitían importes negativos. Leo en https://web.araba.eus/documents/1050...ES+%281%29.pdf Cita:
Cita:
Curioso que cada una de las tres Haciendas Forales tenga criterios diferentes para TicketBAI. Saludos |
|
#18
|
||||
|
||||
|
Cita:
La actitud en este caso de Álava me parece bastante correcta y sensata (y pensando un poco en nosotros): "Podéis enviarlo como mejor le venga a vuestro software para que os valga para todas las administraciones."
__________________
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. |
|
#19
|
|||
|
|||
|
Cita:
El otro era en los parámetros de AutoFirma, que he visto en otros post ejemplos y ya me funciona. Mil gracias. |
|
#20
|
|||
|
|||
|
EDIT: Solucionado, explicación abajo
Buenas tardes, A ver si alguien puede arrojarme algo de luz, porque tengo delante una pared y estoy dando palos de ciego. Tengo ya funcionando el proceso de generar una factura, el XML y el QR. Me he puesto con el tema de enviar a Hacienda, y por ahora he conseguido que me llegue el aviso de "001 - no se ha usado certificado de cliente". - He generado un certificado de dispositivo usando la web de Izenpe (es gratuito). - Se ha creado un P12, que he convertido a PEM y CRT con open_ssl, y lo he subido a Plesk. - El certificado no puedo usarlo directamente en un dominio porque dice que "la conexión no es segura". - Para probar a enviar algo firmado, me he descargado el Autofirma y he firmado usando ese certificado P12. En principio parece que OK. - Al intentar subir por PHP este XML, me dice que no se ha usado certificado SSL. En sí, el dominio desde el que envío los datos, tiene un certificado Let's Encrypt que funciona correctamente, pero no sé si esto se llega a usar o detectar. He estado mirando diferentes opciones, y he visto que desde PHP se puede especificar qué fichero quieres usar como certificado. Por un lado he probado esto: Código PHP:
El error es este: Código:
<br /> <b>Warning</b>: file_get_contents(): Unable to set private key file `/var/www/vhosts/xxx/dkbai.pem' in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br /> <br /> <b>Warning</b>: file_get_contents(): Failed to enable crypto in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br /> <br /> <b>Warning</b>: file_get_contents(tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta): Failed to open stream: operation failed in <b>/var/www/vhosts/xxx/api/factura/index.php</b> on line <b>730</b><br /> Código PHP:
Código:
58unable to load client key: -8178 (SEC_ERROR_BAD_KEY) ¿Alguien me ilumina un poco el camino? Entiendo que quizás es algún problema con el fichero de la Key, pero no me hago idea el qué... Gracias! Saludos. EDIT: SOLUCIONADO!! El problema era el comando que utilicé para convertir el P12 en PEM. Un usuario de Stackoverflow dice que se le solucionó con este comando: Código:
openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts Última edición por Irreo fecha: 28-03-2022 a las 17:45:46. Razón: Problema solucionado. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|