TicketBAI trunca el CIF/NIF de clientes extranjeros Problema Al enviar facturas de servicios intracomunitarias o de exportación (cliente italiano, sin CIF/NIF español) a través del plugin TicketBAI, el sistema muestra un error indicando que la factura no tiene CIF/NIF, a pesar de que el cliente sí tiene su identificador fiscal (VAT number) correctamente rellenado en su ficha.
Causa El plugin normaliza el CIF/NIF del destinatario de la factura mediante la función TbaiTools::normaliceCifNif(), aplicando un patrón que limita el resultado a un máximo de 9 caracteres alfanuméricos, el patrón usado para el NIF/CIF español (/^[A-Z0-9]{1,9}$/).
Este patrón se aplica de forma indiscriminada tanto al identificador del emisor (la empresa, que siempre es española en TicketBAI) como al del destinatario, sin distinguir si el cliente es español o extranjero. Un VAT number de otro país (por ejemplo, uno italiano, de 11 a 13 caracteres) no cumple ese patrón, así que la función descarta el valor y devuelve una cadena vacía. Esa cadena vacía es la que el propio plugin interpreta después como "factura sin CIF/NIF", bloqueando el envío.
Si el cliente tiene un identificador fiscal español (DNI, NIF, NIE, CIF, IFZ): mantener el patrón actual de 9 caracteres. Si el cliente es extranjero (VAT-UE u otro identificador): aplicar un patrón más amplio (hasta 20 caracteres alfanuméricos), igual al que ya usa el plugin Verifactu para destinatarios extranjeros, manteniendo así la coherencia entre plugins.
España, 6 meses, nivel 23
|
|
24-08-2026 18:57:02 esteban Yo me encargo de esta tarea. |
|
|
24-08-2026 19:24:46 esteban ENVIADA - https://github.com/FacturaScripts/ticketbai/pull/66 |
|
|
24-08-2026 19:24:56 esteban relacionada con la issue https://facturascripts.com/issues/119-496-525Se implementa el método testForeignCustomerInvoiceKeepsFullVatId en BizkaiaTest.php para verificar que el CIF/NIF de clientes extranjeros no se trunca al generar facturas. Se añaden métodos auxiliares randomForeignContact, randomForeignCustomer, y randomForeignCustomerInvoice en TicketbaiTrait.php para facilitar la creación de datos de prueba. Se ajusta la validación del CIF/NIF en FacturaCliente.php para permitir identificadores fiscales extranjeros más largos. Estos cambios corrigen un bug donde los CIF/NIF de más de 9 caracteres se truncaban, causando errores en la generación de facturas. |