var coreService = gclClient.core();
core.readersCardAvailable(callback);
This function call returns:
{
"data": [
{
"card": {
"atr": "3B67000000000000009000",
"description": [
"Axa Bank (Belgium) Mastercard Gold / Axa Bank Belgium",
"MisterCash & Proton card",
"VISA Card (emitted by Bank Card Company - Belgium)"
]
},
"id": "707e7a6e449f2250",
"name": "VASCO DIGIPASS 870",
"pinpad": true
}
],
"success": true
}
We notice that a card object is available in the response in the context of a detected reader.
The reader in the example above is VASCO DIGIPASS 870, has pin-pad capabilities, and there is a card detected with given ATR and some descriptions.
An ATR (Answer To Reset) identifies the type of a smart-card.
The reader, has a unique ID, reader_id; this reader_id must be used in order to request functionalities for the EMV card.
This must be done upon instantiation of the EMV container:
var emv = gclClient.emv(reader_id);
All methods for emv will use the selected reader - identified by the reader_id.
On some applications there is an issuer public key certificate present. The aid parameter indicates which application you want to use, this can be fetched using the applications endpoint.
// Application ID can be retrieved with the Applications endpoint
var aid = "..."
gclClient.emv(reader_id).issuerPublicKeyCertificate(aid, callback);
On some applications there is an icc public key certificate present. The aid parameter indicates which application you want to use, this can be fetched using the applications endpoint.
// Application ID can be retrieved with the Applications endpoint
var aid = "..."
gclClient.emv(reader_id).iccPublicKeyCertificate(aid, callback);
When the web or native application is responsible for showing the password input, the following request is used to verify a card holder PIN:
var data = {
"pin": "...."
}
gclClient.emv().verifyPin(data, callback);
Response:
{
"success": true
}
Verify PIN with pin-pad
When the pin entry is done on the pin-pad, the following request is used to verify a given PIN:
var data = {}
gclClient.emv().verifyPin(data, callback);
Response:
{
"success": true
}
Verify PIN - retries left
After an unsuccessful PIN verification, the error code indicates the number of retries left. For example, when executing:
$("#buttonValidate").on('click', function () {
var _body={};
_body.pin = $("#psw").val(); //only when no pin-pad available
var emv = connector.emv(reader_id);
emv.verifyPin(_body, validationCallback);
});
The following error message will be returned when PIN is wrong:
Note that, when the user has at least one retry left, entering a correct PIN resets the PIN retry status.
Code
Description
103
Warning: the user can try twice more to verify his PIN
104
Warning: the user has only 1 retry left
105
Error: the PIN is blocked
Error Handling
Error Object
The functions specified are asynchronous and always need a callback function.
The callback function will reply with a data object in case of success, or with an error object in case of an error. An example callback:
The constructor for the EMV expect as the parameter to be a valid reader-ID. A reader-ID can be obtained from the exposed core functionality, for more information see .
Core services responds with available card-readers, available card in a card-reader, etc.
For example:
In order to get all connected card-readers, with available cards: