Skip to content

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"
}]