Pular para conteúdo

Endpoints de Integracao

Base URL: https://api.byclinic.digitalface.dev.br/api/v1/integrations

Endpoints Admin (JWT Bearer)

Requerem header Authorization: Bearer <access_token> de um usuario admin.

POST /api-keys

Gera uma API key para a clinica.

curl -X POST https://api.byclinic.digitalface.dev.br/api/v1/integrations/api-keys \
  -H "Authorization: Bearer $TOKEN"

Response 200:

{
  "api_key": "bc_live_xxxxxxxxxxxxxxxxxxxxxx",
  "created_at": "2026-04-16T12:00:00Z"
}

POST /connect

Conecta a um produto remoto (ChatDigi ou Agenda).

curl -X POST https://api.byclinic.digitalface.dev.br/api/v1/integrations/connect \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "product": "chatdigi",
    "api_key": "cd_live_xxxxx",
    "api_url": "https://api.chatdigi.digitalface.dev.br",
    "webhook_url": "https://api.byclinic.digitalface.dev.br/api/v1/integrations/webhook"
  }'

Response 200:

{
  "id": "uuid",
  "product": "chatdigi",
  "status": "active",
  "features": ["contact.search", "message.send"]
}

GET /

Lista integracoes da clinica.

DELETE /{integration_id}

Revoga uma integracao.


Endpoints Externos (API Key)

Requerem header X-Integration-Key: bc_live_xxxxx.

GET /status

Retorna status e features do ByClinic.

curl https://api.byclinic.digitalface.dev.br/api/v1/integrations/status \
  -H "X-Integration-Key: bc_live_xxxxx"

Response 200:

{
  "product": "byclinic",
  "version": "1.0.0",
  "clinic_id": "uuid",
  "clinic_name": "Clinica Demo",
  "features": ["patient.search", "patient.read", "record.read", "appointment.read", "payment.read", "message.send"],
  "status": "active"
}

POST /webhook

Recebe webhooks de produtos remotos. Requer HMAC signature.

Header: X-Integration-Key: bc_live_xxxxx
Header: X-Webhook-Signature: sha256=xxxxxxx

GET /search/patients?phone=+55XXXXXXXXXXX

Busca paciente por telefone.

Response 200:

{
  "found": true,
  "patient": {
    "id": "uuid",
    "name": "Joao Silva",
    "phone": "+5582999999999",
    "cpf": "***.***.***-00",
    "last_appointment": "2026-04-10T14:00:00Z",
    "next_appointment": "2026-04-20T14:00:00Z",
    "status": "active"
  }
}

GET /search/records?patient_id=UUID&limit=5

Busca prontuarios resumidos de um paciente.

GET /search/appointments?patient_id=UUID&status=scheduled

Busca agendamentos de um paciente.

POST /action/log-interaction

Registra interacao de produto externo no historico do paciente.

curl -X POST https://api.byclinic.digitalface.dev.br/api/v1/integrations/action/log-interaction \
  -H "X-Integration-Key: bc_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "patient_phone": "+5582999999999",
    "interaction_type": "whatsapp_message",
    "summary": "Paciente confirmou consulta dia 20/04",
    "source": "chatdigi",
    "source_id": "ticket_1234"
  }'