Unlike online tokens, which are returned within the TransactionFinshedEvent
, offline tokens are returned within the CardDetailsEvent
. The offline token can be used to achieve "card in, card out" functionality such as parking sites using a customer's payment card instead of issuing a ticket. A given PAN will generate the same token across any devices within the supported devices list of this article so-long as it is injected with NMI's HMAC key.
Prerequisites
Payment Device SDK
- Requires Payment Device SDK Windows/Linux V1.9+
TMS
- 'Pause Transaction' is required. This functionality is enabled via TMS. See this article to request a TMS change if you haven't requested this already.
Device
- Creditcall has a HMAC Key which our customers use. You will need to ensure your device(s) have this HMAC Key injected by the device distributor/device manufacturer.
Card In, Card Out Process
Stage 1 - Card In
- Perform a transaction to retrieve the tokenized card details (offline token).
- This could be a pre-auth which would go online to the bank and check the card is valid (may add a small delay). This would be done using the
StartTransaction()
method. - Alternatively, use the method
GetCardDetails()
as this just reads the card details without going online to the bank and therefore is quicker.
- This could be a pre-auth which would go online to the bank and check the card is valid (may add a small delay). This would be done using the
Stage 2 - Card Out
Contact Card
- Start the transaction for an amount of zero.
- The transaction will pause after the
cardDetailsEvent
. - Update the transaction amount using the
ContinueTransaction()
method.- The amount would be calculated by the integrators backend. This is done by comparing the time the card was initially presented to the current time.
Contactless Card
- Start the transaction for an amount of zero.
- If a card is tapped, get the tokenized card details (offline token).
- Start a new transaction for the actual amount the customer should be charged.
- The amount would be calculated by the integrators backend. This is done by comparing the time the card was initially presented to the current time.
The reason why the amount cannot be changed for a contactless card is because the card has already authorised for that amount. Therefore, a second tap is required.
Supported Devices
- Ingenico RAM Devices (including the Ingenico iSelf)
- Requires minimum firmware of RAM 1608