Pular para o conteúdo principal
A API do GetQR está em beta e disponível para workspaces selecionados. Os detalhes podem mudar antes do lançamento oficial.
Cada QR code tem um qrType, e o tipo define o que data deve conter. Este guia mostra o formato de cada tipo, um corpo de requisição que funciona e o que você ainda pode alterar depois que o código for impresso. Os exemplos são corpos de requisição para Criar um QR code. Envie-os assim:

Todos os tipos em resumo

Como um QR code é resolvido

Todo QR code é um link curto mais um payload. Dois campos guardam o conteúdo: Regras para todos os tipos:
  • Padrões. Na criação, um link.url omitido ou vazio passa a ser data, e você pode omitir o objeto link inteiro. Quando os dois são enviados e são diferentes, vale o link.url. Envie os dois iguais ou envie só data.
  • O que a imagem codifica. A imagem codifica o link curto em todos os tipos, exceto wifi. Assim, você pode mudar para onde um código impresso leva, e as leituras dele são rastreadas. Um QR code de WiFi codifica a própria rede: não dá para alterá-lo depois de impresso, e as leituras dele não são rastreadas.
  • Esquemas. link.url aceita apenas http:, https:, wifi:, mailto:, sms: e begin:. Qualquer outro, incluindo geo:, smsto:, matmsg: e tel:, recebe 422 Invalid destination URL, mesmo quando data o aceita.
  • Dados vazios. Um data vazio pula a validação do tipo. Em um tipo de redirecionamento, o link.url precisa estar definido, ou a chamada recebe 400 Missing destination URL.
  • Estrutura. Além da validação do tipo, o servidor não valida o payload. Um tipo JSON só precisa ser interpretável como um objeto JSON, e um vCard só precisa começar com BEGIN:VCARD.
Os limites marcados com Criador abaixo são os que o editor do painel aplica. A API aceita payloads que os ignoram, mas eles podem aparecer de forma estranha na página de destino ou no editor.

Website

qrType: "website". Guia do painel: QR code de 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: QR code de Feedback. data é a URL http(s) do formulário de feedback, por exemplo um Google Form ou uma página de avaliações. Todo o resto funciona como em Website.
Request body

Pagamento

qrType: "payment". Guia do painel: QR code de Pagamento. data é a URL de pagamento do provedor, por exemplo:
O editor do painel reconhece estes hosts: paypal.me, paypal.com/paypalme, cash.app, venmo.com, buy.stripe.com, stripe.com, square.link e payoneer.com. No PayPal, o valor é o último segmento do caminho. Qualquer outra URL http(s) também funciona, mas o editor não a separa em provedor e valor. Todo o resto funciona como em Website.
Request body

WhatsApp

qrType: "whatsapp". Guia do painel: QR code de WhatsApp. data é um link wa.me: o número internacional em dígitos, sem +, opcionalmente com um texto pré-preenchido.
O servidor só verifica se é uma URL http(s). O painel também lê links api.whatsapp.com/send. Todo o resto funciona como em Website.
Request body

Localização

qrType: "location". Guia do painel: QR code de Localização. data é uma URL de mapa. Use este formato para manter o QR code editável no painel (query_place_id é opcional):
Qualquer outra URL http(s) também redireciona. Um URI geo: passa na validação de data, mas é rejeitado como destino, então não o use. Todo o resto funciona como em Website.
Request body
qrType: "app". Guia do painel: QR code de App Link.
Request body
Erros:
  • 422 Invalid URL
  • 400 Missing destination URL

E-mail

qrType: "email". Guia do painel: QR code de E-mail.
Request body
Erros:
  • 422 Expected a mailto URI, e.g. "mailto:[email protected]?subject=Hello" for qrType "email".

SMS

qrType: "sms". Guia do painel: QR code 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: QR code de 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 QR code de WiFi já impresso. Os códigos impressos mantêm a rede antiga.

PDF e arquivos de imagem ou vídeo

qrType: "pdf", "image" ou "video". Guias do painel: PDF, Image, Video. Um arquivo por QR code: pacotes de PDFs e galerias de imagens não estão disponíveis na API. Veja Não suportado pela API.
Para enviar o arquivo e obter o fileId dele, veja Arquivos.

vCard

