Mimoto - BFF

Mimoto serves as a Backend for Frontend (BFF) for Inji Web, handling retrieval of default configurations and downloading VCs. It offers essential APIs to Inji Web, facilitates validations, and forwards requests to relevant services.

To support credential issuance from any issuer compatible with the OpenID4VCI protocol, Mimoto must be onboarded as an OIDC client. Refer here for more details on how to onboard Mimoto (BFF) as an OIDC client.

Detailed API documentation for Mimoto is accessible here.

Configuration details to set up a new provider that can issue VC, can be found in the mimoto-issuers-config.json property file. Refer to mimoto-issuers-config.json of Collab environment.

In mimoto-issuers-config.json, new providers can be added as per the well-known schema.

Mimoto endpoints used by Inji Web:

  1. Fetch Issuers:

get

This API provides data with search capability to populate the list of supported issuers in Inji Web, which is then displayed under the List of Issuers

Query parameters
searchstringOptional
Responses
200
OK
application/json
get
GET /residentmobileapp/issuers HTTP/1.1
Host: api.collab.mosip.net
Accept: */*
200

OK

{
  "id": "mosip.resident.vid",
  "version": "v1",
  "str": null,
  "responsetime": "2022-10-31T05:08:14.846Z",
  "metadata": null,
  "response": {
    "issuers": [
      {
        "credential_issuer": "MOSIPInsurance",
        "protocol": "OpenId4VCI",
        "display": [
          {
            "name": "MOSIP Insurance",
            "logo": {
              "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
              "alt_text": "MOSIP-Logo"
            },
            "title": "Download via LIC",
            "description": "Enter your policy number to download your card.",
            "language": "en"
          }
        ],
        "client_id": "3yz7-j3xRzU3SODdoNgSGvO_cD8UijH3AIWRDAg1x-M",
        ".well-known": "http://localhost:8088/.well-known/openid-credential-issuer"
      },
      {
        "credential_issuer": "MOSIPNationalID",
        "protocol": "OpenId4VCI",
        "display": [
          {
            "name": "MOSIP National ID",
            "logo": {
              "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
              "alt_text": "MOSIP-Logo"
            },
            "title": "Download via LIC",
            "description": "Enter your policy number to download your card.",
            "language": "en"
          }
        ],
        "client_id": "3yz7-j3xRzU3SODdoNgSGvO_cD8UijH3AIWRDAg1x-M",
        ".well-known": "http://localhost:8088/.well-known/openid-credential-issuer"
      }
    ]
  }
}
  1. Fetch Issuer's Configuration:

get

This API provides the complete configuration details for the specific issuers passed in the path variable

Path parameters
issuer-idstringRequired
Responses
200
OK
application/json
get
GET /residentmobileapp/issuers/{issuer-id} HTTP/1.1
Host: api.collab.mosip.net
Accept: */*
200

OK

