PayCenter Scoped Events¶
These events are published to the PayCenter broker to communicate with services outside of Blue.
We currently have these scenarios:
- WSO2 -> Firefly: Spring AMQP with RMQ as the broker
- Firefly -> WSO2: .NET AMQP with RMQ as the broker
Events¶
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"
}]