TF Fiscal
Documentação

Referência

Códigos de erro

Referência consolidada de códigos de erro da Open API da TF Fiscal, agrupada por camada e domínio, com status HTTP, cenário e tratamento recomendado.

Formatos de erro

Os erros têm três formatos conforme a camada que os produziu, veja Convenções gerais:

CamadaHTTPFormatoCampo do código
Gateway da plataforma (autenticação, assinatura de APIs, limite de taxa, links de download)401 / 403 / 404 / 429 / 503Envelope da plataforma {success, errorType, code, message}code (inteiro)
Empresas, NF-e, CT-e, DC-e, registro de webhook400 / 404Array [{codigo, mensagem}], uma entrada por problemacodigo (string)
Verificação de NF-e e consulta cadastral400 / 422 / 428 / 451 / 500 / 503Objeto simples {code, message}code (inteiro)

As mensagens são localizadas pelos cabeçalhos Language / Accept-Language (padrão português). Ramifique pelos códigos, nunca pelo texto da mensagem. No formato array, GW001, CER0005, NFe0001, CTe0001, DCe0001 e DCe0000x mantêm seus valores alfanuméricos; todos os demais valores de codigo são o código de erro da plataforma como string numérica.

Faixas de código por domínio:

FaixaDomínio
10001xxxValidação de requisição e falhas da plataforma
10003xxxEmpresa e certificado
10004xxxEmissão, cancelamento e carta de correção de NF-e
10005xxxMotor tributário
10009xxxPlataforma aberta (autenticação, assinatura, limite de taxa, webhooks, links de download)
10013xxxDownload de arquivos
10015xxxVerificação de NF-e
10016xxxConsulta cadastral (CNPJ / CPF)
10017xxxCT-e
10019xxxDC-e

Gateway: autenticação e autorização

Formato de envelope da plataforma, produzido antes de a requisição chegar à API. 401 e 403 são erros de configuração; repetir sem corrigir é inútil e pode acionar o limite de taxa. Veja Autenticação para o esquema de assinatura.

HTTPcodeSignificadoAção
40110009000Cabeçalhos de assinatura ausentes (token / sign / timestamp)Envie os três cabeçalhos em toda requisição
40110009001Timestamp inválido ou desvio de relógio acima de ±300 sSincronize o relógio (NTP); gere o timestamp a cada requisição, nunca reutilize
40110009002Token inválidoVerifique o app_secret; se foi rotacionado, atualize a configuração
40110009003Assinatura divergenteRecalcule a assinatura; veja a lista de verificação em Autenticação
40310009004Aplicação desativadaContate a plataforma
40310009015Aplicação não efetiva (aguardando aprovação ou rejeitada)Aguarde a aprovação / contate a plataforma
40310009014Conta do integrador desativadaContate a plataforma
40310009005API não assinadaSolicite a assinatura do endpoint chamado
42910009006Limite de taxa excedidoRecue e repita (comece em 1 s, dobre até 30 s, adicione jitter); os limites valem por aplicação e por grupo de endpoints

Os links de download (linkDanfe, linkDownloadXml, linkDacce, nfeLinkXml, cteLinkDacte, dceLinkDace e similares) são requisições GET simples sem cabeçalhos de assinatura; suas falhas são status HTTP com o envelope da plataforma, veja Download de arquivos:

HTTPcodeSignificadoAção
40110009035Link de download inválido (caminho alterado, token reutilizado ou assinatura divergente)Use o link exatamente como devolvido pela API de consulta
40110009036Link de download expiradoConsulte o documento novamente para obter um link novo
50310009037Arquivo ainda não pronto (serviço de renderização ocupado)Repita o mesmo link após Retry-After
40410013011Arquivo não encontradoVerifique a origem do link
42910013016Downloads em excesso de um mesmo IP por links de callbackRepita após Retry-After

Validação de requisição e falhas da plataforma

codeHTTPFormatoCenárioAção
10001001400ArrayFalha na validação de campos da requisição, uma entrada por campo; também erros de contrato de registro / atualização da seção emissaoDCe (os dois blocos de configuração ausentes, atualização alterando cnpj / município, redução do cursor da série, troca de série)Corrija conforme mensagem
10001000500Objeto simplesFalha do lado da plataforma em uma chamada de verificação ou consulta cadastralRepita com backoff; se persistir, contate a plataforma com o timestamp e o path da requisição

Empresas e certificados

Formato array. Veja Empresas.

codigoHTTPCenárioAção
GW001400Registro: cidade / estado não resolvidos para um código IBGE; emissão: código IBGE do município do destinatário inexistente ou inconsistente com ufVerifique a UF e o nome da cidade / código IBGE
CER0005400Senha do certificado incorretaVerifique a senha
10003000404empresaId inexistente ou não pertence a esta aplicaçãoVerifique o empresaId
10003002400CNPJ já registradoA empresa existe; use o empresaId original
10003006400Dados de registro sem a IEInforme inscricaoEstadual
10003010400CNPJ do certificado não corresponde à empresaUse o certificado correto
10003011400Certificado expiradoUse um certificado válido
10003012400Certificado idêntico ao atualmente ativoNada a enviar
10009033400Registro de webhook inválido (id divergente / contentType não JSON)Corrija conforme indicado, veja Registrar webhook

NF-e

Formato array. Erros de negócio são HTTP 400; documento desconhecido é HTTP 404 com codigo NFe0001. Rejeições da SEFAZ durante a emissão não são erros HTTP: aparecem como status Negada na consulta e como webhook invoice.rejected. Veja NF-e.

codigoHTTPCenárioAção
NFe0001404O nfeId da consulta / cancelamento / carta de correção não existeVerifique o id enviado na emissão e o empresaId
10004002400Tarefas de emissão pendentes em excesso para o CNPJRepita mais tarde
10004004400Empresa não apta a emitir (ainda não aprovada ou certificado não pronto)Aguarde a aprovação / vincule o certificado
10004012400Cancelamento / carta de correção: nota não está autorizadaConsulte para confirmar o status
10004013400Cancelamento: fora da janela de 24 horasEmita uma nota de devolução
10004014400Cancelamento: recusado pela SEFAZ (código de status e motivo anexados)Atue conforme o motivo da SEFAZ
10004015400Carta de correção: já há 20 cartas registradas na notaSem novas cartas; cancele e reemita ou emita nota de devolução
10004016400Carta de correção recusada pela SEFAZ (código de status e motivo anexados)Atue conforme o motivo da SEFAZ
10004017400Carta de correção: menos de 15 caracteres após a sanitizaçãoReescreva em português / ASCII
10004019400Carta de correção: fora da janela de 720 horas após a autorizaçãoApenas cancelar e reemitir ou nota de devolução
10004021 a 10004026400Referências da nota de devolução: referência ausente / referência em nota que não é de devolução / original não encontrada ou de outra empresa / original não autorizada / item original não encontrado / quantidade acima da linha originalVeja as regras de nota de devolução em Emitir NF-e
10004030400ambienteEmissao não corresponde ao ambiente atual da empresaEnvie no ambiente da empresa ou peça à operação a troca, veja Ambientes
10004031400Valor não suportado (presencaConsumidor / múltiplos pagamentos / tipo de pagamento desconhecido / tipoPessoa inconsistente com o documento / comprador CPF com inscricaoEstadual)Ajuste ao escopo suportado em Emitir NF-e
10004034400Comprador CNPJ sem cliente.inscricaoEstadualEnvie a inscrição estadual do comprador (contribuinte de ICMS)
10004043400Campo de contrato ausente (redução de base / margem e alíquota de ST / diferimento / valor de tributo por unidade / código de IPI / pCredSN ausente na requisição e no perfil); mensagem indica o caminho do campoPreencha o campo conforme a matriz de códigos tributários em Emitir NF-e
10004044400Campo não aplicável ao código tributário (substituicaoTributaria em código sem ST, percentualCreditoSimples em código sem crédito)Remova o grupo
10004045400cliente.inscricaoEstadual do comprador CNPJ não passa na regra de dígito verificador do estado do comprador (a SEFAZ rejeitaria com 209 após a numeração)Verifique a IE e o estado do comprador
10004046400Código tributário não corresponde ao regime da empresa (CRT 1/4 exige CSOSN de 3 dígitos, CRT 2/3 CST de 2 dígitos)Use a família de códigos do regime da empresa
10004047400Comprador não contribuinte com código exclusivo de contribuinte (10/30/70, 101/201/202/203) ou com pCredSNUse 102 / 500 ou 900 sem crédito
10005000400Rejeitado pelo motor tributário (regime / código tributário incompatível, código de ST para comprador não contribuinte, alíquota fora da faixa)Veja as regras de parâmetros tributários em Emitir NF-e

CT-e

Formato array. Erros de negócio são HTTP 400; documento / tarefa inexistente é HTTP 404 com codigo CTe0001. Rejeições da SEFAZ durante a emissão aparecem como status Negada na consulta e como webhook cte.rejected. Veja CT-e.

codigoHTTPCenárioAção
CTe0001404cteId não encontrado ou não pertence à empresaVerifique o id e o empresaId
10003000404empresaId não encontradoVerifique o empresaId
10017004400Empresa não pode emitir (não aprovada / certificado não pronto)Aguarde a aprovação / vincule o certificado
10017005 / 10017006400Requisição duplicada concorrente / tarefas pendentes em excesso para o CNPJRepita mais tarde
10017007400Série numérica não resolvida (nenhuma configurada, ou várias ativas sem escolha)Configure uma série do modelo 57
10017010400ambienteEmissao diferente do ambiente da empresaEnvie para o ambiente da empresa
10017011400Código IBGE do município não encontradoVerifique codigoIbge
10017012 / 10017013400Participante ausente / tomador inconsistente com o indicador de IEAdicione o participante ou altere indicadorIeTomador
10017014400Referências de documentos inválidas (ausentes, dígito verificador incorreto, grupos misturados, documentos anteriores inconsistentes com o tipo de serviço)Ajuste as referências
10017015400Tipo de documento inconsistente com as referências (complementar / substituto)Envie ctesComplementados / cteSubstituido conforme tipo
10017016400Componentes não somam o total, ou aReceber acima do totalCorrija os valores
10017017 / 10017018 / 10017019400RNTRC inválido / modal não suportado / enumeração ou formato inválido (mensagem indica o campo)Corrija conforme mensagem
10017020 a 10017025400Parâmetro tributário ausente / não permitido / incompatível com o regime / icmsUfFim obrigatório / linha da tabela de alíquotas ausente / CST não suportadoVeja os parâmetros tributários em CT-e
10017030400Mesmo id com mensagem diferenteUse um novo id ou reenvie a mensagem original
10017031400Produção: já existe documento ativo / autorizado para o idConsulte o original
10017040 a 10017045400Status não permite o evento / janela de cancelamento excedida / texto de evento inválido / SEFAZ rejeitou o evento / limite de sequência de correção / evento referenciado não encontradoVeja as regras de cancelamento e eventos em CT-e
10017048 / 10017049400Cancelamento bloqueado por carta de correção registrada / carta de correção fora da janela de 720 horasVeja as regras de cancelamento e eventos em CT-e
10001001400Falha na validação de campos da requisição (uma entrada por campo)Corrija conforme mensagem

DC-e

Formato array. Erros de negócio são HTTP 400; documento / tarefa inexistente é HTTP 404 com codigo DCe0001. Casos com código de exemplo documentado mantêm esse código; todos os demais codigo são o código numérico da plataforma. Rejeições da SEFAZ durante a emissão aparecem como status Negada na consulta e como webhook dce.rejected; rejeições do cancelamento pela SEFAZ aparecem como dce.cancel_rejected. Veja DC-e.

