Blue PCS scoped events¶
These events are currently only consumed within PCS.
We currently have these scenarios:
- PCS -> PCS: MassTransit with RMQ as the broker
- WSO2 -> Firefly: Spring AMQP with RMQ as the broker
Queue strategy¶
The naming pattern for queues in BoyarServices is blue-events-queue-{env}-{module}
. This allows each set of listeners for each service to have a queue.
Example: blue-events-queue-green-mono
- used by listeners on PCEDGRBWS01, PCEDGRBWS02
Events¶
JHA.BoyarServices.BuildingBlocks.Contracts.RecipientAlertRequested¶
Publisher¶
Mono.Notifier
Subscriber¶
Mono.Notifier
Client¶
Masstransit
Purpose¶
Allows the POST /alert to hand off the request to the background listener. Not really in the spirit of an integration event. A Masstransit command might make more sense.
JHA.BoyarServices.BuildingBlocks.Contracts.CustomerContactTokenUnregistered¶
Publisher¶
Mono.Notifier
Subscriber¶
Mono.Notifier
Client¶
Masstransit
Purpose¶
Informs Notifier that an unsubscribe in ENS should occur
JHA.BoyarServices.BuildingBlocks.Contracts.PaymentRepo.PaymentStatusChanged¶
Publisher¶
PaymentRepo.Zelle
Subscribers¶
PaymentRepo.Limits BoyarServices.Zelle
Client¶
Masstransit
Purpose¶
- PaymentRepo.Limits will add the payment
- BoyarServices.Zelle will update the customer activity
Contract¶
{
"InitiatedAt": "2023-10-01T12:00:00Z",
"OccurredAt": "2023-10-01T12:05:00Z",
"Direction": "Outbound",
"Amount": 150.75,
"PayCenterMemberFIId": 123456789,
"SenderCustomerId": "CUST12345",
"RecipientCustomerId": "CUST67890",
"ExternalPaymentId": "PAY1234567890",
"Status": "Completed",
"PayCenterNetworkName": "NetworkName",
"PayCenterNetworkId": 987654321,
"BankAccount": "123456789012",
"RoutingNumber": "987654321",
"PayCenterNetworkProductId": 1122334455,
"PaymentMode": "ACH"
}
JHA.BoyarServices.BuildingBlocks.Contracts.PaymentRequestStatusChanged¶
This is proposed contract pending TFS #469621.
Publisher¶
PaymentRepo.Zelle
Subscribers¶
BoyarServices.Zelle
Client¶
Masstransit
Purpose¶
Informs BoyarServices.Zelle service of customer activity.
Contract¶
Proposed:
ZellePaymentRequestId: xyz123
Requestor: {
ZelleCustomerId: qwe123
TokenIdentifier: 343434
TokenType: "Mobile", "Email"
}
Responder: {
ZelleCustomerId: qwe123
TokenIdentifier: 343434
TokenType: "Mobile", "Email"
}
Direction: "Inbound", "Outbound"
InitiatedAt: utc
Status: string
PayCenter scoped¶
JHA.Blue.Contracts.ZelleReconPaymentAdded¶
Publisher¶
WSO2 EI
Subscriber¶
ZSR
Client¶
RabbitMq
Purpose¶
Informs ZSR that a payment was added.
Contract¶
Based on PaymentRepo/zelle/recon/payments/id/ with differences: - Direction added by WSO2 - TrnRcptId added by WSO2 - CorePaymentActivities omitted
{
"PaymentId": 0,
"ZellePaymentId": "JA4R00000MXn7",
"ZelleRetryPaymentId": "JA4R00000MXn7",
"ZelleProductType": "string",
"InitiatedAt": "2022-02-25T15:36:16.450Z",
"ExpiresAt": "2022-02-25T15:36:16.450Z",
"AcceptanceMode": "Auto",
"PaymentMode": "Expedited",
"Direction": "Inbound",
"TrnRcptId": "xyz",
"Amount": 0,
"Memo": "string",
"Status": "string",
"Activity": [
{
"Status": "Pending",
"Direction": "Outbound",
"StatusEffectiveAt": "2022-07-13T01:29:50.849Z"
},
{
"Status": "Delivered",
"Direction": "Inbound",
"StatusEffectiveAt": "2022-07-13T01:40:50.849Z"
}],
"Sender": {
"ZelleCustomerId": "cust_12345",
"ZelleOrgId": "string",
"CoreCustomerId": "string", // proposed per 575866, nullable
"OrgNetworkType": "string",
"PayCenterMemberFIId": 556,
"TokenIdentifier": "example@example.org",
"TokenType": "Email",
"ZelleProfileId": "string",
"FullName": "string",
"FinancialAccount": {
"AccountNumber": "021000021",
"AccountType": "Checking",
"RoutingNumber": "011103097"
}
},
"Recipient": {
"ZelleCustomerId": "cust_12345",
"ZelleOrgId": "string",
"CoreCustomerId": "string", // proposed per 575866, nullable
"OrgNetworkType": "string",
"PayCenterMemberFIId": 556,
"TokenIdentifier": "example@example.org",
"TokenType": "Email",
"ZelleProfileId": "string",
"FullName": "string",
"FinancialAccount": {
"AccountNumber": "021000021",
"AccountType": "Checking",
"RoutingNumber": "011103097"
},
"IsRecipientMemberFI": true
},
"RTFOffline": true,
"OutOfNetwork": {
"FinancialAccount": {
"AccountNumber": "021000021",
"AccountType": "Checking",
"RoutingNumber": "011103097"
}
}
}
JHA.Blue.Contracts.ZelleReconPaymentStatusChanged¶
Publisher¶
WSO2 EI
Subscriber¶
ZSR
Client¶
RabbitMq
Purpose¶
Informs ZSR that a payment status has changed.
Contract¶
{
"ZellePaymentId": "JA4R00000MXn7",
"PaymentId": 123,
"Status": "Pending",
"EffectiveAt": "2022-07-13T01:29:50.849Z",
"Direction": "Inbound",
"TrnRcptId": "xyz",
"ReversedTrnRcptId": "256",
"PaymentMode": "Expedited",
"AcceptanceMode": "Auto",
"Recipient": {
"ZelleCustomerId": "cust_12345",
"ZelleOrgId": "string",
"CoreCustomerId": "string", // proposed per 575866, nullable
"OrgNetworkType": "string",
"PayCenterMemberFIId": 556,
"TokenIdentifier": "example@example.org",
"TokenType": "Email",
"ZelleProfileId": "string",
"FullName": "string",
"FinancialAccount": {
"AccountNumber": "021000021",
"AccountType": "Checking",
"RoutingNumber": "011103097"
},
"IsRecipientMemberFI": true
}
}
JHA.Blue.Contracts.ZelleInactiveCustomerDeactivationIntent¶
This is a draft
Publisher¶
WSO2 EI
Subscriber¶
Firefly
Client¶
RabbitMq
Purpose¶
Informs a Firefly job that a customer is flagged for deactivation.
Schema¶
{
"EventId": "a guid" // move to header?
"Deactivations": [
"ZelleCustomerId": "cust_12345",
"ZelleOrgId": "string",
"PayCenterMemberFIId": 556,
"TokenIdentifier": "example@example.org",
"TokenType": "Email",
"TokenId": 123345,
"ZellePaymentProfileId": "string",
"PaymentProfileId": 123456,
}
}
JHA.Blue.Contracts.ZellePaymentFlagsChanged¶
Publisher¶
WSO2 EI
Subscriber¶
ZSR
Client¶
RabbitMq
Purpose¶
Informs ZSR that a payment has a flag such as FI return.
Schema¶
ZellePaymentId: string
EffectiveAt: datetime utc
FlagsAdded: array of string
FlagsRemoved: array of string
JHA.PayCenter.Contracts.ZelleReconPaymentsSettled¶
Publisher¶
ZSR
Subscriber¶
PaymentRepo
Client¶
Masstransit?
Purpose¶
Informs CPR that a batch of payments have settled. See recon documentation
Schema¶
Payments: [{
ZellePaymentId: "JA4R00000MXn7"
Direction: string // "Inbound", "Outbound"
TrnRcptId: string
SettledAt: utc datetime // will be nullable under proposed changes
ReconStatus: string // "Settled", "AwaitingPaymentProcessing" as proposed for 481039
PaymentMode: string // "Expedited", "Standard" (currently ZSR is actually sending "REALTIME" instead of "Expedited"
}]