InícioCasos de uso › API de WhatsApp para salão e barbearia

API de WhatsApp para salão de beleza e barbearia: confirmação, encaixe e retorno automáticos

A agenda do salão não fura devagar: ela fura às 13h40, quando o cliente das 14h avisa que não vai dar. Com a API do zapon, o seu sistema confirma o horário na marcação, chama a lista de espera assim que uma janela abre e avisa quem já passou do intervalo de sempre — tudo pelo número que a casa já divulga.

Salão, barbearia e estúdio de estética perdem dinheiro de duas formas silenciosas. A primeira é a cadeira parada: alguém desmarca em cima da hora e o horário não é reocupado, porque não houve tempo de procurar substituto. A segunda é a frequência que se perde: o cliente que cortava a cada trinta dias passa sessenta sem aparecer, e ninguém percebe, porque não existe registro de falta — ele simplesmente não marcou de novo.

As duas caem sobre a mesma pessoa: o profissional que trabalha por comissão não recebe pela hora vaga, e a casa perde o mesmo faturamento. Nenhuma se resolve com mais esforço da recepção. Resolvem-se com um canal que dispara sozinho a partir da agenda que já existe, e é isso que uma API de WhatsApp faz. O zapon expõe uma API REST direta — header token, JSON entrando e saindo — que o seu sistema chama como chamaria qualquer serviço.

A dor do salão: a cadeira parada e o cliente que espaçou

Por que um horário desmarcado em cima da hora quase nunca é reocupado?

Porque reocupar exige alguém livre para procurar, e às 13h40 ninguém está livre: a recepção fecha comanda e o profissional finaliza o cliente anterior. O horário não some por falta de procura, some por falta de aviso — quem queria aquela vaga nem soube que ela existiu.

São duas perdas com soluções diferentes:

Por que chamar a lista de espera à mão não funciona?

Funciona com duas pessoas. Com quinze na fila por um horário de progressiva, quem chama precisa esperar a resposta de cada uma antes de passar à próxima — lento demais para uma janela de vinte minutos — ou chamar todo mundo de uma vez e pedir desculpas para catorze, o que queima a lista. O que resolve é uma rotina que chama em ordem, em lotes pequenos, e para no instante em que o horário fecha.

O que o salão precisa ter antes de começar

O que preciso para confirmar horário e oferecer encaixe por WhatsApp?

Três coisas: um número que a casa controla, uma conta no zapon com esse número conectado por QR Code ou código de pareamento, e um sistema que saiba quais horários existem, com qual profissional e para qual serviço. Não é preciso servidor próprio, conta na Meta nem aprovação de template.

Preciso trocar o número que está no cartão e na fachada?

Não, e trocar seria um retrocesso: o cliente responde para o número que já conhece, e o que a automação não entender continua visível na conversa para uma pessoa tratar. O que não vale é usar o celular pessoal de um profissional — quando ele sai da casa, a base sai junto.

O fluxo do salão, do agendamento ao retorno

Como é o fluxo completo, passo a passo?

Cinco etapas: (1) o horário é marcado e o cliente recebe a confirmação com profissional, serviço, duração e política da casa; (2) na véspera sai o lembrete curto com botões; (3) quando um horário abre, a rotina de encaixe chama a lista de espera em lotes pequenos; (4) a resposta chega por webhook — confirmar, desmarcar ou aceitar o encaixe; (5) a régua de frequência avisa quem passou do próprio intervalo sem marcar de novo.

1. O que a confirmação precisa dizer no ato do agendamento?

Ela registra o combinado por escrito e valida o canal: se a entrega falhar aqui, você descobre hoje que a ficha tem telefone errado, não na véspera. O mínimo é dia, horário, profissional, serviço e duração prevista — uma coloração ocupa a poltrona por horas, e quem acha que são quarenta minutos chega atrasado e desmonta o dia. É aqui também que entram a tolerância de atraso e o prazo de aviso para cancelar. Em serviço químico, que costuma exigir sinal e reserva de produto, a mensagem é onde isso fica combinado por escrito.

2. Como é o lembrete da véspera?

Curto, no fim da tarde, com botões. O objetivo não é ser simpático: é arrancar o "não vou" com antecedência suficiente para revender o horário. Um cancelamento às 18h de véspera vale um encaixe tranquilo; o mesmo às 13h40 vira corrida. Esconder o botão de desmarcar não faz o cliente aparecer, só faz ele sumir sem avisar.

3. Como funciona o encaixe quando um horário abre?

Assim que um horário é liberado, uma rotina consulta a lista de espera daquele serviço e daquele profissional e começa a oferecer a vaga. A regra de ouro é não disparar para a lista inteira de uma vez: chame em lotes pequenos, na ordem da fila, com pausa entre os envios, e pare no segundo em que alguém aceita. Quem recebeu a oferta e ficou de fora precisa saber que a vaga foi preenchida — sem isso você criou uma decepção em série.

4. Como a resposta do cliente volta para a agenda?

Ele toca num botão ou escreve, e isso vira um evento entregue por webhook no endereço que o salão cadastrar. São três intenções que interessam: confirmar o horário, desmarcar — o que libera a vaga e aciona o passo 3 — e aceitar um encaixe oferecido. Sem essa peça você automatizou só o aviso, e alguém ainda lê as respostas à mão.

5. Como funciona a régua de frequência?

Cada serviço tem um intervalo típico e cada cliente tem o dele: quem faz a barba toda semana não é quem faz mechas a cada três meses. A rotina roda uma vez por dia, olha quanto tempo passou desde o último atendimento de cada pessoa, compara com o intervalo habitual daquela pessoa — calculado pelo histórico dela, não por uma regra única da casa — e, quando o prazo estoura com folga, envia uma mensagem de retorno.

Os endpoints que o salão usa na prática

Quais endpoints da API do zapon um salão precisa?

Três resolvem o fluxo inteiro: POST /chat/send/text para confirmações, avisos e retorno, POST /chat/send/buttons para a véspera e a oferta de encaixe, e POST /user/check para conferir os telefones da ficha antiga. Todos usam a base https://api.zapon.dev e o header token. São 49 endpoints publicados, todos com schema, mas a agenda vive nesses três.

A autenticação é um header só, token, copiado da conexão no painel: não é Authorization, não é Bearer, não há OAuth. Trate-o como a chave do caixa.

Como enviar a confirmação de uma coloração pela API?

Um POST em /chat/send/text com dois campos: Phone, o número em formato internacional só com dígitos, e Body, o texto.

confirmação de agendamento — cURL
curl -X POST https://api.zapon.dev/chat/send/text \
  -H "token: SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Phone": "5511999999999",
    "Body": "Marina, seu horário está reservado.\n\nServiço: coloração + corte\nProfissional: Rafa\nDia: 22/07 (quarta), às 14h\nDuração prevista: 3h\n\nO sinal de R$ 80 reserva o produto e é abatido no dia. Cancelamento sem custo até 24h antes. Tolerância de atraso: 15 minutos."
  }'

A resposta traz o identificador da mensagem no WhatsApp:

resposta da API
{
  "code": 200,
  "success": true,
  "data": {
    "Details": "Sent",
    "Id": "7C41A0DE99B23F5108E7CC4A61D2B0F3",
    "Timestamp": "2026-07-15T10:41:52-03:00"
  }
}

Guarde esse Id na ficha do cliente: é ele que prova qual mensagem saiu e impede envio duplicado se a rotina rodar de novo.

Como pedir a confirmação da véspera em botões?

O /chat/send/buttons envia botões de resposta rápida. Cada um carrega um id definido por você, e é esse identificador que volta no webhook. Coloque o número do agendamento ali dentro para amarrar a resposta ao registro certo, sem depender do telefone e sem interpretar texto. Além da resposta rápida, o mesmo endpoint monta botão que abre um link ("type": "cta_url"), botão que abre o discador ("type": "cta_call") e botão que copia um código ("type": "copy") — e os tipos convivem na mesma mensagem. O toque em resposta rápida volta no webhook; os outros três agem no aparelho de quem recebe.

lembrete da véspera — botões
POST https://api.zapon.dev/chat/send/buttons
token: SEU_TOKEN

{
  "Phone": "5511999999999",
  "Body": "Marina, amanhã às 14h com a Rafa: coloração + corte, 3h de duração. Confirma?",
  "Footer": "Studio Exemplo",
  "Buttons": [
    { "id": "ag3312|confirmo", "text": "Confirmo" },
    { "id": "ag3312|desmarco", "text": "Preciso desmarcar" }
  ]
}

