API Externa

Clínica - OpenAPI

https://clinica.nortweb.com.br/api/external/openapi.json

Gere o token da clínica em Configurações > API e use em todas as requisições protegidas.

Esta página pública foi reduzida para uma referência técnica única, com endpoints, modelos JSON, filtros, autenticação e exemplos para integração com outros sistemas.

Authorization: Bearer <token>

Clínica - API Externa

1.0.0-preview

Download OpenAPI specification: Download

Referência pública para integrações externas com pacientes, profissionais, serviços, atendimentos, financeiro e agendamento online. Os resumos com [Disponível] indicam endpoints já liberados na camada externa.

Base

https://clinica.nortweb.com.br/api/external

Autorização

Todas as rotas protegidas utilizam Authorization: Bearer TOKEN.

Escopo do token

O token é vinculado a uma única clínica e filtra automaticamente todos os dados retornados pela API.

tag/Cadastros

Cadastros

Consulta e criação de profissionais, serviços e pacientes vinculados à clínica autenticada.

GET

[Disponível] Listar profissionais

/api/external/v1/professionals

Retorna profissionais cadastrados na clínica com filtros de paginação e status ativo.

Parâmetros

querylimitopcional

Quantidade máxima por página.

queryoffsetopcional

Deslocamento da paginação.

queryactiveopcional

true, false ou all para filtrar profissionais.

queryinclude_inactiveopcional

Quando true, inclui registros inativos.

Respostas

200 Lista paginada com items e pagination.

401 token ausente ou inválido400 dados inválidos

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

GET

[Disponível] Listar serviços

/api/external/v1/services

Retorna serviços cadastrados na clínica com valor, duração e categoria.

Parâmetros

querylimitopcional

Quantidade máxima por página.

queryoffsetopcional

Deslocamento da paginação.

queryactiveopcional

true, false ou all para filtrar serviços.

queryinclude_inactiveopcional

Quando true, inclui registros inativos.

Respostas

200 Lista paginada com items e pagination.

401 token ausente ou inválido400 dados inválidos

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

GET

[Disponível] Listar pacientes

/api/external/v1/patients

Busca pacientes por nome, CPF, telefone ou e-mail, já limitada à clínica do token.

Parâmetros

queryqopcional

Termo de busca por nome, CPF, telefone ou e-mail.

querylimitopcional

Quantidade máxima por página.

queryoffsetopcional

Deslocamento da paginação.

queryactiveopcional

true, false ou all para filtrar pacientes.

queryinclude_inactiveopcional

Quando true, inclui registros inativos.

Respostas

200 Lista paginada com items e pagination.

401 token ausente ou inválido400 dados inválidos

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

POST

[Disponível] Criar paciente

/api/external/v1/patients

Cria um paciente para a clínica autenticada e retorna o registro persistido.

Parâmetros

bodynomeobrigatório

Nome completo do paciente.

bodycpfopcional

CPF do paciente.

bodydata_nascimentoopcional

Data no formato YYYY-MM-DD.

bodytelefoneopcional

Telefone principal.

bodyemailopcional

E-mail de contato.

bodyenderecoopcional

Endereço livre do paciente.

bodyobservacoes_medicasopcional

Observações clínicas internas.

bodyalergiasopcional

Lista de alergias em array de strings.

bodyconvenioopcional

Nome do convênio.

bodyativoopcional

Define se o paciente nasce ativo.

Respostas

201 Retorna o paciente criado no campo item.

401 token ausente ou inválido400 dados inválidos201 criado com sucesso

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

tag/Agenda

Agenda e Atendimentos

Criação, consulta e atualização de atendimentos, além das solicitações do agendamento online.

GET

[Disponível] Listar atendimentos

/api/external/v1/appointments

Lista atendimentos com filtros por status, profissional, paciente, período e busca textual.

Parâmetros

queryqopcional

Busca por paciente, serviço ou profissional.

querystatusopcional

Status do atendimento.

queryprofessional_idopcional

ID do profissional.

querypatient_idopcional

ID do paciente.

queryfromopcional

