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

# Socios en BC Correios

> Limita la credencial de un socio en BC Correios a los correos que elijas, indícale cómo nombrarlos en cada solicitud, y lee los rechazos que recibe.

Un [socio](https://docs.lerian.studio/es/platform/access-manager/features/partners/overview) puede llamar a [BC Correios](https://docs.lerian.studio/es/rails/bc-correios/what-is-lerian-bc-correios.md) con su propia credencial. En BC Correios, limitas esa credencial a algunos correos. Esta página muestra cómo elegir ese ámbito, qué alcanza y qué recibe el socio cuando sale de él.

Todo socio de BC Correios necesita un ámbito: al menos un correo.

## Paso a paso

***

**1. Elige con qué trabaja el socio**

Una instalación de BC Correios atiende a una institución, así que el correo es el único elemento al que puedes limitar a un socio. El **campo de la API** es el `field` de una entrada de ámbito; la Console muestra el nombre de la primera columna.

| Restricción | Campo de la API | Qué alcanza el socio | Qué se le rechaza |
| - | - | - | - |
| **Correo** | `mailId` | Sus propios correos: leerlos, leer sus adjuntos y su análisis de IA, marcarlos como leídos, archivarlos y restaurarlos, pedir un nuevo análisis de IA, responderlos y leer su registro de auditoría. | Otros correos, la lista y el conteo de correos, un mensaje nuevo que no responde a ningún correo, la configuración, el dashboard y la exportación de la auditoría. |

Cada valor es el ID que BC Correios devuelve para el correo.

El catálogo de ámbito lista la restricción de BC Correios. Léelo con [Consultar el catálogo de ámbito de un producto](https://docs.lerian.studio/es/reference/platform/access-manager/retrieve-a-product-s-scope-catalog.md) para `plugin-bc-correios`.

Algunas reglas valen para todo ámbito:

* Una solicitud que no nombra un correo se rechaza. Por ejemplo, un socio no puede listar ni contar los correos de tu institución: lee solo los correos cuyos IDs le das.
* Una query que lista varios correos se rechaza cuando cualquiera de ellos está fuera del ámbito.
* Las rutas que actúan sobre toda la instalación se rechazan a todo socio: la configuración, el dashboard, la exportación de la auditoría, la configuración en tiempo de ejecución y el manifiesto de streaming.

**2. Da al socio sus permisos y su ámbito**

Crea el socio, o cámbialo, en la [Console](https://docs.lerian.studio/es/platform/access-manager/features/partners/console.md) o con la [API de Identity](https://docs.lerian.studio/es/platform/access-manager/features/partners/api.md). El slug del producto es `plugin-bc-correios`.

* Agrega al menos una entrada de ámbito para BC Correios. Sin ella, Access Manager rechaza el socio con `400` y `IDE-1060`.
* Revisa los recursos y las acciones. Lo máximo que puedes dar es lo que tiene el rol `plugin-bc-correios-editor-role` en tu tenant.

Access Manager verifica cada escritura que das contra el ámbito. Una escritura que actúa sobre toda la instalación nunca se da a un socio, y se rechaza con `400` y `IDE-1056`. La Console marca la línea como **Outside the scope**. En BC Correios, esas escrituras son crear y cambiar la configuración, probar las conexiones con BC Correio y con la IA, y cambiar la configuración en tiempo de ejecución.

Las escrituras que un socio puede recibir son `mails` con `post` (una respuesta, un nuevo análisis de IA) y `mails` con `put` (archivar, restaurar).

**3. Crea su aplicación de BC Correios**

Crea la aplicación del socio con el producto `plugin-bc-correios`. Consulta [Crea las aplicaciones del socio](https://docs.lerian.studio/es/platform/access-manager/features/partners/api.md#create-the-partners-applications) en la guía de la API, o [en la Console](https://docs.lerian.studio/es/platform/access-manager/features/partners/console.md#create-the-partners-applications). Envía el client ID y el client secret al socio por un canal seguro.

**4. Indica al socio cómo nombrar sus correos**

En la mayoría de las rutas el correo ya está en el path. En las otras, el socio lo nombra en la query o en el cuerpo que BC Correios ya tiene. Toda ruta de abajo usa la ruta base `/api/v1/correios`.

| Rutas | Escrituras | Lecturas y rutas por ID |
| - | - | - |
| Un correo: `/mails/{mailId}`, `/mails/{mailId}/ai-status`, `/mails/{mailId}/attachments/{attachmentId}` | `PUT /mails/{mailId}/read`, `/archive`, `/restore` y `POST /mails/{mailId}/reanalyze`: path `mailId` | Path `mailId` |
| Envío: `/mails/send` | Para responder: cuerpo `inReplyToMailId`. Un mensaje nuevo no nombra correo y se rechaza | Ninguna |
| Registro de auditoría: `/audit` | Ninguna | Para leer: query `mailId` |
| Correos: `/mails`, `/mails/count` | Ninguna | Ninguna: las rutas actúan sobre todo el buzón y se rechazan |
| Configuración, dashboard, exportación de la auditoría: `/settings`, `/dashboard/summary`, `/dashboard/categories`, `/audit/export` | Ninguna: las escrituras nunca se dan a un socio | Ninguna: las rutas actúan sobre toda la instalación y se rechazan |

> [!WARNING]
>
> Un socio nunca lista correos: dale el ID de cada correo con el que debe trabajar, y agrega ese ID a su ámbito. Un correo que llega después no está en el ámbito hasta que lo agregas.

**5. Confirma que funciona**

Esta comprobación supone que el socio tiene el recurso `mails` con la acción `get` en BC Correios, y un ámbito con un correo. Usa la credencial del socio. Lee el correo de su ámbito. La respuesta es `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}"
```

Envía la misma solicitud con un correo fuera del ámbito. La respuesta es `403`. Para ver el código, quita `-o /dev/null`: el cuerpo de la respuesta trae `BCC-1003`.

## Si algo falla

***

| Código | Estado | Qué significa | Qué hacer |
| - | - | - | - |
| `BCC-1003` | 403 | La solicitud está fuera de los permisos o fuera del ámbito del socio, o no nombra un correo. | Verifica que la solicitud nombra su correo en el campo de esa ruta, con un valor del ámbito del socio. Verifica también que el socio tiene el permiso de esa ruta. |
| `BCC-0002` | 400 | `inReplyToMailId` recibió una lista de correos. | Envía un correo en el campo. |
| `BCC-1002` | 401 | El socio está suspendido, o la solicitud está fuera de su ventana de validez. | Reactiva el socio, o cambia su ventana de validez. |

La respuesta no dice si fueron los permisos o el ámbito los que rechazaron la solicitud. Es a propósito: un socio no puede usar un rechazo para saber qué correos existen fuera de su ámbito.

Para cualquier otro código, consulta la [lista de errores de BC Correios](https://docs.lerian.studio/es/reference/rails/bc-correios/bc-correios-error-list.md). Para los rechazos al crear o cambiar un socio, consulta [Códigos de error](https://docs.lerian.studio/es/platform/access-manager/features/partners/api.md#error-codes) en la guía de la API.


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