Almacén de Correlación
Cuando un Bulk archivo que contiene <N> pagos (por ejemplo, un IDF que contiene <N>pacs.003s) ha sido enviado por el SEPA DD CSM Service, después de un período de tiempo, entonces recibirá una respuesta para un subconjunto de estos pagos en otro Bulk archivo (por ejemplo,pacs.002s en un DVF). El SepaDD CSM Service debe ser capaz de encontrar y vincular los pagos en esta respuesta recibida con los pagos salientes originales.
El módulo Correlation Store proporciona un almacén de correlación que se utiliza para persistir el ID de transacción de la transacción pasada al bulker y el único Bulk ID del Bulk se almacena en. Esto asegura que cuando un pacs.002 se recibe de SEPA DD, es posible identificar todos los IDs de transacción asociados.
El Almacén de Correlación se utiliza de esta manera, durante el procesamiento de todos los tipos de mensajes, para vincular las respuestas del esquema a su solicitud original.
Tiempo de Vida
La tienda se implementa a través de MongoDB. Por defecto, persistirá las entradas de correlación durante 30 días basándose en el createdAt campo. Lo hace creando un TTL en el MongoDB colección. Una vez que el tiempo haya expirado, las entradas serán expulsadas de la colección y ya no estarán disponibles.
Puede utilizar la siguiente clave de configuración en el ipf.conf archivo para anular el valor ttl predeterminado:
ipf.csm.sepa-common.correlation-store.ttl-duration = P30D
El formato del valor de String proporcionado debe ser un Java Duración como una representación ISO-8601, por ejemplo P30D (30 días).
Procesamiento DVF
Cuando se recibe un DVF (Archivo de Validación):
-
Realice los pasos de validación compartidos descritos en [Correlation Validation].
-
Las transacciones rechazadas se marcan como canceladas en el almacén de correlación.
-
El estado a nivel de grupo se calcula en función del estado de rechazo:
-
Todas las transacciones rechazadas → Estado del grupo: RJCT Código de razón: CANC
-
Algunas transacciones rechazadas → Estado del grupo: PARC Motivo Prtry: B01 (parcial)
-
No se han rechazado transacciones → Estado del grupo normal (ACCP)
-
Procesamiento de RSF
Cuando se recibe un RSF (Archivo de Liquidación):
-
Realice los pasos de validación compartidos descritos en [Correlation Validation].
-
Filtrado de Transacciones: Solo se procesan para liquidación las transacciones activas (no canceladas/no rechazadas).
-
Exclusiones: Las transacciones canceladas o rechazadas están excluidas, ya que han recibido una respuesta final (RJCT) durante el procesamiento de DVF.
-
El estado a nivel de grupo se calcula en función del estado de cancelación:
-
Todas las transacciones canceladas → Estado del grupo: RJCT Código de razón: CANC
-
Algunas transacciones canceladas → Estado del grupo: PARC Motivo Prtry: B01 (parcial)
-
No se han cancelado transacciones → Estado normal del grupo (ACSC)
-
Validación de Correlación
La siguiente lógica se aplica tanto al procesamiento de respuestas DVF como RSF:
-
El número de registros en el almacén de correlación se compara con el
FIToFIPmtStsRptS2.orgnlGrpInfAndSts.orgnlNbOfTxscampo. Si ocurre una discrepancia, el procesamiento de ese mensaje específico se detiene, y el procesamiento continúa con los mensajes restantes en el archivo.-
CorrelationStoreLookupFailedEvent: Se genera si la discrepancia es causada por un fallo al leer de la base de datos. -
UnexpectedNumberOfCorrelations: Se genera cuando el conteo recuperado de la tienda difiere del conteo especificado en el entrante pacs.002 mensaje.
-
Soporte de Cancelación
Descripción general
Cuando una solicitud de cancelación es aceptada por EBA, el original pacs.003 la correlación de transacciones se marca como cancelada, y el correspondiente CollectAndSettleResponse se actualiza para reflejar el estado de cancelación.
Cancelación Flag
Cada correlación incluye un isCancelled bandera boolean para rastrear si una transacción ha sido cancelada:
-
isCancelled = falseLa transacción está activa y avanzando normalmente a través de la liquidación. -
isCancelled = true: La transacción ha sido rechazada a través de una respuesta DVF o cancelada mediante una aceptada camt.056 solicitud
Criterios de Coincidencia
El paquete del esquema utiliza criterios de coincidencia para vincular las solicitudes de cancelación con sus correspondientes pacs.003 transacciones. La coincidencia se realiza utilizando los siguientes campos:
| Criterios de coincidencia | Campo ISO |
|---|---|
|
pacs.003:`drctDbtTxInf.cdtrAgt.finInstnId.bicfi` |
|
pacs.003:`grpHdr.intrBkSttlmDt` |
|
pacs.003:`drctDbtTxInf.pmtId.txId` |
| Las correlaciones se almacenan para todos los tipos de mensajes enviados al esquema, el messageType El campo se utiliza para filtrar los resultados de correlación. Por ejemplo, PACS_003 para recuperar únicamente las correlaciones pacs003. |
Flujo de Procesamiento de Cancelaciones
Procesamiento de DVF - Cancelación Aceptada
Cuando se recibe un DVF (Archivo de Validación de Débito) que muestra que EBA aceptó un camt.056 solicitud de cancelación:
-
El sistema identifica la respuesta DVF como un camt.056 resultado de validación
-
Los criterios de coincidencia se extraen de la camt.056 mensaje (creditorAgentBicFi,settlementDate,transactionId,messageType)
-
Se busca en el almacén de correlación el correspondiente.pacs.003 transacción
-
Si se encuentra una correlación coincidente:
-
La correlación se marca como cancelada (
isCancelled = true) -
A CollectAndSettleResponse se envía inmediatamente al cliente con estado RJCT y código de razón CANC (para mensajes de transacción única)
-
La transacción está excluida del procesamiento RSF (liquidación) subsiguiente.
-
-
Si no se encuentra una correlación coincidente:
-
Se genera un evento del sistema (consulte Camt056Pacs003Correlation Failed)
-
El ExecuteDDCancellationResponse(ACCP/T00) procede normalmente
-
Puede ser necesaria una reconciliación manual.
-
Procesamiento de DVF - Cancelación Rechazada
Cuando se recibe un DVF que muestra que EBA rechazó un camt.056 solicitud de cancelación:
-
El pacs.003 la correlación NO está marcada como cancelada
-
El original pacs.003 la transacción está sujeta al procesamiento normal del RSF (Archivo de Resultado de Liquidación)
-
El estado de liquidación final (ACSC o RJCT) se envía al cliente cuando se procesa el RSF.
Cancelación Específica Events
-
CancellationCorrelationFailed– Se genera cuando un camt.056 la cancelación es aceptada por EBA pero la coincidencia pacs.003 no se puede encontrar la correlación en el almacén de correlaciones utilizando los criterios de coincidencia. El ExecuteDDCancellationResponse(ACCP/T00) todavía se envía al cliente, pero el CollectAndSettleResponse no se puede actualizar a RJCT/CANC.