Skip to main content

CCCD Chip Reading and Verification via NFC

This document highlights the CCCD Chip Reading and Verification via NFC details.

Objective

The CCCD Chip Reading and Verification via NFC module extracts user information from the chip embedded in CCCD National ID(NID) card (or a Citizen ID card) and validates it against the national database.

Did you know?

Near-field communication (NFC) is a short-range wireless technology that aides communication between NFC-enabled devices in close proximity to each other.

InputOutput
The following values associated with the user's NID:
• ID Number
• Date of Birth
• Date of Expiry
The user's Personally identifiable information (PII) extracted from the national database, the associated verification status and the suggested action for the identity verification process.

You can find the details of all the output fields under the success response details section.

Prerequisites

Permissions

  1. Add Privacy - NFC Scan Usage Description key in the Info.Plist file.

  2. Add the following reader key in the Info.Plist file:

<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>com.apple.developer.nfc.readersession.iso7816.select-identifiers</string>
<string>A0000002471001</string>
<string>00000000000000</string>
</array>
  1. Under the Signing & Capabilities tab from xcodeproj, click on the + Capability button and add Near Field Communication capability

Inputs

The following table provides the details of the input parameters required for the module:

ParameterMandatory or OptionalData TypeAccepted ValuesDescription
idNumberMandatorystringA valid Vietnamese citizen identification numberThe twelve digit identification number of the user
dateOfBirthMandatorystringFormat: DD-MM-YYYYThe date of birth of the user
dateOfExpiryMandatorystringNot applicableThe date of expiry of the user's identity card

Success Responses

The following section presents the successful responses generated by the module:

The following is a success response returned when the Read Only configuration parameter for the module is set to true:

{
"status": "success",
"statusCode": "200",
"metaData": {
"requestId": "<Request_ID>",
"transactionId": "<Transaction_ID>"
},
"result": {
"details": {
"status": 200,
"requestId": "<Request_ID>",
"citizenId": "<Masked_Citizen_ID>",
"oldCitizenId": "<Masked_Old_Citizen_ID>",
"fullName": "<Full_Name>",
"dateOfBirth": "<Date_Of_Birth_in_DD-MM-YYYY_Format>",
"dateOfIssue": "<Date_Of_Issue_in_DD-MM-YYYY_Format>",
"dateOfExpiry": "<Date_Of_Expiry_in_DD-MM-YYYY_Format>",
"gender": "<Gender>",
"nationality": "<Nationality>",
"ethnicity": "<Ethnicity>",
"religion": "<Religion>",
"placeOfOrigin": "<Place_Of_Origin>",
"placeOfResidence": "<Place_Of_Residence>",
"personalIdentification": "<Personal_Identification>",
"fatherName": "<Father_Name>",
"motherName": "<Mother_Name>",
"partnerName": "<Partner_Name>",
"mrz": "<MRZ_Code>",
"faceImage": "<Base64_Encoded_Face_Image>",
"vendorSignature": "<Base64_Encoded_Vendor_Signature>"
},
"summary": {
"action": "pass",
"details": []
}
}
}

Success Response Details

The following table provides the details of the fields in a success response when the module has a Read Only configuration:

FieldTypeDescription
statusnumberThe status of the request.
requestIdstringThe request identifier for HyperVerge's internal reference
citizenIdstringThe user's 12-digit National Identification Number (NID).
oldCitizenIdstringThe user's old 9-digit National Identification Number (NID).
fullNamestringThe user's complete name (Vietnamese).
dateOfBirthstringThe date of birth in the format dd-mm-yyyy.
dateOfIssuestringThe date of issue in the format dd-mm-yyyy.
dateOfExpirystringThe date of expiry in the format dd-mm-yyyy.
genderstringThe user's gender (M: Male, F: Female).
nationalitystringThe user's nationality(default: Việt Nam).
ethnicitystringThe user's ethnicity from the 64 ethnic groups in Vietnam.
religionstringThe user's religion.
placeOfOriginstringThe user's hometown.
placeOfResidencestringThe user's living address at the time of registration.
personalIdentificationstringA personal mark of identity.
fatherNamestringThe full name of the user's father.
motherNamestringThe full name of the user's mother.
partnerNamestringThe full name of the user's spouse.
faceImagebase64The image on the Vietnam National Identification Document (NID).
mrzstringThe MRZ code of the individual's document
vendorSignaturestringThe base64-encoded vendor signature

Summary Object

The following table provides the details of the summary object relevant to both the Read and the Read and Verify configurations.

ObjectFieldExpected ValuesDescription
summaryaction

pass, fail, or manualReview

pass - The user verification is approved for further processing
fail - The user verification is rejected from further processing
manualReview - The user verification requires a manual review by a reviewer


You can find the sample responses corresponding to each of the actions under the Actions section.
detailsThe relevant code and message field-value pairsThe "details" array consists of the code and message fields in case of an error response.

Actions

The following are codes corresponding to each type of action value supported by the module.

This is the response where the application is approved for further processing.

{
"summary": {
"action": "pass",
"details": []
}
}

Error Responses

The following section contains error responses generated by the module.

{
"status": "failure",
"statusCode": 400,
"metaData": {
"requestId": "<Request_Identifier>",
"transactionId": "<Transaction_Identifier>"
},
"result": {
"summary": {
"action": "manualReview",
"details": [
{
"code": "001",
"message": "Missing parameter(s)"
}
]
},
"error": "Missing parameter(s)"
}
}

Error Response Details

An error response from the module contains a failure status, with a relevant code and error message. The following table lists all the error responses.

Status CodeError CodeMessageDescription
400001Missing parameter(s)The request has at least one missing input. Please contact the HyperVerge team for resolution
503002External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503003External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503004External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503005External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503006External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503007External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503008External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503009External source downtimeThe external vendor system is temporarily unavailable. Please try again later
400010Duplicated data in unique fieldDuplicate values were found in a field expected to be unique. Check the input and resubmit
422011Request ID mismatch for C06 validation - No data foundThe provided Request ID does not match any existing records. Verify and resubmit the correct Request ID
503012External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503013External source downtimeThe external vendor system is temporarily unavailable. Please try again later
422014Not found transaction (recheck)The requested transaction was not found. Verify the transaction details and try again
503015External source downtimeThe external vendor system is temporarily unavailable. Please try again later
422016Source API has no corresponding card data in the systemThe API could not find any matching card data for the provided input
503017External source downtimeThe external vendor system is temporarily unavailable. Please try again later
503018External source downtimeThe external vendor system is temporarily unavailable. Please try again later
500Internal Server ErrorAn unexpected error occurred on the server. Please contact the HyperVerge team for support
422020Data integrity check failedInvalid NFC data (SOD, COM, DGxx)
429Rate limit errorToo many requests were made in a short period. The limit is 200 requests per minute
106NFC permission deniedPermission to use NFC not granted
120NFC not detected on this deviceNFC not present/detected in the device
121Authentication FailureCould not read due to invalid chip
122Card got disconnectedConnection disconnected with chip during scanning
125Incomplete scanOS returns success scan status, but the data is incomplete. Available on SDK version ≥ 0.31.0

Application View

The following section showcases screens from a sample application featuring the CCCD Chip Reading and Verification via NFC module, accessible within the Applications tab of the HyperVerge dashboard.

success_read_only

A snapshot of a workflow configured with the Read configuration.

caution
  • The image only contains some of the output fields for representation. Please refer the success response details section for the complete list of supported fields.
  • The PII in the image has been masked for representation purposes.
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: