Cita:
Empezado por Neftali [Germán.Estévez]
En mi caso, lo que hacemos es tener una función que "reenvía la factura sin SG" (sin software garante).
Esta función sólo se usa si la factura está rechazada en el libro "240 con SG".
Para hacer esto, volvemos a generar el XML de la factura (con formato sin SG) y la enviamos.
No me consta que tenga que ser con fecha diferente, es más, ahora te pongo un ejemplo y voy a realizar esto pasos:
1) Generar la fatura con error (240 con SG).
2) Y reenviarla a los pocos instantes en el libro "240 sin SG", para que la acepten.
El primer fichero "240 con SG" sería este (te he cambiado algunos campos por zzzzzzzz):
Código PHP:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<lrpjfecsgap:LROEPJ240FacturasEmitidasConSGAltaPeticion xmlns:lrpjfecsgap="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaPeticion_V1_0_2.xsd">
<Cabecera>
<Modelo>240</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>A00</Operacion>
<Version>1.0</Version>
<Ejercicio>2025</Ejercicio>
<ObligadoTributario>
<NIF>zzzzzzzzzzzzz</NIF>
<ApellidosNombreRazonSocial>zzzzzzzzzzzzzzzzz</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FacturasEmitidas>
<FacturaEmitida>
<TicketBai><?xml version="1.0" encoding="utf-8"?>
<T:TicketBai xmlns:T="urn:ticketbai:emision">
<Cabecera>
<IDVersionTBAI>1.2</IDVersionTBAI>
</Cabecera>
<Sujetos>
<Emisor>
<NIF>zzzzzzzzz</NIF>
<ApellidosNombreRazonSocial>zzzzzzzzzzzzzzzzzzzzz</ApellidosNombreRazonSocial>
</Emisor>
<Destinatarios>
<IDDestinatario>
<NIF>A01004324</NIF>
<ApellidosNombreRazonSocial>VILADRA SA</ApellidosNombreRazonSocial>
<CodigoPostal>08009</CodigoPostal>
<Direccion>Muntaner, 12</Direccion>
</IDDestinatario>
</Destinatarios>
<VariosDestinatarios>N</VariosDestinatarios>
<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
</Sujetos>
<Factura>
<CabeceraFactura>
<SerieFactura>TBBT</SerieFactura>
<NumFactura>21</NumFactura>
<FechaExpedicionFactura>06-02-2025</FechaExpedicionFactura>
<HoraExpedicionFactura>12:48:00</HoraExpedicionFactura>
<FacturaSimplificada>N</FacturaSimplificada>
<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
</CabeceraFactura>
<DatosFactura>
<DescripcionFactura>Producto acabado 1</DescripcionFactura>
<DetallesFactura>
<IDDetalleFactura>
<DescripcionDetalle>Producto acabado 1</DescripcionDetalle>
<Cantidad>1.00000000</Cantidad>
<ImporteUnitario>551.02000000</ImporteUnitario>
<Descuento>99.18000000</Descuento>
<ImporteTotal>546.72640000</ImporteTotal>
</IDDetalleFactura>
</DetallesFactura>
<ImporteTotalFactura>546.73</ImporteTotalFactura>
<Claves>
<IDClave>
<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
</IDClave>
</Claves>
</DatosFactura>
<TipoDesglose>
<DesgloseFactura>
<Sujeta>
<NoExenta>
<DetalleNoExenta>
<TipoNoExenta>S1</TipoNoExenta>
<DesgloseIVA>
<DetalleIVA>
<BaseImponible>451.84</BaseImponible>
<TipoImpositivo>21.00</TipoImpositivo>
<CuotaImpuesto>94.89</CuotaImpuesto>
<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
</DetalleIVA>
</DesgloseIVA>
</DetalleNoExenta>
</NoExenta>
</Sujeta>
</DesgloseFactura>
</TipoDesglose>
</Factura>
<HuellaTBAI>
<EncadenamientoFacturaAnterior>
<SerieFacturaAnterior>TBBT</SerieFacturaAnterior>
<NumFacturaAnterior>20</NumFacturaAnterior>
<FechaExpedicionFacturaAnterior>23-01-2025</FechaExpedicionFacturaAnterior>
<SignatureValueFirmaFacturaAnterior>zzzzzzzzzzzzzzX6TDIF5OzFMTLX9SHTgRL/pGkwdYbfaIgE7fHCtIaPvYSVaFC+ur55aDaVFH0ptQYD55/iPWSm</SignatureValueFirmaFacturaAnterior>
</EncadenamientoFacturaAnterior>
<Software>
<LicenciaTBAI>zzzzzzzzzzzzzzzzz</LicenciaTBAI>
<EntidadDesarrolladora>
<NIF>zzzzzzzzzzzzzzzz</NIF>
</EntidadDesarrolladora>
<Nombre>SOFTWARE GARANTE TICKETBAI PRUEBA</Nombre>
<Version>1.0</Version>
</Software>
</HuellaTBAI>
<ds:Signature
....
Aquí sigue todo lo de la huella, firmas,...
El segundo fichero, una vez que se envía "240 sin SG", verás que es mucho más sencillo. Se genera a partir de la misma factura, pero el formato es más simple y no lleva todo lo de la firma.
Esa misma factura yo la he enviado con el libro "240 sin SG" 3 minutos después de la original y me la han aceptado, con este fichero:
Código PHP:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<lrpjfessgamp:LROEPJ240FacturasEmitidasSinSGAltaModifPeticion xmlns:lrpjfessgamp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PJ_240_1_2_FacturasEmitidas_SinSG_AltaModifPeticion_V1_0_1.xsd">
<Cabecera>
<Modelo>240</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.2</Subcapitulo>
<Operacion>A00</Operacion>
<Version>1.0</Version>
<Ejercicio>2025</Ejercicio>
<ObligadoTributario>
<NIF>zzzzzzzzzz</NIF>
<ApellidosNombreRazonSocial>zzzzzzzzzzzzzzzzzz</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FacturasEmitidas>
<FacturaEmitida>
<Destinatarios>
<IDDestinatario>
<NIF>A01004324</NIF>
<ApellidosNombreRazonSocial>VILADRA SA</ApellidosNombreRazonSocial>
<CodigoPostal>08009</CodigoPostal>
</IDDestinatario>
</Destinatarios>
<VariosDestinatarios>N</VariosDestinatarios>
<EmitidaPorTercerosODestinatario>N</EmitidaPorTercerosODestinatario>
<CabeceraFactura>
<SerieFactura>TBBT</SerieFactura>
<NumFactura>21</NumFactura>
<FechaExpedicionFactura>06-02-2025</FechaExpedicionFactura>
<FacturaSimplificada>N</FacturaSimplificada>
<FacturaEmitidaSustitucionSimplificada>N</FacturaEmitidaSustitucionSimplificada>
</CabeceraFactura>
<DatosFactura>
<DescripcionFactura>Producto acabado 1</DescripcionFactura>
<ImporteTotalFactura>546.73</ImporteTotalFactura>
<Claves>
<IDClave>
<ClaveRegimenIvaOpTrascendencia>01</ClaveRegimenIvaOpTrascendencia>
</IDClave>
</Claves>
</DatosFactura>
<TipoDesglose>
<DesgloseFactura>
<Sujeta>
<NoExenta>
<DetalleNoExenta>
<TipoNoExenta>S1</TipoNoExenta>
<DesgloseIVA>
<DetalleIVA>
<BaseImponible>451.84</BaseImponible>
<TipoImpositivo>21.00</TipoImpositivo>
<CuotaImpuesto>94.89</CuotaImpuesto>
<OperacionEnRecargoDeEquivalenciaORegimenSimplificado>N</OperacionEnRecargoDeEquivalenciaORegimenSimplificado>
</DetalleIVA>
</DesgloseIVA>
</DetalleNoExenta>
</NoExenta>
</Sujeta>
</DesgloseFactura>
</TipoDesglose>
</FacturaEmitida>
</FacturasEmitidas>
</lrpjfessgamp:LROEPJ240FacturasEmitidasSinSGAltaModifPeticion>
|
¿De donde has sacado el esquema para el subcapitulo 1.1 con TODO el fichero ticketbai desglosado?
Hasta ahora, el esquema que conocía del sub-capitulo 1.1 incorporaba como un string el contenido codificado del fichero Ticketbai original. Es algo asi:
<lrpjfecsgap:LROEPJ240FacturasEmitidasConSGAltaPeticion xmlns:lrpjfecsgap="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaPeticion_V1_0_2.xsd">
<Cabecera>
<Modelo>240</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>A00</Operacion>
<Version>1.0</Version>
<Ejercicio>2024</Ejercicio>
<ObligadoTributario>
<NIF>XXXXXXXX5</NIF>
<ApellidosNombreRazonSocial>NNNNNNNNNNNNNNNNNNNNN</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FacturasEmitidas>
<FacturaEmitida>
<TicketBai>CADENA_BASE_64_CON_TICKETBAI_ORIGINAL</TicketBai>
</FacturaEmitida>
</FacturasEmitidas>
</lrpjfecsgap:LROEPJ240FacturasEmitidasConSGAltaPeticion>
Pero lo que haces es poner todo el fichero Tickebai entre <Ticketbai>.. </Ticketbai>
¿Esto funciona? ¿Dónde esta este esquema en Batuz?
De todas formas el problema aparece cuando el fichero no es rechazado totalmente, sino aceptado con errores o incluso aceptado sin error aunque haya algún fallo.
Al intentar subirlo por sub-capitulo 1.2 dice "factura duplicada", salvo que se cambie la fecha de emisión