# Target Biométrico

Documentação relacionada ao Target Biométrico e seu comportamento.\
Essa funcionalidade está disponível apenas a partir da versão 5 do GBDS.

## Comportamento

### Em qualquer enroll/update

Se uma transação nao possui "origin", o que significa que não há nenhuma label referente a uma organização de origem, a transação terá, para propósitos de exceção, origem de organizações de nível mais alto.

{% hint style="info" %}
Exemplo: Uma transação cadastrada em um ambiente com organização `ori_griaule` como organização de nível mais alto (sem organização pai), terá `ori_griaule` como origem
{% endhint %}

### Em geração de exceção

{% hint style="info" %}
CSI significa Ciclo de Inconformidade Simplificado. É um sistema usado para avaliar dados biométricos, determinando se um candidato biométrico é HIT, NO\_HIT ou UNCERTAIN com base em limites específicos durante o cadastro ou atualizações. Um candidato é marcado como HIT se sua correspondência estiver acima do limite do CSI, NO\_HIT se não estiver e UNCERTAIN se sua correspondência estiver abaixo do limite.
{% endhint %}

{% hint style="info" %}

* Hit de dedo: todos os matches para dedos atingem contagem biométrica mínima

* No Hit de Dedo: todos os não matches de dedo atingem contagem biométrica minima

* Hit de Face: todos os matches para face

* No Hit de Face: todos os não matches de face atingem contagem biométrica mínima
  {% endhint %}

* Cada candidato será marcado como HIT, NO\_HIT, ou UNCERTAIN
  * Se o candidato biométrico não for um match, será um NO\_HIT
  * Se o candidato biométrico for um match com um valor abaixo do limite de CSI será UNCERTAIN, de acordo com as configurações de enroll/update e finger/face
  * Se o candidato biométrico der match com um valor acima do limite de CSI, será um HIT, de acordo com as configurações de enroll/update/ e finger/face

* Exceções serão marcadas como target BIOMETRIC, BIOMETRIC\_INCONCLUSIVE, BIOMETRIC\_MISMATCH ou BIOGRAPHIC:

Cadastro

| Dedo   | Face   | Exceção             |
| ------ | ------ | ------------------- |
| HIT    | HIT    | BIOGRAPHIC          |
| HIT    | NO HIT | BIOMETRIC\_MISMATCH |
| NO HIT | HIT    | BIOMETRIC\_MISMATCH |

* Sem hit de dedo ou face e sem não hit de dedo ou face:
  * com incerteza biométrica, gera uma exceção `BIOMETRIC`
  * com certeza biométrica, gera uma exceção `BIOMETRIC_INCONCLUSIVE`

Update

| Dedo   | Face   | Exceção             |
| ------ | ------ | ------------------- |
| NO HIT | NO HIT | BIOGRAPHIC          |
| HIT    | NO HIT | BIOMETRIC\_MISMATCH |
| NO HIT | HIT    | BIOMETRIC\_MISMATCH |

Se nenhum dedo ou face for considerado HIT nem NO\_HIT:

* com incerteza biométrica, gera uma exceção BIOMETRIC
* com certeza biométrica, gera uma exceção BIOMETRIC\_INCONCLUSIVE

#### Próxima biometria

A próxima biometria a ser avaliada será:

* Pertencente a um candidato com exceção em ANALYSIS
* Com uma decisão geral de UNCERTAIN
* Não alocada a ninguém
* De uma exceção onde a transação entrante ou a transação entrante e de referência contenham uma label com pelo menos uma das organizações das labels de permissão do usuário
  * Pode ser configurado a partir do endpoint com o parâmetro `origin`
    * `ENTRANT`, será filtrado apelas pela transação entrante
    * `BOTH`, será filtrado por ambas as transações

