Saltar para o conteúdo principal
A API do GetQR está em versão beta e só está disponível para alguns espaços de trabalho. Os detalhes podem mudar antes do lançamento geral.
Cada código QR tem um qrType, e o tipo define o que data tem de conter. Este guia indica o formato de cada tipo, um corpo de pedido que funciona e o que ainda pode alterar depois de o código ser impresso. Os exemplos são corpos de pedido para Criar um código QR. Envie-os assim:

Todos os tipos num relance

Como um código QR é resolvido

Cada código QR é uma ligação curta mais um payload. O conteúdo é transportado por dois campos: Regras para todos os tipos:
  • Predefinições. Na criação, um link.url omitido ou vazio passa a ser data, e pode omitir todo o objeto link. Quando ambos são enviados e são diferentes, prevalece link.url. Envie-os iguais ou envie apenas data.
  • O que a imagem codifica. A imagem codifica a ligação curta em todos os tipos, exceto wifi. Assim, pode alterar o destino de um código impresso, e as respetivas leituras são registadas. Um código QR WiFi codifica a própria rede: não o pode alterar após a impressão e as leituras não são registadas.
  • Esquemas. link.url só aceita http:, https:, wifi:, mailto:, sms: e begin:. Qualquer outro, incluindo geo:, smsto:, matmsg: e tel:, devolve 422 Invalid destination URL, mesmo quando data o aceita.
  • Data vazio. Um data vazio ignora a validação do tipo. Num tipo de redirecionamento, link.url tem então de estar definido, caso contrário a chamada devolve 400 Missing destination URL.
  • Estrutura. Para além da validação do tipo, o servidor não valida o payload. Um tipo JSON só tem de ser interpretável como objeto JSON, e um vCard só tem de começar por BEGIN:VCARD.
Os limites marcados como Editor são os que o editor do painel aplica. A API aceita payloads que não os respeitam, mas podem ser apresentados de forma estranha na página de destino ou no editor.

Website

qrType: "website". Guia do painel: Código QR Website.
Request body
Erros:
  • 422 Expected an http(s) URL, e.g. "https://example.com" for qrType "website".
  • 422 Invalid destination URL

Feedback

qrType: "feedback". Guia do painel: Código QR de Feedback. data é o URL http(s) do formulário de feedback, por exemplo um Google Form ou uma página de avaliações. Tudo o resto funciona como em Website.
Request body

Pagamento

qrType: "payment". Guia do painel: Código QR de Pagamento. data é o URL de pagamento do fornecedor, por exemplo:
O editor do painel reconhece estes domínios: paypal.me, paypal.com/paypalme, cash.app, venmo.com, buy.stripe.com, stripe.com, square.link e payoneer.com. No PayPal, o montante é o último segmento do caminho. Qualquer outro URL http(s) também funciona, mas o editor não o separa em fornecedor e montante. Tudo o resto funciona como em Website.
Request body

WhatsApp

qrType: "whatsapp". Guia do painel: Código QR WhatsApp. data é uma ligação wa.me: o número internacional em dígitos sem +, opcionalmente com um texto predefinido.
O servidor só verifica se é um URL http(s). O painel também lê ligações api.whatsapp.com/send. Tudo o resto funciona como em Website.
Request body

Localização

qrType: "location". Guia do painel: Código QR de Localização. data é o URL de um mapa. Use este formato para manter o código QR editável no painel (query_place_id é opcional):
Qualquer outro URL http(s) também redireciona. Um URI geo: passa a validação de data, mas é rejeitado como destino, por isso não o utilize. Tudo o resto funciona como em Website.
Request body
qrType: "app". Guia do painel: Código QR de App Link.
Request body
Erros:
  • 422 Invalid URL
  • 400 Missing destination URL

Email

qrType: "email". Guia do painel: Código QR de Email.
Request body
Erros:
  • 422 Expected a mailto URI, e.g. "mailto:[email protected]?subject=Hello" for qrType "email".

