# Common Interface List

The Common Interface List includes a list of all of the common interfaces that are in use in the Mojaloop 2.0 Reference Architecture presently. Common Interfaces are used by several Bounded Contexts, hence the name.

Each Common Interface listed includes the following information: source or publisher event name or endpoint, communications style, publisher/provider Bounded Context, a description of the interface function, and a checklist of Bounded Contexts where it is being used.

# Common Interfaces

Event name OR endpoint Comms Style Publisher/Provider BC Description FSP Interop API BC Admin/Operation API BC Participant Lifecycle Management BC Transfers BC Accounts & Balances BC Settlements BC Account Lookup BC Agreements / Quotes BC 3rd Party Initiated Payments Notifications & Alerts BC Scheduling BC Auding BC Security - authZ BC Security - authN BC Security - auditing BC Security - loging BC Security - crypto BC
TransferCommittedFulfiled Event Transfers BC Transfer Committed event indicating the final outcome of the Transfer Commited stage of a transfer has been processed by the Transfers BC x x
LiquidityThresholdExceeded gRPC Transfers BC An event thrown when a given participant’s liquidity threshold is exceeded and a action should be taken X
TransferPrepared Event Transfers BC Transfer Prepared event indicating the final outcome of the Transfer Prepare stage of a transfer has been processed by the Transfers BC x
TransferQueryResponse Event Transfers BC Event containing response as a result of a TransferQueryReceived event x
TransferRejectRequestProcessed Event Transfers BC Event confirming that a Transfer Reject request was processed by the Transfers BC x
TransferPrepareRequestTimedout Event Transfers BC Event for a Transfer Timeout when a transfer was still being prepared. x
TransferFulfilComitRequestTimedout Event Transfers BC Event for a Transfer Timeout when a transfer was in a final prepared state (i.e. waiting for a fulfilment, or rejection to be reveived). x
TransferPrepareDuplicateCheckFailed Event Transfers BC Event representing a failed duplicate check validation failure as a result of processing a TransferPrepareAccountAllocated event. x
TransferPrepareLiquidityCheckFailed Event Transfers BC Event representing a failed liquidity check validation failure as a result of processing a TransferPrepareAccountAllocated event. x
TransferPrepareInvalidPayerCheckFailed Event Transfers BC Event representing a failed Payer Participant check validation failure as a result of processing a TransferPrepareAccountAllocated event. x
TransferPrepareInvalidPayeeCheckFailed Event Transfers BC Event representing a failed Payee Participant check validation failure as a result of processing a TransferPrepareAccountAllocated event. x
TransferPrepareAccountsAllocated Event Settlements BC Transfer Prepare request event with enriched information containing the applicable accounts for liquidity validation/allocation for each participant x
/random-number-gen Event Security BC - crypto random number generator. Can be used to generate (1) id (2) secret and (3) FIDO challenge x x x x x
/hash-gen HTTP/Rest Security BC - crypto Hash generation. Can be used to hash random numbers and user info. Hash is used for basic authentication and signature verification. x x x x x
/signature-gen HTTP/Rest Security BC - crypto generate signature. used to sign audit records for immutability. x x x x x
/signature-ver HTTP/Rest Security BC - crypto verify siganture. used for FIDO authentication and authorization. This is also used to validate audit record on retrieval. x x x x x x x
/encrypt HTTP/Rest Security BC - crypto generic encryption x x x x
/decrypt HTTP/Rest Security BC - crypto generic decryption x x x x
/pin-translation HTTP/Rest Security BC - crypto translate banking PIN block from one encryption zone to another. Can be used for Interbank ATM or POS transaction. x
/fido-register HTTP/Rest Security BC - crypto Composite Crypto function. stores authenticator ECC public key alongside user infor. x x
/fido-authenticate HTTP/Rest Security BC - crypto authenticate FIDO signature x x
/fido-authorize HTTP/Rest Security BC - crypto authorize FIDO transaction after gesture (pressed button, finger print, etc) x x
/kms-key-definition HTTP/Rest Security BC - crypto cryptographic key definition (key usage, duration, label) x
/kms-aes-key-gen HTTP/Rest Security BC - crypto Cryptographic key generation for symetric encryption x
/kms-ecc-key-gen HTTP/Rest Security BC - crypto Cryptogrphic key generation for Eliptic Curve key pair generation. x
/crypto-adapter-set HTTP/Rest Security BC - crypto Cryptographic Provider/adapter set (AWS, AZURE, on-prem HSM, software local libraries … etc) x
/iam-token-verifty HTTP/Rest Security BC - crypto basic authentication token verification. Composite call to AIM adapter. x x x x
/kms-pem-gen HTTP/Rest Security BC - crypto PKI keys for client authention and CLI functions. x x x
/ssl-terminate HTTP/Rest Security BC - crypto SLL termination x
/kms-load-key HTTP/Rest Security BC - crypto load cryptographic keys in key store x
/app-authorize HTTP/Rest Security BC - authZ Calls AuthZ BC to verify the authorization token. This also calls IAM function to verify roles. x x x x
/app-fido-authorize HTTP/Rest Security BC - authZ Calls Cyrpto BC to authorize transaction x x x
/app-pem-auth HTTP/Rest Security BC - authZ Uses PKI private and public key to authenticate APIs calls. uses the user IAM profile (user info + role) to auhorize. x x
/app-basic-auth HTTP/Rest Security BC - authN Calls AuthZ BC to verify id and secret. Returns authorization token x x x x
CreateScheduleReminder gRPC Scheduling BC Create a schedule reminder with the necessary information to create a event or api callback once the reminder has elapsed x
DeleteScheduleReminder gRPC Scheduling BC Event indicating that a timeout has occured for a scheduled reminder x
POST /config/schemas/ HTTP/Rest Platform Configuration (upsert) To publish the initial or new versions of a BC configuration managment object schema at bootstrap - includes version number ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GET /config/schemas/ HTTP/Rest Platform Configuration To get schema and current configurations of a all bounded contexts ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GET /config/schemas/:boundedContextId HTTP/Rest Platform Configuration To get schema and current configurations of a specifric bounded context ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
ConfigurationValuesChanged Event Platform Configuration Event sent when changes happend on a configuration - should include at least the bounded context ID, maybe the key names with changed values ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
POST /config/schemas/:boundedContextId HTTP/Rest Platform Configuration To publish the initial or new versions of a BC configuration managment object schema at bootstrap - includes version number ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
POST /config/secrets/ HTTP/Rest Platform Configuration (upsert) To publish the list of expected secrets (keys) a bounded context requires to operate - send at bootstrap - includes version number ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GET /config/secrets/ HTTP/Rest Platform Configuration To a list of secret keys each BC needs to operate - from all bounded contexts ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GET /config/secrets/:boundedContextId HTTP/Rest Platform Configuration To a list of secret keys each BC needs to operate - from a specifric bounded context ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
GET /config/secrets/:boundedContextId/values HTTP/Rest Platform Configuration This call can only be performed by the owner bouded context (verify sig) and should return the secrets along with the keys for that bounded context ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
SecretsValuesChanged Event Platform Configuration Event sent when changes happend on a secret - should include at least the bounded context ID, maybe the key names with changed secrets ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
UpdateParticipantAccountThreshold gRPC Participant Lifecycle Management BC Updates the thresholds of the accounts specified X
GetParticipantsTransfersData gRPC Participant Lifecycle Management BC Query Service to attain Participant information for Transfer purposes (i.e. validations, etc) x
GetParticipantCallbackInfo gRPC Participant Lifecycle Management BC API to query Participant information for Callbacks. Example of the FSPIOP Interop APIs BC using this to query the necessary information required for it to produce a NotifyRequested event. x
GetParticipantQuoteData gRPC Participant Lifecycle Management BC Query Service to attain Participant information for Quote purposes (i.e. validations, etc) x
CreateParticipant HTTP/Rest Participant Lifecycle Management BC Request to create a new participant with a single payload defining ALL the relevant details of the Participant X
GetPendingParticipants HTTP/Rest Participant Lifecycle Management BC Retrieves all the participants that are in the PEND-APPROVAL state, i.e. Participants that have not yet been approved or rejected X
ApproveParticipant HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Participant that is in a state of pending approval X
CreateParticipantAccountsWithLimits gRPC Participant Lifecycle Management BC Notify that the participant has been created and subsequint accounts with limits be created aswell X
ParticipantCreated Event Participant Lifecycle Management BC Notifies that the participant has been created, accounts and limis included. X
ManageFunds HTTP/Rest Participant Lifecycle Management BC Call to either Withdraw or Deposit funds. X
GetPendingManageFunds HTTP/Rest Participant Lifecycle Management BC Request all manage funds requests that have to be approved X
ApproveManageFunds HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Deposit or withdraw request X
ManageFundsCreditDebitPairInstruction gRPC Participant Lifecycle Management BC Update the accounting with the relevant credit and debit entries. X
ReserveLiquidityCover HTTP/Rest Participant Lifecycle Management BC Request to reserve an amount of liquidity cover either a value or a % X
GetPendingLiquidityCoverReservations HTTP/Rest Participant Lifecycle Management BC Get LiquidityCover requests that are currently awaiting approval X
ApproveLiquidityCoverReservation HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Liquidity Cover Reservation X
UpdateParticipantState HTTP/Rest Participant Lifecycle Management BC Request to change the current state of a given participant X
GetPendingStateUpdates HTTP/Rest Participant Lifecycle Management BC Gets all partacipants with status change requests that are pending approval X
ApproveParticipantStateUpdate HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Participant state change X
ParticipantStateUpdated gRPC Participant Lifecycle Management BC Notify BC’s that the state of a participant has changed X X X X X X X
ParticipantLiquidityThresholdExceeded Event Participant Lifecycle Management BC A notification should be sent that a given participant’s liquidity threshold is exceeded. X
AddParticipantAccount HTTP/Rest Participant Lifecycle Management BC Request to create a new account for a given participant X
GetPendingParticipantsAccounts HTTP/Rest Participant Lifecycle Management BC Gets all participants and accounts that require approval to be created X
ApproveParticipantAccount HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Participant account create request X
CreateParticipantAccountWithLimits gRPC Participant Lifecycle Management BC Creates the relevant accounts within the Accounts and Balances BC X
ParticipantAccountAdded Event Participant Lifecycle Management BC Event to notify that the participant account has been created X
UpdateAccountStatus HTTP/Rest Participant Lifecycle Management BC Request to either enable or disable the participant’s account based on the information passed X
GetPendingAccountsWithStatusUpdates HTTP/Rest Participant Lifecycle Management BC Get all accounts that are pending approval for a status change X
ApproveAccountStatusUpdate HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Participant account status change X
Enabled/DisabledParticipantAccount gRPC Participant Lifecycle Management BC Either enables or disables the account based on the information passed X
ParticipantAccountEnabled Event Participant Lifecycle Management BC Notify that a participant’s account has been enabled X
ParticipantAccountDisabled Event Participant Lifecycle Management BC Notify that a participant’s account has been disabled X
UpdateAccountLimit HTTP/Rest Participant Lifecycle Management BC Request to update the limits on a given participant’s account X
GetPendingAccountsWithLimitUpdates HTTP/Rest Participant Lifecycle Management BC Get all accounts with pending updates to the limits X
ApproveAccountLimitUpdate HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Update account limit request X
UpdateParticipantAccountLimit gRPC Participant Lifecycle Management BC Update the limits on a given participant’s account X
ParticipantAccountLimitUpdated Event Participant Lifecycle Management BC Event to notify that the participant account’s limit has been created X
UpdateAccountThreshold HTTP/Rest Participant Lifecycle Management BC Request to update the threshold for a given participant account X
GetPendingAccountsWithThresholdUpdates HTTP/Rest Participant Lifecycle Management BC Get all the accounts with pending threshold updates X
ApproveAccountThresholdUpdate HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Participant account threshold update X
ParticipantAccountThresholdUpdated Event Participant Lifecycle Management BC Event to notify that the accounts’ threshold was updated X
UpdateEndpoints HTTP/Rest Participant Lifecycle Management BC Request to update the endpoints of a given participant X
GetPendingEndpointUpdates HTTP/Rest Participant Lifecycle Management BC Gets all the participant endpoint update requests that are pending approval X
ApproveEndpointsUpdate HTTP/Rest Participant Lifecycle Management BC Approve OR Reject - Participant Endupoint Update X
ParticipantEndpointsUpdated Event Participant Lifecycle Management BC An event to notify that the Participant’s endpoint have been updated X X X X X X
GetParticipantInfo gRPC Participant Lifecycle Management BC Gets all information regarding to a given Participant X X X X
GetParticipantInfo HTTP/Rest Participant Lifecycle Management BC Gets all information regarding to a given Participant X
GetLiquidityCoverCurrentState HTTP/Rest Participant Lifecycle Management BC Request to get the current state of liquidity cover X
NotifyReport Event Notifications & Alerts BC Notification Report event containing a report of the notification, indicating if it was successful (with an applicable response from the destination) or failed with an applicable error/reason x
/log-read-build-log HTTP/Rest Logging BC log consumer. provides endpoint for applications write log topic. Building logs x x x x x x x x x x x x x x x x x
/read-log HTTP/Rest Logging BC read logs. Optionally calls Crypto BC to decrypt and or verify siganture x x x x x x x x x x x x x x x x x
NotifyRequested Event FSP Interop API BC Notification Request event containing the FSPIOP forwarding request or callback that will be send to a specific participant x
TransferPrepareRequested Event FSP Interop API BC Transfer Prepare request event x
TransferPrepareCallbackReport Event FSP Interop API BC Transfer Prepare Callback report for the Payee participant x
TransferFulfilCommittedRequested Event FSP Interop API BC Transfer Fulfilment request event indicating that a “commit” was processed by the Payee participant x
TransferFulfilCommittedCallbackReport Event FSP Interop API BC Transfer Fulfil Callback report for the Payer/Payee participant x
TransferQueryReceived Event FSP Interop API BC Event indicating containing information for a Transfer Query x
TransferQueryResponseCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Query Response callback a Participant participant x
TransferRejectRequested Event FSP Interop API BC Event for a Transfer Reject from a Payee participant x
TransferRejectRequestProcessedCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Reject Response callback to a Payer participant x
TransferPrepareRequestTimedoutCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Timeout Response callback to a Payer participant x
TransferFulfilCommitRequestTimedoutCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Timeout Response callback to a Payer/Payee participants x
TransferPrepareDuplicateCheckFailedCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Prepare Duplicate Check Failed Response callback to a Payer/Payee participants x
TransferPrepareLiquidityCheckFailedCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Prepare Liquidity Check Failed Response callback to a Payer/Payee participants x
TransferPrepareInvalidPayerCheckFailedCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Payer Participant Check Failed Response callback to a Payer/Payee participants x
TransferPrepareInvalidPayeeCheckFailedCallbackReport Event FSP Interop API BC Event containing callback response report for a Transfer Payee Participant Check Failed Response callback to a Payer/Payee participants x
QuoteRequestReceived Event FSP Interop API BC Event containing a Quote Request from a Payer participant x
QuoteReceivedCallbackReport Event FSP Interop API BC Event containing callback response report for a Quote Request to a Payee participants x
QuoteResponseReceived Event FSP Interop API BC Event containing a Quote Request Response from a Payee participant x
QuoteAcceptedCallbackReport Event FSP Interop API BC Event containing callback response report for a Quote Respose to a Payer participants x
InvalidQuoteRequestCallbackReport Event FSP Interop API BC Event containing callback response report for a Invalid Quote Request to a Payer participants x
InvalidFSPInQuoteRequestCallbackReport Event FSP Interop API BC Event containing callback response report for a Invalid FSP in Quote Request to a Payer participants x
RuleViolatedInQuoteRequestCallbackReport Event FSP Interop API BC Event containing callback response report for a Rule Violated in Quote Request to a Payer participants x
RuleViolatedInQuoteResponseCallbackReport Event FSP Interop API BC Event containing callback response report for a Rule Violated in Quote Response to a Payer participants x
/app-fido-register HTTP/Rest FSP Interop API BC Calls Cyrpto BC to register user x x x
/audit-log-write Event Auditing BC Writes audit entries into Kafka audit topic. Consumer calls Crypto BC to encrypt and / or sign logging records. x x x x x x x x x x x x x x x x x
/audit-read-build-audit-log HTTP/Rest Auditing BC audit consumer. provides endpoint for applications write audit topic. Building logs x x x x x x x x x x x x x x x x x
/read-audit-log HTTP/Rest Auditing BC read audit logs. calls Crypto BC to decrypt and or verify siganture x x x x x x x x x x x x x x x x x
QuoteRequestAccepted Event Agreements/Quotes BC Event for a Quote Request being processed by the Transfers BC x
QuoteResponseAccepted Event Agreements/Quotes BC Event for a Quote Response being processed by the Transfers BC x
InvalidQuoteRequest Event Agreements/Quotes BC Event representing a quote validation failure as a result of processing a QuoteReuestReceived event. x
InvalidFSPInQuoteRequest Event Agreements/Quotes BC Event representing an invalid FSP in Quote Request failure as a result of processing a QuoteReuestReceived event. x
RuleViolatedInQuoteRequest Event Agreements/Quotes BC Event representing an Rule Violated in Quote Request failure as a result of processing a QuoteReuestReceived event. x
RuleViolatedInQuoteResponse Event Agreements/Quotes BC Event representing an Rule Violated in Quote Response failure as a result of processing a QuoteReuestReceived event. x
/app-register HTTP/Rest Admin/Operation API BC Calls Crypto BC to obtain id and secret x x x x
GetLiquidityCoverHistory HTTP/Rest Admin/Operation API BC Request the account position history X
GetReservations HTTP/Rest Admin/Operation API BC Request the reservations X
GetCurrentLiquidityPosition gRPC Accounts & Balances BC Get the current liquidity position for validation to update liquidity cover reservastion X
RecordLiquidityReservationEntries gRPC Accounts & Balances BC Records the relevant entries for the liquidity cover reservations X
RequestAccountsPositions gRPC Accounts & Balances BC Get account positions for a given participant X
RequestAccountPositionHistory gRPC Accounts & Balances BC Get accounts position history for a given participant X
RequestReservationAccounts gRPC Accounts & Balances BC Request the accounts related to reservations’ X
ProcessTransferPrepare gRPC Accounts & Balances BC Process Transfer Prepare request for debiting the Payer liquidity, and crediting the Payer position via reservation of funds x
ProcessTransferFulfil gRPC Accounts & Balances BC Process Transfer Fulfil request for debiting the Payer reserved funds, and crediting the Payee liquidity x
/log-write Event Writes log entries into Kafka logging topic. Consumer optionally calls Crypto BC to encrypt and / or sign logging records. x x x x x x x x x x x x x x x x x
Last Updated: 2/18/2022, 12:02:15 PM