SAFTCheck
Blog

6 min de lectura

Mensajes de error del SAF-T en la AT: "Ficheiro inválido", "Rejeitado" y errores cvc-

Qué significa cada mensaje del Portal das Finanças y del validador SAF-T de la AT y cómo corregirlo: "Ficheiro inválido", estados del fichero, errores de envío, y cvc-pattern-valid, cvc-identity-constraint y otros mensajes del validador.

Los mensajes de la AT son breves y casi nunca dicen qué línea del fichero está mal. Aquí están los que más probablemente verás, con lo que significa cada uno y cómo corregirlo. Los mensajes del Portal das Finanças se citan en portugués, tal como aparecen; los del validador son técnicos y en inglés.

"Ficheiro inválido"

El rechazo más habitual. Significa que el fichero no respeta la estructura definida para el SAF-T (PT) (Portaria n.º 302/2016), y la AT no dice dónde. Variantes más antiguas que aún puedes ver: "Ficheiro SAF-T (PT) inválido" y "O ficheiro seleccionado não está de acordo com o formato exigido".

Causas habituales, por orden de frecuencia:

  • Codificación: el fichero está en UTF-8, o sus bytes no coinciden con la declaración de la primera línea. Cómo corregirlo.
  • Un BOM (byte order mark) antes de <?xml.
  • Un error de esquema: un campo obligatorio vacío, un valor con formato incorrecto, una referencia a un cliente o producto que no figura en el fichero. Los mensajes del validador de abajo indican cuál.

Solución: valida el fichero para ver todos los problemas con su número de línea, corrígelos, exporta de nuevo y vuelve a enviarlo.

Estado del fichero "Rejeitado" o "Integrado parcialmente"

Tras el envío, e-Fatura muestra un estado para el fichero. Según la AT:

  • Pendente / Em processamento: en espera o en proceso.
  • Integrado com sucesso: se registraron todos los documentos.
  • Integrado parcialmente: algunos documentos no se registraron. Normalmente ya se habían comunicado (en un fichero anterior o por webservice) y se ignoran como duplicados, lo cual no es un problema.
  • Rejeitado: un problema de contenido impidió el proceso, o no se registró ningún documento. También ocurre cuando todos los documentos del fichero ya se habían comunicado por webservice sin cambios.

Antes de reenviar un fichero rechazado, comprueba si tu programa ya envía las facturas por webservice: se comunica por fichero o por webservice, no por ambos.

"Ocorreu um erro ao enviar o ficheiro"

Falló el envío en sí; el fichero ni siquiera se comprobó. Revisa la conexión a internet y si un firewall o proxy bloquea el sitio de e-Fatura, y vuelve a intentarlo.

"Falhou o Envio. O cliente da linha de comandos que está a utilizar não se encontra atualizado"

Tu programa envía mediante el cliente de línea de comandos de la AT (un fichero Java llamado FACTEMICLI…jar) y esa versión ya no se acepta. Descarga la versión actual desde el sitio de e-Fatura, sustituye el fichero antiguo donde tu programa lo guarda y vuelve a enviar. Los ficheros grandes, que el portal no acepta, también pasan por este cliente.

Mensajes del validador: cvc-…

El validador de la AT indica los errores de esquema con los mensajes estándar de Java (Xerces). Los códigos son crípticos pero precisos:

cvc-pattern-valid: Value '…' is not facet-valid with respect to pattern '…'

Un valor tiene la forma incorrecta. Ejemplo: InvoiceNo debe ser el tipo de documento, un espacio, la serie, una barra y el número, como FT A/123; FT123 falla.

cvc-minLength-valid: Value with length = '0' is not facet-valid with respect to minLength '1'

Un campo obligatorio está vacío: a menudo un producto sin descripción, o una empresa o cliente sin localidad.

cvc-maxLength-valid: Value '…' with length = '…' is not facet-valid with respect to maxLength '…'

Un valor es demasiado largo, como un código de producto de más de 60 caracteres o un nombre de más de 100.

cvc-enumeration-valid: Value '…' is not facet-valid with respect to enumeration '[…]'

Un código no está en la lista permitida, por ejemplo un tipo de documento o código de impuesto inventado por el programa. Si el valor rechazado es FS (factura simplificada), el validador está desactualizado: FS es válido en la versión 1.04_01.

cvc-complex-type.2.4.a: Invalid content was found starting with element '…'. One of '{…}' is expected.

Faltan elementos o están en el orden equivocado. El mensaje indica el elemento encontrado y el que se esperaba en esa posición.

cvc-identity-constraint.4.3: Key '…' with value '…' not found for identity constraint

Un documento apunta a algo que no figura en el fichero. InvoiceCustomerIDConstraint: una factura usa un CustomerID sin cliente correspondiente en el fichero. InvoiceProductCodeConstraint: lo mismo para un producto. Normalmente la exportación filtró la lista de clientes o productos de forma distinta a los documentos.

Ver todos los errores a la vez

SAFTCheck valida con el esquema actual de la AT y muestra estos problemas en un lenguaje sencillo con el número de línea, además de las comprobaciones que el esquema no puede expresar (codificación, dígitos de control del NIF, ATCUD, fechas). Valida tu SAF-T; la primera validación es gratuita y no requiere cuenta.

Otros artículos