TF Fiscal
Documentación

Referencia

Códigos de error

Referencia consolidada de códigos de error de la Open API de TF Fiscal, agrupada por capa y dominio, con estado HTTP, escenario y tratamiento recomendado.

Formas de error

Los errores tienen tres formas según la capa que los produjo, vea Convenciones generales:

CapaHTTPFormaCampo del código
Gateway de la plataforma (autenticación, suscripción, límite de tasa, enlaces de descarga)401 / 403 / 404 / 429 / 503Sobre de la plataforma {success, errorType, code, message}code (entero)
Empresas, NF-e, CT-e, DC-e, registro de webhook400 / 404Array [{codigo, mensagem}], una entrada por problemacodigo (string)
Verificación de NF-e y consulta de registro400 / 422 / 428 / 451 / 500 / 503Objeto plano {code, message}code (entero)

Los mensajes se localizan según las cabeceras Language / Accept-Language (portugués por defecto). Ramifique por los códigos, nunca por el texto del mensaje. En la forma array, GW001, CER0005, NFe0001, CTe0001, DCe0001 y DCe0000x conservan sus valores alfanuméricos; todos los demás valores de codigo son el código de error de la plataforma como string numérica.

Rangos de código por dominio:

RangoDominio
10001xxxValidación de petición y fallos de la plataforma
10003xxxEmpresa y certificado
10004xxxEmisión, cancelación y carta de corrección de NF-e
10005xxxMotor tributario
10009xxxPlataforma abierta (autenticación, suscripción, límite de tasa, webhooks, enlaces de descarga)
10013xxxDescarga de archivos
10015xxxVerificación de NF-e
10016xxxConsulta de registro (CNPJ / CPF)
10017xxxCT-e
10019xxxDC-e

Gateway: autenticación y autorización

Forma de sobre de la plataforma, producida antes de que la petición llegue a la API. 401 y 403 son errores de configuración; reintentar sin corregir es inútil y puede activar el límite de tasa. Vea Autenticación para el esquema de firma.

HTTPcodeSignificadoAcción
40110009000Faltan cabeceras de firma (token / sign / timestamp)Envíe las tres cabeceras en cada petición
40110009001Timestamp inválido o desfase de reloj superior a ±300 sSincronice el reloj (NTP); genere el timestamp en cada petición, nunca lo reutilice
40110009002Token inválidoCompruebe el app_secret; si se rotó, actualice la configuración
40110009003Firma no coincideRecalcule la firma; vea la lista de comprobación en Autenticación
40310009004Aplicación deshabilitadaContacte con la plataforma
40310009015Aplicación no efectiva (pendiente de aprobación o rechazada)Espere la aprobación / contacte con la plataforma
40310009014Cuenta del integrador deshabilitadaContacte con la plataforma
40310009005API no suscritaSolicite la suscripción del endpoint llamado
42910009006Límite de tasa superadoRetroceda y reintente (empiece en 1 s, duplique hasta 30 s, añada jitter); los límites aplican por aplicación y por grupo de endpoints

Los enlaces de descarga (linkDanfe, linkDownloadXml, linkDacce, nfeLinkXml, cteLinkDacte, dceLinkDace y similares) son peticiones GET planas sin cabeceras de firma; sus fallos son estados HTTP con el sobre de la plataforma, vea Descarga de archivos:

HTTPcodeSignificadoAcción
40110009035Enlace de descarga inválido (ruta alterada, token reutilizado o firma no coincidente)Use el enlace exactamente como lo devolvió la API de consulta
40110009036Enlace de descarga caducadoConsulte de nuevo el documento para obtener un enlace nuevo
50310009037Archivo aún no listo (servicio de renderizado ocupado)Reintente el mismo enlace tras Retry-After
40410013011Archivo no encontradoCompruebe de dónde salió el enlace
42910013016Demasiadas descargas desde una misma IP mediante enlaces de callbackReintente tras Retry-After

Validación de petición y fallos de la plataforma

