Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 110 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

1.0.0

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Guides

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Registration Interfaces

Introduction

OpenG2P platform offers registration of persons into programs via the following interfaces:

  1. Mobile registration app

  2. Self-registration by a potential beneficiary

  3. API-based registration by other systems

Agent-assisted registration supports in areas where connectivity may be a challenge.

Registration can be done for individuals or groups like families, households, schools, etc.

Architecture

Functional architecture

OpenG2P has a flexible architecture that allows governments and social benefit delivery systems to choose functionalities per their needs. The platform is built to allow inclusion and has supporting features. For example, beneficiaries in remote areas without network connectivity can be registered offline. The platform also supports multiple stages of approval with each approval carried out by a different officer.

Functional Architecture

External System Integrations

Digital authentication can be facilitated using MOSIP or any other ID system as the platform is agnostic of ID systems.

The platform can integrate with payment systems other than the three payment systems shown in the diagram.

Technical architecture

Home

is an open source platform that provides the foundation to build government-to-person (G2P) solutions. The roots of the platform lie in the social benefit delivery systems originally developed in response to the Ebola outbreak in Sierra Leone.

The platform offers people facing processes such as onboarding into schemes, identity verification, and cash transfers to their bank accounts. It also incorporates government department facing features such as the creation of registries and beneficiary lists, eligibility checks, scheme definition, payment disbursement and reconciliation.

OpenG2P is a Digital Public Good () recognized by the DPGA and has received contributions and support from multiple organisations and implementers. Its roadmap includes support for non-monetary benefits, proof of delivery, beneficiary management, secure registries, and decision making support.

The project, co-founded by the Government of Sierra Leone and UNDP and supported by in the early stages, is now housed in, a not-for-profit university in India.

offline registration
OpenG2P
DPG
Mifos
IIIT Bangalore

Mobile Registration App

Introduction

The person's information is filled in ODK forms on Android devices and submitted to the backend for further processing. The ODK application is integrated with a QR code scanning application that enables an automatic population of KYC data of the person in the form along with verification of digital signature establishing the authenticity of the card.

Registration Process

  • Program creation

  • ODK form template creation

  • Upload of form to ODK Central

  • Assigning forms to agents

A high-level view of the administrator-driven registration approach is given below:

ODK

ODK is an open source toolkit that uses offline forms to collect data. ODK Collect is the client-side app while ODK Central is the server-side app. Learn more about ODK .

Offline Registration Mode

OpenG2P offers mechanisms to carry out registrations on the field in areas where Internet connectivity may not be available.

Offline registration demo

Registration

Introduction

In the OpenG2P platform, registration is a series of three processes - intake, recording, and verification. Intake is the process of gathering information from applicants while recording and verification are the processes to add the authenticated information to the . The platform verifies the applicant's details in the background by confirming the identity and demographic details of the applicant digitally.

Registration aims to provide detailed records for in the . It must be noted that at this stage, the people are referred to as applicants or registrants. Once the applicants/registrants pass the eligibility criterion set by the program manager, they become eligible to enrol in the program and are referred to as beneficiaries.

This is a pictorial representation of the OpenG2P registration process.

Entitlement

Introduction

Entitlement is the quantity of benefit that a beneficiary is entitled to receive. For cash transfers, this is money that a beneficiary will receive via either direct bank transfer, mobile wallet, cash at the counter, vouchers or other disbursement mechanisms. Entitlement is defined for each .

Enrolment

Introduction

Enrolment is the process of creating a beneficiary list of individuals or groups by querying the registry and applying eligibility criteria. OpenG2P provides convenient filters and plugins to make the entire process frictionless, convenient and time-saving.

Program Management

Introduction

The Program Management module offers a rich set of functions to define various beneficiary programs (schemes), enrol beneficiaries based on eligibility, calculate entitlements and disburse benefits to the beneficiaries.

Program definition

Program states

  • Created

  • Ended

  • Reactivated

Target types

A program may be targeted to an individual or a group. A group may be a household, family or any other group to which the program is targeted.

ID Verification

Introduction

At the backend, the ID provided (functional or foundational) during registration is verified by submitting the demographic details and ID number by calling APIs of the corresponding ID system. The response from the ID system could be a yes/no response with optional data like ID token and KYC details.

Verification of MOSIP ID

Payment Manager

Introduction

Payment Manager is an interface to connect a downstream payment system, like Payment Hub. Multiple Payment Managers may be configured to connect to different systems. Each configuration is specific to the payment system.

Functionality

The Payment Manager creates batches and payment objects.

API Interface

Payment Cycles

Introduction

In a given program, disbursement to beneficiaries is done in cycles. The entire entitlement to a beneficiary may be split into cycles for reasons of availability of funds, certain conditions that the beneficiary has to meet or other factors. Further, the beneficiary list may also undergo a change in different cycles based on updated eligibility criteria.

Cycle definition

Beneficiary list update

Splitting a beneficiary list across cycles

A beneficiary list may be split across cycles such that disbursement to a subset of the list is done in one cycle while for the rest disbursement is done in the next cycle.**

** This feature will be available in version 1.2.x of OpenG2P.

Community

Verifiable Credentials

Accounting

Introduction

Fund Management

Entitlement

Payments

Payment Batches

Program Fund Report

Accounting Journals

In Kind

How-To Guides

In Account

Reconciliation

Notifications

Introduction

Notifications to beneficiaries and administrators are a must-have, especially when there are multiple stages of a delivery chain, usually with long time intervals between various stages. The beneficiaries must be informed about their enrolment status, entitlements, disbursements, exit etc. Multiple methods of notifications may be employed like postal and courier service, SMS, email, and messaging apps.

OpenG2P provides in-built support for email and SMS with simple configuration changes. The notifications are triggered at certain default points in the delivery chain, however, depending on the needs of a specific implementation more trigger points may be added.

Map Self Service Portal Form

TBD

Voucher

About Github Repositories

Cash

Getting Started

Configure ID Types

openg2p-registry

Reports

Integrations

๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘ฉ๐Ÿ’ป ๐Ÿ‘ฉ๐Ÿ’ป Developer Zone

Documentation Guides

Payment Types

