cMun da retirada na NF-e: código IBGE e rejeições 276, 277 e 513
<cMun>retirada › cMunRevisão editorial em 27 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
retirada/cMun é o código do município do local de retirada, com sete dígitos, obtido da tabela do IBGE. É obrigatório dentro do grupo retirada. Para um local representado no exterior, o MOC prevê o valor 9999999, combinado com UF=EX e xMun=EXTERIOR. MOC 7.0, F07–F09, pp. 15–16.
Qual município o código identifica
O município é o do endereço de onde a mercadoria sai, no contexto do expedidor. Não é automaticamente a cidade do comprador, da entrega ou do emitente. Confirme o local selecionado na operação antes de consultar a tabela: encontrar um código existente para outra cidade não torna esse código correto para a retirada.
O dado pode ser obtido do cadastro do local de saída e associado à tabela municipal. O nome da cidade não deve ser convertido em código por uma busca que ignore a UF, especialmente quando existem nomes parecidos ou repetidos em diferentes estados. O resultado precisa conservar código, nome e UF do mesmo município.
O grupo retirada só é indicado quando o endereço difere do remetente. Além disso, F01-10/669 da NT 2026.002 v1.10a, p. 11 restringe a presença do grupo na NFC-e e na NF-e com DANFE Simplificado Tipo 2 (tpImp=6). A linha que inclui essa regra tem teste em 01/07/2026 e produção em 03/08/2026. Uma tag cMun correta não resolve a presença indevida do grupo; confira também modelo, ambiente e autorizador.
Sete dígitos não bastam: é preciso conferir a tabela e a UF
O XSD anterior 010c v1.30 usa TCodMunIBGE, com padrão [0-9]{7}. Essa expressão verifica a forma da sequência. As regras de autorização conferem outra coisa: existência do município e correspondência dos dois primeiros dígitos com a UF da retirada.
Um exemplo verificável é Curitiba, código 4106902, Paraná. A API oficial de Localidades do IBGE informa o nome e a UF PR, código estadual 41. Assim, a combinação cMun=4106902, xMun=Curitiba, UF=PR é geograficamente coerente. Alterar somente UF para SP mantém um código existente, mas cria incompatibilidade de prefixo.
CEP é código postal de oito dígitos e não substitui o código municipal. cPais pertence à tabela de países e também não é fonte de cMun. O campo ide/cMunFG identifica o município de ocorrência do fato gerador em outro contexto; igualdade ocasional com a retirada não permite copiar um para o outro sem conferir a operação.
Exemplo nacional e cenário exterior
Fragmento sintético e parcial de retirada nacional. A identificação e os outros campos de endereço não são mostrados; não é um documento pronto para transmissão:
<retirada xmlns="http://www.portalfiscal.inf.br/nfe">
<!-- Identificação, logradouro, número e bairro foram omitidos. -->
<cMun>4106902</cMun>
<xMun>Curitiba</xMun>
<UF>PR</UF>
</retirada>
O trecho permite comparar os três componentes da localização. Se xMun fosse o nome de outra cidade, haveria uma inconsistência cadastral a investigar mesmo que a checagem de prefixo entre cMun e UF não a detectasse.
Para o local efetivamente exterior, os marcadores documentados são:
<retirada xmlns="http://www.portalfiscal.inf.br/nfe">
<!-- Fragmento sintético e parcial de localização exterior. -->
<cMun>9999999</cMun>
<xMun>EXTERIOR</xMun>
<UF>EX</UF>
</retirada>
O marcador não é um município brasileiro que se possa selecionar na tabela IBGE. Ele representa o cenário exterior do local. Não aplique essa combinação a uma retirada dentro do Brasil só porque a nota tem destinatário estrangeiro.
O XPath completo é /nfeProc/NFe/infNFe/retirada/cMun. Use o namespace da NF-e para não confundir a busca com campos de município em dest/enderDest, entrega ou outros grupos. cMun vem depois de xBairro e antes de xMun na sequência do grupo.
O que cada rejeição verifica
O MOC, Grupo F, p. 87 distingue as seguintes regras:
| Regra e código | Condição | Conferência que identifica a causa |
|---|---|---|
| F07-10 / 513 | UF da retirada é EX e o município difere de 9999999 | Comparar exatamente retirada/UF e retirada/cMun |
| F07-20 / 276 | UF diferente de EX e o código não existe na tabela IBGE | Consultar a tabela oficial aplicável ao código enviado |
| F07-30 / 277 | UF diferente de EX e as duas primeiras posições não correspondem à UF da retirada | Comparar prefixo municipal com código oficial da sigla |
As três aparecem como obrigatórias para modelos 55/65 no MOC. As regras equivalentes da entrega usam outros códigos: 515, 278 e 279. Esses códigos não devem ser transplantados para a retirada. A vedação do grupo no cenário de F01-10 continua sendo uma verificação diferente.
No exemplo nacional, 4106902 com UF=EX entra na condição de 513; com UF=SP, entra na incompatibilidade de 277. Um código com sete dígitos desconhecido pela tabela pode entrar em 276, mas não se deve presumir inexistência sem fazer a consulta oficial. A sequência de validação do autorizador também pode devolver primeiro outro problema do documento.
Como corrigir a causa comprovada
Compare primeiro o local da operação com o cadastro utilizado. Em seguida, confronte o código cadastral com a tabela IBGE e com a UF e nome gerados no XML. Se o cadastro está correto e a prévia pega o código do cliente, investigue mapeamento entre participantes. Se a tabela interna está desatualizada ou usa um ID do próprio sistema, corrija a associação ao código oficial, preservando o município verdadeiro.
Confira o resultado em uma nova prévia, mantendo código, nome e UF coerentes. Não altere a UF para combinar com um código errado, não use 9999999 como valor genérico e não edite XML assinado nem retransmita por tentativa. A localização técnica não escolhe o tratamento de uma movimentação em outro estado. Para completar a conferência do endereço, veja UF da retirada e nome do município.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/retirada/cMun- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–1 no contexto do elemento pai
- Tipo
- TCodMunIBGE · string
- Preenchimento no catálogo
- Condicional
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]{7}- whiteSpace
preserve