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

# Datos y reportes

> Consulta los campos y ciclos de estado disponibles para Bank Transfer — reconciliación, trazas de auditoría y reportes de cumplimiento.

Cada transferencia genera un registro de auditoría completo. Esta página describe los datos disponibles para reportes, reconciliación y cumplimiento.

## Qué datos se registran por transferencia

***

| Campo                | Significado                                                                                                                                                                                                                |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `transferId`         | Su referencia interna para esta transferencia                                                                                                                                                                              |
| `confirmationNumber` | Referencia legible para el usuario (por ejemplo, 20260205001) — muéstresela a los clientes                                                                                                                                 |
| `controlNumber`      | Referencia JD SPB — úsela para la reconciliación bancaria                                                                                                                                                                  |
| `type`               | TED OUT, TED IN o P2P                                                                                                                                                                                                      |
| `status`             | Estado actual de la transferencia                                                                                                                                                                                          |
| `amount`             | Monto de la transferencia antes de la tarifa                                                                                                                                                                               |
| `feeAmount`          | Tarifa cobrada                                                                                                                                                                                                             |
| `totalAmount`        | Total debitado (monto + tarifa)                                                                                                                                                                                            |
| `senderAccountId`    | Cuenta de envío en su sistema. Siempre presente; para TED IN — donde el remitente es un banco externo sin cuenta local — es un identificador sintético derivado de forma determinista a partir del documento del remitente |
| `recipientAccountId` | Cuenta destinataria en Midaz, cuando el destinatario está representado internamente                                                                                                                                        |
| `recipientDetails`   | Banco, sucursal, número de cuenta y nombre del titular del destinatario                                                                                                                                                    |
| `originalTransferId` | La transferencia TED OUT original que compensa una devolución (TED IN de retorno)                                                                                                                                          |
| `devolutionCode`     | Código BACEN del motivo de devolución, cuando aplica                                                                                                                                                                       |
| `createdAt`          | Cuándo se inició la transferencia                                                                                                                                                                                          |
| `completedAt`        | Cuándo se confirmó la liquidación                                                                                                                                                                                          |

## Ciclo de vida del estado de la transferencia

***

### TED OUT

<img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/ted-state-machine-ted-out.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=edc09870ca40cf40602fa367498d3744" alt="Diagrama de máquina de estado TED OUT" width="1116" height="552" data-path="images/es/d2/ted-state-machine-ted-out.svg" />

* **Cliente confirmado** (`CREATED`) — transferencia confirmada por el cliente, en cola para envío
* **Enviada a la red bancaria** (`PENDING`) — mensaje enviado a JD Consultores, esperando reconocimiento
* **Procesamiento bancario** (`PROCESSING`) — JD aceptó la transferencia y la está enrutando
* **Liquidada** (`COMPLETED`) — transferencia liquidada con éxito en el banco de destino
* **Rechazada** (`REJECTED`) — JD devolvió un error de negocio (por ejemplo, datos de cuenta inválidos)
* **Fallida** (`FAILED`) — falla técnica (timeout o indisponibilidad del servicio)
* **Cancelada** (`CANCELLED`) — el cliente canceló antes de que se enviara la transferencia

### TED IN

<img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/ted-state-machine-ted-in.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=386bbde43ba3086136fe7005681ae17f" alt="Diagrama de máquina de estado TED IN" width="896" height="410" data-path="images/es/d2/ted-state-machine-ted-in.svg" />

* **Transferencia detectada** (`RECEIVED`) — mensaje entrante persistido, pendiente de procesamiento interno
* **Destinatario validado** (`PROCESSING`) — el sistema está acreditando la cuenta del destinatario
* **Monto acreditado** (`COMPLETED`) — cuenta del destinatario acreditada con éxito

<Note>
  TED IN admite una transición de `COMPLETED` a `FAILED` para gestionar devoluciones — casos en los que una transferencia fue inicialmente liquidada pero luego revertida por el banco remitente.
</Note>

### P2P

<img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/ted-state-machine-ted-p2p.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=121878aa285b195a416cb7068f6b6405" alt="Diagrama de máquina de estado P2P" width="805" height="461" data-path="images/es/d2/ted-state-machine-ted-p2p.svg" />

* **Confirmada** (`CREATED`) — transferencia iniciada entre cuentas internas
* **Procesando** (`PROCESSING`) — transacción de Midaz en progreso
* **Liquidada** (`COMPLETED`) — ambas cuentas actualizadas con éxito
* **Fallida** (`FAILED`) — error de procesamiento
* **Cancelada** (`CANCELLED`) — cancelada antes de que comenzara el procesamiento

## Revisión de tarifa antes de la confirmación (solo TED OUT)

***

Para TED OUT, los clientes pasan por un flujo de dos pasos:

