IPF-SWIFT-Configuración de AGI-GATEWAY
Este documento explica cómo configurar el IPF Swift AGI Gateway. Se divide en varias partes que deben ser configuradas para comunicarse con IPF en un extremo, y Swift en el otro extremo.
Configuración
Rutas
| Transporte | Configurar la ubicación de montaje |
|---|---|
Kafka |
/ipf-swift-agi-gateway-application-kafka/conf/ipf-swift-agi-gateway.conf |
IBM MQ |
/ipf-swift-agi-gateway/conf/ipf-swift-agi-gateway.conf |
Configuración de LAU
Configuración de claves LAU para IPF-SWIFT-AGI-GATEWAY consiste en dos partes, proporcionando un archivo de configuración y actualizando el almacén de claves.
En el archivo de configuración ipf-swift En -agi-gateway.conf podemos configurar/cambiar propiedades que definen las ubicaciones del archivo de información de claves LAU, el keystore y las contraseñas apropiadas. Estos parámetros tienen valores predeterminados y se ven así:
lauKeys = {
keyStore = {
keyStorePath = "classpath:swiftAgiKeyStore.jks"
keyStorePassword = "keyStorePassword"
keyPassword = "keyPassword"
}
configPath = "classpath:swiftAgiKeyInfo.conf"
}
Configuración del archivo de información clave
validity=P24M
overlap=PT12H
lauKeyInfos = [
{
id="keyA"
startDate="2017-12-17T09:30:47Z" #in ISO 8601 format
}
{
id="keyB"
startDate="2019-12-16T21:30:47Z"
}
]
Este archivo contiene información adicional para las claves LAU, como la validez, la superposición y las fechas de inicio para cada clave. lauKeyInfos puede tener uno o dos elementos.
Configuración del almacén de claves
La configuración también incluye un almacén de claves que debe contener una SecretKeyEntry cuyo alias coincida con el ID de clave LAU en el archivo de configuración descrito anteriormente. Tenga cuidado en este paso porque si los IDs de un archivo y el alias que establezca en un almacén de claves no coinciden, la aplicación no se configurará correctamente. Puede utilizar una combinación de keytool para crear/renombrar el SeretKeyEntry existente y el com.iconsolutions.gateway.swift Herramienta.crypto. LauKeystoreUpdater para actualizar la clave LAU en un almacén de claves existente.
La clave LAU se suministra generalmente en dos partes: una parte "izquierda" y una parte "derecha". Debe concatenar las dos partes y ejecutar el KeystoreSecretKeyUpdater para actualizar un almacén de claves existente y utilizar la nueva clave LAU. La clave es en realidad solo un arreglo de bytes y se proporciona a una aplicación en formato HEX.
El uso de muestra de la utilidad sería:
java -cp '[dir containing ipf-swift-agi-gateway-core-[version].jar]/*' com.iconsolutions.gateway.swift.crypto. LauKeystoreUpdater \
--pathToKeyStore [path to keystore] \
--keyStorePassword [keystore password] \
--secretKeyAlias [the alias of the existing LAU key to modify] \
--secretKey [the combined left and right parts of the LAU key] \
--secretKeyPassword [the key password]
Configurando la comunicación con SWIFT AGI
Swift AGI puede proporcionar múltiples IBM MQ Conexiones del Administrador de Cola a las que conectarse. Estas pueden ser configuradas en ipf-swift-agi-gateway.conf así:
ipf-agi-jms = {
ibmmq {
truststore.path = "/path/to/my/truststore.p12"
truststore.password = "password"
truststore.type = "PKCS12"
keystore.path = "/path/to/my/keystore.p12"
keystore.password = "password"
keystore.type = "PKCS12"
}
gateways = [
{
jms-component-name = jmsOne
hostname = ibmmq-1
port = 1414
queue-manager = QM1
channel = C1. TO. QM1
ssl-enabled = true
}
{
jms-component-name = jmsTwo
hostname = ibmmq-2
port = 1415
queue-manager = QM2
channel = C1. TO. QM1. 2
ssl-enabled = true
}
]
}
ipf-agi.jms-gateways = ["jmsOne", "jmsTwo"]
//queue names
ipf-agi.queue {
send-data = "AGI. SEND. DATA. QUEUE" // IPF AGI to Swift
receive-data = "AGI. RECEIVE. DATA. QUEUE" // Swift to IPF AGI
receive-ack = "AGI. RECEIVE. ACK. QUEUE" // Swift to IPF AGI
event = "AGI. EVENTS. DATA. QUEUE" // Swift to IPF AGI
}
Configurando la entidad del cliente (entidad de procesamiento) a DN mapping
El IPF Swift La puerta de enlace AGI utiliza el concepto de un nombre distinguido (DN)mapping para convertir entidades de cliente (entidades de procesamiento) de IPF a Swift DNs. Los nombres de las entidades (nombre en el ejemplo a continuación) se recuperan del valor NETWORK_SENDER_ID en los mensajes entrantes (que se enviarán a Swift), y los DNs (valor en el ejemplo a continuación) son proporcionados por Swift. Un ejemplo podría ser:
ipf-agi = {
client-entity-to-dn-mapping = [
{
name = "MyBank",
value ="cn=chasus33, ou=ips,o=swhqbebb,o=swift"
}
{
name = "EBA",
value ="cn=agi009, ou=csm,o=swhqbebb,o=swift"
}
]
}
Configurando la comunicación con IPF: Kafka
IPF AGI admite Kafka y JMS(IBM MQ) al hablar con el cliente, por ejemplo, IPF. Puede configurar lo habitual Kafka propiedades de consumidor/productor así:
common-kafka-config {
bootstrap.servers = "kafka:9094"
ssl.keystore.location = /path/to/my/kafka.client.keystore.p12
ssl.keystore.password = password
ssl.truststore.location = /path/to/my/kafka.client.truststore.p12
ssl.truststore.password = password
ssl.key.password = password
security.protocol = SSL
}
akka.kafka.consumer.kafka-clients = ${common-kafka-config}
akka.kafka.producer.kafka-clients = ${common-kafka-config}
//topic names
ipf-agi.client {
topic {
send = "SCTI. SEND. QUEUE" // IPF to IPF AGI
receive = "SCTI. RECEIVE. QUEUE" // IPF AGI to IPF
outcome = "SCTI. OUTCOME. QUEUE" // IPF AGI to IPF
event = "AGI. EVENTS. DATA. QUEUE" // IPF AGI to [events consumer]
}
}
Puede intercambiar la autenticación con mTLS por Kerberos, añadir configuraciones adicionales de consumidor/productor, dividir la configuración, etc. según lo considere necesario.
Configurando la comunicación con IPF:IBM MQ
El IPF Swift La aplicación AGI asume que-cuando se ejecuta en IBM MQ modo - El mismo gestor de colas se está utilizando para comunicarse en ambos lados (cliente y AGI). Por lo tanto, no se requiere configuración adicional. Sin embargo, para configurar los nombres de las colas (se muestran los valores predeterminados):
ipf-agi.client = {
queue {
send = "SCTI. SEND. QUEUE" // IPF to IPF AGI
receive = "SCTI. RECEIVE. QUEUE" // IPF AGI to IPF
outcome = "SCTI. OUTCOME. QUEUE" // IPF AGI to IPF
event = "AGI. EVENTS. DATA. QUEUE" // IPF AGI to [events consumer]
}
}
Event Esquema (Kafka only)
Al ejecutar en Kafka modo, se publican como JSON y tienen el siguiente esquema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"eventCode": {
"type": "string"
},
"description": {
"type": "string"
},
"level": {
"type": "string"
},
"id": {
"type": "string"
},
"eventTime": {
"type": "string"
},
"payload": {
}
}
}
El payload el campo difiere dependiendo del tipo de event publicado (vea a continuación)
Lista de Events
El IPF Swift La aplicación AGI publica lo siguiente events:
| Event | Descripción | Event Código |
|---|---|---|
DNMapping Faltante |
Se genera cuando no podemos mapear la entidad al DN (o viceversa). |
ipf.swift-agi-gateway.dn-mapping.missing |
DNMapping No Configurado |
Se genera al iniciar la aplicación si no hay mapping configurado para ipf-agi.bank-entity-to-dn-mapping or _ipf-agi.client-entity-to-dn-mapping |
ipf.swift-agi-gateway.dn-mapping.no-configurado |
InvalidHMAC |
Se genera cuando recibimos el mensaje ReceiveIndication (un mensaje recibido de SWIFT la red) y el HMAC calculado no coincide con uno de los encabezados |
ipf.swift-agi-gateway.hmac.inválido |
NoHMACKeyId |
Se genera cuando no tenemos la clave LAU correspondiente configurada, por lo que no podemos realizar el cálculo de HMAC. |
ipf.swift-agi-gateway.hmac.sin-id-de-clave |
No hay claves de Lau configuradas. |
Se genera cuando no hay claves LAU configuradas. |
ipf.swift-agi-gateway.lau-keys.no-configurados |
No se han configurado claves de lanzamiento válidas. |
Se genera cuando no hay al menos una clave LAU válida. |
ipf.swift-agi-gateway.lau-keys.no válido |
NoValidLauKey |
Se genera cuando ipf-agi recibe un mensaje, pero no hay una clave lau válida para generar hmac. |
ipf.swift-agi-gateway.lau-keys.no-valid-key |
Indicación Recibida |
Se genera cada vez que se recibe un nuevo mensaje (ReceiveIndication) de la red AGI. |
ipf.swift-agi-gateway.recibir-indicación.recibido-de-rede-agi |
ReceiveIndicationSentToClient |
Se genera cada vez que se recibe un nuevo mensaje (ReceiveIndication) de la red AGI, todas las verificaciones son correctas y el mensaje se envía a un cliente. |
ipf.swift-agi-gateway.recibir-indicación.enviado-al-cliente |
SolicitudDeEnvioRecibida |
Se genera cuando IPF SWIFT AGI recibe un mensaje del cliente (SendRequest), antes de enviar el mensaje a la red AGI. |
ipf.swift-agi-gateway.enviar-solicitud.recibida |
SendRequestSent |
Elevado justo antes de enviar el mensaje al cliente (SendRequest) a la red AGI. |
ipf.swift-agi-gateway.enviar-solicitud.enviada |
MQNo Disponible |
Se genera al enviar o recibir un mensaje de MQ cuando falla debido a errores de MQ o indisponibilidad. |
ipf.swift-agi-gateway.mq.no disponible |
Acuse Técnico Recibido |
Se genera cuando se recibe un acuse de recibo técnico. Este event es enviado por el lado remoto |
ipf.swift-agi-gateway.technical-ack |
Notificación Recibida |
Se genera cuando se recibe una notificación. La notificación también es enviada por el software AGI local. |
ipf.swift-agi-gateway.notificar |
MandatoryHeaderEmpty |
Se genera cuando recibimos un mensaje del software AGI, o del cliente, y ese mensaje tiene encabezados faltantes. |
ipf.swift-agi-gateway.cabecera-mandatoria.vacía |
Ejemplo events
Aquí hay algunos ejemplos event mensajes:
HMACInválido
{
"eventCode": "ipf.swift-agi-gateway.hmac.invalid",
"description": "IPF Swift AGI Gateway Event",
"level": "ERROR",
"id": "ec706af9-e91e-4916-8c4c-af2a6a57887b",
"eventTime": "2024-04-05T11:05:30.098989459Z",
"payload": {
"JMS_IBM_Character_Set": "UTF-8",
"JMSMessageID": "ID:414d5120514d31202020202020202020e8da0f660e0c0b23",
"HMAC": "NotValidHmac",
"JMSRedelivered": false,
"JMS_IBM_Encoding": 273,
"MsgNetworkRef": "0be9545b-8652-4555-a577-3826ac8ffa8b",
"JMSDeliveryMode": 2,
"JMS_IBM_PutApplType": 28,
"SendTimestamp": "2018-08-13T12:15:54.651Z",
"JMS_IBM_Format": " ",
"JMSXDeliveryCount": 1,
"Version": "1",
"PrimitiveType": "ReceiveIndication",
"JMS_IBM_PutTime": "11053007",
"MsgRef": "VqjJHgXnz366Ud3KErx7mnJd9QDba330Dsk",
"JMS_IBM_MsgType": 8,
"JMSExpiration": 0,
"HMACKeyId": "keyB",
"JMSXUserID": "app ",
"JMSTimestamp": 1712315130075,
"Service": "csm.msg.ins",
"Receiver": "cn=agi009,ou=bank,o=swhqbebb,o=swift",
"MsgType": "PACS.008.001.03",
"JMSXAppID": "er-20240405110452635_302.jar",
"ReceiveTimestamp": "2018-08-13T12:15:54.726Z",
"Sender": "cn=agi009,ou=csm,o=swhqbebb,o=swift",
"JMSPriority": 4,
"JMS_IBM_PutDate": "20240405",
"JMSDestination": {
"CCSID": 1208,
"brokerCCDurSubQueue": "SYSTEM.JMS.D.CC.SUBSCRIBER.QUEUE",
"JMS_IBM_Unmappable_Action": "REPORT",
"failIfQuiesce": 1,
"destDescription": null,
"alternateUserId": null,
"readAheadClosePolicy": 2,
"JMS_IBM_Unmappable_Replacement": 63,
"mdWriteEnabled": false,
"XMSC_WMQ_QUEUE_MANAGER": "",
"timeToLive": -2,
"putAsyncAllowed": -1,
"deliveryMode": -2,
"readAheadAllowed": -1,
"XMSC_DESTINATION_NAME": "AGI.RECEIVE.DATA.QUEUE",
"wildcardFormat": 0,
"mdReadEnabled": false,
"messageBody": 2,
"XMSC_WMQ_BROKER_PUBQ": "",
"XMSC_ADMIN_OBJECT_TYPE": 33,
"priority": -2,
"encoding": 273,
"brokerVersion": 0,
"version": 7,
"brokerDurSubQueue": "SYSTEM.JMS.D.SUBSCRIBER.QUEUE",
"XMSC_CONNECTION_TYPE_NAME": "com.ibm.msg.client.jakarta.wmq",
"XMSC_WMQ_REPLYTO_STYLE": 0,
"targetClient": 0,
"mdMessageContext": 0,
"XMSC_WMQ_BROKER_PUBQ_QMGR": "",
"XMSC_CONNECTION_TYPE": 5
},
"messagePayload": "{\"content\":\"xtjubHNdsBEtmySAnAUXRRTTffeWTpyyzChOeOOkludqmBGQdluFmHsZZmcMmIiicbLWYBVXkgUnGDtfWzkBQbBsJUHGBNLfHPwY\"}"
}
}
No se han configurado claves de lenguaje válidas.
{
"eventCode": "ipf.swift-agi-gateway.lau-keys.not-valid",
"description": "IPF Swift AGI Gateway Event",
"level": "ERROR",
"id": "4febbca7-225c-4cf7-abcc-23f2835e1377",
"eventTime": "2024-04-05T11:05:13.626138341Z",
"payload": {
"invalidLauKeys": [
{
"id": "keyB",
"key": {
"algorithm": "HmacSHA256",
"encoded": "bdVRpMsSZSgzVjf56+1fEQ==",
"format": "RAW",
"destroyed": false
},
"validFrom": "2017-06-16T21:30:47Z",
"validTo": "2019-06-16T21:30:47Z",
"valid": false
},
{
"id": "keyA",
"key": {
"algorithm": "HmacSHA256",
"encoded": "bfVRpMoSZSgzVjf56+1fmA==",
"format": "RAW",
"destroyed": false
},
"validFrom": "2015-12-17T09:30:47Z",
"validTo": "2017-06-17T09:30:47Z",
"valid": false
}
]
}
}
Indicación Recibida
{
"eventCode": "ipf.swift-agi-gateway.receive-indication.received-from-agi-network",
"description": "IPF Swift AGI Gateway Event",
"level": "INFO",
"id": "91ac6d40-2483-425b-91b0-8de4f77db658",
"eventTime": "2024-04-05T11:05:28.041257893Z",
"payload": {
"JMS_IBM_Character_Set": "UTF-8",
"JMSMessageID": "ID:414d5120514d31202020202020202020e8da0f6603080b23",
"HMAC": "sde5gvCTSKiShmQfJWlxLMm4J0JVxDONHPsBJ++MMOs=",
"JMSRedelivered": false,
"JMS_IBM_Encoding": 273,
"MsgNetworkRef": "0be9545b-8652-4555-a577-3826ac8ffa8b",
"JMSDeliveryMode": 2,
"JMS_IBM_PutApplType": 28,
"SendTimestamp": "2018-08-13T12:15:54.651Z",
"JMS_IBM_Format": " ",
"JMSXDeliveryCount": 1,
"Version": "1",
"PrimitiveType": "ReceiveIndication",
"JMS_IBM_PutTime": "11052801",
"MsgRef": "",
"JMS_IBM_MsgType": 8,
"JMSExpiration": 0,
"HMACKeyId": "keyA",
"JMSXUserID": "app ",
"JMSTimestamp": 1712315128006,
"Service": "csm.msg.ins",
"Receiver": "cn=agi009,ou=bank,o=swhqbebb,o=swift",
"MsgType": "PACS.008.001.03",
"JMSXAppID": "er-20240405110452635_302.jar",
"ReceiveTimestamp": "2018-08-13T12:15:54.726Z",
"Sender": "cn=agi009,ou=csm,o=swhqbebb,o=swift",
"JMSPriority": 4,
"JMS_IBM_PutDate": "20240405",
"JMSDestination": {
"CCSID": 1208,
"brokerCCDurSubQueue": "SYSTEM.JMS.D.CC.SUBSCRIBER.QUEUE",
"JMS_IBM_Unmappable_Action": "REPORT",
"failIfQuiesce": 1,
"destDescription": null,
"alternateUserId": null,
"readAheadClosePolicy": 2,
"JMS_IBM_Unmappable_Replacement": 63,
"mdWriteEnabled": false,
"XMSC_WMQ_QUEUE_MANAGER": "",
"timeToLive": -2,
"putAsyncAllowed": -1,
"deliveryMode": -2,
"readAheadAllowed": -1,
"XMSC_DESTINATION_NAME": "AGI.RECEIVE.DATA.QUEUE",
"wildcardFormat": 0,
"mdReadEnabled": false,
"messageBody": 2,
"XMSC_WMQ_BROKER_PUBQ": "",
"XMSC_ADMIN_OBJECT_TYPE": 33,
"priority": -2,
"encoding": 273,
"brokerVersion": 0,
"version": 7,
"brokerDurSubQueue": "SYSTEM.JMS.D.SUBSCRIBER.QUEUE",
"XMSC_CONNECTION_TYPE_NAME": "com.ibm.msg.client.jakarta.wmq",
"XMSC_WMQ_REPLYTO_STYLE": 0,
"targetClient": 0,
"mdMessageContext": 0,
"XMSC_WMQ_BROKER_PUBQ_QMGR": "",
"XMSC_CONNECTION_TYPE": 5
},
"messagePayload": "{\"content\":\"xGmpxiEMwpNVKfAcdKbvKYLyUFQheCqBXKWIzxMMNkGjGRMBVrDRkvcTUQOKLhLTQrseIvwNtruEpxkxqTvgyPtcwcTqMBPbkUjC\"}"
}
}
SendRequestSent
{
"eventCode": "ipf.swift-agi-gateway.send-request.sent",
"description": "IPF Swift AGI Gateway Event",
"level": "INFO",
"id": "f6b4b640-b89f-472f-b9a4-48abbea7d7ea",
"eventTime": "2024-04-05T11:05:30.293994531Z",
"payload": {
"HMAC": "nj+OfKbNew7R/5sCWZAFCFP6MeGUCRPdoiSQ2PkNJyE=",
"HMACKeyId": "keyB",
"Service": "csm.msg.ins",
"Receiver": "cn=agi009,ou=csm,o=swhqbebb,o=swift",
"MsgType": "PACS.008.001.03",
"TechnicalAckRequired": "A",
"Sender": "cn=agi009,ou=bank,o=swhqbebb,o=swift",
"Version": "1",
"messagePayload": "eyJjb250ZW50IjoiWWhiYmp1TktkYVNveVRleXNHaFhER0daQ09CSmRKaUpQa1hmS3JkcWFhZExmb0dscUZEbGdLY29wT01wUHN4c21SbXlOcnVYVmVWSHNEZVR4dnhnTWdQV0VvVFdmU0hjVnJwYyJ9",
"PossibleDuplicate": "N",
"PrimitiveType": "SendRequest",
"MsgRef": "CFqdIbdpZMkFaPSBys3pWfRuCieX86AIiUO",
"NotificationRequired": "A"
}
}
Notificación Recibida (fallo)
{
"eventCode": "ipf.swift-agi-gateway.notify",
"description": "IPF Swift AGI Gateway Event",
"level": "ERROR",
"id": "04c2bc17-7b8e-42ca-9616-97158c95aff7",
"eventTime": "2024-04-05T11:05:30.694896246Z",
"payload": {
"JMS_IBM_Character_Set": "UTF-8",
"JMSMessageID": "ID:414d5120514d32202020202020202020e8da0f6608170125",
"HMAC": "fiZfR0sNH1+dkWwxuTVJ9k6GUk67twIGBz7nofK1J0g=",
"JMSRedelivered": false,
"JMS_IBM_Encoding": 273,
"MsgNetworkRef": "0be9545b-8652-4555-a577-3826ac8ffa8b",
"JMSDeliveryMode": 2,
"JMS_IBM_PutApplType": 28,
"SendTimestamp": "2018-08-13T12:15:54.651Z",
"JMS_IBM_Format": " ",
"JMSXDeliveryCount": 1,
"Version": "1",
"PrimitiveType": "Notify",
"JMS_IBM_PutTime": "11053067",
"CorrelationId": "UzQZ2V6BTU14N0SRYvVe771rXn78Tg2mTkq",
"MsgRef": "UzQZ2V6BTU14N0SRYvVe771rXn78Tg2mTkq",
"JMS_IBM_MsgType": 8,
"JMSExpiration": 0,
"HMACKeyId": "keyB",
"PrimitiveErrorText": "error text",
"JMSXUserID": "app ",
"JMSTimestamp": 1712315130678,
"Service": "csm.msg.ins",
"Receiver": "cn=agi009,ou=bank,o=swhqbebb,o=swift",
"MsgType": "PACS.008.001.03",
"PrimitiveErrorCode": "status_code",
"JMSXAppID": "er-20240405110452635_302.jar",
"ReceiveTimestamp": "2018-08-13T12:15:54.726Z",
"Sender": "cn=agi009,ou=csm,o=swhqbebb,o=swift",
"JMSPriority": 4,
"JMS_IBM_PutDate": "20240405",
"JMSDestination": {
"CCSID": 1208,
"brokerCCDurSubQueue": "SYSTEM.JMS.D.CC.SUBSCRIBER.QUEUE",
"JMS_IBM_Unmappable_Action": "REPORT",
"failIfQuiesce": 1,
"destDescription": null,
"alternateUserId": null,
"readAheadClosePolicy": 2,
"JMS_IBM_Unmappable_Replacement": 63,
"mdWriteEnabled": false,
"XMSC_WMQ_QUEUE_MANAGER": "",
"timeToLive": -2,
"putAsyncAllowed": -1,
"deliveryMode": -2,
"readAheadAllowed": -1,
"XMSC_DESTINATION_NAME": "AGI.RECEIVE.ACK.QUEUE",
"wildcardFormat": 0,
"mdReadEnabled": false,
"messageBody": 2,
"XMSC_WMQ_BROKER_PUBQ": "",
"XMSC_ADMIN_OBJECT_TYPE": 33,
"priority": -2,
"encoding": 273,
"brokerVersion": 0,
"version": 7,
"brokerDurSubQueue": "SYSTEM.JMS.D.SUBSCRIBER.QUEUE",
"XMSC_CONNECTION_TYPE_NAME": "com.ibm.msg.client.jakarta.wmq",
"XMSC_WMQ_REPLYTO_STYLE": 0,
"targetClient": 0,
"mdMessageContext": 0,
"XMSC_WMQ_BROKER_PUBQ_QMGR": "",
"XMSC_CONNECTION_TYPE": 5
},
"messagePayload": "{\"content\":\"HhZvwtQeDlngEBNKnECjfxAgMkMgUjhceTHagKVPyMaoHPmKgltQdRphVnguUlrVsjhvCiFOClQXXJOkbbPlMqHxzUgPBlezFolT\"}",
"PrimitiveReturnCode": "Fatal"
}
}
Notificación Recibida (éxito)
{
"eventCode": "ipf.swift-agi-gateway.notify",
"description": "IPF Swift AGI Gateway Event",
"level": "INFO",
"id": "fbb58aff-79f2-4d96-9a73-2d524c88cb5d",
"eventTime": "2024-04-05T11:05:30.760903994Z",
"payload": {
"JMS_IBM_Character_Set": "UTF-8",
"JMSMessageID": "ID:414d5120514d32202020202020202020e8da0f660a170125",
"HMAC": "52Yp1RErpnlvCC6O2UGlPeo3SyyujNbv6BfdG3QCimw=",
"JMSRedelivered": false,
"JMS_IBM_Encoding": 273,
"MsgNetworkRef": "3lQ237fra8nBOCipcEio1PiHPWBOPy14Ctx",
"JMSDeliveryMode": 2,
"JMS_IBM_PutApplType": 28,
"SendTimestamp": "2018-08-13T12:15:54.651Z",
"JMS_IBM_Format": " ",
"JMSXDeliveryCount": 1,
"Version": "1",
"PrimitiveType": "Notify",
"JMS_IBM_PutTime": "11053074",
"CorrelationId": "3lQ237fra8nBOCipcEio1PiHPWBOPy14Ctx",
"MsgRef": "3lQ237fra8nBOCipcEio1PiHPWBOPy14Ctx",
"JMS_IBM_MsgType": 8,
"JMSExpiration": 0,
"HMACKeyId": "keyB",
"JMSXUserID": "app ",
"JMSTimestamp": 1712315130742,
"Service": "<service>",
"Receiver": "cn=agi009,ou=bank,o=swhqbebb,o=swift",
"MsgType": "PACS.008.001.03",
"JMSXAppID": "er-20240405110452635_302.jar",
"Sender": "cn=agi009,ou=csm,o=swhqbebb,o=swift",
"JMSPriority": 4,
"JMS_IBM_PutDate": "20240405",
"JMSDestination": {
"CCSID": 1208,
"brokerCCDurSubQueue": "SYSTEM.JMS.D.CC.SUBSCRIBER.QUEUE",
"JMS_IBM_Unmappable_Action": "REPORT",
"failIfQuiesce": 1,
"destDescription": null,
"alternateUserId": null,
"readAheadClosePolicy": 2,
"JMS_IBM_Unmappable_Replacement": 63,
"mdWriteEnabled": false,
"XMSC_WMQ_QUEUE_MANAGER": "",
"timeToLive": -2,
"putAsyncAllowed": -1,
"deliveryMode": -2,
"readAheadAllowed": -1,
"XMSC_DESTINATION_NAME": "AGI.RECEIVE.ACK.QUEUE",
"wildcardFormat": 0,
"mdReadEnabled": false,
"messageBody": 2,
"XMSC_WMQ_BROKER_PUBQ": "",
"XMSC_ADMIN_OBJECT_TYPE": 33,
"priority": -2,
"encoding": 273,
"brokerVersion": 0,
"version": 7,
"brokerDurSubQueue": "SYSTEM.JMS.D.SUBSCRIBER.QUEUE",
"XMSC_CONNECTION_TYPE_NAME": "com.ibm.msg.client.jakarta.wmq",
"XMSC_WMQ_REPLYTO_STYLE": 0,
"targetClient": 0,
"mdMessageContext": 0,
"XMSC_WMQ_BROKER_PUBQ_QMGR": "",
"XMSC_CONNECTION_TYPE": 5
},
"messagePayload": "{\"content\":\"zBezYRohFAVEOevSRxwcNTeWEXnyoQhqYaOESoomsRsPPweyHjsKWjtRWBoaDmoMsGvHJxkkjWPNITvkojORFtOfemOUXnmqgFgY\"}",
"PrimitiveReturnCode": "Success"
}
}
Confirmación Técnica Recibida (éxito)
{
"eventCode": "ipf.swift-agi-gateway.technical-ack",
"description": "IPF Swift AGI Gateway Event",
"level": "INFO",
"id": "b1c499b5-cda6-46fb-94ad-3b6f8a66534d",
"eventTime": "2024-04-05T11:05:30.898883257Z",
"payload": {
"JMS_IBM_Character_Set": "UTF-8",
"JMSMessageID": "ID:414d5120514d31202020202020202020e8da0f66180c0b23",
"HMAC": "gy2+jkznrjlbQq3FYRTpSjxmRVdM/lBFD1slHuT/TrU=",
"JMSRedelivered": false,
"JMS_IBM_Encoding": 273,
"MsgNetworkRef": "2rjcfWu5sBxqSA57s5bQL8nKwhaKJdquZld",
"JMSDeliveryMode": 2,
"JMS_IBM_PutApplType": 28,
"SendTimestamp": "2018-08-13T12:15:54.651Z",
"JMS_IBM_Format": " ",
"JMSXDeliveryCount": 1,
"Version": "1",
"PrimitiveType": "TechnicalAck",
"JMS_IBM_PutTime": "11053089",
"CorrelationId": "2rjcfWu5sBxqSA57s5bQL8nKwhaKJdquZld",
"MsgRef": "2rjcfWu5sBxqSA57s5bQL8nKwhaKJdquZld",
"JMS_IBM_MsgType": 8,
"JMSExpiration": 0,
"HMACKeyId": "keyB",
"JMSXUserID": "app ",
"JMSTimestamp": 1712315130892,
"Service": "<service>",
"Receiver": "cn=agi009,ou=bank,o=swhqbebb,o=swift",
"MsgType": "PACS.008.001.03",
"JMSXAppID": "er-20240405110452635_302.jar",
"Sender": "cn=agi009,ou=csm,o=swhqbebb,o=swift",
"JMSPriority": 4,
"JMS_IBM_PutDate": "20240405",
"JMSDestination": {
"CCSID": 1208,
"brokerCCDurSubQueue": "SYSTEM.JMS.D.CC.SUBSCRIBER.QUEUE",
"JMS_IBM_Unmappable_Action": "REPORT",
"failIfQuiesce": 1,
"destDescription": null,
"alternateUserId": null,
"readAheadClosePolicy": 2,
"JMS_IBM_Unmappable_Replacement": 63,
"mdWriteEnabled": false,
"XMSC_WMQ_QUEUE_MANAGER": "",
"timeToLive": -2,
"putAsyncAllowed": -1,
"deliveryMode": -2,
"readAheadAllowed": -1,
"XMSC_DESTINATION_NAME": "AGI.RECEIVE.ACK.QUEUE",
"wildcardFormat": 0,
"mdReadEnabled": false,
"messageBody": 2,
"XMSC_WMQ_BROKER_PUBQ": "",
"XMSC_ADMIN_OBJECT_TYPE": 33,
"priority": -2,
"encoding": 273,
"brokerVersion": 0,
"version": 7,
"brokerDurSubQueue": "SYSTEM.JMS.D.SUBSCRIBER.QUEUE",
"XMSC_CONNECTION_TYPE_NAME": "com.ibm.msg.client.jakarta.wmq",
"XMSC_WMQ_REPLYTO_STYLE": 0,
"targetClient": 0,
"mdMessageContext": 0,
"XMSC_WMQ_BROKER_PUBQ_QMGR": "",
"XMSC_CONNECTION_TYPE": 5
},
"messagePayload": "{\"content\":\"RgxPDSFyOWuSTmwymHyVFpvZWbrffNgFKyZLOOCCfOYsdFvHlgJGFuPuTzFUvSRzXHoBAIJdfuMqFyBCsDEugYkckoPvoSCtbKpE\"}",
"PrimitiveReturnCode": "Success"
}
}