Aztec Code
O Aztec é o código de barras 2D em todo cartão de embarque, em quase todos os aplicativos de bilhetes ferroviários e em uma parcela crescente das plataformas de transporte. É a única simbologia 2D especificamente otimizada para decodificar de forma confiável em uma tela de celular de baixo contraste atrás de uma marca de polegar, motivo pelo qual a IATA a escolheu para o padrão BCBP (Bar Coded Boarding Pass) em 2005 e nunca mudou.
Aplicação IATA:BCBP (Bar Coded Boarding Pass) Resolution 792, define o formato de payload Tipo M1 usado por todas as companhias aéreas.
Criador: Welch Allyn (agora Honeywell), 1995. Livre de royalties desde o vencimento da patente original.
O que é
Um código de matriz quadrada com um distintivo padrão de localização bullseye no centro (quadrados concêntricos), cercado por módulos de dados dispostos em espiral. Ao contrário do QR, o Aztec não tem padrões de posição/alinhamento nos cantos, o bullseye central é o único fiducial, o que significa que o Aztec tolera rotação, enquadramento fora do centro e recorte não quadrado muito melhor que o QR.
Cinco propriedades que tornam o Aztec excepcionalmente bom para digitalização em tela:
- Sem zona silenciosa necessária. O QR precisa de uma margem de 4 módulos; o Aztec decodifica com zero. Útil quando a borda da tela do celular corta o código.
- Finder bullseye tolera perda de contraste. LCDs com brilho baixo, reflexo solar, marcas de revestimento oleofóbico, o Aztec sobrevive aos três onde os marcadores de canto do QR se apagam.
- ECC variável 5%–95%. O QR tem 4 níveis (L/M/Q/H) com teto de 30%. O Aztec chega a 95% de correção de erros para cenários extremos.
- Compacto em relação à capacidade. Com máximo de 3.067 caracteres alfanuméricos, o Aztec comprime mais em espaço menor que o PDF417 ou Data Matrix.
- Sem bloqueio de orientação. O QR requer os padrões de localização para resolver a orientação; o bullseye do Aztec é simetricamente rotacional.
Tamanho e capacidade
| Variante | Dimensões | Capacidade alfanumérica máx. | Uso típico |
|---|---|---|---|
| Compacto | 15 × 15 a 27 × 27 módulos | ~110 chars | URLs curtas, atribuições de assento IATA |
| Faixa completa (pequeno) | 19 × 19 a 45 × 45 | ~400 chars | Cartões de embarque BCBP Tipo M1 |
| Faixa completa (médio) | 49 × 49 a 95 × 95 | ~1.200 chars | Bilhetes de trânsito com múltiplos segmentos |
| Faixa completa (máx) | 151 × 151 | ~3.067 chars | Payloads pesadas, raras na prática |
Níveis de correção de erros
O ECC do Aztec é especificado como uma porcentagem das palavras-código de dados dedicadas à correção Reed-Solomon. O gerador aceita qualquer valor de 5% a 95%; os padrões são 23% (corresponde ao nível M do QR) para uso geral e 50% para cartões de embarque / bilhetes de trânsito.
| Nível ECC | Uso típico | Trade-off |
|---|---|---|
| 5% | Apenas experimentos / demos | Falha em qualquer dano real. Nunca envie códigos de produção neste nível. |
| 23% (padrão) | Aztec de URL curta em displays digitais | Corresponde ao nível M do QR. Escolha padrão quando leitor e ambiente estão ambos bons. |
| 50% | IATA BCBP, bilhetes de trânsito, papel amassado | Sobrevive a um canto dobrado ou mancha significativa. Padrão implícito da IATA. |
| 75%–95% | Ambientes de alta abrasão ou alta dobra | Capacidade de payload cai acentuadamente. Apenas para uso especializado. |
Formato IATA BCBP, uso canônico do Aztec
O Cartão de Embarque Codificado por Barras Tipo M1 da International Air Transport Association é a maior aplicação Aztec por volume, bilhões de códigos por ano. A payload é uma string ASCII de posição fixa com estes campos iniciais:
M1{PASSENGER/NAME}E{BOOKING_REF} {FROM} {TO} {AIRLINE} {FLIGHT} {DAY}{COMPARTMENT}{SEAT}{CHECK_IN_SEQ}{PASSENGER_STATUS}- M1, indicador de formato (sempre M1 para segmento único).
- PASSENGER/NAME, sobrenome/nome, preenchido com espaços até 20 chars.
- E, indicador de bilhete eletrônico.
- BOOKING_REF, PNR de 6 chars (passenger name record).
- FROM/TO, códigos de aeroporto IATA de 3 letras (DEN, LHR, NRT…).
- AIRLINE, código de transportadora de 3 chars (UA, BA, JL…).
- DAY, dia juliano do ano (001–366).
- COMPARTMENT, classe de viagem (F/J/Y/…).
Vetores de teste canônicos
| Caso | Payload | Substring esperada |
|---|---|---|
| URL curta | https://example.com/board/AB12 | example.com/board/AB12 |
| IATA BCBP mínimo | M1DOE/JOHN EABC123 JFKLHRBA 0100 042Y034A0001 100 | M1DOE/JOHN |
| Bilhete de trânsito com metadados de segmento | M1SMITH/JANE EXYZ789 LAXSFOVA 0250 032Y012C0015 147 | M1SMITH/JANE |
Armadilhas comuns
- Câmeras de celular de consumidor não decodificam Aztec. A câmera do iPhone não retorna nada. A maioria das câmeras Android é igual. Se seu público é o público geral com um telefone, use QR e aceite a menor densidade. Aztec é para leitores dedicados (portões de aeroporto, scanners de catracas, imagers industriais OEM).
- ECC 5% é uma armadilha. O ECC legal mínimo produz códigos que falham em qualquer amassado, reflexo ou abrasão. 23% é o limite seguro; 50% é o padrão de produção para tudo que será impresso em papel.
- BCBP Tipo M1 vs M2. M1 é de segmento único; M2 é de múltiplos segmentos (até 4 voos em um código). Verifique se os leitores de portão da sua companhia aérea suportam M2 antes de incorporar múltiplos segmentos, alguns leitores mais antigos rejeitam.
- Sem marcadores de posição, rotação é tratada mas perspectiva não. O Aztec tolera rotação, mas NÃO distorção de perspectiva pesada. Escaneie de aproximadamente perpendicular à superfície; inclinação 30°+ degrada a decodificação.
- Estilização desativada. Recursos específicos do QR (formas de pontos personalizadas, gradientes, logotipo central) não se aplicam ao Aztec. O painel de estilo da Abundera se desabilita para este tipo.
- Passo de módulo para impressão. O Aztec precisa de pelo menos 0,33 mm/módulo para decodificação confiável por scanner laser; 0,5 mm para leituras por câmera de celular em bilhetes Aztec de grande formato.
Compatibilidade com scanners
| Leitor | Suporte Aztec | Notas |
|---|---|---|
| Câmera iOS (iOS 15+) | Não | A Apple não adicionou Aztec ao app nativo de câmera. Apps de terceiros com SDKs Scandit ou Dynamsoft funcionam. |
| Câmera Android (Google/Pixel) | Parcial | Alguns apps de câmera OEM decodificam; a câmera padrão do Pixel não faz isso de forma confiável. |
| Google Lens | Não confiável | Decodifica Aztec de cartão de embarque inconsistentemente. Não é um caminho de verificação viável para produção. |
| Imager industrial Zebra / Honeywell / Datalogic | Sim | Todo imager 2D industrial suporta Aztec nativamente. |
| Leitor de portão de companhia aérea / trânsito | Sim (canônico) | É para isso que o Aztec foi projetado. Cada portão de aeroporto e trem lê Aztec de forma confiável. |
| Scandit / Dynamsoft SDK | Sim | Usado pela maioria dos quiosques de autoatendimento e apps de check-in de companhias aéreas. |
Veja também
- /aztec-code-generator/, o gerador Aztec.
- Comparação Aztec · PDF417 · Data Matrix, comparação lado a lado com as outras duas simbologias 2D não-QR.
- Referência PDF417, o irmão linear empilhado, para carteiras de motorista e conhecimentos aéreos.
- Referência Data Matrix, o irmão de marcação direta de peças, para farmácia e peças eletrônicas.
- Índice de padrões, voltar ao hub de referências.