> For the complete documentation index, see [llms.txt](https://selenium-4.gitbook.io/nexus-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://selenium-4.gitbook.io/nexus-docs/service-domain/current-account/operacoes/main-4.md).

# Retrieve Account Block

| Campo          | Valor                          |
| -------------- | ------------------------------ |
| Service Domain | Current Account                |
| BIAN Version   | 14.0.0                         |
| Operation      | Retrieve Account Block         |
| Method         | GET                            |
| API Name       | Current Account Management API |
| Versão         | v1.0.0                         |

### 1. Descrição da Operação

O serviço de Consulta de Bloqueios de uma Conta permite obter a lista completa de bloqueios activos e históricos associados a uma conta à ordem. A operação retorna dados como o tipo de bloqueio, motivo, classe, observações, estado, data/hora de início e instruções de processamento (indicador judicial, código de nota de bloqueio, código de mensagem de alerta).

| Campo        | Valor                                                             |
| ------------ | ----------------------------------------------------------------- |
| API Name     | Current Account Management API                                    |
| Versão       | v1.0.0                                                            |
| Endpoint     | GET /v1/current-account/{currentAccountId}/account-block/retrieve |
| Autenticação | Bearer Token (OAuth 2.0 / OIDC)                                   |

### 2. Cabeçalhos HTTP

| Header                         | Obrigatório | Notas                                        |
| ------------------------------ | ----------- | -------------------------------------------- |
| Authorization: Bearer {token}  | Sim         | OAuth2 / JWT client\_credentials para M2M    |
| Content-Type: application/json | Sim         | —                                            |
| Accept: application/json       | Sim         | —                                            |
| x-channel                      | Recomendado | Canal de origem (SOP, MOBILE, BACKOFFICE, …) |

### 3. Parâmetros

#### 3.1 Path Parameters

| Parâmetro        | Tipo   | Obrigatório | Descrição                             |
| ---------------- | ------ | ----------- | ------------------------------------- |
| currentAccountId | string | Sim         | Identificador único da conta à ordem. |

#### 3.2 Query Parameters

| Parâmetro | Tipo    | Obrigatório | Descrição                                                                                                                |
| --------- | ------- | ----------- | ------------------------------------------------------------------------------------------------------------------------ |
| blockType | string  | Não         | Filtra os bloqueios pelo tipo (letra), ex: `T`, `D`, `R`, `Z`. Quando omitido, devolve todos os tipos.                   |
| size      | integer | Não         | Número máximo de registos a devolver na resposta. Quando omitido, é aplicado o valor por omissão do sistema. default: 5. |

**Exemplo:** `GET /v1/current-account/{currentAccountId}/account-block/retrieve?blockType=D&size=10`

### 4. Payload de Resposta (Response - 200 OK)

#### 4.1 Exemplo

```json
{
  "accountBlocks": [
    {
      "accountBlockType": "D",
      "accountBlockReason": "",
      "accountBlockedClass": "",
      "accountBlockRemarks": "Desbloqueio apenas pelo Gab. Compliance",
      "accountBlockDescription": "Movimentos a Débito",
      "accountBlockStatus": {
        "statusCode": "V",
        "statusDescription": "Vigor"
      },
      "accountBlockStartDateTime": {
        "dateTimeContent": "2019-02-13T22:05:15",
        "dateTimeType": "BlockStartDate"
      },
      "accountBlockProcessingInstructions": {
        "judicialBlockIndicator": "",
        "blockNoteCode": "",
        "alertMessageCode": "CIN"
      }
    },
    {
      "accountBlockType": "J",
      "accountBlockReason": "",
      "accountBlockedClass": "",
      "accountBlockRemarks": "Bloqueio solicitado pelo cliente 2",
      "accountBlockDescription": "Pedido de Cartões de Débito",
      "accountBlockStatus": {
        "statusCode": "V",
        "statusDescription": "Vigor"
      },
      "accountBlockStartDateTime": {
        "dateTimeContent": "2026-08-26T17:02:23",
        "dateTimeType": "BlockStartDate"
      },
      "accountBlockProcessingInstructions": {
        "judicialBlockIndicator": "N",
        "blockNoteCode": "",
        "alertMessageCode": ""
      }
    }
  ]
}
```

#### 4.2 Campos da Resposta

| Campo                                                                      | Tipo              | Descrição                                                            |
| -------------------------------------------------------------------------- | ----------------- | -------------------------------------------------------------------- |
| accountBlocks\[]                                                           | array             | Lista de bloqueios associados à conta.                               |
| accountBlocks\[].accountBlockType                                          | string            | Código (letra) do tipo de bloqueio.                                  |
| accountBlocks\[].accountBlockReason                                        | string            | Motivo do bloqueio.                                                  |
| accountBlocks\[].accountBlockedClass                                       | string            | Classe do bloqueio.                                                  |
| accountBlocks\[].accountBlockRemarks                                       | string            | Observações livres associadas ao bloqueio (ex: referência a ofício). |
| accountBlocks\[].accountBlockDescription                                   | string            | Descrição do tipo de bloqueio.                                       |
| accountBlocks\[].accountBlockStatus.statusCode                             | string            | Código do estado do bloqueio.                                        |
| accountBlocks\[].accountBlockStatus.statusDescription                      | string            | Descrição do estado do bloqueio.                                     |
| accountBlocks\[].accountBlockStartDateTime.dateTimeContent                 | string (ISO 8601) | Data/hora de início do bloqueio.                                     |
| accountBlocks\[].accountBlockStartDateTime.dateTimeType                    | string            | Tipo de data/hora (ex: BlockStartDate).                              |
| accountBlocks\[].accountBlockProcessingInstructions.judicialBlockIndicator | string            | Indicador de bloqueio de origem judicial.                            |
| accountBlocks\[].accountBlockProcessingInstructions.blockNoteCode          | string            | Código de nota associada ao bloqueio.                                |
| accountBlocks\[].accountBlockProcessingInstructions.alertMessageCode       | string            | Código de mensagem de alerta associada ao bloqueio.                  |

#### 4.3 Tipos de Bloqueio (accountBlockType)

| Tipo | Descrição                    |
| ---- | ---------------------------- |
| T    | Bloqueio total               |
| D    | Movimentos a Débito          |
| R    | Requisição de Cheques        |
| P    | Pagamento directo nos caixas |
| J    | Pedido de Cartões de Débito  |
| Z    | Depósitos a prazo            |

### 5. Códigos HTTP de Resposta

| Código | Estado                | Descrição                                          |
| ------ | --------------------- | -------------------------------------------------- |
| 200    | OK                    | Consulta executada com sucesso.                    |
| 400    | Bad Request           | Parâmetros inválidos ou em falta.                  |
| 401    | Unauthorized          | Token ausente, expirado ou inválido.               |
| 500    | Internal Server Error | Erro inesperado no sistema.                        |
| 502    | Bad Gateway           | Resposta inválida ou indisponibilidade do serviço. |
| 504    | Gateway Timeout       | Timeout na chamada do serviço.                     |

### 6. Envelope Padrão de Erro

```json
{
  "status": 404,
  "reason": "RESOURCE_NOT_FOUND",
  "message": "Não foi encontrado nenhum bloqueio para a conta indicada.",
  "path": "/v1/current-account/current-accounts/123456/account-block/retrieve",
  "errordetail": [
    {
      "code": "ACB-404-001",
      "reason": "ACCOUNT_NOT_FOUND",
      "message": "currentAccountId '123456' não encontrado ou sem bloqueios associados."
    }
  ]
}
```

#### 6.1 Estrutura do Envelope de Erro

| Campo                  | Tipo    | Descrição                                                               |
| ---------------------- | ------- | ----------------------------------------------------------------------- |
| status                 | integer | Código HTTP do erro.                                                    |
| reason                 | string  | Código textual de alto nível que identifica a categoria do erro.        |
| message                | string  | Mensagem legível que descreve o problema ocorrido.                      |
| path                   | string  | Caminho do endpoint que originou o erro.                                |
| errordetail\[]         | array   | Lista de erros detalhados. Pode estar ausente em erros genéricos (500). |
| errordetail\[].code    | string  | Código específico do domínio (ex: ACB-404-001).                         |
| errordetail\[].reason  | string  | Identificador textual da causa específica do erro.                      |
| errordetail\[].message | string  | Mensagem detalhada com valores concretos quando aplicável.              |

### 7. Regras de Negócio

| # | Regra               | Detalhe                                                                                              |
| - | ------------------- | ---------------------------------------------------------------------------------------------------- |
| 1 | Conta Válida        | O currentAccountId deve corresponder a uma conta activa e existente no sistema.                      |
| 2 | Múltiplos Bloqueios | Uma mesma conta pode ter mais do que um bloqueio activo em simultâneo; a resposta deve listar todos. |
| 3 | Filtro por Tipo     | Quando o parâmetro blockType é indicado, apenas os bloqueios do tipo correspondente são devolvidos.  |
| 4 | Limite de Registos  | Quando o parâmetro size é indicado, o número de registos devolvidos não excede o valor especificado. |

### 8. Requisitos Não-Funcionais

| Requisito    | Detalhe                                                                                            |
| ------------ | -------------------------------------------------------------------------------------------------- |
| HTTPS / TLS  | Obrigatório TLS 1.2 ou superior em todas as comunicações.                                          |
| Bearer Token | Obrigatório — scope account:blocks:retrieve. Pedidos sem token ou com token inválido retornam 401. |
| Auditoria    | Registo persistente obrigatório de todas as consultas (log estruturado).                           |