Data inicial YYYY-MM-DD.

querytoopcional

Data final YYYY-MM-DD.

querylimitopcional

Quantidade máxima por página.

queryoffsetopcional

Deslocamento da paginação.

Respostas

200 Lista paginada com items e pagination.

401 token ausente ou inválido400 dados inválidos404 não encontrado

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

POST

[Disponível] Criar atendimento

/api/external/v1/appointments

Cria um atendimento validando paciente, profissional, serviço e conflito de horário.

Parâmetros

bodypaciente_idobrigatório

ID do paciente.

bodyprofissional_idobrigatório

ID do profissional.

bodyservico_idopcional

ID do serviço.

bodydataobrigatório

Data YYYY-MM-DD.

bodyhoraobrigatório

Hora HH:MM.

bodystatusopcional

Status inicial do atendimento.

bodyvaloropcional

Valor monetário do atendimento.

bodyforma_pagamentoopcional

Forma de pagamento.

bodyobservacoesopcional

Observações livres.

bodyprontuarioopcional

Texto do prontuário.

bodyretorno_diasopcional

Prazo de retorno em dias.

Respostas

201 Retorna o atendimento criado no campo item. Pode responder 409 em conflito de agenda.

401 token ausente ou inválido400 dados inválidos201 criado com sucesso404 não encontrado

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

PATCH

[Disponível] Atualizar status do atendimento

/api/external/v1/appointments/:id/status

Atualiza apenas o status de um atendimento da clínica autenticada.

Parâmetros

pathidobrigatório

ID do atendimento.

bodystatusobrigatório

Novo status do atendimento.

Respostas

200 Retorna o atendimento atualizado no campo item.

401 token ausente ou inválido400 dados inválidos404 não encontrado

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

GET

[Disponível] Listar solicitações do agendamento online

/api/external/v1/booking-requests

Consulta pedidos feitos pelo fluxo público de agendamento online com filtros de status e período.

Parâmetros

querystatusopcional

Status da solicitação pública.

queryfromopcional

Data inicial YYYY-MM-DD.

querytoopcional

Data final YYYY-MM-DD.

querylimitopcional

Quantidade máxima por página.

queryoffsetopcional

Deslocamento da paginação.

Respostas

200 Lista paginada com items e pagination.

401 token ausente ou inválido400 dados inválidos

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

tag/Financeiro

Financeiro

Resumo consolidado do período com receita, despesa, resultado e comissão por profissional.

GET

[Disponível] Obter resumo financeiro

/api/external/v1/financial/summary

Consolida lançamentos e atendimentos concluídos do mês solicitado para a clínica autenticada.

Parâmetros

querymonthopcional

Mês no formato YYYY-MM. Se ausente, usa o mês atual.

Respostas

200 Retorna period, totals e commissions.

401 token ausente ou inválido400 dados inválidos

Autorização

Envie o header Authorization: Bearer <token> em todas as chamadas desta seção.

Modelo JSON

Criar paciente

{
  "nome": "Maria da Silva",
  "cpf": "123.456.789-00",
  "telefone": "+55 11 99999-1234",
  "email": "maria@exemplo.com",
  "convenio": "Particular",
  "alergias": ["Dipirona"]
}

Modelo JSON

Criar atendimento

{
  "paciente_id": "uuid-do-paciente",
  "profissional_id": "uuid-do-profissional",
  "servico_id": "uuid-do-servico",
  "data": "2026-06-17",
  "hora": "09:00",
  "status": "agendado",
  "valor": 180,
  "forma_pagamento": "Pix"
}

Formato de listagem

Resposta paginada

{
  "items": [],
  "pagination": {
    "total": 24,
    "limit": 50,
    "offset": 0,
    "has_more": false
  }
}

Erros comuns

Códigos de resposta

200 Requisição processada com sucesso.

201 Registro criado com sucesso.

400 Payload inválido ou parâmetro fora do contrato.

401 Token ausente, inválido ou expirado.

404 Registro não encontrado para a clínica do token.

409 Conflito de agenda ao criar atendimento.