InícioCasos de uso › API de WhatsApp para assistência técnica

API de WhatsApp para assistência técnica: aprovação de orçamento e aviso de retirada automáticos

O seu sistema de OS já sabe quais aparelhos aguardam aprovação e quais estão prontos há duas semanas na prateleira. Com a API do zapon, ele mesmo manda o laudo com botões, reavisa o prazo e roda a régua de retirada — e recebe a resposta do cliente por webhook, com carimbo de tempo.

Assistência técnica não perde dinheiro no reparo. Perde no tempo morto entre etapas: a OS parada porque o cliente ainda não decidiu se aprova, e o aparelho consertado que ninguém vem buscar. As duas ocupam a mesma prateleira e nenhuma delas depende do técnico.

O aparelho fica parado porque a decisão do cliente é econômica, não técnica: ele calcula se um reparo de R$ 380 compensa num aparelho que já pensava em trocar. Essa conta ele adia — mais ainda quando aprovar exige ligar para a loja em horário comercial. Uma API de WhatsApp encurta essa distância. O zapon expõe uma API REST simples — header token, JSON entrando e saindo — que o seu sistema de OS chama como chamaria qualquer serviço. Abaixo: o fluxo, os endpoints em cURL e Node, a régua de retirada e o cuidado de quem guarda o aparelho de outra pessoa.

A dor: a OS parada e a prateleira cheia

Por que a OS fica parada esperando aprovação de um conserto barato?

Porque a decisão não é sobre o conserto, é sobre o aparelho: o cliente pesa consertar contra trocar, e essa conta é adiável. Enquanto adia, o aparelho ocupa bancada. Um laudo com valor, prazo e garantia, respondível com um toque, encurta a espera porque tira o único trabalho que sobrava para ele.

Por que o aparelho pronto vira custo para a loja?

Porque a prateleira é finita e a responsabilidade não. Enquanto o aparelho está com a assistência, ela responde pela guarda: espaço, organização por protocolo e risco em caso de furto ou dano. Um aparelho parado dois meses consome o lugar de três OS que girariam no período. E quanto mais tempo passa, mais difícil fica localizar o cliente.

Ligar para cada cliente não resolve?

Resolve caro. Trinta aparelhos parados são trinta ligações, com ocupado, caixa postal e recado que ninguém retorna — feitas pelo mesmo balconista que atende quem está na loja. E a ligação não deixa registro do que foi dito, enquanto a mensagem enviada fica gravada com data e hora e serve depois como prova de que a loja tentou avisar.

O que a assistência precisa ter para começar

O que preciso para avisar cliente de OS por WhatsApp automaticamente?

Três coisas: um número de WhatsApp da loja, uma conta no zapon com esse número conectado por QR Code ou código de pareamento, e um sistema que saiba o estado de cada OS. Não é preciso servidor próprio, conta na Meta, aprovação de template nem aplicativo instalado no balcão.

Preciso trocar o número que a loja já divulga?

Não, e trocar é ruim para você: o número da fachada é o que o cliente reconhece como legítimo. Assistência técnica é alvo constante de golpe por mensagem, e a defesa mais barata é o cliente saber que a loja só fala por um número. Nunca use o celular pessoal de um técnico — quando ele sai, o histórico das OS sai junto.

Como o meu sistema de OS entra nisso?

Se ele roda código próprio, chama a API direto: uma requisição na abertura da OS, outra quando o laudo fica pronto, outra quando o status vira "pronto para retirada". Se é fechado, leia os dados por fora — relatório, banco, planilha — e dispare dali. O que a API precisa saber é sempre o mesmo: telefone e texto.

O fluxo da OS, da bancada à retirada

Como funciona o fluxo de uma OS avisada por WhatsApp do começo ao fim?

Cinco etapas: (1) o aparelho entra na bancada e o cliente recebe o protocolo com o prazo do laudo; (2) sai o laudo e o orçamento com botões de aprovar, recusar e falar com o técnico; (3) se o prazo mudar, ele é reavisado; (4) quando fica pronto, recebe o valor final e o que trazer; (5) se não buscar, entra a régua de retirada, escalonada e registrada.

1. O que enviar quando o aparelho entra na bancada?

