> ## Documentation Index
> Fetch the complete documentation index at: https://base39-release-notes-06-mar.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Verificação de assinatura

> O passo do tipo assinatura pode ser usado para verificar assinatura no Portal do Cliente, Portal Empresa e Backoffice

## Parâmetros de configuração

* **Tipo de assinatura** - Pode ser <Tooltip tip="Operador pode ser do Backoffice ou Portal da Empresa">operador</Tooltip> ou cliente;
* **Permissão** - Pode ser aprovador, financeiro ou backoffice.

## Exemplos

### Averbação do RH

Quando o passo está pendendo, um botão de "Averbar" será exibido no Porta da Empresa. Também é possível executar a assinatura por API.

#### Configurar averbação do RH

<Tabs>
  <Tab title="Pela API">
    Para solicitar averbação do RH, configure o passo da seguinte forma:

    ```bash
    curl --request POST \
        --url https://api.base39.io/v1/products/<id> \
        --header 'authorization: Basic <sua-api-key>' \
        --data '
        {
            "settings": {
                "steps": {
                    "averbacao": {
                        "title": "Averbação"
                        "type": "signature",
                        "methodData": {
                            "type": "operator",
                            "role": "approver"
                        },
                    },
                    // ...
                }
            }
        }
        '
    ```
  </Tab>

  <Tab title="Pelo Console">
    <Snippet file="console-not-available.mdx" />
  </Tab>
</Tabs>

#### Consultar empréstimos disponíveis para averbação

<Tabs>
  <Tab title="Pelo Portal da Empresa">
    Uma lista de empréstimos para averbar sempre é exibida da página de empréstimos acima de todos os outros empréstimos.

    {/* TODO: screenshot da página de empréstimos do Portal da Empresa */}
  </Tab>

  <Tab title="Pela API">
    Para verificar se uma proposta está disponível para ser averbada, consulte o *endpoint* [Listar etapas do empréstimo](/development/api-reference/endpoint/get-v1-loans-id-steps) da API de Empréstimos.

    ```bash
    curl --request GET \
        --url 'https://api.base39.io/v1/steps?status=in_progress&type=signature'
    ```

    Filtre a resposta pelo `methodData.type = "operator"` e `methodData.role = "approver"`. Se houver um passo com essas características, a proposta está disponível para ser averbada.

    ```json
    {
        "status": "in_progress",
        "type": "signature",
        "methodData": {
            "type": "operator",
            "role": "approver"
        }
        // ...
    }
    ```
  </Tab>

  <Tab title="Pelo Webhook">
    Para monitorar as propostas disponíveis para averbação, assine o evento `step.marked_in_progress` e filtre os eventos que atendam esses parâmetros:

    ```json
    {
        "status": "in_progress",
        "type": "signature",
        "methodData": {
            "type": "operator",
            "role": "approver"
        }
        // ...
    }
    ```

    É importante monitorar outros eventos que podem impedir a averbação ou representam o resultado da averbação ou recusa:

    * `step.marked_failed` - o operador da empresa recusou a averbação;
    * `step.marked_completed` - o operador da empresa averbou o empréstimo;
    * `loan.canceled` - o empréstimo foi cancelado;
    * `loan.expired` - o empréstimo expirou;
    * `loan.void` - o empréstimo foi anulado.

    <Info>Consulte todos os parâmetros do objeto [Step](/development/api-reference/schema/Step) na referência da API.</Info>
  </Tab>
</Tabs>

#### Averbar um empréstimo

<Tabs>
  <Tab title="Pelo Portal da Empresa">
    O botão de averbar é exibido quando o passo está pendente e se o usuário logado tem a permissão configurada, nesse caso "aprovador".

    <Frame caption="Página do Portal da Empresa que exibe o botão para averbar proposta">
      <img src="https://mintlify.s3-us-west-1.amazonaws.com/base39-release-notes-06-mar/assets/images/company-loan-sign.png" />
    </Frame>
  </Tab>

  <Tab title="Pela API">
    Para verificar se uma proposta está disponível para ser averbada, consulte o *endpoint* [Listar etapas do empréstimo](/development/api-reference/endpoint/get-v1-loans-id-steps) da API de Empréstimos.

    ```bash
    curl --request GET \
        --url 'https://api.base39.io/v1/steps?status=in_progress&type=signature'
    ```

    Filtre a resposta pelo `methodData.type = "operator"` e `methodData.role = "approver"`. Se houver um passo com essas características, a proposta está disponível para ser averbada.

    ```json
    {
        "status": "in_progress",
        "type": "signature",
        "methodData": {
            "type": "operator",
            "role": "approver"
        }
        // ...
    }
    ```

    Para fazer a averbação, utilize o *endpoint* [Assinar empréstimo](/development/api-reference/endpoint/post-v1-loans-sign) da API de Empréstimos para averbar um empréstimo.

    ```bash
    curl --request POST \
        --url 'https://api.base39.io/v1/loans/<id>/sign'
    ```

    Quando a assinatura é feita por um operador com a permissão configurada, nesse caso `approver`, o passo será concluído.
  </Tab>
</Tabs>
