Pre Registration APIs
This section details about the service API in the Pre-Registration modules.
Note: The id, version and requesttime in request and responsetime in response bodies are optional fields and not consumed by pre-registration application unless defined. Though we need to pass these as part of the request, it should not be tested. Few of the error messages are intended for API consumer, who are mostly SI and developers. User friendly messages need to be mapped in the UI reference implementation.
API testing Prerequisites
Generate a Authorization Token by using following Kernel AuthManager APIs
To send an OTP /authmanager/sendOTPUsingPOST
To validate the OTP /authmanager/userIdOTPUsingPOST Once OTP get validate successfully you will get the Authorization token.
Use this Authorization token in the every request header of all pre-registration APIs.
Login Service (Public)
This service details used by Pre-Registration portal to authenticate user by sending OTP to the user, validating with userid and OTP.
POST /login/sendOtp
This request will send the OTP to the requested user in the preferred channel(sms/email)
Resource URL
https://{base_url}/preregistration/v1/login/sendOtp
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | No |
Request Part Parameters
Name | Required | Description | Comment |
---|---|---|---|
id | Yes | id | mosip.pre-registration.login.sendotp |
version | Yes | version of the application | 1.0 |
requesttime | Yes | Time of the request | 2019-01-16T05:23:08.019Z |
request | Yes | Request for the application | |
request.userid | Yes | user id of the applicant(mobile number/email address) | 8907654778 |
For SMS
Request for SMS
Responses for SMS
Success Response
Status code: 200
Description: OTP sent successfully to specified channel
For Email
Request for Email
Responses for Email
Success Response
Status code: 200
Description: OTP sent successfully to specified channel
Failure Response
Status code: 200
Description: Invalid parameters
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
PRG_PAM_LGN_008 | Invalid Request userId received | if requested userId is empty or invalid |
PRG_PAM_CORE_001 | Request id is invalid | Invalid or empty Request Id |
PRG_PAM_CORE_002 | Request version is invalid | Invalid or empty Request version |
PRG_PAM_CORE_003 | Invalid request time | Empty Request time |
PRG_CORE_REQ_013 | Request date should be current date | If request date is not current date |
POST /login/validateOtp
This request will validate the OTP with respect to userid and provide the authorize token in the browser cookies.
Resource URL
https://{base_url}/preregistration/v1/login/validateOtp
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | No |
Request Part Parameters
Name | Required | Description | Comment |
---|---|---|---|
id | Yes | id | mosip.pre-registration.login.useridotp |
version | Yes | version of the application | 1.0 |
requesttime | Yes | Time of the request | 2019-01-16T05:23:08.019Z |
request | Yes | Request for the application | |
request.userid | Yes | user id of the applicant (mobile number/email address) | 8907654778 |
request.OTP | Yes | received OTP | 345674 |
Request
Responses
Success Response
Status code: 200
Description: sms sent successfully
Failure Response
Status code: 200
Description: Invalid parameters
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
KER-ATH-003 | User Detail doesn't exist. | If userId is empty or invalid |
KER-OTV-003 | OTP can't be empty or null. | If otp field is empty or null |
KER-OTV-004 | OTP consists of only numeric characters. No other characters is allowed | If otp contains character other than numeric |
PRG_PAM_CORE_001 | Request id is invalid | Invalid or empty Request Id |
PRG_PAM_CORE_002 | Request version is invalid | Invalid or empty Request version |
PRG_PAM_CORE_003 | Invalid request time | Empty Request time |
PRG_CORE_REQ_013 | Request date should be current date | If request date is not current date |
PRG_PAM_LGN_013 | VALIDATION_UNSUCCESSFUL | If incorrect otp is entered |
PRG_PAM_LGN_014 | Token is not present in the header | When token does not come from kernel service in the header |
POST /login/invalidateToken
This request will invalidate the authorization token when force logout is done.
Resource URL
https://{base_url}/preregistration/v1/login/invalidateToken
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | Yes |
Responses
Success Response
Status code: 200
Description: Token invalidated successfully
Failure Response
Status code: 200
Description: Token is not present in cookies
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
KER-ATH-008 | Token is not present in datastore, Please try with new token | If token is not present in datastore |
KER-ATH-006 | Cookies are empty | When no Cookie is passed in the header |
GET /login/config
This request will load the configuration parameters while loading the pre-registration portal page.
All the values are retrieving from the pre-registration config properties file. If any value get changed in the config properties file it will get reflected in the response of this API. Following mentioned response is the sample of that.
Resource URL
https://{base_url}/preregistration/v1/login/config
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | No |
Responses
Success Response
Status code: 200
Description: Config parameter retrieved sucessfully
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
PRG_AUTH_012 | Config file not found in the config server | If config file is missing in the config server |
GET /login/refreshconfig
This request will reload the configuration parameters.
When ever there is change in the property file, then this rest end point should be called manually,so that the property get reflected.
Resource URL
https://{base_url}/preregistration/v1/login/refreshconfig
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | No |
Responses
Success Response
Status code: 200
Description: Config parameter retrieved sucessfully
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
PRG_AUTH_012 | Config file not found in the config server | If config file is missing in the config server |
Demographic Service (public)
This service details used by Pre-Registration portal to maintain the demographic data by providing his/her basic details.
POST /applications
This request is used to create new pre-registration with demographic details, which generates pre-registration id and associates it with demographic details.
Resource URL
https://{base_url}/preregistration/v1/applications
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | Yes |
Request Body Parameters
Name | Required | Description | Comment |
---|---|---|---|
id | Yes | Id of the application | mosip.pre-registration.demographic.create |
version | Yes | version of the application | 1.0 |
requesttime | Yes | Request time of the application | 2019-01-16T05:23:08.019Z |
request | Yes | Request for the application | |
request.langCode | Yes | primary language code | value will be derived from UI |
request.demographicDetails | Yes | demographicDetails of the applicant | |
request.demographicDetails.identity | Yes | identity of the applicant | |
request.demographicDetails.identity.gender | Yes | gender of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.city | Yes | city of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.phone | Optional | mobile number of the applicant | |
request.demographicDetails.identity.IDSchemaVersion | Optional | id schema version | 1 |
request.demographicDetails.identity.fullName | Yes | full name of the applicant | |
request.demographicDetails.identity.dateOfBirth | Yes | date of birth of the applicant | |
request.demographicDetails.identity.email | Optional | email Id of the applicant | |
request.demographicDetails.identity.province | Yes | province of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.postalCode | Yes | postal code of the applicant | |
request.demographicDetails.identity.addressLine1 | Yes | address Line 1 of the applicant | |
request.demographicDetails.identity.addressLine2 | Optional | address Line 2 of the applicant | |
request.demographicDetails.identity.addressLine3 | Optional | address Line 3 of the applicant | |
request.demographicDetails.identity.region | Yes | region of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.residenceStatus | Yes | residence status of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.zone | Yes | zone of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.referenceIdentityNumber | Yes | referenceIdentityNumber Number of the applicant |
Request
Responses
Success Response
Status code: 200
Description: Pre-Registration successfully Created
Failure Response
Status code: 200
Description: invalid or empty request id
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
PRG_PAM_CORE_002 | Request version is invalid | Invalid or empty Request version |
PRG_PAM_CORE_003 | Invalid request time | Empty Request time |
PRG_CORE_REQ_013 | Request date should be current date | If request date is not current date |
PRG_CORE_REQ_014 | Lang code is invalid | when language code is invalid or empty |
PRG_PAM_CORE_011 | encryption failed | encryption of demographic data failed |
PRG_PAM_APP_007 | json parsing is failed | demographic json parsing failed |
PRG_PAM_CORE_010 | hashing failed | demographic data hashing failed |
PRG_PAM_CORE_012 | decryption failes | decryption of demographic data failed |
PRG_PAM_APP_020 | Rest call to get prid failed | Service call to get Prid failed |
PRG_PAM_APP_021 | Duplicate key for prid | Failure of unique key constrains |
KER-IOV-005 | Missing input parameter - identity/fullName | If fullName attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/dateOfBirth|identity/age | If dateOfBirth attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/gender | If gender attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/residenceStatus | If residenceStatus attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/addressLine1 | If addressLine1 attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/region | If region attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/zone | If zone attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/province | If province attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/city | If city attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/postalCode | If postalCode attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/referenceIdentityNumber | If referenceIdentityNumber attribute is not found in the identity request |
KER-IOV-004 | Invalid input parameter - identity/phone | If phone attribute is found but it's value is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/email | If email attribute is found but it's value is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/fullName/{*}/language | If language code is empty or invalid in the specified position(*) inside fullName attribute |
KER-IOV-004 | Invalid input parameter - identity/dateOfBirth | If dateOfBirth value is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/gender/{*}/language | If language code is empty or invalid in the specified position(*) inside gender attribute |
KER-IOV-004 | Invalid input parameter - identity/gender/{*}/value | If value is empty or invalid in the specified position(*) inside gender attribute |
KER-IOV-004 | Invalid input parameter - identity/addressLine1/{*}/language | If language code is empty or invalid in the specified position(*) inside addressLine1 attribute |
KER-IOV-004 | Invalid input parameter - identity/addressLine2/{*}/language | If language code is empty or invalid in the specified position(*) inside addressLine2 attribute |
KER-IOV-004 | Invalid input parameter - identity/addressLine3/{*}/language | If language code is empty or invalid in the specified position(*) inside addressLine3 attribute |
KER-IOV-004 | Invalid input parameter - identity/residenceStatus/{*}/language | If language code is empty or invalid in the specified position(*) inside residenceStatus attribute |
KER-IOV-004 | Invalid input parameter - identity/region/{*}/language | If language code is empty or invalid in the specified position(*) inside region attribute |
KER-IOV-004 | Invalid input parameter - identity/region/{*}/value | If value is empty or invalid in the specified position(*) inside region attribute |
KER-IOV-004 | Invalid input parameter - identity/province/{*}/language | If language code is empty or invalid in the specified position(*) inside province attribute |
KER-IOV-004 | Invalid input parameter - identity/province/{*}/value | If value is empty or invalid in the specified position(*) inside province attribute |
KER-IOV-004 | Invalid input parameter - identity/city/{*}/language | If language code is empty or invalid in the specified position(*) inside city attribute |
KER-IOV-004 | Invalid input parameter - identity/city/{*}/value | If value is empty or invalid in the specified position(*) inside city attribute |
KER-IOV-004 | Invalid input parameter - identity/zone/{*}/language | If language code is empty or invalid in the specified position(*) inside zone attribute |
KER-IOV-004 | Invalid input parameter - identity/zone/{*}/value | If value is empty or invalid in the specified position(*) inside zone attribute |
KER-IOV-004 | Invalid input parameter - identity/postalCode | If postalCode is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/referenceIdentityNumber | If referenceIdentityNumber is empty or invalid |
PUT /applications/{preRegistrationId}
This request is used to update pre-registration's demographic details by providing pre-registration id in the path parameter and updated demographic details in request body.
Resource URL
https://{base_url}/preregistration/v1/applications/{preRegistrationId}
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | Yes |
Request Path Parameters
Name | Required | Description | Comment |
---|---|---|---|
preRegistrationId | Yes | pre-registration id of the application | 64269837502851 |
Request Body Parameters
Name | Required | Description | Comment |
---|---|---|---|
id | Yes | Id of the application | mosip.pre-registration.demographic.create |
version | Yes | version of the application | 1.0 |
requesttime | Yes | Request time of the application | 2019-01-16T05:23:08.019Z |
request | Yes | Request for the application | |
request.langCode | Yes | primary language code | value will be derived from UI |
request.demographicDetails | Yes | demographicDetails of the applicant | |
request.demographicDetails.identity | Yes | identity of the applicant | |
request.demographicDetails.identity.gender | Yes | gender of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.city | Yes | city of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.phone | Optional | mobile number of the applicant | |
request.demographicDetails.identity.IDSchemaVersion | Optional | id schema version | 1 |
request.demographicDetails.identity.fullName | Yes | full name of the applicant | |
request.demographicDetails.identity.dateOfBirth | Yes | date of birth of the applicant | |
request.demographicDetails.identity.email | Optional | email Id of the applicant | |
request.demographicDetails.identity.province | Yes | province of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.postalCode | Yes | postal code of the applicant | |
request.demographicDetails.identity.addressLine1 | Yes | address Line 1 of the applicant | |
request.demographicDetails.identity.addressLine2 | Optional | address Line 2 of the applicant | |
request.demographicDetails.identity.addressLine3 | Optional | address Line 3 of the applicant | |
request.demographicDetails.identity.region | Yes | region of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.residenceStatus | Yes | residence status of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.zone | Yes | zone of the applicant | value will be derived from the domain metadata |
request.demographicDetails.identity.referenceIdentityNumber | Yes | referenceIdentityNumber Number of the applicant |
Request
Responses
Success Response
Status code: 200
Description: Pre-Registration demographic details successfully updated
Failure Response
Status code: 200
Description: Invalid preregistration id(non-empty) or data is not found for that preregistration id.
Other Failure details
Error Code | Error Message | Error Description |
---|---|---|
PRG_PAM_CORE_001 | Request id is invalid | Invalid or empty Request Id |
PRG_PAM_CORE_002 | Request version is invalid | Invalid or empty Request version |
PRG_PAM_CORE_003 | Invalid request time | Empty Request time |
PRG_CORE_REQ_013 | Request date should be current date | If request date is not current date |
PRG_PAM_CORE_011 | encryption failed | encryption of demographic data failed |
PRG_PAM_APP_007 | json parsing is failed | demographic json parsing failed |
PRG_PAM_CORE_010 | hashing failed | demographic data hashing failed |
PRG_PAM_CORE_012 | decryption failes | decryption of demographic data failed |
PRG_PAM_APP_017 | Requested preregistration id does not belong to the user | when the user tries to access another user's demographic data |
KER-IOV-005 | Missing input parameter - identity/fullName | If fullName attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/dateOfBirth|identity/age | If dateOfBirth attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/gender | If gender attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/residenceStatus | If residenceStatus attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/addressLine1 | If addressLine1 attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/region | If region attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/zone | If zone attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/province | If province attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/city | If city attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/postalCode | If postalCode attribute is not found in the identity request |
KER-IOV-005 | Missing input parameter - identity/referenceIdentityNumber | If referenceIdentityNumber attribute is not found in the identity request |
KER-IOV-004 | Invalid input parameter - identity/phone | If phone attribute is found but it's value is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/email | If email attribute is found but it's value is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/fullName/{*}/language | If language code is empty or invalid in the specified position(*) inside fullName attribute |
KER-IOV-004 | Invalid input parameter - identity/dateOfBirth | If dateOfBirth value is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/gender/{*}/language | If language code is empty or invalid in the specified position(*) inside gender attribute |
KER-IOV-004 | Invalid input parameter - identity/gender/{*}/value | If value is empty or invalid in the specified position(*) inside gender attribute |
KER-IOV-004 | Invalid input parameter - identity/addressLine1/{*}/language | If language code is empty or invalid in the specified position(*) inside addressLine1 attribute |
KER-IOV-004 | Invalid input parameter - identity/addressLine2/{*}/language | If language code is empty or invalid in the specified position(*) inside addressLine2 attribute |
KER-IOV-004 | Invalid input parameter - identity/addressLine3/{*}/language | If language code is empty or invalid in the specified position(*) inside addressLine3 attribute |
KER-IOV-004 | Invalid input parameter - identity/residenceStatus/{*}/language | If language code is empty or invalid in the specified position(*) inside residenceStatus attribute |
KER-IOV-004 | Invalid input parameter - identity/region/{*}/language | If language code is empty or invalid in the specified position(*) inside region attribute |
KER-IOV-004 | Invalid input parameter - identity/region/{*}/value | If value is empty or invalid in the specified position(*) inside region attribute |
KER-IOV-004 | Invalid input parameter - identity/province/{*}/language | If language code is empty or invalid in the specified position(*) inside province attribute |
KER-IOV-004 | Invalid input parameter - identity/province/{*}/value | If value is empty or invalid in the specified position(*) inside province attribute |
KER-IOV-004 | Invalid input parameter - identity/city/{*}/language | If language code is empty or invalid in the specified position(*) inside city attribute |
KER-IOV-004 | Invalid input parameter - identity/city/{*}/value | If value is empty or invalid in the specified position(*) inside city attribute |
KER-IOV-004 | Invalid input parameter - identity/zone/{*}/language | If language code is empty or invalid in the specified position(*) inside zone attribute |
KER-IOV-004 | Invalid input parameter - identity/zone/{*}/value | If value is empty or invalid in the specified position(*) inside zone attribute |
KER-IOV-004 | Invalid input parameter - identity/postalCode | If postalCode is empty or invalid |
KER-IOV-004 | Invalid input parameter - identity/referenceIdentityNumber | If referenceIdentityNumber is empty or invalid |
GET /applications/{preRegistrationId}
This request is used to retrieve Pre-Registration demographic data by pre-Registration id provided in request path parameter.
Resource URL
https://{base_url}/preregistration/v1/applications/{preRegistrationId}
Resource details
Resource Details | Description |
---|---|
Response format | JSON |
Requires Authentication | Yes |
Request Path Parameters
Name | Required | Description | Comment |
---|---|---|---|
preRegistrationId | Yes | Id of the application | 32042841521591 |
Responses
Success Response:
Status code: 200
Description: Demographic data successfully retrieved