Variable CUSTOMER_EMAIL_EVENT_TEMPLATESConst
CUSTOMER_EMAIL_EVENT_TEMPLATES: {
"account.ledgerAccount.created": "LEDGER_ACCOUNT";
"card.cardTransaction.statusUpdated": "CARD_TRANSACTION";
"deposit.deposit.created": "DEPOSIT";
"deposit.deposit.statusUpdated": "DEPOSIT";
"deposit.manualMint.created": "DEPOSIT";
"deposit.manualMint.statusUpdated": "DEPOSIT";
"identity.identity.statusUpdated": "IDENTITY";
"ledger.account.transfer.statusUpdated": "TRANSFER";
"organization.organization.created": "ORGANIZATION";
"organization.organization.statusUpdated": "ORGANIZATION";
"paymentInstrument.swiftWire.statusUpdated": "PAYMENT_INSTRUMENT";
"paymentInstrument.usAch.statusUpdated": "PAYMENT_INSTRUMENT";
"paymentInstrument.usWire.statusUpdated": "PAYMENT_INSTRUMENT";
"withdrawal.withdrawal.statusUpdated": "WITHDRAW";
} = ...
Type Declaration
-
Readonlyaccount.ledgerAccount.created: "LEDGER_ACCOUNT"
-
Readonlycard.cardTransaction.statusUpdated: "CARD_TRANSACTION"
-
Readonlydeposit.deposit.created: "DEPOSIT"
-
Readonlydeposit.deposit.statusUpdated: "DEPOSIT"
-
Readonlydeposit.manualMint.created: "DEPOSIT"
-
Readonlydeposit.manualMint.statusUpdated: "DEPOSIT"
-
Readonlyidentity.identity.statusUpdated: "IDENTITY"
-
Readonlyledger.account.transfer.statusUpdated: "TRANSFER"
-
Readonlyorganization.organization.created: "ORGANIZATION"
-
Readonlyorganization.organization.statusUpdated: "ORGANIZATION"
-
ReadonlypaymentInstrument.swiftWire.statusUpdated: "PAYMENT_INSTRUMENT"
-
ReadonlypaymentInstrument.usAch.statusUpdated: "PAYMENT_INSTRUMENT"
-
ReadonlypaymentInstrument.usWire.statusUpdated: "PAYMENT_INSTRUMENT"
-
Readonlywithdrawal.withdrawal.statusUpdated: "WITHDRAW"
Event → template-key map: which customer events trigger an email, and which template key each one renders. Ported from the
<Domain>Notification- Serviceclasses, which pass exactly these event names toCustomerNotificationService.notify().Keys are checked against the registry's
CustomerEventNameunion, so a typo or a registry rename fails typecheck here instead of becoming an email that silently never sends.Deliberately absent:
redemption.transfer.statusUpdated— dual-published byte-identical alongsideledger.account.transfer.statusUpdated(see the registry); mapping both would send every TRANSFER email twice.paymentInstrument.*beyond swiftWire/usAch/usWire — only those three types notify today (PaymentInstrumentNotificationService'sNotifiablePaymentInstrumentEvent).account.ledgerAccount.statusUpdated/.balanceUpdated— only account creation notifies (LedgerAccountNotificationService).This is the single source of truth for event → template mapping — the subscription carries no SNS filter policy (like every other consumer of the topic), so nothing else has to stay in sync with it. A new template key requires a new entry here or in INTERNAL_EMAIL_EVENT_TEMPLATES.