Open the Portico Developer Guide site
PosGateway Schema
CreditOfflineAuthReqBlock1Type Complex Type
PosGateway Schema : CreditOfflineAuthReqBlock1Type Complex Type
Namespace http://Hps.Exchange.PosGateway
Diagram
CPCData Element TagData Element EMVTagData Element SurchargeAmtInfo Element ShippingAmtInfo Element ConvenienceAmtInfo Element Ecommerce Element AdditionalTxnFields Element AutoSubstantiation Element LodgingData Element AllowDup Element DirectMktData Element CardHolderData Element OfflineAuthCode Element CPCReq Element GratuityAmtInfo Element Amt Element CardData Element All CreditOfflineAuthReqBlock1Type Complex Type
Overview
All
Sequence
Choice
TrackData CardDataTypeTrackData Complex Type

Track data is the full magnetic stripe data.

Note: TrackData is unique in that it has an attribute "method" that is used to indicate how the associated data was obtained.

method optional CardDataTypeTrackDataMethod Simple Type

Indicates the method by which the track data was obtained; see the associated Type enumerations for specific values supported

Note: If not provided, the method is assumed to be a typical card swipe.

ManualEntry

This is typically manually entered card data, but can be used in any case where only the card number is used rather than the full track.

All
CardNbr cardNbrType Simple Type

Card number; also referred to as Primary Account Number (PAN)

ExpMonth monthTypeExp Simple Type

Card expiration month

ExpYear Restriction of yearType Simple Type

Card expiration year

CardPresent optional booleanType Simple Type

Indicates whether or not the card was present at the time of the transaction

ReaderPresent optional booleanType Simple Type

Indicates whether or not a reader was present at the time of the transaction

CVV2 optional Restriction of cvv2Type Simple Type

CVV Number ("Card Verification Value"); 3 digits on VISA, MasterCard, Discover and UnionPay and 4 on American Express.

CVV numbers are also known as CSC numbers ("Card Security Code"), as well as CVV2 numbers, which are the same as CVV numbers, except that they have been generated by a 2nd generation process.

Note: This field is not used for EBT transactions.

CVV2Status optional cvv2Status Simple Type

Indicates why the CVV2 value was not provided; see the associated Type enumerations for specific values supported.

Note: This field is not used for EBT transactions.

TokenData

This is used when the card number from a previous transaction has been tokenized. This supports both multi-use and single-use tokens.

All
TokenValue xs:string

Multi-use or single-use token; used as a reference to a payment method for this transaction

ExpMonth optional monthType Simple Type

Card expiration month

Note: If expiration month and year are provided, they will be used for processing the transaction rather than the stored values associated with the provided token. This is for the current transaction only and will not be stored for future use.

ExpYear optional Restriction of yearType Simple Type
CardPresent optional booleanType Simple Type

Indicates whether or not the card was present at the time of the transaction

ReaderPresent optional booleanType Simple Type

Indicates whether or not a reader was present at the time of the transaction

CVV2 optional Restriction of cvv2Type Simple Type

CVV Number ("Card Verification Value"); 3 digits on VISA, MasterCard, Discover and UnionPay and 4 on American Express.

CVV numbers are also known as CSC numbers ("Card Security Code"), as well as CVV2 numbers, which are the same as CVV numbers, except that they have been generated by a 2nd generation process.

Note: This field is not used for EBT transactions.

CVV2Status optional cvv2Status Simple Type

Indicates why the CVV2 value was not provided; see the associated Type enumerations for specific values supported.

Note: This field is not used for EBT transactions.

EncryptionData optional EncryptionDataType Complex Type

If the supplied card data was encrypted, this must be supplied.

All
DataFormat optional encryptedDataFormatType Simple Type

EncryptionDataFormat is an optional field to be used for encryption Version "05" to define the encryption encoding format

EncryptionDataFormat 1 Denotes the CardData sent to PORTICO is Binary

EncryptionDataFormat 2 Denotes the CardData sent to PORTICO is ASCII

Version encryptionVersionType Simple Type

The encryption version used on the supplied data.

For PAN encryption, use version "02" or "04" for Heartland E3 encryption. This requires the client to parse the E3 MSR output. The encrypted PAN is passed in the card data element as the manual entry card number. The KTB must be provided as part of the encryption data. If sending an encrypted CVV2, use version "04" which expects the PAN and CVV2 to be encrypted.

For PAN encryption, use version "05" for TDES DUKPT encryption with and without CVV encryption. This requires the client to parse the output. The encrypted PAN is passed in the card data element as the manual entry card number. The KSN must be provided as part of the encryption data.

For track encryption, use version "01", "02", or "04" for Heartland E3 encryption. Version "01" will not require parsing and it will not require additional fields in the encryption data, but the full E3 MSR output must be passed in the card data element as track data. Version "02" and "04" requires the client to parse the E3 MSR output. The KTB must be provided as part of the encryption data. In addition, the client must parse the data specific to either encrypted track 1 or track 2 and provide this in the card data element as track data as well as supply the track number as EncryptedTrackNumber.

For track encryption, use either version "03" for AES encryption with DUKPT, or "05" for TDES encryption with DUKPT. The "03" option supports the IdTECH card readers. The "05" option will work with any device that supports TDES with DUKPT data encryption per AINSI 9.24-1. Both options require the client to parse reader output. The KSN must be provided as part of the encryption data. In addition, the client must parse the data specific to either encrypted track 1 or track 2 and provide this in the card data element as track data as well as supply the track number as EncryptedTrackNumber.

For track encryption "05" is used for TDES encryption with DUKPT. The "05" option will work with any device that supports TDES with DUKPT data encryption per ANSI 9.24-1. Both options require the client to parse reader output. The KSN must be provided as part of the encryption data. In addition, the client must parse the data specific to either encrypted track 1 or track 2 and provide this in the card data element as track data, as well as supply the track number as EncryptedTrackNumber.

EncryptedTrackNumber optional encryptedTrackNumberType Simple Type

Required for encryption version "02","03","04" and "05"; indicates which track is being supplied encrypted (i.e. "1" or "2").

KTB optional encryptionKTBType Simple Type

Required for encryption version "02" or "04"; the Key Transmission Block (KTB) used at the point of sale.

KSN optional encryptionKSNType Simple Type

Required for encryption version "03" and "05"; the Key Serial Number (KSN) used at the point of sale.

TokenRequest optional booleanType Simple Type

This is used to request the gateway to return a multi-use token for the supplied card data. If a token is provided in the card data and this flag is set, it will be echoed in the response.

TokenParameters optional TokenParametersType Complex Type

Parameters allowing the client to control aspects of how a requested multi-use token is generated.

Not Applicable for Reward Cash transactions.

All
Mapping optional TokenMappingType Simple Type

This indicates the type of token to return; see the associated Type enumerations for specific values supported.

Note: If not supplied, "CONSTANT" is assumed. This means that the same token will be returned for the same card data.

Amt amtTypeGlobal Simple Type

The amount requested for authorization; this includes all other "Info" amounts provided as part of this request.

GratuityAmtInfo optional amtTypeGlobal Simple Type

Gratuity amount information; this defines the portion of the total amount provided as part of this request that was specifically for gratuity. This is informational only and will not alter the amount processed as part of the transaction.

CPCReq optional booleanType Simple Type

This is used to request the issuer to return whether or not the supplied card is a commercial card.

Note: This is not used in offlines.

OfflineAuthCode optional authCodeType Simple Type

Authorization code obtained from the issuer outside of the gateway

All
CardHolderZip optional zipType Simple Type

Zip or postal code; see the associated Type pattern for restrictions.

Note: Canadian postal codes should be sent in the format "A0A0A0".

CardHolderPhone optional phoneType Simple Type

Phone number; see the associated Type pattern for restrictions.

CardHolderEmail optional emailType Simple Type

Email address

CardHolderLanguage optional languageIndicatorType Simple Type

CardHolder preferred language.

Note:This field is required for Canadian merchants.

DirectMktData optional DirectMktDataType Complex Type

Direct marketing data; eCommerce

All
DirectMktInvoiceNbr directMktInvoiceNbrType Simple Type

Invoice number

Note: The elements in the direct marketing data group are passed on through the settlement process.

AllowDup optional booleanType Simple Type

This is important in cases where the client processes a large number of similar transactions in a very short period of time; sending "Y" will skip duplicate checking on this transaction.

All
PrestigiousPropertyLimit optional prestigiousPropertyType Simple Type

This field is used by merchants participating in the Prestigious Lodging Program; see the associated Type enumerations for specific values supported.

Note: This field has been deprecated and should no longer be used.

NoShow optional booleanType Simple Type

Indicates that this charge is due to a "no show" on a reservation

AdvancedDepositType optional advancedDepositTypeType Simple Type

For AMEX only. Indicates the advanced deposit type; see the associated Type enumerations for specific values supported.

LodgingDataEdit optional LodgingDataEditType Complex Type

Lodging extra charge indicators; common group of elements that provide additional details specific to lodging transactions that may be required in certain situations as determined by the brands

All
FolioNumber optional folioNumberType Simple Type

Lodging system generated value used to group and manage charges during a stay

Duration optional xs:int

Duration of stay in days

The stay Duration range is from 1 to 99.

CheckInDate optional xs:date

Date of check-in

CheckOutDate optional xs:date

Date of check-out

Rate optional amtTypeGlobal Simple Type

Daily room rate

Note: This field is required by AMEX.

RoomTax optional amtTypeGlobal Simple Type

Total Room Tax Charges. For Feature Use

ExtraCharges optional ExtraChargesDataType Complex Type

Indicates the types of extra charges included in the extra charge amount information and the total transaction amount

ExtraChargeAmtInfo optional amtTypeGlobal Simple Type

Total extra charge amount information; this defines the portion of the total amount provided as part of this request that was specifically for lodging extra charges. This is informational only and will not alter the amount processed as part of the transaction.

ExtraChargeDetailAmtInfo optional ExtraChargeDetailAmtInfoDataType Complex Type

Defines the individual amounts of extra charges included in the extra charge amount information and the total transaction amount.

ExtraChargesDetailAmountInfo can be used by Asia Pacific merchants only.

PreferredCustomer optional booleanType Simple Type

For MasterCard only. Indicates whether or not the customer has a preferred status.

AutoSubstantiation optional AutoSubstantiationType Complex Type

Auto substantiation data; used for healthcare

All
FirstAdditionalAmtInfo AdditionalAmtType Complex Type

First additional amount information; this defines the portion of the total amount provided as part of this request that was specifically for healthcare charges. This will not alter the amount processed as part of the transaction.

Note: The first additional amount must be of type TOTAL_HEALTHCARE_AMT. This first amount includes the total of the over-the-counter (OTC) charges and any other healthcare additional amounts including prescriptions, vision, clinic, and dental. The total amount of this transaction must be greater than or equal to the total healthcare amount.

All
AmtType amtTypeType Simple Type

The type of healthcare amount; see the associated Type enumerations for specific values supported.

Amt amtTypeGlobal Simple Type

Amount associated with the specified type

SecondAdditionalAmtInfo optional AdditionalAmtType Complex Type

Second additional amount information; this defines the portion of the first additional amount provided as part of this request that was for a specific healthcare amount type. This will not alter the amount processed as part of the transaction.

All
AmtType amtTypeType Simple Type

The type of healthcare amount; see the associated Type enumerations for specific values supported.

Amt amtTypeGlobal Simple Type

Amount associated with the specified type

ThirdAdditionalAmtInfo optional AdditionalAmtType Complex Type