O protocolo, o aparelho identificado, o defeito como o cliente relatou e o prazo do laudo. E uma frase que evita discussão: ainda não há orçamento, o que existe é previsão de diagnóstico. Expectativa mal ancorada aqui vira cobrança amanhã. Se a loja cobra taxa de laudo quando o cliente recusa o reparo, é aqui que isso precisa estar escrito, porque foi agora que ele assinou o termo de recebimento.

2. Como mandar o laudo e o orçamento com botões?

O laudo em linguagem que o cliente entende — o que o técnico encontrou, não o código da peça —, o valor, o prazo do reparo e a garantia do serviço. Três botões resolvem o caso: aprovar, não consertar, falar com o técnico. O terceiro existe porque parte dos clientes não recusa por preço, recusa por dúvida. E quem recusa precisa ler, na mesma mensagem, que o aparelho fica disponível para retirada e por quanto tempo. 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.

3. O que fazer quando o prazo do reparo muda?

Reavisar. Peça sob encomenda que não chegou, fornecedor atrasado, reparo mais complexo do que o laudo apontou: o cliente aceita prazo novo, não aceita silêncio. A regra é curta — reavisar prazo é obrigação, narrar cada etapa interna é ruído. Ele não precisa saber que a placa foi para o teste de bancada. Precisa da data nova e do motivo, em uma frase.

4. Como avisar que o aparelho está pronto para retirada?

Valor final, horário da loja, o que trazer (comprovante do protocolo e documento com foto) e o lembrete de que o aparelho será testado com o cliente presente, antes de sair do balcão. Esse teste na frente do cliente é o que fecha a garantia sem discussão, e dizer isso na mensagem já reduz o retorno de "cheguei em casa e não funcionava".

5. Como funciona a régua de retirada quando ninguém vem buscar?

Escalonada, com espaçamento crescente e tom mudando a cada degrau: um aviso poucos dias depois de pronto, outro por volta de dez dias citando o prazo de guarda combinado, e um terceiro perto do fim desse prazo, em tom formal. Cada envio guarda o identificador da mensagem, e é esse registro que transforma a régua em prova de tentativa de contato.

A régua de retirada: o aparelho pronto que ninguém busca

Quantas vezes devo avisar o cliente de que o aparelho está pronto?

Três, espaçadas e diferentes entre si. A primeira é um lembrete simples. A segunda, por volta de dez dias, repete o valor e cita o prazo de guarda. A terceira, perto do fim do prazo, é formal e registra que a loja tentou. Mais do que isso vira insistência, e insistência custa denúncia.

A régua não é disparo em lote sobre a lista de OS antigas. É uma rotina diária que calcula, para cada aparelho pronto, quantos dias se passaram, e envia quem cai no degrau daquele dia. Aparelho retirado sai da régua no mesmo instante.

régua de retirada escalonada — Node
// retirada.js — roda uma vez por dia, às 10h
const API = "https://api.zapon.dev";
const TOKEN = process.env.ZAPON_TOKEN;

async function enviarTexto(phone, body) {
  const r = await fetch(`${API}/chat/send/text`, {
    method: "POST",
    headers: { "token": TOKEN, "Content-Type": "application/json" },
    body: JSON.stringify({ Phone: phone, Body: body })
  });
  const json = await r.json();
  if (!r.ok || !json.success) throw new Error(json.error || `HTTP ${r.status}`);
  return json.data.Id;
}

// degraus da régua: dias desde que a OS ficou pronta -> texto do aviso
const DEGRAUS = {
  3: (os) => `${os.cliente}, o seu ${os.aparelho} (OS ${os.numero}) está pronto e testado.\n` +
              `Valor na retirada: R$ ${os.valor}. Atendemos de segunda a sexta, das 9h às 18h.`,
  10: (os) => `${os.cliente}, o seu ${os.aparelho} da OS ${os.numero} continua aqui, pronto desde ${os.prontoEm}.\n` +
               `Valor: R$ ${os.valor}. Combinamos guarda de ${os.diasGuarda} dias no termo de recebimento.`,
  25: (os) => `${os.cliente}, terceiro aviso sobre a OS ${os.numero} (${os.aparelho}), pronta desde ${os.prontoEm}.\n` +
               `O prazo de guarda combinado termina em ${os.fimDaGuarda}. Procure a loja ou responda por aqui.`
};