Field registration by the agent using ODK Collect on an Android tablet/phone.

  • Submission of form to ODK Central

  • Addition of record to the registry

  • ID verification and KYC

  • here

    Registration approaches

    Registration can be carried out via multiple channels such as digital service windows/kiosks, social workers, local registration offices, door-to-door visits, referrals from other programs, etc. The registration approach can be either on-demand or administrative-driven. Three key features distinguish between these two approaches:

    Applicant-initiated vs program-initiated

    Whether the registration process was initiated by the applicant (on-demand) or by the program administrator (administrator-driven)

    Individual vs group registration

    Whether applicants registered themselves individually (on-demand) or registered as a group/family/household (administrator-driven)

    Continuous vs time-bound

    Whether applicants could register at the time of their choosing (on-demand) or had to apply in a specific time window (administrator-driven)

    Registration interfaces

    While on-demand and administrative-driven approaches are two distinct models, the registration process operates in a spectrum between these two models. For example, a program may allow the applicants to register individually (on-demand) but may allow them to apply only in a certain time window (administrative-driven). OpenG2P platform has a flexible implementation and through its various Registration Interfaces aims to cater to a combination of approaches across different registration modalities and programs.

    Registration features

    OpenG2P registration interfaces are key client-facing interfaces. The clients here could be the applicants, social workers, program administrators, program managers, etc. There are the main features offered by these interfaces:

    Authentic

    The clients log into the system using their MOSIP ID/National ID allowing the information to be verified while it is being recorded. Additionally, logging in using National ID can pre-fill the information fields in an authentic manner.

    Always available

    OpenG2P's Mobile Registration App allows social workers and field registration officers to record the applicant's information without any internet connectivity.

    Secure

    The applicant's information is encrypted at rest and during transit allowing the information to be secure against malicious attacks.

    Privacy-preserving

    The platform allows for consent forms to be filled out and recorded before starting the intake. The recorded information is not used for any purpose other than the explicitly stated purpose in the consent form.

    Customizable intake

    The applicant information is filled in using general intake sheets. These intake sheets can be customized per the assessment information required by the program.

    Notifications

    The platform can be configured to send Notifications to the applicants via multiple channels such as email, sms, etc.

    Developer References

    API

    Code

    Guides

    FAQs

    Registry
    Eligibility Assessment
    Registry
    Entitlement Manager

    Approval process

    Entitlement to beneficiaries approved for a given cycle
    cycle
    Eligibility definition

    Program eligibility could be defined as simple filters on the data collected for individuals (residing in the registry) or could be more sophisticated like Proxy Means Test. Default filters and plugins are provided that would meet most of the eligibility definitions. For complex eligibility criteria, custom plugins can be written and added to the Eligibility Manager.

    Program assignment

    Program enrolment

    Demo

    Payment Management

    Introduction

    The Payments module consists of several functions to efficiently execute cash transfers to the beneficiaries and report the status of payments. Out of the box, OpenG2P offers payment connectors for Mojaloop and GSMA Mobile Money with flexibility to create custom connectors specific to the payment rails of a country.

    Payments are generally executed in cycles and batches.

    Payments demo

    Testing

    Test cases and verification

    The Excel sheet below lists test cases and their verification status for different versions of software. This is a live sheet, and will have the latest status of verification.

    MOSIP Integration

    Introduction

    OpenG2P integrates with MOSIP to verify the UIN/VIDs provided by individuals as part of the registration process. As a result of the verification, OpenG2P receives a unique token against an individual's UIN/VID along with KYC data. This data is stored in the registry.

    There are two ways to obtain the MOSIP tokens:

    1. For new registrations that are conducted via ODK form, The MTS Connector is configured to pull data directly from ODK Central and return MOSIP tokens. See .

    2. For already existing records in the registry, the is used to trigger a connection with MTS and in turn receive MOSIP tokens for all the records requested.

    Cash grant scenario

    A typical flow of enrolling a beneficiary by collecting data on the field by an agent, in offline mode, is illustrated below.

    License

    Source code

    All containing source code are licensed under the terms of .

    All trademarks are the property of their respective holders. Other products and company names mentioned may be their respective owners' trademarks and/or service marks.

    Monitoring and Reporting

    Introduction

    Monitoring the status of programs and registries is vital for program administrators. OpenG2P integrates a that lets users create dashboards of their choice to visualise data. The framework uses open source technology components to create a pipeline of data flowing from the databases to visualisation tools. A sample dashboard is given below:

    Disbursement Cycles

    Introduction

    A program may have disbursement done in multiple time cycles with start and end dates for each cycle. Such cycles may be defined and triggered as per the schedule defined in each cycle.

    Cycles

    Payment Batches

    Introduction

    In each , the payment transactions are done in batches. There could be several reasons for batching the payments. The transaction limits may be imposed by payment switch, or any other entity in the payments chain.

    Create Notification Manager Types

    Description

    There are 3 types of notification managers available that can be created and then can be configured to the program accordingly.

    1. SMS Notification Manager

    Eligibility Assessment

    Introduction

    A given program will have certain criteria to consider individuals eligible for that program. Assuming that eligibility can be expressed unambiguously based on an individual's demographic data, a program manager can easily run the criteria on the registry to create a beneficiary list using domain filters and eligibility plugins.

    Create MTS Connector

    Description

    This guide provides the steps to create MTS Connectors.

    There are two types of MTS Connectors differentiated based on input types

    Email Notification Manager
  • Fast2SMS Notification Manager

  • Eligibility Manager

    In OpenG2P, Eligibility Manager is a separate software module where the eligibility of a program is configured. If custom plugins are written, they are added to the Eligibility Manager.

    Note that one eligibility manager can be associated with only one program. Each program should have its own eligibility manager created and configured.

    Domain filters

    Custom eligibility plugins

    Example: Proxy Means Test

    ODK MTS Connector
    Registry MTS Connector
    Batch statistics

    Batch completion status

    payment cycle
    DFSP

    OpenG2P Registry

    Pre-requisites

    The user must have a Program Manager role. See Create User and Assign Role guide.

    ODK

    Writing Guidelines For How-To Guides

    • Capitalize the first letter of every word in the guide title.

    • Use second-person pronouns i.e. you, your, etc. in the instructions/steps.

    • It is mandatory to do spelling and grammatical corrections using tools such as Grammarly.

    • Use the italicized font for UI elements i.e. dashboard names, button labels, information fields, etc.

    • Use the exact name and case for the UI elements.

    • Use quotes for a phrase/word if the phrase/word has to be represented as is.

    • Provide a link at the first mention of a new/different topic. For example, if the guide is talking about installing the SmartScanner app, and the WireGuard app is mentioned, then provide the link for WireGuard.

    • Use clear and crisp images.

    • The filename for images should follow the naming convention of every word in lower case, and words separated by hyphens i.e. view-all-programs.png.

    openg2p-program

    Workflows

    Send Notification to Individual Registrants

    TBD

    Map ODK Form

    TBD

    Accounting

    Documentation

    This documentation work is licensed under a Creative Commons Attribution 4.0 International License.

    OpenG2P repositories
    Mozilla Public License 2.0
    herein
    Reporting infra

    Details of this infrastructure may be found here.

    reporting framework
    Cycles defined for disbursement
    Cycle is approved

    Registry

    Introduction

    OpenG2P registry is a single repository containing details of the registrants. The registry uses PostgreSQL for maintaining the information in a single DB table.

    The purpose of the registry is to provide a single source of truth to the program administrators and managers. Program administrators can grant access to other program participants to act on this information.

    Identification of records

    Identification of records in the registry is done with configured . ID can be foundational like MOSIP ID or functional like a voter's card, tax number, driving license, etc.

    Individual and groups

    Individual registrant information is entered in a single row. Whereas group details are stored in multiple rows in the form of relationships with the head or representative of the group.

    Multiple entries

    OpenG2P platform supports multiple entries for a registrant in the registry. The intent is to keep all the entries for a registrant and deduplicate later at the program level if required. Multiple entries allow program administrators the flexibility to build a registry without bothering about duplicate entries, especially during a crisis situation such as a flood, earthquake, tsunami, etc. and work on deduplication later using the .

    Privacy and security

    A registry contains an individual's Personally Identifiable Information (PII) along with very rich demographic data. It is critical that this data is secure and PII is not shared in human-readable form or passed on to other systems without the individual's consent. OpenG2P offers secure and private registries to address this concern.

    Security

    Data at rest is encrypted using strong cryptographic techniques. The data is decrypted in memory while processing the record such that no trace of the unencrypted data is stored anywhere in the system.

    Privacy

    Data is anonymised while being displayed in human-readable form (for example, UI screen). Similarly, any query results from the registry are anonymised such that this information cannot be used to specifically target an individual.

    Custom registrant information

    More often than not, program administrators require additional information about the registrants. However, each row in the database can have only a fixed number of fields. To provide customization, the OpenG2P registry captures the most commonly used fields such as name, age, gender, address, identity, etc. as a fixed number of individual fields. Any additional information is captured as key-value pairs held together in a blob.

    Next generation registry

    In the roadmap of OpenG2P, an enhanced secure registry with the following features is planned.

    Developer References

    Guides

    FAQs

    API

    User authentication

    Individual Registration

    Group Registration

    Payment Rails

    Introduction

    Digital payments infrastructure (DPI) could vary from country to country. It is therefore necessary that social benefit delivery systems have the ability to connect to the prevailing DPI and perform G2P payments efficiently. OpenG2P platform provides flexibility to connect to a payment system by writing custom connectors. By default, the platform offers interoperability with the following:

    • Mifos Payment Hub

    FAQ

    How do I create a custom connector?

    Refer to the guide .

    On-Demand Assistance

    Introduction

    On-demand assistance is especially useful for scenarios like urgent surgeries, treatments, and other crises. However, to prevent instances of fraud, it is imperative to do a thorough assessment of beneficiary entitlement. This section details one reference implementation using multiple stages of approvals.

    Process

    1. The beneficiary logs into and provides details of assistance such as the type and cost of treatment along with the name, address, gender, age, occupation, and family information.

    2. The assistance application is reviewed and assessed in multiple stages by the officers designated by the program administrator/manager. At each stage, the designated officer will either approve/reject the application with a valid reason. If the application is rejected at any one of the stages, the approval process stops.

    3. After all the designated officers approve the application, the final approving officer will also issue an entitlement voucher. The entitlement voucher has a QR code that can be scanned to view beneficiary entitlement and prove the authenticity of the entitlement voucher.

    Reference scenario

    This example describes on-demand assistance with multi-stage approval.

    Customizations

    • The program manager/administrator can custom-assign an assessment officer for each stage.

    • Though this example shows three stages, the number of stages can be customized.

    • The entitlement voucher can be communicated digitally or printed on paper.

    Submit Reimbursement Using the Service Provider Portal

    Description

    The guide here provides steps to submit reimbursement using Service Provider Portal.

    Pre-requisites

    The Service Provider Portal user has login access to the portal using MOSIP ID/National ID. The user should be able to scan the QR code from the entitlement voucher using .

    Steps

    1. Login into the Service Provider Portal using MOSIP ID/National ID. In the example below, the National ID of the Philippines (PhilSys ID) is shown.

    1. Upon successful login, you will see the Reimbursements dashboard.

    1. Select the desired beneficiary and click on Apply. Applying for the reimbursement takes you to the Submission Form page.

    1. The beneficiary details are available by scanning the QR code on the entitlement voucher (also called Guarantee Letter) using the . The scan should show details similar to the format in the image below.

    1. Enter the details from the scan into the Submission Form and click Submit. This will show a user prompt to confirm the details. Click Submit.

    1. Successful submission will show a confirmation page with details such as the application Id and submission date.

    1. You can optionally click Go to Home to view the submitted reimbursements. You should see that the status of reimbursement has changed to Applied.

    Create Default Eligibility Manager

    Description

    This guide provides the steps to create a default eligibility manager

    Pre-requisites

    user should have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on Default Eligibility Manager.

    1. Click Create a button on the default eligibility manager list view page.

    1. Provide the name for the eligibility manager and select the program name from the drop-down for which the eligibility manager is created.

    1. Use +Add filter to set eligibility criteria using . You may specify multiple eligibility criteria.

    1. Click the Save button to save the eligibility manager and it will be listed under the eligibility manager list view page.

    Integration with e-Signet

    Introduction

    OpenG2P can use e-Signet for authentication. e-Signet provides an OIDC interface for authentication while connecting to the MOSIP's IDA services on the backend.

    Here, OpenG2P is a Relying Party and the Authentication System is MOSIP. Learn more.

    Configure OpenG2P for e-Signet

    Refer to the guide .

    Create Payment Hub EE Payment Manager

    Description

    This guide provides the steps to create Payment Hub EE Payment Manager.

    Pre-requisites

    The user should have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on Payment Hub EE Payment Manager.

    1. Click on Create button which will navigate to the Payment Hub EE Payment Manager creation page.

    1. In the payment manager creation page provide a name for the payment manager, select the program name, select Automatically Create batch if needed, and all the other configurations will auto-populate and can be changed accordingly.

    1. Once the payment manager is saved it will be listed under the payment manager list view page which further can be used under the program configuration for which it was created.

    Create Payment Interoperability Layer Payment Manager

    Description

    This guide provides the steps to create a Payment Interoperability Layer Payment Manager.

    Pre-requisites

    The user should have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on Payment Interoperability Layer Payment Manager.

    1. Click on Create button which will navigate to the Payment Interoperability Layar Payment Manager creation page.

    1. In the payment manager creation page provide a name for the payment manager, select the program name, select Automatically Create batch if required, provide the Payment End Point URL and Select the Payee DFSP ID Type.

    1. Once the payment manager is saved it will be listed under the payment manager list view page which further can be used under the program configuration for which it is mapped.

    Enrol Registrants into Program

    Description

    This guide will help enrol registrants into a program, who are registered through offline registration and online self-registration process.

    Pre-requisites

    • The user must have a Program Manager role. See guide.

    • There should be registrants with respect to the program

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name on which enrolment needs to be done.

    1. After landing on Program detailed view page, check the beneficiaries section for the registrants who are in draft status.

    1. Navigate back to the program list view page and click on Enrol Eligible Registrants to enrol the registrants who are in draft status.

    2. Enrolment of registrants will be based on the Eligibility criteria set as per the program.

    3. The registrants who pass the eligibility criteria will be enrolled on the program with Enrolled status and those who fail the eligibility criteria will be given Not Eligible status.

    Create Payment Manager Types

    Description

    This guide will provide the types of payment managers that can be created and then can be configured to the program accordingly.

    1. Payment Hub EE Payment Manager

    Install WireGuard App And Activate Tunnel

    Description

    The guide here provides steps to install WireGuard App and activate the tunnel. This app allows users to create an encrypted VPN for secure communication.

    Pre-requisites

    The user must possess an Android Phone. The user should reach out to the system administrator to generate the Wireguard conf file before proceeding with the installation.

    Steps

    1. Search for "wireguard" in the Android Play Store.

    1. Install the WireGuard app, open it, and click on the + icon to add the tunnel.

    1. A list of options will appear from the bottom of the app. Click the Import from file or archive option.

    1. Select the WireGuard conf file provided by the system administrator. On successful tunnel creation, the tunnel name will appear at the top of the app.

    1. Activate the tunnel in WireGuard.

    Deduplication

    Introduction

    Deduplication refers to the process of removing duplicate entries in the registry, thus avoiding double-dipping, and merging all the demographic fields associated with an individual or a group into a single record.

    Deduplication of individuals

    Individuals are deduplicated by any of the below methods or a combination of these:

    Unique foundational ID

    If a country has issued unique foundational IDs (like ) then deduplication is trivial -- there is only one record associated with an ID. For privacy, the foundational ID itself is not stored in the registry. Instead, a or associated with the ID is stored.

    Functional IDs

    If functional IDs like driver's license, tax number, student ID etc. are accepted while registration, then deduplication across IDs is somewhat challenging if a link between these is not already established and available to the OpenG2P system. In this case, heuristics are applied to demographic data to detect potential duplicates.

    No ID

    In case registrants were onboarded without an ID, the deduplication is performed using heuristics on demographic data.

    OpenG2P is guided by the principle of inclusion. The system does not prevent registrations of persons who do not have an ID. This is especially applicable during emergency relief like floods, war, and other calamities.

    Deduplication of groups

    Deduplication of groups refers to removing duplicate groups within a type of group like a family, or household. The deduplication method is context-dependent and is configured via rules. For example, if the same family has registered itself twice, it will be flagged as a duplicate. However, there are more complex scenarios - say, an individual appears in two different households while other members are different. Such cases will be flagged based on the configured rules.

    Manual adjudication

    Resolution of duplicates is generally done via a manual adjudication process, where an authority is visually able to inspect the data and reason for duplication. The authority can then decide whether the case is a duplicate or not based on the process set by the country/department/ministry.

    Create Deduplication Manager Types

    Description

    There are 2 types of deduplication managers available that can be created and then can be configured to the program accordingly.

    1. ID Deduplication Manager

    Create Default Payment Manager

    Description

    This guide provides the steps to create a Default Payment Manager.

    Pre-requisites

    The user should have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on Payment Interoperability Layer Payment Manager.

    1. Click on Create button which will navigate to the Default Payment Manager creation page.

    1. In the payment manager creation page provide a name for the payment manager, select the program name, select Automatically Create batch if required and select the Currency.

    1. Once the payment manager is saved it will be listed under the payment manager list view page which further can be used under the program configuration for which it was created.

    Create Phone Number Eligibility Manager

    Description

    This guide provides the steps to create an phone number eligibility manager

    Pre-requisites

    user should have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on ID document Eligibility Manager.

    1. Click Create a button on the phone number eligibility manager list view page.

    1. Provide the name for the eligibility manager and select the program name from the drop-down for which the eligibility manager is created.

    1. Click the Save button to save the eligibility manager and it will be listed under the eligibility manager list view page.

    Create Eligibility Manager Types

    Description

    There are 3 types of eligibility managers available that can be created and then can be configured to the program accordingly.

    1. Default Eligibility Manager

    Contributing

    Introduction

    OpenG2P is a collaborative effort of several contributors. We welcome contributions to the OpenG2P Project.

    Issues

    Mojaloop Integration

    Introduction

    This page describes the integration of OpenG2P with the switch enabling cash transfer from one bank (treasury bank, for instance) to an individual's bank account. The connection to Mojaloop is achieved via an intermediate interoperability layer like the of Mifos.

    Prepare and Send Payment

    Description

    This guide provides the steps to prepare payment after approving the cycle of a program.

    Pre-requisites

    Self Service Portal

    Introduction

    OpenG2P offers the on-demand approach via the Self Service Portal where a person logins via his/her ID and then applies for a program. In self-service mode, typically, OTP would be used for login. In assisted mode, the registering officer may have biometric devices connected to his/her machine, and the registrant can perform biometric authentication in an online manner.

    Online registration assumes that an ID verification service is available to connect via APIs and perform verification of the identity of a person. In the case of MOSIP, for e.g, the verification can be done using the solution.

    OpenG2P offers a reference implementation of a person facing Self Service Portal that lets a person log in to the portal using a national ID or other IDs, and perform the following functions:

    Create Email Notification Manager

    Description

    This guide will provide the steps to create an Email notification manager.

    Pre-requisites

    Create ODK Form

    Description

    This guide provides steps to create a new ODK form for a program.

    Pre-requisites

    Provide Form Access to Field Agent

    Description

    This guide will help to provide the form access to the field agent. which helps the agent to download the program form.

    Pre-requisites

    Download Form on ODK Collect

    Description

    This guide will help to download the program form on ODK Collect Application running on an Android tablet or phone.

    Pre-requisites

    Install SmartScanner App

    Description

    The guide here provides steps to install the SmartScanner app. This app allows users to scan the QR code in the entitlement voucher.

    Pre-requisites

    Create Fast2SMS Notification Manager

    Description

    This guide will provide the steps to create a Fast2SMS notification manager.

    Pre-requisites

    Create User and Assign Role

    Description

    The guide here provides steps to create a new user and assign a role. This process is typically done by the Administrator.

    Pre-requisites

    Register Offline

    Description

    This guide will provide the steps to register beneficiaries through an offline process. is done by the Field Agent.

    Pre-requisites

    Create Eligibility Manager under Program

    Description

    This guide provides steps to create and configure the eligibility manager inside the program.

    Pre-requisites

    Create Portal Form

    Description

    This guide provides steps to create a new portal form for a program. This form will show up on the Self-Service Portal when the user selects a program to apply.

    Pre-requisites

    Create Deduplication Manager under Program

    Description

    This guide provides steps to create and configure the deduplication manager inside the program.

    Pre-requisites

    Create SMS Notification Manager

    Description

    This guide will provide the steps to create an SMS notification manager.

    Pre-requisites

    Create ODK MTS Connector

    Description

    This Guide will help to create the .

    Pre-requisites

    Create ID Deduplication Manager

    Description

    This guide provides steps to create an ID Deduplication manager.

    Pre-requisites

    Create OpenG2P Registry MTS Connector

    Description

    This Guide will help to create the .

    Pre-requisites

    Raise bugs/issues/tasks on GitHub Issues of individual repositories.

    All the issues and tasks are tracked using Jira.

    Code contributions

    To contribute code to the OpenG2P project, follow the steps given below:

    1. Create an issue on Github related to your task.

    2. Fork the corresponding repository.

    3. Commit your changes in your forked repo. Make sure the issue id of GitHub is mentioned in square braces, e.g. [#6] Minor changes to fix the bug.

    4. Raise a Pull Request (PR) on the appropriate branch. In general, it is safe to send PRs to develop branch of a repo.

    5. The PRs shall be reviewed by the technical team and merged after approval.

    Coding conventions

    • For Odoo modules, follow the Odoo Coding Guidelines.

    • For non-Odoo Python code, follow PEP 8 โ€“ Style Guide for Python Code.

    Documentation contributions

    The documentation of the project is available as .md files in the Documentation repository. To highlight a correction or request for additional documentation, raise a GitHub Issue on the repository. To contribute to the documentation follow the steps given under Code contributions.

    Versioning of modules

    For Odoo modules, follow the Odoo Versioning. To indicate the maturity of a version (like alpha/beta etc.) use development_status field in the __manifest__.py file as described here.

    For Non-Odoo modules, follow Semantic Versioning.

    OpenG2P release will follow Semantic Versioning. For GitHub branches and tags versions, refer to the sections below.

    Branching and tagging conventions

    For Odoo module repositories, a prefix of Odoo version is added to the branch name, e.g. 15.0-1.0.0, 15.0-develop.Within a branch, multiple Git tags may be created like 15.0-1.0.0-rc1, 15.0-1.0.0-rc2 etc.

    For non-Odoo module repositories, you should find a develop branch in the repo where in-progress work may be checked-in.

    For releases, a release branch is forked out of the develop branch and subsequently, release specific check-ins like bug fixes are made on this branch. For the final release, this branch is Git tagged, frozen (no further check-ins allowed) and merged into the develop branch. Thus, all the changes related to the release are available in develop for further development. The recommended Github tagging convention for a final release is to have a prefix v or release before the version number. For example, v15.0.1.0.0, release-15.0.1.0.0, v1.0.0, release-1.0.0

    The user should have a Program Manager role assigned.

    Steps

    1. Navigate to Programs using the menu bar

    2. Click on Configuration and then on SMS Notification Manager.

    3. Click the Create button to navigate to the SMS notification manager creation page.

    Tokenised registry

  • Schema base fields

  • REST APIs interface

  • Verification with an ID system

  • Deduplicated entries

  • CRUD operations

  • Complex queries

  • Anonymous profile

  • Data encrypted at rest

  • Verifiable credentials

  • Evidence

  • Attestation

  • ID types
    Deduplication Manager
    API
    Code
    Mojaloop Payment Switch
    GSMA Mobile Money APIs
    here
    Payment Interoperability Layer Payment Manager
    Default Payment Manager
    MOSIP
    'token'
    virtual ID
    Phone Number Deduplication
    ID Document Eligibility Manager
    Phone Number Eligibility Manager
    SmartScanner App
    SmartScanner app
    Domain Filters
    Create User and Assign Role

    The beneficiary takes the entitlement voucher to the service provider. The service provider scans the entitlement voucher. If the QR scan is valid, the service provider assists the beneficiary.

    Self Service Portal
    Functional architecture

    Below is the reference architecture of disbursements triggered from OpenG2P resulting in cash transfers.

    OpenG2P Payments Functional Architecture

    Payment process

    The beneficiary list is created on OpenG2P. After creating payment cycles and entitlements, payment batches are created for each cycle. A batch payment is triggered via the Payment Manager. This batch is received by the Payment Hub (PH) and payments are orchestrated either in bulk or individually. The Payment Hub connects to the Mojaloop interface of the Digital Financial Service Provider (DSFP). DFSP1 takes the transaction forward with Mojaloop Switch.

    Reconciliation at the OpenG2P end is done via status API calls to Payment Hub which is responsible for gathering payment status information of all transactions from DFSPs and Switch.

    In the current integration, the account id of the payee is available in the OpenG2P registry and passed on to Payment Hub (hence propagated to Mojaloop). The account id of the payer is configured in the Payment Manager.

    If Account Mapper is available as part of Digital Public Infrastructure, then the account id need not be stored in the OpenG2P registry.

    Payment Hub

    The payment architecture may vary from country to country. An interoperability layer like Payment Hub shields the downstream variations by offering a uniform payments API interface such that systems like OpenG2P do not have to modify the payments code, thus enabling interoperability with any payment system. Of course, customisation needs to be done on the Payment Hub, where a specific Payment Connector needs to be created specifically for the payment systems interface.

    Payment Hub

    Payment Hub connects to Mojaloop via the Mojaloop Connector.

    As part of the roadmap, OpenG2P is working towards supporting payments interfaces being defined as part of the G2P Connect initiative.

    Payments demo

    Source code

    The source code for OpenG2P - Payment Hub integration can be found here.

    Mojaloop
    Payment Hub
    The program cycle should be created for a program.

    Steps

    1. Navigate to the program for which cycle creation and approval are done.

    1. Click on the Prepare Payment button to create a batch for the approved cycle entitlements.

    1. Once the payment batch is created, navigate to Accounting.

    2. Click on Payment Batches to proceed further with payment.

    1. Click on the payment batch to which payment needs to be done.

    1. On the payment batch, detailed view page click on Send Payment button to make the payment.

    1. Check the payment status in the payments section of the payment batches detailed view page.

  • View enrolled programs

  • View all the demographic information submitted across programs

  • Update demographic information

  • Apply for a new program

  • View a list of all programs offered by the government/ministry/department.

  • OpenG2P offers a reference implementation of such a self-service portal.

    OpenID Connect integration

    Users can log in via any OpenID Connect (OIDC) Auth provider. Any ID system that implements ODIC specification can be integrated with Self Service Portal for user login.

    Login using MOSIP ID

    The Self Service Portal integrates with e-Signet to provide user login via MOSIP ID.

    Registration demo

    e-Signet
    The user should have a Program Manager role assigned.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on Email Notification Manager.

    1. Click the Create button to navigate to the email notification manager creation page.

    1. Email notification manager creation page

    • Name: Provide a name for the manager

    • Program: Select the program from the drop-down for which the manager is created

    • On Enrolled In Program Template: Select the template from the drop-down for program enrolment notification.

    • On Cycle Started Template: Select the template from the drop-down for the program cycle started notification.

    • On Cycle Ended Template: Select the template from the drop-down for the program cycle-ended notification.

    • Select Send Immediately to send the email notification to beneficiaries after the program enrollment, at the start of the cycle and at the end of a cycle.

    1. After clicking on the Save button notification will be saved under the email notification manager list view page.

    ODK Central should be deployed and available.

  • The user should have an Administrator role in ODK Central. See Create User and Assign Role guide.

  • Steps

    1. Login to ODK Central.

    2. Click on the +New button to create a new project

    1. Provide the project name same as the program name for which creating the form.

    1. Once the project is created and listed on the ODK home page, click on the project name.

    2. Click on the +New button on the project overview page to create a new form.

    1. Choose a file which has form values and upload it.

    1. Once the form file is uploaded it will be in draft status. Click on Publish Draft to publish the form.

    1. Once the draft is published it will be listed under the project overview.

    The access provider should have the Administrator role in ODK Central.

    Steps

    1. Login to ODK central with a user having an Administrator role.

    2. Click on the program name in Projects on which the agent access is to be provided.

    1. Navigate to App Users below the program name.

    1. Click on the +Create App User button to add a field agent to the program.

    2. Provide the name of the field agent on the popup window and click on Create button. Agent name will be listed under the App user list.

    1. Navigate to Form Access and select the forms for which access is to be given. Click on the Save button.

  • The field agent should have ODK Collect Application installed.

  • The field agent should have form access.

  • Steps

    1. The Administrator logs into ODK Central and navigates to the App Users under the program name.

    1. Click on See Code to get the Client Configuration QR code.

    1. Open the ODK Collect application in the field agent device.

    1. Click on Add Project to scan the configuration QR code.

    1. After scanning the Client Configuration QR code all the given access program forms will be downloaded to the field agent's device.

    The user must possess an Android Phone with WireGuard tunnel activated.

    Steps

    1. Download the SmartScanner APK file named idpass-smart-scanner-untagged-<version>.apk on your Android mobile from here.

    1. Go to the Downloads folder in Android Mobile and click on the .apk file that you downloaded in the first step. A user prompt will appear with the options CANCEL and INSTALL. Click on INSTALL.

    1. For first-time installation, a user prompt may appear to allow unknown apps. Click on Settings. If no prompt appears and the application installs, then go to step#5.

    1. Enable the option Allow apps from this source, click on the downloaded file, and install the application as described in step#2.

    1. If the SmartScanner app is successfully installed, then this icon will appear on the mobile screen.

    1. Open the SmartScanner app. It should show the option Voucher Code.

    1. Click on the Voucher Code and scan the QR code shown here.

    1. If the SmartScanner app is successfully installed, then the scan will show these details.

    Steps
    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on Fast2SMS Notification Manager.

    1. Click the Create button to navigate to the Fast2SMS notification manager creation page.

    1. Fast2SMS notification manager creation page

    • Name: Provide a name for the manager

    • Program: Select the program from the drop-down for which the manager is created

    • On Enrolled In Program Template: Select the template from the drop-down for program enrolment notification.

    • On Cycle Started Template: Select the template from the drop-down for the program cycle started notification.

    • On Cycle Ended Template: Select the template from the drop-down for the program cycle-ended notification.

    • Send API Endpoint: Provide the service provider API endpoint.

    • Access Token: Provide the access token of the service provider.

    1. After clicking on the Save button notification will be saved under the Fast2SMS notification manager list view page.

    The user should have an Administrator role.

    Steps

    1. Navigate to Settings using the menu bar.

    1. Click on Users & Companies and then select Users to reach user's list view page.

    1. Click on the Create button to reach user creation page.

    1. Email: Provide a valid email Id. The invitation email will be sent to this Id.

    2. Select the role for a user from the OpenG2P module access section.

    1. Once the user is saved it will be listed under the user list view page and the invitation mail will be triggered.

  • The agent should have ODK collect and Smart Scanner Application Installed

  • Agents should have form access.

  • Agents should have downloaded the program form on his/her device.

  • Beneficiaries should have their National ID card with them.

  • ODK MTS Connector which is mapped to the form should be in Running status.

  • Steps

    1. Open the program form from the ODK Collect application.

    1. Click on Fill Blank Form to fill in all form fields with beneficiary data.

    1. At some point, the form will have the Launch button. Click on the Launch button to scan the QR code on the National ID of the Beneficiary.

    1. Once the scanning is done beneficiary data will be auto-populated as per the form fields configuration.

    1. After filling in all the mandatory fields click on the Save and Submit button.

    • If the Field Agent is online, the submitted entries will be sent to ODK Central and will be listed under View Sent Form or else they will be saved in the Field Agents device in Send Finalized Form Section.

    offline registration
    The user must have the Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name for which configuration to be done.

    1. Navigate to the Configuration section on Program detailed view page.

    1. Click on Add a line in the Eligibility Manager section.

    1. Click on the Create button on the Add: Eligibility Managers pop-up window.

    1. Select the eligibility manager type.

    1. Once the name is provided to the eligibility manager, Create and Edit buttons will appear. Click on Create and Edit button to create an eligibility manager.

    1. Set the eligibility criteria's using Add Filter button on the creation page.

    1. Click on the Save button and then click on the Save & Close button which will save the eligibility manager to that program under configuration.

    The user must have a Program Manager role. See Create User and Assign Role guide.

    Steps

    1. Navigate to the Website using the menu bar.

    1. Click on Go to Website to navigate to the website home page.

    1. Click on the + New button to create new form.

    1. Click on Page to create a form.

    1. Enter the page title and click on Create button under New Page pop-up window.

    1. Drag and drop the Form in the Dynamic Content from the BLOCKS section.

    1. Edit the form fields from the STYLE section.

    1. Add more form fields using +Field from the STYLE section.

    2. Save the form using the Save button.

    The user must have the Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name for which configuration to be done.

    1. Navigate to the Configuration section on Program detailed view page.

    1. Click on Add a line in the Deduplication Manager section.

    1. Click on the Create button on the Add: Deduplication Managers pop-up window.

    1. Select the deduplication manager type.

    1. Once the name is provided to the deduplication manager, Create and Edit buttons will appear to click on Create and Edit button to create a deduplication manager.

    1. Select the ID type from the Supported ID Document Types drop-down.

    1. Click on the Save button and then click on the Save & Close button which will save the deduplication manager to that program under configuration.

  • The user must have a Program Manager role.

  • ODK form should be available.

  • Steps

    1. Navigate to the MTS Connectors using the menu bar.

    1. Navigate to the MTS Connector creation page by clicking the Create button on the MTS Connector list view page.

    1. Set MTS Input Type as ODK and for other fields configuration please go through ODK MTS Connector Configuration.

    1. Click the Save button and the connector will be listed under the MTS Connectors list view page.

    2. Click on Start in the MTS Collectors list view page to start the created connector.

    ODK MTS Connector
    The user should be assigned to the Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on ID Deduplication Manager.

    1. Click the Create button to navigate to the ID deduplication manager creation page.

    1. In the ID deduplication manager creation page provide a name for the ID deduplication manager, and select the program name and the ID type from the Supported ID Document Types drop-down.

    1. Once the ID deduplication manager is saved it will be listed under the ID deduplication manager list view page which can further be used under the program configuration for which it is mapped.

    The user must have a Program Manager role.

    Steps

    1. Navigate to the MTS Connectors using the menu bar.

    1. Navigate to the MTS Connector creation page by clicking the Create button.

    1. Set MTS Input Type as OpenG2P Registry and for other fields configuration please go through Registry MTS Connector.

    1. Click on the Start button under the MTS Connectors list view page to start the created connector.

    2. Click the Save button and the connector will be listed under the MTS Connectors list view page.

    OpenG2P registry MTS Connector
    Integrate MOSIP e-Signet

    Code of Conduct

    Contributor Covenant Code of Conduct

    Preamble

    OpenG2P was created to foster an open, innovative and inclusive community around open source & open standard. To clarify expected behaviour in our communities we have adopted the Contributor Covenant. This code of conduct has been adopted by many other open source communities and we feel it expresses our values well.

    Our Pledge

    We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.

    We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.

    Our Standards

    Examples of behavior that contributes to a positive environment for our community include:

    • Demonstrating empathy and kindness toward other people

    • Being respectful of differing opinions, viewpoints, and experiences

    • Giving and gracefully accepting constructive feedback

    • Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience

    Examples of unacceptable behavior include:

    • The use of sexualized language or imagery, and sexual attention or advances of any kind

    • Trolling, insulting or derogatory comments, and personal or political attacks

    • Public or private harassment

    • Publishing others' private information, such as a physical or email address, without their explicit permission

    Enforcement Responsibilities

    Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.

    Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.

    Scope

    This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.

    Enforcement

    Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at [INSERT CONTACT METHOD]. All complaints will be reviewed and investigated promptly and fairly.

    All community leaders are obligated to respect the privacy and security of the reporter of any incident.

    Enforcement Guidelines

    Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:

    1. Correction

    Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.

    Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.

    2. Warning

    Community Impact: A violation through a single incident or series of actions.

    Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.

    3. Temporary Ban

    Community Impact: A serious violation of community standards, including sustained inappropriate behavior.

    Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.

    4. Permanent Ban

    Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.

    Consequence: A permanent ban from any sort of public interaction within the community.

    Attribution

    This Code of Conduct is adapted from the .

    Community Impact Guidelines were inspired by .

    For answers to common questions about this code of conduct, see the . Translations are available .

    Create Notification Manager under Program

    Description

    This guide provides steps to create and configure the notification manager.

    Pre-requisites

    The user must have the Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name for which configuration to be done.

    1. Navigate to the Configuration section on Program detailed view page.

    1. Click on Add a line in the Notification Manager section.

    1. Click on the Create button on the Add: Notification Managers pop-up window.

    1. Select the notification manager type.

    1. Once the name is provided to the deduplication manager, Create and Edit buttons will appear. Click on Create and Edit to create a deduplication manager.

    1. Click on the Save & Close button which will save the notification manager to that program under configuration.

    Create ID Document Eligibility Manager

    Description

    This guide provides the steps to create an ID document eligibility manager

    Pre-requisites

    user should have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on ID document Eligibility Manager.

    1. Click Create a button on the ID document eligibility manager list view page.

    1. Provide the name for the eligibility manager and select the program name from the drop-down for which the eligibility manager is created.

    1. Click the Save button to save the eligibility manager and it will be listed under the eligibility manager list view page.

    Create Payment Manager under Program

    Description

    This guide provides steps to create and configure the payment manager.

    Pre-requisites

    The user must have the Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name for which configuration to be done.

    1. Navigate to the Configuration section on Program detailed view page.

    1. Click on Add a line in the Payment Manager section.

    1. Click on the Create button on the Add: Payment Managers pop-up window.

    1. Select the payment manager type.

    1. If a payment manager is already created (), search and select the same or else once the name is provided to the program manager, Create and Edit buttons will appear. Click on Create and Edit to create a payment manager.

    1. Provide the details in the payment manager creation manager.

    1. Click on the Save button and then click on the Save & Close button which will save the payment manager to that program under configuration.

    ODK MTS Connector

    Overview

    ODK MTS Connector is an OpenG2P Odoo addon that fetches tokenised data from the ODK Central by calling the (MTS) and stores it in the registry.

    Features

    Configure Proxy Mean Test

    Description

    The guide provides steps to enable and configure the proxy mean test.

    Pre-requisites

    Create Program

    Description

    The guide here provides steps to create a new program. A program is typically created by a Program Manager who can create and administer programs.

    Pre-requisites

    Self Register Online

    Description

    This guide helps beneficiaries to self-register through the beneficiary portal.

    Pre-requisites

    Focusing on what is best not just for us as individuals, but for the overall community

  • Other conduct which could reasonably be considered inappropriate in a professional setting

  • Contributor Covenant version 2.1
    Mozilla's code of conduct enforcement ladder
    FAQ
    here
    Create Payment Manager
    https://docs.google.com/spreadsheets/d/1KIK0CbDo_99U1vAW9QqOErWNm0ZkGz_XabmXu0CvrMI/edit?usp=sharingdocs.google.com
  • Uses callback delivery type of MTS

  • Completely asynchronous execution

  • OpenG2P can schedule a daily job to fetch the delta for the day

  • Manual import feature (TBD)

  • Configuration

    Property
    Description

    Name

    A string to identify the connector

    URL to reach MTS

    URL for MTS API

    MTS Input type

    MTS-C connects over "ODK" which is the first option in this selection. OMC option could be proceeded by selecting OpenG2P Registry.

    Mapping

    MTS Field mapping as required by the API. Refer to . The format of Mapping would be JSON.

    Output Type

    MTS-C only supports JSON output type of MTS.

    The user must have a Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name for which configuration to be done.

    1. Navigate to the PMT Configuration section on Program detailed view page.

    1. Enable PMT and click on Add a line in the PMT Parameters field.

    1. Select the field and provide its weightage.

    The above-mentioned selection fields are computed fields and can be added in the settings.

    1. Click on the Save & New button to select a new field and provide its weightage or Save & Close button which will save the fields and their weightage to that program under configuration.

    1. Click on the Save button.

    Steps to add computed fields

    Enable developer mode.

    Settings --> Developer Tools --> 'Activate the developer mode'

    1. Navigate to Settings using the menu bar.

    1. Click on Technical in the setting menu.

    1. Navigate to Models under Database Structure heading.

    1. Search Program Registrant Info model in the search bar.

    1. Click on g2p.program.registrant_info model.

    1. Click on add a line in Fields section.

    1. Add field name, type, label, dependencies field and compute logic.

    1. Click on the Save & New button to select a new computed field or Save & Close button which will save the computed field in the model.

    1. Click on the Save button.

    So, these computed fields will display in the selection field of PMT Configuration.

    The user must have a Program Manager role. See Create User and Assign Role guide.

    Steps

    1. Navigate to Programs using the menu bar.

    Create a new program
    1. Click on the Create Program to reach the Program creation page. Provide Program name, target type and currency. There are tabs for the configuration of various managers.

    2. Eligibility criteria:

      Configure eligibility criteria
    3. Use+Add filter to set eligibility criteria using Domain Filters. You may set multiple eligibility criteria.

    4. Cycle Manager: Set parameters of .

      • Auto-approve Entitlements: To set entitlements via rules, without any manual approvals.

      • Approver Group: The group name of the user who has permission to approve cycles. See .

    5. Entitlement Manager: Set parameters for .

      • Amount Per Cycle: The amount disbursement of a group or individual per cycle.

      • Amount Per Individual In Group: Amount of disbursement per individual in a group when the program

    6. Map Portal form: Map a portal form to this program. before this mapping.

    7. Click the Next button to import the matching registrants to the creating program. In the pop-up window select Yes.

    1. Once the program is created it will be listed under the program list view page.

    Beneficiaries should have the MOSIP-issued national ID with them.

    Steps

    1. Go to the beneficiaries portal login page.

    1. Click on Sign IN with MOSIP to continue with a MOSIP-issued national ID.

    2. Navigate to Login with OTP using LOG IN HERE and provide the VID/UIN.

    1. After clicking Get OTP, OTP will be sent to the registered email and phone number.

    2. Provide the OTP and click on Verify to proceed further.

    1. Provide consent and click on Allow which navigates to the beneficiary portal home page.

    1. Click on View All Programs to check out the available programs to apply for.

    1. Click on Apply to fill in the beneficiary details in the program form.

    1. Once the form fields are filled click on Submit button for application submission.

    1. Once the program form is submitted, the program will be added to the My Programs section with the Submitted status and the beneficiary will be registered to the program. also will be listed in the OpenG2P Registry Individual as well.

    Registry MTS Connector

    Overview

    Registry MTS Connector (RMC) is an Odoo addon that fetches MOSIP Auth Token against any record in the registry by calling MOSIP Token Seeder (MTS) and stores the same in the registry.

    Features

    • Generates MOSIP token against the OpenG2P registry by calling .

    • Uses callback delivery type of MTS

    • Completely asynchronous execution

    Configuration

    Property
    Configuration

    Creating Diagrams

    Context

    Creating editable diagrams in open formats using open source tools is challenging. Here, we suggest for creating diagrams and saving them directly in GitHub repository.

    Creating new diagram

    Create and Approve Disbursement Cycle

    Description

    This guide will provide the steps to create and approve the disbursement cycle under a program.

    Pre-requisites

    Create Phone Number Deduplication

    Description

    This guide provides steps to create a Phone Number Deduplication manager.

    Pre-requisites

    Recurrence: The time period for the repetition of a cycle.
    is "group".
  • Maximum number of individuals in a group: Maximum number of individuals who get disbursements per group (optional).

  • Transfer Fee(%): Fee incurred for disbursement as a percentage of disbursement (optional).

  • Transfer Fee Amount: Fee incurred for disbursement as an absolute amount (optional).

  • Entitlement Validation Group: The group name of the user who has permission to approve entitlements. See Create User and Assign Role.

  • disbursement cycles
    Create User and Assign Role
    entitlements
    Create a portal form
    target type
    OpenG2P can schedule a daily job to fetch the delta for the day
  • A manual import feature will also be provided

  • Removes VID if MOSIP Auth Token is generated

  • Output Format

    Output format is a string which will be used by MTS to format its output to suite the caller's requirement.

    Delivery Type

    Currently supporting only "Callback". Callback feature can be used to make MTS do a submission of results onto an API within Odoo. The output formatting will help in making the desired input for the api.

    Job Type

    MTS-C provide both recurring and one time execution. Recurring can be configured to do continuous pull from the ODK over MTS.

    MOSIP Language

    Mosip language setup. Default is eng.

    Interval in minutes

    Interval at which the MTS-C job runs.

    Filters to apply to Registry

    A can be used to identify the records for tokenisation. For. eg. Only records which have VID associated with it and are not tokenised need to be picked for tokenisation.

    List of fields to be used

    List of fields which will be supplied as auth data. This field list may be a superset of fields required for auth as it may contain data required by the callback API. This list should be a valid JSON string array.

    Callback URL

    A URL endpoint which would be called upon successful processing at MTS

    Callback HTTP Method

    HTTP Method (POST/PUT/GET/PATCH) used while MTS makes the callback

    Callback Timeout

    Timeout awaited by the callback until acknowledged with a response.

    Callback Auth Type

    Type of authentication expected by callback URL. MTS-C currently support Odoo type which uses the session-based authentication implemented by Odoo.

    Callback Auth Database

    DB instance used by Odoo.

    Callback auth username

    Username to access callback API

    Callback auth password

    Password to access callback API

    Name

    A string to identify the connector

    URL to reach MTS

    URL for MTS API

    MTS Input type

    OMC option could be proceeded by selecting OpenG2P Registry.

    Mapping

    MTS Field mapping as required by the API. Please refer to MTS Documentation. Format of Mapping would be JSON.

    Output Type

    MTS-C only supports JSON output type of MTS.

    MTS
    1. On Draw.io website choose Device as your storage.

    1. Select the format of the diagram as XML.drawio.

    1. Create the diagram and save it on your local machine. Make sure you follow the file naming convention of lowercase with hyphens as word separations.

    2. Fork openg2p-documentation repository to your Github account.

    3. Disable workflow in your repository fork:

    1. On Github, upload/commit the .drawio file to your fork of openg2p-documentation repository in the branch of choice to the following folder: .gitbook/assets.

    2. Send a Pull Request.

    3. After the PR is merged on the upstream repo a Gitbook Action Workflow will get triggered to convert the same to PNG format with *.png extension. The PNG file will be available in the same folder as the .drawio file. In this case, it will be the repository's .gitbook/assets folder.

    4. On Gitbook, insert the PNG image using the URL options shown by Gitbook. The URL to be given will be the GitHub URL e.g. . Make sure you pick this URL in Raw format which will be available on the Download button on Github

    Editing existing diagram

    If a .drawio already exists in the .gitbook/assets folder then you must directly edit the repository version of the same by following the procedure given below.

    1. Fork the openg2p-documentation repository to your local Github account. Disable workflow as shown above.

    2. On the Draw.io website choose Github as your storage.

    1. Authorize the Draw.io app on Github (follow the steps prompted).

    2. Select the diagram in .drawio format from openg2p-documentation --> your branch --> .gitbook/assests folder.

    1. Make changes.

    2. Save the diagram - it will get Git-committed to your repository.

    3. Send a Pull Request to OpenG2P/openg2p-documentation repo.

    4. Upon acceptance of the Pull Request, a will trigger the conversion of the.drawio file to .png.

    5. If you have not added the URL of the PNG to your Gitbook pages follow step 6 of .

    6. If the URL already exists in Gitbook, the updated image should appear after a page refresh.

    Deleting a digram

    1. Delete the diagram from Gitbook listing found here:

    1. Delete the diagram from Github repository openg2p-documentation from the corresponding branch

    Draw.io
    The user should have a role which is configured in the Approver Group under Configure the Cycle Manager while creating program.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on the program name for which cycle needs to be created.

    1. After Clicking on Create New Cycle, the new cycle will be added in the cycle section with Draft status.

    1. Navigate inside the cycle using the arrow icon button beside the cycle name.

    2. After clicking on Copy Beneficiaries from Program button program beneficiaries will be copied into the cycle.

    1. Click on Prepare Entitlement to create entitlements to beneficiaries as per the Entitlement Manager configuration

    1. Once the entitlement is ready click on Approve button where cycle status will be moved from Draft to To Approve.

    1. Once more click on Approve button to approve the cycle and the cycle status will be moved from To Approve to Approved.

    The user should be assigned to the Program Manager role.

    Steps

    1. Navigate to Programs using the menu bar.

    1. Click on Configuration and then on ID Deduplication Manager.

    1. Click the Create button to navigate to the Phone Number Deduplication manager creation page.

    1. In the Phone Number Deduplication manager creation page provide a name for the Phone Number Deduplication manager, and select the program name.

    2. Once the Phone Number Deduplication manager is saved it will be listed under the Phone Number Deduplication manager list view page which can further be used under the program configuration for which it is mapped.

    Output Format

    Output format is a JQstring which will be used by MTS to format its output to suite the caller's requirement.

    Delivery Type

    Currently supporting only "Callback". Callback feature can be used to make MTS do a submission of results onto an API within Odoo. The output formatting will help in making the desired input for the API.

    Job Type

    MTS-C provides both recurring and one time execution. Recurring can be configured to do continuous pull from the ODK over MTS.

    Interval in minutes

    Interval at which the MTS-C job runs.

    MOSIP Language

    MOSIP language setup. The default is "eng".

    ODK Base URL

    Base URL or the complete domain address for the ODK central installation

    ODK Odata URL

    OData service (.svc) URL for the ODK form to fetch the submissions.

    ODK User email

    Email Id to authenticate MTS for accessing Odata URL

    ODK User password

    Password used to authenticate Odata URL

    Callback URL

    A URL endpoint which would be called upon successful processing at MTS

    Callback HTTP Method

    HTTP Method (POST/PUT/GET/PATCH) used while MTS makes the callback

    Callback Timeout

    Timeout awaited by the callback until acknowledged with a response.

    Callback Auth Type

    Type of authentication expected by callback URL. MTS-C currently support Odoo type which uses the session-based authentication implemented by Odoo.

    Callback Auth Database

    DB instance used by Odoo.

    Callback auth username

    Username to access callback API

    MTS Documentation
    JQ
    domain filter
    https://github.com/OpenG2P/openg2p-documentation/raw/1.0.0/.gitbook/assets/add-deduplication-manager.png
    Github Action Workflow
    Creating New Diagram
    post
    Responses
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    post
    /login

    No content

    post
    Authorizations
    session_idstringRequired
    Responses
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    post
    /logout

    No content

    Search for partners :param partner_search_param: An instance of partner.search.param :return: List of partner.info

    get
    Authorizations
    session_idstringRequired
    Query parameters
    idintegerOptional
    namestringOptional

    Create a new Individual :param individual_info: An instance of the individual info :return: An instance of partner info

    post
    Authorizations
    session_idstringRequired
    Body

    Get partner's information

    get
    Authorizations
    session_idstringRequired
    Path parameters
    idinteger ยท int32Required
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    Search for partners :param partner_search_param: An instance of partner.search.param :return: List of partner.info

    get
    Authorizations
    session_idstringRequired
    Query parameters
    idintegerOptional
    namestringOptional

    Update Individual Identification :param reg_id: An instance of the partner.reg_id :return: An instance of partner.reg_id

    patch
    Authorizations
    session_idstringRequired
    Body

    Technology Stack

    This page lists all the technologies used in building OpenG2P. Free and open-source softwares with clear long-term support availability have been chosen. Certain choices can be replaced with other free or commercial options for deployment.

    Domain
    Tools/Technologies
    Version
    Licence Type
    POST /session/auth/login HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    POST /session/auth/logout HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    

    15.0

    LGPL

    ID System

    MOSIP

    1.2

    MPL 2.0

    Development - Language Runtime

    Python

    3.5+

    Database

    Postgres

    Postgres License BSD 2-clause "Simplified License"

    ID Verification

    MOSIP Token Seeder

    MPL 2.0

    ID Verification

    eSignet

    MPL 2.0

    Analytics Engine

    Elasticsearch

    Elastic License 2.0

    Data streaming

    Debezium

    Apache 2.0

    Offline data collection

    ODK

    Apache 2.0

    Visualization

    Kibana

    Elastic License 2.0

    S3 Storage

    MinIO

    AGPL 3.0

    Development - API Documentation

    Swagger

    Apache License 2.0

    Task Management

    Jira

    Commercial (OpenG2P has a free license)

    Source Code Management

    GitHub

    Commercial (OpenG2P uses Free plan)

    Deployment

    Docker

    Apache 2.0

    DevOps tools

    Ansible

    GNU GPL v3.0

    DevOps tools

    Github actions

    Free

    DevOps tools

    Prometheus

    Apache License 2.0

    DevOps tools

    Grafana

    Apache License 2.0

    Messaging

    Apache Kafka

    Apache License 2.0

    Web Server/HTTP proxy server

    Nginx

    Operating System

    Ubuntu Server

    20.04

    Free

    Business Apps

    Odoo

    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    get
    /
    namestringRequired
    registration_datestring ยท dateOptional
    is_groupbooleanOptionalDefault: false
    emailstringOptional
    addressstringOptional
    additional_g2p_infoany ofOptional
    object[]Optional
    or
    objectOptional
    notification_preferencestringOptionalDefault: none
    given_namestringOptional
    addl_namestringOptional
    family_namestringOptional
    genderstringOptional
    birthdatestring ยท dateOptional
    birth_placestringOptional
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    post
    /
    get
    /{id}
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    get
    /search
    id_typestringOptional
    valuestringOptional
    expiry_datestring ยท dateOptional
    partner_idintegerRequired
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    patch
    /updateIdentification

    Integrate with MOSIP e-Signet

    Description

    This guide provides steps to integrate as the authentication provider.

    Prerequisites

    GET /api/v1/registry/individual/ HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    [
      {
        "id": 1,
        "name": "text",
        "reg_ids": [
          {
            "id": 1,
            "id_type_as_str": "text",
            "value": "text",
            "expiry_date": "2025-12-10"
          }
        ],
        "is_group": false,
        "registration_date": "2025-12-10",
        "phone_number_ids": [
          {
            "id": 1,
            "phone_no": "text",
            "phone_sanitized": "text",
            "date_collected": "2025-12-10",
            "disabled": "2025-12-10"
          }
        ],
        "email": "text",
        "address": "text",
        "additional_g2p_info": "",
        "program_membership_ids": [
          {
            "program_id": 1,
            "state": "text",
            "enrollment_date": "2025-12-10",
            "exit_date": "2025-12-10"
          }
        ],
        "notification_preference": "none",
        "given_name": "text",
        "addl_name": "text",
        "family_name": "text",
        "gender": "text",
        "birthdate": "2025-12-10",
        "age": "text",
        "birth_place": "text"
      }
    ]
    POST /api/v1/registry/individual/ HTTP/1.1
    Host: mec.openg2p.net
    Content-Type: application/json
    Accept: */*
    Content-Length: 487
    
    {
      "name": "text",
      "ids": [
        {
          "id_type": "text",
          "value": "text",
          "expiry_date": "2025-12-10"
        }
      ],
      "registration_date": "2025-12-10",
      "is_group": false,
      "phone_numbers": [
        {
          "phone_no": "text",
          "date_collected": "2025-12-10"
        }
      ],
      "email": "text",
      "address": "text",
      "additional_g2p_info": [
        {}
      ],
      "program_memberships": [
        {
          "name": "text",
          "enrollment_date": "2025-12-10"
        }
      ],
      "notification_preference": "none",
      "given_name": "text",
      "addl_name": "text",
      "family_name": "text",
      "gender": "text",
      "birthdate": "2025-12-10",
      "birth_place": "text"
    }
    GET /api/v1/registry/individual/{id} HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    {
      "id": 1,
      "name": "text",
      "reg_ids": [
        {
          "id": 1,
          "id_type_as_str": "text",
          "value": "text",
          "expiry_date": "2025-12-10"
        }
      ],
      "is_group": false,
      "registration_date": "2025-12-10",
      "phone_number_ids": [
        {
          "id": 1,
          "phone_no": "text",
          "phone_sanitized": "text",
          "date_collected": "2025-12-10",
          "disabled": "2025-12-10"
        }
      ],
      "email": "text",
      "address": "text",
      "additional_g2p_info": "",
      "program_membership_ids": [
        {
          "program_id": 1,
          "state": "text",
          "enrollment_date": "2025-12-10",
          "exit_date": "2025-12-10"
        }
      ],
      "notification_preference": "none",
      "given_name": "text",
      "addl_name": "text",
      "family_name": "text",
      "gender": "text",
      "birthdate": "2025-12-10",
      "age": "text",
      "birth_place": "text"
    }
    GET /api/v1/registry/individual/search HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    [
      {
        "id": 1,
        "name": "text",
        "reg_ids": [
          {
            "id": 1,
            "id_type_as_str": "text",
            "value": "text",
            "expiry_date": "2025-12-10"
          }
        ],
        "is_group": false,
        "registration_date": "2025-12-10",
        "phone_number_ids": [
          {
            "id": 1,
            "phone_no": "text",
            "phone_sanitized": "text",
            "date_collected": "2025-12-10",
            "disabled": "2025-12-10"
          }
        ],
        "email": "text",
        "address": "text",
        "additional_g2p_info": "",
        "program_membership_ids": [
          {
            "program_id": 1,
            "state": "text",
            "enrollment_date": "2025-12-10",
            "exit_date": "2025-12-10"
          }
        ],
        "notification_preference": "none",
        "given_name": "text",
        "addl_name": "text",
        "family_name": "text",
        "gender": "text",
        "birthdate": "2025-12-10",
        "age": "text",
        "birth_place": "text"
      }
    ]
    PATCH /api/v1/registry/individual/updateIdentification HTTP/1.1
    Host: mec.openg2p.net
    Content-Type: application/json
    Accept: */*
    Content-Length: 75
    
    {
      "id_type": "text",
      "value": "text",
      "expiry_date": "2025-12-10",
      "partner_id": 1
    }
    PSF License
  • MOSIP IDA is installed

  • The e-Signet server is installed and configured to connect to MOSIP IDA

  • MOSIP IDA APIs are accessible from the machine running the e-Signet server

  • Both Yes/No and KYC APIs are enabled on MOSIP IDA

  • e-Signet APIs are accessible from machines running OpenG2P

  • Biometric auth devices (already onboarded on MOSIP) are available for authentication

  • Email and SMS are enabled on MOSIP IDA for OTP authentication

  • MOSIP Partner Management Services (PMS) Portal or APIs must be accessible to both MOSIP Partner Admin and OpenG2P Admin

  • MOSIP Partner Specific User Token (PSUT) ID type is configured. See .

  • Steps

    Configure OpenG2P as a partner on MOSIP

    1. Create an Auth Partner for OpenG2P on MOSIP.

      • Guide for MOSIP 1.2.0

      • Guide for MOSIP 1.1.5 (TBD)

    2. Create a MISP Partner for OpenG2P on MOSIP.

    3. Note down the following from the above steps:

      1. Auth Partner ID

      2. Auth Policy ID

      3. Auth API Key

    Configure OpenG2P as relying party on e-Signet

    Using PMS API

    This method is applicable if MOSIP Partner Management APIs are available. These steps are executed by MOSIP Partner Admin

    1. Create an e-Signet OIDC client using PMS OIDC API:

    • authParnterId: Partner ID in this step.

    • policyId : Policy ID in this step.

    • publicKey: Generate JWK.

    • logoUri: URL of your logo accessible publicly.

    • grantTypes = ["authorization_code"]

    • clientAuthMethods= ["private_key_jwt"]

    • redirectUris: URLs of the form https://<your web portal>/auth_oauth/signin

    Note down the Client ID as an output of the above step.

    Using e-Signet API

    This method is applicable if MOSIP Partner Management APIs are not available.

    1. Create an e-Signet OIDC client using the following API:

    • clientId: Arbitrary string.

    • clientName: Arbitrary string.

    • relyingParnterId: Partner ID in this step.

    • publicKey: Generated .

    • authContextRefs:

    • userClaims:

    • logoUri: URL of your logo accessible publicly.

    • grantTypes = ["authorization_code"]

    • clientAuthMethods= ["private_key_jwt"]

    • redirectUris: URLs of the form https://<your web portal>/auth_oauth/signin

    Enable e-Signet on OpenG2P

    These steps are executed by OpenG2P Admin on the OpenG2P Admin interface.

    1. Go to Settings -> General Settings (Menu) -> General Settings (Panel) -> Integrations (Section) -> Oauth Providers

    1. Create a new OIDC Provider with the following details:

    Parameter
    Value

    Client ID

    The output of the .

    Auth Flow

    OpenID Connect (authorization code flow)

    Token map

    sub:user_id

    OpenG2P with e-Signet with MOSIP

    Search for partners :param partner_search_param: An instance of partner.search.param :return: List of partner.short.info

    get
    Authorizations
    session_idstringRequired
    Query parameters
    idintegerOptional
    include_members_fullbooleanOptional
    namestringOptional

    Create a new Group :param group_info: An instance of the group info :return: An instance of partner.info

    post
    Authorizations
    session_idstringRequired
    Body

    Get partner's information

    get
    Authorizations
    session_idstringRequired
    Path parameters
    idinteger ยท int32Required
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    Search for partners :param partner_search_param: An instance of partner.search.param :return: List of partner.short.info

    get
    Authorizations
    session_idstringRequired
    Query parameters
    idintegerOptional
    include_members_fullbooleanOptional
    namestringOptional
    {
      "id": 1,
      "name": "text",
      "reg_ids": [
        {
          "id": 1,
          "id_type_as_str": "text",
          "value": "text",
          "expiry_date": "2025-12-10"
        }
      ],
      "is_group": false,
      "registration_date": "2025-12-10",
      "phone_number_ids": [
        {
          "id": 1,
          "phone_no": "text",
          "phone_sanitized": "text",
          "date_collected": "2025-12-10",
          "disabled": "2025-12-10"
        }
      ],
      "email": "text",
      "address": "text",
      "additional_g2p_info": "",
      "program_membership_ids": [
        {
          "program_id": 1,
          "state": "text",
          "enrollment_date": "2025-12-10",
          "exit_date": "2025-12-10"
        }
      ],
      "notification_preference": "none",
      "given_name": "text",
      "addl_name": "text",
      "family_name": "text",
      "gender": "text",
      "birthdate": "2025-12-10",
      "age": "text",
      "birth_place": "text"
    }
    {
      "id": 1,
      "id_type_as_str": "text",
      "value": "text",
      "expiry_date": "2025-12-10",
      "partner_id": 1
    }

    MISP License Key

  • Auth partner signed certificate

  • IDA Partner certificate (App id: IDA, Ref Id: PARTNER)

  • Client Authentication Method

    Private Key JWT

    Private Key Method

    Private key used for JWK creation in the previous section.

    Assertion Type

    JWT Bearer

    Authorization URL

    e-Signet's authorize endpoint.

    Example: https://esignet.mec.mosip.net/authorize

    Userinfo URL

    e-Signet's userinfo API

    Example: https://api.mec.mosip.net/v1/esignet/oidc/userinfo

    Token URL

    e-Signet's token API

    Example: https://api.mec.mosip.net/v1/esignet/oauth/token

    JWKS URL

    e-Signet's JWKS API

    Example: https://api.mec.mosip.net/v1/esignet/oauth/.well-known/jwks.json

    Use G2P Reg ID

    True

    G2P Registrant ID Type

    MOSIP PSUT ID Type

    As configured in step 9 of Prerequisites.

    Partner Creation Call Validate URL

    True

    Specifies whether to call the MOSIP e-KYC API to fetch data into OpenG2P

    Partner Creation Validate Response

    name:name email:email phone:phone_number birthdate:birthdate gender:gender address:address

    Default Group User Creation

    User types / Portal

    Specifies all users signing up through this OIDC Provider (e-Signet) are only going to be portal users

    Login Attribute Mapping On User Creation

    email

    To allow users to sign in with their email and password after initial signup with e-Signet.

    Configure ID Types
    JWK
    previous section
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    get
    /
    namestringRequired
    registration_datestring ยท dateOptional
    is_groupbooleanOptionalDefault: true
    emailstringOptional
    addressstringOptional
    additional_g2p_infoany ofOptional
    object[]Optional
    or
    objectOptional
    notification_preferencestringOptionalDefault: none
    kindstringOptional
    is_partial_groupbooleanOptional
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    post
    /
    get
    /{id}
    Responses
    200Success
    application/json
    400

    One of the given parameter is not valid

    401

    The user is not authorized. Authentication is required

    403

    You don't have the permission to access the requested resource.

    404

    Requested resource not found

    get
    /search
    ["mosip:idp:acr:biometrics","mosip:idp:acr:generated-code"]
    ["birthdate","address","gender","name","phone_number","email","picture"]
    GET /api/v1/registry/group/ HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    [
      {
        "id": 1,
        "name": "text",
        "reg_ids": [
          {
            "id": 1,
            "id_type_as_str": "text",
            "value": "text",
            "expiry_date": "2025-12-10"
          }
        ],
        "is_group": true,
        "registration_date": "2025-12-10",
        "phone_number_ids": [
          {
            "id": 1,
            "phone_no": "text",
            "phone_sanitized": "text",
            "date_collected": "2025-12-10",
            "disabled": "2025-12-10"
          }
        ],
        "email": "text",
        "address": "text",
        "additional_g2p_info": "",
        "program_membership_ids": [
          {
            "program_id": 1,
            "state": "text",
            "enrollment_date": "2025-12-10",
            "exit_date": "2025-12-10"
          }
        ],
        "notification_preference": "none"
      }
    ]
    POST /api/v1/registry/group/ HTTP/1.1
    Host: mec.openg2p.net
    Content-Type: application/json
    Accept: */*
    Content-Length: 927
    
    {
      "name": "text",
      "ids": [
        {
          "id_type": "text",
          "value": "text",
          "expiry_date": "2025-12-10"
        }
      ],
      "registration_date": "2025-12-10",
      "is_group": true,
      "phone_numbers": [
        {
          "phone_no": "text",
          "date_collected": "2025-12-10"
        }
      ],
      "email": "text",
      "address": "text",
      "additional_g2p_info": [
        {}
      ],
      "program_memberships": [
        {
          "name": "text",
          "enrollment_date": "2025-12-10"
        }
      ],
      "notification_preference": "none",
      "members": [
        {
          "name": "text",
          "given_name": "text",
          "addl_name": "text",
          "family_name": "text",
          "ids": [
            {
              "id_type": "text",
              "value": "text",
              "expiry_date": "2025-12-10"
            }
          ],
          "registration_date": "2025-12-10",
          "phone_numbers": [
            {
              "phone_no": "text",
              "date_collected": "2025-12-10"
            }
          ],
          "email": "text",
          "address": "text",
          "gender": "text",
          "birthdate": "2025-12-10",
          "birth_place": "text",
          "kind": [
            {
              "name": "text"
            }
          ],
          "is_group": false,
          "additional_g2p_info": [
            {}
          ],
          "program_memberships": [
            {
              "name": "text",
              "enrollment_date": "2025-12-10"
            }
          ],
          "notification_preference": "none"
        }
      ],
      "kind": "text",
      "is_partial_group": true
    }
    GET /api/v1/registry/group/{id} HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    {
      "id": 1,
      "name": "text",
      "reg_ids": [
        {
          "id": 1,
          "id_type_as_str": "text",
          "value": "text",
          "expiry_date": "2025-12-10"
        }
      ],
      "is_group": true,
      "registration_date": "2025-12-10",
      "phone_number_ids": [
        {
          "id": 1,
          "phone_no": "text",
          "phone_sanitized": "text",
          "date_collected": "2025-12-10",
          "disabled": "2025-12-10"
        }
      ],
      "email": "text",
      "address": "text",
      "additional_g2p_info": "",
      "program_membership_ids": [
        {
          "program_id": 1,
          "state": "text",
          "enrollment_date": "2025-12-10",
          "exit_date": "2025-12-10"
        }
      ],
      "notification_preference": "none",
      "group_membership_ids": [
        {
          "id": 1,
          "individual": {
            "id": 1,
            "name": "text",
            "reg_ids": [
              {
                "id": 1,
                "id_type_as_str": "text",
                "value": "text",
                "expiry_date": "2025-12-10"
              }
            ],
            "is_group": false,
            "registration_date": "2025-12-10",
            "phone_number_ids": [
              {
                "id": 1,
                "phone_no": "text",
                "phone_sanitized": "text",
                "date_collected": "2025-12-10",
                "disabled": "2025-12-10"
              }
            ],
            "email": "text",
            "address": "text",
            "additional_g2p_info": "",
            "program_membership_ids": [
              {
                "program_id": 1,
                "state": "text",
                "enrollment_date": "2025-12-10",
                "exit_date": "2025-12-10"
              }
            ],
            "notification_preference": "none",
            "given_name": "text",
            "addl_name": "text",
            "family_name": "text",
            "gender": "text",
            "birthdate": "2025-12-10",
            "age": "text",
            "birth_place": "text"
          },
          "kind": [
            {
              "name": "text"
            }
          ]
        }
      ],
      "kind_as_str": "text",
      "is_partial_group": true
    }
    GET /api/v1/registry/group/search HTTP/1.1
    Host: mec.openg2p.net
    Accept: */*
    
    [
      {
        "id": 1,
        "name": "text",
        "reg_ids": [
          {
            "id": 1,
            "id_type_as_str": "text",
            "value": "text",
            "expiry_date": "2025-12-10"
          }
        ],
        "is_group": true,
        "registration_date": "2025-12-10",
        "phone_number_ids": [
          {
            "id": 1,
            "phone_no": "text",
            "phone_sanitized": "text",
            "date_collected": "2025-12-10",
            "disabled": "2025-12-10"
          }
        ],
        "email": "text",
        "address": "text",
        "additional_g2p_info": "",
        "program_membership_ids": [
          {
            "program_id": 1,
            "state": "text",
            "enrollment_date": "2025-12-10",
            "exit_date": "2025-12-10"
          }
        ],
        "notification_preference": "none"
      }
    ]
    {
      "id": 1,
      "name": "text",
      "reg_ids": [
        {
          "id": 1,
          "id_type_as_str": "text",
          "value": "text",
          "expiry_date": "2025-12-10"
        }
      ],
      "is_group": true,
      "registration_date": "2025-12-10",
      "phone_number_ids": [
        {
          "id": 1,
          "phone_no": "text",
          "phone_sanitized": "text",
          "date_collected": "2025-12-10",
          "disabled": "2025-12-10"
        }
      ],
      "email": "text",
      "address": "text",
      "additional_g2p_info": "",
      "program_membership_ids": [
        {
          "program_id": 1,
          "state": "text",
          "enrollment_date": "2025-12-10",
          "exit_date": "2025-12-10"
        }
      ],
      "notification_preference": "none",
      "group_membership_ids": [
        {
          "id": 1,
          "individual": {
            "id": 1,
            "name": "text",
            "reg_ids": [
              {
                "id": 1,
                "id_type_as_str": "text",
                "value": "text",
                "expiry_date": "2025-12-10"
              }
            ],
            "is_group": false,
            "registration_date": "2025-12-10",
            "phone_number_ids": [
              {
                "id": 1,
                "phone_no": "text",
                "phone_sanitized": "text",
                "date_collected": "2025-12-10",
                "disabled": "2025-12-10"
              }
            ],
            "email": "text",
            "address": "text",
            "additional_g2p_info": "",
            "program_membership_ids": [
              {
                "program_id": 1,
                "state": "text",
                "enrollment_date": "2025-12-10",
                "exit_date": "2025-12-10"
              }
            ],
            "notification_preference": "none",
            "given_name": "text",
            "addl_name": "text",
            "family_name": "text",
            "gender": "text",
            "birthdate": "2025-12-10",
            "age": "text",
            "birth_place": "text"
          },
          "kind": [
            {
              "name": "text"
            }
          ]
        }
      ],
      "kind_as_str": "text",
      "is_partial_group": true
    }
    post
    Body
    requestTimestringOptional
    Responses
    200

    OK

    application/json
    post
    /client-mgmt/oidc-client
    200

    OK

    {
      "responseTime": "text",
      "response": {
        "clientId": "text",
        "status": "text"
      },
      "errors": [
        {
          "errorCode": "text",
          "errorMessage": "text"
        }
      ]
    }
    POST /v1/esignet/client-mgmt/oidc-client HTTP/1.1
    Host: api-internal.mec.mosip.net
    Content-Type: application/json
    Accept: */*
    Content-Length: 280
    
    {
      "requestTime": "text",
      "request": {
        "clientId": "text",
        "clientName": "text",
        "publicKey": {
          "ANY_ADDITIONAL_PROPERTY": {}
        },
        "relyingPartyId": "text",
        "userClaims": [
          "text"
        ],
        "authContextRefs": [
          "text"
        ],
        "logoUri": "text",
        "redirectUris": [
          "text"
        ],
        "grantTypes": [
          "text"
        ],
        "clientAuthMethods": [
          "text"
        ]
      }
    }
    post
    Body
    idstringOptional
    versionstringOptional
    requesttimestring ยท date-timeOptional
    metadataobjectOptional
    Responses
    200

    OK

    application/json
    post
    /oidc/client
    200

    OK

    {
      "id": "text",
      "version": "text",
      "responsetime": "2025-12-10T00:48:50.451Z",
      "metadata": {},
      "response": {
        "clientId": "text",
        "status": "text"
      },
      "errors": [
        {
          "errorCode": "text",
          "message": "text"
        }
      ]
    }
    POST /v1/partnermanager/oidc/client HTTP/1.1
    Host: api-internal.mec.mosip.net
    Content-Type: application/json
    Accept: */*
    Content-Length: 287
    
    {
      "id": "text",
      "version": "text",
      "requesttime": "2025-12-10T00:48:50.451Z",
      "metadata": {},
      "request": {
        "name": "text",
        "policyId": "text",
        "publicKey": {
          "ANY_ADDITIONAL_PROPERTY": {}
        },
        "authPartnerId": "text",
        "logoUri": "text",
        "redirectUris": [
          "text"
        ],
        "grantTypes": [
          "text"
        ],
        "clientAuthMethods": [
          "text"
        ]
      }
    }
    MOSIP Token Seeder