He hecho una pequeña prueba usando uno de los ficheros de ejemplo de Batuz, y enviándolo al servidor de prueba de Gipuzkoa. El fichero Ejemplo_TicketBAI_79732487C_A2022_0399.xml está ligeramente modificado para cumplir con la spec actual de Gipuzkoa (se ha modificado las fechas para que no estén en el futuro, y se ha añadido la sección <DetallesFactura>).
Esta es la línea de comandos que uso para enviarlo:
Código:
curl.exe --data-binary @Ejemplo_TicketBAI_79732487C_A2022_0399.xml --cert-type P12 --cert sello_entidad_act.p12:IZProd2021 -H "Content-Type: application/xml;charset=UTF8" -X POST https://tbai-prep.egoitza.gipuzkoa.eus/WAS/HACI/HTBRecepcionFacturasWEB/rest/recepcionFacturas/alta
Y esta es la respuesta del servidor:
Código PHP:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:TicketBaiResponse xmlns:ns2="urn:ticketbai:emision">
<Salida>
<FechaRecepcion>08-07-2021 18:24:48</FechaRecepcion>
<Estado>01</Estado>
<Descripcion>Rechazado</Descripcion>
<Azalpena>Baztertua</Azalpena>
<ResultadosValidacion>
<Codigo>005</Codigo>
<Descripcion>Error: Fichero de alta TicketBAI ya registrado en el sistema.</Descripcion>
<Azalpena>Errorea: TicketBAI fitxategia sisteman erregistratuta dago jada.</Azalpena>
</ResultadosValidacion>
</Salida>
</ns2:TicketBaiResponse>
Mi duda es la siguiente: No me sorprende que este fichero ya esté registrado (está claro que no soy el primero al que se le ocurre hacer esto), no obstante lo que me gustaría saber es qué criterio usan para determinar que una factura está duplicada. ¿Alguien tiene una idea?
He probado cambiar la serie y número de factura, sin éxito. También eliminar el encadenamiento (campo <EncadenamientoFacturaAnterior>) pero obtengo el mismo resultado.
Curiosamente no parece que al servidor le importe que tras todos estos cambios la firma en <ds:Signature> siga siendo la misma (aparentemente, esta comprobación es posterior).