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

# Transferencias entre cores

> Envía una TED a una cuenta que tiene el otro core de tu institución, y recibe sus créditos, por el relay de JD Courier.

Tu institución puede operar dos cores en un ISPB. Una cuenta de ese ISPB pertenece entonces a uno de los dos cores. Una TED de una cuenta de Bank Transfer a una cuenta que tiene el otro core es una TED entre cores. El plugin no la envía al STR. Envía el crédito al otro core por el relay de [JD Courier](https://docs.lerian.studio/es/interfaces/jd-courier/what-is-jd-courier.md). El otro core envía sus TED entre cores a Bank Transfer por el mismo relay.

## Cuándo una TED es entre cores

***

La política de tenant `onus.shared_ispb_gate_enabled` (predeterminado `false`) indica que tu ISPB se comparte con otro core. Cuando es `true`, o ilegible, el plugin le pregunta al mapa de titularidad de JD Courier quién tiene la cuenta del destinatario de cada TED a tu ISPB:

| Titular de la cuenta del destinatario | Resultado |
| - | - |
| Este motor | Un [P2P](https://docs.lerian.studio/es/interfaces/ted-jd/ted-p2p.md) |
| El otro core | Una TED entre cores, tipo `CROSS_CORE` |
| Ningún motor | Rechazada con `422 BTF-4003` |
| El mapa no responde | Rechazada con `503 BTF-4000`, `502 BTF-4001` o `503 BTF-4002` |

Con `false`, una TED a tu propio ISPB es un P2P, y el plugin no consulta el mapa.

## Envía una TED entre cores

***

Una TED entre cores usa las mismas dos llamadas que una TED OUT: [Initiate Transfer](https://docs.lerian.studio/es/reference/interfaces/ted-jd/initiate-transfer.md) y [Process Transfer](https://docs.lerian.studio/es/reference/interfaces/ted-jd/process-transfer.md).

1. **Iniciar.** El plugin calcula la comisión de la transferencia como en una TED OUT: la comisión se cobra además del monto, y el destinatario recibe el monto completo. En el modo de comisión `native`, un paquete de comisiones que saca la comisión del monto se rechaza con `422 BTF-3002`. Como un P2P, una TED entre cores ignora la ventana de operación de TED OUT.
2. **Procesar.** El plugin verifica otra vez el titular de la cuenta del destinatario. Retiene el monto más la comisión en la cuenta del remitente, con la cuenta de ledger `@intercore` como contrapartida. Luego envía el crédito al otro core por JD Courier.

La respuesta decide qué pasa con la retención:

| Respuesta | Retención | Estado de la transferencia |
| - | - | - |
| El otro core acreditó al destinatario | Confirmada | `COMPLETED` |
| En el primer intento, el otro core rechazó el crédito, o el crédito no le llegó | Liberada. `/process` responde `422 BTF-4005` | `REJECTED` |
| El resultado es desconocido, por ejemplo después de un timeout | Mantenida | `PROCESSING` |

El worker de conciliación reenvía un crédito con resultado desconocido, dentro y fuera de la ventana de TED OUT. Cuando el otro core acredita al destinatario, el plugin confirma la retención. El plugin mantiene la retención y estaciona la transferencia para un operador en estos casos:

* Después de un intento cuyo resultado fue desconocido, el otro core rechaza el crédito, o JD Courier responde que el titular de la cuenta del destinatario cambió.
* No llega ninguna respuesta en 24 horas.
* La liberación de la retención no termina.

Una transferencia estacionada queda `PROCESSING`, con estado de conciliación `MANUAL_REVIEW`. Encuéntrala con [List Pending Reconciliation](https://docs.lerian.studio/es/reference/interfaces/ted-jd/list-pending-reconciliation.md). Un operador la resuelve como una TED OUT con [Resolve Transfer Reconciliation](https://docs.lerian.studio/es/reference/interfaces/ted-jd/resolve-transfer-reconciliation.md): `SETTLE` confirma la retención, y `REVERT` la libera.

Antes de poner la retención, `/process` rechaza la transferencia en estos casos:

* `422 BTF-4003`: el titular de la cuenta del destinatario cambió después de la iniciación. La transferencia queda `FAILED`.
* `503 BTF-4000`: el mapa de titularidad no muestra la cuenta del remitente como mantenida por este motor. Envía la confirmación otra vez más tarde.

## Recibe créditos entre cores

***

El otro core envía sus TED entre cores a Bank Transfer por JD Courier. El plugin registra cada una en el ledger del destinatario, sin comisión:

* **Un crédito** debita `@intercore` y acredita al destinatario el monto completo, en el vínculo de `CROSS_CORE_IN`.
* **Una devolución de una TED entre cores que enviaste** debita `@intercore` y acredita al remitente original, en el vínculo de `CROSS_CORE_RETURN_IN`. Una devolución puede ser parcial. El plugin rechaza una devolución por encima del monto todavía no devuelto.

Ambas son transferencias de tipo `CROSS_CORE_IN` con estado `COMPLETED`, y ambas disparan `transfer_incoming.completed`.

## Configura las transferencias entre cores

***

1. Define la política de tenant `onus.shared_ispb_gate_enabled` como `true` mediante la Admin API.
2. Conecta el plugin con JD Courier mediante las [variables de JD Courier](https://docs.lerian.studio/es/interfaces/ted-jd/ted-environment-variables.md#jd-courier). Define `COURIER_ACCOUNT_CLAIMS_ENABLED` como `true`, para que el plugin reclame las cuentas de este motor en el mapa de titularidad.
3. Crea una cuenta con el alias `@intercore` en cada ledger que envía o recibe TED entre cores. Un crédito del otro core la debita, así que [permite el sobregiro](https://docs.lerian.studio/es/products/midaz/balance-overdraft.md) en su saldo.
4. Agrega los vínculos de `CROSS_CORE_OUT`, `CROSS_CORE_IN` y `CROSS_CORE_RETURN_IN` al [enrutamiento del ledger](https://docs.lerian.studio/es/interfaces/ted-jd/ted-configuration.md#ledger-routing). Cada ledger con un vínculo de `CROSS_CORE_OUT` también necesita un vínculo de `CROSS_CORE_RETURN_IN`.
5. Configura el otro core como describen las páginas de [JD Courier](https://docs.lerian.studio/es/interfaces/jd-courier/what-is-jd-courier.md).

Antes de mover tráfico, llama a [Check Ledger Routing Readiness](https://docs.lerian.studio/es/reference/interfaces/ted-jd/check-ledger-routing-readiness.md). Indica cada vínculo que falta.


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