Third additional amount information; this defines the portion of the first additional amount provided as part of this request that was for a specific healthcare amount type. This will not alter the amount processed as part of the transaction.

All
AmtType amtTypeType Simple Type

The type of healthcare amount; see the associated Type enumerations for specific values supported.

Amt amtTypeGlobal Simple Type

Amount associated with the specified type

FourthAdditionalAmtInfo optional AdditionalAmtType Complex Type

Fourth additional amount information; this defines the portion of the first additional amount provided as part of this request that was for a specific healthcare amount type. This will not alter the amount processed as part of the transaction.

All
AmtType amtTypeType Simple Type

The type of healthcare amount; see the associated Type enumerations for specific values supported.

Amt amtTypeGlobal Simple Type

Amount associated with the specified type

MerchantVerificationValue optional xs:string

Merchant Verification Value; 10-character string provided by VISA that indicates participation in the Select Merchant Fee program

Note: This no longer needs to be sent as Heartland will pull this information from the merchant's profile automatically.

RealTimeSubstantiation optional booleanType Simple Type

Indicates if a merchant used an inventory approval system to verify that the items purchased qualify for healthcare auto-substantiation.

Note: This field is required for IIAS participants.

AdditionalTxnFields optional AdditionalTxnFieldsType Complex Type

A common group of optional fields that are supported in several different transaction types for Merchant use

All
Description optional descriptionType Simple Type

Free-form description field. This must not contain sensitive information.

InvoiceNbr optional Restriction of xs:string

Used to log the invoice number on transactions that are not eCommerce.

CustomerID optional customerIDType Simple Type

Used to log Merchant specific customer identification.

Note: For GETI check transactions, this is sent in the CUSTOM3 field.

Ecommerce optional eCommerceType Simple Type

Identifies this transaction as eCommerce or mail order/telephone order; see the associated Type enumerations for specific values supported.

ConvenienceAmtInfo optional amtTypeGlobal Simple Type

Convenience fee amount information; this defines the portion of the total amount provided as part of this request that was specifically for a convenience fee. This is informational only and will not alter the amount processed as part of the transaction.

ShippingAmtInfo optional amtTypeGlobal Simple Type

Shipping amount information; this defines the portion of the total amount provided as part of this request that was specifically for shipping. This is informational only and will not alter the amount processed as part of the transaction.

SurchargeAmtInfo optional amtTypeGlobal Simple Type

Surcharge amount information; this defines the portion of the total amount provided as part of this request that was specifically for a surcharge. This is informational only and will not alter the amount processed as part of the transaction.

Note: This field is limited to 8 digits with implied decimal.

EMVTagData optional emvTagDataType Simple Type

EMV tag data in TLV format; used for chip card offline approvals.

Note: This field has been obsoleted.See the TagData field for the alternative.

TagData optional TagDataType Complex Type

EMV or Non-EMV tag data in TLV format. EMV tag data here is used for chip card offline approvals.

All
TagValues optional Extension of xs:string

This field holds the tag data values.

source required Restriction of xs:string

This field specifies the source of the tag data value. It can be either chip or msd.

CPCData optional CPCDataType Complex Type

Corporate purchasing card data

All
CardHolderPONbr optional cardHolderPONbrType Simple Type

Purchase order number

TaxType optional taxTypeType Simple Type

Tax type indicator that qualifies the associated tax amount, see the associated Type enumerations for specific values supported.

TaxAmt optional amtTypeGlobal Simple Type

Tax amount

Note: If the tax type is 'TaxExempt', an amount should not be provided. If it is, the gateway discards the amount.

SalesTaxDetails optional SalesTaxDetailsType Complex Type

Allows sending the Canadian sales tax details for corporate card processing.

All
GSTAmt optional amtTypeGlobal Simple Type

Goods and Services Tax.

HSTAmt optional amtTypeGlobal Simple Type

Harmonized Sales Tax.

PSTAmt optional amtTypeGlobal Simple Type

