PreAuthorization Transaction

In this section you will learn how to process a PreAuthorization transaction

PreAuthorization Overview

A PreAuthorization transaction enables a merchant to request authorization of the transaction by the acquirer and, if the transaction is approved, then immediately require the capture of the transaction amount (debit the cardholder's account) by including the transaction for settlement.

How to process a PreAuthorization IccTransactionRequest message

The merchant's system sends a PreAuthorization IccTransactionRequest message to ANYpay POS which interacts with the PIN Entry Device. Section IccTransactionRequest Element describes the elements required to build an IccTransactionRequest message.

📘

Key elements of an IccTransactionRequest message

AuthorizationConnectionType MUST be set to [OnlineAuthorization]
TransactionType MUST be set to [PreAuthorization]

An example of a PreAuthorization IccTransactionRequest message can be seen below.

<?xml version="1.0" encoding="utf-16"?>
<IccTransactionRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://servebase.com/2009/06/pedframework">
  <TransactionConfig>
    <CustomerCode>PXP</CustomerCode>
    <Site>PXP000000001</Site>
    <Culture>en</Culture>
    <Workstation>001</Workstation>
    <MerchantId>2100112262</MerchantId>
    <Username>PxpUser1</Username>
    <Password>PxpPassword</Password>
    <IpAddress>127.0.0.1</IpAddress>
  </TransactionConfig>
  <PedEndpointAddress>
    <EndpointAddressType>Serial</EndpointAddressType>
    <SerialEndpointAddress><ComPort>COM1</ComPort>
      <BaudRate>115200</BaudRate>
      <SerialPortParity>None</SerialPortParity>
      <DataBits>8</DataBits>
      <SerialPortStopBits>One</SerialPortStopBits
      <SerialPortHandshake>None</SerialPortHandshake>
    </SerialEndpointAddress>
  </PedEndpointAddress>          
  <AuthorizationConnectionType>OnlineAuthorization</AuthorizationConnectionType>
  <TransactionAmount currency="GBP">20.00</TransactionAmount>
  <TransactionReference>PreAuthorization</TransactionReference>
  <TransactionDateTime>2018-02-07T16:20:16.3964394+00:00</TransactionDateTime>
  <TransactionType>PreAuthorization<TransactionType>
</IccTransactionRequest>

Handling an IccTransactionResponse message

Section IccTransactionResponse Element describes the elements that are returned in an IccTransactionResponse message.

📘

Key receipt elements when processing an Ic Card Capture

When capturing an IcCard via Chip and Pin, Chip and Signature or Contactless look out for the following elements when printing your receipt.

ApplicationId The Application Identifier (AID) uniquely identifies the application on the chip

ApplicationLabel The Application Label is used to display the name of an application

PreferredName The Application Preferred Name is used to display the name of an application

PanSequenceNumber The Primary Account Number (PAN) Sequence Number identifies and differentiates cards with the same PAN

CvmResults The Cardholder Verification Method (CVM) Results indicates the results of the last CVM performed i.e. Signature Required

IccAccreditationInfo These EMV elements should only be printed on a receipt if you are in certification mode

An example of an IccTransactionResponse message for a PreAuthorization IccTransactionRequest can be seen below.

<?xml version="1.0" encoding="utf-16"?>
<IccTransactionResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://servebase.com/2009/06/pedframework">
  <Language>en</Language>
  <ResponseCode>Authorised</ResponseCode>
  <FaultResponseCode>0</FaultResponseCode>
  <ResponseMessage>APPROVAL</ResponseMessage>
  <ReceiptInfo xsi:type="IccReceiptInfo">
    <CardNumber>541333******0185</CardNumber>
    <ExpiryDate year="49" month="12" />
    <StartDate year="96" month="12" />
    <TransactionAmount currency="GBP">15.00</TransactionAmount>
    <TransactionReference>PreAuthorization</TransactionReference>
    <PreAuthTransactionReference>PreAuthorization</PreAuthTransactionReference>
    <MerchantId>2100112262</MerchantId>
    <TerminalId>210011226201</TerminalId>
    <CardScheme code="MSC" creditDebitIndicator="CREDIT">Mastercard</CardScheme>
    <CaptureMethod>Icc</CaptureMethod>
    <Dcc xsi:nil="true" />
    <Signature>
      <Format>Bitmap</Format>
    </Signature>
    <BelowSignatureLimit>false</BelowSignatureLimit>
    <CardHolderName>RDIR 03</CardHolderName>
    <BalanceOnCard xsi:nil="true" />
    <AuthorizedTransactionAmount currency="GBP">15.00</AuthorizedTransactionAmount>
    <ApplicationId>A0000000041010</ApplicationId>
    <ApplicationLabel>MasterCard</ApplicationLabel>
    <PreferredName>Mastercard</PreferredName>
    <PanSequenceNumber>00</PanSequenceNumber>
    <CvmResults>410302</CvmResults>
    <TransactionDateTime>2018-02-14T16:44:10.3966555+00:00</TransactionDateTime>
    <TransactionType>PreAuthorization</TransactionType>
    <AuthorisationResponseCode>3030</AuthorisationResponseCode>
    <IccAccreditationInfo>
      <AuthorisationRequestCryptogram>FADED9E27378BB53</AuthorisationRequestCryptogram>
      <ApplicationInterchangeProfile>5800</ApplicationInterchangeProfile>
      <ApplicationTransactionCounter>0003</ApplicationTransactionCounter>
      <UnpredictableNumber>C4B75694</UnpredictableNumber>
      <TerminalVerificationResult>420000E000</TerminalVerificationResult>
      <CryptogramTransactionType>00</CryptogramTransactionType>
      <CryptogramInformationData>80</CryptogramInformationData>
      <ApplicationResponseCryptogram>5800</ApplicationResponseCryptogram>
      <POSEntryMode1>3</POSEntryMode1>
      <POSEntryMode2>2</POSEntryMode2>
      <ApplicationUsageControl>FF00</ApplicationUsageControl>
      <ApplicationVersionNumber>0002</ApplicationVersionNumber>
      <TerminalApplicationVersionNumber>0002</TerminalApplicationVersionNumber>
      <TransactionStatusInformation>E800</TransactionStatusInformation>
      <TerminalType>22</TerminalType>
      <TerminalCapabilities>E0F8C8</TerminalCapabilities>
      <IssuerActionCodesOnline>F0E064F800</IssuerActionCodesOnline>
      <IssuerActionCodesDenial>0010880000</IssuerActionCodesDenial>
      <IssuerActionCodesDefault>F040642000</IssuerActionCodesDefault>
      <IssuerApplicationData>020000000000</IssuerApplicationData>
      <TerminalCountryCode>0826</TerminalCountryCode>
      <TerminalCurrencyNumber>0826</TerminalCurrencyNumber>
    </IccAccreditationInfo>
  </ReceiptInfo>
  <Token>a9b808a8-a578-4a42-a51a-1f969e1d8580</Token>
  <TokenisedCardNumber>9946000000000150185</TokenisedCardNumber>
  <AuthorityCode>032702</AuthorityCode>
  <AuthorityMethod>Online</AuthorityMethod>
  <TfsEligible>false</TfsEligible>
  <PedInfo>
    <SerialNumber>325-283-122</SerialNumber>
  </PedInfo>
</IccTransactionResponse
<?xml version="1.0" encoding="utf-16"?>
<IccTransactionResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://servebase.com/2009/06/pedframework">
  <Language>en</Language>
  <ResponseCode>Declined</ResponseCode>
  <FaultResponseCode>0</FaultResponseCode>
  <ResponseMessage>DECLINED</ResponseMessage>
  <ReceiptInfo xsi:type="IccReceiptInfo">
    <CardNumber>541333******0185</CardNumber>
    <ExpiryDate year="49" month="12" />
    <StartDate year="96" month="12" />
    <TransactionAmount currency="GBP">15.00</TransactionAmount>
    <TransactionReference>PreAuthorization</TransactionReference>
    <PreAuthTransactionReference>PreAuthorization</PreAuthTransactionReference>
    <MerchantId>2100112262</MerchantId>
    <TerminalId>210011226201</TerminalId>
    <CardScheme code="MSC" creditDebitIndicator="CREDIT">Mastercard</CardScheme>
    <CaptureMethod>Icc</CaptureMethod>
    <Dcc xsi:nil="true" />
    <Signature>
      <Format>Bitmap</Format>
    </Signature>
    <BelowSignatureLimit>false</BelowSignatureLimit>
    <CardHolderName>RDIR 03</CardHolderName>
    <BalanceOnCard xsi:nil="true" />
    <AuthorizedTransactionAmount currency="GBP">15.00</AuthorizedTransactionAmount>
    <ApplicationId>A0000000041010</ApplicationId>
    <ApplicationLabel>MasterCard</ApplicationLabel>
    <PreferredName>Mastercard</PreferredName>
    <PanSequenceNumber>00</PanSequenceNumber>
    <CvmResults>410302</CvmResults>
    <TransactionDateTime>2018-02-14T16:44:10.3966555+00:00</TransactionDateTime>
    <TransactionType>PreAuthorization</TransactionType>
    <AuthorisationResponseCode>3035</AuthorisationResponseCode>
    <IccAccreditationInfo>
      <AuthorisationRequestCryptogram>FADED9E27378BB53</AuthorisationRequestCryptogram>
      <ApplicationInterchangeProfile>5800</ApplicationInterchangeProfile>
      <ApplicationTransactionCounter>0003</ApplicationTransactionCounter>
      <UnpredictableNumber>C4B75694</UnpredictableNumber>
      <TerminalVerificationResult>420000E000</TerminalVerificationResult>
      <CryptogramTransactionType>00</CryptogramTransactionType>
      <CryptogramInformationData>80</CryptogramInformationData>
      <ApplicationResponseCryptogram>5800</ApplicationResponseCryptogram>
      <POSEntryMode1>3</POSEntryMode1>
      <POSEntryMode2>2</POSEntryMode2>
      <ApplicationUsageControl>FF00</ApplicationUsageControl>
      <ApplicationVersionNumber>0002</ApplicationVersionNumber>
      <TerminalApplicationVersionNumber>0002</TerminalApplicationVersionNumber>
      <TransactionStatusInformation>E800</TransactionStatusInformation>
      <TerminalType>22</TerminalType>
      <TerminalCapabilities>E0F8C8</TerminalCapabilities>
      <IssuerActionCodesOnline>F0E064F800</IssuerActionCodesOnline>
      <IssuerActionCodesDenial>0010880000</IssuerActionCodesDenial>
      <IssuerActionCodesDefault>F040642000</IssuerActionCodesDefault>
      <IssuerApplicationData>020000000000</IssuerApplicationData>
      <TerminalCountryCode>0826</TerminalCountryCode>
      <TerminalCurrencyNumber>0826</TerminalCurrencyNumber>
    </IccAccreditationInfo>
  </ReceiptInfo>
  <Token>a9b808a8-a578-4a42-a51a-1f969e1d8580</Token>
  <TokenisedCardNumber>9946000000000150185</TokenisedCardNumber>
  <AuthorityCode xsi:nil="true" />
  <AuthorityMethod>Online</AuthorityMethod>
  <TfsEligible>false</TfsEligible>
</IccTransactionResponse