const pausa = (ms) => new Promise((r) => setTimeout(r, ms));
const diasDesde = (d) => Math.floor((Date.now() - new Date(d)) / 86400000);

for (const os of await ordensProntas()) {
  if (os.status !== "pronto" || os.retiradoEm || os.cliente.optOut) continue;  // já buscou, já saiu

  const degrau = diasDesde(os.prontoEm);
  const montar = DEGRAUS[degrau];
  if (!montar) continue;                                // só dispara no dia exato do degrau
  if (await jaAvisado(os.id, degrau)) continue;          // rodou 2x hoje? manda uma só

  try {
    const id = await enviarTexto(os.cliente.telefone, montar(os));
    await registrarTentativa(os.id, degrau, id);          // o Id é a prova do aviso
  } catch (e) {
    await registrarFalha(os.id, degrau, String(e));       // vira tarefa do balcão
  }
  await pausa(5000);                                    // não despeje a prateleira de uma vez
}

Como registrar cada tentativa de contato?

Guardando o Id devolvido em cada envio, junto do número da OS, do degrau e do horário. Serve para duas coisas. A operacional: rodar a rotina duas vezes no mesmo dia não duplica a mensagem, e o balcão responde "avisamos nos dias 12, 19 e 3" olhando um campo. E a que importa quando o assunto esquenta — a mensagem enviada, com data e conteúdo, é registro de que a loja tentou contato antes de qualquer providência.

Quando parar de insistir e o que fazer com o aparelho abandonado?

Pare no terceiro aviso. Depois dele o caso deixa de ser rotina automática e vira decisão de gestão: telefonar, mandar carta, escalar para o dono. Mensagem semanal sobre o mesmo aparelho não aumenta a chance de retirada e aumenta a de o número ser denunciado. E o que a loja pode fazer com aparelho não retirado depende do termo de recebimento assinado na entrada — prazo de guarda, aviso prévio e consequência precisam estar lá. Esta página não dá orientação jurídica; ela resolve o passo anterior, que é garantir aviso repetido e registrado.

Os endpoints que a assistência usa na prática

Quais endpoints da API do zapon uma assistência técnica precisa?

Três dão conta do fluxo: POST /chat/send/text para protocolo, prazo e régua de retirada, POST /chat/send/buttons para o orçamento respondido com um toque e POST /user/check para conferir telefones de OS antigas. Todos usam a base https://api.zapon.dev e o header token. São 49 endpoints publicados, mas a OS vive nesses três.

A autenticação é um header só, token: não é Authorization, não é Bearer, não há OAuth. Trate-o como a chave do cofre — quem tem o token envia mensagem em nome da loja, e é isso que um golpista precisaria para parecer legítimo.

Como enviar o aviso de entrada na bancada pela API?

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

entrada na bancada — cURL
curl -X POST https://api.zapon.dev/chat/send/text \
  -H "token: SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Phone": "5511999999999",
    "Body": "Marcelo, recebemos o seu aparelho.\n\nOS: 9218\nAparelho: notebook, série 8QK4T21\nDefeito relatado: não liga, sem sinal de carga\nPrazo do laudo: até 21/09\n\nAinda não há orçamento — o valor só sai depois do diagnóstico na bancada. Assim que o laudo ficar pronto, enviamos por aqui. Este é o único número da loja: nunca pedimos senha nem pagamento por outro canal."
  }'

A resposta traz o identificador da mensagem no WhatsApp:

resposta da API
{
  "code": 200,
  "success": true,
  "data": {
    "Details": "Sent",
    "Id": "7A41C9D0E2B84F13A6C5D8901E7B4432",
    "Timestamp": "2026-09-18T10:04:31-03:00"
  }
}

Grave esse Id no histórico da OS. Ele prova qual mensagem saiu e em que momento, e é o que impede reenvio duplicado quando a rotina roda de novo.

Como oferecer aprovar, não consertar e falar com o técnico em botões?

O endpoint /chat/send/buttons envia botões de resposta rápida. Cada um carrega um id definido por você, e é ele que volta no webhook. Coloque o número da OS aí dentro: a resposta chega amarrada à ordem certa, sem casar telefone e sem interpretar texto livre.