qrType: "vcard". Guia do painel: QR code de vCard. A página de destino e o editor leem apenas os formatos de linha abaixo. Outras variantes, como TEL;CELL: ou EMAIL;TYPE=INTERNET:, são armazenadas, mas não aparecem na página.
  • N:<last>;<first>;;;: sobrenome e nome. Criador: ambos obrigatórios, até 40 caracteres.
  • FN:<first> <last>: não é lido pela página. O rótulo na lista do painel vem daqui.
  • ORG:<company> e TITLE:<role>: empresa e cargo. Criador: até 40 caracteres.
  • TEL;TYPE=HOME:, TEL;TYPE=CELL:, TEL;TYPE=WORK:, TEL;TYPE=FAX:: números de telefone, celular, trabalho e fax (+ e dígitos).
  • EMAIL:<email>: endereço de e-mail.
  • URL:<url>: site.
  • NOTE:<text>: resumo. Escape \\, \n, \; e \,. Criador: até 200 caracteres.
  • ADR:;;<street>;<city>;<state>;<zip>;<country>: endereço.
  • X-SOCIALPROFILE;TYPE=<platform>:<url> ou URL;TYPE=<PLATFORM>:<url>: links de redes sociais, uma linha por plataforma.
  • PHOTO;VALUE=URI:<url>: URL da imagem de perfil. Prevalece sobre qualquer ID de arquivo.
  • X-GETQR-IMAGE-FILEID:<fileId>: imagem de perfil (target logo).
  • X-GETQR-PAGE-LOGO-FILEID:<fileId>: logo 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 de destino, seja um índice predefinido (de 0 a 4), seja cores personalizadas de fundo, botão e ícone.
Plataformas 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: QR code de 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: QR code 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: um ícone padrão é exibido. Criador: pelo menos um link 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: QR code 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".

Arquivos em QR codes

Registre um arquivo com Arquivos, envie-o e depois passe o fileId dele. Use o target que corresponde ao uso:
  • pdf, image, video. O conteúdo de um QR code de PDF, Image ou Video.
  • logo. Imagens de perfil, logos de página, ícones de links personalizados e logos centrais.
Arquivos que nunca são anexados a um QR code são excluídos após um período de carência. Erros de fileId, retornados na criação e no PATCH quando fileId é enviado: IDs de arquivo dentro de um payload (fileId, pageLogoFileId, customItems[].logoFileId, linhas X-GETQR-*-FILEID) não são validados. Eles só são exibidos quando enviados com o target logo. O QR code passa a ser dono deles, então a limpeza não os remove.

Mudança de tipo

Você pode alterar o qrType com Atualizar um QR code. Envie um data compatível com o novo tipo: o payload armazenado pertence ao tipo antigo, então uma mudança sem ele é rejeitada. Depois de uma atualização, o destino é resolvido nesta ordem:
  1. vcard, social, multilink, event: sempre a página hospedada.
  2. Um pacote de PDFs ou uma galeria de imagens criados no painel: a página de destino deles.
  3. pdf, image, video: a URL do arquivo (um novo fileId ou, se não houver, o armazenado).
  4. link.url, quando enviado.
  5. O data alterado.
  6. A URL armazenada.
O que cada mudança faz:
  • Saindo de pdf, image ou video. O fileId e qualquer pacote ou galeria são limpos.
  • Entrando em pdf, image ou video. Envie também o fileId, ou o armazenado é reaproveitado, e ele pode ser uma foto de vCard.
  • Saindo de app. O nome do app, link.ios e link.android são limpos, então os celulares seguem o novo destino.
  • Entrando em wifi. A imagem passa a codificar o payload bruto. Os códigos já impressos continuam com o link curto, que agora redireciona para uma URL wifi:.
  • Saindo de wifi. Os códigos impressos mantêm a rede antiga.
  • Entrando em vcard, social, multilink ou event. O link curto passa a apontar para a nova página hospedada.
  • Saindo de vcard, social, multilink ou event. Envie o novo data. O destino o acompanha.
QR codes estáticos criados no painel não têm link curto, então alterar o link.url deles retorna 422.

Não suportado pela API

Estes recursos do painel não fazem parte da API v1. Campos desconhecidos são descartados sem erro, então enviá-los não tem efeito. Pacotes e galerias criados no painel ainda podem ser lidos, pausados e excluídos pela API, mas os arquivos deles não podem ser alterados por ela.

Problemas comuns

O link.url usa um esquema para o qual o link curto não consegue redirecionar, como geo:, smsto:, matmsg: ou tel:. Use os formatos desta página.
data está vazio e não há link.url. Para app, defina pelo menos um entre link.ios, link.android, link.url ou data.
A página lê apenas os campos e formatos de linha listados para o tipo. Outros campos são armazenados, mas não exibidos.

Próximos passos

QR codes

Arquivos

Personalização

Regras de acesso