API Specifications
Please see API Specification v3.2 for indepth specification
This API triggers SingPass login and obtain consent for the user to retrieve user's data from MyInfo. Once the user has authenticated and consented, an authorisation code (authcode) will be returned together with the state for verification via the callback URL defined. The authcode can then be used to retrieve an access token via the Token API.
Note: This API is public and should be implemented as a link or button on your online webpage. Note: For partners integrating via android mobile application, please ensure that the "setDomStorageEnable" attribute is enabled.
Mode of authentication used to obtain user consent. Default is "SINGPASS".
SINGPASS
Possible values: State the purpose for requesting the data. This will be shown to the user for his consent.
Response type for authorisation code flow - must be "code".
code
Comma separated list of attributes requested. Possible attributes are listed in the scopes of the OAuth2 Security Schema above.
name,hanyupinyinname
Identifier that represents the user's session/transaction with the client for reconciling query and response. The same value will be sent back via the callback URL. Use a unique system generated number for each user/transaction.
Your callback URL for MyInfo to return with the authorisation code.
Unique ID for your application.
STG-180099999K-TEST01
Pilot for SingPass-QR-only-login using SingPass Mobile. SingPass-QR-only-login is enabled by specifying this parameter with value set to QR
.
Note that this only applies to digital service on-boarded to perform SingPass-QR-only-login.
SINGPASS
Possible values: Url scheme to launch back your mobile app after successful authentication using SingPass mobile.
Service will redirect all responses to 'redirect_uri' with additional parameters added as response results. Expected parameters include:
- code: this is the authorisation code you will use when calling the token endpoint
- state: this should be the same state passed in your initial URL.
- error: if there are any errors encountered, the error code will be given in this parameter.
- '500' - Unknown or other server side errors.
- '503' - MyInfo under maintenance. Error description will also be given in error_description parameter.
- 'access_denied' - When user did not give consent, refer to error_description parameter for the reason.
- error_description: if error is 'access_denied' i.e. user did not give consent, the description will be 'Resource Owner did not authorize the request'.
Note: If user closes the browser window prematurely, there will be no callback to the 'redirect_uri'. Therefore it is important for you to check the 'state' to verify that the transaction is the same.
function callAuthoriseApi() {
var authoriseUrl = authApiUrl + "?client_id=" + clientId +
"&attributes=" + attributes +
"&purpose=" + purpose +
"&state=" + state +
"&redirect_uri=" + redirectUrl;
window.location = authoriseUrl;
}
Service will redirect all responses to 'redirect_uri' with additional parameters added as response results. Expected parameters include:
- code: this is the authorisation code you will use when calling the token endpoint
- state: this should be the same state passed in your initial URL.
- error: if there are any errors encountered, the error code will be given in this parameter.
- '500' - Unknown or other server side errors.
- '503' - MyInfo under maintenance. Error description will also be given in error_description parameter.
- 'access_denied' - When user did not give consent, refer to error_description parameter for the reason.
- error_description: if error is 'access_denied' i.e. user did not give consent, the description will be 'Resource Owner did not authorize the request'.
Note: If user closes the browser window prematurely, there will be no callback to the 'redirect_uri'. Therefore it is important for you to check the 'state' to verify that the transaction is the same.
No content
This API generates an access token when presented with a valid authcode obtained from the Authorise API. This token can then be used to request for the user's data that were consented.
Add authorization token constructed containing the RSA digital signature of the base string. Refer to https://api.singpass.gov.sg/library/myinfo/developers/tutorial3 on how this token should be generated.
Note: This header is not required when calling Sandbox API.
The authcode given by the authorise API.
Grant type for getting token (default "authorization_code")
authorization_code
Secret key given to your application during onboarding.
Unique ID for your application.
Application's callback URL.
Identifier that represents the user's session with the client, provided earlier during the authorise API call.
OK.
Returning a JSON object which contains the authorization access token (JWT) that will be used to retrieve the data from MyInfo.
Possible scenarios:
- Same authcode in the body is being re-used. We do not allow same authcode being used in multiple calls. Ensure that authcode is not repeated.
- AuthCode error - missing, invalid, expired, revoked
Unauthorized.
Possible scenarios:
- No security header given (HTTP 'Authorization' header)
- Invalid App ID used. Digital service is not registered with MyInfo
- Invalid client secret used.
- The timestamp of server is not synchronised. Check timestamp of server.
- The value of the nonce in the authorisation header was deemed to be repeated. Check that the nonce is not re-used
- Ensure HTTP 'Authorization' header to be 'PKI_SIGN'
- Signature incorrect - Verify your signature by using our signature verifier tool and ensure correct key is used to sign the base string.
- Ensure that base string contains all parameters required
- Ensure attributes in base string are separate by comma(,), and not %2C
- Ensure that correct key is used to sign the base string
- Ensure that HTTP call is made with the same query/body parameters used to formulate the base string.
- Ensure the base string contains the following:
- HTTP GET method(in uppercase)
- API (e.g. https://..)
- These parameters: * app_id * nonce * signature * signature_method * timestamp
Forbidden
Possible scenarios:
- Incorrect API URL used. Refer to tutorial for the correct API URL(test/production)
Unexpected error. Check response body for actual error.
// function to prepare request for TOKEN API
function createTokenRequest(code) {
var cacheCtl = "no-cache";
var contentType = "application/x-www-form-urlencoded";
var method = "POST";
var request = null;
// preparing the request with header and parameters
// assemble params for Token API
var strParams = "grant_type=authorization_code" +
"&code=" + code +
"&redirect_uri=" + _redirectUrl +
"&client_id=" + _clientId +
"&client_secret=" + _clientSecret;
var params = querystring.parse(strParams);
// assemble headers for Token API
var strHeaders = "Content-Type=" + contentType + "&Cache-Control=" + cacheCtl;
var headers = querystring.parse(strHeaders);
// Sign request and add Authorization Headers
var authHeaders = generateAuthorizationHeader(
_tokenApiUrl,
params,
method,
contentType,
_authLevel,
_clientId,
_privateKeyContent,
_clientSecret
);
if (!_.isEmpty(authHeaders)) {
_.set(headers, "Authorization", authHeaders);
}
var request = restClient.post(_tokenApiUrl);
// Set headers
if (!_.isUndefined(headers) && !_.isEmpty(headers))
request.set(headers);
// Set Params
if (!_.isUndefined(params) && !_.isEmpty(params))
request.send(params);
return request;
}
{
"access_token": {
"sub": "text",
"scope": "text",
"nbf": "text",
"iss": "text",
"txnid": "text",
"client": {
"client_id": "STG2-MYINFO-SELF-TEST",
"client_name": "Myinfo Self Test App",
"entity_uen": "T16GB0002G",
"entity_name": "GovTech"
},
"subentity": {
"subclient_id": "text",
"subclient_name": "text",
"entity_name": "text",
"entity_uen": "text",
"whitelist": true
},
"expires_in": "text",
"iat": "text",
"exp": "text",
"realm": "text",
"aud": "text",
"jti": "text",
"cnf": {
"jkt": "text"
},
"jku": "text",
"epk": {
"use": "enc",
"alg": "ECDH-ES+A256KW",
"kty": "EC",
"kid": "M-JXqh0gh1GGUUdzNue3IUDyUiagqjHathnscUk2nS8",
"crv": "P-256",
"x": "qrR8PAUO6fDouV-6mVdix5IyrVMtu0PVS0nOqWBZosA",
"y": "6xSbySYW6ke2V727TCgSOPiH4XSDgxFCUrAAMSbl9tI"
}
},
"token_type": "Bearer",
"expires_in": 1,
"scope": "text"
}
This API returns user's data from MyInfo when presented with a valid access token obtained from the Token API.
Note: Null value indicates that an attribute is unavailable.
Identifier of user obtained from 'sub' attribute in access token. May be UINFIN or UUID.
9E9B2260-47B8-455B-89B5-C48F4DB98322
Transaction ID from requesting digital services for cross referencing.
Comma separated list of attributes requested. Possible attributes are listed in the scopes of the OAuth2 Security Schema above.
name,hanyupinyinname
Unique ID for your application.
STG-180099999K-TEST01
UEN of SaaS partner's client that will be receiving the person data.
180099736H
Add authorization token constructed containing the RSA digital signature of the base string. Refer to https://api.singpass.gov.sg/library/myinfo/developers/tutorial3 on how this token should be generated. Also include the access token (JWT) from /token API in your header prefixed with 'Bearer'.
Note: Only the Bearer token is required when calling Sandbox API.
OK.
Note:
- Response Content-Type will be 'application/jose', which is a JSON object conforming to the JWE standard (https://tools.ietf.org/html/rfc7516).
- Response contents are first signed, then encrypted. In order to access the data, your application should do the following steps in order:
- Decrypt the payload with your application's private key.
- Validate the decrypted payload signature with our public key.
- After doing the above steps, your application will be able to extract the payload in JSON format.
Person instance's details
Unauthorized.
Possible scenarios:
- No security header given (HTTP 'Authorization' header)
- Invalid App ID used. Digital service is not registered with MyInfo
- The timestamp of server is not synchronised. Check timestamp of server.
- The value of the nonce in the authorisation header was deemed to be repeated. Check that the nonce is not re-used
- Ensure HTTP 'Authorization' header to be 'PKI_SIGN'
- Signature incorrect - Verify your signature by using our signature verifier tool and ensure correct key is used to sign the base string.
- Ensure that base string contains all parameters required
- Ensure attributes in base string are separate by comma(,), and not %2C
- Ensure that correct key is used to sign the base string
- Ensure that HTTP call is made with the same query/body parameters used to formulate the base string.
- Ensure the base string contains the following:
- HTTP GET method(in uppercase)
- API (e.g. https://..)
- These parameters: * app_id * nonce * signature * signature_method * timestamp
- The requested 'sub' does not match the identifier of the person who logged in
- Requested attributes do not match the attributes consented by person. This happens if the list of attributes in your request are different from the attributes specified when calling the token API.
Details will be given in the error object returned.
Forbidden
Possible scenarios:
- Incorrect API URL used. Refer to tutorial for the correct API URL(test/production)
- Request contains attributes not allowable for the digital service.
Not Found.
Possible scenarios.
- Missing MyInfo profile due to UIN/FIN accessing his MyInfo account less than a day after SingPass account activation.
Unexpected error. Check response body for actual error.
// function to prepare request for PERSON API
function createPersonRequest(sub, validToken) {
var url = _personApiUrl + "/" + sub + "/";
var cacheCtl = "no-cache";
var method = "GET";
var request = null;
// assemble params for Person API
var strParams = "client_id=" + _clientId +
"&attributes=" + _attributes;
var params = querystring.parse(strParams);
// assemble headers for Person API
var strHeaders = "Cache-Control=" + cacheCtl;
var headers = querystring.parse(strHeaders);
var authHeaders;
// Sign request and add Authorization Headers
authHeaders = generateAuthorizationHeader(
url,
params,
method,
"", // no content type needed for GET
_authLevel,
_clientId,
_privateKeyContent,
_clientSecret
);
if (!_.isEmpty(authHeaders)) {
_.set(headers, "Authorization", authHeaders + ",Bearer " + validToken);
}
else {
// NOTE: include access token in Authorization header as "Bearer " (with space behind)
_.set(headers, "Authorization", "Bearer " + validToken);
}
// invoke person API
var request = restClient.get(url);
// Set headers
if (!_.isUndefined(headers) && !_.isEmpty(headers))
request.set(headers);
// Set Params
if (!_.isUndefined(params) && !_.isEmpty(params))
request.query(params);
return request;
}
{
"partialuinfin": {
"value": "*****111D",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"uinfin": {
"value": "S1111111D",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"name": {
"value": "TAN XIAO HUI",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"hanyupinyinname": {
"value": "CHEN XIAO HUI",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"aliasname": {
"value": "TRICIA TAN XIAO HUI",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"hanyupinyinaliasname": {
"value": "TRICIA CHEN XIAO HUI",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"marriedname": {
"value": "",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"sex": {
"code": "F",
"desc": "FEMALE",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"race": {
"code": "CN",
"desc": "CHINESE",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"secondaryrace": {
"code": "EU",
"desc": "EURASIAN",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"dialect": {
"code": "SG",
"desc": "SWISS GERMAN",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"nationality": {
"code": "SG",
"desc": "SINGAPORE CITIZEN",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"dob": {
"value": "1958-05-17",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"birthcountry": {
"code": "SG",
"desc": "SINGAPORE",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"residentialstatus": {
"code": "C",
"desc": "CITIZEN",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"passportnumber": {
"value": "E35463874W",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"passportexpirydate": {
"value": "2020-01-01",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"regadd": {
"type": "SG",
"block": {
"value": "548"
},
"building": {
"value": ""
},
"floor": {
"value": "09"
},
"unit": {
"value": "128"
},
"street": {
"value": "BEDOK NORTH AVENUE 1"
},
"postal": {
"value": "460548"
},
"country": {
"code": "SG",
"desc": "SINGAPORE"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"housingtype": {
"code": "123",
"desc": "TERRACE HOUSE",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"hdbtype": {
"code": "112",
"desc": "2-ROOM FLAT (HDB)",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"hdbownership": [
{
"noofowners": {
"value": 2
},
"address": {
"type": "SG",
"block": {
"value": "548"
},
"building": {
"value": ""
},
"floor": {
"value": "09"
},
"unit": {
"value": "128"
},
"street": {
"value": "BEDOK NORTH AVENUE 1"
},
"postal": {
"value": "460548"
},
"country": {
"code": "SG",
"desc": "SINGAPORE"
}
},
"hdbtype": {
"code": "112",
"desc": "2-ROOM FLAT (HDB)"
},
"leasecommencementdate": {
"value": "2008-06-13"
},
"termoflease": {
"value": 99
},
"dateofpurchase": {
"value": "2008-06-13"
},
"dateofownershiptransfer": {
"value": "2018-06-13"
},
"loangranted": {
"value": 310000.01
},
"originalloanrepayment": {
"value": 25
},
"balanceloanrepayment": {
"years": {
"value": 2
},
"months": {
"value": 6
}
},
"outstandingloanbalance": {
"value": 50000.01
},
"monthlyloaninstalment": {
"value": 1000.01
},
"outstandinginstalment": {
"value": 1000.01
},
"purchaseprice": {
"value": 1000.01
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
}
],
"ownerprivate": {
"value": false,
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"email": {
"value": "[email protected]",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"mobileno": {
"prefix": {
"value": "+"
},
"areacode": {
"value": "65"
},
"nbr": {
"value": "66132665"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"marital": {
"code": "2",
"desc": "MARRIED",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"marriagecertno": {
"value": "123456789012345",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"countryofmarriage": {
"code": "SG",
"desc": "SINGAPORE",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"marriagedate": {
"value": "2007-01-01",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"divorcedate": {
"value": "",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"childrenbirthrecords": [
{
"birthcertno": {
"value": "S5562882C"
},
"name": {
"value": "Jo Tan Pei Ni"
},
"hanyupinyinname": {
"value": "Cheng Pei Ni"
},
"aliasname": {
"value": ""
},
"hanyupinyinaliasname": {
"value": ""
},
"marriedname": {
"value": ""
},
"sex": {
"code": "F",
"desc": "FEMALE"
},
"race": {
"code": "CN",
"desc": "CHINESE"
},
"secondaryrace": {
"code": "",
"desc": ""
},
"dialect": {
"code": "HK",
"desc": "HOKKIEN"
},
"lifestatus": {
"code": "D",
"desc": "DECEASED"
},
"dob": {
"value": "2011-09-10"
},
"tob": {
"value": "0901"
},
"vaccinationrequirements": [
{
"requirement": {
"code": "1M3D",
"desc": "MINIMUM VACCINATION REQUIREMENT FOR PRESCHOOL"
},
"fulfilled": {
"value": true
}
}
],
"sgcitizenatbirthind": {
"value": "Y"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
}
],
"sponsoredchildrenrecords": [
{
"nric": {
"value": "S5562882C"
},
"name": {
"value": "Jo Tan Pei Ni"
},
"hanyupinyinname": {
"value": "Cheng Pei Ni"
},
"aliasname": {
"value": ""
},
"hanyupinyinaliasname": {
"value": ""
},
"marriedname": {
"value": ""
},
"sex": {
"code": "F",
"desc": "FEMALE"
},
"race": {
"code": "CN",
"desc": "CHINESE"
},
"secondaryrace": {
"code": "",
"desc": ""
},
"dialect": {
"code": "HK",
"desc": "HOKKIEN"
},
"dob": {
"value": "2011-09-10"
},
"birthcountry": {
"code": "SG",
"desc": "SINGAPORE"
},
"lifestatus": {
"code": "A",
"desc": "ALIVE"
},
"residentialstatus": {
"code": "C",
"desc": "Citizen"
},
"nationality": {
"code": "SG",
"desc": "SINGAPORE CITIZEN"
},
"scprgrantdate": {
"value": "2015-06-13"
},
"vaccinationrequirements": [
{
"requirement": {
"code": "1M3D",
"desc": "MINIMUM VACCINATION REQUIREMENT FOR PRESCHOOL"
},
"fulfilled": {
"value": true
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
}
],
"occupation": {
"value": "",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"employment": {
"value": "ALPHA",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"passtype": {
"code": "RPass",
"desc": "Work Permit",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"passstatus": {
"value": "Live",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"passexpirydate": {
"value": "2022-12-31",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"employmentsector": {
"value": "MANUFACTURING",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"vehicles": {
"0": {
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
}
},
"drivinglicence": {
"comstatus": {
"code": "Y",
"desc": "ELIGIBLE"
},
"totaldemeritpoints": {
"value": 0
},
"suspension": {
"startdate": {
"value": ""
},
"enddate": {
"value": ""
}
},
"disqualification": {
"startdate": {
"value": ""
},
"enddate": {
"value": ""
}
},
"revocation": {
"startdate": {
"value": ""
},
"enddate": {
"value": ""
}
},
"pdl": {
"validity": {
"code": "V",
"desc": "VALID"
},
"expirydate": {
"value": "2020-06-15"
},
"classes": [
{
"class": {
"value": "2A"
}
},
{
"class": {
"value": "3A"
}
}
]
},
"qdl": {
"validity": {
"code": "V",
"desc": "VALID"
},
"expirydate": {
"value": "2020-06-15"
},
"classes": [
{
"class": {
"value": "2A"
},
"issuedate": {
"value": "2018-06-06"
}
},
{
"class": {
"value": "3A"
},
"issuedate": {
"value": "2018-06-06"
}
}
]
},
"photocardserialno": {
"value": "115616"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"academicqualifications": {
"transcripts": [
{
"name": {
"value": "SINGAPORE-CAMBRIDGE GENERAL CERTIFICATE OF EDUCATION ORDINARY LEVEL"
},
"yearattained": {
"value": "2018"
},
"results": [
{
"subject": {
"value": "English Language"
},
"level": {
"value": "Ordinary"
},
"grade": {
"value": "A"
},
"subsubject": {
"value": "SPECIAL PAPER"
},
"subgrade": {
"value": "One"
}
}
],
"explanatorynotes": {
"value": "text"
}
}
],
"certificates": [
{
"name": {
"value": "nus.opencert"
},
"content": {
"value": "text"
},
"opencertificate": {
"id": {
"value": 100000000343840
},
"primary": {
"value": true
}
},
"opencertificateindicator": {
"value": true
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"merdekagen": {
"eligibility": {
"value": true
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"pioneergen": {
"eligibility": {
"value": true
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"noa-basic": {
"amount": {
"value": 100000.01
},
"yearofassessment": {
"value": "2018"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"noa": {
"amount": {
"value": 100000.01
},
"yearofassessment": {
"value": "2018"
},
"employment": {
"value": 100000.01
},
"trade": {
"value": 0
},
"rent": {
"value": 0
},
"interest": {
"value": 0
},
"taxclearance": {
"value": "N"
},
"category": {
"value": "ORIGINAL"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"noahistory-basic": {
"noas": [
{
"amount": {
"value": 100000.01
},
"yearofassessment": {
"value": "2018"
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"noahistory": {
"noas": [
{
"amount": {
"value": 100000.01
},
"yearofassessment": {
"value": "2018"
},
"employment": {
"value": 100000.01
},
"trade": {
"value": 0
},
"rent": {
"value": 0
},
"interest": {
"value": 0
},
"taxclearance": {
"value": "N"
},
"category": {
"value": "ORIGINAL"
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfcontributions": {
"history": [
{
"date": {
"value": "2016-12-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2016-11"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2016-12-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2016-12"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2016-12-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2016-12"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-01-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2016-12"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-01-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-01"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-01-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-01"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-02-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-01"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-02-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-02"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-02-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-02"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-03-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-02"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-03-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-03"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-03-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-03"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-04-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-03"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-04-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-04"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-04-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-04"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-05-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-04"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-05-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-05"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-05-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-05"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-06-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-05"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-06-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-06"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-06-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-06"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-07-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-06"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-07-12"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-07"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-07-21"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-07"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-08-01"
},
"amount": {
"value": 500
},
"month": {
"value": "2017-07"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"date": {
"value": "2017-08-12"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-08"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-08-21"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-08"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-09-01"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-08"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-09-12"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-09"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-09-21"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-09"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-10-01"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-09"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-10-12"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-10"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-10-21"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-10"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-11-01"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-10"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-11-12"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-11"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-11-21"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-11"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-12-01"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-11"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-12-12"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-12"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2017-12-21"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-12"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2018-01-01"
},
"amount": {
"value": 750
},
"month": {
"value": "2017-12"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2018-01-12"
},
"amount": {
"value": 750
},
"month": {
"value": "2018-01"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"date": {
"value": "2018-01-21"
},
"amount": {
"value": 750
},
"month": {
"value": "2018-01"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfemployers": {
"history": [
{
"month": {
"value": "2016-11"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2016-12"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2016-12"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2016-12"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-01"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-01"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-01"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-02"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-02"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-02"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-03"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-03"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-03"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-04"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-04"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-04"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-05"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-05"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-05"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-06"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-06"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-06"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-07"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-07"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-07"
},
"employer": {
"value": "Crystal Horse Invest Pte Ltd"
}
},
{
"month": {
"value": "2017-08"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-08"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-08"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-09"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-09"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-09"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-10"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-10"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-10"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-11"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-11"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-11"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-12"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-12"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2017-12"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2018-01"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
},
{
"month": {
"value": "2018-01"
},
"employer": {
"value": "Delta Marine Consultants PL"
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfbalances": {
"ma": {
"value": 11470.71,
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"oa": {
"value": 1581.48,
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"sa": {
"value": 21967.09,
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"ra": {
"value": 0.01,
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfhousingwithdrawal": {
"withdrawaldetails": [
{
"address": {
"type": "SG",
"block": {
"value": "548"
},
"building": {
"value": ""
},
"floor": {
"value": "09"
},
"unit": {
"value": "128"
},
"street": {
"value": "BEDOK NORTH AVENUE 1"
},
"postal": {
"value": "460548"
},
"country": {
"code": "SG",
"desc": "SINGAPORE"
}
},
"accruedinterestamt": {
"value": 1581.48
},
"monthlyinstalmentamt": {
"value": 1196.09
},
"principalwithdrawalamt": {
"value": 2897.01
},
"totalamountofcpfallowedforproperty": {
"value": 10000.01
}
}
],
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfhomeprotectionscheme": {
"coverage": {
"value": true
},
"premium": {
"value": 100.01
},
"shareofcover": {
"value": 20
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfdependantprotectionscheme": {
"coverage": {
"value": true
},
"insurercode": {
"value": "9GEL"
},
"sumassuredamount": {
"value": 70000
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"cpfinvestmentscheme": {
"sdsnetshareholdingqty": {
"value": 1360,
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"account": {
"agentbankcode": {
"value": "OCBC"
},
"invbankacctno": {
"value": "098-26644-4"
},
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
},
"saqparticipationstatus": {
"code": "X",
"desc": "Participated",
"classification": "C",
"source": "1",
"lastupdated": "2019-03-26"
}
}
}
Last updated
Was this helpful?