The merchant determines if the card is PIN based typically via a local bin list. 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.
AccountType 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, remember always that 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: HotCard [3] or Denied [4] |
5454545454545454 |
randomly:
|
All other card numbers |
Invalid card number [14] |
“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] (Approve with Partial Authentication) |
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 may be used to refresh a local BIN list.
A merchant can determine if the card is PIN based in the following manner:
- The BINLookup download within the File Transfer mechanism 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
- 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 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