<img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/ted-state-machine-initiation.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=c868eb2314c927f1e457a09c8b1c3ab4" alt="Diagrama de ciclo de vida de PaymentInitiation" width="1102" height="410" data-path="images/es/d2/ted-state-machine-initiation.svg" />

* **Pendiente de confirmación** — la tarifa ha sido calculada y presentada; el cliente aún no ha confirmado
* **Procesada** — el cliente confirmó y se creó la transferencia
* **Expirada** — transcurrieron 24 horas sin confirmación

Esto permite a los clientes revisar el costo total (monto + tarifa) antes de comprometerse con la transferencia.

## Historial de estados

***

Cada transición de estado se registra con una marca de tiempo, el estado anterior, el nuevo estado y un motivo (para errores y cancelaciones). Esto le proporciona un registro de auditoría completo de cada transferencia — quién cambió qué y cuándo.

El campo `changedBy` registra si la transición fue desencadenada por el sistema, el cliente o un administrador.

## Campos de reconciliación

***

Use estos campos para relacionar los registros de transferencia con sus extractos bancarios:

| Campo                | Uso para                                                                         |
| -------------------- | -------------------------------------------------------------------------------- |
| `controlNumber`      | Relacionar con los registros de JD SPB                                           |
| `confirmationNumber` | Referencia orientada al cliente                                                  |
| `transferId`         | Búsquedas en el sistema interno                                                  |
| `originalTransferId` | Vincular una devolución (TED IN de retorno) con el TED OUT original que compensa |
| `devolutionCode`     | Clasificar el motivo BACEN de una devolución (retorno)                           |
| `createdAt`          | Filtrar por fecha de iniciación                                                  |
| `completedAt`        | Filtrar por fecha de liquidación                                                 |

## Retención de datos

***

<Warning>
  Los registros de transferencia se conservan durante 5 años conforme a los requisitos regulatorios del BACEN (Resolución 4.753/2019). No elimine registros de transferencia.
</Warning>

## Consulta de sus datos

***

Use [Listar Transferencias](/es/reference/midaz/plugins/ted/list-transfers) para consultar transferencias con los siguientes filtros:

* **Por rango de fechas** — filtre por `createdAt` o `completedAt`
* **Por tipo** — TED OUT, TED IN o P2P
* **Por estado** — por ejemplo, solo transferencias `COMPLETED` para reconciliación, o `FAILED` para investigación

## Para desarrolladores

***

### Almacenamiento

Los datos de transferencia se almacenan en PostgreSQL. El campo `recipientDetails` utiliza JSONB para admitir las diferentes estructuras de datos que requieren los destinatarios de TED OUT, TED IN y P2P, mientras que `recipientAccountId` referencia una cuenta de Midaz cuando el destinatario es interno.

Para admitir los patrones de consulta comunes, el plugin mantiene los siguientes índices:

* `(tenant_id, created_at)` para listados paginados.
* `(tenant_id, status, created_at)` para filtros basados en estado.
* `(control_number)` para búsquedas en JD Consultores.

La tabla de auditoría `transfer_status_history` está optimizada para flujos de auditoría e investigación mediante los siguientes índices:

* `(transfer_id, changed_at DESC)` para el historial a nivel de transferencia.
* `(tenant_id, changed_at DESC)` para consultas de auditoría de todo el tenant dentro de un rango de tiempo.

### Deduplicación de TED IN entrante

Antes de que se procese una transferencia TED IN, el plugin almacena el mensaje JD sin procesar en la tabla `JDIncomingMessage`. Esto garantiza que las transferencias entrantes aún puedan recuperarse si el servicio falla durante el procesamiento.

Para prevenir el procesamiento duplicado, la tabla aplica una restricción única en `sequenceNumber` (el `NumCabSeq` de JD). Si JD reentrega el mismo mensaje, el plugin lo identifica automáticamente como duplicado y lo ignora.

### Relaciones entre entidades

El modelo de dominio de TED sigue estas relaciones:

* Cada `Transfer` pertenece a una única organización y puede tener múltiples registros de `TransferStatusHistory`.
* Las transferencias TED OUT pueden originarse desde una `PaymentInitiation` al usar el flujo de transferencia de dos pasos.
* Cada `JDIncomingMessage` puede crear como máximo un `Transfer` de tipo `TED_IN`.

<img src="https://mintcdn.com/lerian-49cb71fc/ZrZBZTM4DWnrahSd/images/es/d2/ted-entity-relationships.svg?fit=max&auto=format&n=ZrZBZTM4DWnrahSd&q=85&s=5e373f8ed3bddedea897c3a342046eac" alt="Diagrama de relación entre entidades" width="1503" height="842" data-path="images/es/d2/ted-entity-relationships.svg" />
