Pular para o conteúdo
Entrar Cadastrar hospitalCadastrar

Desenvolvedores

API pública e webhooks

Última revisão:

Integre o adm.hospital ao ERP, ao sistema do hospital ou à folha sem projeto: uma chave lê a escala e o fechamento; um aviso assinado conta quando algo acontece.

Experimente agora, sem cadastro →

Profissional da equipe sorrindo (imagem ilustrativa)

Em resumo

API somente leitura

Escala, fechamento e setores, com uma chave por hospital que pode ser revogada.

Avisos assinados

Webhooks para plantão preenchido, plantão concluído e fechamento pronto.

Assinatura HMAC

Cada aviso leva o HMAC-SHA256 do corpo; o seu TI confere com o segredo dele.

Autenticação

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 quando quiser. Toda chamada leva a chave no cabeçalho:

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.

Endereços da API

  • GET /public/v1/shifts?from=AAAA-MM-DD&to=AAAA-MM-DD: a escala do período, com horário, setor, situação, profissional (nome e registro no conselho), valor, situação do pagamento e ponto. As datas seguem o 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 (dados de exemplo):

{
  "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"
}

Avisos automáticos (webhooks)

Também em Configurações → Integrações, registre o endereço do seu lado e receba um aviso (POST) a cada evento. O segredo do endereço aparece uma única vez, na criação. Eventos de hoje:

  • shift.filled: um plantão foi preenchido (aceite do profissional ou escala 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 teste do botão “Testar” da tela.
{
  "event": "shift.completed",
  "hospital_id": "7c9e…",
  "occurred_at": "2026-09-13T10:04:38Z",
  "data": { "shift_id": "5f0c…", "starts_at": "…", "ends_at": "…", "value": "1800.00" }
}

Assinatura

Todo aviso leva o cabeçalho X-ADM-Signature-256: o HMAC-SHA256 do corpo, com o segredo do endereço. Rejeite a 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)

Garantias de entrega

Esperamos o seu endereço responder 200 em até 10 segundos e registramos o resultado (a tela de Integrações mostra o último status). Se o seu lado estava fora do ar, o aviso não é reenviado. Por isso, trate o webhook como aviso e confirme o estado pela API, que é a fonte.

Precisa de um par técnico?

Fale com a gente pelo WhatsApp. O questionário de segurança do seu TI tem as respostas na página de segurança.

A escala do mês, de pé na segunda de manhã.

Cadastre o hospital, monte o modelo do setor e gere o mês. Grátis para começar e grátis para o médico, sempre.

É médico? Vá para adm.doctor Outro profissional da saúde? adm.care