vPMC na NF-e: preço máximo ao consumidor do medicamento
<vPMC>det › prod › med › vPMCRevisão editorial em 26 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
vPMC representa o preço máximo ao consumidor do medicamento no grupo med da NF-e/NFC-e. Seu caminho é /nfeProc/NFe/infNFe/det/prod/med/vPMC. É obrigatório quando med é informado e não representa o valor total da venda nem o preço por unidade usado no pedido.
Presença de med e condições de rastro
O preço é obrigatório dentro do grupo, junto a cProdANVISA. A regra K01-10/840, modelo 55, trata NCMs iniciados por 3001 a 3006, mas continua marcada a critério da UF e de implementação futura, com exceção tpImp=6. O cronograma da NT 2026.002 não transforma essa observação em validação universal ativa.
K01-20/873 exige rastro no modelo 55 com med, excetuando finNFe=4, indPres=2 ou 3, CFOP 5922/6922, CFOP 5118/6118/5119/6119/5120/6120, tpNF=0 e tpImp=6. Essa exceção de rastreabilidade não torna vPMC opcional dentro de med. A alteração relativa a tpImp=6 está na linha de produção 03/08/2026 da NT 2026.002; as regras K01 não proíbem med em NFC-e ou tpImp=6. NT 2026.002, pp.3 e 13.
PMC, preço de venda e preço fábrica
A CMED distingue o PMC, teto autorizado ao varejo, do PF, teto de fabricante/distribuidor, e do PMVG, teto específico para vendas ao governo nas hipóteses reguladas. Esses nomes identificam referências diferentes; não se transfere um número de qualquer coluna da lista para vPMC. ANVISA/CMED — preços.
vUnCom e vUnTrib são valores unitários do item nos conjuntos comercial e tributável. vProd é o bruto do item. Uma venda com desconto pode ter preço comercial inferior à referência regulatória, mas isso não faz do preço negociado o PMC. Da mesma forma, a quantidade do item não transforma o PMC em preço total de todas as embalagens.
Identificar a apresentação e a referência aplicável
Antes de copiar um preço, confronte medicamento, titular, concentração, forma e apresentação com a documentação e a linha correspondente da referência oficial. Preserve a data da consulta e a edição da lista usada; a CMED disponibiliza atualização periódica. A escolha da coluna ou condição aplicável precisa ser confirmada com os dados fiscais e regulatórios da operação; não se infere alíquota apenas pela UF numa instrução genérica.
Se a apresentação não foi localizada ou a referência não traz um PMC aplicável, a falta deve ser esclarecida na origem. Não copie PF ou PMVG, não use o preço de venda como substituto e não preencha 0.00 por ausência de informação. A aceitação estrutural de zero não comprova que zero seja o PMC correto de um produto.
A CMED também possui condições específicas de apresentação. As orientações interpretativas publicadas pela ANVISA tratam medicamentos de uso restrito a hospitais, estabelecimentos de saúde e de destinação hospitalar como produtos que não podem ser comercializados pelo PMC. Isso impede presumir que qualquer medicamento terá a mesma referência de varejo; não define sozinho o preenchimento da NF-e em uma situação sem PMC. Confirme a apresentação, a condição regulatória e a orientação aplicável à emissão, sem converter falta de referência em zero ou em PF. CMED — orientações interpretativas, nº 10.
Exemplo de diferença entre preço e teto
Considere apenas um exercício em que uma apresentação tem PMC confirmado de R$ 50,00 e o preço comercial é R$ 40,00. Na venda de 3 embalagens, o bruto comercial é 3×40=R$ 120,00; vPMC continua 50.00 para a apresentação desse exercício, não 150.00 ou 120.00.
Trecho sintético e parcial, com registro fictício e demais campos omitidos. Não identifica medicamento real nem está pronto para transmissão.
<med xmlns="http://www.portalfiscal.inf.br/nfe">
<cProdANVISA>1234567890123</cProdANVISA>
<vPMC>50.00</vPMC>
</med>
O contrato TDec_1302 do pacote consultado comporta até 13 dígitos inteiros e duas casas quando há decimal, incluindo zero na forma lexical. A saída 50.00 usa ponto decimal, sem símbolo R$ ou separador de milhar. O formato demonstra serialização, não a aplicabilidade do preço sintético.
Conferência quando o valor difere da lista ou do cadastro
Identifique a linha da NF-e e sua apresentação. Compare o valor usado na emissão com a referência preservada; uma lista consultada hoje pode não ser a mesma da data do documento. Verifique se o sistema copiou a coluna errada, o preço do pedido, o bruto ou um valor de outra embalagem.
Para erro estrutural, veja se vPMC está dentro de med, após registro/motivo quando presente, e se o valor contém vírgula, símbolo monetário ou casas indevidas. Para dúvida regulatória, reveja a correspondência documental e a referência aplicável. A validação do XSD não confirma que o preço pertence ao produto e não decide a condição tributária.
Quando o erro comprovado é de transferência, corrija o cadastro ou cálculo de origem e confira o XML novamente. Se falta a confirmação do PMC, reúna apresentação, registro, referência e data da operação para a avaliação específica, sem estimar. Não ajuste o preço regulado para fazer o total fechar e não altere arquivo assinado.
Fontes oficiais
-
MOC 7.0 — Anexo I — 7.00; p.23 K06.
-
Schemas NF-e/NFC-e — PL_010c_NT2022_002v1.30; med/vPMC TDec_1302; tiposBasico TDec_1302.
-
Anvisa/CMED — Preços de medicamentos — página consultada em 26/09/2026; distinção PMC/PF/PMVG e publicação de listas.
-
NT 2026.002 — DANFE Simplificado Tipo 2 — 1.10a; pp.3 e 13 K01-10/K01-20.
-
CMED — Orientações interpretativas — página consultada em 26/09/2026; resumo da Orientação nº 10, de 19/07/2024, sobre apresentação de uso restrito e destinação hospitalar.
Leitura relacionada
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/prod/med/vPMC- 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
- TDec_1302 · 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|0\.[0-9]{2}|[1-9]{1}[0-9]{0,12}(\.[0-9]{2})?- whiteSpace
preserve