1. Fluxos de Notificação do GBDS 4

Quando o GBDS realiza operações de cadastro (enroll) e atualização (update), notificações são enviadas para endpoints designados para informar seus resultados. A entidade responsável por este fluxo é chamada Notificador.

Este documento descreve alguns fluxos de notificação durante operações de cadastro e atualização.

See also

Para informações adicionais sobre fluxos de notificação durante controle de sequência e controle de qualidade, consulte a documentação de controle de sequência e controle de qualidade.

Note

Todas as notificações enviadas pelo Notificador são HTTP POST para um endpoint configurado (http://<endereço>:<porta>), contendo um objeto JSON. O modelo do JSON para cada notificação está apresentado abaixo.

Warning

O endpoint que receberá a notificação deve ser implementado individualmente para cada sistema.

1.1. Transação Aceita

Todas as transações assíncronas recebidas serão enfileiradas. Após o processamento, uma notificação é enviada informando que a operação foi concluída.

A mensagem de notificação será como no exemplo abaixo:

{
   "operation": "<operação>",
   "tguid": "<tguid>",
   "status": "ENROLLED"
}

Note

As possíveis operações neste passo são: ENROLL, UPDATE, or SEARCH.

Note

O notificador pode retornar status diferentes, conforme o tipo de transação sendo realizada. Os possíveis status finais são:

Operação Status
Enroll/Update ENROLLED, FAILED
Search MATCH, NOT_MATCH, FAILED, PERSON_NOT_FOUND

O status FAILED ocorre sempre que uma transação for abortada our não puder ser finalizada.

O status PERSON_NOT_FOUND ocorre quando uma busca 1:1 é recebida, mas o perfil de referência não existe para a chave fornecida.

Em alguns casos, o GBDS identifica transações que não podem ser finalizadas e necessitam de intervenção. Estes casos geram diferentes status e estão descritos nas seções abaixo.

1.2. Transação Enviada para Revisão Manual

Nos casos em que o GBDS identificou problemas relacionados ao controle de sequência ou controle de qualidade, e a transação foi enviada para revisão manual, uma notificação será enviada indicando que o cadastro está pendente, como no exemplo abaixo:

{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "PENDING"
}

See also

Para informações adicionais sobre fluxos de notificação durante controle de sequência e controle de qualidade, consulte a documentação de controle de sequência e controle de qualidade.

See also

Consulte o Manual do MIR para maiores detalhes sobre resolução de transações enviadas para revisão manual.

1.3. Transação com Exceção Biométrica

Se uma exceção for gerada ao processar a transação, a transação entrante será enviada ao tratamento de exceções para análise. Neste caso, a notificação é enviada informando que transação causou uma exceção, como mostrado no exemplo abaixo:

{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "EXCEPTION"
}

Note

Notificações geradas por operações de Atualização (Update) não alteram o campo “operation”, e a seção "operation": "ENROLL" será igual para operações de cadastro e atualização.

See also

Consulte o Manual do ETR para maiores detalhes sobre tratamento de exceções.

1.3.1. Tratamento de Exceções

O processo de tratamento de exceções gerará diferentes notificações de acordo com as decisões tomadas. Esta seção apresenta os fluxos de notificação no tratamento de exceções.

1.3.1.1. Exceção de Cadastro - Mesmos Dedos

Esta decisão confirma que as biometrias nos dois registros são da mesma pessoa, portanto a transação entrante falha e é descartada. O endpoint de notificação, neste caso, receberá uma notificação indicando a decisão de tratamento de exceção seguida de outra indicando a falha na transação de cadastro, como mostrado abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "SAME_FINGERS"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "FAILED"
}

1.3.1.2. Exceção de Cadastro - Dedos Diferentes

Esta decisão indica que o resultado foi um falso positivo, portanto o entrante e o registro de referência contêm conjuntos biométricos distintos. Neste caso, o cadastro será efetivado, e a notificação descrevendo o tratamento da exceção será seguida por outra indicando o cadastro bem-sucedido, como mostrado abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "DIFFERENT_FINGERS"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "ENROLLED"
}

1.3.1.3. Tratamento de Exceção - Fundir Transações

Esta opção confirma que as biometrias em ambos registros são da mesma pessoa, mas decide fundir o conteúdo biográfico e biométrico dos dois registros. Neste caso, o cadastro será efetivado, e a notificação descrevendo o tratamento da exceção será seguida por outra indicando o cadastro bem-sucedido, como mostrado abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "MERGE_TRANSACTIONS"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "ENROLLED"
}

1.3.1.4. Tratamento de Exceção - Recoletar

Esta decisão indica que houve um erro no cadastro entrante, e que as biometrias devem ser recoletadas. Neste caso, a transação entrante falhará. A notificação indicando a decisão de tratamento da exceção será seguida pela notificação indicando a falha da transação de cadastro, como mostrado a seguir:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "RECOLLECT"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "FAILED"
}

1.3.1.5. Exceção de Atualização - Mesmos Dedos

Esta decisão indica que o não-casamento foi um falso negativo, e as biometrias nos dois registros são da mesma pessoa. Portanto, a transação entrante é cadastrada com sucesso. O endpoint de notificação receberá uma notificação indicando o tratamento da exceção seguida pela notificação de sucesso da transação de atualização, como mostrado abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "SAME_FINGERS"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "ENROLLED"
}

1.3.1.6. Exceção de Atualização - Dedos Diferentes

Esta decisão confirma que as biometrias nos dois registros não são da mesma pessoa, portanto a transação entrante falha e é descartada. O endpoint de notificação receberá uma notificação do tratamento de exceção seguida pela notificação de falha da transação de atualização, como no exemplo abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "DIFFERENT_FINGERS"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "FAILED"
}

1.3.1.7. Exceção de Atualização - Recoletar

Esta decisão indica que houve erro na coleta da transação entrante, e que as biometria precisam ser recoletadas. A transação entrante falhará, e o endpoint de notificação receberá uma notificação da decisão de tratamento da exceção seguida pela notificação da falha da transação entrante, como mostrado abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "RECOLLECT"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "FAILED"
}

1.3.1.8. Exceção de Atualização - Cadastro Incorreto

Esta decisão indica que há um erro no registro de referência, e que este registro deve ser descartado e substituído pela transação entrante. A notificação descrevendo o tratamento da exceção será seguida pela notificação de sucesso da transação de atualização, como no exemplo abaixo:

{
   "operation": "TREAT_EXCEPTION",
   "tguid": "<tguid>",
   "status": "OK",
   "treatment": "INCORRECT_ENROLL"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "ENROLLED"
}

1.4. Casamento com Latente Não Resolvida

Ao realizar uma busca contra uma base de latentes não resolvidas, quaisquer casamentos encontrados gerarão notificações de casamento reverso de latente (Reverse latent match), contendo o UGUID da latente não resolvida (UL, Unsolved Latent) casada. A transação de cadastro ou atualização prosseguirá normalmente, sendo comparada com a base referência. Esta busca normal pode resultar em conclusão normal ou gerar exceção. O exemplo abaixo mostra as notificações recebidas em uma situação de casamento de latente não resolvida seguida de cadastro bem-sucedido:

{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "REVERSE_LATENT_MATCH",
   "uguid": "<uguid>"
}
{
   "operation": "ENROLL",
   "tguid": "<tguid>",
   "status": "ENROLLED"
}