Resumo #
O eAgenda permite validar, de forma automática, se um cliente está autorizado a realizar um agendamento utilizando uma Lista de Acesso conectada a uma API externa.
Quando o cliente informa o CPF durante o agendamento, o eAgenda envia uma requisição HTTP POST para a URL configurada, utilizando timestamp e assinatura HMAC-SHA256 para garantir segurança e integridade da comunicação.
Neste documento você encontrará:
- Como funciona a estrutura da requisição enviada pelo eAgenda
- Como desenvolver a API externa responsável pela validação
- Como criar a Lista de Acesso que valida via API externa
- Como compartilhar o link dessa lista com seus clientes
Estrutura da Requisição Enviada pelo eAgenda #
Corpo da Requisição (JSON) #
O eAgenda envia o identificador informado pelo cliente no campo configurado (ex.: CPF):
{
"identifier": "12345678901"
}
Cabeçalhos Enviados #
Os cabeçalhos adicionam segurança e autenticação:
X-Timestamp: timestamp UNIX da requisiçãoX-Signature: hash HMAC-SHA256 gerado a partir do corpo + timestampContent-Type: application/json
Método #
POST
Como Desenvolver sua API Externa #
A API externa deve:
- Verificar o timestamp para evitar replay attacks
- Validar a assinatura HMAC-SHA256
- Checar se o identificador informado está autorizado
- Responder com
{ "authorized": true/false }
Exemplo completo em Python + Flask #
from flask import Flask, request, jsonify
import hmac
import hashlib
import time
app = Flask(__name__)
SECRET_KEY = "minha-chave-secreta-super-segura-123"
CLIENTES_AUTORIZADOS = [
"01234567890",
"12345678901",
"98765432100",
"11122233344"
]
TIME_TOLERANCE = 120
def verify_signature(body, timestamp, received_signature):
message = body + timestamp
expected_signature = hmac.new(
SECRET_KEY.encode('utf-8'),
message.encode('utf-8'),
hashlib.sha256
).hexdigest()
return hmac.compare_digest(expected_signature, received_signature)
@app.route('/validate', methods=['POST'])
def validate_client():
timestamp_header = request.headers.get('X-Timestamp')
signature_header = request.headers.get('X-Signature')
if not timestamp_header or not signature_header:
return jsonify({"error": "Headers X-Timestamp e X-Signature são obrigatórios"}), 400
body = request.get_data(as_text=True)
try:
request_time = int(timestamp_header)
current_time = int(time.time())
diff = abs(current_time - request_time)
if diff > TIME_TOLERANCE:
return jsonify({"authorized": False, "error": "Requisição expirada"}), 403
except:
return jsonify({"error": "Timestamp inválido"}), 400
if not verify_signature(body, timestamp_header, signature_header):
return jsonify({"authorized": False, "error": "Assinatura inválida"}), 403
data = request.get_json()
identifier = data.get("identifier")
if not identifier:
return jsonify({"error": "Campo 'identifier' é obrigatório"}), 400
autorizado = identifier in CLIENTES_AUTORIZADOS
return jsonify({"authorized": autorizado, "identifier": identifier}), 200
@app.route('/health', methods=['GET'])
def health():
return jsonify({
"status": "online",
"secret_key_configured": True,
"authorized_clients_count": len(CLIENTES_AUTORIZADOS)
}), 200
if __name__ == "__main__":
app.run(debug=True, port=5000)
Exemplos de resposta #
Cliente autorizado
{
"authorized": true,
"identifier": "12345678901"
}
Cliente não autorizado
{
"authorized": false,
"identifier": "12345678901"
}
Como Criar a Lista de Acesso que Valida via API Externa #
Passo 1 — Acessar a plataforma #
- Entre em:
https://eagenda.com.br - Faça login com sua conta.
Passo 2 — Acessar o menu correto #
- No menu lateral, clique em Conta
- Clique em Acesso de Clientes

Passo 3 — Criar nova lista #
- Clique em Nova Lista

- No campo Nome da Lista, coloque qualquer nome (ex.:
teste) - Os demais campos podem ficar em branco

Passo 4 — Configurar o tipo de validação #
- Login obrigatório: desmarcar
- Usar Lista Externa de Acesso: marcar
- Tipo de Chave de Acesso: selecionar CPF

Passo 5 — Configurar integração externa #
Preencher:
- URL da API Externa:
Ex.:https://seuservidor.com/validate - Chave Secreta:
Ex.:minha-chave-secreta-super-segura-123
Passo 6 — Finalizar #
Clique em Salvar.
Sua lista está pronta para validar automaticamente cada CPF através da API externa.
Como Compartilhar a Lista com os Clientes #
- No eAgenda, vá em Conta → Acesso de Clientes
- Localize a lista criada
- Clique em Ações
- Selecione Copiar link compartilhado

Esse link pode ser enviado aos clientes:
Eles inserem o CPF → o sistema consulta a API → libera ou bloqueia automaticamente o agendamento.

Entre em Contato ou Saiba Mais #
Estamos à disposição para ajudar! Acesse nossos canais oficiais:
📞 WhatsApp : Clique aqui para nos enviar uma mensagem
🌐 Plataforma eAgenda : Conheça o eAgenda
🏢 Nossa Empresa : Mupi Systems – Soluções Inovadoras
📧 E-mail : contato@mupisystems.com.br
📚 Tutoriais e Documentação : Acesse nossos guias e tutoriais