Webhooks permitem que o vosso sistema reaja a eventos do Mivicall sem precisar de fazer polling. Quando algo acontece (marcação criada, paciente atende, chamada termina), fazemos POST ao vosso URL com o payload.Documentation Index
Fetch the complete documentation index at: https://docs.mivicall.com/llms.txt
Use this file to discover all available pages before exploring further.
Configurar
Dashboard →Settings → Integrações → Webhooks:
- Click “Add endpoint”
- Cola o URL do vosso receiver
- Selecciona quais eventos queres receber (lista em Eventos)
- Mivicall gera um secret (
whsec_...) — mostrado uma única vez - Save → endpoint fica activo
Anatomia de um webhook
Boas práticas
Verificar signature
Sempre validar
X-Mivicall-Signature antes de processar. Ver Verificação de signature.Responder 2xx rapidamente
Devolvam HTTP 200 em menos de 5 segundos. Se o processamento é demorado, façam ack imediato e processem async (queue/worker).
Idempotência via Event-Id
Cada evento tem
X-Mivicall-Event-Id único. Guardem-no — se chegar o mesmo ID duas vezes (retry da nossa parte), ignorem o duplicado.Retry policy
Se o vosso endpoint responder não-2xx ou timeout (>10s):| Tentativa | Quando |
|---|---|
| 1 | imediato |
| 2 | +30s |
| 3 | +5 min |
| 4 | +30 min |
| 5 | +2 horas |
| 6 | +12 horas |
failing. Notificamos a clínica via dashboard + email. Se 24h sem corrigir → desactivamos o endpoint.
Ordem dos eventos
Não é garantida em sentido estrito — webhooks podem chegar fora de ordem (rede, retries). Sempre usemdata.appointment.updatedAt ou createdAt para ordenar do vosso lado.
Mais robusto: ao receber evento, façam GET /v1/appointments/{id} para confirmar o estado actual antes de aplicar.
Testar localmente
Para desenvolvimento, podem usar:- ngrok:
ngrok http 3000→ URL público que aponta paralocalhost:3000 - smee.io: alternativa
- Sandbox endpoint (em breve): Mivicall vai disponibilizar
sandbox.mivicall.compara enviar eventos de teste
Encriptação em trânsito
- HTTPS obrigatório. Endpoints HTTP plain são rejeitados.
- TLS 1.2+ (TLS 1.3 preferido). Recusamos certificados expirados ou self-signed.
- Mivicall verifica o vosso cert na config — se trocarem para self-signed, webhooks param.