{% hint style="info" %}
A lista de organizações fornecida é hierárquica, o que significa que, se uma organização tiver filhos, todos os filhos serão considerados para encontrar exceções.\
Com a segurança ativada, esta lista de organizações é recuperada das permissões do usuário, sendo todas as permissões que começam com o prefixo da organização configurado, padrão "ori\_".
{% endhint %}

Digital e/ou face serão retornados de acordo com a permissão configurada do usuário, por padrão "tpca" para digitais e "fca" para face, ou de acordo com a requisição para digital ou face

Se a configuração de "double blind" estiver ativada, o usuário alocado para a biometria não pode ter decidido sobre previamente sobre biometria

A ordem para pr'xoima biometria é decidida por prioridade e a ordem fornecida no endpoint. Caso nenhuma seja fornecida, por padrão a ordem é a partir do mais antigo.

GET next biometric irá retornar o número de biometrias disponíveis para serem tratadas, que são

* Todas as UNCERTAIN de target BIOMETRIC com status ANALYSIS não decididas pelo usuário que está fazendo a requisição de next biometric, disponíveis para a organização a que o usuário pertence e, caso seja pedido por digital ou face, serão contadas a partir da seleção escolhida

Com uma biometria selecionada, ela será alocada para o usuário por 5 minutos.

### Destravamento Manual

Pode ser feito usando o endpoint `Unlock biometric`

### Para cada tratamento biométrico

As validações a serem feitas são:

* Usuário deve ser fornecido, a menos que a segurança esteja ativada, nesse caso, o usuário é fornecido pelo token
* Timeout é zero por padrão, quando o tratamento é final e a exceção é tratada como APPROVE, esse valor é utilizado
* Parâmetros obrigatórios: `enroll TGUID, exception PGUID, decision` e `index`
* Exceção deve existir e estar em ANALYSIS e em target BIOMETRIC (os outros tipos não são tratados nessa etapa)
* Candidato da exceção deve ter um índice e classficado como UNCERTAIN
* O candidato a biometria deve estar alocado para o usuário ou não alocado para nenhum outro usuário
* O usuário não pode ter tomado uma decisão para esse candidato anteriormente
* A biometria deve estar alocada ao usuário

Se tudo passar, a decisão é marcada no candidato e o candidato é liberado (desalocado)

### Double Blind

| Double Blind | Decisão                                                                                                       |
| ------------ | ------------------------------------------------------------------------------------------------------------- |
| Ligado       | A decisão é final quando houverem decisões iguais suficientes (configurado em gbds.csi.doubleBlind.threshold) |
| Desligado    | Final                                                                                                         |

### Decisão final

Caso a decisão não seja final, o status da exceção é NOT\_FINAL

Se a decisão for final e todas os tratamentos necessários são concluídos:

#### Cadastro

**APPROVE -** Não hit de **d**edo e face atingem a quantia mínima de contagem para cadastro, sendo considerado falso positivo

**BIOGRAPHIC -** Hit de dedo e face atingem o a contagem mínima para cadastro

**BIOMETRIC\_MISMATCH -** Se os hits de dedo e os não hits de face/não hits de dedo e hits de face atingem o mínimo de contagem para cadastro

**BIOMETRIC\_INCONCLUSIVE -** Caso todas as decisões forem tomadas mas nenhuma conclusão é atingida

#### Atualização

**APPROVE -** Caso hit de dedo e face atingem o valor mínimo de contaem para atualização, sendo considerado falso negativo

**BIOGRAPHIC -** Não hit de dedo e face atingem o a contagem mínima para atualização

**BIOMETRIC\_MISMATCH -** Se os hits de dedo e os não hits de face/não hits de dedo e hits de face atingem o mínimo de contagem para atualização

**BIOMETRIC\_INCONCLUSIVE -** Caso todas as decisões forem tomadas mas nenhuma conclusão é atingida (todos HIT, NO\_HIT ou UNCERTAIN\_EXPERT, mas sem um valor mínimo definido)

### Prioridade

Quando uma exceção é priorizada ou despriorizada, todas as exceções para o mesmo entrante são afetadas.