{
  "id": "mosip.mimoto.issuers",
  "version": "v1",
  "str": null,
  "responsetime": "2024-04-25T05:56:55.890Z",
  "metadata": null,
  "response": {
    "credential_issuer": "ESignet",
    "protocol": "OpenId4VCI",
    "display": [
      {
        "name": "e-Signet",
        "logo": {
          "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
          "alt_text": "mosip-logo"
        },
        "title": "Download MOSIP Credentials",
        "description": "Download credentials by providing UIN or VID",
        "language": "en"
      },
      {
        "name": "e-Signet",
        "logo": {
          "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
          "alt_text": "شعار موسيب"
        },
        "title": "قم بتنزيل بيانات اعتماد MOSIP",
        "description": "توفير UIN أو VIDقم بتنزيل بيانات الاعتماد عن طريق",
        "language": "ar"
      },
      {
        "name": "e-Signet",
        "logo": {
          "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
          "alt_text": "मोसिप लोगो"
        },
        "title": "MOSIP क्रेडेंशियल डाउनलोड करेंं",
        "description": "यूआईएन या वीआईडी प्रदान करके क्रेडेंशियल डाउनलोड करें",
        "language": "hi"
      },
      {
        "name": "e-Signet",
        "logo": {
          "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
          "alt_text": "mosip ಲೋಗೋ"
        },
        "title": "MOSIP ರುಜುವಾತುಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ",
        "description": "UIN ಅಥವಾ VID ಒದಗಿಸುವ ಮೂಲಕ ರುಜುವಾತುಗಳನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ",
        "language": "kn"
      },
      {
        "name": "e-Signet",
        "logo": {
          "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
          "alt_text": "mosip லோகோ"
        },
        "title": "MOSIP சான்றுகளைப் பதிவிறக்கவும்",
        "description": "UIN அல்லது VIDஐ வழங்குவதன் மூலம் நற்சான்றிதழ்களைப் பதிவிறக்கவும்",
        "language": "ta"
      },
      {
        "name": "e-Signet",
        "logo": {
          "url": "https://api.collab.mosip.net/inji/mosip-logo.png",
          "alt_text": "logo ng mosip"
        },
        "title": "I-download ang Mga Kredensyal ng MOSIP",
        "description": "Mag-download ng mga kredensyal sa pamamagitan ng pagbibigay ng UIN o VID",
        "language": "fil"
      }
    ],
    "client_id": "DEqVWfdKe9cQWikLdjak3vlDF0Pq7jtnwTcGdEXoT1I",
    "redirect_uri": "io.mosip.residentapp.inji://oauthredirect",
    "scopes_supported": [
      "mosip_identity_vc_ldp"
    ],
    "authorization_endpoint": "https://esignet.collab.mosip.net/authorize",
    "authorization_audience": "https://esignet.collab.mosip.net/v1/esignet/oauth/v2/token",
    "token_endpoint": "https://api.collab.mosip.net/residentmobileapp/get-token/ESignet",
    "proxy_token_endpoint": "https://esignet.collab.mosip.net/v1/esignet/oauth/v2/token",
    "credential_endpoint": "https://esignet.collab.mosip.net/v1/esignet/vci/credential",
    "credential_type": [
      "VerifiableCredential",
      "MOSIPVerifiableCredential"
    ],
    "credential_audience": "https://esignet.collab.mosip.net",
    "client_alias": "mpartner-default-mimotooidc",
    "additional_headers": {
      "Accept": "application/json"
    },
    ".well-known": "https://esignet.collab.mosip.net/.well-known/openid-credential-issuer"
  },
  "errors": []
}
  1. Download PDF:

get

This API is responsible for generating PDFs for the received VC content. It fetches display properties from the well-known configuration of the issuer and incorporates them into the predefined template of the PDF file.

