URL base
https://api.flowella.io/v1/messages.
Anteriormente a API estava no host da app em
https://app.flowella.io/api/v1/.... Os pedidos a esse caminho legado são redirecionados permanentemente (308) para https://api.flowella.io/v1/..., preservando o método e o corpo — pelo que as integrações existentes continuam a funcionar. Atualize o seu URL base assim que possível para evitar o salto adicional.Autenticação
Cada pedido necessita de uma chave API no cabeçalhoAuthorization:
Criar uma chave
É necessário o papel de Proprietário ou Administrador para gerir as chaves da API.- Ir para Configurações → Chaves API na aplicação Flowella.
- Clique em Criar chave e dê-lhe um nome memorável.
- Copie a chave uma vez - ela é mostrada apenas no momento da criação.
Verificando uma chave
Clique no endpoint ping para confirmar que uma chave é válida:200 OK com { "ok": true, "organizationId": "…" } significa que está autenticado.
Erros
Todos os erros são devolvidos num envelope consistente:
O campo
error.code é estável e seguro para ser ativado programaticamente. O error.message é legível por humanos e pode mudar.
Limites de taxa
As chaves de API têm um limite de taxa por organização. Se exceder o limite, receberá um429 com o código RATE_LIMITED e a mensagem Too many requests. Quando presente, o cabeçalho de resposta Retry-After indica quantos segundos deve esperar. Recue e tente novamente com um atraso exponencial.
Se estiver a executar grandes envios em massa, prefira POST /v1/templates/send com o parâmetro throttlePerHour - o Flowella impõe o estrangulamento do lado do servidor, pelo que não precisa de acelerar os pedidos.
Chaves de idempotência
Os envios de modelos em massa são assíncronos. OPOST /v1/templates/send valida o pedido, coloca-o numa fila de forma durável e devolve imediatamente 202 Accepted:
Idempotency-Key (até 200 caracteres) que identifique de forma única cada lote:
id da tarefa original em vez de criarem um novo envio. Pode repetir um pedido em segurança após um timeout ou erro de rede sem enviar mensagens a ninguém duas vezes.
Se omitir o cabeçalho, o Flowella deriva uma chave a partir do corpo do pedido. Um lote idêntico submetido duas vezes em rápida sucessão não é, portanto, enviado em duplicado. Uma chave explícita é ainda mais segura, porque qualquer alteração ao corpo (mesmo reordenar os destinatários) produz uma nova chave derivada.
Paginação
Os endpoints de lista (/conversations, /contacts, /templates) utilizam paginação de cursor:
- Passar
limit(1-100, predefinição 25) e umcursoropcional. - A resposta contém
itemse, quando há mais resultados, umnextCursor. - Passar
nextCursorde volta como o parâmetrocursorpara buscar a próxima página. - Quando o
nextCursorestiver ausente, o utilizador chegou ao fim.
Data e hora
Todos os carimbos de data/hora são cadeias de caracteres ISO 8601 em UTC (por exemplo,2025-01-15T14:30:00.000Z). Nos casos em que a API aceita datas, tanto a data apenas (2025-01-15) como o ISO 8601 completo são coagidos do lado do servidor.
Números de telefone
Passe números de telefone no formato E.164 (+15551234567) sempre que possível. O Flowella normalizará as variações comuns do lado do servidor, mas o E.164 é mais seguro.
Canais
Muitos endpoints aceitam umwhatsappChannelId. Se a sua organização tiver um único canal e o omitir, o Flowella utiliza o seu canal predefinido. Se tiver vários canais, passe o ID explicitamente para evitar enviar do remetente errado.
Para o padrão URL completo e troca de canal, veja Multi-channel.

