Debit with PIN and Balance Enquiry
The merchant determines if the card is PIN based typically via a local bin list (section 17.6.4). If it is PIN based, the merchant reads in the PIN from the PED, and obtains an encrypted PINBlock.
A PIN based request is identified by the existence of a PINBlock tag. The existence of the PINBlock tag implies Track2, DeviceSerialNumber, DeviceMake and DevicePINKey is mandatory.
Account Type is 'Savings' or 'Cheque' or 'Credit' or 'NotSpecified'.
Debit with PIN
The mandatory Amount tag refers to the total transaction amount. The optional CashAmount tag is any cash portion of the transaction. Therefore, always Amount >= CashAmount.
Normal Withdrawal: CashAmount = Amount
Normal Sale: CashAmount = 0 (or not specified)
Combined Sale and Withdrawal: 0 < CashAmount < Amount
The only time the balance of a PIN based card can be increased using iVeri is by Voiding a previous transaction.
Balance Enquiry
Obtain the balance of the PIN based account in the currency of the account.
Using iVeri Enterprise, this can be prepared using the following syntax:
enterprise.prepare("Enquiry", "Balance", applicationID, mode)
Test environment for PIN cards
iVeri Test cards are available upon request. The Result Codes responded within the PIN based issuer simulator for Mode Test are as follows:
Input |
Result returned |
Void of previous transaction |
Successful [0] |
4242424242424242 or 5959595959595959 |
See below |
2121212121212121 |
Randomly returned code “3” – Hot card or code “4” - Denied |
5454545454545454 |
Code 9 - Returns an “unbale to process “ |
All other card number such as 1111222233334444 |
Returns code “14” – invalid card number |
“4242424242424242” returns the following:
PIN |
Amount & CashAmount |
Result returned |
54321 |
N/A |
Denied [4] (similar to PIN tries exceeded) |
12345 |
Amount <= CurrentBalance |
Successful [0] |
12345 |
Amount – CashAmount > CurrentBalance |
Denied [4] (Insufficient funds) |
12345 |
(Amount > CurrentBalance) and (Amount – CashAmount) <= CurrentBalance |
Approved but cash denied Warning
[21] |
Other |
N/A |
Incorrect PIN [19] |
The Current Balance for PAN 4242424242424242 for the current merchant testing is stored in memory, and is manipulated in the following manner:
Initial amount is: 10,000.00 (max balance)
Reset to max balance upon service restart
Decreased after a successful debit.
Replenished to the max balance if the CurrentBalance goes below 10.00 (min balance).
If a Void is received, then CurrentBalance is increased. Since a Void could be received after a replenishment (or service restart), CurrentBalance is forced to be less than or equal to max balance.
Determining if a card is PIN based.
A merchant determines the card is PIN based by using a local BIN list in conjunction with the Track2 information read from a card. The BINLookup download within the File Transfer mechanism (section 22) may be used to refresh a local BIN list. merchant can determine if the card is PIN based in the following manner:
The BINLookup download within the File Transfer mechanism (section 22) is used to populate a local BIN list. It can be refreshed daily.
The Track2 of the card is read within a card reader
The PAN is determined from the Track2 (see section 10.3)
The PAN is checked against the local BIN list.
If the initial digits of the card PAN is found on the BIN list then based on the IsPINCard attribute:
0 |
Prompt for PIN |
1 |
Do not prompt for PIN |
2 |
If Position #3 of the Track2 Service Code (see section 10.3.1) is 0 or 6 then Prompt for PIN, else Do not prompt for PIN |
If there is no BIN list available (or if the initial digits of the card PAN are not found on the BIN list), then:
If the PAN starts with 50, 56, 57, 58 or 6 then Prompt for PIN
Else if Position #3 of the Track2 Service Code (see section 10.3.1) is in {0,5,6,7} then Prompt for PIN
Else do not prompt for PIN.