Cómo funciona
- Un cliente de otro banco inicia una transferencia TED hacia una de las cuentas de tu institución
- Cuando el sondeo de TED IN está activado (
JD_POLLING_ENABLED), el plugin sondea la red de JD SPB en busca de nuevas transferencias entrantes cada 60 segundos (valor predeterminado deJD_POLL_INTERVAL_SECONDS) - El plugin busca la cuenta del destinatario en tu CRM por el número de documento del mensaje de la transferencia
- El plugin acredita la cuenta del destinatario, menos la comisión de cashin si configuraste una. El plugin registra el crédito en el ledger del destinatario en Midaz, según el enrutamiento del ledger de esa organización, ese ledger y el tipo de transferencia
Créditos al cliente
El plugin también acredita al destinatario en siete créditos al cliente que el banco pagador envía como otros mensajes STR. Cada uno tiene su propio tipo de transferencia:
Cada uno de estos tipos necesita su propio vínculo en el enrutamiento del ledger. El plugin nunca los registra en el vínculo de
TED_IN. Un STR0041R2 cuya tarifa bancaria no es cero no se acredita: el plugin lo retiene con el motivo CLASSIFICATION_FAILED.
En el modo de comisión legacy, plugin-fees calcula la comisión de cada tipo con su propio paquete de comisiones, nunca con el de TED_IN. Sin paquete para el tipo, el plugin acredita el monto completo.
Cronología de detección y procesamiento
Las etapas de abajo muestran qué pasa después de que el banco de origen envía la transferencia:
Tiempo típico: el crédito se completa dentro de un ciclo de sondeo. Con el intervalo de sondeo predeterminado de 60 segundos, los fondos llegan en cerca de un minuto.
Estados de la transferencia
Comisión de recepción (cashin)
Tu organización puede cobrar una comisión sobre las transferencias entrantes. En el modo de comisión
legacy, el plugin descuenta la comisión del monto antes de acreditar al destinatario, y el destinatario recibe el monto neto. En el modo de comisión native, descuenta solo una comisión que el paquete de comisiones saca del monto. Defines el monto y la configuración de la comisión por organización mediante el Fees Engine.
Fórmula, para una comisión descontada: credited amount = transfer amount − fee
Ejemplo: una transferencia de R$1,000.00 con una comisión descontada de R$2.50 acredita R$997.50 a la cuenta del destinatario. Es lo contrario de TED OUT, donde el plugin suma la comisión encima y el remitente paga más.
Qué pasa cuando no se encuentra al destinatario
Si el plugin no puede asociar el número de documento de la transferencia entrante con una cuenta de tu CRM, la política de tenant
jd_polling.auto_return_authorized decide qué pasa. En ambos casos, el plugin no acredita nada y no crea ningún registro de transferencia.
false(predeterminado): el plugin no devuelve nada. Retiene el mensaje con el motivoRECIPIENT_NOT_FOUND_RETURN_UNAUTHORIZED. Un operador liquida los fondos fuera del plugin y luego registra el resultado con Close Unsettled TED IN Credit. El cierre no mueve dinero.true: el plugin devuelve la transferencia al banco de origen (devolução STR0010) y el cliente que envió recupera su dinero.
- La cuenta del destinatario no existe en el ledger o coincide con más de una cuenta en tu CRM.
- El ledger rechaza el crédito.
- La comisión no se puede resolver y
fees.fail_closed_defaultestrue.
Consultar las transferencias recibidas
Usa el endpoint List Transfers para obtener todas las transferencias entrantes. Filtra por
type=TED_IN para ver las TED recibidas, por un tipo TED_IN_STR para ver una clase de crédito al cliente, y por ledgerId para ver las transferencias de un ledger.
Endpoint: GET /v1/transfers
Respuesta (campos clave):
Endpoints operativos
Estos endpoints de operador controlan el bucle de sondeo de TED IN. Están pensados para scripts y runbooks, no para tráfico de usuario final.
Para el cuerpo de la solicitud, la respuesta, los códigos de estado y los códigos de error, consulta la especificación OpenAPI de TED.
Devolver una transferencia recibida
Puedes devolver una TED IN completada al banco pagador con Return a Transfer. La solicitud necesita el permiso
transfers:return.
- El plugin coloca una retención del monto acreditado en la cuenta del destinatario.
- El plugin envía un STR0010 voluntario (código de motivo de devolución
70), que devuelve el monto bruto de la TED IN al banco pagador. - Cuando el STR liquida el STR0010, el plugin revierte el crédito original en el ledger. La devolución pasa a
COMPLETED.
REJECTED.
La devolución es una nueva transferencia TED_OUT sin comisión, y su originalTransferId nombra la TED IN. Considera estas reglas:
- Solo una TED recibida como STR0008R2 puede devolverse. Un crédito al cliente no puede, y un crédito entre cores tampoco (
422 BTF-0118). - Una TED IN tiene como máximo una devolución activa.
- La devolución se ejecuta solo dentro de la ventana de operación. El 24 de diciembre y el último día hábil del año, la ventana de las devoluciones cierra como máximo a las 13:00.
- La devolución se registra en el vínculo de
TED_OUTdel ledger de la TED IN. - No puedes cancelar una devolución.
Mensajes que esperan a un operador
Monitorea cada una de estas colas por separado. No son intercambiables:
La DLQ de webhooks es un camino distinto: contiene las entregas de webhook salientes que fallaron, no las transferencias entrantes. Consulta Webhooks.
Webhooks
Configura un webhook para recibir notificaciones en tiempo real cuando lleguen transferencias. El evento
transfer_incoming.completed se dispara apenas el plugin acredita una transferencia. Consulta Webhooks para ver la configuración y los detalles del payload del evento.
Conciliación
Para la conciliación contable y financiera, cada registro de transferencia incluye estos campos:
El plugin persiste los registros de transferencia para conciliación y auditoría.
Garantías de procesamiento
- Sin créditos duplicados: el plugin guarda cada mensaje de JD una vez, por su número de secuencia (
NumCabSeq). También deduplica los créditos por número de control, ISPB del remitente y monto. - Primero el mensaje: el plugin guarda cada mensaje antes de procesarlo. Un mensaje que no puede terminar queda sin procesar, y el siguiente ciclo de sondeo lo procesa de nuevo.
- Colas de operador: un mensaje que el plugin no puede acreditar ni devolver espera en las colas de arriba.