O rótulo é curto por natureza do WhatsApp: até vinte caracteres. Para oferecer vários horários de remarcação, o /chat/send/list entrega um menu em lista.

Como conferir os telefones da ficha antiga antes do primeiro disparo?

Ficha de salão guarda número de dez anos atrás, telefone fixo e celular sem o nono dígito. O POST /user/check recebe uma lista e diz quais têm conta no WhatsApp — passo obrigatório antes da primeira régua de retorno, que é justamente a que mira a base antiga.

checar a base antiga — cURL
curl -X POST https://api.zapon.dev/user/check \
  -H "token: SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "Phone": ["5511999999999", "551133334444"] }'

// resposta — o fixo da ficha de 2019 não tem WhatsApp
{ "code": 200, "success": true, "data": { "Users": [
  { "Query": "5511999999999", "IsInWhatsapp": true,  "JID": "[email protected]" },
  { "Query": "551133334444",  "IsInWhatsapp": false, "JID": "" }
] } }

Ao todo são 13 formas de envio — texto, imagem, áudio, vídeo, documento, sticker, localização, contato, enquete, lista, botões, template e edição de mensagem já enviada — mais reação, presença de "digitando", marcar como lido e histórico. Fora do trio principal, os que rendem num salão são imagem, para a referência de cor combinada, e localização, para quem nunca foi à casa.

O encaixe: transformar buraco de agenda em atendimento

Como oferecer um horário que acabou de vagar sem irritar a lista de espera?

Chamando em ordem e em lotes pequenos, com pausa entre os envios, e parando no instante em que alguém aceita. Quem recebeu a oferta e não levou precisa ser avisado de que a vaga foi preenchida. E quem fica com o horário é decidido pelo seu banco, não pela ordem em que as mensagens chegam: duas pessoas podem responder no mesmo minuto.

Por que não disparar a oferta para a lista de espera inteira?

Por dois motivos. Uma vaga só pode ser de uma pessoa: chamar quinze e atender uma produz catorze frustrações por horário, e na terceira vez ninguém responde mais. E quinze mensagens idênticas no mesmo segundo é exatamente o padrão de comportamento que aumenta o risco de bloqueio do número. Lote pequeno com pausa resolve os dois de uma vez.

rotina de encaixe — Node
// encaixe.js — chamado quando um horário é liberado
const API = "https://api.zapon.dev";
const TOKEN = process.env.ZAPON_TOKEN;
const pausa = (ms) => new Promise((r) => setTimeout(r, ms));

async function ofertar(phone, vaga) {
  const r = await fetch(`${API}/chat/send/buttons`, {
    method: "POST",
    headers: { "token": TOKEN, "Content-Type": "application/json" },
    body: JSON.stringify({
      Phone: phone,
      Body: `Abriu um horário hoje às ${vaga.hora} com a ${vaga.profissional} ` +
            `para ${vaga.servico}. Quem responder primeiro fica com ele.`,
      Footer: "Studio Exemplo",
      Buttons: [
        { id: `${vaga.id}|aceito`, text: "Quero às 14h" },
        { id: `${vaga.id}|recuso`, text: "Não posso" }
      ]
    })
  });
  const json = await r.json();
  if (!r.ok || !json.success) throw new Error(json.error || `HTTP ${r.status}`);
  return json.data.Id;
}

async function chamarListaDeEspera(vaga) {
  // fila daquele serviço e daquele profissional, na ordem de entrada
  const fila = await listaDeEspera(vaga.servico, vaga.profissionalId);
  const LOTE = 3, avisados = [];

  for (let i = 0; i < fila.length; i += LOTE) {
    if (await vagaFechada(vaga.id)) break;   // alguém já levou: para de chamar

    for (const c of fila.slice(i, i + LOTE)) {
      if (c.optOut || !c.querEncaixe) continue; // consentimento da lista de espera
      try {
        await ofertar(c.telefone, vaga);
        avisados.push(c);
      } catch (e) {
        await registrarFalha(c.id, vaga.id, String(e)); // vira tarefa da recepção
      }
      await pausa(6000);                     // ritmo de gente, não de robô
    }
    await pausa(120000);                    // 2 min para o lote responder
  }

  // quem ficou de fora precisa saber: senão a lista morre na próxima vez
  const vencedor = await donoDaVaga(vaga.id);
  for (const c of avisados) {
    if (c.id === vencedor?.clienteId) continue;
    await enviarTexto(c.telefone,
      `O horário das ${vaga.hora} já foi preenchido. Você continua na lista para a próxima janela.`);
    await pausa(6000);
  }
}

