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

> Restringe la credencial de TED de un socio a las organizaciones de Midaz en las que actúa, indica la organización en cada solicitud y entiende los rechazos que recibe.

Un [socio](https://docs.lerian.studio/es/platform/access-manager/features/partners/overview) puede llamar al plugin de TED con su propia credencial. Restringes esa credencial a las organizaciones de Midaz en las que actúa. Lo necesitas cuando una implementación de TED atiende varias organizaciones.

Todo socio de TED necesita un alcance.

## Paso a paso

***

**1. Elige las organizaciones en las que actúa el socio**

TED tiene una restricción:

| Restricción | Campo de la API | Lo que alcanza el socio | Lo que se rechaza |
| - | - | - | - |
| **Organización de Midaz** | `organizationId` | Las transferencias de cada organización de la lista: iniciar, firmar, procesar y devolver una transferencia, leer una transferencia, listar transferencias, leer la lista de conciliaciones pendientes y leer el dashboard. | Todas las demás organizaciones, y las rutas que actúan sobre todo el tenant (consulta [Rutas que ningún socio alcanza](#routes-that-no-partner-reaches)). |

El ledger y las cuentas de una transferencia no son una restricción de TED. TED encuentra el ledger a partir de la cuenta del remitente. Para restringir un socio a algunos ledgers o cuentas, dale también un [alcance en Midaz](https://docs.lerian.studio/es/platform/access-manager/features/partners/midaz.md). Midaz aplica ese alcance a los asientos que TED hace para el socio. Consulta [Las reglas del socio en Midaz valen para sus transferencias](#the-partners-midaz-rules-apply-to-its-transfers).

**2. Da al socio sus permisos y su alcance**

Crea el socio, o modifícalo, en la [Consola](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-br-bank-transfer`. La restricción acepta varias organizaciones.

* Agrega la entrada de alcance con las organizaciones. Sin ella, Access Manager rechaza el socio con `400` e `IDE-1060`.
* Revisa los recursos y las acciones. Lo máximo que puedes dar es lo que tiene el rol `plugin-br-bank-transfer-editor-role` en tu tenant. Por encima de eso, Access Manager rechaza con `IDE-1043`.

Puedes dar a un socio estas acciones sobre el recurso `transfers`: `create`, `process`, `read`, `list` y `return`. Todas las demás acciones actúan sobre todo el tenant: la cancelación y el reintento de conciliación de una transferencia, el poller de TED IN y su replay, el ciclo de conciliación, la resolución manual y la reparación de alcance, los webhooks, la configuración de runtime y el catálogo de eventos. Access Manager las rechaza con `400` e `IDE-1056`, y la Consola marca la línea como **Fuera del alcance**.

**3. Crea su aplicación de TED**

Crea la aplicación del socio con el producto `plugin-br-bank-transfer`. 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 Consola](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 la organización en cada solicitud**

Toda solicitud indica la organización en el encabezado `X-Organization-Id`, que TED ya exige en estas rutas. El valor debe estar en el alcance del socio. Una solicitud sin él se rechaza.

| Rutas | Escrituras | Lecturas y rutas por ID |
| - | - | - |
| Transferencias: `/v1/transfers/initiate`, `/v1/transfers/signing/prepare`, `/v1/transfers/process` | Encabezado `X-Organization-Id` | — |
| Una transferencia: `/v1/transfers/{transferId}`, `/v1/transfers/{transferId}/return` | Encabezado `X-Organization-Id` | Encabezado `X-Organization-Id` |
| Listas: `/v1/transfers`, `/v1/transfers/reconciliation/pending`, `/v1/transfers/dashboard/summary` | — | Encabezado `X-Organization-Id` |

El encabezado acepta una organización. Una transferencia de otra organización responde `404`, aunque esa organización esté en el alcance del socio: indica la organización a la que pertenece la transferencia.

**5. Confirma que funciona**

Usa la credencial del socio. Lista las transferencias de una organización del alcance del socio. La respuesta es `200`:

```bash theme={null}
TED_BASE_URL="https://ted.<your-domain>"                 # your TED base URL
TED_BEARER_TOKEN="paste-the-partner-access-token-here"
OWN_ORGANIZATION_ID="paste-an-organization-in-the-scope"

curl -s -o /dev/null -w '%{http_code}\n' \
  -H "Authorization: Bearer ${TED_BEARER_TOKEN}" \
  -H "X-Organization-Id: ${OWN_ORGANIZATION_ID}" \
  "${TED_BASE_URL}/v1/transfers"
```

Envía la misma solicitud con una organización fuera del alcance del socio. La respuesta es `403` con `BTF-0405`.

## Las reglas del socio en Midaz valen para sus transferencias

***

TED registra cada transferencia en Midaz mientras atiende la solicitud del socio. Cuando el socio también tiene permisos en Midaz, Midaz aplica el alcance del socio en Midaz a ese asiento. Por ejemplo, un socio restringido en Midaz a un ledger no puede mover dinero de otro ledger de la misma organización a través de TED.

* Cuando Midaz rechaza el socio, TED responde `403` con `BTF-0405`, y `upstream.code` trae el código de Midaz, por ejemplo `AUT-1019`. El rechazo no mueve dinero, y una repetición recibe el mismo rechazo hasta que cambies los permisos o el alcance del socio en Midaz.
* El alcance en Midaz no restringe lo que el socio lee en TED. Leer una transferencia, listar transferencias, la lista de conciliaciones pendientes y el dashboard muestran todas las transferencias TED de la organización, también las transferencias de ledgers fuera del alcance del socio en Midaz. TED responde estas lecturas desde sus propios registros y no llama a Midaz. Da `read` y `list` a un socio solo cuando pueda ver todas las transferencias de la organización.
* Un socio sin permisos en Midaz se decide solo por sus permisos y su alcance en TED.
* Puedes dar al socio sus reglas de Midaz en el mismo flujo de la Consola, o después, en el producto Midaz.
* Un crédito de TED IN, la conciliación y los demás trabajos en segundo plano se ejecutan sin socio. Las reglas del socio no se aplican allí.

## Rutas que ningún socio alcanza

***

Un socio con alcance en TED se rechaza con `403` y `BTF-0405` en las rutas que no indican organización:

* Las lecturas de TED IN: `GET /v1/transfers/ted-in/poller`, `GET /v1/transfers/ted-in/retained`, `GET /v1/transfers/ted-in/undeliverables` y `GET /v1/transfers/ted-in/reconciliation-gaps`.
* El informe de enrutamiento: `GET /v1/transfers/routing/preflight`.

Estas rutas muestran datos de todas las organizaciones de tu tenant. Usa una aplicación de tu propia institución para ellas.

## Si algo falla

***

| Código | Estado | Qué significa | Qué hacer |
| - | - | - | - |
| `BTF-0405` | 403 | La solicitud indica una organización fuera del alcance del socio, no indica ninguna, o está fuera de los permisos o de la lista de IP del socio. Con `upstream.code`, Midaz rechazó el socio: la transferencia está fuera de los permisos o del alcance del socio en Midaz. | Envía `X-Organization-Id` con una organización del alcance del socio. Revisa también los permisos y la lista de IP del socio. Con `upstream.code`, revisa los permisos y el alcance del socio en Midaz. |
| `BTF-0401` | 401 | El socio está suspendido, o la solicitud está fuera de su período de validez. | Reactiva el socio, o cambia su período de validez. |
| `BTF-0200` | 404 | La transferencia no pertenece a la organización que indica la solicitud. No se lee ni se cambia nada. | Revisa el ID de la transferencia y la organización. |
| `BTF-0404` | 404 | Tu institución no opera la organización en TED. | Revisa la organización. |
| `BTF-2000` | 503 | Midaz no respondió. | Lee la transferencia y envía la solicitud de nuevo como describe el endpoint, con una nueva clave `X-Idempotency`. |

`BTF-0405` no dice si fueron los permisos o el alcance los que rechazaron la solicitud. Es intencional: un socio no puede usar un rechazo para saber qué organizaciones existen fuera de su alcance.

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.