Integre o adm.hospital ao ERP, ao HIS ou à folha sem projeto: uma chave lê a escala e o fechamento; um webhook assinado avisa quando algo acontece.
A direção do hospital gera a chave em Configurações → Integrações, dentro do produto. A chave aparece uma única vez (guardamos só o hash) e pode ser revogada a qualquer momento. Toda chamada leva a chave no header:
curl -H "X-API-Key: admk_..." \
"https://admhospital.com.br/public/v1/shifts?from=2026-09-01&to=2026-09-30"
A API é somente leitura e cada chave enxerga um hospital. Sem chave válida, tudo responde 401.
GET /public/v1/shifts?from=AAAA-MM-DD&to=AAAA-MM-DD — a escala do período: horário, setor, status, profissional (nome e registro no conselho), valor, situação do pagamento e ponto (check-in/check-out). As datas são interpretadas no fuso do hospital.GET /public/v1/closing/AAAA-MM — o fechamento do mês, com a mesma conta da tela de fechamento: totais por profissional (plantões, horas, valor), furos e pontos pendentes de revisão.GET /public/v1/sectors — os setores do hospital, para casar com o cadastro do seu lado.Exemplo de item de /shifts:
{
"id": "5f0c…",
"starts_at": "2026-09-12T22:00:00Z",
"ends_at": "2026-09-13T10:00:00Z",
"status": "completed",
"sector": "UTI Adulto",
"professional": {
"id": "a3b1…",
"name": "Ana Souza",
"registration_number": "123456",
"registration_uf": "SP"
},
"value": "1800.00",
"payment_status": "pending",
"checkin_at": "2026-09-12T21:52:11Z",
"checkout_at": "2026-09-13T10:04:37Z"
}
Também em Configurações → Integrações, registre a URL do seu lado e receba um POST a cada evento. O segredo do endpoint aparece uma única vez, na criação. Eventos de hoje:
shift.filled — um plantão foi preenchido (aceite do profissional ou alocação da coordenação);shift.completed — um plantão foi concluído (ponto fechado);closing.ready — o fechamento do mês anterior ficou pronto, com os totais;ping — o disparo de teste do botão "Testar" da tela.O corpo é enxuto de propósito — ids, datas e valores do evento. O detalhe você busca na API com a sua chave:
{
"event": "shift.completed",
"hospital_id": "7c9e…",
"occurred_at": "2026-09-13T10:04:38Z",
"data": { "shift_id": "5f0c…", "starts_at": "…", "ends_at": "…", "value": "1800.00" }
}
Todo POST leva o header X-ADM-Signature-256: o HMAC-SHA256 do corpo cru, com o segredo do endpoint. Rejeite qualquer entrega cuja assinatura não bata:
import hashlib, hmac
def assinatura_confere(segredo: str, corpo: bytes, header: str) -> bool:
esperado = "sha256=" + hmac.new(
segredo.encode(), corpo, hashlib.sha256
).hexdigest()
return hmac.compare_digest(esperado, header)
A entrega é at-least-once e sem fila: esperamos a sua URL responder 200 em até 10 segundos e registramos o resultado (a tela de Integrações mostra o último status de cada endpoint). Se o seu lado estava fora do ar, o evento não é reenviado — por isso o desenho certo é tratar o webhook como aviso e confirmar o estado pela API, que é a fonte.
Vai integrar e quer um par técnico do nosso lado? Fale com a gente — a página de segurança responde o questionário do seu TI.