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
Response format
JSON
Requires Authentication
No
Request Part Parameters
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
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
Response format
JSON
Requires Authentication
No
Request Part Parameters
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
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
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
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
Response format
JSON
Requires Authentication
No
Responses
Success Response
Status code: 200
Description: Config parameter retrieved sucessfully
Other Failure details
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
Response format
JSON
Requires Authentication
No
Responses
Success Response
Status code: 200
Description: Config parameter retrieved sucessfully
Other Failure details
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
Response format
JSON
Requires Authentication
Yes
Request Body Parameters
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
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
Response format
JSON
Requires Authentication
Yes
Request Path Parameters
preRegistrationId
Yes
pre-registration id of the application
64269837502851
Request Body Parameters
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
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
Response format
JSON
Requires Authentication
Yes
Request Path Parameters
preRegistrationId
Yes
Id of the application
32042841521591
Responses
Success Response:
Status code: 200