codeHTTPFormaEscenarioAcción
10001001400ArrayFalló la validación de campos de la petición, una entrada por campo; también errores de contrato de registro / actualización de la sección emissaoDCe (faltan los dos bloques de configuración, actualización que cambia cnpj / municipio, reducción del cursor de la serie, cambio de serie)Corrija según mensagem
10001000500Objeto planoFallo del lado de la plataforma en una llamada de verificación o consulta de registroReintente con backoff; si persiste, contacte con la plataforma con el timestamp y el path de la petición

Empresas y certificados

Forma array. Vea Empresas.

codigoHTTPEscenarioAcción
GW001400Registro: ciudad / estado no se resuelven a un código IBGE; emisión: el código IBGE del municipio del destinatario no existe o es inconsistente con ufCompruebe la UF y el nombre de la ciudad / código IBGE
CER0005400Contraseña del certificado incorrectaCompruebe la contraseña
10003000404empresaId no existe o no pertenece a esta aplicaciónCompruebe el empresaId
10003002400CNPJ ya registradoLa empresa existe; use el empresaId original
10003006400Datos de registro sin la IEIndique inscricaoEstadual
10003010400El CNPJ del certificado no coincide con la empresaUse el certificado correcto
10003011400Certificado caducadoUse un certificado válido
10003012400Certificado idéntico al actualmente activoNada que subir
10009033400Registro de webhook inválido (id no coincide / contentType no JSON)Corrija según lo indicado, vea Registrar webhook

NF-e

Forma array. Los errores de negocio son HTTP 400; un documento desconocido es HTTP 404 con codigo NFe0001. Los rechazos de SEFAZ durante la emisión no son errores HTTP: aparecen como estado Negada en la consulta y como webhook invoice.rejected. Vea NF-e.

codigoHTTPEscenarioAcción
NFe0001404El nfeId de la consulta / cancelación / carta de corrección no existeCompruebe el id enviado en la emisión y el empresaId
10004002400Demasiadas tareas de emisión pendientes para el CNPJReintente más tarde
10004004400Empresa no apta para emitir (aún no aprobada o certificado no listo)Espere la aprobación / vincule el certificado
10004012400Cancelación / carta de corrección: la factura no está autorizadaConsulte para confirmar el estado
10004013400Cancelación: fuera de la ventana de 24 horasEmita una factura de devolución
10004014400Cancelación: rechazada por SEFAZ (código de estado y motivo adjuntos)Actúe según el motivo de SEFAZ
10004015400Carta de corrección: ya hay 20 cartas registradas en la facturaSin más cartas; cancele y reemita o emita factura de devolución
10004016400Carta de corrección rechazada por SEFAZ (código de estado y motivo adjuntos)Actúe según el motivo de SEFAZ
10004017400Carta de corrección: menos de 15 caracteres tras la sanitizaciónReescriba en portugués / ASCII
10004019400Carta de corrección: fuera de la ventana de 720 horas tras la autorizaciónSolo cancelar y reemitir o factura de devolución
10004021 a 10004026400Referencias de la factura de devolución: referencia ausente / referencia en una factura que no es de devolución / original no encontrada o de otra empresa / original no autorizada / ítem original no encontrado / cantidad superior a la línea originalVea las reglas de factura de devolución en Emitir NF-e
10004030400ambienteEmissao no coincide con el entorno actual de la empresaEnvíe en el entorno de la empresa o pida a operaciones el cambio, vea Entornos
10004031400Valor no soportado (presencaConsumidor / varios pagos / tipo de pago desconocido / tipoPessoa inconsistente con el documento / comprador CPF con inscricaoEstadual)Ajuste al alcance soportado en Emitir NF-e
10004034400Comprador CNPJ sin cliente.inscricaoEstadualEnvíe la inscripción estatal del comprador (contribuyente de ICMS)
10004043400Falta un campo de contrato (reducción de base / margen y tasa de ST / diferimiento / importe de impuesto por unidad / código de IPI / pCredSN ausente tanto en la petición como en el perfil); mensagem indica la ruta del campoComplete el campo según la matriz de códigos tributarios en Emitir NF-e
10004044400Campo no aplicable al código tributario (substituicaoTributaria en un código sin ST, percentualCreditoSimples en un código sin crédito)Elimine el grupo
10004045400El cliente.inscricaoEstadual del comprador CNPJ no cumple la regla de dígito verificador del estado del comprador (SEFAZ lo rechazaría con 209 tras la numeración)Compruebe la IE y el estado del comprador
10004046400El código tributario no coincide con el régimen de la empresa (CRT 1/4 requiere CSOSN de 3 dígitos, CRT 2/3 CST de 2 dígitos)Use la familia de códigos del régimen de la empresa
10004047400Comprador no contribuyente con un código exclusivo de contribuyente (10/30/70, 101/201/202/203) o con pCredSNUse 102 / 500 o 900 sin crédito
10005000400Rechazado por el motor tributario (régimen / código tributario incompatible, código de ST para comprador no contribuyente, tasa fuera de rango)Vea las reglas de parámetros tributarios en Emitir NF-e