Três detalhes desse laço fazem a diferença. O vagaFechada, consultado a cada volta, impede que a rotina continue oferecendo o que já foi levado. O querEncaixe garante que a oferta só vá para quem pediu para entrar na fila. E o aviso final, para quem recebeu e não levou, é o que mantém a lista viva: sem ele, a segunda oferta cai no vazio.

A resposta do cliente: webhook e a corrida por um horário só

Como o salão recebe no seu sistema a resposta do cliente?

Cada conexão tem um webhook próprio: você cadastra no painel a URL do seu sistema e escolhe os eventos. A partir daí, toda mensagem que chega ao número é entregue como um POST nessa URL, com o conteúdo inteiro no corpo — telefone, identificador, horário, texto e, quando é resposta de botão, o id que você definiu.

O ciclo tem três partes que não se misturam: o webhook entrega o evento, a sua regra interpreta e a ação acontece no seu sistema. A API não sabe o que é uma poltrona; sabe que uma mensagem chegou.

Qual é o formato do evento de mensagem recebida?

Assim chega quem escreveu que não vai poder vir:

webhook — mensagem recebida
{
  "type": "Message",
  "event": {
    "Info": {
      "ID": "5AC1D9E70B44F2168D31",
      "Chat": "[email protected]",
      "Sender": "[email protected]",
      "IsFromMe": false, "IsGroup": false,
      "PushName": "Marina Alves",
      "Timestamp": "2026-07-21T18:22:07-03:00"
    },
    "Message": { "conversation": "não vou conseguir amanhã, desculpa" }
  }
}

// quando ele aceita o encaixe pelo botão, muda só o bloco Message:
    "Message": { "buttonsResponseMessage": {
      "selectedButtonID": "enc2207|aceito",
      "Response": { "SelectedDisplayText": "Quero às 14h" }
    } }

Duas observações que economizam horas: o corpo pode chegar como JSON puro ou como formulário codificado, com o JSON dentro de um campo — aceite os dois. E o que o próprio número envia também gera evento, com IsFromMe igual a true: ignore, ou a recepção respondendo um cliente aciona a sua automação.

Como tratar duas pessoas aceitando o mesmo horário no mesmo minuto?

Essa corrida vai acontecer, e a mensagem não decide nada: quem decide é o seu banco. A vaga precisa ter dono único, escrito numa operação que só dá certo uma vez — uma atualização condicionada a a vaga ainda estar livre. Quem chega primeiro leva; o segundo recebe na mesma hora uma resposta honesta, dizendo que a vaga foi preenchida e que ele segue na fila.

receptor do webhook — Node/Express
app.post("/whatsapp/eventos", express.json(), async (req, res) => {
  res.sendStatus(200);                        // responda primeiro, processe depois

  const ev = req.body?.event ?? req.body, info = ev?.Info ?? {};
  if (info.IsFromMe || info.IsGroup) return;   // o que a casa enviou, e grupos, fora
  if (await jaProcessado(info.ID)) return;     // o mesmo evento pode chegar 2x

  const telefone = String(info.Chat || "").split("@")[0];
  const botao = ev?.Message?.buttonsResponseMessage?.selectedButtonID ?? "";
  const texto = (ev?.Message?.conversation ??
                 ev?.Message?.extendedTextMessage?.text ?? "").trim().toLowerCase();
  const [ref, acaoBotao] = botao.split("|");

  // 1) oferta de encaixe: a trava está no banco, não na mensagem
  if (ref?.startsWith("enc") && acaoBotao === "aceito") {
    const levou = await reservarVaga(ref, telefone); // UPDATE ... WHERE dono IS NULL
    return enviarTexto(telefone, levou
      ? "Fechado, o horário é seu. Te esperamos às 14h com a Rafa."
      : "Esse horário acabou de ser preenchido. Você continua na lista para a próxima.");
  }

  // 2) confirmação ou cancelamento do horário já marcado
  const ag = ref?.startsWith("ag") ? await buscarAgendamento(ref)
                                  : await proximoHorarioPorTelefone(telefone);
  if (!ag) return filaDaRecepcao(telefone, texto);

  const acao = acaoBotao
    || (/^(1|sim|confirmo|confirmado)$/.test(texto) ? "confirmo"
     :  /(nao vou|não vou|desmarcar|cancelar)/.test(texto) ? "desmarco" : null);

  if (acao === "confirmo") {
    await atualizarStatus(ag.id, "confirmado");
    return enviarTexto(telefone, `Confirmado. Até amanhã às ${ag.hora}.`);
  }
  if (acao === "desmarco") {
    await atualizarStatus(ag.id, "cancelado");
    const vaga = await abrirVaga(ag);            // devolve o horário para a fila
    chamarListaDeEspera(vaga);                     // dispara o passo 3
    return enviarTexto(telefone, "Horário liberado. Quando quiser remarcar, é só chamar.");
  }
  return filaDaRecepcao(telefone, texto);        // o resto é assunto de gente
});

E quando o cliente escreve qualquer outra coisa?

Ele vai escrever: "quanto fica a progressiva no meu cabelo?", "a Rafa atende sábado?". Não tente responder tudo automaticamente — preço de serviço químico depende de comprimento e histórico do fio, e chutar valor por mensagem gera discussão no caixa. O que a automação não reconhece vira pendência para uma pessoa tratar, no próprio aplicativo, como a recepção sempre fez.

Frequência e retorno: o cliente que some entre um corte e outro

Como saber que um cliente está atrasado para voltar?

Comparando o tempo desde o último atendimento dele com o intervalo que ele mesmo pratica. Se as últimas visitas foram a cada 28, 31, 29 e 30 dias, no dia 45 alguma coisa mudou. A rotina roda diariamente, seleciona quem estourou o próprio intervalo com folga e envia uma mensagem de retorno com um caminho fácil para marcar.

Como calcular o intervalo de cada cliente em vez de usar uma regra única?

Pegue as últimas visitas daquela pessoa naquele serviço, calcule os intervalos entre elas e use a mediana — ela resiste melhor a uma viagem de trinta dias no meio do histórico do que a média. Some uma folga antes de disparar, algo como um terço do intervalo, para não cutucar quem só atrasou uma semana. Quem tem histórico curto demais fica de fora até ter base, e separe por serviço: barba, corte e coloração andam em ritmos diferentes, inclusive para o mesmo cliente.

Onde termina o lembrete de retorno e começa a propaganda?

A linha é o assunto. "Faz 45 dias do seu último corte com o Diego, quer que eu reserve um horário essa semana?" fala de um serviço que aquela pessoa contratou e do intervalo dela: é continuidade de relação. "Terça é dia de 20% em progressiva" fala do que a casa quer vender: é campanha, e campanha exige consentimento registrado e descadastro que funcione. As duas podem existir, desde que não usem a mesma régua nem a mesma lista. Uma mensagem por ciclo basta; a segunda insistência é onde a pessoa bloqueia o número.

Consentimento, horário e uso responsável

Posso usar o número do salão para mandar promoção para todo mundo?

Não sem consentimento registrado e descadastro que funcione. Há três níveis aqui, e misturá-los é o erro clássico do setor: aviso sobre o horário que a pessoa marcou é esperado; oferta de encaixe só vale para quem pediu para entrar na lista de espera; promoção é marketing e depende de opt-in explícito. O mesmo número serve para os três; a mesma lista, não.

Sobre bloqueio de número, sem promessa mágica. Mensagem não solicitada aumenta o risco: quando muita gente denuncia ou bloqueia um número, o WhatsApp age. Esse risco existe em qualquer API — inclusive na oficial da Meta — e não pode ser eliminado, só reduzido: falar com quem espera a mensagem, manter volume e ritmo compatíveis com uma casa de verdade, espaçar os envios do encaixe e parar de escrever para quem pediu para sair. Perder o número que está no cartão e na cabeça dos clientes é prejuízo grande demais para arriscar por um disparo de promoção. Quem promete que o número nunca será bloqueado não está sendo honesto.

Preço, conexão e o que esperar do painel

Quanto custa para um salão com um número?

R$ 27 por mês por número conectado, sem cobrança por mensagem: o valor é o mesmo se a casa mandar 50 ou 5.000 mensagens no mês. O que tem teto é o dia: 300 mensagens por número conectado, um freio que existe para o WhatsApp não tratar a agenda do salão como lista de propaganda. O teste é de 14 dias sem cartão e a contagem só começa na primeira conexão, então dá para criar a conta, escrever a integração com calma e conectar o número depois.

Essa previsibilidade é o que torna o encaixe viável: uma janela pode custar quinze ofertas mais os avisos de vaga preenchida, e com cobrança por mensagem alguém cortaria justamente a rotina que traz faturamento de volta. Com mais de uma unidade, é uma conexão por unidade, e o seu sistema escolhe de qual número a mensagem sai trocando o header token.

Como sei que a conexão continua de pé?

O painel mostra o estado de cada conexão e atualiza a cada 10 segundos enquanto a página está aberta. Para não depender de alguém olhar a tela, assine os eventos de conexão no seu webhook: Disconnected avisa a queda e LoggedOut avisa que o número precisa reler o QR Code. E quando um envio falhar, registre numa lista visível — foi o que o registrarFalha fez — e faça alguém olhar essa lista no começo do expediente. Oferta que não saiu precisa virar tarefa, não silêncio.

Perguntas frequentes

Cada profissional precisa do próprio número ou o salão usa um só?

Na maioria dos casos um número só da casa resolve, e é o arranjo mais saudável: o cliente é do salão, o histórico fica no sistema e ninguém leva a base embora ao trocar de emprego. O profissional aparece dentro da mensagem, não no remetente. Separar faz sentido quando as unidades são diferentes ou quando profissionais alugam cadeira e atendem por conta própria — aí cada conexão tem o seu token e o seu custo mensal.

O que acontece quando o cliente marcou com um profissional específico e ele falta?

A automação avisa cedo em vez de deixar a descoberta para a porta do salão. Assim que a ausência é lançada na agenda, sai uma mensagem dizendo o que houve e oferecendo remanejar com outro profissional ou remarcar com o mesmo. Quem prefere esperar libera o horário, e essa vaga entra na rotina de encaixe como qualquer outra.

Dá para cobrar sinal de serviço químico e registrar isso pela mensagem?

O zapon envia e recebe mensagens, não processa pagamento. O que a mensagem faz é deixar o combinado por escrito: valor do sinal, prazo, meio de pagamento e a regra de devolução em caso de cancelamento. Se a casa cobra por link ou por chave, o texto leva a instrução e a baixa é confirmada no seu sistema, com a mensagem servindo de registro.

O cliente confirma e mesmo assim não aparece: o que a automação resolve?

Resolve o que é falha de comunicação — esquecimento, confusão de horário, cliente que não sabia como avisar. Não resolve descaso, e nenhuma tecnologia resolve. O que ela entrega é o registro: quem confirmou, quando e quantas vezes já fez isso. Com esse histórico a casa decide a política, como pedir sinal de quem já faltou duas vezes, e a decisão passa a ser baseada em fato.

A lista de espera não vira spam?

Vira se você disparar para todo mundo a cada vaga e nunca avisar quem ficou de fora. Não vira se três regras forem respeitadas: só entra na lista quem pediu, a oferta sai em lotes pequenos na ordem da fila, e quem recebeu e não levou é avisado de que a vaga fechou. Uma lista bem tratada é a mensagem mais bem recebida do salão, porque chega oferecendo o que a pessoa pediu.

Posso mandar promoção para a base inteira de clientes?

Só para quem consentiu em receber esse tipo de mensagem, com registro de quando consentiu e com descadastro que funcione. Ter o telefone porque a pessoa foi atendida uma vez não é consentimento para campanha. Além do lado legal há o prático: disparo para base fria é o comportamento que mais gera denúncia e mais aumenta o risco de perder o número da casa.

Quanto custa, quantas mensagens cabem por dia e dá para testar antes?

R$ 27 por mês por número conectado, sem cobrança por mensagem, dentro de uma cota de 300 mensagens por dia por número conectado — o teto que segura o ritmo e protege o número da casa. O teste é de 14 dias sem cartão e só começa a contar quando você conecta o primeiro número, então dá para preparar a integração antes de gastar um dia do período.

Outros casos de uso

Pare de deixar cadeira parada por um cancelamento de última hora.

14 dias grátis, sem cartão — a contagem só começa quando você conectar o número. Crie a conta, leia o QR Code e ofereça o primeiro encaixe ainda esta semana.