Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Destinatário, locais e autorizados

CEP da retirada na NF-e: oito dígitos e conferência do endereço

<CEP>retirada › CEP

Revisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.

retirada/CEP informa o código postal do endereço de onde a mercadoria é retirada. É um campo opcional, com oito dígitos, sem hífen, espaço ou outra máscara. Seus zeros à esquerda precisam ser preservados. Ele pertence ao local de origem física, e não ao endereço do destinatário ou ao local de entrega. MOC 7.0, campo F10, p. 16.

De qual endereço vem o CEP

O dado deve vir do cadastro ou da documentação do local de retirada selecionado para a operação. Um cadastro de cliente pode conter um CEP correto para o cliente e incorreto para o depósito de saída. Por isso, a conferência começa pela identidade do local e continua pelo conjunto logradouro, número, bairro, município e UF.

O grupo retirada só é indicado pelo MOC quando esse endereço é diferente do endereço do remetente. Dentro dele, o CEP tem ocorrência zero ou uma; o fato de existir cadastro postal não torna obrigatória a criação de um grupo que não corresponde à operação. Também não há inferência segura de que toda mercadoria retirada por um comprador exige esse grupo: o que importa é o endereço documentado e o modelo da nota.

Na NFC-e e na NF-e com DANFE Simplificado Tipo 2 (tpImp=6), a regra F01-10 da NT 2026.002 v1.10a, p. 11 trata a presença de retirada como indevida, com rejeição 669. Essa é uma restrição do grupo inteiro, não uma exigência de preencher ou apagar apenas o CEP. A linha de cronograma que inclui F01-10 prevê teste 01/07/2026 e produção 03/08/2026; não atribua 05/10/2026 a esse campo. O diagnóstico precisa conferir também ambiente e autorizador.

Como preservar os oito dígitos

No XML, o CEP é uma sequência textual que corresponde ao padrão [0-9]{8} no TLocal do pacote anterior 010c v1.30. A forma de exibição no cadastro pode ter máscara, mas a representação XML não a inclui.

Situação sintética Consequência técnica
Cadastro mostra 01234-567 A representação sem máscara é 01234567, preservando o zero
Conversão para inteiro produz 1234567 Foram perdidos um dígito e o comprimento esperado
XML contém 01234-567 O hífen não pertence ao padrão de oito dígitos
Não há CEP confirmado para o local Não inventar um código; campo opcional sem conteúdo é omitido

Esse exemplo demonstra formato, não existência postal. Não há promessa de que 01234567 corresponda a um endereço. Não complete um código curto com zeros por tentativa: primeiro confirme qual era o valor cadastral verdadeiro e se o problema foi uma conversão numérica.

Um CEP que respeita o comprimento pode continuar errado para a operação. A validação por expressão regular não consulta a base postal, não prova vínculo com cMun e não confirma o estabelecimento expedidor.

Onde fica a tag e como interpretar o exemplo

O caminho no XML processado é /nfeProc/NFe/infNFe/retirada/CEP. Dentro do grupo, CEP vem após a UF obrigatória e antes de cPais, se o código do país for informado. Não procure uma tag enderRetirada: o endereço está diretamente dentro de retirada.

Fragmento sintético e parcial, que apenas localiza o campo e demonstra o formato; não é um grupo completo nem uma nota pronta para transmissão:

<retirada xmlns="http://www.portalfiscal.inf.br/nfe">
  <!-- Identificação e demais campos do endereço foram omitidos. -->
  <CEP>01234567</CEP>
</retirada>

Uma consulta XPath deve vincular o namespace da NF-e a um prefixo. Sem esse cuidado, a consulta pode não encontrar o campo mesmo que ele exista. Outra falha possível é buscar apenas CEP e obter dest/enderDest/CEP ou entrega/CEP; os três caminhos têm destinatários cadastrais diferentes. O artigo do grupo retirada mostra a sequência completa com um exemplo de endereço.

CEP, município e país são códigos diferentes

O CEP tem oito dígitos e pertence ao sistema postal. cMun tem sete dígitos e vem da tabela de municípios do IBGE. cPais vem da tabela de países utilizada pela NF-e. Nenhum deles deve ser copiado para a tag de outro domínio.

Em um local realmente no exterior, os marcadores do MOC são UF=EX, cMun=9999999 e xMun=EXTERIOR. Esses marcadores não fornecem um CEP brasileiro. Um código postal estrangeiro pode ter letras ou extensão diferente e não deve ser forçado para CEP como se a expressão regular aceitasse qualquer postal code. Confirme a informação aplicável ao local e represente os dados no leiaute correspondente.

O CEP foi rejeitado ou saiu errado: por onde começar

Primeiro confira a mensagem completa e o XPath afetado. Falha de comprimento ou presença de hífen é problema estrutural. Um município inexistente ou incompatível com a UF tem regras próprias F07-20/F07-30; não atribua as rejeições 276/277 ao CEP apenas porque o endereço contém essa tag.

Compare o CEP do local escolhido com a prévia XML. Se o cadastro contém oito dígitos e a prévia contém sete, investigue o tipo da coluna, a importação ou a transformação que eliminou zeros. Se a prévia está igual ao cadastro, mas o endereço pertence a outro estabelecimento, a causa pode estar na seleção do local. Se dois grupos têm o mesmo CEP inesperadamente, examine cópia entre cadastro de destinatário e cadastro de expedidor.

Corrija a origem comprovadamente incorreta e gere uma nova prévia para comparar comprimento, máscara e endereço. Não altere XML assinado nem retransmita por tentativa. A confirmação de local de saída em operações com depósitos ou terceiros precisa do pedido, do cadastro do expedidor e dos documentos operacionais; o CEP isolado não define o tratamento fiscal dessa operação.

Referência técnica para integração

XPath completo
/nfeProc/NFe/infNFe/retirada/CEP
Namespace
http://www.portalfiscal.inf.br/nfe
Leiaute
4.00 · PL_010e_v1.02
Ocorrências no XSD
0–1 no contexto do elemento pai
Tipo
inline:xs:string · string
Preenchimento no catálogo
Opcional

A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.

pattern
[0-9]{8}
whiteSpace
preserve