Pular para o conteúdo principal

BarcodeUrl

Descrição

A função BarcodeUrl gera um código de barras a partir de uma string de entrada, retornando a URL da imagem gerada. Ela suporta a maioria dos formatos lineares (unidimensionais) e também os formatos bidimensionais Data Matrix e PDF417 - mas não gera QR Codes. É muito útil para incluir códigos de barras em e-mails transacionais e landing pages, como boletos, cupons de desconto, ingressos ou vouchers de troca em lojas físicas.

Sintaxe

BarcodeUrl(valueToConvert, barcodeType, width, height [, checksumValue] [, boolShowText] [, altText] [, rotation] [, boolTransparentBG])

Parâmetros

ParâmetroTipoObrigatórioDescrição
valueToConvertstringSimO valor que será convertido em código de barras.
barcodeTypestringSimO tipo de código de barras a ser gerado. Veja a tabela de tipos suportados abaixo.
widthnumberSimLargura do código de barras em pixels.
heightnumberSimAltura do código de barras em pixels.
checksumValuestringNãoValor de checksum para o código de barras.
boolShowTextbooleanNãoSe true ou 1, exibe o texto do valueToConvert abaixo do código de barras.
altTextstringNãoTexto alternativo exibido abaixo do código de barras. Só é utilizado quando boolShowText é false.
rotationnumberNãoRotação do código de barras em graus. Valores aceitos: 0, 90, 180, 270.
boolTransparentBGbooleanNãoSe true ou 1, o fundo do código de barras será transparente. Caso contrário, o fundo é branco.

Tipos de código de barras suportados

CódigoNomeTipoLimite de caracteresCaracteres permitidosObservações
codabarCodabarLinearVariávelLetras maiúsculas A–D, números 0–9 e: - $ : / . +Deve começar e terminar com uma letra A–D
code11Code 11LinearVariávelNúmeros 0–9 e -
code128autoCode 128 AutoLinearVariávelTodos os caracteres ASCII
code128aCode 128 ALinearVariávelLetras maiúsculas ASCII, números 0–9 e caracteres especiais ASCII
code128bCode 128 BLinearVariávelLetras maiúsculas e minúsculas ASCII, números 0–9 e caracteres especiais ASCII
code128cCode 128 CLinearVariávelNúmeros 0–9
code39Code 39LinearVariávelLetras maiúsculas (A–Z), números (0–9), espaços e: - . $ / + %
code39extCode 39 ExtendedLinearVariávelQualquer caractere do conjunto ASCII estendido
code93Code 93LinearVariávelLetras maiúsculas (A–Z), números (0–9), espaços e: - . $ / + %
code93extCode 93 ExtendedLinearVariávelTodos os caracteres ASCII
datamatrixData MatrixBidimensional1556 bytesTodos os caracteres ASCII estendidosCodificação binária não suportada
ean13EAN 13Linear13 dígitosNúmeros 0–9
ean8EAN 8Linear8 dígitosNúmeros 0–9
industr25Code 25 IndustrialLinearVariávelNúmeros 0–9
interl25Code 25 InterleavedLinearVariávelNúmeros 0–9
msiMSI PlesseyLinearVariávelNúmeros 0–9
pdf417PDF 417Bidimensional1108 bytesTodos os caracteres ASCII estendidosCodificação binária não suportada
upcaUPC ALinear12 dígitosNúmeros 0–9
upceUPC ELinear12 dígitosNúmeros 0–9Idêntico ao UPC A nesta implementação

Tipos não suportados (não geram exceção, mas também não renderizam)

mat25, onecode, plaintext, planet, postnet, telepen

Exemplo básico

Gerando um código de barras Code 128 Auto para um cupom de desconto da MegaStore, exibindo o código do voucher abaixo da imagem:

%%[
VAR @codigoCupom, @urlBarcode
SET @codigoCupom = "MEGA2024-JUL-78432"
SET @urlBarcode = BarcodeUrl(@codigoCupom, "code128auto", 300, 80, "", true)
]%%

<img src="%%=v(@urlBarcode)=%%" alt="Código de barras do cupom" />

Saída:

<img src="https://image.s11.sfmc-content.com/barcode?..." alt="Código de barras do cupom" />

(A imagem renderizada mostra o código de barras com o texto "MEGA2024-JUL-78432" abaixo)

Exemplo avançado

