Código de barras 39: o que é, como funciona e como gerar
O Code 39 ainda é essencial em estoque, patrimônio, saúde e indústria — veja quando escolhê-lo.
Atualizado em
O Code 39 é um dos formatos de código de barras mais usados no mundo para controle de estoque, patrimônio e uso industrial. Entenda como ele funciona, a diferença para o Code 128, quando escolhê-lo e como gerar gratuitamente.
Código de barras 39 — ou Code 39 — é o formato que aparece quando você vê barras com letras e números misturados, como COMP-0042 ou INV-A123. É um dos formatos mais antigos e ainda um dos mais usados em ambientes industriais, de saúde, logística e patrimônio no mundo todo.
Resposta rápida: o código de barras 39 é um formato alfanumérico de comprimento variável que codifica letras maiúsculas (A–Z), números (0–9) e 8 símbolos especiais — sem dígito verificador obrigatório e lido por praticamente qualquer leitor do mercado. Diferente do EAN-13, que aceita apenas dígitos numéricos, o código de barras 39 permite criar identificadores como TI-0042 ou EQUIP-LAB-003, o que o torna o padrão preferido para controle de patrimônio, estoque industrial e logística interna em empresas brasileiras.
O que é o código de barras 39 (Code 39)?
O código de barras 39 (também chamado de "3 of 9" ou Code 39) é um formato alfanumérico criado em 1974 pela empresa Intermec. O nome vem da sua estrutura interna: cada caractere é representado por 9 elementos (5 barras e 4 espaços), dos quais exatamente 3 são largos.
O que ele consegue codificar:
- Letras maiúsculas de A a Z
- Números de 0 a 9
- 8 caracteres especiais:
-,.,,$,/,+,%,* - Total de 43 caracteres disponíveis
Características técnicas:
- Comprimento variável; você define quantos caracteres quer codificar
- Sem dígito verificador obrigatório (simplifica implementação)
- Leitura bidirecional (o leitor lê da esquerda para direita ou vice-versa)
- Amplamente suportado por praticamente todos os leitores de código de barras do mercado
Tabela completa de caracteres do Code 39
O Code 39 padrão aceita exatamente 43 caracteres. Qualquer coisa fora dessa lista causará erro na geração:
| Tipo | Caracteres |
|---|---|
| Números | 0 1 2 3 4 5 6 7 8 9 |
| Letras | A B C D E F G H I J K L M N O P Q R S T U V W X Y Z (somente maiúsculas) |
| Especiais | - . (espaço) $ / + % |
| Delimitador | * (início e fim — não faz parte dos dados) |
Se o seu conteúdo tem letras minúsculas (a–z) ou símbolos como @, #, :, ;, \, use o Full Extended Code 39, que codifica todos os 128 caracteres ASCII, ou mude para Code 128, que é mais compacto e suporta ASCII nativo.
O padrão técnico do Code 39 é definido pela norma ISO/IEC 16388 (última edição: 2007; revisão em andamento como ISO/IEC 16388:2023). Equipamentos e sistemas certificados para uso industrial e saúde seguem esse padrão.
Full Extended Code 39: quando precisar de mais caracteres
O Code 39 padrão só aceita maiúsculas. Se você precisar codificar letras minúsculas ou qualquer caractere ASCII (como @, #, ou :) existe o Full Extended Code 39, que usa combinações de dois símbolos para representar os 128 caracteres ASCII.
A maioria dos leitores modernos consegue ler Full Extended Code 39 com configuração simples. Para a maioria dos casos de controle interno, o Code 39 padrão já é suficiente.
Diferença entre Code 39, Code 128 e EAN-13
| Característica | Code 39 | Code 128 | EAN-13 |
|---|---|---|---|
| Tipo de dado | Alfanumérico (maiúsculas) | ASCII completo | Só números |
| Comprimento | Variável | Variável | Fixo (13 dígitos) |
| Densidade | Baixa (ocupa mais espaço) | Alta (mais compacto) | Alta |
| Dígito verificador | Opcional | Obrigatório | Obrigatório |
| Compatibilidade de leitores | Universal (leitores antigos e novos) | Universal | Universal |
| Uso principal | Patrimônio, indústria, saúde | Logística, e-commerce, estoque | Varejo, supermercado, marketplace |
Quando escolher Code 39 vs Code 128? Se você precisa de compatibilidade máxima com leitores legados; especialmente em sistemas de saúde, defesa e linhas de produção antigas, , o Code 39 é mais seguro. Se o espaço na etiqueta for limitado ou você precisar codificar muitos caracteres, prefira o Code 128.
Para produtos que vão para varejo ou marketplaces, use EAN-13. Saiba mais no guia de código de barras para produtos.
Quando usar o código de barras 39
Controle de patrimônio
É o padrão mais comum para etiquetas de patrimônio; computadores, monitores, móveis, equipamentos. Você pode codificar o código interno: COMP-0042, MESA-LAB3, PROJ-001.
Setor de saúde
Hospitais, clínicas e farmácias usam Code 39 em prontuários, crachás e embalagens de medicamentos de controle interno. O setor farmacêutico ainda mantém muitos sistemas legados configurados para este formato.
Indústria automotiva (padrão AIAG)
A AIAG (Automotive Industry Action Group) padronizou o Code 39 para rastreamento de peças automotivas na América do Norte. O padrão AIAG B-1 (Shipping/Parts Identification Label Standard) especifica Code 39 em etiquetas de containers e embalagens de peças entre fabricantes e montadoras. Fornecedores da cadeia automotiva (Tier 1 e Tier 2) para montadoras como Ford, GM e Stellantis frequentemente precisam gerar etiquetas Code 39 para conformidade com o padrão AIAG.
Setor de defesa e aeroespacial
O Departamento de Defesa dos EUA (DoD) padronizou o Code 39 para rastreamento de materiais militares (MIL-STD-1189). Empresas do setor aeroespacial e de defesa ainda usam amplamente.
Linhas de produção com sistemas legados
Muitas fábricas implantadas antes dos anos 2000 têm leitores e sistemas ERP configurados para Code 39. Trocar o formato exigiria reconfigurar toda a infraestrutura de leitura.
Documentação interna
Escritórios, arquivos e bibliotecas usam Code 39 em pastas, processos e documentos. A leitura rápida de um número de protocolo acelera o atendimento.
Quando NÃO usar o código de barras 39
- Para produtos de varejo e marketplace: use EAN-13, supermercados e plataformas não reconhecem Code 39 como GTIN.
- Quando o espaço for muito limitado: o Code 39 ocupa mais área que o Code 128 para o mesmo conteúdo. Em etiquetas pequenas, o Code 128 é mais eficiente.
- Para codificar letras minúsculas ou ASCII completo: use Code 128 ou Full Extended Code 39.
Como criar etiqueta patrimonial com código de barras 39
A etiqueta patrimonial com código de barras 39 é a aplicação mais comum do formato em empresas brasileiras — e também a mais exigida por normas. A ISO 9000 recomenda identificação rastreável para bens patrimoniais, e o TCU (Tribunal de Contas da União) exige controle patrimonial com código de barras nas entidades públicas federais brasileiras. Empresas privadas auditadas também adotam etiquetas patrimoniais para conformidade com auditorias e inventários anuais.
O código de barras 39 é o formato escolhido porque aceita letras e números — o que permite criar prefixos de categoria (TI-, MOV-, VEIC-) impossíveis com EAN-13 — e é lido por qualquer leitor disponível no mercado, incluindo os mais antigos.
Formato de numeração recomendado para patrimônio
| Categoria | Exemplo de código | Significado |
|---|---|---|
| Equipamentos de TI | TI-0001 a TI-9999 | Computadores, monitores, impressoras |
| Móveis | MOV-001 | Mesas, cadeiras, armários |
| Veículos | VEIC-001 | Frota da empresa |
| Equipamentos de laboratório | EQ-LAB-001 | Instrumentos de medição |
| Projetores e TVs | PROJ-001 | Equipamentos audiovisuais |
Use prefixos curtos (2–4 letras) para manter o código dentro do campo visual da etiqueta impressa. O número sequencial com zeros à esquerda (0001) garante ordenação correta em planilhas e sistemas ERP.
Passo a passo para gerar etiquetas patrimoniais
- Defina o padrão de numeração — escolha prefixo de categoria + número sequencial com zeros à esquerda (ex.:
TI-0001). Documente o padrão em uma planilha com os campos:codigo,descricao,setor,responsavel,data_aquisicao. - Acesse o [gerador de código de barras do GeraCode](/gerador-de-codigo-de-barras) e selecione o formato Code 39 na lista de tipos.
- Digite o código em letras maiúsculas e números — o código de barras 39 padrão não aceita letras minúsculas. O gerador alertará sobre caracteres inválidos.
- Ajuste o tamanho para impressão em etiqueta patrimonial: largura mínima de 30 mm e altura mínima de 20 mm garantem leitura confiável com pistolas de mão.
- Baixe em SVG para impressão profissional (resolução infinita) ou PNG para uso em planilhas e sistemas de gestão.
- Valide com o [leitor online do GeraCode](/leitor-de-codigo-de-barras) antes de imprimir em lote — confirme que o texto decodificado bate exatamente com o que você digitou.
- Imprima em etiqueta com boa aderência — para patrimônio físico, use etiqueta poliéster com adesivo permanente, mais resistente a umidade e abrasão que o papel comum.
Dica para inventários em lote: use a função de geração em lote do GeraCode para criar centenas de etiquetas de uma vez. Exporte a lista de códigos de uma planilha
.csve gere todos em sequência sem redigitar.
Como gerar código de barras 39 gratuitamente
No gerador de código de barras do GeraCode:
- Selecione Code 39 na lista de formatos.
- Digite o conteúdo em letras maiúsculas, números e os caracteres especiais suportados.
- Ajuste largura e altura para o tamanho da etiqueta.
- Baixe em SVG para impressão ou PNG para uso digital.
O gerador adiciona automaticamente os caracteres de início e fim (*) exigidos pelo padrão, então você não precisa incluí-los manualmente.
Para gerar vários códigos de uma vez (catálogo de produtos ou inventário), use a função de geração em lote.
Tamanho e impressão
- Altura mínima: 15 mm (quanto maior, mais fácil para leitores omnidirecionais)
- Largura mínima da barra estreita: 0,19 mm em impressão de alta qualidade; 0,25 mm em impressoras comuns
- Zona de silêncio lateral: pelo menos 10× a largura da barra estreita
Exporte sempre em SVG para impressão; garante qualidade independente do tamanho final da etiqueta. Para verificar se o código foi gerado corretamente, use o leitor online antes de imprimir.
Para mais detalhes sobre especificações técnicas, consulte a documentação oficial do Code 39 em KEYENCE — Fundamentos de Código de Barras (abre em nova aba) e a norma ISO/IEC 16388 (abre em nova aba).
História do código de barras 39: o primeiro formato alfanumérico comercial
O Code 39 foi criado em 1974 pelos engenheiros David Allais e Ray Stevens, trabalhando para a empresa norte-americana Intermec (então chamada Interface Mechanisms). O objetivo era resolver um problema que o código de barras linear da época; o UPC, criado apenas um ano antes; não resolvia: codificar letras, não só números.
O nome "3 of 9" descreve a estrutura interna: de 9 elementos por caractere, exatamente 3 são largos. Essa proporção fixa permite que leitores identifiquem o início e o fim de cada caractere sem precisar de um dígito verificador obrigatório; uma característica incomum entre os formatos da época.
Em 1983, o Departamento de Defesa dos Estados Unidos (DoD) adotou o Code 39 como padrão para rastreamento de materiais militares (MIL-STD-1189). Essa adoção acelerou a disseminação do formato em toda a cadeia de suprimentos da defesa e, por extensão, nas indústrias aeroespacial e automotiva.
Hoje, meio século após sua criação, o Code 39 ainda está em operação em hospitais, fábricas e sistemas de patrimônio no mundo todo; uma longevidade que poucos formatos tecnológicos alcançam.
Dígito verificador no Code 39: quando e como usar
Diferente do EAN-13 e Code 128, o dígito verificador é opcional no Code 39. Mas em aplicações críticas; como etiquetas de medicamentos e inventário de equipamentos militares; ele é fortemente recomendado.
O cálculo segue o módulo 43 (mod 43):
- Cada caractere do Code 39 tem um valor numérico atribuído (A=10, B=11, C=12... Z=35; 0=0, 1=1... 9=9; especiais:
-=36,.=37, espaço=38,$=39,/=40,+=41,%=42). - Some os valores de todos os caracteres do código.
- O dígito verificador é o resto da divisão da soma por 43, convertido de volta para o caractere correspondente.
Exemplo: para COMP01, a soma dos valores é 12+24+22+25+0+1 = 84. O resto de 84 ÷ 43 = 41. O caractere de valor 41 é +. O código completo seria COMP01+.
O gerador do GeraCode calcula e inclui o dígito verificador automaticamente quando habilitado nas opções avançadas.
HIBC: Code 39 no setor de saúde com checksum obrigatório
O HIBC (Health Industry Bar Code) é uma aplicação especializada do Code 39 para o setor de saúde, definida pela Health Industry Business Communications Council (HIBCC). É o padrão adotado em hospitais, laboratórios e farmácias dos Estados Unidos, Europa e partes da América Latina para rastreamento de:
- Medicamentos e dispositivos médicos
- Amostras de laboratório e bolsas de sangue
- Implantes cirúrgicos e equipamentos médicos
O HIBC usa o Code 39 com o dígito verificador obrigatório e um prefixo + no início do código, seguido do código do fabricante (LIC, Labeler Identification Code), dados do produto e um caractere de verificação.
No Brasil, hospitais que importam equipamentos médicos dos EUA frequentemente recebem etiquetas HIBC. Para uso interno, a maioria das instituições usa Code 39 padrão sem os prefixos HIBC.
Code 93: a evolução compacta do Code 39
Em 1982, a Intermec lançou o Code 93 como evolução direta do Code 39: mesmos 43 caracteres, mas com densidade 25% maior (o mesmo conteúdo ocupa menos espaço físico). O Code 93 inclui dois dígitos verificadores obrigatórios (C e K), tornando-o mais confiável para leitura em alta velocidade.
| Característica | Code 39 | Code 93 |
|---|---|---|
| Densidade | Baixa | 25% mais compacto |
| Dígito verificador | Opcional | Obrigatório (dois caracteres) |
| Compatibilidade com leitores antigos | Universal | Moderada |
| Uso atual | Ainda dominante | Nicho (transporte aéreo) |
O Code 93 é usado principalmente por Canada Post e alguns sistemas de logística norte-americanos. No Brasil, é raramente encontrado; o Code 39 padrão domina as aplicações de controle interno.
Quando usar Code 93 em vez de Code 39? Somente se o espaço na etiqueta for muito restrito e o sistema receptor suportar Code 93. Para compatibilidade máxima no Brasil, prefira Code 39.
Como verificar se um Code 39 gerado está correto
Antes de imprimir em lote, sempre valide o código gerado:
- Use o leitor online do GeraCode; suporta Code 39 e exibe o conteúdo decodificado.
- Compare o texto decodificado com o que você digitou no gerador.
- Se o código contém dígito verificador, confirme que o caractere final está correto.
- Teste com um leitor físico se disponível; comportamentos de leitores legados podem diferir.
Um erro comum: copiar e colar conteúdo com caracteres não suportados pelo Code 39 padrão (letras minúsculas, @, #). O gerador deve alertar sobre caracteres inválidos; se não alertar, o código pode ser gerado incorretamente.
Por que o leitor não reconhece o código de barras 39?
Se o leitor apita mas não decodifica, ou não reage ao Code 39, verifique estas causas em ordem:
1. Leitor não está habilitado para Code 39 Alguns leitores saem de fábrica com Code 39 desativado para evitar conflitos com outros formatos de comprimento variável. Consulte o manual do fabricante (Honeywell, Zebra, Datalogic, Bematech) e escaneie o código de programação para ativar Code 39. Em leitores de PDV de varejo, Code 39 geralmente não está na lista padrão de formatos habilitados — eles priorizam EAN-13.
2. Código muito pequeno para o leitor O Code 39 precisa de largura de barra estreita mínima de 0,19 mm em impressão de alta qualidade. Em leitores de laser fixo (pistola), o foco pode não ser suficiente para barras muito finas. Aumente o tamanho do código ou exporte em SVG e reimprima com dimensão maior.
3. Caracteres inválidos no conteúdo Code 39 padrão não aceita letras minúsculas, @, #, :, ;. Se o conteúdo tem esses caracteres, o código pode ter sido gerado incorretamente e o leitor rejeita. Confira o conteúdo digitado.
4. Zona de silêncio cortada Se a etiqueta foi recortada com margem insuficiente, o leitor não consegue identificar o início ou fim do código. Dica: o leitor lê mas retorna dados incompletos ou errados — sinal claro de zona de silêncio cortada.
5. Dígito verificador inesperado Se o código foi gerado com dígito verificador mas o sistema receptor não espera um (ou vice-versa), o conteúdo decodificado terá um caractere a mais ou o leitor vai rejeitar. Alinhe a configuração de dígito verificador entre o gerador e o sistema de destino.
6. Leitor configurado para Full Extended Code 39 Se o leitor está em modo Full Extended e o código é Code 39 padrão, ele pode interpretar alguns caracteres incorretamente. Verifique a configuração de modo do leitor.
Esse guia foi útil?
Perguntas Frequentes
Qual formato de código de barras devo usar para meu produto?
Para produtos vendidos em supermercados e varejo brasileiro, use EAN-13. Para controle interno de estoque, Code 128 é mais flexível. Para exportar para os EUA, use UPC-A. Para caixas de transporte e logística, use ITF-14.
Quantos formatos de código de barras o GeraCode suporta?
O GeraCode suporta 12 formatos: EAN-13, EAN-8, Code 128, Code 39, Code 93, UPC-A, UPC-E, ITF-14, MSI Plessey, Codabar, Pharmacode e ISBN. Cobrimos os principais padrões usados no varejo, logística, indústria farmacêutica e editorial.
Qual a diferença entre PNG, SVG e PDF?
PNG é uma imagem raster ideal para uso digital. SVG é vetorial, ideal para impressão profissional sem perda de qualidade. PDF é ideal para documentos e envio para gráficas.
Posso imprimir etiquetas diretamente?
Sim. Após gerar os códigos (individual ou em lote), use os botões de impressão de etiquetas com layouts 2x5 ou 3x5 por página A4. Uma janela de impressão será aberta automaticamente.
Posso gerar códigos de barras em lote?
Sim. No modo "Em Lote", você pode digitar ou colar do Excel até dezenas de códigos (um por linha). Todos são gerados de uma vez e você pode baixar em ZIP (SVG) ou PDF.
O GeraCode calcula o dígito verificador do EAN-13?
Sim. Se você digitar 12 dígitos no formato EAN-13, o GeraCode calcula automaticamente o 13.º dígito (verificador) usando o algoritmo de módulo 10. O mesmo vale para EAN-8 com 7 dígitos.