> ## Documentation Index
> Fetch the complete documentation index at: https://docs-platform.services-valid.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Verificar status da autorização

> Obtém o estado atual da autenticação e autorização no provedor de certificado.

Verifica o estado atual da autenticação e autorização do signatário no provedor de certificado em nuvem. Use esta chamada para saber se a autenticação foi concluída com sucesso, falhou ou ainda está pendente.

**Autenticação**: use apenas o `sessionToken` na URL — nenhum header de autenticação é necessário.

## Parâmetros

<ParamField path="sessionToken" type="string" required>
  Token único da sessão do signatário.
</ParamField>

## Respostas

<ResponseField name="status" type="enum">
  Estado atual da autorização. Um dos valores:

  * `none` — nenhuma sessão de autorização iniciada.
  * `pending` — autenticação em andamento; aguardando o signatário voltar do provedor.
  * `authorized` — autorização bem-sucedida; pronto para assinar.
  * `expired` — opções de autenticação ou credencial vencidas.
  * `signed` — a credencial já foi usada para assinar; não pode ser reutilizada.
  * `failed` — autenticação ou autorização falhou (motivo em `error`).
</ResponseField>

<ResponseField name="providerName" type="string" nullable>
  Nome do provedor escolhido, ex.: `"Valid"`, `"Soluti"`. Presente quando `status` não é `none`.
</ResponseField>

<ResponseField name="productName" type="string" nullable>
  Produto do provedor, ex.: `"VIDaaS"`, `"BirdID"`. Presente quando `status` não é `none`.
</ResponseField>

<ResponseField name="certificateHolder" type="string" nullable>
  Titular do certificado autenticado (nome completo). Preenchido quando `status` é `authorized`, `signed` ou `failed`.
</ResponseField>

<ResponseField name="certificateIdentifier" type="string" nullable>
  CPF ou CNPJ do titular, só dígitos. Preenchido quando `status` é `authorized`, `signed` ou `failed`.
</ResponseField>

<ResponseField name="expiresAt" type="string" nullable>
  Timestamp (ISO 8601) de quando a credencial vence. Preenchido quando `status` é `authorized`.
</ResponseField>

<ResponseField name="error" type="string" nullable>
  Motivo da falha. Preenchido apenas quando `status` é `failed`.
</ResponseField>

## Erros

Veja [Autenticação e erros](/plataforma/assinatura-digital/api/erros-e-autenticacao).

* **410**: Session token expirado (envelope expirou ou foi deletado).

<ResponseExample>
  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "status": "authorized",
    "providerName": "Valid",
    "productName": "VIDaaS",
    "certificateHolder": "João da Silva Santos",
    "certificateIdentifier": "12345678901",
    "expiresAt": "2025-07-27T14:30:00Z",
    "error": null
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "status": "pending",
    "providerName": "Soluti",
    "productName": "BirdID",
    "certificateHolder": null,
    "certificateIdentifier": null,
    "expiresAt": null,
    "error": null
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "status": "failed",
    "providerName": "Valid",
    "productName": "VIDaaS",
    "certificateHolder": null,
    "certificateIdentifier": null,
    "expiresAt": null,
    "error": "User denied authorization"
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 200 OK
  Content-Type: application/json

  {
    "status": "none",
    "providerName": null,
    "productName": null,
    "certificateHolder": null,
    "certificateIdentifier": null,
    "expiresAt": null,
    "error": null
  }
  ```

  ```json theme={"theme":"catppuccin-latte"}
  HTTP/1.1 410 Gone
  Content-Type: application/json

  {
    "statusCode": 410,
    "message": "Session expired"
  }
  ```
</ResponseExample>

## Exemplo

```bash theme={"theme":"catppuccin-latte"}
curl -X GET "https://api.valid.com/signer/v1/sign/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.../integraicp/authorization" \
  -H "Content-Type: application/json"
```

## Estados e próximas ações

| Status | Ação |
| :- | :- |
| `none` | Nenhuma autenticação iniciada. Chame [`POST .../integraicp/start`](/plataforma/assinatura-digital/api/post-integraicp-start) para começar. |
| `pending` | Aguarde o signatário completar a autenticação no provedor. Consulte novamente em alguns segundos. |
| `authorized` | Autorização bem-sucedida! O signatário pode agora assinar com [`POST /signer/v1/sign/:sessionToken/sign`](/plataforma/assinatura-digital/api/post-sign). |
| `expired` | Opções ou credencial venceram. Inicie novamente com [`GET .../integraicp/clearances`](/plataforma/assinatura-digital/api/get-integraicp-clearances). |
| `signed` | Credencial já foi usada. Inicie uma nova autorização se necessário. |
| `failed` | Autenticação ou autorização falhou. Oferça ao signatário a opção de tentar novamente com outro provedor. |

## Relacionado

* [`GET .../integraicp/clearances`](/plataforma/assinatura-digital/api/get-integraicp-clearances) — listar provedores disponíveis
* [`POST .../integraicp/start`](/plataforma/assinatura-digital/api/post-integraicp-start) — iniciar autenticação
* [`POST /signer/v1/sign/:sessionToken/sign`](/plataforma/assinatura-digital/api/post-sign) — assinar com certificado autorizado


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.