SDK API¶
API para obtenção de tokens de autenticação do SDK MediQuo.
Importante: Cadastro de Pacientes
O cadastro de pacientes NÃO é feito através desta API. Os pacientes devem ser cadastrados via API ID MediQuo.
Consulte: Pacientes - ID MediQuo
URL Base: https://sdk.mediquo.com/v1
Visão Geral¶
A SDK API tem uma única responsabilidade: gerar tokens de autenticação para pacientes já cadastrados no ID MediQuo.
| Função | Descrição |
|---|---|
| Gerar Token | Cria um token JWT para inicializar o SDK no frontend |
Separação de Responsabilidades
- ID MediQuo: Gestão de clientes, licenças e pacientes (backend)
- SDK API: Geração de tokens para o frontend
- SDK: Interface de telemedicina (frontend)
Autenticação¶
Todas as requisições devem incluir os headers de autenticação:
| Header | Descrição |
|---|---|
X-API-Key |
Sua chave de API do SDK |
X-Secret-Key |
Sua chave secreta do SDK |
Credenciais Diferentes
As credenciais do SDK podem ser diferentes das credenciais do ID MediQuo. Consulte sua equipe de suporte para obter as credenciais corretas.
POST /patients/{licenceId}/token¶
Gera um token de autenticação para o paciente acessar o SDK.
Pré-requisitos¶
Antes de gerar o token, o paciente deve estar cadastrado via ID MediQuo:
- Criar cliente via Clientes
- Criar licença via Licenças
- Criar paciente via Pacientes - você receberá o
licenceId
Parâmetros do Path¶
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| licenceId | string | sim | ID da licença do paciente (obtido no cadastro via ID MediQuo) |
Cabeçalhos¶
| Header | Valor |
|---|---|
X-API-Key |
Sua chave de API do SDK |
X-Secret-Key |
Sua chave secreta do SDK |
Exemplo de Requisição¶
curl -X POST https://sdk.mediquo.com/v1/patients/lic_abc123xyz/token \
-H "X-API-Key: sua_api_key_sdk" \
-H "X-Secret-Key: sua_secret_key_sdk"
Resposta de Sucesso¶
Status Code: 200 OK
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_at": "2025-01-28T10:00:00.000Z"
}
| Campo | Tipo | Descrição |
|---|---|---|
| token | string | Token JWT para inicializar o SDK |
| expires_at | string | Data de expiração do token (ISO 8601) |
Próximo Passo
Use este token para inicializar o SDK no frontend da sua aplicação.
Respostas de Erro¶
| Código | Descrição |
|---|---|
| 401 | Credenciais inválidas |
| 404 | Paciente/Licença não encontrado |
Exemplo de Erro:
Fluxo Completo de Integração¶
O diagrama abaixo mostra o fluxo completo desde o cadastro do paciente até o uso do SDK:
sequenceDiagram
participant Backend as Seu Backend
participant ID as API ID MediQuo
participant SDK_API as SDK API MediQuo
participant App as Frontend (App/Web)
participant SDK as SDK MediQuo
Note over Backend,ID: Etapa 1: Cadastro (uma única vez)
Backend->>ID: POST /patients (cadastra paciente)
ID-->>Backend: Retorna paciente com licenceId
Backend->>Backend: Armazena licenceId
Note over Backend,SDK_API: Etapa 2: Obter Token (a cada sessão)
Backend->>SDK_API: POST /patients/{licenceId}/token
SDK_API-->>Backend: Retorna token JWT
Note over App,SDK: Etapa 3: Usar SDK (frontend)
App->>Backend: Solicita acesso telemedicina
Backend-->>App: Envia token JWT
App->>SDK: Inicializa SDK com token
SDK-->>App: SDK pronto para uso
Boas Práticas¶
Cache de Tokens¶
O token tem uma validade. Recomendamos:
- Gerar um novo token apenas quando necessário
- Verificar a data de expiração antes de usar
- Solicitar novo token quando expirado
Segurança¶
Proteja suas Credenciais
- NUNCA exponha
X-API-KeyeX-Secret-Keyno frontend - A geração de tokens deve ser feita exclusivamente no backend
- O token JWT pode ser enviado ao frontend de forma segura
Fluxo Recomendado no Backend¶
// Exemplo em Node.js
async function getSDKToken(patientLicenceId) {
const response = await fetch(
`https://sdk.mediquo.com/v1/patients/${patientLicenceId}/token`,
{
method: 'POST',
headers: {
'X-API-Key': process.env.MEDIQUO_SDK_API_KEY,
'X-Secret-Key': process.env.MEDIQUO_SDK_SECRET_KEY
}
}
);
if (!response.ok) {
throw new Error('Erro ao obter token do SDK');
}
return response.json();
}
// Endpoint do seu backend
app.get('/api/mediquo/token', async (req, res) => {
// 1. Autenticar usuário logado
const user = req.user;
// 2. Buscar licenceId do paciente (armazenado no seu banco)
const patient = await getPatientByUserId(user.id);
// 3. Gerar token do SDK
const { token, expires_at } = await getSDKToken(patient.licenceId);
// 4. Retornar token para o frontend
res.json({ token, expires_at });
});
Limites de Requisição¶
| Endpoint | Limite |
|---|---|
POST /patients/{licenceId}/token |
600 requisições/minuto por IP |
Próximos Passos¶
Após obter o token, inicialize o SDK no frontend:
- Android SDK - Integração para Android
- iOS SDK - Integração para iOS
- Widget Web - Integração para Web