SMS

qrType: "sms". Guia do painel: Código QR de SMS.
Request body
Erros:
  • 422 Expected an SMS URI, e.g. "sms:+14155550123?body=Hello" for qrType "sms".

WiFi

qrType: "wifi". Guia do painel: Código QR WiFi.
Request body
Erros:
  • 422 Expected a Wi-Fi payload, e.g. "WIFI:T:WPA;S:MyNetwork;P:secret;H:false;" for qrType "wifi".
Não mude o tipo de um código QR WiFi já impresso. Os códigos impressos mantêm a rede antiga.

PDF, imagem e vídeo

qrType: "pdf", "image" ou "video". Guias do painel: PDF, Image, Video. Um ficheiro por código QR: os conjuntos de PDF e as galerias de imagens não estão disponíveis na API. Consulte Não suportado na API.
Para carregar o ficheiro e obter o respetivo fileId, consulte Ficheiros.

vCard

qrType: "vcard". Guia do painel: Código QR de vCard. A página de destino e o editor só leem os formatos de linha abaixo. Outras variantes, como TEL;CELL: ou EMAIL;TYPE=INTERNET:, são guardadas, mas não aparecem na página.
  • N:<last>;<first>;;;: apelido e nome próprio. Editor: ambos obrigatórios, até 40 caracteres.
  • FN:<first> <last>: não é lido pela página. É daqui que vem a etiqueta na lista do painel.
  • ORG:<company> e TITLE:<role>: empresa e cargo. Editor: até 40 caracteres.
  • TEL;TYPE=HOME:, TEL;TYPE=CELL:, TEL;TYPE=WORK:, TEL;TYPE=FAX:: números de telefone, telemóvel, trabalho e fax (+ e dígitos).
  • EMAIL:<email>: endereço de email.
  • URL:<url>: website.
  • NOTE:<text>: resumo. Escape \\, \n, \; e \,. Editor: até 200 caracteres.
  • ADR:;;<street>;<city>;<state>;<zip>;<country>: morada.
  • X-SOCIALPROFILE;TYPE=<platform>:<url> ou URL;TYPE=<PLATFORM>:<url>: ligações para redes sociais, uma linha por plataforma.
  • PHOTO;VALUE=URI:<url>: URL da imagem de perfil. Prevalece sobre qualquer ID de ficheiro.
  • X-GETQR-IMAGE-FILEID:<fileId>: imagem de perfil (target logo).
  • X-GETQR-PAGE-LOGO-FILEID:<fileId>: logótipo da página (target logo).
  • X-GETQR-LANDING-THEME:p|<0-4> ou X-GETQR-LANDING-THEME:c|#RRGGBB|#RRGGBB|#RRGGBB: tema da página, seja um índice de predefinição (de 0 a 4) ou cores personalizadas de fundo, botões e ícones.
Redes sociais: facebook, whatsapp, instagram, youtube, tiktok, messenger, snapchat, linkedin, x, reddit, pinterest, telegram, wechat, viber, line.
Request body
Erros:
  • 422 Expected a vCard payload starting with "BEGIN:VCARD" for qrType "vcard".

Social Media

qrType: "social". Guia do painel: Código QR Social Media. Campos em data:
Request body
Erros:
  • 422 Expected a JSON object describing the social profile page for qrType "social".
qrType: "multilink". Guia do painel: Código QR de Multi-Link. Os campos em data são os de Social Media, exceto que firstName, lastName e summary são substituídos por: Em customItems, logoFileId é opcional: é apresentado um ícone alternativo. Editor: pelo menos uma ligação social ou um item personalizado não vazio.
Request body
Erros:
  • 422 Expected a JSON object describing the multi-link page for qrType "multilink".

Evento