CT-e

Forma array. Los errores de negocio son HTTP 400; un documento / tarea inexistente es HTTP 404 con codigo CTe0001. Los rechazos de SEFAZ durante la emisión aparecen como estado Negada en la consulta y como webhook cte.rejected. Vea CT-e.

codigoHTTPEscenarioAcción
CTe0001404cteId no encontrado o no pertenece a la empresaCompruebe el id y el empresaId
10003000404empresaId no encontradoCompruebe el empresaId
10017004400La empresa no puede emitir (no aprobada / certificado no listo)Espere la aprobación / vincule el certificado
10017005 / 10017006400Petición duplicada concurrente / demasiadas tareas pendientes para el CNPJReintente más tarde
10017007400Serie numérica sin resolver (ninguna configurada, o varias activas sin elección)Configure una serie del modelo 57
10017010400ambienteEmissao difiere del entorno de la empresaEnvíe para el entorno de la empresa
10017011400Código IBGE del municipio no encontradoCompruebe codigoIbge
10017012 / 10017013400Falta un participante / tomador inconsistente con el indicador de IEAñada el participante o cambie indicadorIeTomador
10017014400Referencias de documentos inválidas (ausentes, dígito verificador incorrecto, grupos mezclados, documentos previos inconsistentes con el tipo de servicio)Ajuste las referencias
10017015400Tipo de documento inconsistente con las referencias (complementario / sustituto)Envíe ctesComplementados / cteSubstituido según tipo
10017016400Los componentes no suman el total, o aReceber supera el totalCorrija los importes
10017017 / 10017018 / 10017019400RNTRC inválido / modal no soportado / enumeración o formato inválido (mensagem indica el campo)Corrija según mensagem
10017020 a 10017025400Parámetro tributario ausente / no permitido / incompatible con el régimen / icmsUfFim obligatorio / falta la fila de la tabla de tasas / CST no soportadoVea los parámetros tributarios en CT-e
10017030400Mismo id con un mensaje diferenteUse un id nuevo o reenvíe el mensaje original
10017031400Producción: ya existe un documento activo / autorizado para el idConsulte el original
10017040 a 10017045400El estado no permite el evento / ventana de cancelación superada / texto de evento inválido / SEFAZ rechazó el evento / límite de secuencia de corrección / evento referenciado no encontradoVea las reglas de cancelación y eventos en CT-e
10017048 / 10017049400Cancelación bloqueada por una carta de corrección registrada / carta de corrección fuera de la ventana de 720 horasVea las reglas de cancelación y eventos en CT-e
10001001400Falló la validación de campos de la petición (una entrada por campo)Corrija según mensagem

DC-e

Forma array. Los errores de negocio son HTTP 400; un documento / tarea inexistente es HTTP 404 con codigo DCe0001. Los casos con código de ejemplo documentado conservan ese código; todos los demás codigo son el código numérico de la plataforma. Los rechazos de SEFAZ durante la emisión aparecen como estado Negada en la consulta y como webhook dce.rejected; los rechazos de la cancelación por SEFAZ aparecen como dce.cancel_rejected. Vea DC-e.

