Open the Portico Developer Guide site
PosGateway Schema
Header Element
PosGateway Schema > PosRequest Element > Ver1.0 Element : Header Element
Description

The header includes credentials and transaction tracking information. These fields are included as optional in the schema to allow different options for providing credentials.

Note: One of the following combinations is required:

  • License, Site, Device, Username, and Password or
  • Secret API key

Namespace http://Hps.Exchange.PosGateway
Diagram
RetryInd Element SDKNameVersion Element UPIAuthNetwork Element CustomHashReq Element x_global_transaction_source Element x_global_transaction_id Element DeviceConfiguration Element PosReqDT Element SecretAPIKey Element SAFData Element UniqueDeviceId Element ClientTxnId Element GPSCoordinates Element ClerkID Element OptionalPosData Element VersionNbr Element DeveloperID Element SiteTrace Element CredentialToken Element Password Element UserName Element DeviceId Element SiteId Element LicenseId Element All Header Element
Overview
Header

The header includes credentials and transaction tracking information. These fields are included as optional in the schema to allow different options for providing credentials.

Note: One of the following combinations is required:

  • License, Site, Device, Username, and Password or
  • Secret API key

All
LicenseId optional licenseIdType Simple Type

Identifier assigned by Heartland during the boarding process; used for chaining sites together

SiteId optional siteIdType Simple Type

Identifier assigned by Heartland during the boarding process; tied to a specific merchant ID

DeviceId optional deviceIdType Simple Type

Identifier assigned by Heartland during the boarding process

UserName optional userNameType Simple Type

User name assigned by Heartland during the boarding process

Password optional passwordType Simple Type

Password for the associated user; a temp password will be provided during the boarding process but must be altered before it is used for transaction processing

CredentialToken optional xs:string

The credential token is used to indicate a user session. Currently, this option is only available to internal Heartland applications and should not be used by integrators.

SiteTrace optional siteTraceType Simple Type

This element can be used by the client to provide a value that can be searched for later. Clients are free to provide any value that is useful to them but it must not contain sensitive data. This will also be echoed in the response if present.

DeveloperID optional Restriction of xs:string

Identifier assigned by Heartland during the certification process; this field is optional to support legacy integrations, but all new integrations require this value.

VersionNbr optional Restriction of xs:string

Software version number assigned by Heartland during the certification process; this field is optional to support legacy integrations, but all new integrations require this value.

OptionalPosData optional Restriction of xs:string

OptionalPosData as defined by your certification analyst. Required for Canadian integrations.

ClerkID optional Restriction of xs:string

Identifier assigned by the merchant or client to the clerk running this transaction; this must not contain sensitive data

GPSCoordinates optional GPSCoordinatesType Complex Type

GPS coordinates indicating the location of the source of the transaction

All
Latitude Restriction of xs:decimal
Longitude Restriction of xs:decimal
ClientTxnId optional clientIdType Simple Type

A client-generated transaction id. This must be unique for this device. If present, it will be attached to this transaction and echoed in the response. This allows the client to run a timeout reversal against a unique transaction in the event that a response is never received. When a response is received, the client will receive a gateway-generated transaction id.

UniqueDeviceId optional uniqueDeviceIdType Simple Type

A client-supplied device identifier to be sent when transactions for multiple devices are aggregated in the same batch. If present, the field will be sent to the issuer on authorization and settlement requests and echoed in the response header.

SAFData optional SAFDataType Complex Type

SAFData indicating if a transaction that was processed and initiated in "store and forward" (SAF) mode.

All
SAFIndicator booleanType Simple Type

Indicates that transaction was initiated in "store and forward" (SAF) mode (Y)

SAFOrigDT optional xs:dateTime

Date and time when the transaction was originally initiated.

SecretAPIKey optional secretAPIKeyType Simple Type

API key that can be used in place of license, site, device, username, and password. An API will be tied to a specific environment (i.e. certification or production).

Note: The use of SecretAPIKey is restricted.

PosReqDT optional xs:dateTime

POS request date and time. Required for Interac processing.

Note:This field is required for Canadian merchants.

DeviceConfiguration optional DeviceConfigurationType Complex Type

Device capabilities and/or attributes needed by a Host processor that are not otherwise able to be determined. Please refer to the Developer Guide for further details as this data may be required for certain Host processors..

All
Capabilities optional Restriction of xs:string

Capabilities for a Device

Attributes optional Restriction of xs:string

Attributes for a Device

SerialNbr optional Restriction of xs:string

Serial number of PIN pad or PIN entry device (PED).

Note: Required for Interac debit services in Canada.

TxnMCC optional mccType Simple Type

MCC value that is passed from POS.

For original transactions only. Not used for transactions where the request contains an original transaction id.

x_global_transaction_id optional x_global_transaction_idType Simple Type

A client-generated transaction ID used for certain API integrations, which is echoed in the response. When not provided a value will be generated.

Note: If either x_global_transaction_id or x_global_transaction_source is present, both must be provided.

Note: This is for internal use only.

x_global_transaction_source optional x_global_transaction_sourceType Simple Type

A client-generated value used for certain API integrations, which is echoed in the response. When not provided a value will be generated.

Note: If either x_global_transaction_id or x_global_transaction_source is present, both must be provided.

Note: This is for internal use only.

CustomHashReq optional booleanType Simple Type

Indicates whether to return a hashed value of the card number using a custom salt value.

Note: For use by participating merchants only.

UPIAuthNetwork optional booleanType Simple Type

Indicates the authorization network to be used for co-branded UnionPay cards, based on cardholder choice at the Point of Sale. If True, authorizations will route to the UnionPay network. For UK merchants only.

