The IPF Reachability Domain

The IPF Reachability Domain is an external library representation of basic interaction with CSM reachability to be used within a flow.

It has two predefined functions for use:

Select CSM Agent

select csm agent

The select csm agent function provides support for invoking select csm agent reachability endpoint. The supported input of the function is either PAIN.001 or PACS.008, it maps the message to request parameters input and verifies if agent is reachable or not.

Once this function is triggered as a part of the flow, input payment message is mapped to the requested input parameters in the following priority order:

  • if IBAN is provided in the payment message, it is extracted from the message and sent in request to CSM reachability

  • if IBAN is not provided, but BIC is provided - it is extracted from the message and sent in request to CSM reachability

  • if IBAN and BIC are not provided, but NCC is provided - it is extracted from the message and sent in request to CSM reachability CSM reachability response of this operation is then processed with the function adapter - where the default implementation behaves in a following manner:

Condition on response data Is Reachable Reason Code CSM Business Data on Event

IF HighestOrderReachableCSM.reachabilityResponse.reachable = YES

Yes

AgentReachable

Map from highestOrderReachableCSM.reachabilityResponse.agentUniqueId

IF HighestOrderReachableCSM.reachabilityResponse.reachable = NO

No

AgentNotReachable

None

IF any instance of matchingCSMAgents.CSMAgent.reachable = YES

Yes

AgentReachable

Map from matchingCSMAgents.agentUniqueId from the first instance of matchingCSMAgents

IF HighestOrderReachableCSM.reachabilityResponse.reachable = NO

No

AgentNotReachable

None

For more details on how this CSM reachability endpoint works under the hood, check CSM reachability docs.

Validate Intra Entity Reachability

validate intra entity reachability

This function is used to validate if the payment can be settled within the processing entity itself, without using an external CSM agent. For more details on how this CSM reachability endpoint works under the hood, check CSM reachability docs.

Currently supported input of the function is either PAIN.001 or PACS.008. Once this function is triggered as a part of the flow, input payment message is mapped to the requested input parameters in the following priority order:

  • if IBAN is provided in the payment message, it is extracted from the message and sent in request to CSM reachability

  • if IBAN is not provided, but BIC is provided - it is extracted from the message and sent in request to CSM reachability

  • if IBAN and BIC are not provided, but NCC is provided - it is extracted from the message and sent in request to CSM reachability

Finally, the result of this function can be either: Agent Reachable or Agent Not Reachable.

Default Mapping Functions

The following default mapping functions are provided:

CSM Operation Default Mapping Function Name ISO 20022 Message Type Field from which identifier is extracted Supported Counterparty Identifier Types

Select CSM Agent

performMapPacs008ToCSMAgentRequest

PACS.008

CdtTrfTxInf[0].CdtrAcct.Id.IBAN CdtTrfTxInf[0].CdtrAgt.FinInstnId.BICFI CdtTrfTxInf[0].CdtrAgt.FinInstnId.ClrSysMmbId.MmbId

IBAN,BIC,NCC

Select CSM Agent

performMapPain001ToCSMAgentRequest

PAIN.001

PmtInf[0].CdtTrfTxInf[0].CdtrAcct.Id.IBAN PmtInf[0].CdtTrfTxInf[0].CdtrAgt.FinInstnId.BICFI PmtInf[0].CdtTrfTxInf[0].CdtrAgt.FinInstnId.ClrSysMmbId.MmbId

IBAN,BIC,NCC

Validate Intra Entity Reachability

performMapPacs008ToCSMValidateIntraEntityReachabilityRequest

PACS.008

CdtTrfTxInf[0].CdtrAcct.Id.IBAN CdtTrfTxInf[0].CdtrAgt.FinInstnId.BICFI CdtTrfTxInf[0].CdtrAgt.FinInstnId.ClrSysMmbId.MmbId

IBAN,BIC,NCC

Validate Intra Entity Reachability

performMapPain001ToCSMValidateIntraEntityReachabilityRequest

PAIN.001

PmtInf[0].CdtTrfTxInf[0].CdtrAcct.Id.IBAN PmtInf[0].CdtTrfTxInf[0].CdtrAgt.FinInstnId.BICFI PmtInf[0].CdtTrfTxInf[0].CdtrAgt.FinInstnId.ClrSysMmbId.MmbId

IBAN,BIC,NCC

For all mapping functions, the counterparty identifier is extracted in the following priority order: first IBAN if provided, then BIC if IBAN is not provided, and finally NCC if neither IBAN nor BIC are provided. Currently, Validate Intra Entity Reachability endpoint accepts only a single counterparty identifier in request, hence limiting the behavior of business function as well.

It is possible to override any of these mapping functions by providing a custom bean that overrides default IPFReachabilityMappingsMappingPort interface implementation. For more details on how to override a mapping function - check out this page.