orçamento do reparo — botões
POST https://api.zapon.dev/chat/send/buttons
token: SEU_TOKEN

{
  "Phone": "5511999999999",
  "Body": "Marcelo, o laudo da OS 9218 ficou pronto. O problema é a placa de carga, que queimou; a bateria está boa.\n\nReparo: R$ 380 (peça e mão de obra)\nPrazo: 4 dias úteis após a aprovação\nGarantia do serviço: 90 dias sobre a peça trocada\n\nSe preferir não consertar, sem problema: o aparelho fica disponível para retirada por 30 dias, com a taxa de laudo de R$ 60.",
  "Footer": "Assistência Exemplo — OS 9218",
  "Buttons": [
    { "id": "os9218|aprovar", "text": "Aprovar" },
    { "id": "os9218|recusar", "text": "Não consertar" },
    { "id": "os9218|falar",   "text": "Falar com técnico" }
  ]
}

O rótulo do botão é curto por natureza do WhatsApp — até vinte caracteres. Toda a informação que sustenta a decisão vai no Body. Se precisar de mais opções, como reparo completo e reparo parcial, o /chat/send/list entrega um menu em lista.

Como conferir os telefones das OS antigas antes da primeira régua?

Antes de rodar a régua em cima do estoque parado, limpe a base: cadastro de assistência acumula telefone fixo, número antigo e dígito faltando de OS de dois anos atrás. O POST /user/check recebe uma lista e diz quais têm conta no WhatsApp — os que não têm viram tarefa de telefone, não de mensagem.

checar telefones das OS antigas — cURL
curl -X POST https://api.zapon.dev/user/check \
  -H "token: SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "Phone": ["5511999999999", "5511888888888"] }'

// resposta
{ "code": 200, "success": true, "data": { "Users": [
  { "Query": "5511999999999", "IsInWhatsapp": true,  "JID": "[email protected]" },
  { "Query": "5511888888888", "IsInWhatsapp": false, "JID": "" }
] } }

São 13 formas de envio ao todo — 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, "digitando", marcar como lido e histórico. Fora do trio principal, os úteis aqui são imagem, para a foto da peça queimada junto do laudo, e documento, para o PDF da OS e do termo de garantia.

A resposta do cliente: webhook, regra e ação

Como recebo no meu sistema a aprovação do orçamento?

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 no número vira 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 de OS. A API não sabe o que é uma ordem de serviço; sabe que uma mensagem chegou.

Qual é o formato do evento de mensagem recebida?

O corpo traz o tipo do evento e a mensagem completa. Assim chega quem respondeu por texto:

webhook — mensagem recebida
{
  "type": "Message",
  "event": {
    "Info": {
      "ID": "3EB0A91C77D45B2E8F60",
      "Chat": "[email protected]",
      "Sender": "[email protected]",
      "IsFromMe": false, "IsGroup": false,
      "PushName": "Marcelo Prado",
      "Timestamp": "2026-09-21T15:47:02-03:00"
    },
    "Message": { "conversation": "pode consertar" }
  }
}

// quando ele toca num botão, muda só o bloco Message:
    "Message": { "buttonsResponseMessage": {
      "selectedButtonID": "os9218|aprovar",
      "Response": { "SelectedDisplayText": "Aprovar" }
    } }

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 da loja envia também gera evento, com IsFromMe igual a true: ignore, ou o balconista respondendo um cliente dispara a sua automação.

Como gravar a aprovação e agendar a retirada de quem recusou?

A aprovação precisa de carimbo de tempo — é ela que autoriza abrir o aparelho e comprar a peça. A recusa precisa de outra coisa: colocar a OS na fila de retirada, porque aquele aparelho vira prateleira no minuto seguinte. E qualquer mensagem que peça ou ofereça dado sensível sai do fluxo automático e vai para uma pessoa.

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 loja 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();

  // dado sensível nunca entra na automação: senha, desbloqueio, código, pagamento
  const SENSIVEL = /senha|pin|desbloqueio|padr[ãa]o|c[óo]digo|pix|cart[ãa]o/;
  if (SENSIVEL.test(texto)) return filaDoBalcao(telefone, texto, "sensivel");

  const os = botao ? await buscarOS(botao.split("|")[0].replace("os", ""))
                  : await osAbertaPorTelefone(telefone);
  if (!os) return filaDoBalcao(telefone, texto, "sem os");

  const acao = botao ? botao.split("|")[1]
    : /^(aprovo|aprovado|pode consertar|pode fazer)$/.test(texto) ? "aprovar"
    : /^(n[ãa]o consertar|n[ãa]o compensa|deixa pra l[áa])$/.test(texto) ? "recusar" : null;

  if (acao === "aprovar") {
    await registrarAprovacao(os.id, {              // carimbo de tempo é o que vale depois
      canal: "whatsapp", telefone,
      evento: info.ID, em: info.Timestamp, valor: os.orcamento
    });
    await moverParaFila(os.id, "em_reparo");
    return enviarTexto(telefone,
      `Orçamento aprovado, obrigado. Prazo de ${os.prazoDias} dias úteis a partir de hoje. Avisamos por aqui quando estiver pronto.`);
  }

  if (acao === "recusar") {
    await registrarRecusa(os.id, { evento: info.ID, em: info.Timestamp });
    await agendarRetirada(os.id, 30);              // entra na régua de retirada
    return enviarTexto(telefone,
      `Certo, não vamos consertar. O aparelho fica disponível para retirada por 30 dias, de segunda a sexta, das 9h às 18h. Taxa de laudo: R$ ${os.taxaLaudo}.`);
  }

  return filaDoBalcao(telefone, texto, "falar com tecnico"); // o resto é assunto de gente
});

E quando o cliente escreve qualquer outra coisa?

Ele vai escrever, e quase sempre é dúvida técnica: "vai perder minhas fotos?", "a peça é original?". Não responda isso automaticamente — pergunta técnica respondida errado por robô custa mais caro que a demora. O que a automação não reconhecer vira pendência com telefone e texto, e o técnico responde no próprio WhatsApp da loja. O papel da automação é sinalizar quem espera resposta, não conduzir o atendimento.

Dados dentro do aparelho: o que a mensagem nunca pode pedir

Por que a mensagem da assistência exige um cuidado que outros ramos não exigem?

Porque o aparelho na sua bancada tem a vida do cliente dentro: fotos, mensagens, contas de banco, senhas salvas. Isso muda o que a loja pode escrever e o que nunca pode pedir. Senha, PIN, padrão de desbloqueio e código recebido por SMS não trafegam por mensagem — em nenhuma hipótese, nem "só para testar".

A regra prática não tem exceção: desbloqueio se combina presencialmente, com o cliente digitando ele mesmo no balcão. Pedir por escrito cria três problemas de uma vez: a senha fica gravada numa conversa que várias pessoas da loja leem, a assistência passa a responder por tudo o que acontecer naquela conta, e o cliente aprende que "a assistência pede senha por mensagem" — o roteiro exato do golpe que ele vai receber depois.

Como escrever o aviso de retirada sem virar isca de golpe?

O golpe mais comum contra cliente de assistência é uma mensagem de outro número dizendo que o aparelho está pronto e pedindo pagamento antecipado por PIX. Ele funciona porque copia a linguagem da loja. Três hábitos derrubam a eficácia dele:

Quem consegue ler a conversa depois da mensagem enviada?

Ela fica no WhatsApp da loja: quem tem acesso ao aparelho ou aos aparelhos conectados vê o histórico inteiro, com endereço, valor e número de série de todo mundo. Isso merece o cuidado da chave da loja — bloqueio de tela e retirada dos aparelhos conectados quando alguém deixa a equipe. O mesmo vale para o texto que você guardar no banco.

Consentimento, horário e uso responsável

Posso mandar mensagem para toda a base de clientes antigos?

Para falar de uma OS que aquele cliente abriu, sim: é comunicação de serviço, ele deixou o telefone para isso. Campanha de "traga seu aparelho antigo" e oferta de acessório são marketing, e exigem consentimento registrado e descadastro que funciona. Misturar as duas no mesmo canal transforma o número da loja num número denunciado.

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 com boas práticas: falar de OS com quem tem OS, manter volume e ritmo compatíveis com uma assistência de verdade, parar no terceiro aviso de retirada, responder quem responde e respeitar quem pediu para sair. 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 uma assistência com um número?

R$ 27 por mês por número conectado, sem cobrança por mensagem: o valor é o mesmo se a loja mandar 40 ou 4.000 mensagens. A conta tem cota de 300 mensagens diárias por número, teto alto para o vaivém de ordens de serviço da bancada e uma proteção contra o volume que faz o WhatsApp bloquear. O teste é de 14 dias sem cartão e a contagem só começa na primeira conexão — dá para criar a conta, integrar com a sua OS e só depois conectar o número.

Essa previsibilidade pesa mais aqui do que parece. Uma OS bem tratada gera de cinco a sete mensagens: entrada, laudo, mudança de prazo, pronto e até três avisos de retirada. Com cobrança por mensagem, o cálculo vira "vale a pena mandar o terceiro aviso?", e a resposta racional é cortar justamente o aviso que esvazia a prateleira.

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 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 — o que o registrarFalha fez — e faça alguém olhar essa lista todo dia. Aviso de retirada que não saiu precisa virar tarefa, não silêncio.

Perguntas frequentes

Como aviso o cliente da garantia do serviço pelo WhatsApp?

Escreva a garantia em duas mensagens do fluxo: no orçamento, para pesar na decisão de aprovar, e no aviso de aparelho pronto, para ficar registrada antes da retirada. Diga o prazo, o que está coberto e o que não está — peça trocada costuma ter cobertura diferente do resto do aparelho. Como a conversa fica gravada com data, ela vira a referência que o balcão consulta quando o cliente volta meses depois.

A régua de retirada resolve o problema do aparelho abandonado?

Resolve a maior parte, que é esquecimento, e organiza o resto. O que ela garante é aviso repetido, espaçado e registrado, com o identificador de cada mensagem guardado na OS. O que ela não faz é decidir o destino do aparelho não retirado: isso depende do termo de recebimento assinado na entrada e da orientação do advogado da loja. Esta página não dá orientação jurídica.

E quando a peça não tem previsão de chegada?

Avise assim mesmo, dizendo que não há previsão e quando você vai reavisar. Silêncio é pior do que prazo ruim: o cliente sem notícia liga, cobra e desconfia. Combine uma data de retorno mesmo sem data de chegada, e ofereça a saída honesta de cancelar o reparo e retirar o aparelho como está.

O cliente aprovou pelo botão e depois contestou o valor. O que fazer?

Mostre o registro. Quando a aprovação chega por botão, o webhook entrega o identificador da OS, o telefone, o horário e o texto exato do botão tocado, e o seu sistema grava tudo com carimbo de tempo. Some a isso a mensagem original do orçamento, que trazia valor, prazo e garantia por escrito na mesma conversa. Por isso o valor vai no corpo da mensagem, e não só no rótulo do botão.

Posso pedir a senha do aparelho por mensagem para testar o reparo?

Não. Senha, PIN, padrão de desbloqueio e código recebido por SMS não trafegam por mensagem em nenhuma hipótese. O desbloqueio se combina presencialmente, com o cliente digitando ele mesmo no balcão. Pedir por escrito deixa a senha gravada numa conversa que várias pessoas leem, joga para a loja a responsabilidade pelo que acontecer naquela conta e ensina o cliente a atender o roteiro do golpista.

Um cliente recebeu mensagem falsa se passando pela loja. Como reagir?

Responda pela conversa que já existe, confirmando que aquela cobrança não é da loja, e reforce a regra: valor e forma de pagamento só valem pelo número oficial, e a loja nunca pede PIX antecipado nem senha por mensagem. Depois, mova o aviso para o começo do fluxo, na mensagem de entrada na bancada, dizendo qual é o único número da loja. Cliente avisado antes não cai.

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

R$ 27 por mês por número conectado, sem cobrança por mensagem, com cota de 300 mensagens por dia por número — mais do que a fila de OS de uma assistência movimentada consome, e o bastante para segurar os picos que colocam o número em risco. 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 integrar com o seu sistema de OS antes de o relógio começar a correr.

Outros casos de uso

Esvazie a prateleira dos aparelhos que ninguém veio buscar.

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 mande o primeiro orçamento com botões hoje.