Note: For future use

SDKNameVersion optional Restriction of xs:string

Name and Version of the SDK used for integration, where applicable.

RetryInd optional booleanType Simple Type

Indicates that this transaction is a retry of the previous, in case if a timeout error occurred. GTID and Source fields are required for RetryInd.

The time alloted for retries is 90 minutes.

Note: It is internal only

Source
<xs:element name="Header" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:documentation>
      <p xmlns="http://Hps.Exchange.PosGateway">The header includes credentials and transaction tracking information. These fields are included as optional in the schema to allow different options for providing credentials.</p>
      <p xmlns="http://Hps.Exchange.PosGateway" />
      <p xmlns="http://Hps.Exchange.PosGateway">
        <strong>Note:</strong> One of the following combinations is required:
                      <ul><li>License, Site, Device, Username, and Password</li>
                        or
                        <li>Secret API key</li></ul></p>
    </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:all>
      <xs:element name="LicenseId" type="licenseIdType" default="0" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Identifier assigned by Heartland during the boarding process; used for chaining sites together</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SiteId" type="siteIdType" default="0" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Identifier assigned by Heartland during the boarding process; tied to a specific merchant ID</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DeviceId" type="deviceIdType" default="0" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Identifier assigned by Heartland during the boarding process</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UserName" type="userNameType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">User name assigned by Heartland during the boarding process</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="Password" type="passwordType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Password for the associated user; a temp password will be provided during the boarding process but must be altered before it is used for transaction processing</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CredentialToken" type="xs:string" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">The credential token is used to indicate a user session. Currently, this option is only available to internal Heartland applications and should not be used by integrators.</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SiteTrace" type="siteTraceType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">This element can be used by the client to provide a value that can be searched for later. Clients are free to provide any value that is useful to them but it must not contain sensitive data. This will also be echoed in the response if present.</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DeveloperID" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Identifier assigned by Heartland during the certification process; this field is optional to support legacy integrations, but all new integrations require this value.</p>
          </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="6" />
            <xs:minLength value="6" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="VersionNbr" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Software version number assigned by Heartland during the certification process; this field is optional to support legacy integrations, but all new integrations require this value.</p>
          </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="4" />
            <xs:minLength value="4" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="OptionalPosData" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">OptionalPosData as defined by your certification analyst. Required for Canadian integrations.</p>
          </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="100" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="ClerkID" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Identifier assigned by the merchant or client to the clerk running this transaction; this must not contain sensitive data</p>
          </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="50" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="GPSCoordinates" type="GPSCoordinatesType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">GPS coordinates indicating the location of the source of the transaction</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="ClientTxnId" type="clientIdType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">A client-generated transaction id. This must be unique for this device. If present, it will be attached to this transaction and echoed in the response. This allows the client to run a timeout reversal against a unique transaction in the event that a response is never received. When a response is received, the client will receive a gateway-generated transaction id.</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UniqueDeviceId" type="uniqueDeviceIdType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">A client-supplied device identifier to be sent when transactions for multiple devices are aggregated in the same batch. If present, the field will be sent to the issuer on authorization and settlement requests and echoed in the response header.</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SAFData" type="SAFDataType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">SAFData indicating if a transaction that was processed and initiated in "store and forward" (SAF) mode.</p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SecretAPIKey" type="secretAPIKeyType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">API key that can be used in place of license, site, device, username, and password. An API will be tied to a specific environment (i.e. certification or production).</p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note: The use of SecretAPIKey is restricted.</strong>
            </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="PosReqDT" type="xs:dateTime" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">POS request date and time. Required for Interac processing.</p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong>This field is required for Canadian merchants.
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="DeviceConfiguration" type="DeviceConfigurationType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">
                            Device capabilities and/or attributes needed by a Host processor that are not otherwise able to be determined.
                            Please refer to the Developer Guide for further details as this data may be required for certain Host processors..
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="x_global_transaction_id" type="x_global_transaction_idType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">A client-generated transaction ID used for certain API integrations, which is echoed in the response. When not provided a value will be generated.</p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> If either x_global_transaction_id or x_global_transaction_source is present, both must be provided.
                          </p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> This is for internal use only.
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="x_global_transaction_source" type="x_global_transaction_sourceType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">A client-generated value used for certain API integrations, which is echoed in the response. When not provided a value will be generated.</p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> If either x_global_transaction_id or x_global_transaction_source is present, both must be provided.
                          </p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> This is for internal use only.
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="CustomHashReq" type="booleanType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Indicates whether to return a hashed value of the card number using a custom salt value.</p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> For use by participating merchants only.
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="UPIAuthNetwork" type="booleanType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Indicates the authorization network to be used for co-branded UnionPay cards, based on cardholder choice at the Point of Sale. If True, authorizations will route to the UnionPay network. For UK merchants only.</p>
            <p xmlns="http://Hps.Exchange.PosGateway" />
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> For future use
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="SDKNameVersion" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Name and Version of the SDK used for integration, where applicable.</p>
          </xs:documentation>
        </xs:annotation>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:maxLength value="30" />
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="RetryInd" type="booleanType" minOccurs="0">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Indicates that this transaction is a retry of the previous, in case if a timeout error occurred. GTID and Source fields are required for RetryInd.</p>
            <p xmlns="http://Hps.Exchange.PosGateway">The time alloted for retries is 90 minutes.</p>
            <p xmlns="http://Hps.Exchange.PosGateway">
              <strong>Note:</strong> It is internal only
                          </p>
          </xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
</xs:element>
See Also
Ver1.0 ElementPosRequest ElementPosGateway Schema