Documentação da API CliniPlus

Integre sua aplicação com o CliniPlus para automatizar confirmações de agendamentos, buscar lembretes e muito mais.

REST API

API RESTful simples com autenticação via API Key

Segura

API Keys únicas com controle de acesso por usuário

Histórico

Todas as ações são registradas com timestamp

Base URL

https://app.estetiplus.com.br/api

Autenticação

Todas as requisições devem incluir uma API key no header `x-api-key`. Para endpoints administrativos, use o header `x-admin-api-key`.

Como obter uma API Key

  1. Acesse as Configurações no sistema
  2. Vá para a aba API Keys
  3. Clique em Nova API Key
  4. Digite um nome para identificar a chave
  5. Copie a chave gerada (ela só será exibida uma vez)
API Key Regular

Para endpoints de clínica (agendamentos, clientes, serviços, etc.)

clini_sua_api_key_aqui
Header: x-api-key
API Key Administrativa

Para endpoints administrativos (acesso a todas as clínicas)

admin_sua_api_key_aqui
Header: x-admin-api-key
Segurança e Boas Práticas
  • Nunca compartilhe suas API keys publicamente
  • Use variáveis de ambiente para armazenar as chaves
  • Regenere as chaves periodicamente
  • Use HTTPS em todas as requisições
  • Monitore o uso das suas API keys no dashboard

Endpoints da API

POST/api/appointments/confirm

Confirmar Agendamento

Confirma um agendamento específico no sistema

Planos disponíveis: Professional e Enterprise

Headers Obrigatórios

x-api-keystring
Content-Typeapplication/json

Body da Requisição

{
  "appointmentId": "string (UUID)",
  "confirmedBy": "client" | "professional" | "system",
  "notes": "string (opcional)"
}

Exemplo de Código

// Confirmar agendamento
const confirmAppointment = async (appointmentId, apiKey) => {
  const response = await fetch(
    "https://app.estetiplus.com.br/api/appointments/confirm",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        "x-api-key": apiKey,
      },
      body: JSON.stringify({
        appointmentId: appointmentId,
        confirmedBy: "system",
        notes: "Confirmado via integração",
      }),
    },
  );

  const data = await response.json();

  if (!response.ok) {
    throw new Error(data.error || "Erro ao confirmar agendamento");
  }

  return data;
};

// Exemplo de uso
try {
  const result = await confirmAppointment(
    "uuid-da-agendamento", 
    "clini_sua_api_key_aqui"
  );
  console.log("agendamento confirmada:", result);
} catch (error) {
  console.error("Erro:", error.message);
}

Exemplos de Resposta

Sucesso (200)
{
  "message": "agendamento confirmada com sucesso"
}
Erro
// Erro de autenticação
{
  "error": "API key inválida ou não fornecida"
}

// Erro de validação
{
  "error": "Dados inválidos",
  "details": [
    {
      "code": "invalid_string",
      "message": "Invalid uuid",
      "path": ["appointmentId"]
    }
  ]
}

Segurança

Todas as requisições passam por autenticação de API Key. Garanta que sua chave está segura e nunca a exponha em clientes frontend.

  • Revogue imediatamente qualquer chave que tenha sido exposta.
  • Gere chaves diferentes para cada sistema integrador.
  • Monitore logs e acessos diretamente no painel.
  • Mantenha dependências atualizadas e acompanhe avisos de segurança (CVEs) oficiais de ferramentas utilizadas (por exemplo, Next.js, Stripe SDK, bibliotecas HTTP). Atualizações de segurança são priorizadas.

Limitações

Para garantir a estabilidade da plataforma, algumas limitações foram aplicadas ao uso da API.

  • Limite de 60 requisições por minuto por chave.
  • Alguns endpoints requerem plano Premium.
  • Restrições de acesso podem ser aplicadas por clínica ou usuário.