qrType: "event". Guia do painel: Código QR de Evento. Campos em data:
conference, seminar, workshop, training, webinar, meetup, networking, corporateEvent, productLaunch, tradeShow, jobFair, fundraiser, charity, wedding, engagement, birthday, anniversary, babyShower, graduation, reunion, party, religious, funeralMemorial, ceremony, concert, festival, clubNight, theater, comedy, filmScreening, exhibition, sports, tournament, raceMarathon, fitnessClass, foodDrink, market, openHouse, community, schoolEvent, kids, travelTour
Request body
Erros:
  • 422 Expected a JSON object describing the event page for qrType "event".

Ficheiros em códigos QR

Registe um ficheiro com Ficheiros, carregue-o e depois passe o respetivo fileId. Use o target que corresponde à utilização:
  • pdf, image, video. O conteúdo de um código QR de PDF, imagem ou vídeo.
  • logo. Imagens de perfil, logótipos de página, ícones de ligações personalizadas e logótipos centrais.
Os ficheiros que nunca são associados a um código QR são eliminados após um período de tolerância. Erros de fileId, devolvidos na criação e em PATCH quando fileId é enviado: Os IDs de ficheiro dentro de um payload (fileId, pageLogoFileId, customItems[].logoFileId, linhas X-GETQR-*-FILEID) não são validados. Só são apresentados se tiverem sido carregados com o target logo. O código QR reclama-os, pelo que a limpeza não lhes toca.

Mudar de tipo

Pode alterar qrType com Atualizar um código QR. Envie um data que corresponda ao novo tipo: o payload guardado pertence ao tipo antigo, por isso uma mudança sem ele é rejeitada. Após uma atualização, o destino é resolvido por esta ordem:
  1. vcard, social, multilink, event: sempre a página alojada.
  2. Um conjunto de PDF ou uma galeria de imagens criados no painel: a respetiva página de destino.
  3. pdf, image, video: o URL do ficheiro (um novo fileId ou, na falta deste, o guardado).
  4. link.url, quando enviado.
  5. O data alterado.
  6. O URL guardado.
O que faz cada mudança:
  • Ao sair de pdf, image ou video. fileId e qualquer conjunto ou galeria são apagados.
  • Ao passar para pdf, image ou video. Envie também fileId, caso contrário é reutilizado o guardado, que pode ser a fotografia de um vCard.
  • Ao sair de app. O nome da aplicação, link.ios e link.android são apagados, pelo que os telemóveis passam a seguir o novo destino.
  • Ao passar para wifi. A imagem passa a usar o payload em bruto. Os códigos já impressos continuam a conter a ligação curta, que agora redireciona para um URL wifi:.
  • Ao sair de wifi. Os códigos impressos mantêm a rede antiga.
  • Ao passar para vcard, social, multilink ou event. A ligação curta passa a apontar para a nova página alojada.
  • Ao sair de vcard, social, multilink ou event. Envie o novo data. O destino acompanha-o.
Os códigos QR estáticos criados no painel não têm ligação curta, pelo que alterar o respetivo link.url devolve 422.

Não suportado na API

Estas funcionalidades do painel não fazem parte da API v1. Os campos desconhecidos são descartados sem erro, pelo que enviá-los não tem qualquer efeito. Os conjuntos e as galerias criados no painel podem continuar a ser consultados, colocados em pausa e eliminados através da API, mas os respetivos ficheiros não podem ser alterados através dela.

Problemas comuns

link.url usa um esquema para o qual a ligação curta não pode redirecionar, como geo:, smsto:, matmsg: ou tel:. Use os formatos desta página.
data está vazio e não existe link.url. Em app, defina pelo menos um de link.ios, link.android, link.url ou data.
Nos tipos de ligação, o data guardado é a ligação curta. Leia o destino em url.
A página só lê os campos e os formatos de linha indicados para o tipo. Os outros campos são guardados, mas não são apresentados.

Próximos passos

Códigos QR

Ficheiros

Personalização

Regras de acesso