Documentação da API
A API REST do Giro Connect permite integrar WhatsApp ao seu sistema. Gerencie sessões, envie mensagens, configure webhooks e automatize fluxos de comunicação.
Autenticação via API Key
Chaves com escopos granulares
Webhooks em Tempo Real
Eventos com assinatura HMAC
Rate Limits por Plano
30 msg/min por sessão
Autenticação
A API utiliza tokens JWT para usuários do dashboard e API Keys (prefixo sk_) para acesso programático.
API Key
Envie a chave no header Authorization: Bearer sk_.... Crie chaves no dashboard com escopos como messages:send, contacts:read.
# Autenticação com API Key curl -X GET "https://api.giro.aara.com.br/api/v1/usage" \ -H "Authorization: Bearer sk_abc123_sua_chave_aqui"
JWT (Dashboard)
Faça login para obter um token JWT. Envie no header Authorization: Bearer <token>.
/api/v1/auth/signinAutenticar no dashboard
Body:
{
"email": "user@example.com",
"password": "sua_senha"
}Response:
{
"access_token": "eyJhbGciOi...",
"token_type": "bearer"
}Mensagens
Envie e consulte mensagens WhatsApp. Suporta texto, imagens, documentos, áudio, vídeo e localização.
/api/v1/messagesEnviar mensagem de texto
Body:
{
"session_id": "uuid-da-sessao",
"to": "5511999999999",
"type": "text",
"text": "Olá! Mensagem enviada pela API.",
"idempotency_key": "idemp-unico-para-evitar-duplicatas"
}Response:
{
"id": "uuid-da-mensagem",
"status": "queued",
"direction": "outbound",
"created_at": "2026-06-25T10:00:00Z"
}/api/v1/messages?conversation_id=uuid&skip=0&limit=50Listar mensagens de uma conversa
Response:
{
"items": [
{
"id": "uuid",
"body_text": "Olá!",
"direction": "outbound",
"status": "sent",
"created_at": "2026-06-25T10:00:00Z"
}
],
"total": 1,
"skip": 0,
"limit": 50
}/api/v1/messages/{message_id}Obter detalhes de uma mensagem
Idempotência
Envie um idempotency_key único para evitar duplicatas. O sistema retorna 409 se a chave já foi processada.
Sessões WhatsApp
Gerencie conexões WhatsApp via QR Code. Cada organização pode ter múltiplas sessões (limite por plano).
/api/v1/sessionsCriar nova sessão WhatsApp
Body:
{
"display_name": "Meu WhatsApp",
"provider": "waha"
}Response:
{
"id": "uuid",
"status": "created",
"provider_session_id": "giro_abc123_Meu WhatsApp",
"created_at": "2026-06-25T10:00:00Z"
}/api/v1/sessions/{session_id}/qrObter QR Code para conexão
Response:
{
"qr_code": "data:image/png;base64,...",
"expires_at": "2026-06-25T10:05:00Z"
}/api/v1/sessions/{session_id}/suspendSuspender sessão (bloqueia envio)
/api/v1/sessions/{session_id}/banBanir sessão e bloquear número
/api/v1/sessions/{session_id}Remover sessão
/api/v1/sessions/blocklistListar números bloqueados
/api/v1/sessions/blocklistBloquear um número
Body:
{
"phone_e164": "5511999999999",
"reason": "Spam"
}Contatos
Gerencie contatos com opt-in/opt-out. Contatos que optaram por sair não recebem mensagens.
/api/v1/contactsCriar ou atualizar contato (upsert)
Body:
{
"phone_e164": "5511999999999",
"name": "Maria Silva",
"email": "maria@example.com",
"tags": ["cliente", "vip"]
}/api/v1/contactsListar contatos
/api/v1/contacts/{contact_id}Atualizar dados do contato
/api/v1/contacts/{contact_id}/opt-inRegistrar opt-in do contato
/api/v1/contacts/{contact_id}/opt-outRegistrar opt-out (bloqueia envio)
Automações
Crie automações baseadas em templates prontos para resposta automática, lembretes, captura de leads e mais.
/api/v1/automations/templatesListar templates disponíveis
/api/v1/automationsCriar automação a partir de template
Body:
{
"template_id": "uuid-do-template",
"name": "Resposta de Cardápio",
"config": {
"keywords": ["cardapio", "menu"],
"reply_text": "Confira nosso cardápio: https://exemplo.com/cardapio"
}
}/api/v1/automations/{automation_id}/activateAtivar automação
/api/v1/automations/{automation_id}/pausePausar automação
Campanhas
Dispare mensagens em massa para contatos segmentados com agendamento e rastreamento por destinatário.
/api/v1/campaignsCriar campanha de disparo
Body:
{
"session_id": "uuid-da-sessao",
"name": "Promoção de Junho",
"message_template": "Olá {{nome}}, temos uma oferta especial!",
"audience_filter": { "tags": ["cliente"] },
"scheduled_at": "2026-07-01T09:00:00Z"
}/api/v1/campaigns/{campaign_id}/scheduleAgendar campanha
/api/v1/campaigns/{campaign_id}/cancelCancelar campanha
Webhooks
Receba eventos em tempo real. Cada webhook é assinado com HMAC-SHA256 para verificação de integridade.
Verificação de Assinatura
Todo webhook inclui os headers X-Giro-Signature,X-Giro-Timestamp eX-Giro-Event-Type.
/api/v1/webhooksCriar endpoint de webhook
Body:
{
"url": "https://meusistema.com/webhooks/giro",
"environment": "test",
"subscribed_events": [
"message.received",
"message.delivered",
"session.connected"
]
}/api/v1/webhooksListar webhooks configurados
/api/v1/webhooks/{webhook_id}Atualizar webhook
/api/v1/webhooks/{webhook_id}Remover webhook
Exemplo: Verificar webhook em Python
import hashlib, hmac
def verify_webhook(payload: bytes, signature: str, secret: str, timestamp: str) -> bool:
signing_content = f"{timestamp}.{payload.decode()}"
expected = hmac.new(
secret.encode(),
signing_content.encode(),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected, signature)Rate Limits
Limites configurados por organização, chave de API e sessão para evitar abuso.
Mensagens
30/min
Por sessão WhatsApp
API Requests
100/min
Por organização
Autenticação
10/min
Por IP
Quando o limite é excedido, a API retorna
retry_after_seconds.SDKs
Bibliotecas para integrar o Giro Connect na sua stack.
JavaScript
npm install giro-connectPython
pip install giro-connectPHP
composer require giro/connectPrecisa de ajuda? Acesse o Swagger UI interativo ou o Dashboard Developer.
© 2026 Giro Connect