Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1801  
Antiguo 06-10-2021
carlosMorell carlosMorell is offline
Registrado
 
Registrado: ago 2021
Posts: 7
Poder: 0
carlosMorell Va por buen camino
Cita:
Empezado por iMia Ver Mensaje
Cuando se generan los xmls para enviar, los puedes guardar en la maquina que los ha generado o en otro sitio, siempre y cuando sean accesibles por inspección en caso de haberla. No se pueden eliminar, almenos el xml firmado (yo personalmente guardo el que no está firmado y el firmado, así puedo ver si se ha intentado manipular de forma externa. (que hay mucho cliente con un "sobrino" que está "todo el dia con el ordenador y sabe mucho y es muuu listo"...)

El tema de las facturas en papel.. eso como tu veas... lo ideal es guardar la factura en PDF y reimprimirla... no regenerarla, ya que pueden pasar mil cosas al vovlver a regenerar...

El tema certificados nu sé... yo firmo con autofirma..

Entonces se han de guardar los XML como tal. No vale almacenarlos en un campo Meme de una tabla? Toma ya...

Claro, el tema de las facturas, supongo que lo mejor es imprimirlas en pdf y guardarlo. Pero esta permitido tirar de la base de datos para reimprimirla, si queremos? para que no haya un exceso en el equipo?

Muchas gracias!
Responder Con Cita
  #1802  
Antiguo 06-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 873
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por carlosMorell Ver Mensaje
Buenas tardes,

algunas dudas, que supongo ya habéis resuelto, pero no la encuentro. Cuando genero el XML para su envió, se supone que han de ser almacenados en el equipo desde el que se ha generado la factura., por si se hace una revisión. O una vez transmitidos se pueden eliminar del equipo? Han de ser almacenados como fichero, o podría guardarlos en una tabla de la BD y reimprimirlos.

Algo similar se me plantea con las facturas. Solo se pueden generar una vez, y se han de almacenar. Sin tirar de la factura en base de datos para volver a generarlos ? O lo único es que no se puede alterar la información de la factura el la BD , pero puedo tirar de esa información para volver a imprimirlo, tantas veces como sea necesario?

Veo que son tres certificados, pero es tres en uno, o he de usar los tres certificados independientemente para firmar el XML?

Muchas gracias de antemano
Carlos.
Hola Carlos el XML debe contener los datos, tanto de certificados, como de la factura necesarios antes de firmarlo.
El xml no está definido en que formato lo puedes guardar, pero si tienes que decirlo en el formulario de alta de software garanté, y por tanto yo considero que en caso de inspeccione inspector tenga la herramienta, claves, paths... necesarios para poder revisarlos o que alguien le pueda indicar donde están,. Por otro lado no he entendido lo de la factura, volver a generar... Si puedes detallar con algún ejemplo
Responder Con Cita
  #1803  
Antiguo 06-10-2021
carlosMorell carlosMorell is offline
Registrado
 
Registrado: ago 2021
Posts: 7
Poder: 0
carlosMorell Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Hola Carlos el XML debe contener los datos, tanto de certificados, como de la factura necesarios antes de firmarlo.
El xml no está definido en que formato lo puedes guardar, pero si tienes que decirlo en el formulario de alta de software garanté, y por tanto yo considero que en caso de inspeccione inspector tenga la herramienta, claves, paths... necesarios para poder revisarlos o que alguien le pueda indicar donde están,. Por otro lado no he entendido lo de la factura, volver a generar... Si puedes detallar con algún ejemplo
Gracias por tu rápida respuesta.

La cuestión es que una vez que genero la factura, por un lado tengo los datos que maneja el programa en una tabla de la BD, y por otro lado el pdf con el código QR que genero en ese momento. Si necesito emitir una copia de esa factura ya emitida. Puedo darle a un botón en mi Sw para generar copia? y que usando los datos de la BD, vuelva arealizar el proceso, a traves del cual se genera el pdf y se incrusta el QR en el Pdf? O es necesario tener almacenado fisicamente ese pdf o una imagen y hacer una replica?
Muchas gracias!
Responder Con Cita
  #1804  
Antiguo 06-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 873
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por carlosMorell Ver Mensaje
Gracias por tu rápida respuesta.

La cuestión es que una vez que genero la factura, por un lado tengo los datos que maneja el programa en una tabla de la BD, y por otro lado el pdf con el código QR que genero en ese momento. Si necesito emitir una copia de esa factura ya emitida. Puedo darle a un botón en mi Sw para generar copia? y que usando los datos de la BD, vuelva arealizar el proceso, a traves del cual se genera el pdf y se incrusta el QR en el Pdf? O es necesario tener almacenado fisicamente ese pdf o una imagen y hacer una replica?
Muchas gracias!
No tienes que almacenar el pdf, lo puedes hacer como quieras, teniendo en cuenta que si vuelves a sacar copia, ponga 'Copia' y se genere el QR e identificador exactamente igual, aunque hayan cambiado a posterior los datos del servicio del Qr el http...
Si guardas una copia del pdf asegúrate que la que vuelvas a reimprimir o reenviar le Insertes lo de Copia"
Responder Con Cita
  #1805  
Antiguo 06-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 873
Poder: 3
ermendalenda Va por buen camino
De todas formas yo hago más o menos como mía:
Guardo xml sin firmar y firmado y las Facturas. Todo esto lo guardo, además de en el equipo, en un servidor externo con un webservice al que solo se puede mandar una vez y no se puede machacar de nuevo el mismo xml con lo cual me aseguro antisobrinos :P.
Culquier situación que pase ya me he asegurado que el único que va a la cárcel soy yo, por que el fallo es mío, vaya tela.
Responder Con Cita
  #1806  
Antiguo 06-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Cita:
Empezado por keys Ver Mensaje

En el_firmante.r_Nombre_firma tengo el número de serie del certificado.
Ya he visto que lo haces así para localizar el certificado correcto de entre todos los certificados disponibles, pero en mi caso hago la búsqueda de otra forma, así que este tampoco es el motivo.

Me he asegurado de que los datos del "firmante" estén correctos, comprobando que no haya ningún caracter de más al principio o al final, borrando incluso el principio y el final a mano y volviéndolo a escribir.

Esto es incorrecto:

SigPolicyHashAlgorithm=http://www.w3.org/2001/04/xmlenc#sha256

o al menos SecureBlackBox me da el error "Hash Algorithm not supported".
Tengo que usar SHA256

En la factura de ejemplo (firmada) que se incluye en los esquemas de Gipuzkoa, la cabecera del XML pone

xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd " (OJO, un espacio en blanco al final)

Sin embargo en los ejemplos que veo en el foro ponéis lo siguiente:

xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"

En cualquier caso, ninguna de las dos opciones parece ser la causa del error. Sigo recibiendo el error de siempre.

Estoy empezando a pensar que mis componentes de SecureBlackBox están mal. Me sigue mosqueando lo de que "falta un digest".

Voy a probar a firmarlo con AutoFirma a ver qué pasa, porque de verdad esto va a acabar conmigo hoy.
Responder Con Cita
  #1807  
Antiguo 06-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.033
Poder: 22
keys Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
¿Pones eso porque hay que ponerlo, o por poner algo? Yo en mi caso pongo el nombre de la empresa "firmante".
Vamos, no creo que sea por esto.

El resto está igual, salvo detalles como estos:

El r_SigPolicyHash yo lo tenía en minúsculas, tu en mayúsculas.
firmante.r_ID ambos lo tenemos en blanco. O al menos en tu código no lo veo. No sé si realmente se utiliza.

En tu código, tienes esta línea 2 veces:

sbxXAdESSigner1.Config('SigPolicyHashAlgorithm=.........

Primero con el valor http://www.w3.org/2000/09/xmldsig#sha1 y más adelante SHA256.

He añadido estas dos líneas, que yo no usaba, tras generar la factura (antes de firmarla):

xmldocument1.Version := '1.0';
XMLDocument1.StandAlone := 'no';

Tras cambiar las cabeceras, vuelvo a guardar el archivo así:

FicheroCorregir.WriteBOM := false;
FicheroCorregir.SaveToFile('factura.xml', TEncoding.UTF8);

¿Es esto necesario? De todas formas, estoy modificando el original (sin firmar), así que no creo que esto influya.

Yo uso dos ficheros: sin firmar y firmado, que tampoco creo que influya.


En cualquier caso... ahora me muestra otro 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.

Resumiendo...
Si hago esto:

Código Delphi [-]
        XMLDocument1.XML.Text:=f.XML;
        xmldocument1.Active:=True;
        xmldocument1.Version := '1.0';
        XMLDocument1.Encoding:='UTF-8';
        XMLDocument1.StandAlone := 'no';

        if FileExists('factura.xml') then
           DeleteFile('factura.xml');

        xmldocument1.SaveToFile('factura.xml');

        FicheroCorregir := TStringList.Create;
        FicheroCorregir.LoadFromFile('factura.xml');
        FicheroCorregir.Text := AnsiReplaceStr(FicheroCorregir.Text, '','');
        FicheroCorregir.Text := AnsiReplaceStr(FicheroCorregir.Text,'', '');

        FicheroCorregir.WriteBOM := false;
        FicheroCorregir.SaveToFile('factura.xml', TEncoding.UTF8);

La factura (sin firmar) se guarda bien, con esta línea al principio...

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

...y supuestamente en UTF-8 SIN BOM, según veo en RJ TextEdit y Notepad++

Después, con tu código para la firma...

Código Delphi [-]
    firmante.r_Nombre_firma := empresa_cliente;
    firmante.r_ID := '';
    firmante.r_Metodo_Canonicalization := '';
    firmante.r_Hash_algorithm := 'SHA256';
    firmante.r_SigPolicyHashAlgorithm := 'SHA256';

    //Bizkaia
    if combobox1.ItemIndex=0 then
    begin
        firmante.r_SigPolicyID := 'https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf';                                   //https://ticketbai.eus/politicafirma
        firmante.r_SigPolicyHash := '42ECE7F7CC773CC6D21F06D4CDA8F97F928EA621F4BBC6EF9B06DB6CD90EF44B';    //Quzn98x3PMbSHwbUzaj5f5KOpiH0u8bvmwbbbNkO9Es= convertido a HEX es 42ECE7F7CC773CC6D21F06D4CDA8F97F928EA621F4BBC6EF9B06DB6CD90EF44B
        firmante.r_SigPolicyURI := 'https://www.batuz.eus/fitxategiak/batuz/ticketbai/sinadura_elektronikoaren_zehaztapenak_especificaciones_de_la_firma_electronica_v1_0.pdf';
    end
    else
    //Gipuzkoa
    if combobox1.ItemIndex=1 then
    begin
        firmante.r_SigPolicyID := 'https://www.gipuzkoa.eus/ticketbai/sinadura';                            //https://www.gipuzkoa.eus/ticketbai/sinadura
        firmante.r_SigPolicyHash := 'E8DACA026EB4A3BBBAD85510C3365EC36E2B6B6BDEF4F4506300B6D4033A227D';     //6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0= convertido a HEX es e8daca026eb4a3bbbad85510c3365ec36e2b6b6bdef4f4506300b6d4033a227d
        firmante.r_SigPolicyURI := 'https://www.gipuzkoa.eus/ticketbai/sinadura';
    end
    else
    //Araba
    if combobox1.ItemIndex=2 then
    begin
        firmante.r_SigPolicyID := 'https://ticketbai.araba.eus/tbai/sinadura/';                            //https://www.gipuzkoa.eus/ticketbai/sinadura
        firmante.r_SigPolicyHash := '88E82F917EFFC8720345188FCBF2D84345149FB415F3FD750F50456ECF3232E4';     //6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0= convertido a HEX es e8daca026eb4a3bbbad85510c3365ec36e2b6b6bdef4f4506300b6d4033a227d
        firmante.r_SigPolicyURI := 'https://ticketbai.araba.eus/tbai/sinadura/';
    end;

    //Método 2
    p_firmar_xml('factura.xml',firmante,true);


...y sin hacer nada más después, el fichero resultante ahora tiene BOM (según Notepad++ y RJ TextEdit) y esto en la primera línea:

<?xml version="1.0" encoding="utf-8" standalone="no"?> (con utf-8 ahora en minúsculas)

¿Conclusión? Suicidio
¿Puedes poner el fichero xml, justo antes de firmar y el fichero xml justo despues de firmar? te los reviso por si veo algo raro.
Responder Con Cita
  #1808  
Antiguo 06-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 873
Poder: 3
ermendalenda Va por buen camino
buena opción para despejar dudas lo de la autofirma.
Cosa más extraña
Responder Con Cita
  #1809  
Antiguo 06-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Con AutoFirma consigo firmar el archivo, siguiendo los pasos que hay unos posts más atrás.

Con AutoFirma, el archivo firmado resultante ya está en UTF-8 SIN BOM sin tener que hacerle nada. AL parecer respeta la codificación original.
Además, según http://tools.chilkat.io/xmlDsigVerify.cshtml, esta vez obtengo 3 Digest válidos en el archivo firmado, no 2 como ocurría con SecureBlackBox.

No obstante, obtengo el mismo error al hacer el envío, por lo que creo que el problema no está en la firma.

Así que, o bien el proceso de envío hace algo raro al archivo, o yo ya no sé donde más mirar.

¿Hay alguna forma de saber si el envío (con NetHTTPClient1) está tocando algo en el archivo? ¿Hay alguna forma de saber realmente lo que está pasando?

Y yo que pensaba que la firma y envío de Bizkaia era problemático... No puede ser que lleve días con esto, y algo me dice que cuando descubra la causa del problema voy a salir de la oficina directo al bar.

El envío lo hago así:

RequestBody := TFileStream.Create('firmado.xml', fmOpenRead);

NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12];
NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/xml';
NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8';

AResponse := NetHTTPClient1.Post('https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta',RequestBody);

Lo único que se me ocurre es que, como pasa con los Streams cuando se cargan, haya que hacer algún Position := 0 antes de enviarlo, pero eso no explica que "el archivo se ha modificado...", sino que daría otro error, digo yo, vamos.

Os pongo el archivo sin firmar y el firmado, obviando la info. sensible:

Factura SIN FIRMAR:

Código:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>1111111H</NIF>
			<ApellidosNombreRazonSocial>Empresa Emisora</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>00000000A</NIF>
				<ApellidosNombreRazonSocial>CLIENTE DE PRUEBAS</ApellidosNombreRazonSocial>
				<CodigoPostal>28080</CodigoPostal>
				<Direccion>Calle Madrid</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>158</NumFactura>
			<FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>10:38:20</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>04-10-2021</FechaOperacion>
			<DescripcionFactura>Factura 158</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>150</ImporteTotalFactura>
			<RetencionSoportada>0</RetencionSoportada>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
							<DesgloseIVA>
								<DetalleIVA>
									<BaseImponible>50.00</BaseImponible>
									<TipoImpositivo>0</TipoImpositivo>
									<CuotaImpuesto>0.00</CuotaImpuesto>
									<TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
									<CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
									<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
								</DetalleIVA>
							</DesgloseIVA>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<EncadenamientoFacturaAnterior>
			<SerieFacturaAnterior></SerieFacturaAnterior>
			<NumFacturaAnterior>157</NumFacturaAnterior>
			<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
			<SignatureValueFirmaFacturaAnterior>Rp9ubVl90QiCXICZOZ8l9OYAEm6Zy2T3hf2aE7+a0hHKf/6i8jADAr0vO9TyEdnVaI603OXYsHRYPhTEbLOL4jiERUon8G2pF/Fr</SignatureValueFirmaFacturaAnterior>
		</EncadenamientoFacturaAnterior>
		<Software>
			<LicenciaTBAI>TBAIGIPREXXXXXXXXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>11111111H</NIF>
			</EntidadDesarrolladora>
			<Nombre>Nombre Empresa Desarrolladora</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
</T:TicketBai>
Archivo FIRMADO:

Código:
<?xml version="1.0" standalone="no"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>11111111H</NIF>
			<ApellidosNombreRazonSocial>Empresa Emisora</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>00000000A</NIF>
				<ApellidosNombreRazonSocial>CLIENTE DE PRUEBAS</ApellidosNombreRazonSocial>
				<CodigoPostal>28080</CodigoPostal>
				<Direccion>Calle Madrid</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>127</NumFactura>
			<FechaExpedicionFactura>02-01-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>09:52:59</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>02-01-2021</FechaOperacion>
			<DescripcionFactura>Factura 127</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>283</ImporteTotalFactura>
			<RetencionSoportada>0</RetencionSoportada>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<Software>
			<LicenciaTBAI>TBAIGIPREXXXXXXXXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>11111111H</NIF>
			</EntidadDesarrolladora>
			<Nombre>Nombre Empresa Desarrolladora</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
	<ds:Signature
		xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-273182162">
		<ds:SignedInfo>
			<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
			<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
			<ds:Reference URI="">
				<ds:Transforms>
					<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
				</ds:Transforms>
				<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<ds:DigestValue>8rAQe4EJbS2Hbck2KibE6/DSQfnnUeUSV4wGd6ctHGo=</ds:DigestValue>
			</ds:Reference>
			<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-353751308">
				<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<ds:DigestValue>y8Pk+uqYxel3FZNOZ3aAwWhc6v00vG0XLmOuzHYRh/w=</ds:DigestValue>
			</ds:Reference>
		</ds:SignedInfo>
		<ds:SignatureValue>VH0FvdPyHojub+GWvvUVrbs3jdgblZ/TcAzLhEw/nDTBK2mKyTzE7uEi6SPECk1DfhniUwWU66D8jVN59Pis3RyKN+3K6hEOPWU3amtETAu8jKYU13MMulJ6UMHL0ovSLS4ccGUdjmw6C2F7FgtCZqSlvUvhSOcH5BCFqzBzZ6b1LCoTPWCSnZ7pRQDcBOYc44zzmrfb4Wc3IjsC3EFNWydLUFcRJ7jCPVWG8+2r2vebg+EDZ7T+F1sK3+ti+mD65LxijQ==</ds:SignatureValue>
		<ds:KeyInfo>
			<ds:KeyValue>
				<ds:RSAKeyValue>
					<ds:Modulus>tk8wSaUTZz4q2pMW2dUJw42pq88hSzyBpdl9/F5topSDokrMrOkMx9de3nUAuyPt+KACXINBtZyDleqqgrcpo6kup+CAZQ576InVwDORZ5SXlYjVo7HpC3wX9puZmN9NaTfpX62Ie2gsie01zZaACL6n5q4k8cIpfwAh8XBPAmp/EsKLzZ+aPBbpBZ4ORolgkb/0e20wzO3qqiXXGb/ACLBcrKlyBCQbfbD0eONZc1xQSBw5RNioKlELJ8M+H1OzISJKunFqU2AE3vnXfRPfCEPLoSYhOEqJ/WU0DiQ==</ds:Modulus>
					<ds:Exponent>AQAB</ds:Exponent>
				</ds:RSAKeyValue>
			</ds:KeyValue>
			<ds:X509Data>
				<ds:X509IssuerSerial>
					<ds:X509IssuerName>CN=AC Representación, OU=CERES, O=FNMT-RCM, C=ES</ds:X509IssuerName>
					<ds:X509SerialNumber>109179261942007942106360154753800986544</ds:X509SerialNumber>
				</ds:X509IssuerSerial>
				<ds:X509SubjectName>#0C505265673A3338303133202F486F6A613A54462D3631383239202F546F6D6F3A33353934202F466F6C696F3A313639202F46656368613A31332F31312F32303138202F496E73637269706369C3B36E3A31</ds:X509SubjectName>
				<ds:X509Certificate>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</ds:X509Certificate>
			</ds:X509Data>
		</ds:KeyInfo>
		<ds:Object>
			<xades:QualifyingProperties
				xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-273182162">
				<xades:SignedProperties Id="SignedProperties-353751308">
					<xades:SignedSignatureProperties>
						<xades:SigningTime>2021-10-06T18:27:18.930Z</xades:SigningTime>
						<xades:SigningCertificate>
							<xades:Cert>
								<xades:CertDigest>
									<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
									<ds:DigestValue>MLXj91aK6rK8d6lHMBs68CzzIhbGho9YNmPD0QpV4B4=</ds:DigestValue>
								</xades:CertDigest>
								<xades:IssuerSerial>
									<ds:X509IssuerName>CN=AC Representación, OU=CERES, O=FNMT-RCM, C=ES</ds:X509IssuerName>
									<ds:X509SerialNumber>109179261942007942106360154753800986544</ds:X509SerialNumber>
								</xades:IssuerSerial>
							</xades:Cert>
						</xades:SigningCertificate>
						<xades:SignaturePolicyIdentifier>
							<xades:SignaturePolicyId>
								<xades:SigPolicyId>
									<xades:Identifier>https://www.gipuzkoa.eus/ticketbai/sinadura</xades:Identifier>
								</xades:SigPolicyId>
								<xades:SigPolicyHash>
									<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
									<ds:DigestValue>6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=</ds:DigestValue>
								</xades:SigPolicyHash>
								<xades:SigPolicyQualifiers>
									<xades:SigPolicyQualifier>
										<xades:SPURI>https://www.gipuzkoa.eus/ticketbai/sinadura</xades:SPURI>
									</xades:SigPolicyQualifier>
								</xades:SigPolicyQualifiers>
							</xades:SignaturePolicyId>
						</xades:SignaturePolicyIdentifier>
					</xades:SignedSignatureProperties>
				</xades:SignedProperties>
			</xades:QualifyingProperties>
		</ds:Object>
	</ds:Signature>
</T:TicketBai>
En el firmado he borrado algunos trozos de datos pero respetando todos los apartados, obviamente.

Espero de verdad que sirva de algo
Responder Con Cita
  #1810  
Antiguo 06-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 873
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
Con AutoFirma consigo firmar el archivo, siguiendo los pasos que hay unos posts más atrás.

Con AutoFirma, el archivo firmado resultante ya está en UTF-8 SIN BOM sin tener que hacerle nada. AL parecer respeta la codificación original.
......
Espero de verdad que sirva de algo


Veo difeerencias en el archivo sin firmar y en el firmado, no puedes poner el mismo?:

Sin firmar:
<ImporteTotalFactura>150</ImporteTotalFactura>

Firmado:
<ImporteTotalFactura>283</ImporteTotalFactura>


En el firmado desaparece el desglose de iva y los calculos mal hechos...



prueba a poner datos lógicos en el archivo sin firmar, firma con el autofirma
y cambia esto:
Código PHP:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<T:TicketBai
    xmlns:T="urn:ticketbai:emision"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">
por esto
Código PHP:
<?xml version="1.0" encoding="UTF-8"?>
<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">

Arregla:
Código PHP:
    <ImporteTotalFactura>121.00</ImporteTotalFactura>
    
//QUITAR--->//<RetencionSoportada>0</RetencionSoportada>
            
<Claves>
                <
IDClave>
                    <
ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
                </
IDClave>
            </
Claves>
</
DatosFactura>
<
TipoDesglose>
    <
DesgloseFactura>
        <
Sujeta>
            <
NoExenta>
                <
DetalleNoExenta>
                    <
TipoNoExenta>S1</TipoNoExenta>
                    <
DesgloseIVA>
                        <
DetalleIVA>
                            <
BaseImponible>100.00</BaseImponible>
                            <
TipoImpositivo>21.00</TipoImpositivo>
                            <
CuotaImpuesto>21.00</CuotaImpuesto>
                        </
DetalleIVA>
                    </
DesgloseIVA>
                </
DetalleNoExenta>
            </
NoExenta>
        </
Sujeta>
    </
DesgloseFactura>
</
TipoDesglose
Y si puedes, vuelve a poner el archivo sin firmar y el firmado con autofirma
Responder Con Cita
  #1811  
Antiguo 07-10-2021
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 141
Poder: 14
iMia Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
Con AutoFirma consigo firmar el archivo, siguiendo los pasos que hay unos posts más atrás.

Con AutoFirma, el archivo firmado resultante ya está en UTF-8 SIN BOM sin tener que hacerle nada. AL parecer respeta la codificación original.
Además, según http://tools.chilkat.io/xmlDsigVerify.cshtml, esta vez obtengo 3 Digest válidos en el archivo firmado, no 2 como ocurría con SecureBlackBox.

No obstante, obtengo el mismo error al hacer el envío, por lo que creo que el problema no está en la firma.

Así que, o bien el proceso de envío hace algo raro al archivo, o yo ya no sé donde más mirar.

¿Hay alguna forma de saber si el envío (con NetHTTPClient1) está tocando algo en el archivo? ¿Hay alguna forma de saber realmente lo que está pasando?

Y yo que pensaba que la firma y envío de Bizkaia era problemático... No puede ser que lleve días con esto, y algo me dice que cuando descubra la causa del problema voy a salir de la oficina directo al bar.

El envío lo hago así:

RequestBody := TFileStream.Create('firmado.xml', fmOpenRead);

NetHTTPClient1.SecureProtocols := [THTTPSecureProtocol.TLS12];
NetHTTPClient1.CustomHeaders['Content-Type'] := 'application/xml';
NetHTTPClient1.CustomHeaders['Charset'] := 'UTF-8';

AResponse := NetHTTPClient1.Post('https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta',RequestBody);

Lo único que se me ocurre es que, como pasa con los Streams cuando se cargan, haya que hacer algún Position := 0 (yo creo que tambien es eso...) antes de enviarlo, pero eso no explica que "el archivo se ha modificado...", sino que daría otro error, digo yo, vamos.

....

Espero de verdad que sirva de algo
Yo con el NetHTTClient, no conseguí enviar bien los archivos...

Lo hago con TIdHTTP y TIdSSLIOHandlerSocketOpenSSL pongo el ejemplo por lo que has comentado del Position := 0... pero está en paginas atrás... mira el índice que te indica donde está ese código completo...

Código Delphi [-]

        RequestBody := TFileStream.Create(strArxiuFirmat, fmOpenRead);
        IdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(mainForm);
        idhttp := TIdhttp.Create();
        try
          RequestBody.Position := 0;     // <---- Esto es lo que comentas
          IdSSLIOHandler.SSLOptions.SSLVersions := [sslvTLSv1_1];
          if (tblTBAI_Adm.FieldByName('TBAI_Admin_ID').AsInteger = TBAI_ADMIN_GIPUZKOA) then
            IdSSLIOHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
          IdSSLIOHandler.SSLOptions.CertFile := tbl1.FieldByName('RUTA_CERTIFICADO').AsString.Trim();
          IdSSLIOHandler.SSLOptions.KeyFile := tbl1.FieldByName('RUTA_CERTIFICADO').AsString.Trim();
          IdSSLIOHandler.OnGetPassword := mainForm.IdSSLIOHandlerGetPassword;  // Funcion que pone el pass del certificdo... 
          idhttp.IOHandler:= IdSSLIOHandler;
          idhttp.Request.ContentType := 'application/xml; charset=utf-8';
          try
            strResponse := idHttp.Post(tblTBAI_Adm.FieldByName('URL_Envio_TBAI_Alta').AsString.Trim, RequestBody);

            Etc...

Última edición por iMia fecha: 07-10-2021 a las 08:30:54.
Responder Con Cita
  #1812  
Antiguo 07-10-2021
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.288
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 tejano Ver Mensaje
Estoy intentado enviar/consultar datos con la Hacienda de Vizcaya y me da el mensaje de Error técnico (Servicio no disponible actualmente), os ha pasado a alguno más?

Lo estoy haciendo a través del nuevo link de la DBF

https://sarrerak.bizkaia.eus/N3B4000M/aurkezpena
https://sarrerak.bizkaia.eus/N3B4001M/kontsulta

Están desactivdos hasta mediados de Octubre.
__________________
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.
Responder Con Cita
  #1813  
Antiguo 07-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.033
Poder: 22
keys Va por buen camino
Los datos de la cabecera parece que estan mal.

Como ha dicho el compañero pon antes de firmar.

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd ">

Si te sigue fallando pon los dos ficheros otra vez. Pero si puede ser que sean los mismos.

Yo estoy enviando con TNetHTTPClient sin problemas.
Responder Con Cita
  #1814  
Antiguo 07-10-2021
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.033
Poder: 22
keys Va por buen camino
Hola a todos.

Que sepais que Gipuzkoa esta empezando a aplicar las validaciones que tienen puestas en su página web. En el envío no da ningún error/aviso, pero cuando entran los clientes en la web de hacienda para comprobar que han enviado les aparecen los avisos y los errores.

Por ejemplo si pones
Código PHP:
-<DetalleIVA>

<
BaseImponible>837.50</BaseImponible>

<
TipoImpositivo>21.00</TipoImpositivo>

<
CuotaImpuesto>175.88</CuotaImpuesto>

<
TipoRecargoEquivalencia>0.00</TipoRecargoEquivalencia>

<
CuotaRecargoEquivalencia>0.00</CuotaRecargoEquivalencia>

<
OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>

</
DetalleIVA
Es decir poner el tipo de recargo a cero y la cuota de recargo a cero, por que no tiene les sale el siguiente aviso.

Cita:
1177 – Valor del campo TipoRecargoEquivalencia no incluido en la lista de valores admitidos
1323 – Si TipoImpositivo es 21% sólo se admitirán recargos del 5’20 ó 1’75%
Por lo tanto ahora quieren que solo se rellene si tiene algun valor. Esto no lo podemos comprobar en el entorno de pruebas, solo pasa en real.
Responder Con Cita
  #1815  
Antiguo 07-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Joder, he copiado/pegado mal. Me cago en todo.

Tenía tantos archivos abiertos y tantas pruebas que me habré equivocado al copiar/pegar, lo siento.

Vuelvo a poner los dos archivos, esta vez correctos, pero antes revisaré las cabeceras, etc.
Responder Con Cita
  #1816  
Antiguo 07-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Cita:
Empezado por keys Ver Mensaje
Los datos de la cabecera parece que estan mal.

Como ha dicho el compañero pon antes de firmar.

<?xml version="1.0" encoding="utf-8" standalone="no"?>

<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd ">

Si te sigue fallando pon los dos ficheros otra vez. Pero si puede ser que sean los mismos.

Yo estoy enviando con TNetHTTPClient sin problemas.
El problema es que uno me dice que ponga esto...

<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd ">

...y otro esto...

<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">

Lo que es verdad es que en mis cabeceras faltaba este:

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

He vuelto a generar los dos archivos, esta vez el mismo

SIN FIRMAR:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd "
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>11111111</NIF>
			<ApellidosNombreRazonSocial>NOMBRE</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>22222222</NIF>
				<ApellidosNombreRazonSocial>CLIENTE</ApellidosNombreRazonSocial>
				<CodigoPostal>33333</CodigoPostal>
				<Direccion>Calle Madrid 18</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>175</NumFactura>
			<FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>13:23:31</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>04-10-2021</FechaOperacion>
			<DescripcionFactura>Factura 175</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>158.26</ImporteTotalFactura>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
							<DesgloseIVA>
								<DetalleIVA>
									<BaseImponible>158.26</BaseImponible>
									<TipoImpositivo>0</TipoImpositivo>
									<CuotaImpuesto>0.00</CuotaImpuesto>
									<TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
									<CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
									<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
								</DetalleIVA>
							</DesgloseIVA>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<EncadenamientoFacturaAnterior>
			<SerieFacturaAnterior></SerieFacturaAnterior>
			<NumFacturaAnterior>174</NumFacturaAnterior>
			<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
			<SignatureValueFirmaFacturaAnterior>RpVq3ZdboUtF2GZL3GfKzRhyRhPHvy2FnmD2Xjx28XKekLwdhOgmJmeouXUHXEKDVVoo0GA55XZGCSl8zf8PX2DzP2MluTXmVSFK</SignatureValueFirmaFacturaAnterior>
		</EncadenamientoFacturaAnterior>
		<Software>
			<LicenciaTBAI>TBAIGIPREXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>XXXXXXXX</NIF>
			</EntidadDesarrolladora>
			<Nombre>DESARROLLADOR</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
</T:TicketBai>
FIRMADO:

Código:
<?xml version="1.0"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd "
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>11111111</NIF>
			<ApellidosNombreRazonSocial>NOMBRE</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>22222222</NIF>
				<ApellidosNombreRazonSocial>CLIENTE</ApellidosNombreRazonSocial>
				<CodigoPostal>33333</CodigoPostal>
				<Direccion>Calle Madrid 18</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>175</NumFactura>
			<FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>13:23:31</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>04-10-2021</FechaOperacion>
			<DescripcionFactura>Factura 175</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>158.26</ImporteTotalFactura>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
							<DesgloseIVA>
								<DetalleIVA>
									<BaseImponible>158.26</BaseImponible>
									<TipoImpositivo>0</TipoImpositivo>
									<CuotaImpuesto>0.00</CuotaImpuesto>
									<TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
									<CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
									<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
								</DetalleIVA>
							</DesgloseIVA>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<EncadenamientoFacturaAnterior>
			<SerieFacturaAnterior/>
			<NumFacturaAnterior>174</NumFacturaAnterior>
			<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
			<SignatureValueFirmaFacturaAnterior>RpVq3ZdboUtF2GZL3GfKzRhyRhPHvy2FnmD2Xjx28XKekLwdhOgmJmeouXUHXEKDVVoo0GA55XZGCSl8zf8PX2DzP2MluTXmVSFK</SignatureValueFirmaFacturaAnterior>
		</EncadenamientoFacturaAnterior>
		<Software>
			<LicenciaTBAI>TBAIGIPREXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>XXXXXXXX</NIF>
			</EntidadDesarrolladora>
			<Nombre>DESARROLLADOR</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
	<ds:Signature
		xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-58375116">
		<ds:SignedInfo>
			<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
			<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
			<ds:Reference URI="">
				<ds:Transforms>
					<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
				</ds:Transforms>
				<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<ds:DigestValue>cwZtpFCpd78YBtRdihmixKrq1Hh4vdeUzbnHOB68TIw=</ds:DigestValue>
			</ds:Reference>
			<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-1408088310">
				<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<ds:DigestValue>alfZZTS85XR8OTzUK/K7MkP0/EaAKCJYMY2wyUVB7gQ=</ds:DigestValue>
			</ds:Reference>
		</ds:SignedInfo>
		<ds:SignatureValue>jMUWWDclP4PZgFV7oHp2F48BFo2xlP0kx+5/vMf/YEKqxBRRkTIdFo8zaxgFbtKwFIxXsPH+DRd9rIDE2pNcuRqxMOMtbw8U2frcm/fpg0vEbEw+uE8daXzeuiwSxSyJeCUXFYMVa7afHW5ikHxrQNrsIWO07vONan+tA/pPuJQLWCF9QHzAYkiA9+DIvAO28h1KCLRPtZfb79edOKcrM+yl++8THZmOgkmjFm9atEEDyFxzEsFnBToo/R5oas+X9fTGlO//akEe4RePNNxKranf9Y473Du1UREmRgOcDjzevalZhHdM8/2+01P4I8vBIgp9LrW7kcqXWErfeRo9Ew==</ds:SignatureValue>
		<ds:KeyInfo>
			<ds:KeyValue>
				<ds:RSAKeyValue>
					<ds:Modulus>p9VyI1icLQz5ROHVLioTbggGcIjLmr+8dsEq5hbPvCM15Zktk8wSaUTZz4q2pMW2dUJw42pq88hSzyBpdl9/F5topSDokrMrOkMx9de3nUAuyPt+KACXINBtZyDleqqgrcpo6kup+CAZQ576InVwDORZ5SXlYjVo7HpC3wX9puZmN9NaTfpX62Ie2gsie01zZaACL6n5q4k8cIpfwAh8XBPAmp/EsKLzZ+aPBbpBZ4ORolgkb/0e20wzO3qqiXXGb/ACLBcrKlyBCQbfbD0eONZc1xQSBw5RNioKlELJ8M+H1OzISJKunFqU2AE3vnXfRPfCEPLoSYhOEqJ/WU0DiQ==</ds:Modulus>
					<ds:Exponent>AQAB</ds:Exponent>
				</ds:RSAKeyValue>
			</ds:KeyValue>
			<ds:X509Data>
				<ds:X509IssuerSerial>
					<ds:X509IssuerName>CN=AC Representación, OU=CERES, O=FNMT-RCM, C=ES</ds:X509IssuerName>
					<ds:X509SerialNumber>9179261942007942106360154753800986544</ds:X509SerialNumber>
				</ds:X509IssuerSerial>
				<ds:X509SubjectName>C=ES, O=DESARROLLADOR, 2.5.4.97=#0C0F56415445532D423736373830303232, CN=44444444 NOMBRE (R: 11111111), 2.5.4.4=#0C13434F4E43455043494F4E20474F4E5A414C455A, 2.5.4.42=#0C0D4C5549532053414E544941474F, 2.5.4.5=#130F49444345532D34323138373337384C, 2.5.4.13=#0C505265673A3338303133202F486F6A613A54462D3631383239202F546F6D6F3A33353934202F466F6C696F3A313639202F46656368613A31332F31312F32303138202F496E73637269706369C3B36E3A31</ds:X509SubjectName>
				<ds:X509Certificate>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</ds:X509Certificate>
			</ds:X509Data>
		</ds:KeyInfo>
		<ds:Object>
			<xades:QualifyingProperties
				xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-58375116">
				<xades:SignedProperties Id="SignedProperties-1408088310">
					<xades:SignedSignatureProperties>
						<xades:SigningTime>2021-10-07T08:13:22.025Z</xades:SigningTime>
						<xades:SigningCertificate>
							<xades:Cert>
								<xades:CertDigest>
									<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
									<ds:DigestValue>MLXj91aK6rK8d6lHMBs68CzzIhbGho9YNmPD0QpV4B4=</ds:DigestValue>
								</xades:CertDigest>
								<xades:IssuerSerial>
									<ds:X509IssuerName>CN=AC Representación, OU=CERES, O=FNMT-RCM, C=ES</ds:X509IssuerName>
									<ds:X509SerialNumber>109179261942007942106360154753800986544</ds:X509SerialNumber>
								</xades:IssuerSerial>
							</xades:Cert>
						</xades:SigningCertificate>
						<xades:SignaturePolicyIdentifier>
							<xades:SignaturePolicyId>
								<xades:SigPolicyId>
									<xades:Identifier>https://www.gipuzkoa.eus/ticketbai/sinadura</xades:Identifier>
								</xades:SigPolicyId>
								<xades:SigPolicyHash>
									<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
									<ds:DigestValue>6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=</ds:DigestValue>
								</xades:SigPolicyHash>
								<xades:SigPolicyQualifiers>
									<xades:SigPolicyQualifier>
										<xades:SPURI>https://www.gipuzkoa.eus/ticketbai/sinadura</xades:SPURI>
									</xades:SigPolicyQualifier>
								</xades:SigPolicyQualifiers>
							</xades:SignaturePolicyId>
						</xades:SignaturePolicyIdentifier>
					</xades:SignedSignatureProperties>
				</xades:SignedProperties>
			</xades:QualifyingProperties>
		</ds:Object>
	</ds:Signature>
</T:TicketBai>
Ahora probaré a hacer el envío con el método facilitado por iMia (gracias), a ver si es eso.
Responder Con Cita
  #1817  
Antiguo 07-10-2021
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 873
Poder: 3
ermendalenda Va por buen camino
Cita:
Empezado por espinete Ver Mensaje
El problema es que uno me dice que ponga esto...

<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd ">

...y otro esto...

<T:TicketBai xmlns:T="urn:ticketbai:emision" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd">

Lo que es verdad es que en mis cabeceras faltaba este:

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

He vuelto a generar los dos archivos, esta vez el mismo

SIN FIRMAR:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd "
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>11111111</NIF>
			<ApellidosNombreRazonSocial>NOMBRE</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>22222222</NIF>
				<ApellidosNombreRazonSocial>CLIENTE</ApellidosNombreRazonSocial>
				<CodigoPostal>33333</CodigoPostal>
				<Direccion>Calle Madrid 18</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>175</NumFactura>
			<FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>13:23:31</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>04-10-2021</FechaOperacion>
			<DescripcionFactura>Factura 175</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>158.26</ImporteTotalFactura>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
							<DesgloseIVA>
								<DetalleIVA>
									<BaseImponible>158.26</BaseImponible>
									<TipoImpositivo>0</TipoImpositivo>
									<CuotaImpuesto>0.00</CuotaImpuesto>
									<TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
									<CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
									<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
								</DetalleIVA>
							</DesgloseIVA>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<EncadenamientoFacturaAnterior>
			<SerieFacturaAnterior></SerieFacturaAnterior>
			<NumFacturaAnterior>174</NumFacturaAnterior>
			<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
			<SignatureValueFirmaFacturaAnterior>RpVq3ZdboUtF2GZL3GfKzRhyRhPHvy2FnmD2Xjx28XKekLwdhOgmJmeouXUHXEKDVVoo0GA55XZGCSl8zf8PX2DzP2MluTXmVSFK</SignatureValueFirmaFacturaAnterior>
		</EncadenamientoFacturaAnterior>
		<Software>
			<LicenciaTBAI>TBAIGIPREXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>XXXXXXXX</NIF>
			</EntidadDesarrolladora>
			<Nombre>DESARROLLADOR</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
</T:TicketBai>
FIRMADO:

Código:
<?xml version="1.0"?>
<T:TicketBai
	xmlns:T="urn:ticketbai:emision"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ticketbai:emision ticketBaiV12.xsd "
	xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<Cabecera>
		<IDVersionTBAI>1.2</IDVersionTBAI>
	</Cabecera>
	<Sujetos>
		<Emisor>
			<NIF>11111111</NIF>
			<ApellidosNombreRazonSocial>NOMBRE</ApellidosNombreRazonSocial>
		</Emisor>
		<Destinatarios>
			<IDDestinatario>
				<NIF>22222222</NIF>
				<ApellidosNombreRazonSocial>CLIENTE</ApellidosNombreRazonSocial>
				<CodigoPostal>33333</CodigoPostal>
				<Direccion>Calle Madrid 18</Direccion>
			</IDDestinatario>
		</Destinatarios>
		<VariosDestinatarios>N</VariosDestinatarios>
		<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
	</Sujetos>
	<Factura>
		<CabeceraFactura>
			<NumFactura>175</NumFactura>
			<FechaExpedicionFactura>04-10-2021</FechaExpedicionFactura>
			<HoraExpedicionFactura>13:23:31</HoraExpedicionFactura>
			<FacturaSimplificada>N</FacturaSimplificada>
			<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
		</CabeceraFactura>
		<DatosFactura>
			<FechaOperacion>04-10-2021</FechaOperacion>
			<DescripcionFactura>Factura 175</DescripcionFactura>
			<DetallesFactura>
				<IDDetalleFactura>
					<DescripcionDetalle>Linea 1</DescripcionDetalle>
					<Cantidad>1</Cantidad>
					<ImporteUnitario>100</ImporteUnitario>
					<Descuento>0</Descuento>
					<ImporteTotal>121</ImporteTotal>
				</IDDetalleFactura>
			</DetallesFactura>
			<ImporteTotalFactura>158.26</ImporteTotalFactura>
			<Claves>
				<IDClave>
					<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
				</IDClave>
			</Claves>
		</DatosFactura>
		<TipoDesglose>
			<DesgloseFactura>
				<Sujeta>
					<NoExenta>
						<DetalleNoExenta>
							<TipoNoExenta>S1</TipoNoExenta>
							<DesgloseIVA>
								<DetalleIVA>
									<BaseImponible>158.26</BaseImponible>
									<TipoImpositivo>0</TipoImpositivo>
									<CuotaImpuesto>0.00</CuotaImpuesto>
									<TipoRecargoEquivalencia>0</TipoRecargoEquivalencia>
									<CuotaRecargoEquivalencia>0</CuotaRecargoEquivalencia>
									<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
								</DetalleIVA>
							</DesgloseIVA>
						</DetalleNoExenta>
					</NoExenta>
				</Sujeta>
			</DesgloseFactura>
		</TipoDesglose>
	</Factura>
	<HuellaTBAI>
		<EncadenamientoFacturaAnterior>
			<SerieFacturaAnterior/>
			<NumFacturaAnterior>174</NumFacturaAnterior>
			<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
			<SignatureValueFirmaFacturaAnterior>RpVq3ZdboUtF2GZL3GfKzRhyRhPHvy2FnmD2Xjx28XKekLwdhOgmJmeouXUHXEKDVVoo0GA55XZGCSl8zf8PX2DzP2MluTXmVSFK</SignatureValueFirmaFacturaAnterior>
		</EncadenamientoFacturaAnterior>
		<Software>
			<LicenciaTBAI>TBAIGIPREXXXX</LicenciaTBAI>
			<EntidadDesarrolladora>
				<NIF>XXXXXXXX</NIF>
			</EntidadDesarrolladora>
			<Nombre>DESARROLLADOR</Nombre>
			<Version>15.5</Version>
		</Software>
		<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
	</HuellaTBAI>
	<ds:Signature
		xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-58375116">
		<ds:SignedInfo>
			<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
			<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
			<ds:Reference URI="">
				<ds:Transforms>
					<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
				</ds:Transforms>
				<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<ds:DigestValue>cwZtpFCpd78YBtRdihmixKrq1Hh4vdeUzbnHOB68TIw=</ds:DigestValue>
			</ds:Reference>
			<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#SignedProperties-1408088310">
				<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
				<ds:DigestValue>alfZZTS85XR8OTzUK/K7MkP0/EaAKCJYMY2wyUVB7gQ=</ds:DigestValue>
			</ds:Reference>
		</ds:SignedInfo>
		<ds:SignatureValue>jMUWWDclP4PZgFV7oHp2F48BFo2xlP0kx+5/vMf/YEKqxBRRkTIdFo8zaxgFbtKwFIxXsPH+DRd9rIDE2pNcuRqxMOMtbw8U2frcm/fpg0vEbEw+uE8daXzeuiwSxSyJeCUXFYMVa7afHW5ikHxrQNrsIWO07vONan+tA/pPuJQLWCF9QHzAYkiA9+DIvAO28h1KCLRPtZfb79edOKcrM+yl++8THZmOgkmjFm9atEEDyFxzEsFnBToo/R5oas+X9fTGlO//akEe4RePNNxKranf9Y473Du1UREmRgOcDjzevalZhHdM8/2+01P4I8vBIgp9LrW7kcqXWErfeRo9Ew==</ds:SignatureValue>
		<ds:KeyInfo>
			<ds:KeyValue>
				<ds:RSAKeyValue>
					<ds:Modulus>p9VyI1icLQz5ROHVLioTbggGcIjLmr+8dsEq5hbPvCM15Zktk8wSaUTZz4q2pMW2dUJw42pq88hSzyBpdl9/F5topSDokrMrOkMx9de3nUAuyPt+KACXINBtZyDleqqgrcpo6kup+CAZQ576InVwDORZ5SXlYjVo7HpC3wX9puZmN9NaTfpX62Ie2gsie01zZaACL6n5q4k8cIpfwAh8XBPAmp/EsKLzZ+aPBbpBZ4ORolgkb/0e20wzO3qqiXXGb/ACLBcrKlyBCQbfbD0eONZc1xQSBw5RNioKlELJ8M+H1OzISJKunFqU2AE3vnXfRPfCEPLoSYhOEqJ/WU0DiQ==</ds:Modulus>
					<ds:Exponent>AQAB</ds:Exponent>
				</ds:RSAKeyValue>
			</ds:KeyValue>
			<ds:X509Data>
				<ds:X509IssuerSerial>
					<ds:X509IssuerName>CN=AC Representación, OU=CERES, O=FNMT-RCM, C=ES</ds:X509IssuerName>
					<ds:X509SerialNumber>9179261942007942106360154753800986544</ds:X509SerialNumber>
				</ds:X509IssuerSerial>
				<ds:X509SubjectName>C=ES, O=DESARROLLADOR, 2.5.4.97=#0C0F56415445532D423736373830303232, CN=44444444 NOMBRE (R: 11111111), 2.5.4.4=#0C13434F4E43455043494F4E20474F4E5A414C455A, 2.5.4.42=#0C0D4C5549532053414E544941474F, 2.5.4.5=#130F49444345532D34323138373337384C, 2.5.4.13=#0C505265673A3338303133202F486F6A613A54462D3631383239202F546F6D6F3A33353934202F466F6C696F3A313639202F46656368613A31332F31312F32303138202F496E73637269706369C3B36E3A31</ds:X509SubjectName>
				<ds:X509Certificate>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</ds:X509Certificate>
			</ds:X509Data>
		</ds:KeyInfo>
		<ds:Object>
			<xades:QualifyingProperties
				xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" Target="#Signature-58375116">
				<xades:SignedProperties Id="SignedProperties-1408088310">
					<xades:SignedSignatureProperties>
						<xades:SigningTime>2021-10-07T08:13:22.025Z</xades:SigningTime>
						<xades:SigningCertificate>
							<xades:Cert>
								<xades:CertDigest>
									<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
									<ds:DigestValue>MLXj91aK6rK8d6lHMBs68CzzIhbGho9YNmPD0QpV4B4=</ds:DigestValue>
								</xades:CertDigest>
								<xades:IssuerSerial>
									<ds:X509IssuerName>CN=AC Representación, OU=CERES, O=FNMT-RCM, C=ES</ds:X509IssuerName>
									<ds:X509SerialNumber>109179261942007942106360154753800986544</ds:X509SerialNumber>
								</xades:IssuerSerial>
							</xades:Cert>
						</xades:SigningCertificate>
						<xades:SignaturePolicyIdentifier>
							<xades:SignaturePolicyId>
								<xades:SigPolicyId>
									<xades:Identifier>https://www.gipuzkoa.eus/ticketbai/sinadura</xades:Identifier>
								</xades:SigPolicyId>
								<xades:SigPolicyHash>
									<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
									<ds:DigestValue>6NrKAm60o7u62FUQwzZew24ra2ve9PRQYwC21AM6In0=</ds:DigestValue>
								</xades:SigPolicyHash>
								<xades:SigPolicyQualifiers>
									<xades:SigPolicyQualifier>
										<xades:SPURI>https://www.gipuzkoa.eus/ticketbai/sinadura</xades:SPURI>
									</xades:SigPolicyQualifier>
								</xades:SigPolicyQualifiers>
							</xades:SignaturePolicyId>
						</xades:SignaturePolicyIdentifier>
					</xades:SignedSignatureProperties>
				</xades:SignedProperties>
			</xades:QualifyingProperties>
		</ds:Object>
	</ds:Signature>
</T:TicketBai>
Ahora probaré a hacer el envío con el método facilitado por iMia (gracias), a ver si es eso.
Tienes q mirar tb que al generar el xml sigues poniendo mal los totales y los tipos impositivos etc, te puede dar errores de formato xsd
Responder Con Cita
  #1818  
Antiguo 07-10-2021
Avatar de thinkows
thinkows thinkows is offline
Miembro
 
Registrado: mar 2020
Ubicación: Sabadell
Posts: 70
Poder: 5
thinkows Va por buen camino
Validaciones Respuesta de Araba

Cita:
Empezado por Noe277 Ver Mensaje
Esto es un problema de ellos habrá que decirles, el caso es que creo que esta en el redondo.
1 x 1,446 también da error pero 1, 44 lo hace bien. 1,45 también hace mal el problema es como redondean.

La respuesta de Raba a los redondeos:


Buenos días


Hemos revisado el contenido de su fichero y los importes son correctos.

El error se está dando en las líneas en las que el importe es menor de 1 euro. Al trabajar con importes pequeños y despreciar los decimales se ha provocado esta situación.

Vamos a solucionarlo en breve.

Cuando lo hayamos solucionado se lo comunicaremos.

Gracias por su colaboración

Un saludo
Responder Con Cita
  #1819  
Antiguo 07-10-2021
Avatar de thinkows
thinkows thinkows is offline
Miembro
 
Registrado: mar 2020
Ubicación: Sabadell
Posts: 70
Poder: 5
thinkows Va por buen camino
Redondeos

Cita:
Empezado por Noe277 Ver Mensaje
Respuesta de Álava sobre el tema del redondeo
Respuesta a mi email de Araba

Buenos días Jordi


Hemos revisado el contenido de su fichero y los importes son correctos.

El error se está dando en las líneas en las que el importe es menor de 1 euro. Al trabajar con importes pequeños y despreciar los decimales se ha provocado esta situación.

Vamos a solucionarlo en breve.

Cuando lo hayamos solucionado se lo comunicaremos.

Gracias por su colaboración

Un saludo
Responder Con Cita
  #1820  
Antiguo 07-10-2021
espinete espinete is offline
Miembro
 
Registrado: mar 2009
Posts: 233
Poder: 16
espinete Va camino a la fama
Cita:
Empezado por ermendalenda Ver Mensaje
Tienes q mirar tb que al generar el xml sigues poniendo mal los totales y los tipos impositivos etc, te puede dar errores de formato xsd
Si. En principio hago pruebas muy básicas por ahora.

El error que me devuelve siempre, más detallado, es el siguiente:

<Descripcion>El mensaje ha sido modificado en tránsito o la firma no está bien realizada -- Reference URI="#SignedProperties-656969070" failed to verify. [src/xml2signatureobj.cpp(315)] - (10606)</Descripcion>

No puedo probar el envío con el método facilitado por iMia (usando idhttp) porque ese método usa el certificado directamente desde archivo y yo uso el almacén de certificados. Voy a ver si consigo averiguar cómo usar el almacén de certificados con ese método y lo pruebo.

Gracias de nuevo
Responder Con Cita
Respuesta



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 3557 Hace 6 Días 17:42:47
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:48:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi