Comece aqui
Sua primeira solicitação em quatro etapas
Conecte e ative o WhatsApp para um celular compatível.
Confirme o destinatário com o terminal de verificação de número.
Envie com waonly=yes.
To retrieve received messages: activate collection, call /getwa/synchronisation/, wait for recovery, then call /getwa.
MANDATORY BEFORE RETRIEVING RECEIVED MESSAGES
Request WhatsApp synchronization first.
Before calling /getwa to view received WhatsApp messages, you must request a synchronization window through https://api.smsmobileapi.com/getwa/synchronisation/. This explicit step is required to securely authorize the exchange between WhatsApp and SMSMobileAPI. Wait for recovery, then call /getwa.
Aplicação móvel oficial
A ponte segura entre o telefone, o painel e o API.
As operações de SMS e chamada passam pelo aplicativo oficial SMSMobileAPI instalado em seu telefone conectado. O aplicativo combina o dispositivo com sua conta, sincroniza eventos autorizados e liga a rede móvel ao painel de bordo e REST API.
- Lançamentos assinados distribuídos através das listas oficiais do Google Play e Apple App Store
- Controles de revisão, assinatura e distribuição da plataforma Google e Apple
- Emparelhamento seguro de dispositivo, transporte HTTPS e acesso autenticado API
- Apenas as permissões necessárias para as funcionalidades móveis que activa
WEBHOOK V2 PARA ESTA API
Inscreva‑se apenas nos eventos móveis que seu fluxo de trabalho precisa.
Um destino pode receber tudo, ou você pode separar sistemas de produção, análises e alertas operacionais. Cada evento tem um nome preciso para que sua aplicação possa tratá‑lo de forma previsível.
whatsapp.submittedWhatsApp submetido
Um trabalho de envio de WhatsApp foi criado.
whatsapp.sentWhatsApp enviado
O ambiente WhatsApp conectado confirmou que a mensagem foi enviada.
whatsapp.failedWhatsApp falhou
A operação de envio de WhatsApp falhou.
whatsapp.receivedWhatsApp recebido
Uma mensagem WhatsApp foi recuperada após a conta solicitar sincronização.
whatsapp.voice.transcribedMensagem de voz transcrita
Uma mensagem de voz WhatsApp recuperada e elegível foi convertida em texto utilizável.
Autenticação
Mantenha as credenciais no seu servidor
Use apikey para integrações diretas. As credenciais do cliente OAuth2 estão disponíveis para aplicativos do lado do servidor; solicite um token e envie-o como Autorização: Bearer ACCESS_TOKEN.
Gestão do histórico
Limpar o histórico com segurança: antever, apagar, seguir o progresso
Estes parâmetros de avaliação limpam o histórico de servidor selecionado para a sua chave API, não mensagens em telefones ou serviços externos. Não fornecem apagamento de contas. Nova atividade pode aparecer após a exclusão.
Leia o guia request_id e reteste
Por padrão, registros vinculados ou de processamento permanecem visíveis. Use apenas include_linked=1 se aceitar que integrações ou processamento contínuo podem parar de funcionar.
Como funciona o request_id
- Visualize as contagens com action=preview. Nenhum request_id é necessário e nenhum registro é excluído.
- Gere um request_id exclusivo para uma nova exclusão, por exemplo um UUID. Salve-o antes de enviar o action=delete.
- Para repetições, timeouts ou HTTP 202, reutilize a mesma chave API, endpoint histórico, request_id e include_linked valor. Nunca gerar um novo ID automaticamente após um erro.
- Quando completed=true, a operação está terminada. Reutilizar o ID retorna o mesmo resultado em vez de excluir os registros recém-chegados. Use um novo ID apenas para uma limpeza deliberadamente nova.
request_id identifica sua operação de exclusão, não um SMS individual. Formato permitido: 16–128 letras ASCII, dígitos, hífens ou sublinhados. Um UUID gerado com crypto.randomUUID() é adequado.
A eliminação é feita por lotes. HTTP 202 com continue_required=true exige repetir action=delete após 3 segundos. Não existe um cron em segundo plano. action=status apenas consulta o progresso, mesmo com HTTP 200.
Exemplos de exclusão e de estado
Substitua a amostra request_id com seu próprio valor único antes de começar. As seguintes solicitações de exclusão alteram o histórico real da conta; elas não são pré- visualização.
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"GET também aceita action=preview ou action=delete. POST é recomendado: parâmetros de URL podem vazar no histórico do navegador e registros de servidor. Nunca coloque uma URL de exclusão em um link público, imagem ou pré-retch.
Para POST, envie todos os parâmetros no corpo do formulário ou um objeto JSON, nunca na string de consulta. Parâmetros desconhecidos são rejeitados; os filtros de data ou de celular não são suportados.
Autenticação para os parâmetros do histórico
Use apikey ou o cabeçalho Authorization: Bearer com um token de acesso emitido pelo OAuth2 do SMSMobileAPI. Não envie um refresh token nem uma chave API como token Bearer. Os tokens expirados são recusados.
Quando os escopos são definidos, history:read permite visualização/status e history:delete também permite exclusão. Restrições tanto no token quanto no cliente OAuth. Tokens legados sem escopos mantêm seu acesso à conta existente.
OAuth2 seleciona a chave primária exclusiva API. Se existirem várias chaves primárias, também fornecer apikey para selecionar uma pertencente à conta. Chaves secundárias nunca concedem acesso ao histórico primário de chaves.
Leia a resposta antes de continuar
count_delete é o número cumulativo removido por esta operação. selected_at_start é a seleção inicial; protected_at_start conta os registros excluídos. Use preview.linked_or_processing para contar registros vinculados mesmo quando include_linked=1.
{
"result": {
"error": 0,
"history": "whatsapp-sent",
"action": "delete",
"request_id": "6d54ac58-41f1-4fbc-9a39-6e6c86089451",
"status": "processing",
"completed": false,
"count_delete": 100,
"total_before": 250,
"selected_at_start": 200,
"protected_at_start": 50,
"include_linked": 0,
"continue_required": true,
"message": "Repeat GET or POST with the same request_id and include_linked to continue. Status requests do not run deletion."
}
}- 200 com completed=true: terminado. Uma resposta de 200 visualizações ou status sozinho não prova a conclusão.
- 400 INVALID_REQUEST_ID: verifique o formato. 404 REQUEST_NOT_FOUND: não existe nenhuma operação para este ID, chave API e histórico.
- 401: credenciais inválidas ou expiradas. 403: escopo insuficiente do OAuth ou conta não autorizada.
- 409 HISTORY_BUSY: outra limpeza está em execução; continue-a a partir do cliente original. 409 INCLUDE_LINKED_CONFLICT: restaurar o valor original include_linked.
- 409 OAUTH_ACCOUNT_AMBIGUOUS: fornecer uma chave API pertencente a esta conta.
- 503 ou interrupção da rede: alguns lotes já podem estar concluídos. Verifique a configuração, então tente novamente com o request_id original. Não crie uma operação de substituição automaticamente.
PÓS · GET
Enviar uma mensagem do WhatsApp
https://api.smsmobileapi.com/sendsmsEnvia um texto do WhatsApp ou mídia compatível através do ambiente conectado.
Use-o para destinatários individuais ou um grupo de contatos do painel.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Obrigatório | Sua chave de API; omitir ao usar um token de portador. |
recipients |
telefone | Obrigatório | Código do país mais número, sem + ou 00. |
message |
corda | Obrigatório | Corpo do texto; várias linhas são suportadas. |
waonly |
sim | Obrigatório | Deve ser sim para solicitar entrega somente pelo WhatsApp. |
url_media |
URL HTTPS | Opcional | PDF público, documento, arquivo ou URL JPG/PNG. |
url_media_shorted |
sim | Opcional | Use um URL de download abreviado com visualização de PDF. modo. |
pdf_with_image |
sim | Opcional | Adicione uma visualização de imagem para um PDF. |
encrypt_message |
sim | Opcional | Exigir descriptografia do lado do destinatário. |
contactGroup |
GUID | Opcional | Enviar para todos os contatos em um grupo de painel. |
Exemplo de solicitação
curl -X POST "https://api.smsmobileapi.com/sendsms?waonly=yes" \
-d "apikey=YOUR_API_KEY" \
-d "recipients=191728660" \
--data-urlencode "message=Your order is ready."
Exemplo de resposta
{
"result": {
"error": 0,
"sent": "1",
"id": "MESSAGE_GUID",
"send_with_whatsapp": "1"
}
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- URLs de mídia compatíveis devem ser recursos HTTPS públicos.
- WhatsApp formatação: *negrito*, _itálico_, ~riscado~ e crase triplo monoespaçado.
PÓS · GET
Reenviar uma mensagem do WhatsApp não enviada
https://api.smsmobileapi.com/resendwa/Tenta novamente uma mensagem do WhatsApp que atualmente tem um status de erro.
Use-o após diagnosticar uma falha na entrada de registro do WhatsApp.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Obrigatório | Sua chave de API. |
guid |
corda | Obrigatório | GUID da mensagem com falha. |
Exemplo de solicitação
curl "https://api.smsmobileapi.com/resendwa/?apikey=YOUR_API_KEY&guid=MESSAGE_GUID"
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- Apenas mensagens com falha são elegíveis para reenvio.
PEGAR
Ativar recuperação de entrada
https://api.smsmobileapi.com/getwa/active/Ativa, desativa ou alterna a recuperação de mensagens do WhatsApp.
Activate collection first. Then, before retrieving received messages, you must request synchronization through /getwa/synchronisation/.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Obrigatório | Sua chave de API. |
statut |
0 . . 1 . | Opcional | 1 ativa, 0 desativa, x ou omissão alterna o estado atual. |
Exemplo de solicitação
curl "https://api.smsmobileapi.com/getwa/active/?apikey=YOUR_API_KEY&statut=1"
Exemplo de resposta
{
"success": true,
"read_message_active": 1,
"status_note": "Activated"
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- A recuperação de entrada é desativada por padrão para privacidade.
- Activation alone does not retrieve messages: a synchronization request remains mandatory before using /getwa for newly received activity.
PEGAR
Required: request WhatsApp synchronization
https://api.smsmobileapi.com/getwa/synchronisation/Mandatory security step before retrieving received WhatsApp messages. It opens a time-limited synchronization window.
You must call this endpoint before /getwa whenever you need SMSMobileAPI to check WhatsApp for newly received messages. Wait for recovery, then call /getwa.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Obrigatório | Sua chave de API. |
Exemplo de solicitação
curl "https://api.smsmobileapi.com/getwa/synchronisation/?apikey=YOUR_API_KEY"
Exemplo de resposta
{
"error": "0",
"messages": "synchronized",
"expire_at": "2026-03-11 12:27:00",
"expire_at_unix": "1773232020"
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- A sincronização é apenas para receber mensagens. Não ligue antes de enviar.
- The response returns expire_at and expire_at_unix. Request another synchronization window when you need to collect newer received messages.
- A synchronization request is mandatory to protect the exchange between WhatsApp and SMSMobileAPI.
PEGAR
Recuperar mensagens do WhatsApp
https://api.smsmobileapi.com/getwaReturns received WhatsApp messages that were recovered during a requested synchronization window.
Mandatory prerequisite: activate inbound retrieval, call https://api.smsmobileapi.com/getwa/synchronisation/ first, wait for recovery, then call this endpoint. /getwa does not itself start synchronization.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Obrigatório | Sua chave de API. |
before |
Carimbo de data/hora Unix | Opcional | Retornar registros antes disso timestamp. |
date |
AAAA-MM-DD | Opcional | Retorna registros para uma data. |
message_type |
texto | áudio | Opcional | Filtrar mensagens de texto ou mensagens de áudio convertidas em texto; omitir para ambos. |
Exemplo de solicitação
curl "https://api.smsmobileapi.com/getwa/?apikey=YOUR_API_KEY&message_type=text"
Exemplo de resposta
{
"date": "2026-03-11",
"hour": "12:27:00",
"timestamp": "1773232020",
"number": "19176728660",
"contact": "SMSMobileAPI",
"message": "When will I receive my order?",
"guid": "652fcfc0-12a8-46f5-b5ba-9391135b8b4c"
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑
PEGAR
Verificar um número do WhatsApp
https://api.smsmobileapi.com/whatsapp/checknumber/Verifica se um número de telefone está disponível no WhatsApp.
Use-o antes de enviar para reduzir falhas evitáveis.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Obrigatório | Sua chave de API. |
recipients |
telefone | Obrigatório | Código do país mais número, sem + ou 00. |
Exemplo de solicitação
curl "https://api.smsmobileapi.com/whatsapp/checknumber/?apikey=YOUR_API_KEY&recipients=19176728660"
Exemplo de resposta
{
"contact_found_on_whatsapp": "yes",
"recipients": "19176728660"
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑
PUBLICAR
Criar um token de acesso OAuth2
https://api.smsmobileapi.com/oauth2/tokenTroca credenciais do cliente por um token de portador.
Use-o para integrações de servidor para servidor onde as credenciais de curta duração são preferencial.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
grant_type |
corda | Obrigatório | Deve ser client_credentials. |
client_id |
corda | Obrigatório | ID do cliente do painel. |
client_secret |
corda | Obrigatório | Segredo do cliente do painel. |
Exemplo de solicitação
curl -X POST "https://api.smsmobileapi.com/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- Mantenha o segredo do cliente em seu servidor. Nunca inclua-o no código do celular ou do navegador.
PÓS · GET
Limpar o histórico de mensagens WhatsApp enviadas
https://api.smsmobileapi.com/delete-history-whatsapp-sent/Limpa os registos de servidores das mensagens enviadas do WhatsApp. Ele não apaga mensagens de conversas WhatsApp.
Use a visualização primeiro, verifique as contagens e, em seguida, requeira explicitamente a exclusão. Isto limpa todo o histórico selecionado para a chave API, sem filtros de data, telefone ou mensagem.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Opcional | Necessário sem OAuth2. Com OAuth2, selecione opcionalmente uma chave API pertencente à mesma conta. |
action |
preview | delete | status | Opcional | preview conta sem apagar; delete inicia ou continua a eliminação; status consulta o progresso sem continuar. A API usa delete por defeito; este testador usa preview. |
include_linked |
0 | 1 | Opcional | Padrão 0: manter os registros ligados ou processados. Defina 1 para incluí-los, com risco de quebrar integrações. Mantenha este valor inalterado ao continuar uma exclusão. |
request_id |
corda | Opcional | Obrigatório para delete e status; opcional para preview. Use 16 a 128 letras ASCII, algarismos, hífenes (-) ou sublinhados (_). Crie um ID único por nova eliminação e mantenha-o em todas as tentativas. Não é um ID de mensagem nem uma chave API. |
Exemplo de solicitação
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Exemplos de exclusão e de estado
Substitua a amostra request_id com seu próprio valor único antes de começar. As seguintes solicitações de exclusão alteram o histórico real da conta; elas não são pré- visualização.
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-whatsapp-sent/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"Exemplo de resposta
{
"result": {
"error": 0,
"history": "whatsapp-sent",
"action": "preview",
"total": 120,
"simple": 100,
"linked_or_processing": 20,
"selected": 100,
"include_linked": 0,
"operation_in_progress": false,
"active_include_linked": null
}
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- O exemplo acima é uma pré-visualização, não uma exclusão. As contagens são ilustrativas; a seleção definitiva é fixada quando a exclusão começa.
- include_linked=1 pode interromper GHL, Zapier, automações, cancelar a assinatura de links ou rastreamento de entrega. Nunca ignora a propriedade da conta ou a integridade do armazenamento.
PÓS · GET
Limpar o histórico de mensagens WhatsApp recebidas
https://api.smsmobileapi.com/delete-history-whatsapp-received/Limpa os registros de servidor de mensagens recebidas WhatsApp. Não desconecta WhatsApp ou exclui conversas.
Use a visualização primeiro, verifique as contagens e, em seguida, requeira explicitamente a exclusão. Isto limpa todo o histórico selecionado para a chave API, sem filtros de data, telefone ou mensagem.
Parâmetros
| Nome | Tipo | Requisito | Descrição |
|---|---|---|---|
apikey |
corda | Opcional | Necessário sem OAuth2. Com OAuth2, selecione opcionalmente uma chave API pertencente à mesma conta. |
action |
preview | delete | status | Opcional | preview conta sem apagar; delete inicia ou continua a eliminação; status consulta o progresso sem continuar. A API usa delete por defeito; este testador usa preview. |
include_linked |
0 | 1 | Opcional | Padrão 0: manter os registros ligados ou processados. Defina 1 para incluí-los, com risco de quebrar integrações. Mantenha este valor inalterado ao continuar uma exclusão. |
request_id |
corda | Opcional | Obrigatório para delete e status; opcional para preview. Use 16 a 128 letras ASCII, algarismos, hífenes (-) ou sublinhados (_). Crie um ID único por nova eliminação e mantenha-o em todas as tentativas. Não é um ID de mensagem nem uma chave API. |
Exemplo de solicitação
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=preview" -d "include_linked=0"
Exemplos de exclusão e de estado
Substitua a amostra request_id com seu próprio valor único antes de começar. As seguintes solicitações de exclusão alteram o histórico real da conta; elas não são pré- visualização.
curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -X POST "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
-H "Authorization: Bearer YOUR_OAUTH_ACCESS_TOKEN" \
-d "action=delete" -d "include_linked=0" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"curl -G "https://api.smsmobileapi.com/delete-history-whatsapp-received/" \
--data-urlencode "apikey=YOUR_API_KEY" \
-d "action=status" \
-d "request_id=6d54ac58-41f1-4fbc-9a39-6e6c86089451"Exemplo de resposta
{
"result": {
"error": 0,
"history": "whatsapp-received",
"action": "preview",
"total": 120,
"simple": 100,
"linked_or_processing": 20,
"selected": 100,
"include_linked": 0,
"operation_in_progress": false,
"active_include_linked": null
}
}
Deseja executar esta solicitação?Conecte sua chave de API na parte superior da página para desbloquear o interativo testador.
Chave de conexão ↑- O exemplo acima é uma pré-visualização, não uma exclusão. As contagens são ilustrativas; a seleção definitiva é fixada quando a exclusão começa.
- include_linked=1 pode interromper GHL, Zapier, automações, cancelar a assinatura de links ou rastreamento de entrega. Nunca ignora a propriedade da conta ou a integridade do armazenamento.
Solução de problemas
Erros e novas tentativas seguras
Leia o status HTTP e o campo de erro JSON antes de tentar novamente. Não tente novamente falhas de validação ou autenticação sem primeiro corrigir a solicitação.
| HTTP | Código | O que fazer |
|---|---|---|
| 400 | missing_parameter | Um parâmetro obrigatório está vazio ou ausente. Verifique a tabela de parâmetros do endpoint. |
| 403 | invalid_apikey | A chave de API é desconhecida, expirou ou não está autorizada para o recurso solicitado. |
| 429 | too_many_requests | As solicitações estão chegando muito rapidamente. Aguarde e tente novamente com espera exponencial. |
| 500 | server_error | O serviço não pôde concluir a solicitação. Mantenha a resposta e entre em contato com o suporte se ela persistir. |
Precisar de ajuda?
Traga o contexto da solicitação, não seus segredos.
Compartilhe o endpoint, o carimbo de data/hora, o status HTTP e a resposta limpa. Nunca inclua chaves de API, tokens ou conteúdo de mensagens privadas.