codigoHTTPEscenarioAcción
DCe0001404dceId no encontrado, no pertenece a la empresa, o cancelación solicitada antes de materializar el documentoCompruebe el id y el empresaId; cancele documentos Pendente solo tras la autorización
10003000404empresaId no encontradoCompruebe el empresaId
DCe00004400Empresa no configurada para DC-e (falta tipoEmitente / serie del modelo 99 / sitio de Marketplace), o ambiente difiere del entorno actual de la empresaEnvíe emissaoDCe en el registro o en una actualización con id; envíe para el entorno actual de la empresa y pida a operaciones el cambio a producción
DCe00005400Empresa Marketplace / Carrier sin remetenteAñada el remitente
DCe00006400Falta remetente.enderecoAñada la dirección del remitente
DCe00007400Remitente brasileño sin cpfCnpjAñada el documento del remitente
DCe00008400La empresa no puede emitir (no aprobada / certificado no listo)Espere la aprobación / vincule el certificado
DCe00009400Destinatario brasileño sin cpfCnpjAñada el documento del destinatario
GW001400Código IBGE del municipio no encontrado o inconsistente con ufCompruebe cidade / uf
10019005 / 10019006400Petición duplicada concurrente / demasiadas tareas pendientes para el CNPJReintente más tarde
10019007400Serie numérica sin resolver (varias series activas)Pida a operaciones que consolide las series
10019013400Tipo de emisor Carrier aún no soportado para emisiónUse una empresa Marketplace / OwnIssuer
10019018400Ítem inválido (longitud del NCM, cantidad ≤ 0, precio unitario negativo)Corrija según mensagem
10019019400Enumeración o formato inválido (mensagem indica el campo: tipoPessoa, modalidade, dataEmissao, documentos, teléfono, e-mail, remetente de emisor propio distinto de la empresa)Corrija según mensagem
10019020400CNPJ del transportista inválidoCorrija cnpjTransportadora
10019021400Información adicional demasiado largaAcorte el texto
10019022400Cantidad o documento inválido en autorizacaoDownloadXml; contiene el propio CNPJ del emisor; documento duplicadoCorrija la lista
10019030400Mismo id con un mensaje diferenteUse un id nuevo o reenvíe el mensaje original
10019031400Producción: ya existe un documento activo / autorizado para el idConsulte el original
10019040 a 10019043400El estado no permite la cancelación / ventana de 24 horas superada / cancelación ya aceptada / motivo inválidoVea las reglas de cancelación en DC-e
10019048400dataEmissao fuera de la ventana permitida (más de 5 minutos adelante o más de 30 días atrás; mensagem trae los límites actuales)Use la hora actual u omita dataEmissao
10001001400Falló la validación de campos de la petición (una entrada por campo); errores de contrato de registro / actualización de emissaoDCeCorrija según mensagem

Verificación de NF-e

Forma plana {code, message}, HTTP 400. La petición nunca llega a la validación. Vea Verificación de NF-e.

codeEndpointSignificadoAcción
10015000Verificación de XMLCuerpo de la petición vacíoEnvíe el XML en el cuerpo
10015001Verificación de XMLEl cuerpo supera 1 MBUna NF-e auténtica individual nunca supera ese tamaño; compruebe que no la está envolviendo ni codificando dos veces
10015002Verificación de XMLDTD detectado (<!DOCTYPE)Elimine los DTD; se rechazan como protección contra XXE
10015003Verificación de XMLLa codificación no es UTF-8Convierta a UTF-8 antes de enviar
10015104Consulta por chaveChave malformada (longitud / caracteres / dígito verificador)Valide localmente primero: 44 dígitos; el último es un dígito verificador mod-11
10015004Consulta por chaveFactura no encontrada en ninguna fuenteLa chave es desconocida para la plataforma y para la fuente oficial; confírmela con el emisor

Errores de validación de nivel 1

Se devuelven con HTTP 200 dentro de validation.errors[] de la respuesta de la verificación de XML. No son errores de transporte: la petición tuvo éxito, el documento falló. Todos son bloqueantes (REJECTED terminal) salvo PROTOCOL_MISSING, que es un aviso.

errors[].codeNuméricoSignificado
XML_MALFORMED10015100Sintaxis XML inválida
XSD_INVALID10015101No cumple el layout XSD de la NF-e 4.00
SIGNATURE_INVALID10015102Falló la verificación de la firma digital (contenido manipulado, o certificado caducado en el momento de firmar)
SIGNATURE_CERT_MISMATCH10015103El CNPJ del certificado de firma no coincide con el emisor
ACCESS_KEY_INVALID10015104Estructura / dígito verificador de la chave inválidos
ACCESS_KEY_MISMATCH10015105Los segmentos de la chave no coinciden con los campos del documento
PROTOCOL_MISMATCH10015106Bloque de protocolo inconsistente con el documento
PROTOCOL_MISSING10015107Sin nodo de protocolo (aviso, no bloqueante)
XML_VERSION_UNSUPPORTED10015108La versión del layout no es 4.00

Resultados de nivel 2

No son errores HTTP: llegan por el webhook invoice.verify.completed.

validationStatusTerminalAcción
VALIDATEDSeguro continuar (liberar mercancía, liquidar)
REJECTEDNo continúe; reason explica el veredicto de SEFAZ (cancelada / denegada / inutilizada / no encontrada / protocolo divergente)
VALIDATION_ERRORNoFallo de verificación del lado de la plataforma, no es un juicio sobre la factura; reenvíe más tarde con la cabecera forceRevalidate: true

Consulta de registro

Forma plana {code, message}. Los errores de formato y de dígito verificador se rechazan localmente y nunca llegan a la fuente upstream; no consumen cuota y no se facturan. Vea Consulta de registro.

codeHTTPResponsableSignificadoAcción
10016000400LlamadorFormato de CPF inválido (se requieren 11 dígitos)Compruebe caracteres de formato sobrantes o longitud incorrecta
10016001400LlamadorDígitos verificadores del CPF inválidosValide localmente con el algoritmo mod-11 primero
10016002400LlamadorFecha de nacimiento inválida (se requiere DDMMYYYY válido)Observe el orden día-mes-año y que la fecha debe existir realmente
10016003400LlamadorCPF no encontradoEl CPF no existe, o el CPF y la fecha de nacimiento no coinciden (indistinguible a propósito)
10016004451Tercero (bloqueo legal upstream)LGPD: menor de 16 anos (Lei Felca), el titular es menor de 16 añosDatos retenidos legalmente; no reintente
10016005422Tercero (bloqueo legal upstream)LGPD: menor de idade, el titular tiene entre 16 y 17 añosDatos retenidos legalmente; no reintente
10016006428Tercero (bloqueo legal upstream)LGPD: idade nao verificavel - informe a data de nascimento para completar a verificacao, no se puede verificar la edadLa plataforma ya reverificó una vez con la fecha de nacimiento; no reintente
10016010400LlamadorFormato de CNPJ inválido (se requieren 14 dígitos)Compruebe caracteres de formato sobrantes
10016011400LlamadorDígitos verificadores del CNPJ inválidosValide localmente con el algoritmo mod-11 primero
10016012400LlamadorCNPJ no encontradoNo existe ese CNPJ en el registro oficial
10016020503Tercero (upstream no disponible)La fuente de datos upstream no está disponible temporalmenteReintente con backoff exponencial (empiece en 1 s, duplique hasta 30 s, añada jitter); contacte con la plataforma si persiste

Guía de tratamiento

  • 401 / 403: errores de configuración; corrija la credencial, la suscripción o el reloj. No reintente tal cual.
  • 400 / 404: la petición o la regla de negocio; corrija según el código. Algunos códigos son transitorios y pueden reintentarse más tarde: 10004002, 10017005 / 10017006, 10019005 / 10019006.
  • 422 / 428 / 451: bloqueos legales en las consultas de registro; reintentar es inútil.
  • 429: retroceda con retardo exponencial y jitter (empiece en 1 s, duplique hasta 30 s).
  • 503: reintente la misma petición o enlace tras Retry-After (10009037, 10016020).
  • 5xx: reintente con backoff; si persiste, contacte con la plataforma con el timestamp y el path de la petición.
  • errorType del sobre: 1 error de API, 2 rechazo de SEFAZ, 3 fallo de sistema (reintentable), 4 fallo de validación de campos (corrija la petición).
  • Nunca reenvíe a ciegas un documento rechazado: Negada y REJECTED son veredictos terminales; actúe primero según el motivo de SEFAZ.