Open mjbrichards opened 2 years ago
One simple change that was discussed in the SIG meeting today was to allow multiple FSPs to be returned for a single identifier. Scheme implementation and rules can then decide if only one FSP should be returned as today, or if multiple FSPs should be returned to let the Payer decide on which FSP to transfer funds to.
This issue will be parked until later as discussed on today's FSPIOP SIG meeting.
Open API for FSP Interoperability - Change Request
Table of Contents
1. Preface
This section contains basic information regarding the change request.
1.1 Change Request Information
| Requested By | Michael Richards, ModusBox | | Change Request Status | In review ☒ / Approved ☐ / Rejected ☐ | | Approved/Rejected Date | |
1.2 Document Version Information
2. Problem Description
2.1 Background
It has been clear for some time that the identifier type/identifier value pattern used to identify a party to a Mojaloop payment has a problem with duplicate values. A duplicate value occurs when a single identifier value is used by more than one DFSP to give access to a client. There are three types of duplication which we propose to consider; but only one of these is considered for remediation in this change request, for reasons that will be discussed below. The three types are:
2.2 Current Behaviour
At present, the API assumes that identifiers will be unique. The PUT /parties call returns information which describes a customer at a single DFSP. The question of how the scheme should behave if a DFSP attempts to register an identifier which is already associated with another DFSP in a particular oracle is undefined; and, if the scheme allows duplicate identifiers to be registered in an oracle, the question of which DFSP will be contacted for information following a GET /parties using that identifier is similarly undefined.
2.3 Requested Behaviour
Where duplicate identifiers exist, we need some way of identifying which of the DFSPs associated with a single identifier is the one to which GET /parties requests which use that identifier should be routed.
3. Proposed Solution Options
Tow possible solutions to this problem have been canvassed at various times:
For the reasons given above, neither of the possible solutions seems to offer a suitable solution to the problem. Discussions relating to the proposed cross-border proof of concept hosted by MAS have resulted in the following possible solutions to the problem.
First, the addition of a new endpoint to the specification to allow a DFSP to specify that it should be the default target tor a GET /parties for a specific identifier type and value. For example:
This solution has the disadvantage of requiring the addition of a new endpoint to the API; but it has the advantages of being relatively easy to understand, and of the semantics of the operation being closely aligned with the operation itself.
Second, the addition of a new identifier type (for instance, DEFAULT) to the PartyIdType enumeration. Issuing a POST /participants request for this identifier type means: please register me as the default account holder for this identifier type and value. One drawback of this approach is that the PartyIdInfo object would need some other data to store the identifier type for which default status is being requested; but it would be possible either to use the PartySubIdOrType item or to add the identifier type to the ExtensionList in the call. This approach also has the drawback of not representing very clearly what is actually happening as a result of making this call.
Third, the use of the ExtensionList to specify that a registration is to be treated as the default entry for that identifier, using a structure to be agreed and implemented by individual schemes. This solution has the advantage of simplicity, but loses visibility and generality of how Mojaloop responds to this issue in general.
For any of the above solutions, changes will be required as follows: