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

# Integración con Lerian BC Correios

> Integración con Lerian BC Correios: la configuración del tenant, la prueba de conexión, los grupos de Access Manager, la idempotencia, los errores y los límites de solicitud.

Los endpoints de negocio siguientes usan la ruta base `/api/v1/correios`. El systemplane del operador usa `/v1/system`. La [Referencia de API](https://docs.lerian.studio/es/reference/rails/bc-correios/list-or-search-mails.md) documenta cada operación, con su solicitud y su respuesta.

## Antes de empezar

***

Un tenant necesita una configuración antes de que Lerian BC Correios pueda sondear BC Correio o enviar un mensaje.

1. Crea la configuración con `POST /settings`. Envía el usuario y la contraseña Sisbacen en `bcbUsername` y `bcbPassword`.
2. Prueba la conexión con `POST /settings/test-connection`. Llama a BC Correio con las credenciales almacenadas.

Un segundo `POST /settings` para el mismo tenant devuelve `409` `BCC-0006`. Cambia una configuración existente con `PATCH /settings`, y el período de retención con `PATCH /settings/retention`.

`GET /settings` no devuelve los valores de las credenciales. En su lugar, devuelve `hasBcbCredentials` y `hasAiApiKey`.

## Autenticación y permisos

***

Cada operación necesita un bearer token de [Lerian Access Manager](https://docs.lerian.studio/es/platform/access-manager.md). Lerian BC Correios lee el tenant del claim `tenant_id` del token.

Access Manager otorga el acceso a través de tres grupos:

| Grupo | Acceso |
| - | - |
| `plugin-bc-correios-viewer-group` | Leer correos, adjuntos, la configuración, el registro de auditoría y el dashboard. Marcar un correo como leído. |
| `plugin-bc-correios-contributor-group` | Acceso de viewer. Además, enviar mensajes, pedir un análisis de IA y archivar o restaurar correos. |
| `plugin-bc-correios-editor-group` | Acceso de contributor. Además, crear y cambiar la configuración, y probar las conexiones con BC Correio y con la IA. |

El grupo de administradores de Access Manager tiene el mismo acceso que el grupo editor.

## Idempotencia

***

`POST /mails/send` necesita un header `X-Idempotency`. Una solicitud sin él devuelve `422`. Una solicitud con un valor vacío devuelve `400` `BCC-0001`.

`POST /mails/{id}/reanalyze` también necesita el header. Una solicitud sin él, o con un valor vacío, devuelve `400` `BCC-0001`.

En cada operación que acepta el header, se aplican estas reglas:

* Una repetición mientras la primera solicitud aún se ejecuta devuelve `409` `BCC-0012` con un header `Retry-After`.
* Mientras la cache guarda una clave, la misma clave en una solicitud diferente devuelve `422` `BCC-0001`.
* Una clave de más de 128 bytes devuelve `400` `BCC-0001`.

## Errores

***

Los errores siguen los problem details de RFC 9457. Decide la rama con el campo `code`, no con el texto de `detail`. La [lista de errores de BC Correios](https://docs.lerian.studio/es/reference/rails/bc-correios/bc-correios-error-list.md) da cada código, su significado y su estado HTTP.

## Convenciones de integración

***

* **Límites de envío.** `subject` acepta como máximo 500 bytes, y `body` como máximo 102400 bytes. `keywords` acepta como máximo 10 entradas de como máximo 100 caracteres cada una. Un cuerpo de solicitud de más de 8 MB devuelve `413` `BCC-4003`.
* **Conteo de correos.** `GET /mails/count` puede devolver un conteo de hasta 60 segundos de antigüedad.
* **Rate limits.** Cuando `RATE_LIMIT_ENABLED` es `true`, cada tenant tiene un presupuesto de solicitudes por fila de la tabla siguiente, en una ventana de 60 segundos. Las operaciones de una misma fila comparten ese presupuesto. Al superarlo, la respuesta es `429` `BCC-0007` con un header `Retry-After`.
* **Descargas de adjuntos.** Cada tenant puede descargar `ATTACHMENT_BANDWIDTH_BUDGET_MB_PER_MIN` megabytes de adjuntos por minuto, 500 de forma predeterminada. Al superarlo, la respuesta es `429` `BANDWIDTH_LIMIT_EXCEEDED`.

| Operación | Solicitudes cada 60 segundos |
| - | - |
| Obtener un correo, marcarlo como leído, archivar, restaurar, estado de la IA | 500 |
| Listar o buscar correos | 100 |
| Descargar un adjunto | 100 |
| Configuración, excepto la prueba de conexión con la IA | 60 |
| Dashboard | 60 |
| Registro de auditoría y exportación | 50 |
| Contar correos | 30 |
| Enviar un mensaje | 10 |
| Pedir un análisis de IA | 10 |
| Probar la conexión con la IA | 5 |


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