Este manual explica como integrar a API WhatsApp SaaS com aplicações Delphi para enviar mensagens.
TIdHTTP (Indy) ou TRESTClient (FireDAC)Todas as requisições devem incluir o token da instância no header:
X-API-Key: seu-token-da-instancia
ou
Authorization: Bearer seu-token-da-instancia
https://seu-dominio.com
ou em desenvolvimento:
http://localhost:3000
POST /client/sendMessage/{sessionId}
Content-Type: application/json
X-API-Key: seu-token-da-instancia
{
"chatId": "5511999999999@c.us",
"contentType": "string",
"content": "Olá! Esta é uma mensagem de teste."
}
chatId: Número do WhatsApp com código do país + @c.us (ex: 5511999999999@c.us)contentType: Tipo de conteúdo (sempre "string" para texto)content: Texto da mensagem{
"success": true,
"message": {
"id": {
"fromMe": true,
"remote": "5511999999999@c.us",
"id": "3EB0C767F26BXXXXXX"
},
"body": "Olá! Esta é uma mensagem de teste.",
"type": "chat",
"timestamp": 1234567890
}
}
{
"success": false,
"message": "Mensagem de erro aqui"
}
POST /client/sendMessage/{sessionId}
{
"chatId": "5511999999999@c.us",
"contentType": "MessageMedia",
"content": {
"mimetype": "image/jpeg",
"data": "base64-encoded-image-data",
"filename": "imagem.jpg"
}
}
data{
"chatId": "5511999999999@c.us",
"contentType": "MessageMedia",
"content": {
"mimetype": "application/pdf",
"data": "base64-encoded-file-data",
"filename": "documento.pdf"
}
}
{
"chatId": "5511999999999@c.us",
"contentType": "MessageMediaFromURL",
"content": "https://exemplo.com/imagem.jpg"
}
{
"chatId": "5511999999999@c.us",
"contentType": "Location",
"content": {
"latitude": -23.5505,
"longitude": -46.6333,
"description": "São Paulo, SP"
}
}
GET /session/status/{sessionId}
X-API-Key: seu-token-da-instancia
{
"success": true,
"state": "CONNECTED",
"message": "session_connected"
}
Estados possíveis:
CONNECTED: Conectado e prontoCONNECTING: ConectandoOPENING: AbrindoPAIRING: PareandoGET /client/getContacts/{sessionId}
X-API-Key: seu-token-da-instancia
GET /client/getChats/{sessionId}
X-API-Key: seu-token-da-instancia
POST /client/isRegisteredUser/{sessionId}
X-API-Key: seu-token-da-instancia
Body:
{
"contactId": "5511999999999@c.us"
}
200: Sucesso400: Requisição inválida401: Não autenticado (token inválido)403: Acesso negado404: Sessão não encontrada ou não conectada422: Dados inválidos500: Erro interno do servidorsession_id da sua instância (não o ID numérico)MAX_ATTACHMENT_SIZE (padrão: 10MB)Sempre verifique:
success no JSONmessage para detalhes do erroVeja a pasta demo/delphi/ para exemplos completos de implementação.