Getting Started
Introduction
This page is intended to provide users with information needed to consume Enterprise Event System (EES) events.
Consumer Requirements
Since EES is set up to push events to consumers, we require the following:
Internet accessible endpoint with a properly configured XML listener
Endpoint listener must use BasicHttpBinding with a username and password as security. No anonymous credentials are allowed. Other security methods are currently not supported.
IP whitelisting is allowed and our teams can provided the appropriate IP addresses on request.
XML listener must be able to respond to the event package immediately upon receipt without first processing what was received. The EES system is strict in what it accepts as a response. Below is an example response, it’s important to note the following:
- The content type response should be: Content-Type: text/xml; charset=utf-8
- The Security.TimeStamp.Created and Security.TimeStamp.Expires elements should follow UTC time and be set five minutes apart with Created time being the moment the listener receives the request
- The fields within the JESHdr should echo the fields sent within the JESHdr section of the EESEventAdd request received by the listener.
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<o:Security s:mustUnderstand="1"
xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2025-03-24T15:54:50.058Z</u:Created>
<u:Expires>2025-03-24T15:59:50.058Z</u:Expires>
</u:Timestamp>
</o:Security>
</s:Header>
<s:Body>
<EESEventAddResponse xmlns="http://jackhenry.com/jxchange/JES/2008">
<JESMsgRsHdr>
<JESHdr>
<AuditUsrId></AuditUsrId>
<AuditWsId></AuditWsId>
<ConsumerProd></ConsumerProd>
<ConsumerRqDtTime>2025-10-26T18:13:51.0000000</ConsumerRqDtTime>
<jXLogTrackingId>122222222</jXLogTrackingId>
<OrigConsumerInfo/>
<ValidConsmName>{Insert}</ValidConsmName>
<ValidConsmProd>{Insert}</ValidConsmProd>
</JESHdr>
</JESMsgRsHdr>
<RsStat>Success</RsStat>
</EESEventAddResponse>
</s:Body>
</s:Envelope>
- Before any listener is allowed access to bank level environments/events, the listener must be successfully tested by the Developer Relations team using the DMZ Development Sandbox
EES Event Sample Payload
We provide sample EES events within the EES Event Samples portion of our portal. These are normally just the body of the event. Below is a full payload example of an EESEventAdd send that a listener would expect to receive.
<Addressing>
<Action>http://jackhenry.com/ws/EESEventAdd</Action>
<To>https://YourCompanyEESListener.test/EESService/basicHttps</To>
</Addressing>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Header>
<ActivityId CorrelationId="7cdd69a0-768d-4ac4-908c-950906406339" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">00000000-0000-0000-0000-000000000000</ActivityId>
<o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<u:Timestamp u:Id="_0">
<u:Created>2025-03-01T22:58:54.344Z</u:Created>
<u:Expires>2025-03-01T23:03:54.344Z</u:Expires>
</u:Timestamp>
<o:UsernameToken u:Id="uuid-0ab1c984-02c7-4647-abcb-1b255511b327-118">
<o:Username>
<!-- Removed-->
</o:Username>
<o:Password>
<!-- Removed-->
</o:Password>
</o:UsernameToken>
</o:Security>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EESEventAdd xmlns="http://jackhenry.com/jxchange/JES/2008">
<JESMsgRqHdr>
<JESHdr>
<AuditWsId>EESFarmName</AuditWsId>
<ConsumerProd>Enterprise Event</ConsumerProd>
<ConsumerRqDtTime>2025-03-01T16:58:54.3293923-06:00</ConsumerRqDtTime>
<jXLogTrackingId>7eb7e483-5c76-4c8f-9a26-610a258abff4</jXLogTrackingId>
</JESHdr>
</JESMsgRqHdr>
<SubscrpId>YourSubscriptionID</SubscrpId>
<EESEventInfoArray>
<EESEventInfo>
<EventNum>660</EventNum>
<EventProd>Silverlake</EventProd>
<EventTimeDt>2025-02-28T05:02:10</EventTimeDt>
<InstId>011001276</InstId>
<ProdEnv>TEST</ProdEnv>
<SystemId>Silverlake-Instance</SystemId>
<EventUsrId>SILVERLAKE-CUSTOMER</EventUsrId>
<EventWsId>WS1234</EventWsId>
<BusCorrelId>422383</BusCorrelId>
<EventAppId>CF</EventAppId>
<EventProcId>R3RUNJHA/CFCUSTADD</EventProcId>
<EventThreadId>0</EventThreadId>
<EventDataInfoArray>
<EventDataInfo>
<Name>ItemName</Name>
<Val>Customer ID</Val>
</EventDataInfo>
<EventDataInfo>
<Name>UserId</Name>
<Val>SILVERLAKE-CUSTOMER</Val>
</EventDataInfo>
<EventDataInfo>
<Name>Value</Name>
</EventDataInfo>
<EventDataInfo>
<Name>Action</Name>
<Val>Create</Val>
</EventDataInfo>
<EventDataInfo>
<Name>CustId</Name>
<Val>HAA3947</Val>
</EventDataInfo>
</EventDataInfoArray>
<EventUniqueId>6632ac58-2602-4427-a77b-064b3adc7a79</EventUniqueId>
<EESIdHistInfoArray>
<EESIdHistInfo>
<EESHistId>011001276-PROD-jxdmz.jackhenry.com</EESHistId>
</EESIdHistInfo>
</EESIdHistInfoArray>
<Custom/>
</EESEventInfo>
</EESEventInfoArray>
</EESEventAdd>
</s:Body>
</s:Envelope>
<JESSrchMsgRsHdr>
<JESHdr>
<AuditWsId>AuditWsId1</AuditWsId>
<ConsumerProd>ConsumerProd1</ConsumerProd>
<ConsumerRqDtTime>2024-06-01T04:01:01.0000000-05:00</ConsumerRqDtTime>
<jXLogTrackingId>f3baf669-904b-4f31-99fa-4f5151855aa8</jXLogTrackingId>
</JESHdr>
</JESSrchMsgRsHdr>
<SubscrpId>Banno-FWD-Test</SubscrpId>
<EESEventInfoArray>
<EESEventInfo>
<EventNum>110010</EventNum>
<EventProd>Banno</EventProd>
<EventTimeDt>2024-05-31T10:19:31.29</EventTimeDt>
<InstId>999999989</InstId>
<ProdEnv>PROD</ProdEnv>
<SystemId>ees-egress</SystemId>
<EventUsrId>ees-egress</EventUsrId>
<EventWsId>ees-egress</EventWsId>
<BusCorrelId>923ad8f8-754f-4222-bd57-5a2646ff5c3f</BusCorrelId>
<EventAppId>ees-egress</EventAppId>
<EventProcId>ees-egress</EventProcId>
<EventDataInfoArray>
<EventDataInfo>
<Name>eventId</Name>
<Val>923ad8f8-754f-4222-bd57-5a2646ff5c3f</Val>
</EventDataInfo>
<EventDataInfo>
<Name>name</Name>
<Val>TwoFAAuthenticationRequired</Val>
</EventDataInfo>
<EventDataInfo>
<Name>institutionId</Name>
<Val>a3badfa6-00eb-4b0f-9881-d9c6ba95ca8b</Val>
</EventDataInfo>
<EventDataInfo>
<Name>personId</Name>
<Val>da2e47e6-6aae-4231-a76d-1592c29cfe98</Val>
</EventDataInfo>
<EventDataInfo>
<Name>eventContentFormat</Name>
<Val>CDATA</Val>
</EventDataInfo>
<EventDataInfo>
<Name>eventContentType</Name>
<Val>JSON</Val>
</EventDataInfo>
<EventDataInfo>
<Name>eventContent</Name>
<Val>{"eventId":"923ad8f8-754f-4222-bd57-5a2646ff5c3f","date":"2024-05-31T10:19:31.289Z","institutionId":"a3badfa6-00eb-4b0f-9881-d9c6ba95ca8b","change":{"application":"apps-authentication","name":"TwoFAAuthenticationRequired","userAgent":"BannoMobile2/2.31.0 (iPhone; iOS 14.4; Scale/3.00)","affectedPerson":{"personId":"da2e47e6-6aae-4231-a76d-1592c29cfe98","fullName":"MY CARD RULES","personIp":"216.116.87.110","deviceInfo":{"model":"x86_64","appVersion":"2.31.0","os":"iOS","brand":"Apple","osVersion":"14.4","deviceId":"D0F298BF-ED9B-4142-BD7C-81CF084EC5B5"}},"activity":"login","userName":"mycardrules"}}</Val>
</EventDataInfo>
</EventDataInfoArray>
<EventUniqueId>82d39218-4e4a-4824-9422-e95f5e6eb4cb</EventUniqueId>
<EESIdHistInfoArray>
<EESIdHistInfo>
<EESHistId>123456789-PROD-jxchange.gadev.jha-sys.com</EESHistId>
</EESIdHistInfo>
<EESIdHistInfo>
<EESHistId>011001276-TEST-jxtest.jackhenry.com</EESHistId>
</EESIdHistInfo>
</EESIdHistInfoArray>
<Custom>
</Custom>
</EESEventInfo>
<EESEventInfo>
<EventNum>110010</EventNum>
<EventProd>Banno</EventProd>
<EventTimeDt>2024-05-31T10:34:45.197</EventTimeDt>
<InstId>999999989</InstId>
<ProdEnv>PROD</ProdEnv>
<SystemId>ees-egress</SystemId>
<EventUsrId>ees-egress</EventUsrId>
<EventWsId>ees-egress</EventWsId>
<BusCorrelId>08b5db12-3384-4646-8860-cf50fde7fd84</BusCorrelId>
<EventAppId>ees-egress</EventAppId>
<EventProcId>ees-egress</EventProcId>
<EventDataInfoArray>
<EventDataInfo>
<Name>eventId</Name>
<Val>08b5db12-3384-4646-8860-cf50fde7fd84</Val>
</EventDataInfo>
<EventDataInfo>
<Name>name</Name>
<Val>TwoFAAuthenticationRequired</Val>
</EventDataInfo>
<EventDataInfo>
<Name>institutionId</Name>
<Val>a3badfa6-00eb-4b0f-9881-d9c6ba95ca8b</Val>
</EventDataInfo>
<EventDataInfo>
<Name>personId</Name>
<Val>da2e47e6-6aae-4231-a76d-1592c29cfe98</Val>
</EventDataInfo>
<EventDataInfo>
<Name>eventContentFormat</Name>
<Val>CDATA</Val>
</EventDataInfo>
<EventDataInfo>
<Name>eventContentType</Name>
<Val>JSON</Val>
</EventDataInfo>
<EventDataInfo>
<Name>eventContent</Name>
<Val>{"eventId":"08b5db12-3384-4646-8860-cf50fde7fd84","date":"2024-05-31T10:34:45.196Z","institutionId":"a3badfa6-00eb-4b0f-9881-d9c6ba95ca8b","change":{"application":"apps-authentication","name":"TwoFAAuthenticationRequired","userAgent":"BannoMobile2/2.31.0 (iPad; iOS 14.4; Scale/2.00)","affectedPerson":{"personId":"da2e47e6-6aae-4231-a76d-1592c29cfe98","fullName":"MY CARD RULES","personIp":"216.116.87.110","deviceInfo":{"model":"x86_64","appVersion":"2.31.0","os":"iOS","brand":"Apple","osVersion":"14.4","deviceId":"79E59EC3-921B-4DD4-8277-CB3160D27232"}},"activity":"login","userName":"mycardrules"}}</Val>
</EventDataInfo>
</EventDataInfoArray>
<EventUniqueId>ecda00d7-af6a-4e45-8cd7-186950743d07</EventUniqueId>
<EESIdHistInfoArray>
<EESIdHistInfo>
<EESHistId>123456789-PROD-jxchange.gadev.jha-sys.com</EESHistId>
</EESIdHistInfo>
<EESIdHistInfo>
<EESHistId>011001276-TEST-jxtest.jackhenry.com</EESHistId>
</EESIdHistInfo>
</EESIdHistInfoArray>
<Custom>
</Custom>
</EESEventInfo>
</EESEventInfoArray>
Handling Event Duplication
While every effort is made to prevent duplicate event submissions, retry logic may occasionally result in duplicates. It is strongly recommended that consumers implement filtering logic to detect and handle these duplicate events by validating that each EventUniqueId value is processed only once.
Project Steps
- Consumer reviews the available events and decides which ones they need.
- Consumer must set up the endpoint and XML listener.
- Consumer prepares an EES Subscription Form
- Consumer submits a request to consume EES events via the Enterprise Event System Setup Request
- Developer Relations will provide next steps email and wait to receive the prepared EES Subscription Form.
- Developer Relations sets up the listener within the DMZ environment and sends tests to the listener.
- Developer Relations and Consumer troubleshoot any basic issues. If in-depth troubleshooting/issue resolution is required beyond simple retesting, a TAM may be required at an additional fee.
- Developer Relations will notify consumer of successful results when achieved, and collect any additional information needed for our Implementations team.
- Once all above steps are completed a request may be submitted to gain access to production/bank level EES events.
Questions or Concerns
If you have questions about the EES service or any of the information provided above, please utilize the following to communicate with our team.
- FIN Members – Please utilize our Stack Overflow channel or join one of our Developer Hours meetings.
- Financial Institutions – Please submit a For Clients Portal case with a note to route to Developer Relations.
Topics in this section
- Have a how-to question? Seeing a weird error? Get help on StackOverflow.
- Register for the Developer Office Hours where we answer technical Q&A from the audience.