Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solution Proposal: Settlement API Participant Identifier is not compatible with FSPIOP Identifiers #93

Open
mdebarros opened this issue Sep 7, 2021 · 1 comment
Assignees

Comments

@mdebarros
Copy link
Member

Solution Proposal: 91 -- Settlement API Participant Identifier is not compatible with FSPIOP Identifiers


Open API for FSP Interoperability -- Solution Proposal

Table of Contents

1. Preface

___

This section contains basic information regarding the solution proposal.

1.1 Solution Proposal Information

Info Details
Requested By Miguel de Barros, ModusBox
Solution Proposal Status In review [X] / Approved [ ] / Rejected [ ]
Approved/Rejected Date

1.2 Document Version Information

Version Date Author Change Description
1.0 2021-09-07 Miguel de Barros Initial version. Sent out for review.

2. Change Request

2. Change Request

--- Refer to [mojaloop-specification/issue/91](https://github.com//issues/91) for background information.

3. Proposed Solution

___

All Participant Entities returned by the Settlement API that includes the Datastore Identifier should also include the Participant Name as per the following example:

[
  {
    "id": 0,
    "state": "string",
    "settlementWindows": [
      [
        {
          "id": 0,
          ...
        }
      ]
    ],
    "participants": [
      {
        "id": 0, <-- This is the Datastore Identifier
        "name": "DFSP1", <-- Unique Name identifier for the Participant
        "accounts": [
          {
            "id": 0, <-- This is the ParticipantCurrency (i.e. Account) Identifier
            "reason": "string",
            "state": "PENDING_SETTLEMENT",
            "netSettlementAmount": {
              "amount": 0,
              "currency": "string"
            }
          }
        ]
      }
    ]
  }
]

This is a minor update to the existing API, and it should have no "breaking" impact on the existing API Specification or the current consumers of the Settlements API.

3.1 Add FSPIOP identifier to the GET /settlements response Participant data model

This change will require a minor version of the settlements
resource, from version 2.0 to version 2.1.

3.1.1 Current Participants data model

Name Cardinality Type Description
id 1 integer FSP identifier (i.e. datastore)
accounts 0..many Accounts List of Participant Accounts.

3.1.2 Proposed Participants data model

Name Cardinality Type Description
id 1 integer FSP identifier (i.e. datastore identifier)
name 1 FspId FSPIOP identifier name as defined as per the FSPIOP Specification definition for #/definitions/FspId'
accounts 0..many Accounts List of Participant Accounts.

4. Other Considered Solutions

___

4.1 Add transaction ID to the POST /transfers data model

Alternatively we should consider removing the Datastore Identifier entirely from all Settlement API operations and Participant entities. The reason is that we should be utilizing Functional Identifiers similar to the FSPIOP specification going forward instead of using an identifier that is specific to the underlying Datastore. This, however, would be a breaking change and we would need to introduce a strategy on how we can deprecate the current Participant Identifier's appropriately.

This option is preferred but will be differed for a future vNext version of the Central-Settlement API due to its breaking changes.

@PaulGregoryBaker
Copy link

I would like to vote for this change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants