Cita:
Empezado por espinete
He probado a no incluir la Serie en la factura (si la factura no tiene serie), pero sigue igual.
Por lo tanto, el problema tiene que ser la codificación.
La factura SIN firmar está en UTF-8 SIN BOM. Al menos así me consta con el Notepad++ y con el RJ TextEd.
Y tiene esta línea al principio del XML:
Código:
<?xml version="1.0" encoding="UTF-8"?>
La factura FIRMADA, también está en UTF-8 SIN BOM, pero la primera línea del XML es así:
Código:
<?xml version="1.0"?>
Ambas tienen una línea de más en el fichero
Archivo Adjunto 3952
Este es el contenido del XML (SIN firmar):
<
Código:
?xml version="1.0" encoding="UTF-8"?>
<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>42187378L</NIF>
<ApellidosNombreRazonSocial>DESTINATARIO PEREZ</ApellidosNombreRazonSocial>
<CodigoPostal>28080</CodigoPostal>
<Direccion>Calle Madrid 18</Direccion>
</IDDestinatario>
</Destinatarios>
<VariosDestinatarios>N</VariosDestinatarios>
<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
</Sujetos>
<Factura>
<CabeceraFactura>
<NumFactura>170</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 170</DescripcionFactura>
<DetallesFactura>
<IDDetalleFactura>
<DescripcionDetalle>Linea 1</DescripcionDetalle>
<Cantidad>1</Cantidad>
<ImporteUnitario>100</ImporteUnitario>
<Descuento>0</Descuento>
<ImporteTotal>121</ImporteTotal>
</IDDetalleFactura>
</DetallesFactura>
<ImporteTotalFactura>136.78</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>169</NumFacturaAnterior>
<FechaExpedicionFacturaAnterior>04-10-2021</FechaExpedicionFacturaAnterior>
<SignatureValueFirmaFacturaAnterior>ihX0a1ouXku0n2MmeC47pcgwR2COanoSVPAcfKgxcIq90lrlk/0zmkqkBvX9Xus4dlms1P+q5IPIOQICaMD0OeXDR8EQ+lksbVE2</SignatureValueFirmaFacturaAnterior>
</EncadenamientoFacturaAnterior>
<Software>
<LicenciaTBAI>TBAIXXXXXXXXXXXXXXXX</LicenciaTBAI>
<EntidadDesarrolladora>
<NIF>11111111H</NIF>
</EntidadDesarrolladora>
<Nombre>Entidad Desarrolladora</Nombre>
<Version>15.5</Version>
</Software>
<NumSerieDispositivo>NSERIEPC</NumSerieDispositivo>
</HuellaTBAI>
</T:TicketBai>
|
Lo he copiado y he generado la firma correctamente, no parece que haya errores en el fichero sin firmar, lo he comprobado con chilkat despues de firmar:
Signature Verified
Number of Reference Digests = 3
Reference 1 digest is valid.
Reference 2 digest is valid.
Reference 3 digest is valid.
Lo que me extraña es que, a tí, despuéss de firmarlo le quite algo a la primera linea, con lo cual sigo pensando que hay un proceso intermedio que mete caracterers, a mi no me quita nada despues de firmarlo, con lo cual empieza a comprobar desde el proceso de Firma que es donde tienes el fallo.