X-Api-Key de todas as requisições. Não compartilhe esta chave.
| Data / Hora | Tipo | Status | Confiança | Sessão |
|---|---|---|---|---|
Adicione a tag <script> antes do fechamento do </body> com a sua chave de API.
<script
src="https://seudominio.com/sdk.js"
data-api-key="SUA_CHAVE_API">
</script>
Chame IDDigital.open() de qualquer botão ou evento. O SDK cuida de todo o fluxo — câmera, captura, biometria e resultado.
IDDigital.open({
onSuccess: function(resultado) {
// Verificação aprovada ✓
console.log('Usuário verificado:', resultado.name);
// resultado.mode → 'enrollment' | 'auth'
// resultado.token → JWT de sessão
},
onError: function(erro) {
// Verificação rejeitada ou erro
if (erro.code === 'rejected') {
console.log('Biometria não aprovada');
}
},
onClose: function() {
// Usuário fechou o modal sem concluir
}
});
<!DOCTYPE html>
<html>
<body>
<button onclick="verificar()">Verificar identidade</button>
<script
src="https://seudominio.com/sdk.js"
data-api-key="pk_live_xxxx">
</script>
<script>
function verificar() {
IDDigital.open({
onSuccess: (r) => {
// Usuário verificado — libere o acesso
window.location = '/dashboard?token=' + r.token;
},
onError: (e) => {
alert('Verificação não aprovada. Tente novamente.');
}
});
}
</script>
</body>
</html>
onSuccess)| Campo | Tipo | Descrição |
|---|---|---|
| mode | string | 'enrollment' (primeiro cadastro) ou 'auth' (autenticação recorrente) |
| status | string | Sempre 'Approved' no onSuccess |
| name | string | Nome completo do usuário verificado |
| userId | string (UUID) | Identificador único do usuário na iDenta |
| token | string (JWT) | Token de sessão válido por 8 horas para uso no seu backend |
onError)| Código | Tipo | Descrição |
|---|---|---|
| rejected | biometria | Selfie não confere com o documento ou liveness falhou |
| missing_api_key | configuração | Chave de API não informada no script tag |
| session_error | rede | Falha ao criar sessão — verifique a chave e a conectividade |
Envie sua chave no header X-Api-Key em todas as requisições.
POST /api/widget/session
X-Api-Key: pk_live_sua_chave_aqui
Content-Type: application/json
Cria uma sessão biométrica. Retorna o sessionId que identifica toda a jornada de um usuário.
// Sem body — autenticação é pelo header X-Api-Key
POST /api/widget/session
X-Api-Key: pk_live_xxxx
{
"sessionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"tenantId": "11111111-1111-1111-1111-111111111111"
}
Envia uma imagem biométrica para análise. Cada chamada consome 1 crédito.
| Campo | Tipo | Descrição |
|---|---|---|
| sessionIdobr. | UUID | ID da sessão criada em /api/widget/session |
| tenantIdobr. | UUID | ID do seu tenant (retornado na criação de sessão) |
| imageTypeobr. | string | selfie · doc-front · doc-back · cnh-digital |
| imageBase64obr. | string | Imagem em Base64 (JPEG ou PNG), com ou sem prefixo data:image/… |
{
"sessionId": "3fa85f64-...",
"tenantId": "11111111-...",
"imageType": "selfie",
"imageBase64": "/9j/4AAQSkZJRgAB..."
}
{
"logId": "abc123",
"status": "Approved", // "Approved" | "Rejected"
"confidence": 0.9431 // 0.0 → 1.0
}
Lista as verificações realizadas. Suporta paginação.
| Query param | Tipo | Descrição |
|---|---|---|
| tenantIdobr. | UUID | Filtra pelo seu tenant |
| pageopt. | int | Página (default: 1) |
| sizeopt. | int | Itens por página, máx 100 (default: 20) |
{
"total": 142,
"page": 1,
"size": 20,
"data": [
{
"id": "uuid",
"sessionId": "uuid",
"imageType": "selfie",
"status": "Approved",
"confidence": 0.9431,
"createdAt": "2026-05-06T20:00:00Z"
}
]
}
Retorna métricas agregadas do seu tenant.
{
"total": 142,
"approved": 128,
"rejected": 14
}
Consulta o saldo de créditos disponível.
{
"tenantId": "11111111-...",
"balance": 247
}
Informe o endpoint HTTPS do seu servidor. A iDenta fará um POST com o payload do evento sempre que uma captura for processada.
Cada requisição POST enviada para sua URL contém o seguinte JSON:
{
"sessionId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"tenantId": "11111111-1111-1111-1111-111111111111",
"imageType": "selfie",
"status": "Approved",
"confidence": 0.9431,
"timestamp": "2026-05-06T20:30:00Z"
}
const express = require('express');
const app = express();
app.use(express.json());
app.post('/webhook/identa', (req, res) => {
const { sessionId, status, confidence } = req.body;
if (status === 'Approved') {
// Libere o acesso do usuário
console.log('Verificado! Sessão:', sessionId);
}
res.sendStatus(200); // Responda 200 para confirmar recebimento
});
app.listen(3000);
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook/identa', methods=['POST'])
def webhook():
data = request.get_json()
if data['status'] == 'Approved':
# Libere o acesso
print(f"Verificado! Confiança: {data['confidence']}")
return '', 200 # Responda 200
| Campo | Valor | |
|---|---|---|
| Tenant | – | |
| – | ||
| Tenant ID | – | |
| Status | – | |
| Créditos | – | |
Como adquirir mais créditos?
Entre em contato pelo e-mail dev@identa.com.br informando a quantidade desejada. Processamos o pagamento e creditamos na sua conta em até 1 hora útil.
O crédito é consumido em verificações rejeitadas?
Sim, o crédito é consumido por chamada processada — independentemente de aprovação ou rejeição. Verificações que retornam erro de processamento (face não detectada, imagem inválida) também consomem crédito.
Posso usar o SDK em aplicativos mobile?
O SDK JavaScript é otimizado para web. Para apps nativos iOS/Android, utilize a API REST diretamente — capturando a imagem com a câmera nativa e enviando via /api/captures.
Os dados biométricos ficam armazenados?
A iDenta armazena embeddings biométricos (vetores matemáticos), não as imagens originais — em conformidade com a LGPD. Você pode solicitar exclusão de qualquer dado a qualquer momento.