# Fluxos do SPID Services

Este documento descreve brevemente os fluxos de operação do **SPID Services**, a API para integração com o *SPID Client*.

Há dois fluxos essenciais, *Captura Presencial* e *Captura Remota*, detalhados a abaixo.

## Captura Presencial

O fluxo de operação para captura presencial segue o diagrama abaixo, e a principal diferenciação depende do CPF consultado já existir na base. Todas as operações mencionadas neste fluxo estão detalhadas no manual [SPID Services API](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5).

![Fluxo SPID Services: Captura Presencial](/files/GAN9raYcv27O7X7AdZIK)

### Autenticação

1. A aplicação deve se autenticar no SPID Client com a chamada [Login](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login) e se certificar que a operação foi bem sucedida com a chamada [Login Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login-status).
2. A aplicação deve iniciar uma verificação chamando [Verify](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#verify) com o CPF do indivíduo.

Caso o CPF do indivíduo não esteja na base, a chamada retornará *PERSON\_NOT\_FOUND*, e a aplicação deverá seguir [Indivíduo Não Cadastrado](#individuo-nao-cadastrado). Caso contrário, deverá seguir o [Indivíduo Já Cadastrado](#individuo-ja-cadastrado).

### Indivíduo Não Cadastrado

1. A aplicação precisa realizar o *enroll* do indivíduo, chamando [Enroll](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#enroll) (Enroll) e chamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) até obter o status *CLIENT\_CAPTURE\_DONE*.
2. A aplicação deve iniciar a autenticação biométrica do operador com [Operator Capture](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#operator-capture), e chamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) até obter a indicação de sucesso *OPERATOR\_CAPTURE\_DONE*.
3. A aplicação deve enviar a captura com [Capture Send](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-send) (*Send*). Neste caso, a operação será assíncrona, o a resposta esperada é *CAPTURE\_ENQUEUED*.
4. Opcionalmente, a aplicação pode consultar o status do processamento do enroll com [Capture Result by ID](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-result-by-id). O processamento do enroll pode ser demorado, e a aplicação não deve assumir que obterá uma resposta definitiva em um curto período de espera.
5. A aplicação pode obter o relatório da operação com [Capture Report](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-report), concluindo o fluxo de tratamento do indivíduo.

### Indivíduo Já Cadastrado

1. A chamada **Verify** retornará *CLIENT\_CAPTURING* e será iniciada a captura biométrica do indivíduo. A aplicação deve chamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) até obter indicação que a captura foi concluída, *CLIENT\_CAPTURE\_DONE*.
2. A aplicação deve iniciar a autenticação biométrica do operador com [Operator Capture](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#operator-capture), e chamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) até obter a indicação de sucesso *OPERATOR\_CAPTURE\_DONE*.
3. A aplicação deve enviar a captura com [Capture Send](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-send) (*Send*). Neste caso, a operação será síncrona e retornará a resposta *VERIFIED* indicando sucesso.
4. A aplicação deve obter o status o match biométrico, chamando [Capture Result by ID](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-result-by-id) com o *TGUID* recebido no passo anterior. Se não houve match (*SEARCH\_NOT\_MATCH*), a aplicação pode, se desejar, realizar o enroll do indivíduo.
5. A aplicação pode obter o relatório da operação com [Capture Report](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-report), concluindo o fluxo de tratamento do indivíduo.

### Reenvios

Os envios (**Capture Send**) podem falhar por erros de transmissão e falhas temporárias de infra-estrutura (servidores indisponíveis ou sobrecarregados). Recomenda-se que a aplicação realize uma vez por dia o reenvio das operações pendentes, chamando [Capture Resend All](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-resend-all) (*Capture Resend All*).

## Captura Remota

O fluxo de operação para captura remota através de serviço externo de verificação, que inclui um aplicativo instalado no dispositivo (smartphone/tablet) do cliente, segue o diagrama abaixo. Todas as operações mencionadas neste fluxo estão detalhadas no manual [SPID Services API](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5). A captura remota permite tanto a verificação de clientes já cadastrados na base (Remote Verify) como o cadastro de novos clientes (Remote Enroll).

![Fluxo SPID Services: Captura Remota](/files/n5vsGASSY0JtShBNIitD)

### Autenticação

1. A aplicação deve se autenticar no SPID Client com a chamada [Login](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login) e se certificar que a operação foi bem sucedida com a chamada [Login Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login-status).

### Captura do Operador

1. A aplicação deve iniciar a autenticação biométrica do operador com [Operator Capture](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#operator-capture), e chamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) até obter a indicação de sucesso *OPERATOR\_CAPTURE\_DONE*.

### Verificação Remota do Cliente

1. A aplicação deve iniciar a verificação remota do cliente com a a chamada [Remote Verify](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#remote-verify). Esta chamada retornará uma *URL* (usada pelo aplicativo externo do cliente para submeter os dados biométricos para verificação) e um *TGUID* (identificador da transação).
2. A *URL* é repassada ao serviço de verificação remota, que realizará a captura biométrica (através de aplicativo no dispositivo do cliente) e utilizará a URL para submeter os dados biométricos capturados.
3. A aplicação deve verificar o resultado da verificação biométrica com a chamada [Remote Verify Result by ID](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#remote-verify-result-by-id), que retornará *SEARCH\_MATCH* ou *SEARCH\_NOT\_MATCH*, indicando o resultado da operação.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.griaule.com/psbio/spid/fluxo_spid_services.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
