Verificar Sessão PDPJ

Consulta o status de uma sessão de autenticação PDPJ. É o principal endpoint para uso em automações, pois permite verificar se o usuário já autorizou e se a sessão ainda está válida antes de executar qualquer ação.

Endpoint: POST /api/internal/auth/pdpj/session


Body

CampoTipoObrigatórioDescrição
conversation_idstring (UUID)SimID da conversa associada à sessão

Resposta

O campo status indica o estado atual da sessão:

statusauthenticatedDescrição
authenticatedtrueSessão válida e token ativo
expiredfalseToken expirado — é necessário um novo login
pendingfalseSessão criada, usuário ainda não autorizou
not_foundfalseNenhuma sessão encontrada para esta conversa

Exemplos cURL

curl -X POST https://api.tolky.to/api/internal/auth/pdpj/session \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -d '{
    "conversation_id": "550e8400-e29b-41d4-a716-446655440000"
  }'

Autenticado:

{
  "code": 200,
  "message": "Success",
  "data": {
    "status": "authenticated",
    "authenticated": true,
    "session_id": "7f3d9a2e-1b4c-4e8f-9d2a-3c5b7e1f8a4d",
    "conversation_id": "550e8400-e29b-41d4-a716-446655440000",
    "user": {
      "sub": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
      "name": "João Silva",
      "email": "joao.silva@tjsp.jus.br",
      "username": "11245057685"
    },
    "expires_at": "2026-03-26T18:00:00.000Z",
    "time_left": {
      "hours": 7,
      "minutes": 452,
      "seconds": 27145,
      "expired": false
    }
  }
}

Expirado (requer novo login):

{
  "code": 200,
  "message": "Success",
  "data": {
    "status": "expired",
    "authenticated": false,
    "session_id": "7f3d9a2e-1b4c-4e8f-9d2a-3c5b7e1f8a4d",
    "conversation_id": "550e8400-e29b-41d4-a716-446655440000",
    "expires_at": "2026-03-25T10:00:00.000Z",
    "user": { "sub": "...", "name": "João Silva", "email": "joao.silva@tjsp.jus.br", "username": "11245057685" }
  }
}

Pendente (usuário ainda não autorizou):

{
  "code": 200,
  "message": "Success",
  "data": {
    "status": "pending",
    "authenticated": false,
    "session_id": "7f3d9a2e-1b4c-4e8f-9d2a-3c5b7e1f8a4d",
    "conversation_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Lógica de decisão no n8n

Use um nó IF após a chamada ao /session para rotear o fluxo com base em data.status:

StatusAção recomendada
authenticatedProsseguir com a ação
expiredChamar /init novamente e enviar nova URL ao usuário
pendingAguardar ou notificar o usuário para completar o login
not_foundChamar /init para iniciar um novo fluxo