> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerian.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Parceiros no BC Correios

> Restrinja a credencial de um parceiro no BC Correios às correspondências que você escolher, diga a ele como nomeá-las em cada requisição, e leia as recusas que ele recebe.

Um [parceiro](https://docs.lerian.studio/pt/platform/access-manager/features/partners/overview) pode chamar o [BC Correios](https://docs.lerian.studio/pt/rails/bc-correios/what-is-lerian-bc-correios.md) com uma credencial própria. No BC Correios, você restringe essa credencial a algumas correspondências. Esta página mostra como escolher esse escopo, o que ele alcança e o que o parceiro recebe quando sai dele.

Todo parceiro do BC Correios precisa de escopo: pelo menos uma correspondência.

## Passo a passo

***

**1. Escolha com o que o parceiro trabalha**

Uma instalação do BC Correios atende uma instituição, então a correspondência é o único item ao qual você pode restringir um parceiro. O **campo na API** é o `field` de uma entrada de escopo; o Console mostra o nome da primeira coluna.

| Restrição | Campo na API | O que o parceiro alcança | O que é recusado |
| - | - | - | - |
| **Correspondência** | `mailId` | As próprias correspondências: lê-las, ler os anexos e a análise de IA delas, marcá-las como lidas, arquivá-las e restaurá-las, pedir uma nova análise de IA, respondê-las e ler a trilha de auditoria delas. | Outras correspondências, a lista e a contagem de correspondências, uma mensagem nova que não responde a nenhuma correspondência, as configurações, o dashboard e a exportação da auditoria. |

Cada valor é o ID que o BC Correios devolve para a correspondência.

O catálogo de escopo lista a restrição do BC Correios. Leia-o com [Consultar o catálogo de escopo de um produto](https://docs.lerian.studio/pt/reference/platform/access-manager/retrieve-a-product-s-scope-catalog.md) para `plugin-bc-correios`.

Algumas regras valem para todo escopo:

* Uma requisição que não nomeia uma correspondência é recusada. Por exemplo, um parceiro não pode listar nem contar as correspondências da sua instituição: ele lê só as correspondências cujos IDs você dá a ele.
* Uma query que lista várias correspondências é recusada quando qualquer uma delas está fora do escopo.
* As rotas que atuam sobre a instalação inteira são recusadas a todo parceiro: configurações, dashboard, exportação da auditoria, configuração em tempo de execução e o manifesto de streaming.

**2. Dê ao parceiro as permissões e o escopo**

Crie o parceiro, ou altere-o, no [Console](https://docs.lerian.studio/pt/platform/access-manager/features/partners/console.md) ou com a [API do Identity](https://docs.lerian.studio/pt/platform/access-manager/features/partners/api.md). O slug do produto é `plugin-bc-correios`.

* Adicione pelo menos uma entrada de escopo para o BC Correios. Sem ela, o Access Manager recusa o parceiro com `400` e `IDE-1060`.
* Confira os recursos e as ações. O máximo que você pode dar é o que o papel `plugin-bc-correios-editor-role` tem no seu tenant.

O Access Manager confere cada escrita que você dá contra o escopo. Uma escrita que atua sobre a instalação inteira nunca é dada a um parceiro, e é recusada com `400` e `IDE-1056`. O Console marca a linha como **Fora do escopo**. No BC Correios, essas escritas são criar e alterar as configurações, testar as conexões com o BC Correio e com a IA, e alterar a configuração em tempo de execução.

As escritas que um parceiro pode receber são `mails` com `post` (uma resposta, uma nova análise de IA) e `mails` com `put` (arquivar, restaurar).

**3. Crie a aplicação dele no BC Correios**

Crie a aplicação do parceiro com o produto `plugin-bc-correios`. Veja [Crie as aplicações do parceiro](https://docs.lerian.studio/pt/platform/access-manager/features/partners/api.md#create-the-partners-applications) no guia da API, ou [no Console](https://docs.lerian.studio/pt/platform/access-manager/features/partners/console.md#create-the-partners-applications). Envie o client ID e o client secret ao parceiro por um canal seguro.

**4. Diga ao parceiro como nomear as correspondências dele**

Na maioria das rotas a correspondência já está no path. Nas outras, o parceiro a nomeia na query ou no corpo que o BC Correios já tem. Toda rota abaixo usa o caminho base `/api/v1/correios`.

| Rotas | Escritas | Leituras e rotas por ID |
| - | - | - |
| Uma correspondência: `/mails/{mailId}`, `/mails/{mailId}/ai-status`, `/mails/{mailId}/attachments/{attachmentId}` | `PUT /mails/{mailId}/read`, `/archive`, `/restore` e `POST /mails/{mailId}/reanalyze`: path `mailId` | Path `mailId` |
| Envio: `/mails/send` | Para responder: corpo `inReplyToMailId`. Uma mensagem nova não nomeia correspondência e é recusada | Nenhuma |
| Trilha de auditoria: `/audit` | Nenhuma | Para ler: query `mailId` |
| Correspondências: `/mails`, `/mails/count` | Nenhuma | Nenhuma: as rotas atuam sobre a caixa inteira e são recusadas |
| Configurações, dashboard, exportação da auditoria: `/settings`, `/dashboard/summary`, `/dashboard/categories`, `/audit/export` | Nenhuma: as escritas nunca são dadas a um parceiro | Nenhuma: as rotas atuam sobre a instalação inteira e são recusadas |

> [!WARNING]
>
> Um parceiro nunca lista correspondências: dê a ele o ID de cada correspondência com que ele precisa trabalhar, e adicione esse ID ao escopo dele. Uma correspondência que chega depois não está no escopo até você adicioná-la.

**5. Confirme que funciona**

Esta conferência supõe que o parceiro tem o recurso `mails` com a ação `get` no BC Correios, e um escopo com uma correspondência. Use a credencial do parceiro. Leia a correspondência do escopo dele. A resposta é `200`:

```bash theme={null}
CORREIOS_BASE_URL="https://correios.<your-domain>/api/v1/correios"   # your BC Correios base URL
CORREIOS_BEARER_TOKEN="paste-the-partner-access-token-here"
MAIL_ID="paste-a-mail-id-in-the-scope-here"

curl -s -o /dev/null -w '%{http_code}\n' \
  -H "Authorization: Bearer ${CORREIOS_BEARER_TOKEN}" \
  "${CORREIOS_BASE_URL}/mails/${MAIL_ID}"
```

Envie a mesma requisição com uma correspondência fora do escopo. A resposta é `403`. Para ver o código, tire o `-o /dev/null`: o corpo da resposta traz `BCC-1003`.

## Se algo falhar

***

| Código | Status | O que significa | O que fazer |
| - | - | - | - |
| `BCC-1003` | 403 | A requisição está fora das permissões ou fora do escopo do parceiro, ou não nomeia uma correspondência. | Confira se a requisição nomeia a correspondência no campo dessa rota, com um valor do escopo do parceiro. Confira também se o parceiro tem a permissão dessa rota. |
| `BCC-0002` | 400 | `inReplyToMailId` recebeu uma lista de correspondências. | Envie uma correspondência no campo. |
| `BCC-1002` | 401 | O parceiro está suspenso, ou a requisição está fora da janela de validade dele. | Reative o parceiro, ou altere a janela de validade dele. |

A resposta não diz se foram as permissões ou o escopo que recusaram a requisição. Isso é proposital: um parceiro não consegue usar uma recusa para descobrir quais correspondências existem fora do escopo dele.

Para qualquer outro código, veja a [lista de erros do BC Correios](https://docs.lerian.studio/pt/reference/rails/bc-correios/bc-correios-error-list.md). Para as recusas ao criar ou alterar um parceiro, veja [Códigos de erro](https://docs.lerian.studio/pt/platform/access-manager/features/partners/api.md#error-codes) no guia da API.


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