> For the complete documentation index, see [llms.txt](https://docs.griaule.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.griaule.com/gbspsbio/integracao/fluxos-spid-services.md).

# Fluxos do SPID Services

#### Sobre esta página

Descreve 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. As operações citadas estão detalhadas na [SPID Services API](https://docs.griaule.com/apis/spid-services).

#### Sumário

1. [Captura presencial](#captura-presencial)
2. [Reenvios](#reenvios)
3. [Captura remota](#captura-remota)

## Captura presencial

A principal diferença no fluxo depende de o CPF consultado já existir na base.

![Fluxo da captura presencial](https://8115392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJaE9Zybol0s5SL1TerUi%2Fuploads%2FwTsJyob4Xz84gcPssc8G%2Fimg-presencial-r2.png?alt=media)

### Autenticação

1. A aplicação se autentica no SPID Client com **Login** e confirma o sucesso com **Login Status**.
2. A aplicação inicia uma verificação com **Verify**, informando o CPF do indivíduo.
   * Se o CPF não estiver na base, a resposta é `PERSON_NOT_FOUND`: siga o fluxo de indivíduo não cadastrado.
   * Caso contrário, siga o fluxo de indivíduo já cadastrado.

{% tabs %}
{% tab title="Indivíduo não cadastrado" %}

1. Chame **Enroll** e consulte **Capture Status** até receber `CLIENT_CAPTURE_DONE`.
2. Inicie a autenticação biométrica do operador com **Operator Capture** e consulte **Capture Status** até receber `OPERATOR_CAPTURE_DONE`.
3. Envie a coleta com **Capture Send**. O envio é assíncrono, e a resposta esperada é `CAPTURE_ENQUEUED`.
4. Se quiser, acompanhe o processamento com **Capture Result by ID**.
5. Obtenha o relatório da operação com **Capture Report**.

{% hint style="warning" %}
**O processamento do enroll pode ser demorado.** A aplicação não deve assumir que obterá uma resposta definitiva em um curto período de espera.
{% endhint %}
{% endtab %}

{% tab title="Indivíduo já cadastrado" %}

1. O **Verify** retorna `CLIENT_CAPTURING` e a captura biométrica do indivíduo é iniciada. Consulte **Capture Status** até receber `CLIENT_CAPTURE_DONE`.
2. Inicie a autenticação biométrica do operador com **Operator Capture** e consulte **Capture Status** até receber `OPERATOR_CAPTURE_DONE`.
3. Envie a coleta com **Capture Send**. O envio é síncrono e responde `VERIFIED`.
4. Consulte o resultado da comparação com **Capture Result by ID**, usando o TGUID recebido.
   * `SEARCH_MATCH`: houve match biométrico.
   * `SEARCH_NOT_MATCH`: não houve match. A aplicação pode, se desejar, realizar o enroll do indivíduo.
5. Obtenha o relatório da operação com **Capture Report**.
   {% endtab %}
   {% endtabs %}

***

## Reenvios

Os envios (**Capture Send**) podem falhar por erros de transmissão e falhas temporárias de infraestrutura, como servidores indisponíveis ou sobrecarregados.

{% hint style="success" %}
**Recomenda-se reenviar as operações pendentes uma vez por dia**, chamando **Capture Resend All**.
{% endhint %}

***

## Captura remota

Fluxo de captura por meio de um serviço externo de verificação, que inclui um aplicativo instalado no dispositivo (smartphone ou tablet) do cliente. Permite tanto a verificação de clientes já cadastrados na base (**Remote Verify**) como o cadastro de novos clientes (**Remote Enroll**). Veja também [Integração com o SPIDX](/gbspsbio/como-funciona/spidx.md).

![Fluxo da captura remota](https://8115392-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJaE9Zybol0s5SL1TerUi%2Fuploads%2FPPQ4dggwuqmuM0yNXE0e%2Fimg-remoto-r2.png?alt=media)

1. A aplicação se autentica no SPID Client com **Login** e confirma com **Login Status**.
2. Inicie a autenticação biométrica do operador com **Operator Capture** e consulte **Capture Status** até receber `OPERATOR_CAPTURE_DONE`.
3. Chame **Remote Verify** ou **Remote Enroll**. A resposta traz uma URL e um TGUID.
4. Repasse a URL ao serviço de verificação remota, que realiza a captura biométrica no dispositivo do cliente e usa a URL para submeter os dados capturados.
5. Consulte o resultado com o TGUID:
   * **Remote Verify Result by ID:** `SEARCH_MATCH`, `SEARCH_NOT_MATCH` ou `SEARCH_IN_PROGRESS` (pendente de outro PSBio);
   * **Remote Enroll Result by ID:** consulte novamente enquanto o retorno for `REMOTE_CAPTURE_PENDING`, até receber `ENROLL_IN_PROGRESS`.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.griaule.com/gbspsbio/integracao/fluxos-spid-services.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
