Handles
Um handle é um identificador de um sujeito num canal ou sistema. Ele tem umtype, um value e, quando o tipo pede, um scope:
O valor é classificado pelo formato, nunca pelo nome do campo de onde veio, e normalizado no servidor. Os SDKs têm funções que montam cada tipo:
subject_kind: person (o padrão), account ou partner. org_registry_hmac e email_domain já nascem de organização. Veja Contas e parceiros.
Perfis e asserções
Um perfil é o cliente como a memória o enxerga: o conjunto de handles ligados entre si. Cada ligação é uma asserção num registro imutável, com o método que a produziu:
Quando dois handles do mesmo evento resolvem para perfis diferentes, a união acontece fora da resposta do lote, com trava. A memória fica presa ao handle de origem de cada fato, então separar dois perfis unidos por engano é uma operação de verdade: os fatos, os pedidos e as faturas voltam sozinhos para o dono certo.
identify() sai na hora, fora da fila, para o próximo context() já enxergar o perfil unido.
Proteções contra união errada
- Dois perfis que já têm handle com nível V3 ou mais nunca se unem sozinhos; só por união forçada, com ator e motivo.
- Valores de teste e marcadores de QA ficam bloqueados por tipo, numa lista fixa que você pode estender.
- Cada perfil tem limite por tipo: um documento por país, um
system_idpor namespace, poucos telefones. Ao estourar, o handle mais fraco é rebaixado, e a ingestão nunca é recusada. - Handle que liga muitos perfis em pouco tempo (tablet de loja, número de PABX, WhatsApp de atendimento) vira
ambiguous: serve para leitura, não para novas uniões. - Troca de número ou de BSUID cria um alias, nunca uma união automática.
- Pessoa e organização nunca se unem. O que liga as duas é um vínculo.
Governar a identidade
O seu time corrige a identidade pelas rotas de governança, com uma pessoa do Console que tenha o papelsecurity ou integration, ou com uma chave de fonte de escopo admin. Toda escrita exige o cabeçalho Idempotency-Key, responde 202 com o id da operação e é aplicada sob a trava do perfil, em ordem:
A Niadra também propõe ligações que não consegue provar, como dois perfis com o mesmo nome e um e-mail parecido. Ela nunca aplica sozinha:
GET /v1/identity/suggestions lista as sugestões com um score e os sinais que o sustentam, aceitar transforma uma delas numa asserção accepted_suggestion, e descartar encerra a sugestão.
Para achar um perfil a partir de um handle, use POST /v1/profiles/search: o valor vai no corpo e nunca entra em log. GET /v1/profiles/{profile_id} devolve os handles, os vínculos, o tipo de sujeito e o pseudônimo, com a máscara do papel de quem lê.
Níveis de verificação
O mesmo cliente recebe contextos diferentes conforme o quanto a conversa provou quem ele é:
A sua política diz, por categoria de memória, o nível mínimo. O contexto informa em
withheld quantos itens ficaram retidos: o agente sabe que verificar libera mais, sem ver o conteúdo. no_customer fica fora da escala e só é aceito de fontes com audiência internal_agent; esse contexto nunca vai ao cliente final.
Nível efetivo
O nível que vale é o menor entre três: o que você pediu, o teto da fonte e o que a conversa provou. O teto é atributo da fonte: agente automatizado V2, fonte que executa OTP V3, V4 só para mesa humana ou sistema de registro. Uma chave de agente vazada não consegue declarar V4. A resposta do contexto mostra os dois lados emverification: requested, effective e, quando o efetivo é menor, reason (source_ceiling ou not_proven).
Elevar o nível
O nível sobe por um eventoverify, nunca por inferência. Ele vale para aquela conversa ou tarefa, com validade opcional. Depois dele, peça um context() novo: o SDK já descarta o contexto guardado daquela conversa.
otp_whatsapp, otp_sms, login, kba, network_attestation e human_agent. Um verify acima do teto da fonte volta no 207 com o código verification_not_allowed. Em voz, o atestado de rede da chamada (STIR/SHAKEN e equivalentes) mapeia A para V2, e B e C para V1.
Próximos passos
O contexto e as views
o que cada nível libera no contexto.
Contas e parceiros
organizações e vínculos com papel.
Listar asserções
a API do registro de identidade.
Sugestões de identidade
ligações para revisar, nunca aplicadas sozinhas.