Provincial Sales Tax.

QSTAmt optional amtTypeGlobal Simple Type

Quebec Sales Tax.

BuyerRecipientName optional Restriction of xs:string

Required on transactions with an amount over 150.

PSTTaxRegistration optional pstTaxRegistrationType Simple Type

Provincial Sales Tax Registration number.

MerchantVATRegistration Restriction of xs:string

Merchant Value Added Tax Registration number.

CustomerVATRegistration Restriction of xs:string

Customer Value Added Tax Registration number.

CustomerRefId Restriction of xs:string

Canadian customer reference Id.

Used By
Block1 Element
Source
<xs:complexType name="CreditOfflineAuthReqBlock1Type" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:all>
    <xs:element name="CardData" type="CardDataType">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Card data</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Amt" type="amtTypeGlobal">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">The amount requested for authorization; this includes all other "Info" amounts provided as part of this request.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="GratuityAmtInfo" type="amtTypeGlobal" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Gratuity amount information; this defines the portion of the total amount provided as part of this request that was specifically for gratuity. This is informational only and will not alter the amount processed as part of the transaction.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="CPCReq" type="booleanType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">This is used to request the issuer to return whether or not the supplied card is a commercial card.</p>
          <p xmlns="http://Hps.Exchange.PosGateway" />
          <p xmlns="http://Hps.Exchange.PosGateway">
            <strong>Note:</strong> This is not used in offlines.
            </p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="OfflineAuthCode" type="authCodeType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Authorization code obtained from the issuer outside of the gateway</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="CardHolderData" type="CardHolderDataType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Card holder data</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="DirectMktData" type="DirectMktDataType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Direct marketing data; eCommerce</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="AllowDup" type="booleanType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">This is important in cases where the client processes a large number of similar transactions in a very short period of time; sending "Y" will skip duplicate checking on this transaction.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="LodgingData" type="LodgingDataType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Lodging data</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="AutoSubstantiation" type="AutoSubstantiationType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Auto substantiation data; used for healthcare</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="AdditionalTxnFields" type="AdditionalTxnFieldsType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">A common group of optional fields that are supported in several different transaction types for Merchant use</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="Ecommerce" type="eCommerceType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Identifies this transaction as eCommerce or mail order/telephone order; see the associated Type enumerations for specific values supported.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="ConvenienceAmtInfo" type="amtTypeGlobal" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Convenience fee amount information; this defines the portion of the total amount provided as part of this request that was specifically for a convenience fee. This is informational only and will not alter the amount processed as part of the transaction.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="ShippingAmtInfo" type="amtTypeGlobal" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Shipping amount information; this defines the portion of the total amount provided as part of this request that was specifically for shipping. This is informational only and will not alter the amount processed as part of the transaction.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="SurchargeAmtInfo" type="amtTypeGlobal" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Surcharge amount information; this defines the portion of the total amount provided as part of this request that was specifically for a surcharge. This is informational only and will not alter the amount processed as part of the transaction. </p>
          <p xmlns="http://Hps.Exchange.PosGateway" />
          <p xmlns="http://Hps.Exchange.PosGateway">
            <strong>Note:</strong> This field is limited to 8 digits with implied decimal.
            </p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="EMVTagData" type="emvTagDataType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">EMV tag data in TLV format; used for chip card offline approvals.</p>
          <p xmlns="http://Hps.Exchange.PosGateway" />
          <p xmlns="http://Hps.Exchange.PosGateway">
            <strong>Note: This field has been obsoleted.</strong>See the TagData field for the alternative.
            </p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="TagData" type="TagDataType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">EMV or Non-EMV tag data in TLV format. EMV tag data here is used for chip card offline approvals.</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
    <xs:element name="CPCData" type="CPCDataType" minOccurs="0">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Corporate purchasing card data</p>
        </xs:documentation>
      </xs:annotation>
    </xs:element>
  </xs:all>
</xs:complexType>
See Also
PosGateway Schema