# Flujos de SPID Services

Este documento describe brevemente los flujos de operación del **SPID Services**, la API para integración con el *SPID Client*.

Hay dos flujos esenciales, *Captura Presencial* y *Captura Remota*, detallados a continuación.

## Captura Presencial

El flujo de operación para captura presencial sigue el diagrama a continuación, y la principal diferenciación depende de si el CPF consultado ya existe en la base. Todas las operaciones mencionadas en este flujo están detalladas en el manual [SPID Services API](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5).

![Flujo SPID Services: Captura Presencial](/files/f1059154c28d895c6c361b067fa1e87b09868ce0)

### Autenticación

1. La aplicación debe autenticarse en el SPID Client con la llamada [Login](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login) y asegurarse de que la operación fue exitosa con la llamada [Login Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login-status).
2. La aplicación debe iniciar una verificación llamando [Verify](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#verify) con el CPF del individuo.

Si el CPF del individuo no está en la base, la llamada devolverá *PERSON\_NOT\_FOUND*, y la aplicación deberá seguir [Individuo No Registrado](#individuo-nao-cadastrado). De lo contrario, deberá seguir el [Individuo Ya Registrado](#individuo-ja-cadastrado).

### Individuo No Registrado

1. La aplicación necesita realizar el *enroll* del individuo, llamando [Enroll](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#enroll) (Enroll) y llamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) hasta obtener el estado *CLIENT\_CAPTURE\_DONE*.
2. La aplicación debe iniciar la autenticación biométrica del operador con [Operator Capture](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#operator-capture), y llamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) hasta obtener la indicación de éxito *OPERATOR\_CAPTURE\_DONE*.
3. La aplicación debe enviar la captura con [Capture Send](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-send) (*Send*). En este caso, la operación será asíncrona, la respuesta esperada es *CAPTURE\_ENQUEUED*.
4. Opcionalmente, la aplicación puede consultar el estado del procesamiento del enroll con [Capture Result by ID](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-result-by-id). El procesamiento del enroll puede ser lento, y la aplicación no debe asumir que obtendrá una respuesta definitiva en un corto periodo de espera.
5. La aplicación puede obtener el informe de la operación con [Capture Report](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-report), concluyendo el flujo de tratamiento del individuo.

### Individuo Ya Registrado

1. La llamada **Verify** devolverá *CLIENT\_CAPTURING* y se iniciará la captura biométrica del individuo. La aplicación debe llamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) hasta obtener indicación de que la captura fue concluida, *CLIENT\_CAPTURE\_DONE*.
2. La aplicación debe iniciar la autenticación biométrica del operador con [Operator Capture](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#operator-capture), y llamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) hasta obtener la indicación de éxito *OPERATOR\_CAPTURE\_DONE*.
3. La aplicación debe enviar la captura con [Capture Send](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-send) (*Send*). En este caso, la operación será síncrona y devolverá la respuesta *VERIFIED* indicando éxito.
4. La aplicación debe obtener el estado del match biométrico, llamando [Capture Result by ID](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-result-by-id) con el *TGUID* recibido en el paso anterior. Si no hubo match (*SEARCH\_NOT\_MATCH*), la aplicación puede, si lo desea, realizar el enroll del individuo.
5. La aplicación puede obtener el informe de la operación con [Capture Report](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-report), concluyendo el flujo de tratamiento del individuo.

### Reenvíos

Los envíos (**Capture Send**) pueden fallar por errores de transmisión y fallas temporales de infraestructura (servidores no disponibles o sobrecargados). Se recomienda que la aplicación realice una vez al día el reenvío de las operaciones pendientes, llamando [Capture Resend All](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-resend-all) (*Capture Resend All*).

## Captura Remota

El flujo de operación para captura remota a través de un servicio externo de verificación, que incluye una aplicación instalada en el dispositivo (smartphone/tablet) del cliente, sigue el diagrama a continuación. Todas las operaciones mencionadas en este flujo están detalladas en el manual [SPID Services API](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5). La captura remota permite tanto la verificación de clientes ya registrados en la base (Remote Verify) como el registro de nuevos clientes (Remote Enroll).

![Flujo SPID Services: Captura Remota](/files/6b54400a8411310a3b9263bc0ad289a8a3a1aafc)

### Autenticación

1. La aplicación debe autenticarse en el SPID Client con la llamada [Login](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login) y asegurarse de que la operación fue exitosa con la llamada [Login Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#login-status).

### Captura del Operador

1. La aplicación debe iniciar la autenticación biométrica del operador con [Operator Capture](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#operator-capture), y llamar [Capture Status](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#capture-status) hasta obtener la indicación de éxito *OPERATOR\_CAPTURE\_DONE*.

### Verificación Remota del Cliente

1. La aplicación debe iniciar la verificación remota del cliente con la llamada [Remote Verify](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#remote-verify). Esta llamada devolverá una *URL* (usada por la aplicación externa del cliente para enviar los datos biométricos para verificación) y un *TGUID* (identificador de la transacción).
2. El *URL* es remitido al servicio de verificación remota, que realizará la captura biométrica (a través de una aplicación en el dispositivo del cliente) y utilizará la URL para enviar los datos biométricos capturados.
3. La aplicación debe verificar el resultado de la verificación biométrica con la llamada [Remote Verify Result by ID](broken://spaces/MqtschPie46KAAzuKKeD/pages/suQa3nM3QfSgXnSaUff5#remote-verify-result-by-id), que devolverá *SEARCH\_MATCH* o *SEARCH\_NOT\_MATCH*, indicando el resultado de la operación.


---

# 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/es/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.