codigoHTTPCenárioAção
DCe0001404dceId não encontrado, não pertence à empresa, ou cancelamento solicitado antes de o documento ser materializadoVerifique o id e o empresaId; cancele documentos Pendente apenas após a autorização
10003000404empresaId não encontradoVerifique o empresaId
DCe00004400Empresa não configurada para DC-e (falta tipoEmitente / série do modelo 99 / site de Marketplace), ou ambiente diferente do ambiente atual da empresaEnvie emissaoDCe no registro ou em uma atualização com id; envie para o ambiente atual da empresa e peça à operação a troca para produção
DCe00005400Empresa Marketplace / Carrier sem remetenteAdicione o remetente
DCe00006400remetente.endereco ausenteAdicione o endereço do remetente
DCe00007400Remetente brasileiro sem cpfCnpjAdicione o documento do remetente
DCe00008400Empresa não pode emitir (não aprovada / certificado não pronto)Aguarde a aprovação / vincule o certificado
DCe00009400Destinatário brasileiro sem cpfCnpjAdicione o documento do destinatário
GW001400Código IBGE do município não encontrado ou inconsistente com ufVerifique cidade / uf
10019005 / 10019006400Requisição duplicada concorrente / tarefas pendentes em excesso para o CNPJRepita mais tarde
10019007400Série numérica não resolvida (várias séries ativas)Peça à operação para consolidar as séries
10019013400Tipo de emitente Carrier ainda não suportado para emissãoUse uma empresa Marketplace / OwnIssuer
10019018400Item inválido (tamanho do NCM, quantidade ≤ 0, preço unitário negativo)Corrija conforme mensagem
10019019400Enumeração ou formato inválido (mensagem indica o campo: tipoPessoa, modalidade, dataEmissao, documentos, telefone, e-mail, remetente de emitente próprio diferente da empresa)Corrija conforme mensagem
10019020400CNPJ da transportadora inválidoCorrija cnpjTransportadora
10019021400Informações adicionais longas demaisEncurte o texto
10019022400Quantidade ou documento inválido em autorizacaoDownloadXml; contém o próprio CNPJ do emitente; documento duplicadoCorrija a lista
10019030400Mesmo id com mensagem diferenteUse um novo id ou reenvie a mensagem original
10019031400Produção: já existe documento ativo / autorizado para o idConsulte o original
10019040 a 10019043400Status não permite cancelamento / janela de 24 horas excedida / cancelamento já aceito / motivo inválidoVeja as regras de cancelamento em DC-e
10019048400dataEmissao fora da janela permitida (mais de 5 minutos à frente ou mais de 30 dias atrás; mensagem traz os limites atuais)Use a hora atual ou omita dataEmissao
10001001400Falha na validação de campos da requisição (uma entrada por campo); erros de contrato de registro / atualização de emissaoDCeCorrija conforme mensagem

Verificação de NF-e

Formato simples {code, message}, HTTP 400. A requisição nem chega à validação. Veja Verificação de NF-e.

codeEndpointSignificadoAção
10015000Verificação de XMLCorpo da requisição vazioEnvie o XML no corpo
10015001Verificação de XMLCorpo acima de 1 MBUma NF-e autêntica isolada nunca excede isso; verifique se não está encapsulando ou codificando duas vezes
10015002Verificação de XMLDTD detectado (<!DOCTYPE)Remova os DTDs; são rejeitados como proteção contra XXE
10015003Verificação de XMLCodificação diferente de UTF-8Converta para UTF-8 antes de enviar
10015104Consulta por chaveChave malformada (tamanho / caracteres / dígito verificador)Valide localmente primeiro: 44 dígitos; o último é um dígito verificador mod-11
10015004Consulta por chaveNota não encontrada em nenhuma fonteA chave é desconhecida para a plataforma e para a fonte oficial; confirme com o emitente

Erros de validação de nível 1

Devolvidos com HTTP 200 dentro de validation.errors[] da resposta da verificação de XML. Não são erros de transporte: a requisição teve sucesso, o documento falhou. Todos são bloqueantes (REJECTED terminal) exceto PROTOCOL_MISSING, que é um aviso.