Path parameters
issuer-idstringRequired
credentialTypestringRequired
Header parameters
BearerstringRequired
Responses
200
OK
application/pdf
Responsestring · binary
get
GET /residentmobileapp/issuers/{issuer-id}/credentials/{credentialType}/download HTTP/1.1
Host: api.collab.mosip.net
Bearer: text
Accept: */*
200

OK

{
  "id": null,
  "version": "v1",
  "str": null,
  "responsetime": "2022-10-31T05:07:34.789Z",
  "metadata": null,
  "response": null,
  "errors": [
    {
      "errorCode": "RESIDENT-APP-036",
      "errorMessage": "Invalid Credential Type Id"
    }
  ]
}
  1. Fetch Issuer Credentials:

This API fetches the list of Credential Types offered by the issuer, sourced from the well-known configuration of the issuer. Users can filter credentials based on search parameter.

https://api.collab.mosip.net/v1/mimoto/issuers/{issuer-id}/.well-known

Method Type: GET

Parameter:

issuerid: ID of the issuer in string type.

Response

Response code 200

{
  "credential_issuer": "https://injicertify-insurance.dev1.mosip.net",
  "authorization_servers": [
    "https://esignet-insurance.dev1.mosip.net"
  ],
  "credential_endpoint": "https://injicertify-insurance.dev1.mosip.net/v1/certify/issuance/credential",
  "credential_configurations_supported": {
    "InsuranceCredential": {
      "format": "ldp_vc",
      "scope": "sunbird_rc_insurance_vc_ldp",
      "order": [
        "fullName",
        "policyName",
        "policyExpiresOn",
        "policyIssuedOn",
        "policyNumber",
        "mobile",
        "dob",
        "gender",
        "benefits",
        "email"
      ],
      "proof_types_supported": {
        "jwt": {
          "proof_signing_alg_values_supported": [
            "RS256",
            "PS256"
          ]
        }
      },
      "credential_definition": {
        "type": [
          "VerifiableCredential",
          "InsuranceCredential"
        ],
        "credentialSubject": {
          "fullName": {
            "display": [
              {
                "name": "Name",
                "locale": "en"
              }
            ]
          },
          "mobile": {
            "display": [
              {
                "name": "Phone Number",
                "locale": "en"
              }
            ]
          },
          "dob": {
            "display": [
              {
                "name": "Date of Birth",
                "locale": "en"
              }
            ]
          },
          "gender": {
            "display": [
              {
                "name": "Gender",
                "locale": "en"
              }
            ]
          },
          "benefits": {
            "display": [
              {
                "name": "Benefits",
                "locale": "en"
              }
            ]
          },
          "email": {
            "display": [
              {
                "name": "Email Id",
                "locale": "en"
              }
            ]
          },
          "policyIssuedOn": {
            "display": [
              {
                "name": "Policy Issued On",
                "locale": "en"
              }
            ]
          },
          "policyExpiresOn": {
            "display": [
              {
                "name": "Policy Expires On",
                "locale": "en"
              }
            ]
          },
          "policyName": {
            "display": [
              {
                "name": "Policy Name",
                "locale": "en"
              }
            ]
          },
          "policyNumber": {
            "display": [
              {
                "name": "Policy Number",
                "locale": "en"
              }
            ]
          }
        }
      },
      "display": [
        {
          "name": "Health Insurance",
          "locale": "en",
          "logo": {
            "url": "https://raw.githubusercontent.com/tw-mosip/file-server/master/StayProtectedInsurance.png",
            "alt_text": "a square logo of a Veridonia"
          },
          "background_image": {
            "uri": "https://api.dev1.mosip.net/inji/veridonia-logo.png"
          },
          "background_color": "#FDFAF9",
          "text_color": "#7C4616"
        }
      ]
    },
    "LifeInsuranceCredential": {
      "format": "ldp_vc",
      "scope": "life_insurance_vc_ldp",
      "order": [
        "fullName",
        "policyName",
        "policyExpiresOn",
        "policyIssuedOn",
        "policyNumber",
        "mobile",
        "dob",
        "gender",
        "benefits",
        "email"
      ],
      "proof_types_supported": {
        "jwt": {
          "proof_signing_alg_values_supported": [
            "RS256",
            "ES256"
          ]
        }
      },
      "credential_definition": {
        "type": [
          "VerifiableCredential",
          "LifeInsuranceCredential"
        ],
        "credentialSubject": {
          "fullName": {
            "display": [
              {
                "name": "Name",
                "locale": "en"
              }
            ]
          },
          "mobile": {
            "display": [
              {
                "name": "Phone Number",
                "locale": "en"
              }
            ]
          },
          "dob": {
            "display": [
              {
                "name": "Date of Birth",
                "locale": "en"
              }
            ]
          },
          "gender": {
            "display": [
              {
                "name": "Gender",
                "locale": "en"
              }
            ]
          },
          "benefits": {
            "display": [
              {
                "name": "Benefits",
                "locale": "en"
              }
            ]
          },
          "email": {
            "display": [
              {
                "name": "Email Id",
                "locale": "en"
              }
            ]
          },
          "policyIssuedOn": {
            "display": [
              {
                "name": "Policy Issued On",
                "locale": "en"
              }
            ]
          },
          "policyExpiresOn": {
            "display": [
              {
                "name": "Policy Expires On",
                "locale": "en"
              }
            ]
          },
          "policyName": {
            "display": [
              {
                "name": "Policy Name",
                "locale": "en"
              }
            ]
          },
          "policyNumber": {
            "display": [
              {
                "name": "Policy Number",
                "locale": "en"
              }
            ]
          }
        }
      },
      "display": [
        {
          "name": "Life Insurance",
          "locale": "en",
          "logo": {
            "url": "https://raw.githubusercontent.com/tw-mosip/file-server/master/StayProtectedInsurance.png",
            "alt_text": "a square logo of a Veridonia"
          },
          "background_image": {
            "uri": "https://api.dev1.mosip.net/inji/veridonia-logo.png"
          },
          "background_color": "#FDFAF9",
          "text_color": "#7C4616"
        }
      ]
    }
  }
}

Last updated

Was this helpful?