Transactions initiated from POS device

Primary transactions

Request types

For primary transactions initiated from a physical device (terminal) the following request types need to be used:

  • PaymentTerminalSaleTransaction
  • PaymentTerminalCreditTransaction,
  • PaymentTerminalPreAuthTransaction

For secondary transactions such as linked refunds and reversals the standard secondary request types have to be used. Alternatively, you can use the order ID to perform a secondary transaction.

📘

Important note

Sensitive data such as card number and PIN must be sent encrypted to our gateway. For more information about encryption as well as MAC'ing please refer to: link

Relevant elements

Transactions initiated from a physical device must contain additional data elements:

terminalRequestData

ElementDescriptionPresence
posEntryModeActual method used to enter the cardholder account number and card expiration date.Mandatory
offlineVerificationMethodThe Offline verification Method indicates what method was successfully performed on the terminal to assess the authenticity of the cardholder at POS device. Mandatory
cardholderPresentIndicatorIndicates whether the cardholder is physically present or not present during the transaction.
Default value: true
Optional
cardPresentIndicatorSpecifies if the actual payment card is present at the time of the transaction. This is typically used to differentiate between card-present and card-not-present transactions.
Default value: true
Optional
singleTapPinPerformedIndicates if single Tap Pin was performed after scheme response.
Default value false
Optional
offlineIndicatorSpecifies if the transaction was processed offline. Useful for situations where network connectivity is intermittent or unavailable.
Default value
Optional
onlineReasonThe 'onlineReason' field within the 'terminalRequestData' object specifies the reason why a card-present transaction is being processed online. The values of this field assist the processing system in understanding why the transaction is not occurring offline (i.e., directly at the terminal), enabling more accurate transaction processing and risk assessment.Optional
attendanceContextSpecifies the attendance condition during the transaction - ATTENDED if the transaction was supervised by a staff member,
Default value: ATTENDED
Optional
emvDataElectronic Verification Method data. This field is mandatory if 'posEntryMode' is either 'contactless' or 'contact'. Required EMV tags can vary per scheme.
Format: Base64 encode string.
Conditional
approvalCodeIf terminal has approved the transaction in offline mode, then 6-digit approval code (also known as authorization code) must be sent by the request.Conditional

pointOfSaleDevice

ElementDescriptionPresence
terminalProviderThe vendor that provided the terminal to merchant.Mandatory
serialNumberThe unique identifier assigned by the manufacturer to the POS device or terminal.Mandatory
softwareProviderThe entity that provides the software running on the POS device or terminal.Optional
softwareVersionThe version number of the software installed on the POS device or terminal.Optional
capabilitiessee capabilities-
modelThe specific model or version of the POS device or terminal.Mandatory

capabilities

ElementDescriptionPresence
cardholderVerificationCapabilitiesSpecifies the different capabilities the point-of-sale (POS) device or terminal has for verifying a cardholder's authenticity.Mandatory
cardReadingCapabilitiesIndicates the various methods by which the device can read card informationMandatory
terminalTypeIndicates the type of the terminal based on its functionalities and usageOptional
pinCapabilityDescribes the capability of the device to accept PIN entry for transactionsMandatory
featuresAdditional features that are available on the used POS Device.
More values to be added in the future.
Optional

paymentCard (ref as PaymentCardWithTrackData)

This object encapsulates PaymentCard data and contanis track1, track2 and track3 data.

EelementDescriptionPresence
numberPayment card number. Can also be an IBAN for Sepa Direct Debit transactions.Mandatory
expiryDateExpiry date of the used card printed on the card.Optional
securityCodeCard verification value/number.Optional
brandBrand of the useed card. Can be sent in case of dual branded card to determine the chosen brandOptional
bicBank identifier code (BIC) for Sepa Direct Debit.Optional
bankCodeBank code for Sepa Direct Debit.Optional
cardFunctionUsed to send the type of card such as CREDIT, DEBIT or PREPAIDOptional
cardholderNameName of the cardholder. Note - Only supported with request payload.Optional
bin6 or 8 digit Bank Identification Number of the used card (depending of the length of the card)Optional
last4The last 4 numbers of a payment card.Optional
One of:
track1
track2
track3
Contains the track of data encoded on the magnetic strip of the card.Optional

Response handling

For transactions initiated from a terminal the gateway sends the standardized responses.

See: link

In case of successful transaction (HTTP code 200) the response may include EMV data that was included by the issuer in the response.

ElementDescriptionPresence
emvDataIt includes the EMV data from the issuer response and it is Base64 encoded.
Tags that will be mapped to the response (if present):
8A, issuerAuthorizationResponseCode8A
91, issuerAuthenticationData91
71, issuerScriptTemplate171
72, issuerScriptTemplate272
Conditional

Besides, you would need to analyze processor.requiredActionOnTerminal in order to decide whether the customer will need to enter the PIN without new card read or enter the PIN with new card read.
More details: link

Secondary transactions

If you want to start a secondary transaction such as void (reversal), preauthorization completion (postauthorization) or return (linked refund) you can use the same endpoints as for ECOM transactions.

For secondary transactions initiated from a physical device (terminal) the following request types need to be used:

The following values can be applied be applied for secondary transactions using IPG Order ID (see: submitsecondarytransactionfromorder) or IPG Transaction ID (see: submitsecondarytransaction)

  • PostAuthTransaction
  • VoidTransaction
  • VoidPreauthTransactions
  • ReturnTransaction
  • PreAuthSecondaryTransaction

These are the minimum objects that need to be included:

  • transactionAmount.total
  • transactionAmount.currency
  • terminalRequestData
  • In case of reversal: reversalReason

ReversalReason

In case of a technical reversal (or auto void) terminal needs to include the reason for the reversal.
This reason can be sent in secondary transactions with request type 'VoidTransaction' and will get forwarded to the authorization system.

ElementDescriptionPresence
reversalReasonReason set by the terminal to cancel the referenced transaction.Conditional

Other useful information

Deferred Authorisation

In order to flag a transaction as a deferred authorisation you will need to include the object order.additionalDetails.ipgDeferredAuth into the request.


Did this page help you?
Want a quick overview?