errors[].codeNuméricoSignificado
XML_MALFORMED10015100Sintaxe XML inválida
XSD_INVALID10015101Não segue o leiaute XSD da NF-e 4.00
SIGNATURE_INVALID10015102Falha na verificação da assinatura digital (conteúdo adulterado, ou certificado expirado no momento da assinatura)
SIGNATURE_CERT_MISMATCH10015103CNPJ do certificado de assinatura não corresponde ao emitente
ACCESS_KEY_INVALID10015104Estrutura / dígito verificador da chave inválidos
ACCESS_KEY_MISMATCH10015105Segmentos da chave não correspondem aos campos do documento
PROTOCOL_MISMATCH10015106Bloco de protocolo inconsistente com o documento
PROTOCOL_MISSING10015107Sem nó de protocolo (aviso, não bloqueante)
XML_VERSION_UNSUPPORTED10015108Versão do leiaute diferente de 4.00

Resultados de nível 2

Não são erros HTTP: chegam pelo webhook invoice.verify.completed.

validationStatusTerminalAção
VALIDATEDSimSeguro prosseguir (liberar mercadoria, liquidar)
REJECTEDSimNão prossiga; reason explica o veredicto da SEFAZ (cancelada / denegada / inutilizada / não encontrada / protocolo divergente)
VALIDATION_ERRORNãoFalha de verificação do lado da plataforma, não é um julgamento da nota; reenvie depois com o cabeçalho forceRevalidate: true

Consulta cadastral

Formato simples {code, message}. Erros de formato e de dígito verificador são rejeitados localmente e nunca chegam à fonte upstream; não consomem cota e não são cobrados. Veja Consulta cadastral.

codeHTTPResponsávelSignificadoAção
10016000400ChamadorFormato de CPF inválido (11 dígitos obrigatórios)Verifique caracteres de formatação ou tamanho incorreto
10016001400ChamadorDígitos verificadores do CPF inválidosValide localmente com o algoritmo mod-11 primeiro
10016002400ChamadorData de nascimento inválida (DDMMYYYY válido obrigatório)Observe a ordem dia-mês-ano e que a data precisa existir
10016003400ChamadorCPF não encontradoO CPF não existe, ou o CPF e a data de nascimento não conferem (indistinguível de propósito)
10016004451Terceiro (bloqueio legal upstream)LGPD: menor de 16 anos (Lei Felca), titular menor de 16 anosDados legalmente retidos; não repita
10016005422Terceiro (bloqueio legal upstream)LGPD: menor de idade, titular entre 16 e 17 anosDados legalmente retidos; não repita
10016006428Terceiro (bloqueio legal upstream)LGPD: idade nao verificavel - informe a data de nascimento para completar a verificacao, idade não verificávelA plataforma já reverificou uma vez com a data de nascimento; não repita
10016010400ChamadorFormato de CNPJ inválido (14 dígitos obrigatórios)Verifique caracteres de formatação
10016011400ChamadorDígitos verificadores do CNPJ inválidosValide localmente com o algoritmo mod-11 primeiro
10016012400ChamadorCNPJ não encontradoNão existe esse CNPJ no cadastro oficial
10016020503Terceiro (upstream indisponível)Fonte de dados upstream temporariamente indisponívelRepita com backoff exponencial (comece em 1 s, dobre até 30 s, adicione jitter); contate a plataforma se persistir

Orientações de tratamento

  • 401 / 403: erros de configuração; corrija a credencial, a assinatura de API ou o relógio. Não repita sem alteração.
  • 400 / 404: a requisição ou a regra de negócio; corrija conforme o código. Alguns códigos são transitórios e podem ser repetidos depois: 10004002, 10017005 / 10017006, 10019005 / 10019006.
  • 422 / 428 / 451: bloqueios legais nas consultas cadastrais; repetir é inútil.
  • 429: recue com atraso exponencial e jitter (comece em 1 s, dobre até 30 s).
  • 503: repita a mesma requisição ou link após Retry-After (10009037, 10016020).
  • 5xx: repita com backoff; se persistir, contate a plataforma com o timestamp e o path da requisição.
  • errorType do envelope: 1 erro de API, 2 rejeição da SEFAZ, 3 falha de sistema (repetível), 4 falha de validação de campos (corrija a requisição).
  • Nunca reenvie às cegas um documento rejeitado: Negada e REJECTED são veredictos terminais; atue primeiro conforme o motivo da SEFAZ.