Cenário de e-mail transacional: a FarmaRede envia um e-mail com voucher de desconto personalizado para cada cliente. O código do voucher vem de uma Data Extension, e abaixo do código de barras aparece um texto amigável em vez do código bruto. O barcode é rotacionado em 90° para se adequar ao layout vertical do e-mail:

%%[
VAR @nomeCliente, @codigoVoucher, @valorDesconto, @urlBarcode, @textoAlt

SET @nomeCliente = AttributeValue("PrimeiroNome")
SET @nomeCliente = IIF(Empty(@nomeCliente), "Cliente", @nomeCliente)

SET @codigoVoucher = Lookup("Vouchers_FarmaRede", "CodigoVoucher", "EmailAssinante", EmailAddress)
SET @valorDesconto = Lookup("Vouchers_FarmaRede", "ValorDesconto", "EmailAssinante", EmailAddress)

SET @textoAlt = Concat("Voucher R$ ", @valorDesconto, " - ", @nomeCliente)

SET @urlBarcode = BarcodeUrl(
@codigoVoucher,
"code128auto",
400,
100,
"",
false,
@textoAlt,
90,
true
)
]%%

<p>Olá, %%=v(@nomeCliente)=%% 👋</p>
<p>Aqui está seu voucher de <strong>R$ %%=v(@valorDesconto)=%%</strong> para usar em qualquer unidade FarmaRede:</p>

<img src="%%=v(@urlBarcode)=%%" alt="Voucher FarmaRede" style="display:block; margin:20px auto;" />

<p style="font-size:12px; color:#666;">
Apresente este código de barras no caixa. Código: %%=v(@codigoVoucher)=%%
</p>

Saída (exemplo para a cliente Maria Santos):

<p>Olá, Maria 👋</p>
<p>Aqui está seu voucher de <strong>R$ 25,00</strong> para usar em qualquer unidade FarmaRede:</p>

<img src="https://image.s11.sfmc-content.com/barcode?..." alt="Voucher FarmaRede" style="display:block; margin:20px auto;" />

<p style="font-size:12px; color:#666;">
Apresente este código de barras no caixa. Código: FR-2024-MS-00892
</p>

(A imagem renderizada mostra o código de barras rotacionado 90° com fundo transparente e o texto "Voucher R$ 25,00 - Maria" abaixo)

Observações

⚠️ Atenção: Você pode chamar BarcodeUrl no máximo 2 vezes por mensagem ou landing page. Se precisar de mais códigos de barras no mesmo e-mail, considere redesenhar o layout ou usar abordagens alternativas.

⚠️ Atenção: A função não gera QR Codes. Se você precisa de QR Code, será necessário usar um serviço externo (API de terceiros, por exemplo, via HTTPGet).

⚠️ Atenção: Tipos de código de barras com comprimento fixo (como ean8, ean13, upca, upce) exigem a quantidade exata de dígitos. Se o número de caracteres estiver errado, o código de barras simplesmente não será renderizado - sem erro.

⚠️ Atenção: Os tipos mat25, onecode, plaintext, planet, postnet e telepen podem ser passados como parâmetro sem gerar exceção, mas não produzem nenhum código de barras.

  • Para renderizar o código de barras, você precisa envolver a chamada da função em uma tag HTML <img>. A função retorna apenas a URL da imagem.

  • Se você quiser usar parâmetros opcionais que não são os primeiros na lista, precisa incluir todos os anteriores. Por exemplo, para usar altText (7º parâmetro), você deve passar valores para checksumValue e boolShowText também - use string vazia "" quando não precisar definir um valor.

💡 Dica: O tipo code128auto é o mais versátil para a maioria dos cenários de cupons e vouchers no Brasil, pois aceita todos os caracteres ASCII e tem comprimento variável. É uma boa escolha padrão.

💡 Dica: Use boolTransparentBG como true quando o fundo do seu e-mail não for branco, assim o código de barras se integra melhor ao layout.

Funções relacionadas

  • Concat - para montar dinamicamente a string que será codificada no barcode
  • Lookup - para buscar códigos de voucher ou dados do cliente em Data Extensions
  • AttributeValue - para acessar atributos do assinante de forma segura
  • V - para exibir a URL gerada dentro de tags HTML
  • Empty - para validar se o valor existe antes de gerar o código de barras
  • IIF - para lógica condicional na montagem do barcode