# Account Lookup Service

The Account Lookup Service (ALS) (refer to section 6.2.1.2) as per the Mojaloop 1.1 Specification implements the following use-cases:

  • Participant Look-up
  • Party Look-up
  • Manage Participants Registry information
    • Adding Participant Registry information
    • Deleting Participant Registry information

Use-cases that have been implemented over and above for Hub Operational use:

  • Admin Operations
    • Manage Oracle End-point Routing information
    • Manage Switch End-point Routing information

# 1. Design Considerations

# 1.1. Account Lookup Service (ALS)

The ALS design provides a generic Central-Service component as part of the core Mojaloop. The purpose of this component is to provide routing and alignment to the Mojaloop API Specification. This component will support multiple Look-up registries (Oracles). This ALS will provide an Admin API to configure routing/config for each of the Oracles similiar to the Central-Service API for the End-point configuration for DFSP routing by the Notification-Handler (ML-API-Adapter Component). The ALS will in all intense purpose be a switch with a persistence store for the storage/management of the routing rules/config.

# 1.1.1. Assumptions

  • The ALS design will only cater for a single switch for the time being.
  • Support for multiple switches will utilise the same DNS resolution mechanism that is being developed for the Cross Border/Network design.

# 1.1.2. Routing

The routing configuration will be based on the following:

  • PartyIdType - See section 7.5.6 of the Mojaloop Specification
  • Currency - See section 7.5.5 of the Mojaloop Specification. Currency code defined in ISO 4217 (opens new window) as three-letter alphabetic string. This will be optional, however isDefault indicator must be set to true if the Currency is not provided.
  • isDefault - Indicator that a specific Oracle is the default provider for a specific PartyIdType. Note that there can be many default Oracles, but there can only be a single Oracle default for a specific PartyIdType. The default Oracle for a specific PartyIdType will only be selected if the originating request does not include a Currency filter.

# 1.2. ALS Oracle

The ALS Oracle be implemented as either a Service or Adapter (semantic dependant on use - Mediation = Adapter, Service = Implementation) will provide a look-up registry component with similar functionality of the /participants Mojaloop API resources. It has however loosely based on the ML API specification as it's interface implements a sync pattern which reduces the correlation/persistence requirements of the Async Callback pattern implemented directly by the ML API Spec. This will provide all ALS Oracle Services/Adapters with a standard interface which will be mediated by the ALS based on its routing configuration.
This component (or back-end systems) will also be responsible for the persistence & defaulting of the Participant details.

# 2. Participant Lookup Design

# 2.1. Architecture overview

Architecture Flow Account-Lookup for Participants

Note: The Participant Lookup use-case similarly applies to for a Payee Initiated use-case such as transactionRequests. The difference being that the Payee is the initiation in the above diagram.

# 2.2. Sequence diagrams

# 2.2.1. GET Participants

# 2.2.2. POST Participants

# 2.2.3. POST Participants (Batch)

# 2.2.4. DEL Participants

# 3. Party Lookup Design

# 3.1. Architecture overview

Architecture Flow Account-Lookup for Parties

# 3.2. Sequence diagram

# 3.2.1. GET Parties

# 4. ALS Admin Design

# 4.1. Architecture overview

Architecture Flow Account-Lookup for Admin Get Oracles

# 4.2. Sequence diagram

# 4.2.1 GET Oracles

# 4.2.2 POST Oracle

# 4.2.3 PUT Oracle

# 4.2.4 DELETE Oracle

# 4.2.5 DELETE Endpoint Cache

# 5. Database Design

# 5.1. ALS Database Schema

# Notes

  • partyIdType - Values are currently seeded as per section 7.5.6 Mojaloop 1.1 Specification.
  • currency - See section 7.5.5 of the Mojaloop Specification. Currency code defined in ISO 4217 (opens new window) as three-letter alphabetic string. This will be optional, and must provide a "default" config if no Currency is either provided or provide a default if the Currency is provided, but only the "default" End-point config exists.
  • endPointType - Type identifier for the end-point (e.g. URL) which provides flexibility for future transport support.
  • migration* - Meta-data tables used by Knex Framework engine.
  • A centralSwitchEndpoint must be associated to the OracleEndpoint by the Admin API upon insertion of a new OracleEndpoint record. If the centralSwitchEndpoint is not provided as part of the API Request, then it must be defaulted.

Acount Lookup Service ERD

# 6. ALS Oracle Design

Detail design for the Oracle is out of scope for this document. The Oracle design and implementation is specific to each Oracle's requirements.

# 6.1. API Specification

Refer to ALS Oracle API in the API Specifications section.