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

Messaging version

Namespace http://Hps.Exchange.PosGateway
Diagram
Transaction Element Header Element Sequence Ver1.0 Element
Overview
Ver1.0

Messaging version

Sequence
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

Transaction

Transaction data

Choice
AddAttachment PosAddAttachmentReqType Complex Type

AddAttachment can be used to store and associate data (i.e. images and documents) to a prior transaction.

The referenced original transaction must have been approved and must be one of the following:

  • CreditAuth
  • CreditOfflineAuth
  • CreditSale
  • CreditOfflineSale
  • CreditReturn
  • DebitSale
  • GiftCardSale
  • GiftCardAddValue
  • PrePaidAddValue
  • CheckSale
  • OverrideFraudDecline

This must be done within three months of the original transaction.

For Document attachment types:

  • Up to five document attachments are allowed to be associated with a single transaction
  • Document attachments can be submitted on one or more requests
  • To replace a document attachment, a new document attachment with the same name can be provided

For other attachment types:

  • Only one of each attachment type can be associated with a single transaction
  • Only one of each attachment type can be submitted per request
  • If a request includes an attachment type that is already associated with a given transaction, it will result in the attachment being replaced

Sequence
GatewayTxnId txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates the transaction to be updated.

Block1 1..5 AttachmentDataType Complex Type

This list will contain one to five sets of attachment data.

AltPaymentAuth PosAltPayAuthReqType Complex Type

AltPaymentAuth takes a unique Session Id and performs an Authorization transaction.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

SessionId xs:string

Unique Session Id

Buyer optional

Buyer Information for the authorization

Amt optional amtTypeGlobal Simple Type

Amount for the authorization

Shipping optional

Shipping Information for the authorization

Payment optional

Payment Information for the authorization

LineItem optional

Line Item purchase information for the authorization

AltPaymentCapture PosAltPayCaptureReqType Complex Type

AltPaymentCapture takes a previously approved Alternate Payment Authorization or Alternate Payment Order and captures a portion of the original into the current open batch. If a batch is not open, this transaction will create one.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

GatewayTxnId txnIdType Simple Type

Gateway generated transaction identifier returned in the response of the original transaction. This indicates the AltPayment transaction to be captured against.

Amt amtTypeGlobal Simple Type

Amount for the capture

Payment optional

Payment Information for the capture

AltPaymentCreateAuth PosAltPayCreateAuthReqType Complex Type

AltPaymentCreateAuth takes a previously approved Alternate Payment Order transaction and creates an Authorization from it.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

GatewayTxnId txnIdType Simple Type

Gateway generated transaction identifier returned in the response of the original transaction. This indicates the original Alt Payment transaction to create an authorization against.

Amt amtTypeGlobal Simple Type

Amount for the new authorization

Shipping optional

Shipping Information for the new authorization

Payment optional

Payment Information for the new authorization

LineItem optional

Line Item purchase information for the new authorization

AltPaymentCreateSession PosAltPayCreateSessReqType Complex Type

AltPaymentCreateSession creates a unique Session for Electronic Commerce Alternate Payment Processing. This service must be called first to perform Alternate payment processing.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

Buyer optional

Buyer Information for the session

Amt optional amtTypeGlobal Simple Type

Amount for the session

Shipping optional

Shipping Information for the session

Payment optional

Payment Information for the session

LineItem optional

Line Item purchase information for the session

AltPaymentOrder PosAltPayOrderReqType Complex Type

AltPaymentOrder takes a unique Session Id and performs an Order transaction.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

SessionId xs:string

Unique Session Id

Buyer optional

Buyer Information for the order

Amt optional amtTypeGlobal Simple Type

Amount for the order

Shipping optional

Shipping Information for the order

Payment optional

Payment Information for the order

LineItem optional

Line Item purchase information for the order

AltPaymentReturn PosAltPayReturnReqType Complex Type

AltPaymentReturn takes a Alternate Payment GatewayTxnId and performs a a return against that transaction. AltPaymentSale and AltPaymentCapture can be returned.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

GatewayTxnId txnIdType Simple Type

Gateway generated transaction identifier returned in the response of the original transaction. This indicates the Alt Payment transaction to be returned.

Amt optional amtTypeGlobal Simple Type

Amount for the return

Return optional

Return information for the return

AltPaymentReversal PosAltPayReversalReqType Complex Type

AltPaymentReversal takes a Alternate Payment GatewayTxnId and performs a reversal against that transaction. Abanonded timed out transactions of AltPaymentSale, AltPaymentOrder, AltPaymentAuth and AltPaymentCapture can be reversed

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

GatewayTxnId txnIdType Simple Type

Gateway generated transaction identifier returned in the response of the original transaction. This indicates the Alt Payment transaction to be reversed.

AltPaymentSale PosAltPaySaleReqType Complex Type

AltPaymentSale takes a unique Session Id and performs a Sale transaction. The sale is placed in the current open batch. If a batch is not open this transaction will create one.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

SessionId xs:string

Unique Session Id

Buyer optional

Buyer Information for the sale

Amt optional amtTypeGlobal Simple Type

Amount for the sale

Shipping optional

Shipping Information for the sale

Payment optional

Payment Information for the sale

LineItem optional

Line Item purchase information for the sale

AltPaymentSessionInfo PosAltPaySessionInfoReqType Complex Type

AltPaymentSessionInfo takes a unique Session Id and returns information about the session.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

SessionId xs:string

Unique Session Id

AltPaymentVoid PosAltPayVoidReqType Complex Type

AltPaymentVoid takes a Alternate Payment GatewayTxnId and performs a void against that transaction. AltPaymentAuth, AltPaymentOrder and AltPaymentCreateAuth can be voided.

All
TransactionType AltPaymentTxnType Simple Type

Alternate Payment Transaction Type

GatewayTxnId txnIdType Simple Type

Gateway generated transaction identifier returned in the response of the original transaction. This indicates the Alt Payment transaction to be voided.

Authenticate xs:anySimpleType

Authenticate is used to authenticate a specific user. For this call the header must include username and password.

Note: This is for internal use only.

BatchClose Extension of xs:string

BatchClose is used to settle and close the current open batch. If a batch is not open an error will be returned.

deviceId optional xs:int
CancelImpersonation xs:anySimpleType

CancelImpersonation is used to terminate a previously started impersonation session.

Note: This is for internal use only.

CashReturn PosCashReturnReqType Complex Type

CashReturn creates a log of a transaction that is returning cash to a customer. This is processed offline.

Note: The client is responsible for maintaining any required cash value totals for reconciliation.

Sequence
Block1 CashReturnReqBlock1Type Complex Type

Contains a series of required and optional elements

CashSale PosCashSaleReqType Complex Type

CashSale creates a log of a transaction, in which cash is collected from a customer. This is processed offline.

Note: The client is responsible for maintaining any required cash value totals for reconciliation.

Sequence
Block1 CashSaleReqBlock1Type Complex Type

Contains a series of required and optional elements

CheckSale PosCheckSaleReqType Complex Type

CheckSale transactions use bank account information as the payment method. There are sub-actions that can be taken as part of the CheckSale as indicated by the CheckAction field.

Note: Both GETI and Colonnade are supported. A check processor is chosen during the boarding process for each device. The choice of check processor will drive the available functionality as well as the required elements. See individual fields for additional information.

Sequence
Block1 CheckSaleReqBlock1Type Complex Type

Contains a series of required and optional elements

CheckQuery PosCheckQueryReqType Complex Type

CheckQuery is used to query info about a check transaction.

Sequence
Block1 CheckQueryReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: GatewayTxnId and ClientTxnId are mutually exclusive, but it is required that one of these fields be provided.

CheckVoid PosCheckVoidReqType Complex Type

CheckVoid is used to cancel a previously successful CheckSale transaction. It can also be used to cancel a prior CheckSale transaction. This should be used in timeout situations or when a complete response is not received.

Note:CheckVoid transactions should be submitted within 31 days of the original transaction.

Note:If the CheckVoid also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved. CheckQuery can be used to check the status of a prior CheckSale transaction.

Sequence
Block1 CheckVoidReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: GatewayTxnId and ClientTxnId are mutually exclusive, but it is required that one of these fields be provided.

ChipCardDecline PosChipCardDeclineReqType Complex Type

ChipCardDecline is used to record an offline decline by an EMV chip card.This transaction is optional and can be used for record-keeping purposes only.

Note:This transaction is not used for a transaction that received an online approval. To cancel transactions that have been approved online but subsequently declined by the chip, a Credit/Debit Reversal must be sent.

All
Block1 ChipCardDeclineReqBlock1Type Complex Type

Contains a series of required and optional elements

CreditAccountVerify PosCreditAccountVerifyReqType Complex Type

CreditAccountVerify is used to verify that the associated account is in good standing with the Issuer. This is a zero dollar transaction with no associated authorization. Since VISA and other Issuers have started assessing penalties for one dollar authorizations, this provides a way for merchants to accomplish the same task while avoiding these penalties.

There are differences in the processing of this transaction based on card type:

  • VISA: an account verification is done at the Issuer
  • MasterCard: an account status check is done at the Issuer
  • Discover: an account verification is done at the Issuer
  • AMEX: an AVS only verification is done; this still ensures that the account is valid but requires that AVS data is supplied (zip code at a minimum). Both manual and swiped/track entry methods are supported. However, EMV transactions are not supported.

Note:UnionPay cards do not support Verification when routing directly to UnionPay International for approval. UnionPay cards routing through either the Discover or JCB networks may obtain verification.  (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).

All
Block1 CreditAccountVerifyBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData and PaymentMethodKey are mutually exclusive, but it is required that one of these fields be provided.

CreditAdditionalAuth PosCreditAdditionalAuthReqType Complex Type

CreditAdditionalAuth is typically used in a bar or restaurant situation where the merchant obtains the payment information for an original CreditAuth but does not want to hold the card or ask for it on each additional authorization.

This uses data from a previously successful CreditAuth to authorize an additional amount. The additional authorization is run as a card not present transaction and cannot be placed in a batch. This can be repeated as needed. The final settlement amount including any additional authorized amounts must be provided in the CreditAddToBatch for the original CreditAuth. When the original transaction is added to the batch a reversal is automatically attempted for all additional authorizations.

The following rules apply:

  • CreditAdditionalAuth is allowed only for restaurant merchants.
  • The original transaction must be an approved open authorization run within the same day (i.e. a CreditAuth that has not been added to a batch).
  • When the original authorization transaction is fully reversed or voided, any associated CreditAdditionalAuth transactions are reversed.
  • An original authorization transaction with CreditAdditionalAuth transactions can be partially reversed for less than the full original auth amount. However, additional authorizations are still not reversed until the original is added to the batch.
  • Additional authorizations cannot be voided, edited, or used for returns.

Note:CreditAdditionalAuth is not supported for UnionPay cards routing to UnionPay International for authorization. CreditAdditionalAuth may continue to be used for UnionPay cards routing through either the Discover or JCB networks. (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).

Note:This service has been deprecated. Refer to CreditIncrementalAuth.

All
Block1 CreditAdditionalAuthReqBlock1Type Complex Type

Contains a series of required and optional elements

CreditAddToBatch PosCreditAddToBatchReqType Complex Type

CreditAddToBatch is primarily used to add a previously approved open authorization (CreditAuth, CreditOfflineAuth, OverrideFraudDecline, or RecurringBillingAuth) to the current open batch. If a batch is not open this transaction will create one. It also provides the opportunity to alter data associated with the transaction (i.e. add a tip amount).

Note: The gateway will not submit an authorization or reversal when the settlement amount of a transaction is altered. The client is responsible for managing these adjustments as needed.

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates the transaction to be updated.

Amt optional amtTypeGlobal Simple Type

If present, this amount replaces the amount to be settled for the original transaction; this includes all other "Info" amounts associated with the original transaction or provided in this request.

GratuityAmtInfo optional amtTypeGlobal Simple Type

If present, this amount is stored with the original transaction. If the original already had gratuity amount information, this will replace it. This defines the portion of the settlement amount that is specifically for gratuity. This is informational only and will not alter the amount processed as part of the transaction.

LodgingDataEdit optional LodgingDataEditType Complex Type

If provided, these fields will replace or add Lodging data edits to the original transaction.

DirectMktData optional DirectMktDataType Complex Type

If provided, these fields will replace or add direct marketing data to the original transaction.

SurchargeAmtInfo optional amtTypeGlobal Simple Type

If present, this amount is stored with the original transaction. If the original already had surcharge amount information, this will replace it. This defines the portion of the settlement amount that is 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 consisting of the chip card results after applying the Issuer response tags.

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. For EMV tag data this would consist of the chip card results after applying the Issuer response tags.

PFFundingDetails optional PFFundingDetailsType Complex Type

Allows ProPay merchants to specify split funding for a transaction.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be updated.

Note: This is for internal use only.

RetryInd optional booleanType Simple Type

Indicates whether this transaction is a retry of the previous CreditAddToBatch request.

Note: This is for the UK market only.

NoShow optional booleanType Simple Type

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

Note: This is for the UK and AP markets only.

CurrencyConversion optional CurrConversionDataType Complex Type

Data block for Currency Conversion.

Integration must be through GP-API

CreditAuth PosCreditAuthReqType Complex Type

CreditAuth authorizes a credit card transaction. These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time using CreditAddToBatch. Approved authorizations that have not yet been added to a batch are called open auths.

Note: If you prefer to have the authorization automatically added to the batch, use CreditSale.

Authorizations can be processed by sending card data, the GatewayTxnId from a previous authorization, or a key from a previously stored payment method.

When using a prior transaction id, the following rules apply:

  • The original transaction must be an approved CreditAuth or CreditSale that was not also run using a prior transaction id.
  • The original transaction must be fully reversed, voided, or returned.
  • The original transaction must have occurred within the last 14 days.
  • The original transaction may only be referenced once in this way.
  • The new amount must be greater than 0.00 and cannot exceed 100% of the original.
  • The new transaction is sent as "Card Not Present"
  • The new transaction can be voided or reversed.
  • OrigTxnRefData must be provided with AuthCode and/or CardNbrLastFour and the provided data must match the original transaction data.

All
Block1 CreditAuthReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData, GatewayTxnId, and PaymentMethodKey are mutually exclusive, but it is required that one of these elements be provided.

CreditCPCEdit PosCreditCPCEditReqType Complex Type

CreditCPCEdit attaches Corporate Purchase Card (CPC) data to a prior transaction. This information will be passed to the issuer at settlement when the associated card was a corporate card or an AMEX card.

Note: This function only works against previously approved CreditAuth, CreditSale, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, and RecurringBillingAuth transactions.

Note: The amount of the original transaction is not altered by the CreditCPCEdit. This additional data is informational only. The original transaction will be processed regardless of whether or not the CreditCPCEdit is used by the client.

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates the transaction to be updated.

CPCData CPCDataType Complex Type

Corporate purchasing card data

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be updated.

Note: This is for internal use only.

CorporateData optional CorporateDataType Complex Type

Corporate Data for LIII transaction. For Future Use.

CreditIncrementalAuth PosCreditIncrementalAuthReqType Complex Type

CreditIncrementalAuth adds to the authorized amount for a prior transaction.

The following rules apply:

  • The original transaction must have been an approved CreditAuth. NOTE: CreditSale is allowed for US merchants processing to the Exchange host only.
  • The original transaction id should continue to be used for subsequent transactions (i.e., voids, reversals, edits, etc.); the transaction id of the incremental authorization should never be referred to by subsequent transactions.
  • Each incremental authorization is not added to the batch. The total amount is maintained with the original transaction.
  • If the final settlement amount of the original transaction is less than the total of all authorizations, reversals will automatically be generated as needed.

Note:UnionPay cards routed directly to UnionPay International do not support Incremental Authorizations. CreditIncrementalAuth may continue to be used for UnionPay cards routing through either the Discover or JCB networks. (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).

All
Block1 CreditIncrementalAuthReqBlock1Type Complex Type

Contains a series of required and optional elements

CreditIPQuery PosCreditIPQueryReqType Complex Type

CreditIPQuery is used to query the Installment Payment terms available to the cardholder.

All
Block1 CreditIPQueryBlock1Type Complex Type

Contains a series of required and optional elements

CardData and PaymentMethodKey are mutually exclusive, but it is required that one of these fields be provided.

CreditOfflineAuth PosCreditOfflineAuthReqType Complex Type

CreditOfflineAuth records an authorization obtained outside of the gateway (e.g., voice authorization, chip card offline approval). These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time using CreditAddToBatch. Approved authorizations that have not yet been added to a batch are called open auths.

Note:Depending on the Host Processor, a CreditOfflineAuth transaction may not be modified after it has been added to a batch.

All
Block1 CreditOfflineAuthReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: OfflineAuthCode and EMVTagData are mutually exclusive, but it is required that one of these elements be provided.

CreditOfflineSale PosCreditOfflineSaleReqType Complex Type

CreditOfflineSale records an authorization obtained outside of the gateway (e.g., voice authorization, chip card offline approval). The authorization is placed in the current open batch. If a batch is not open this transaction will create one.

All
Block1 CreditOfflineSaleReqBlock1Type Complex Type

Contains a series of required and optional elements

CreditReturn PosCreditReturnReqType Complex Type

CreditReturn allows the merchant to return funds back to the cardholder. Returns can be for the entire amount associated with the original sale or a partial amount. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

For added fraud protection, CreditReturn can be run utilizing the GatewayTxnId from a previous sale. When this feature is used, the gateway tracks returns against the original sale and applies several rules.

The following rules apply when returning by GatewayTxnId:

  • The original transaction must be a CreditAuth, CreditSale, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, or RecurringBillingAuth and must be in a batch. It cannot be an open authorization that still needs to be added to a batch.
  • The total of all returns cannot exceed the original sale amount. This is true for processing a single return as well as multiple returns against the same original transaction.
  • A return amount must be greater than zero.
  • The return must be run within 1 year.
  • CreditReversal, CreditVoid, and CreditTxnEdit are not allowed against original transactions for which a full or partial return has been run.
  • A return can be voided. If this results in the total return amount being adjusted back to zero, CreditVoid, CreditReversal, and CreditTxnEdit are allowed on the original transaction once again.
  • If CardData is also supplied, the supplied card number and the card number of the original transaction must match.

Note: If the original transaction is in the current open batch, a CreditVoid or CreditReversal may be used instead. However, only a return can be used once the batch is closed.

All
Block1 CreditReturnReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: One or both of CardData and GatewayTxnId can be supplied, but it is required that one of these elements be provided.

CreditReversal PosCreditReversalReqType Complex Type

CreditReversal cancels a prior authorization in the current open batch. This can be used in timeout situations or when a complete response is not received. This transaction can also be used to cancel a transaction that was approved online but subsequently declined by the chip.

This can be used on prior transactions of the following types: CreditAuth, CreditSale, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, RecurringBillingAuth, and OverrideFraudDecline.

Note:This can also be used to partially reduce the amount of a prior authorization.

Note:Credit reversal transactions must be submitted within 31 days of the original transaction.

Note:If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.

Note:A credit reversal should be requested with the GatewayTxnID or ClientTxnID. Never send a reversal request with a multi-use token in the Card Data.

All
Block1 CreditReversalReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData, ClientTxnId, and GatewayTxnId are mutually exclusive, but it is required that one of these fields be provided.

Note: Always run reversals with either GatewayTxnId or ClientTxnId. If only CardData is used the results are not guaranteed as the original transaction may not be uniquely identified.

NTRSCreateToken NTRSCreateTokenReqType Complex Type

It is used to create a network token using the Network Tokenization Service.

Note: RESERVED FOR FUTURE USE

All
Block1 NTRSCreateTokenReqBlock1Type Complex Type

Contains a series of required and optional elements

NTRSGetTokenCryptogram NTRSGetTokenCryptogramReqType Complex Type

It is used to retrieve the cryptogram and payment data from Network Tokenization Service.

Note: RESERVED FOR FUTURE USE

All
Block1 NTRSGetTokenCryptogramReqBlock1Type Complex Type

Contains a series of required and optional elements

NTRSTokenStatus NTRSTokenStatusReqType Complex Type

It is used to retrieve the token status from Network Tokenization Service.

Note: RESERVED FOR FUTURE USE

All
Block1 NTRSTokenStatusReqBlock1Type Complex Type

Contains a series of required and optional elements

NTRSUpdateTokenStatus NTRSUpdateTokenStatusReqType Complex Type

It is used to update the status of the NTRS token.

Note: RESERVED FOR FUTURE USE

All
Block1 NTRSUpdateTokenStatusReqBlock1Type Complex Type

Contains a series of required and optional elements

NTRSTokenMetadata NTRSTokenMetadataReqType Complex Type

It is used to retrieve the card metadata from Network Tokenization Service.

Note: RESERVED FOR FUTURE USE

All
Block1 NTRSTokenMetadataReqBlock1Type Complex Type

Contains a series of required and optional elements

CreditSale PosCreditSaleReqType Complex Type

CreditSale authorizes a credit card transaction. These authorizations are automatically added to the batch to be settled. If a batch is not already open this transaction will create one.

Authorizations can be processed by sending card data or the GatewayTxnId from a previous authorization. When using a prior transaction id, the following rules apply:

  • The original transaction must be an approved CreditAuth or CreditSale that was not also run using a prior transaction id.
  • The original transaction must be fully reversed, voided, or returned.
  • The original transaction must have occurred within the last 14 days.
  • The original transaction may only be referenced once in this way.
  • The new amount must be greater than 0.00 and cannot exceed 100% of the original.
  • The new transaction is sent as "Card Not Present"
  • The new transaction can be voided or reversed.
  • OrigTxnRefData must be provided with AuthCode and/or CardNbrLastFour and the provided data must match the original transaction data.

All
Block1 CreditSaleReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData and GatewayTxnId are mutually exclusive, but it is required that one of these elements be provided.

CreditTxnEdit PosCreditTxnEditReqType Complex Type

CreditTxnEdit allows the merchant to alter the data on a previously approved CreditSale, CreditAuth, CreditOfflineSale, or CreditOfflineAuth (i.e. add a tip amount).

Note:Depending on the Host Processor, a CreditOfflineAuth transaction may not be modified after it has been added to a batch.

Note:The gateway will not submit an authorization or reversal when the settlement amount of a transaction is altered. The client is responsible for managing these adjustments as needed.

Note:Approved UnionPay authorizations routed directly to UnionPay International cannot be adjusted. UnionPay cards routing through either the Discover or JCB networks may be adjusted. (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates the transaction to be updated.

Amt optional amtTypeGlobal Simple Type

If present, this amount replaces the amount to be settled for the original transaction; this includes all other "Info" amounts associated with the original transaction or provided in this request.

GratuityAmtInfo optional amtTypeGlobal Simple Type

If present, this amount is stored with the original transaction. If the original already had gratuity amount information, this will replace it. This defines the portion of the settlement amount that is specifically for gratuity. This is informational only and will not alter the amount processed as part of the transaction.

LodgingDataEdit optional LodgingDataEditType Complex Type

If provided, these fields will replace or add Lodging data edits to the original transaction.

DirectMktData optional DirectMktDataType Complex Type

If provided, these fields will replace or add direct marketing data to the original transaction.

SurchargeAmtInfo optional amtTypeGlobal Simple Type

If present, this amount is stored with the original transaction. If the original already had surcharge amount information, this will replace it. This defines the portion of the settlement amount that is 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 consisting of the chip card results after applying the Issuer response tags.

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. For EMV tag data this would consist of the chip card results after applying the Issuer response tags.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be updated.

Note: This is for internal use only.

NoShow optional booleanType Simple Type

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

Note: This is for the UK and AP markets only.

CurrencyConversion optional CurrConversionDataType Complex Type

Data block for Currency Conversion.

Integration must be through GP-API

CreditVoid PosCreditVoidReqType Complex Type

CreditVoid is used to cancel an open auth or remove a transaction from the current open batch. The original transaction must be a CreditAuth, CreditSale, CreditReturn, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, RecurringBillingAuth, or OverrideFraudDecline.

Note: Once a batch is closed, associated transactions can no longer be voided. In these cases, a CreditReturn can be used to adjust a customer's account.

Note: If a transaction has been fully or partially returned, it cannot be voided.

Note: Due to new issuer regulations, a void now automatically attempts to reverse the original transaction. If the reversal is successful, the original transaction status will be set to 'R'. If there is no need to reverse (i.e. offlines) or the reversal fails, the original transaction status will be set to 'V'. A successful response to the void will indicate that the original transaction has been removed from the batch in either case.

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates the transaction to be updated.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be updated.

Note: This is for internal use only.

DebitAddValue PosDebitAddValueReqType Complex Type

DebitAddValue increases the amount on a stored value card. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

Note: This transaction has been obsoleted. See the PrePaidAddValue for an alternative.

All
Block1 DebitAddValueReqBlock1Type Complex Type

Contains a series of required and optional elements

DebitBalanceInquiry PosDebitBalanceInquiryReqType Complex Type

DebitBalanceInquiry returns the available balance for a Debit card. Available for retail devices in the Philippines only.

All
Block1 DebitBalanceInquiryReqBlock1Type Complex Type

Contains a series of required and optional elements

DebitReturn PosDebitReturnReqType Complex Type

DebitReturn allows the merchant to return funds from a prior debit sale back to the cardholder. Returns can be for the entire amount associated with the original sale or a partial amount. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

For added fraud protection, DebitReturn can be run utilizing the GatewayTxnId from a previous debit sale. When this feature is used, the gateway tracks returns against the original sale and applies several rules.

The following rules apply when returning by GatewayTxnId:

  • The total of all returns cannot exceed the original sale amount. This is true for processing a single return as well as multiple returns against the same original transaction.
  • A return amount must be greater than zero.
  • DebitReversal is not allowed against original transactions for which a full or partial return has been run.
  • The supplied card number (from the track data or token) and the card number of the original transaction must match.

Note: If the original transaction is in the current open batch, a DebitReversal may be used instead. However, only a return can be used once the batch is closed.

All
Block1 DebitReturnReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: TokenValue and TrackData are mutually exclusive, but it is required that one of these elements be provided. PinBlock can either be sent as part of the request or it can be associated with a token but it must be provided as well.

DebitReversal PosDebitReversalReqType Complex Type

DebitReversal cancels a previous DebitSale transaction. This should be used in timeout situations or when a complete response is not received. This transaction can be used to cancel a transaction that was approved online but subsequently declined by the chip.

Note: Debit reversal transactions must be submitted within 31 days of the original transaction.

Note: Partial reversals are not supported for debit transactions.

Note: If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.

Note: DebitReversal is not allowed after a pre-authorization is completed with a DebitAddToBatch. Use DebitRefund instead.

All
Block1 DebitReversalReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: Reversals should always be done by GatewayTxnId. If this is for a timeout reversal and the client does not have a transaction id, TrackData can be supplied, but the results are not guaranteed as the original transaction may not be uniquely identified.

DebitAddToBatch PosDebitAddToBatchReqType Complex Type

DebitAddToBatch is used to add a pre-authorized debit transaction to the open batch. If a batch is not open this transaction will create one.

Note: DebitAuth is only allowed in Canada.

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates the transaction to be updated.

AccountType optional accountTypeType Simple Type

Indicates the type of account provided; see the associated Type enumerations for specific values supported.

Amt optional amtTypeGlobal Simple Type

If present, this amount replaces the amount to be settled for the original transaction; this includes all other "Info" amounts associated with the original transaction or provided in this request.

MessageAuthenticationCode optional xs:string

A block of encrypted data to be sent from the POS on every contact Interac sale and return request. Required for Canadian merchants processing debit reversals.

PosSequenceNbr optional PosSequenceNbrType Simple Type

POS sequence number for Canadian Debit transactions.

TagData optional TagDataType Complex Type

EMV or Non-EMV tag data in TLV format. For EMV tag data this would consist of the chip card results after applying the Issuer response tags.

Note: Required on DebitAddtoBatch for Canadian Interac/Debit.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be updated.

Note: This is for internal use only.

DebitAuth PosDebitAuthReqType Complex Type

DebitAuth authorizes a debit transaction. These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time by using DebitAddToBatch.

Note: DebitAuth is only allowed in Canada

All
Block1 DebitAuthReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: TokenValue and TrackData are mutually exclusive, but it is required that one of these elements be provided. PinBlock can either be sent as part of the request or it can be associated with a token but it must be provided as well.

DebitSale PosDebitSaleReqType Complex Type

DebitSale authorizes a debit card transaction. These authorizations are automatically added to the batch to be settled. If a batch is not already open this transaction will create one.

All
Block1 DebitSaleReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: TokenValue and TrackData are mutually exclusive, but it is required that one of these elements be provided. PinBlock can either be sent as part of the request or it can be associated with a token but it must be provided as well.

EBTBalanceInquiry PosEBTBalanceInquiryReqType Complex Type

EBTBalanceInquiry returns the available balance for an EBT account.

All
Block1 EBTBalanceInquiryReqBlock1Type Complex Type

Contains a series of required and optional elements

EBTCashBackPurchase PosEBTCashBackPurchaseReqType Complex Type

EBTCashBackPurchase is used to purchase goods with EBT Cash Benefits. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

All
Block1 EBTCashBackPurchaseReqBlock1Type Complex Type

Contains a series of required and optional elements

EBTCashBenefitWithdrawal PosEBTCashBenefitWithdrawalReqType Complex Type

EBTCashBenefitWithdrawal is used to disburse cash from an EBT Cash Benefits account. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

All
Block1 EBTCashBenefitWithdrawalReqBlock1Type Complex Type

Contains a series of required and optional elements

EBTFSPurchase PosEBTFSPurchaseReqType Complex Type

EBTFSPurchase is used to purchase goods with EBT Food Stamps/SNAP. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

All
Block1 EBTFSPurchaseReqBlock1Type Complex Type

Contains a series of required and optional elements

EBTFSReturn PosEBTFSReturnReqType Complex Type

EBTFSReturn is used to credit previously debited funds to an EBT Food Stamps/SNAP account for merchandise returned. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

All
Block1 EBTFSReturnReqBlock1Type Complex Type

Contains a series of required and optional elements

EBTFSReversal PosEBTFSReversalReqType Complex Type

EBTFSReversal cancels a prior purchase in the current open batch. This can be used in timeout situations or when a complete response is not received. In either case, the client is unsure of the outcome of the prior transaction.

This can be used on prior transactions of the following types: EBTFSPurchase, EBTFSReturn, EBTCashBenefitWithdrawal and EBTCashBackPurchase.

Note: Partial reversals are not supported for EBT transactions.

Note: If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.

All
Block1 EBTFSReversalReqBlock1Type Complex Type

Contains a series of required and optional elements

EBTVoucherPurchase PosEBTFSVoucherReqType Complex Type

EBTVoucherPurchase is obsolete and should no longer be used

All
Block1 EBTFSVoucherReqBlock1Type Complex Type

Contains a series of required and optional elements

EndToEndTest

Test for internal use only.

Note: For a quick test, clients can use TestCredentials.

FindTransactions FindTransactionsReqType Complex Type

FindTransactions is used to search all current gateway transactions based on provided filter criteria.

Note: When possible, searching should be done by TxnId. This is a single transaction search unless used in conjunction with FindHistoryInd. Any additional criteria is ignored.

Note: The gateway is not a long-term storage service. Generally, data is only available for 90 days; however, recurring billing data is saved for two years. For longer periods, Heartland offers other services. Further information can be provided during boarding and certification.

All
Criteria optional SearchCriteriaType Complex Type

If the client does not have the associated transaction id or needs to search for multiple transactions, these filters can be applied.

Any transactions returned will match all criteria provided. Each filter is an exact match unless otherwise stated.

Note: Clients should make every effort to minimize the result set from a search. Breaking a search into parts based on date is a great way to do this. Response timeouts should also be adjusted accordingly as a search should not be expected to return in the same time as a transaction.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

TxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates a specific transaction to be returned.

If supplied, the search will return a single record unless used in conjunction with FindHistoryInd. Otherwise, any other criteria is ignored.

Note: This is the value referred to as GatewayTxnId in other messages.

FindHistoryInd optional booleanType Simple Type

Indicates whether to return any subsequent transactions associated with the Gateway-generated transaction identifier supplied.

Note: This will be ignored if the TxnId is not supplied.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be retrieved.

Note: This is for internal use only.

GetAttachments PosGetAttachmentReqType Complex Type

GetAttachments is used to retrieve attachments (i.e. documents, images, etc.) associated with a particular transaction.

Sequence
GatewayTxnId txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction.

AttachmentType 0..4 attachmentTypeType Simple Type

Identifies the attachment types to be returned; see the associated Type enumerations for specific values supported.

Note: If this is not provided, 'all' is assumed.

ReturnAttachmentTypesOnly optional xs:boolean

Indicates that only the attachment types (no data) should be returned in the response; default is 'false'

AttachmentDataId optional xs:int

When specified, only the requested attachment will be returned

GetTransactionStatus PosGetTransactionStatusReqType Complex Type

GetTransactionStatus is used to retrieve the status of any gateway transaction.

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction.

ClientTxnId optional clientIdType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be updated.

Note: Client generated ids are critical for situations when the client never receives a response from the gateway.

All
MerchNbr merchNbrType Simple Type

The merchant number to query

DeviceId deviceIdType Simple Type

The device number to query (must belong to this merchant)

GetUserSettings xs:anySimpleType

Note: This is for internal use only.

GiftCardActivate PosGiftCardActivateReqType Complex Type

GiftCardActivate is used to activate a new stored value account and load it with an initial balance. If the specified stored value account is already active, the request will fail.

Note: Stored value accounts can also be activated implicitly via the GiftCardAddValue method depending on the platform configuration for a customer's specific program.

Note: This method supports loyalty points.

All
Block1 GiftCardActivateReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardAddValue PosGiftCardAddValueReqType Complex Type

GiftCardAddValue loads an amount onto a stored value account. Depending on the gift processor, this request may also be used to automatically activate the account.

Note: This method supports loyalty points.

All
Block1 GiftCardAddValueReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardAlias PosGiftCardAliasReqType Complex Type

GiftCardAlias allows the client to manage stored account aliases. An alias is an alternate identifier used to reference a stored value account. Restrictions on the possible values of alias must be obtained from the gift processor.

All
Block1 GiftCardAliasReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardBalance PosGiftCardBalanceReqType Complex Type

GiftCardBalance is used to retrieve the balance(s) for each currency supported by a stored value account.

All
Block1 GiftCardBalanceReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardCurrentDayTotals xs:anySimpleType

GiftCardCurrentDayTotals is used to retrieve stored value transaction totals for the current day.

Note: This has been obsoleted and should no longer be used. See FindTransactions for an alternative.

GiftCardDeactivate PosGiftCardDeactivateReqType Complex Type

GiftCardDeactivate is used to deactivate an active stored value account that otherwise has not been used. Attempts to deactivate an account that is not active or has had activity will fail.

Note: For some gift processors, once a stored value account has been deactivated it can never be re-activated.

All
Block1 GiftCardDeactivateReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardPreviousDayTotals xs:anySimpleType

GiftCardPreviousDayTotals is used to retrieve stored value transaction totals for the previous day.

Note: This has been obsoleted and should no longer be used. See FindTransactions for an alternative.

GiftCardReplace PosGiftCardReplaceReqType Complex Type

GiftCardReplace transfers balances from one stored value account to another. This is typically to replace a lost or stolen account with a new one or to consolidate two or more accounts into a single account. After a transfer has completed, the source account is closed/deactivated and can no longer be used. The balance for the destination account is returned in the response.

All
Block1 GiftCardReplaceReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardReversal PosGiftCardReversalReqType Complex Type

GiftCardReversal is used to cancel a prior stored value transaction. This should be used in timeout situations or when a complete response is not received. In either case, the client is unsure of the outcome of the prior transaction.

This can be used on prior transactions of the following types:

  • GiftCardActivate
  • GiftCardAddValue
  • GiftCardSale
  • GiftCardReward

Note: When reversing a transaction, all changes to the account are cancelled, including any additional value added by rewards programs or automated promotions.

Note: If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.

All
Block1 GiftCardReversalReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: One of the following fields must be provided:

  • CardData
  • ClientTxnId
  • GatewayTxnId

If more than one of these is provided, they must reference the same original transaction or payment information.

Note: Always run reversals with either GatewayTxnId or ClientTxnId. If only CardData is used the results are not guaranteed as the original transaction may not be uniquely identified.

GiftCardReward PosGiftCardRewardReqType Complex Type

GiftCardReward is used when an account holder makes a payment using a payment form other than a stored value account (e.g. cash or credit card). The account holder may present their stored value account to earn points or other loyalty rewards, which would be added to their account. If successful, the rewarded amount is returned in the response.

Note: This transaction is not used for purchases. Instead, the purchase amount is used to help determine what potential rewards may be added based on the merchant's loyalty and rewards program.

All
Block1 GiftCardRewardReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardSale PosGiftCardSaleReqType Complex Type

GiftCardSale is used to redeem value from a stored value account.

Note: Partial approvals are supported by default. If the account balance is non-zero but insufficient to cover the full redemption amount, the remaining balance is drained and the amount still owed is returned in the response for additional payment. The merchant may accept any additional tender to cover the amount still owed. If the account holder is unable to provide additional payment and the purchase is cancelled, this transaction should be voided to return the balance back to the account. See the "split tender card amount" and "split tender balance due amount" fields in the response.

All
Block1 GiftCardSaleReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardTip PosGiftCardTipReqType Complex Type

GiftCardTip is used to add tip to an existing GiftCardSale. If successful, the tip amount will be subtracted from the stored value account.

Note: This transaction is for future use.

All
Block1 GiftCardTipReqBlock1Type Complex Type

Contains a series of required and optional elements

GiftCardVoid PosGiftCardVoidReqType Complex Type

GiftCardVoid is used to cancel a prior successful transaction. When voiding a transaction, all changes to the account are reversed, including any additional value added by rewards programs or automated promotions.

This can be used on prior transactions of the following types:

  • GiftCardActivate
  • GiftCardAddValue
  • GiftCardDeactivate
  • GiftCardReplace
  • GiftCardSale
  • GiftCardReward

Note: Only the most recent transaction is allowed to be referenced as the prior transaction for a gift void. For example, if an activate is run and then an add value is run, only the add value can be voided.

All
Block1 GiftCardVoidReqBlock1Type Complex Type

Contains a series of required and optional elements

Impersonate PosImpersonateReqType Complex Type

Note: This is for internal use only.

All
MerchNbr merchNbrType Simple Type

The merchant this user belongs to

UserName userNameType Simple Type

The user to impersonate

DeviceId deviceIdType Simple Type

The device the user will be impersonated on (must belong to this merchant)

InteracDeviceKeys PosInteracDeviceKeysReqType Complex Type

For Canadian merchants, this message can be used to synchronize the keys used for encrypting data in debit card messages for the Canadian debit card network, also referred to as Interac.

All
LocalDateTime optional xs:dateTime

Local Date and Time must be included here if PosReqDT is not set in the header. This value will override the header PosReqDT when both are present.

InvalidateAuthentication xs:anySimpleType

Note: This is for internal use only.

ManageSettings ManageSettingsReqType Complex Type

Note: This service is used to manage certain Site or Device settings. Please refer to the Developer's Guide for further details.

All
MerchNbr optional merchNbrType Simple Type

The merchant number

DeviceId optional deviceIdType Simple Type

Used to specify the device id for which settings should be managed (must belong to the merchant)

SettingActions

The operations that can be performed on the associated settings

ManageTokens ManageTokensReqType Complex Type

ManageTokens allows merchants to update information referenced by a specific multi-use token.

Note: Single-use tokens are not supported in this request.

All
TokenValue xs:string

Multi-use token returned on a prior transaction to be used as a reference to a payment method; used to replace card data for this transaction.

TokenActions

The operations that can be performed on the data referenced by the token.

ManageUsers PosManageUsersReqType Complex Type

Note: This is for internal use only.

All
MerchNbr merchNbrType Simple Type

The merchant number the users belong to

UserActions

The operations that can be performed on the merchant's users

OverrideFraudDecline PosOverrideFraudDeclineReqType Complex Type

OverrideFraudDecline is used to process a CreditSale, CreditAuth or CreditReturn that was previously declined due to fraud. An override causes the fraud concerns to be ignored. The use of this function on a client should require management approval. This can only be done once, and for the original auth amount.

Note: This is for internal use only.

All
Block1 OverrideFraudDeclineReqBlock1Type Complex Type

Contains a series of required and optional elements

ParameterDownload PosParameterDownloadReqType Complex Type

ParameterDownload is used to initiate an EMV parameter download by clients interfacing to an EMV device. Typically, the client will only download new parameters after receiving an indicator that a download is needed in a prior response message. In addition, the client should time these downloads to be done between batches and during an idle time if possible.

Note: See the PDLNotification indicator in the response header.

All
Block1 ParameterDownloadReqBlock1Type Complex Type

Contains a series of required and optional elements

PrePaidAddValue PosPrePaidAddValueReqType Complex Type

PrePaidAddValue is used to increase the balance associated with a prepaid card. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.

Note: For future use

All
Block1 PrePaidAddValueReqBlock1Type Complex Type

Contains a series of required and optional elements

PrePaidBalanceInquiry PosPrePaidBalanceInquiryReqType Complex Type

PrePaidBalanceInquiry returns the available balance for a prepaid card.

All
Block1 PrePaidBalanceInquiryReqBlock1Type Complex Type

Contains a series of required and optional elements

RecurringBilling PosRecurringBillReqType Complex Type

RecurringBilling authorizes a one-time or scheduled recurring transaction. The authorization is placed in the current open batch. If a batch is not already open, this transaction creates an open batch.

A scheduled recurring transaction is the default, but a one-time payment can be made by setting the OneTime value to 'Y'. One-time payments may be processed using card data managed by PayPlan. In this case, the stored payment PaymentMethodKey should be provided instead of CardData.

The PayPlan application allows a merchant to set up and schedule recurring payments, but also provides other features including customer information management, secure payment (card and ACH) information storage (card-on-file), and automated email notifications to customers.

All
Block1 RecurringBillReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData and PaymentMethodKey are mutually exclusive, but it is required that one of these elements be provided.

RecurringBillingAuth PosRecurringBillReqType Complex Type

RecurringBillingAuth authorizes a one-time or scheduled recurring transaction. These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time using CreditAddToBatch. Approved authorizations that have not yet been added to a batch are called open auths.

A scheduled recurring transaction is the default, but a one-time payment can be made by setting the OneTime value to 'Y'. One-time payments may be processed using card data managed by PayPlan. In this case, the stored payment PaymentMethodKey should be provided instead of CardData.

The PayPlan application allows a merchant to set up and schedule recurring payments, but also provides other features including customer information management, secure payment (card and ACH) information storage (card-on-file), and automated email notifications to customers.

All
Block1 RecurringBillReqBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData and PaymentMethodKey are mutually exclusive, but it is required that one of these elements be provided.

ReportActivity PosReportActivityReqType Complex Type

ReportActivity returns all activity between the client devices and gateway for a period of time. This can be filtered to a single device if needed.

Note: This has been obsoleted and should no longer be used. See FindTransactions for an alternative.

All
RptStartUtcDT optional xs:dateTime

Start date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, start date time will be defaulted to today at 00:00:00.

Transactions must have been run at or after this time to be returned.

RptEndUtcDT optional xs:dateTime

End date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, end date time will be defaulted to tomorrow at 00:00:00.

Transactions must have been run before or at this time to be returned.

Note: The end date/time must be after the start date/time.

DeviceId optional deviceIdType Simple Type

Device identifier used to filter the report results to a particular device.

Note: If not provided, all devices associated with the site will be included.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

ReportBatchDetail PosReportBatchDetailReqType Complex Type

ReportBatchDetail returns information on each transaction currently associated to the specified batch. This report is for the site and device referenced in the header.

All
BatchId optional batchIdType Simple Type

Batch identifier used to filter the report results to a particular batch.

Note: If this is not provided, results will be returned for the current open batch.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

SiteId optional siteIdType Simple Type

The Site identifier to query.

Note: The Site must belong to the same License as the requesting Site and Device. The Device identifier must also be specified. The Merchant must be enabled for this functionality.

DeviceId optional deviceIdType Simple Type

The Device identifier to query.

Note: The Device must belong to the Site in the request header or request body if used. The Merchant must be enabled for this functionality.

ReportBatchHistory PosReportBatchHistoryReqType Complex Type

ReportBatchHistory returns information about previous batches over a period of time. This report is for the site referenced in the header.

All
RptStartUtcDT optional xs:dateTime

Start date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, start date time will be defaulted to six days prior at 00:00:00.

Batches must have been opened at or after this time to be returned.

RptEndUtcDT optional xs:dateTime

End date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, end date time will be defaulted to tomorrow at 00:00:00.

Batches must have been opened before or at this time to be returned.

Note: The end date/time must be after the start date/time.

DeviceId optional deviceIdType Simple Type

Device identifier used to filter the report results to a particular device.

Note: If not provided, all devices associated with the site will be included.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

ReportBatchSummary PosReportBatchSummaryReqType Complex Type

ReportBatchSummary returns a batch's status information and totals broken down by payment type. This report is for the site and device referenced in the header.

All
BatchId optional batchIdType Simple Type

Batch identifier used to filter the report results to a specific batch.

Note: If this is not provided, results will be returned for the current open batch.

RptStartUtcDT optional xs:dateTime

Start date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, dates are not used.

Transactions must have been run at or after this time to be returned.

RptEndUtcDT optional xs:dateTime

End date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, dates are not used.

Transactions must have been run before or at this time to be returned.

Note: The end date/time must be after the start date/time.

BatchSeqNbr optional batchSeqNbrType Simple Type

Batch sequence number used to filter the report results

Note: If batch id is provided, this field is ignored.

ClerkID optional Restriction of xs:string

Clerk id used to filter the report results

SiteId optional siteIdType Simple Type

The Site identifier to query.

Note: The Site must belong to the same License as the requesting Site and Device. The Device identifier must also be specified. The Merchant must be enabled for this functionality.

DeviceId optional deviceIdType Simple Type

The Device identifier to query.

Note: The Device must belong to the Site in the request header or request body if used. The Merchant must be enabled for this functionality.

ReportOpenAuths PosReportOpenAuthsReqType Complex Type

ReportOpenAuths returns all authorizations that have not been added to a batch for settlement. This report is for the site referenced in the header.

All
DeviceId optional deviceIdType Simple Type

Device identifier used to filter the report results to a particular device.

Note: If not provided, all devices associated with the site will be included.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

ReportSearch PosReportSearchReqType Complex Type

ReportSearch returns transaction information for a specified time period.

Note: This has been obsoleted and should no longer be used. See FindTransactions for an alternative.

All
ReturnHeaderOnly booleanType Simple Type

Indicates whether the report header containing transaction count information matching the given search criteria is the only information returned; default is 'N'.

RptStartUtcDT optional xs:dateTime

Start date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, start date time will be defaulted to six days prior at 00:00:00.

Transactions must have been run at or after this time to be returned.

RptEndUtcDT optional xs:dateTime

End date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time). If the element is not present, end date time will be defaulted to tomorrow at 00:00:00.

Transactions must have been run before or at this time to be returned.

Note: The end date/time must be after the start date/time.

DeviceId optional deviceIdType Simple Type

Device identifier used to filter the report results to a particular device.

Criteria ReportSearchCriteriaType Complex Type

Report search criteria options.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

ReportTxnDetail PosReportTxnDetailReqType Complex Type

ReportTxnDetail returns detailed information about a single transaction. This report is for the site and device referenced in the header.

All
TxnId optional txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction. This indicates a specific transaction to be returned.

Note: This is the value referred to as GatewayTxnId in other messages.

TzConversion optional tzoneConversionType Simple Type

Indicates that a time zone conversion should be applied to dates/times in the response; see the associated Type enumerations for specific values supported.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Client generated transaction identifier sent in the request of the original transaction. This indicates the transaction to be retrieved.

Note: This is for internal use only.

ReportTxnResearch PosReportTxnResearchReqType Complex Type

Extended transaction information.

Note : This service is for internal use only. Future use.

All
GatewayTxnId optional txnIdType Simple Type

Gateway-generated transaction identifier.

OriginalGatewayTxnId optional txnIdType Simple Type

If the transaction performed an action on a previous transaction, this is the ID of the transaction that was acted upon.

ClientTxnId optional clientIdType Simple Type

Client-generated transaction identifier.

x_global_transaction_id optional x_global_transaction_idType Simple Type

Global Payments-generated transaction identifier.

MerchantId optional MerchantIdType Simple Type

Merchant Number.

SiteId optional siteIdType Simple Type

Site identifier used to process the request

DeviceId optional deviceIdType Simple Type

Device identifier used to process the request

BatchId optional batchIdType Simple Type

Batch identifier.

StartUtcDT optional xs:dateTime

Start date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time).

EndUtcDT optional xs:dateTime

End date time used to filter the results to a particular date time range. The date time must be specified in UTC (Coordinated Universal Time).

RewardCashQuery PosRewardCashQueryReqType Complex Type

RewardCashQuery is used to query available reward point balance for a participating account. Available for devices in the AP region only

Note: This transaction is for future use.

All
Block1 RewardCashQueryBlock1Type Complex Type

RewardCashQuery returns available reward point balance for a participating accounts. Allowed for Reward Cash terminals configured for the Asia Pacific region only.

Note: This transaction is for Future Use.

RewardCashRedeem PosRewardCashRedeemReqType Complex Type

RewardCashRedeem is used to redeem available reward points for a participating account. Allowed for Reward Cash terminals configured for the Asia Pacific region only.

Note: This transaction is for Future Use.

All
Block1 RewardCashRedeemBlock1Type Complex Type

RewardCashRedeem is used to redeem available reward points for a participating account. These authorizations are automatically added to the reward cash batch to be settled.

If a batch is not already open this transaction will create one.

Note: Allowed for Reward Cash terminals configured for the Asia Pacific region only.

Note: This transaction is for Future Use.

SendFunds PosSendFundsReqType Complex Type

Visa Direct Original Credit Transaction (OCT) and Master Card MoneySend Request service.

Note:This transaction is for Future Use.

All
Block1 SendFundsReqBlock1Type Complex Type

contains a series of required and optional elements

SendReceipt PosSendReceiptReqType Complex Type

SendReceipt allows a client to send a receipt from a prior transaction out to specific destinations. The prior transaction must belong to the site and device referenced in the header.

Note: This is for internal use only.

All
Destinations

A list of destinations to send the receipt to

GatewayTxnId txnIdType Simple Type

Gateway-generated transaction identifier returned in the response of the original transaction.

TestCredentials xs:anySimpleType

TestCredentials validates the credentials passed in the header, but does not perform an action.

Note: TestCredentials should only be used at the beginning of the certification period to validate credentials and connectivity to the certification environment. This should not be used as a "heartbeat" check and is not required for processing with the gateway.

Tokenize PosTokenizeReqType Complex Type

Tokenize is used to request the gateway to return a multi-use token for the supplied card data. 

No verification of the card data is performed.

All
Block1 TokenizeBlock1Type Complex Type

Contains a series of required and optional elements

Note: CardData it is required to be provided.

TokenUpdaterHistory PosTokenUpdaterHistoryReqType Complex Type

Allows merchants to retrieve a counts or details report of token updates performed by Auto Account Updater

All
ReportStartDate xs:dateTime

Start of the reporting date.

ReportEndDate optional xs:dateTime

End of the reporting date. If null, current date is used.

Limit optional Restriction of xs:int

Records to be returned limit. Default is no limit.

Offset optional Restriction of xs:int

Records to be returned limit. Default is no limit.

TokenValue optional xs:string

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

Action TokenUpdaterHistoryActionResultType Simple Type

Type of report to retrieve from ETS.

All
Block1 SurchargeEligibilityLookupBlock1Type Complex Type

Contains a series of required and optional elements

Source
<xs:element name="Ver1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:documentation>
      <p xmlns="http://Hps.Exchange.PosGateway">Messaging version</p>
    </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Header">
        <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>
      <xs:element name="Transaction">
        <xs:annotation>
          <xs:documentation>
            <p xmlns="http://Hps.Exchange.PosGateway">Transaction data</p>
          </xs:documentation>
        </xs:annotation>
        <xs:complexType>
          <xs:choice>
            <xs:element name="AddAttachment" type="PosAddAttachmentReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AddAttachment can be used to store and associate data (i.e. images and documents) to a prior transaction.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            The referenced original transaction must have been approved and must be one of the following:
                            <ul><li>CreditAuth</li><li>CreditOfflineAuth</li><li>CreditSale</li><li>CreditOfflineSale</li><li>CreditReturn</li><li>DebitSale</li><li>GiftCardSale</li><li>GiftCardAddValue</li><li>PrePaidAddValue</li><li>CheckSale</li><li>OverrideFraudDecline</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway">This must be done within three months of the original transaction.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            For Document attachment types:
                            <ul><li>Up to five document attachments are allowed to be associated with a single transaction</li><li>Document attachments can be submitted on one or more requests</li><li>To replace a document attachment, a new document attachment with the same name can be provided</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            For other attachment types:
                            <ul><li>Only one of each attachment type can be associated with a single transaction</li><li>Only one of each attachment type can be submitted per request</li><li>If a request includes an attachment type that is already associated with a given transaction, it will result in the attachment being replaced</li></ul></p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentAuth" type="PosAltPayAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentAuth takes a unique Session Id and performs an Authorization transaction.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentCapture" type="PosAltPayCaptureReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentCapture takes a previously approved Alternate Payment Authorization or Alternate Payment Order and captures a portion of the original into the current open batch. If a batch is not open, this transaction will create one.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentCreateAuth" type="PosAltPayCreateAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentCreateAuth takes a previously approved Alternate Payment Order transaction and creates an Authorization from it.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentCreateSession" type="PosAltPayCreateSessReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentCreateSession creates a unique Session for Electronic Commerce Alternate Payment Processing. This service must be called first to perform Alternate payment processing.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentOrder" type="PosAltPayOrderReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentOrder takes a unique Session Id and performs an Order transaction.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentReturn" type="PosAltPayReturnReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentReturn takes a Alternate Payment GatewayTxnId and performs a  a return against that transaction.  AltPaymentSale and AltPaymentCapture can be returned.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentReversal" type="PosAltPayReversalReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentReversal takes a Alternate Payment GatewayTxnId and performs a reversal against that transaction.  Abanonded timed out transactions of AltPaymentSale, AltPaymentOrder, AltPaymentAuth and AltPaymentCapture can be reversed</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentSale" type="PosAltPaySaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentSale takes a unique Session Id and performs a Sale transaction.  The sale is placed in the current open batch. If a batch is not open this transaction will create one.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentSessionInfo" type="PosAltPaySessionInfoReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentSessionInfo takes a unique Session Id and returns information about the session.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="AltPaymentVoid" type="PosAltPayVoidReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">AltPaymentVoid takes a Alternate Payment GatewayTxnId and performs a void against that transaction.  AltPaymentAuth, AltPaymentOrder and AltPaymentCreateAuth can be voided.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Authenticate" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">Authenticate is used to authenticate a specific user. For this call the header must include username and password.</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="BatchClose">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">BatchClose is used to settle and close the current open batch. If a batch is not open an error will be returned.</p>
                </xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:annotation>
                      <xs:documentation>
                        <p xmlns="http://Hps.Exchange.PosGateway">The DeviceId of the batch to close.</p>
                        <p xmlns="http://Hps.Exchange.PosGateway" />
                        <p xmlns="http://Hps.Exchange.PosGateway">
                          <strong>Note:</strong> If enabled this would be a Device within the same Site provided in the request header. If the batch to close is on the Device indicated in the request header there is no need to send this attribute.
                                </p>
                      </xs:documentation>
                    </xs:annotation>
                    <xs:attribute name="deviceId" type="xs:int" />
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="BNPLCreateOrder" type="PosBNPLCreateOrderReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">TODO: add description.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>
                  </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CancelImpersonation" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CancelImpersonation is used to terminate a previously started impersonation session.</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="CashReturn" type="PosCashReturnReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CashReturn creates a log of a transaction that is returning cash to a customer. This is processed offline.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> The client is responsible for maintaining any required cash value totals for reconciliation.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CashSale" type="PosCashSaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CashSale creates a log of a transaction, in which cash is collected from a customer. This is processed offline.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> The client is responsible for maintaining any required cash value totals for reconciliation.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CheckSale" type="PosCheckSaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CheckSale transactions use bank account information as the payment method. There are sub-actions that can be taken as part of the CheckSale as indicated by the CheckAction field.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Both GETI and Colonnade are supported. A check processor is chosen during the boarding process for each device. The choice of check processor will drive the available functionality as well as the required elements. See individual fields for additional information.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CheckQuery" type="PosCheckQueryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CheckQuery is used to query info about a check transaction.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CheckVoid" type="PosCheckVoidReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CheckVoid is used to cancel a previously successful CheckSale transaction.  It can also be used to cancel a prior CheckSale transaction. This should be used in timeout situations or when a complete response is not received.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>CheckVoid transactions should be submitted within 31 days of the original transaction.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>If the CheckVoid also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.  CheckQuery can be used to check the status of a prior CheckSale transaction.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ChipCardDecline" type="PosChipCardDeclineReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ChipCardDecline is used to record an offline decline by an EMV chip card.This transaction is optional and can be used for record-keeping purposes only.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>This transaction is not used for a transaction that received an online approval.  To cancel transactions that have been approved online but subsequently declined by the chip, a Credit/Debit Reversal must be sent.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditAccountVerify" type="PosCreditAccountVerifyReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditAccountVerify is used to verify that the associated account is in good standing with the Issuer. This is a zero dollar transaction with no associated authorization. Since VISA and other Issuers have started assessing penalties for one dollar authorizations, this provides a way for merchants to accomplish the same task while avoiding these penalties.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            There are differences in the processing of this transaction based on card type:
                            <ul><li>VISA: an account verification is done at the Issuer</li><li>MasterCard: an account status check is done at the Issuer</li><li>Discover: an account verification is done at the Issuer</li><li>AMEX: an AVS only verification is done; this still ensures that the account is valid but requires that AVS data is supplied (zip code at a minimum). Both manual and swiped/track entry methods are supported. However, EMV transactions are not supported.</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>UnionPay cards do not support Verification when routing directly to UnionPay International for approval. UnionPay cards routing through either the Discover or JCB networks may obtain verification.  (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditAdditionalAuth" type="PosCreditAdditionalAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditAdditionalAuth is typically used in a bar or restaurant situation where the merchant obtains the payment information for an original CreditAuth but does not want to hold the card or ask for it on each additional authorization.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">This uses data from a previously successful CreditAuth to authorize an additional amount. The additional authorization is run as a card not present transaction and cannot be placed in a batch. This can be repeated as needed. The final settlement amount including any additional authorized amounts must be provided in the CreditAddToBatch for the original CreditAuth. When the original transaction is added to the batch a reversal is automatically attempted for all additional authorizations.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            The following rules apply:
                            <ul><li>CreditAdditionalAuth is allowed only for restaurant merchants.</li><li>The original transaction must be an approved open authorization run within the same day (i.e. a CreditAuth that has not been added to a batch).</li><li>When the original authorization transaction is fully reversed or voided, any associated CreditAdditionalAuth transactions are reversed.</li><li>An original authorization transaction with CreditAdditionalAuth transactions can be partially reversed for less than the full original auth amount. However, additional authorizations are still not reversed until the original is added to the batch.</li><li>Additional authorizations cannot be voided, edited, or used for returns.</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>CreditAdditionalAuth is not supported for UnionPay cards routing to UnionPay International for authorization. CreditAdditionalAuth may continue to be used for UnionPay cards routing through either the Discover or JCB networks. (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>This service has been deprecated. Refer to CreditIncrementalAuth.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditAddToBatch" type="PosCreditAddToBatchReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditAddToBatch is primarily used to add a previously approved open authorization (CreditAuth, CreditOfflineAuth, OverrideFraudDecline, or RecurringBillingAuth) to the current open batch. If a batch is not open this transaction will create one. It also provides the opportunity to alter data associated with the transaction (i.e. add a tip amount).</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> The gateway will not submit an authorization or reversal when the settlement amount of a transaction is altered. The client is responsible for managing these adjustments as needed.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditAuth" type="PosCreditAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditAuth authorizes a credit card transaction. These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time using CreditAddToBatch. Approved authorizations that have not yet been added to a batch are called open auths.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If you prefer to have the authorization automatically added to the batch, use CreditSale.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway">Authorizations can be processed by sending card data, the GatewayTxnId from a previous authorization, or a key from a previously stored payment method.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            When using a prior transaction id, the following rules apply:
                            <ul><li>The original transaction must be an approved CreditAuth or CreditSale that was not also run using a prior transaction id.</li><li>The original transaction must be fully reversed, voided, or returned.</li><li>The original transaction must have occurred within the last 14 days.</li><li>The original transaction may only be referenced once in this way.</li><li>The new amount must be greater than 0.00 and cannot exceed 100% of the original.</li><li>The new transaction is sent as "Card Not Present"</li><li>The new transaction can be voided or reversed.</li><li>OrigTxnRefData must be provided with AuthCode and/or CardNbrLastFour and the provided data must match the original transaction data.</li></ul></p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditCapture" type="PosCreditCaptureReqType" />
            <xs:element name="CreditCPCEdit" type="PosCreditCPCEditReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditCPCEdit attaches Corporate Purchase Card (CPC) data to a prior transaction. This information will be passed to the issuer at settlement when the associated card was a corporate card or an AMEX card.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This function only works against previously approved CreditAuth, CreditSale, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, and RecurringBillingAuth transactions.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> The amount of the original transaction is not altered by the CreditCPCEdit. This additional data is informational only. The original transaction will be processed regardless of whether or not the CreditCPCEdit is used by the client.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditIncrementalAuth" type="PosCreditIncrementalAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditIncrementalAuth adds to the authorized amount for a prior transaction.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            The following rules apply:
                            <ul><li>The original transaction must have been an approved CreditAuth. NOTE: CreditSale is allowed for US merchants processing to the Exchange host only.</li><li>The original transaction id should continue to be used for subsequent transactions (i.e., voids, reversals, edits, etc.); the transaction id of the incremental authorization should never be referred to by subsequent transactions.</li><li>Each incremental authorization is not added to the batch. The total amount is maintained with the original transaction.</li><li>If the final settlement amount of the original transaction is less than the total of all authorizations, reversals will automatically be generated as needed.</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>UnionPay cards routed directly to UnionPay International do not support Incremental Authorizations. CreditIncrementalAuth may continue to be used for UnionPay cards routing through either the Discover or JCB networks. (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditIPQuery" type="PosCreditIPQueryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditIPQuery is used to query the Installment Payment terms available to the cardholder.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditOfflineAuth" type="PosCreditOfflineAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditOfflineAuth records an authorization obtained outside of the gateway (e.g., voice authorization, chip card offline approval). These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time using CreditAddToBatch. Approved authorizations that have not yet been added to a batch are called open auths.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>Depending on the Host Processor, a CreditOfflineAuth transaction may not be modified after it has been added to a batch.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditOfflineSale" type="PosCreditOfflineSaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditOfflineSale records an authorization obtained outside of the gateway (e.g., voice authorization, chip card offline approval). The authorization is placed in the current open batch. If a batch is not open this transaction will create one.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditReturn" type="PosCreditReturnReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditReturn allows the merchant to return funds back to the cardholder. Returns can be for the entire amount associated with the original sale or a partial amount. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">For added fraud protection, CreditReturn can be run utilizing the GatewayTxnId from a previous sale. When this feature is used, the gateway tracks returns against the original sale and applies several rules.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            The following rules apply when returning by GatewayTxnId:
                            <ul><li>The original transaction must be a CreditAuth, CreditSale, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, or RecurringBillingAuth and must be in a batch. It cannot be an open authorization that still needs to be added to a batch.</li><li>The total of all returns cannot exceed the original sale amount. This is true for processing a single return as well as multiple returns against the same original transaction.</li><li>A return amount must be greater than zero.</li><li>The return must be run within 1 year.</li><li>CreditReversal, CreditVoid, and CreditTxnEdit are not allowed against original transactions for which a full or partial return has been run.</li><li>A return can be voided. If this results in the total return amount being adjusted back to zero, CreditVoid, CreditReversal, and CreditTxnEdit are allowed on the original transaction once again.</li><li>If CardData is also supplied, the supplied card number and the card number of the original transaction must match.</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If the original transaction is in the current open batch, a CreditVoid or CreditReversal may be used instead. However, only a return can be used once the batch is closed.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditReversal" type="PosCreditReversalReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditReversal cancels a prior authorization in the current open batch. This can be used in timeout situations or when a complete response is not received. This transaction can also be used to cancel a transaction that was approved online but subsequently declined by the chip.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">This can be used on prior transactions of the following types: CreditAuth, CreditSale, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, RecurringBillingAuth, and OverrideFraudDecline.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>This can also be used to partially reduce the amount of a prior authorization.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>Credit reversal transactions must be submitted within 31 days of the original transaction.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>A credit reversal should be requested with the GatewayTxnID or ClientTxnID.  Never send a reversal request with a multi-use token in the Card Data.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="NTRSCreateToken" type="NTRSCreateTokenReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">It is used to create a network token using the Network Tokenization Service.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> RESERVED FOR FUTURE USE</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="NTRSGetTokenCryptogram" type="NTRSGetTokenCryptogramReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">It is used to retrieve the cryptogram and payment data from Network Tokenization Service.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> RESERVED FOR FUTURE USE</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="NTRSTokenStatus" type="NTRSTokenStatusReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">It is used to retrieve the token status from Network Tokenization Service.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> RESERVED FOR FUTURE USE</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="NTRSUpdateTokenStatus" type="NTRSUpdateTokenStatusReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">It is used to update the status of the NTRS token.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> RESERVED FOR FUTURE USE</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="NTRSTokenMetadata" type="NTRSTokenMetadataReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">It is used to retrieve the card metadata from Network Tokenization Service.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> RESERVED FOR FUTURE USE</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditSale" type="PosCreditSaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditSale authorizes a credit card transaction. These authorizations are automatically added to the batch to be settled. If a batch is not already open this transaction will create one.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            Authorizations can be processed by sending card data or the GatewayTxnId from a previous authorization. When using a prior transaction id, the following rules apply:
                            <ul><li>The original transaction must be an approved CreditAuth or CreditSale that was not also run using a prior transaction id.</li><li>The original transaction must be fully reversed, voided, or returned.</li><li>The original transaction must have occurred within the last 14 days.</li><li>The original transaction may only be referenced once in this way.</li><li>The new amount must be greater than 0.00 and cannot exceed 100% of the original.</li><li>The new transaction is sent as "Card Not Present"</li><li>The new transaction can be voided or reversed.</li><li>OrigTxnRefData must be provided with AuthCode and/or CardNbrLastFour and the provided data must match the original transaction data.</li></ul></p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditTxnEdit" type="PosCreditTxnEditReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditTxnEdit allows the merchant to alter the data on a previously approved CreditSale, CreditAuth, CreditOfflineSale, or CreditOfflineAuth (i.e. add a tip amount).</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>Depending on the Host Processor, a CreditOfflineAuth transaction may not be modified after it has been added to a batch.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>The gateway will not submit an authorization or reversal when the settlement amount of a transaction is altered. The client is responsible for managing these adjustments as needed.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>Approved UnionPay authorizations routed directly to UnionPay International cannot be adjusted. UnionPay cards routing through either the Discover or JCB networks may be adjusted. (UnionPay direct routing available for Canada merchants on the GSAP authorization platform only).
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="CreditVoid" type="PosCreditVoidReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">CreditVoid is used to cancel an open auth or remove a transaction from the current open batch. The original transaction must be a CreditAuth, CreditSale, CreditReturn, CreditOfflineAuth, CreditOfflineSale, RecurringBilling, RecurringBillingAuth, or OverrideFraudDecline.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Once a batch is closed, associated transactions can no longer be voided. In these cases, a CreditReturn can be used to adjust a customer's account.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If a transaction has been fully or partially returned, it cannot be voided.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Due to new issuer regulations, a void now automatically attempts to reverse the original transaction. If the reversal is successful, the original transaction status will be set to 'R'. If there is no need to reverse (i.e. offlines) or the reversal fails, the original transaction status will be set to 'V'. A successful response to the void will indicate that the original transaction has been removed from the batch in either case.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitAddValue" type="PosDebitAddValueReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitAddValue increases the amount on a stored value card. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note: This transaction has been obsoleted.</strong> See the PrePaidAddValue for an alternative.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitBalanceInquiry" type="PosDebitBalanceInquiryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitBalanceInquiry returns the available balance for a Debit card. Available for retail devices in the Philippines only.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitReturn" type="PosDebitReturnReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitReturn allows the merchant to return funds from a prior debit sale back to the cardholder. Returns can be for the entire amount associated with the original sale or a partial amount. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">For added fraud protection, DebitReturn can be run utilizing the GatewayTxnId from a previous debit sale. When this feature is used, the gateway tracks returns against the original sale and applies several rules.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            The following rules apply when returning by GatewayTxnId:
                            <ul><li>The total of all returns cannot exceed the original sale amount. This is true for processing a single return as well as multiple returns against the same original transaction.</li><li>A return amount must be greater than zero.</li><li>DebitReversal is not allowed against original transactions for which a full or partial return has been run.</li><li>The supplied card number (from the track data or token) and the card number of the original transaction must match.</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If the original transaction is in the current open batch, a DebitReversal may be used instead. However, only a return can be used once the batch is closed.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitReversal" type="PosDebitReversalReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitReversal cancels a previous DebitSale transaction. This should be used in timeout situations or when a complete response is not received. This transaction can be used to cancel a transaction that was approved online but subsequently declined by the chip.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Debit reversal transactions must be submitted within 31 days of the original transaction.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Partial reversals are not supported for debit transactions.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> DebitReversal is not allowed after a pre-authorization is completed with a DebitAddToBatch. Use DebitRefund instead.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitAddToBatch" type="PosDebitAddToBatchReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitAddToBatch is used to add a pre-authorized debit transaction to the open batch. If a batch is not open this transaction will create one.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <b>Note:</b> DebitAuth is only allowed in Canada.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitAuth" type="PosDebitAuthReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitAuth authorizes a debit transaction. These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time by using DebitAddToBatch.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <b>Note:</b> DebitAuth is only allowed in Canada
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="DebitSale" type="PosDebitSaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">DebitSale authorizes a debit card transaction. These authorizations are automatically added to the batch to be settled. If a batch is not already open this transaction will create one.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTBalanceInquiry" type="PosEBTBalanceInquiryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTBalanceInquiry returns the available balance for an EBT account.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTCashBackPurchase" type="PosEBTCashBackPurchaseReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTCashBackPurchase is used to purchase goods with EBT Cash Benefits. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTCashBenefitWithdrawal" type="PosEBTCashBenefitWithdrawalReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTCashBenefitWithdrawal is used to disburse cash from an EBT Cash Benefits account. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTFSPurchase" type="PosEBTFSPurchaseReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTFSPurchase is used to purchase goods with EBT Food Stamps/SNAP. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTFSReturn" type="PosEBTFSReturnReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTFSReturn is used to credit previously debited funds to an EBT Food Stamps/SNAP account for merchandise returned. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTFSReversal" type="PosEBTFSReversalReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTFSReversal cancels a prior purchase in the current open batch. This can be used in timeout situations or when a complete response is not received. In either case, the client is unsure of the outcome of the prior transaction.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">This can be used on prior transactions of the following types: EBTFSPurchase, EBTFSReturn, EBTCashBenefitWithdrawal and EBTCashBackPurchase.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Partial reversals are not supported for EBT transactions.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EBTVoucherPurchase" type="PosEBTFSVoucherReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">EBTVoucherPurchase is obsolete and should no longer be used</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="EndToEndTest">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">Test for internal use only.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> For a quick test, clients can use TestCredentials.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="FindTransactions" type="FindTransactionsReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">FindTransactions is used to search all current gateway transactions based on provided filter criteria.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> When possible, searching should be done by TxnId. This is a single transaction search unless used in conjunction with FindHistoryInd.  Any additional criteria is ignored.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> The gateway is not a long-term storage service. Generally, data is only available for 90 days; however, recurring billing data is saved for two years. For longer periods, Heartland offers other services. Further information can be provided during boarding and certification.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GetAttachments" type="PosGetAttachmentReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GetAttachments is used to retrieve attachments (i.e. documents, images, etc.) associated with a particular transaction.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GetTransactionStatus" type="PosGetTransactionStatusReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GetTransactionStatus is used to retrieve the status of any gateway transaction.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GetUserDeviceSettings" type="PosGetUserDeviceSettingsReqType">
              <xs:annotation>
                <xs:documentation>
                  <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="GetUserSettings" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <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="GiftCardActivate" type="PosGiftCardActivateReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardActivate is used to activate a new stored value account and load it with an initial balance. If the specified stored value account is already active, the request will fail.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Stored value accounts can also be activated implicitly via the GiftCardAddValue method depending on the platform configuration for a customer's specific program.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This method supports loyalty points.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardAddValue" type="PosGiftCardAddValueReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardAddValue loads an amount onto a stored value account. Depending on the gift processor, this request may also be used to automatically activate the account.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This method supports loyalty points.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardAlias" type="PosGiftCardAliasReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardAlias allows the client to manage stored account aliases. An alias is an alternate identifier used to reference a stored value account. Restrictions on the possible values of alias must be obtained from the gift processor.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardBalance" type="PosGiftCardBalanceReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardBalance is used to retrieve the balance(s) for each currency supported by a stored value account.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardCurrentDayTotals" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardCurrentDayTotals is used to retrieve stored value transaction totals for the current day.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This has been obsoleted and should no longer be used. See FindTransactions for an alternative.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardDeactivate" type="PosGiftCardDeactivateReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardDeactivate is used to deactivate an active stored value account that otherwise has not been used. Attempts to deactivate an account that is not active or has had activity will fail.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> For some gift processors, once a stored value account has been deactivated it can never be re-activated.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardPreviousDayTotals" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardPreviousDayTotals is used to retrieve stored value transaction totals for the previous day.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This has been obsoleted and should no longer be used. See FindTransactions for an alternative.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardReplace" type="PosGiftCardReplaceReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardReplace transfers balances from one stored value account to another. This is typically to replace a lost or stolen account with a new one or to consolidate two or more accounts into a single account. After a transfer has completed, the source account is closed/deactivated and can no longer be used. The balance for the destination account is returned in the response.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardReversal" type="PosGiftCardReversalReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardReversal is used to cancel a prior stored value transaction. This should be used in timeout situations or when a complete response is not received. In either case, the client is unsure of the outcome of the prior transaction.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            This can be used on prior transactions of the following types:
                            <ul><li>GiftCardActivate</li><li>GiftCardAddValue</li><li>GiftCardSale</li><li>GiftCardReward</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> When reversing a transaction, all changes to the account are cancelled, including any additional value added by rewards programs or automated promotions.
                          </p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> If the reversal also fails to return a complete response (likely due to a timeout), wait until connectivity is restored and try again or contact support to ensure the proper result was achieved.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardReward" type="PosGiftCardRewardReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardReward is used when an account holder makes a payment using a payment form other than a stored value account (e.g. cash or credit card). The account holder may present their stored value account to earn points or other loyalty rewards, which would be added to their account. If successful, the rewarded amount is returned in the response.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This transaction is not used for purchases. Instead, the purchase amount is used to help determine what potential rewards may be added based on the merchant's loyalty and rewards program.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardSale" type="PosGiftCardSaleReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardSale is used to redeem value from a stored value account.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Partial approvals are supported by default. If the account balance is non-zero but insufficient to cover the full redemption amount, the remaining balance is drained and the amount still owed is returned in the response for additional payment. The merchant may accept any additional tender to cover the amount still owed. If the account holder is unable to provide additional payment and the purchase is cancelled, this transaction should be voided to return the balance back to the account. See the "split tender card amount" and "split tender balance due amount" fields in the response.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardTip" type="PosGiftCardTipReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardTip is used to add tip to an existing GiftCardSale. If successful, the tip amount will be subtracted from the stored value account.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This transaction is for future use.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="GiftCardVoid" type="PosGiftCardVoidReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">GiftCardVoid is used to cancel a prior successful transaction. When voiding a transaction, all changes to the account are reversed, including any additional value added by rewards programs or automated promotions.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                            This can be used on prior transactions of the following types:
                            <ul><li>GiftCardActivate</li><li>GiftCardAddValue</li><li>GiftCardDeactivate</li><li>GiftCardReplace</li><li>GiftCardSale</li><li>GiftCardReward</li></ul></p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Only the most recent transaction is allowed to be referenced as the prior transaction for a gift void. For example, if an activate is run and then an add value is run, only the add value can be voided.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Impersonate" type="PosImpersonateReqType">
              <xs:annotation>
                <xs:documentation>
                  <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="InteracDeviceKeys" type="PosInteracDeviceKeysReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">For Canadian merchants, this message can be used to synchronize the keys used for encrypting data in debit card messages for the Canadian debit card network, also referred to as Interac.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="InvalidateAuthentication" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <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="ManageSettings" type="ManageSettingsReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This service is used to manage certain Site or Device settings. Please refer to the Developer's Guide for further details.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ManageTokens" type="ManageTokensReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ManageTokens allows merchants to update information referenced by a specific multi-use token.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> Single-use tokens are not supported in this request.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ManageUsers" type="PosManageUsersReqType">
              <xs:annotation>
                <xs:documentation>
                  <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="OverrideFraudDecline" type="PosOverrideFraudDeclineReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">OverrideFraudDecline is used to process a CreditSale, CreditAuth or CreditReturn that was previously declined due to fraud. An override causes the fraud concerns to be ignored. The use of this function on a client should require management approval. This can only be done once, and for the original auth amount.</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="ParameterDownload" type="PosParameterDownloadReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ParameterDownload is used to initiate an EMV parameter download by clients interfacing to an EMV device. Typically, the client will only download new parameters after receiving an indicator that a download is needed in a prior response message. In addition, the client should time these downloads to be done between batches and during an idle time if possible.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> See the PDLNotification indicator in the response header.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="PrePaidAddValue" type="PosPrePaidAddValueReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">PrePaidAddValue is used to increase the balance associated with a prepaid card. The transaction is placed in the current open batch. If a batch is not open, this transaction creates an open batch.</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="PrePaidBalanceInquiry" type="PosPrePaidBalanceInquiryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">PrePaidBalanceInquiry returns the available balance for a prepaid card.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RecurringBilling" type="PosRecurringBillReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">RecurringBilling authorizes a one-time or scheduled recurring transaction. The authorization is placed in the current open batch. If a batch is not already open, this transaction creates an open batch.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">A scheduled recurring transaction is the default, but a one-time payment can be made by setting the OneTime value to 'Y'. One-time payments may be processed using card data managed by PayPlan. In this case, the stored payment PaymentMethodKey should be provided instead of CardData.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">The PayPlan application allows a merchant to set up and schedule recurring payments, but also provides other features including customer information management, secure payment (card and ACH) information storage (card-on-file), and automated email notifications to customers.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RecurringBillingAuth" type="PosRecurringBillReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">RecurringBillingAuth authorizes a one-time or scheduled recurring transaction. These authorization only transactions are not added to the batch to be settled. They can be added to a batch at a later time using CreditAddToBatch. Approved authorizations that have not yet been added to a batch are called open auths.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">A scheduled recurring transaction is the default, but a one-time payment can be made by setting the OneTime value to 'Y'. One-time payments may be processed using card data managed by PayPlan. In this case, the stored payment PaymentMethodKey should be provided instead of CardData.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">The PayPlan application allows a merchant to set up and schedule recurring payments, but also provides other features including customer information management, secure payment (card and ACH) information storage (card-on-file), and automated email notifications to customers.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportActivity" type="PosReportActivityReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportActivity returns all activity between the client devices and gateway for a period of time. This can be filtered to a single device if needed.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This has been obsoleted and should no longer be used. See FindTransactions for an alternative.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportBatchDetail" type="PosReportBatchDetailReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportBatchDetail returns information on each transaction currently associated to the specified batch. This report is for the site and device referenced in the header.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportBatchHistory" type="PosReportBatchHistoryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportBatchHistory returns information about previous batches over a period of time. This report is for the site referenced in the header.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportBatchSummary" type="PosReportBatchSummaryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportBatchSummary returns a batch's status information and totals broken down by payment type. This report is for the site and device referenced in the header.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportOpenAuths" type="PosReportOpenAuthsReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportOpenAuths returns all authorizations that have not been added to a batch for settlement. This report is for the site referenced in the header.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportSearch" type="PosReportSearchReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportSearch returns transaction information for a specified time period.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This has been obsoleted and should no longer be used. See FindTransactions for an alternative.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportTxnDetail" type="PosReportTxnDetailReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">ReportTxnDetail returns detailed information about a single transaction. This report is for the site and device referenced in the header.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="ReportTxnResearch" type="PosReportTxnResearchReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">Extended transaction information.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong> Note :</strong> This service is for internal use only. Future use.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RewardCashQuery" type="PosRewardCashQueryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">RewardCashQuery is used to query available reward point balance for a participating account. Available for devices in the AP region only</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This transaction is for future use.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="RewardCashRedeem" type="PosRewardCashRedeemReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">RewardCashRedeem is used to redeem available reward points for a participating account. Allowed for Reward Cash terminals configured for the Asia Pacific region only.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> This transaction is for Future Use.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SendFunds" type="PosSendFundsReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">Visa Direct Original Credit Transaction (OCT) and Master Card MoneySend Request service.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong>This transaction is for Future Use.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SendReceipt" type="PosSendReceiptReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">SendReceipt allows a client to send a receipt from a prior transaction out to specific destinations. The prior transaction must belong to the site and device referenced in the header.</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="TestCredentials" type="xs:anySimpleType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">TestCredentials validates the credentials passed in the header, but does not perform an action.</p>
                  <p xmlns="http://Hps.Exchange.PosGateway" />
                  <p xmlns="http://Hps.Exchange.PosGateway">
                    <strong>Note:</strong> TestCredentials should only be used at the beginning of the certification period to validate credentials and connectivity to the certification environment. This should not be used as a "heartbeat" check and is not required for processing with the gateway.
                          </p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="Tokenize" type="PosTokenizeReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">Tokenize is used to request the gateway to return a multi-use token for the supplied card data. </p>
                  <p xmlns="http://Hps.Exchange.PosGateway">No verification of the card data is performed.</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="TokenUpdaterHistory" type="PosTokenUpdaterHistoryReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">Allows merchants to retrieve a counts or details report of token updates performed by Auto Account Updater</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
            <xs:element name="SurchargeEligibilityLookup" type="PosSurchargeEligibilityLookupReqType">
              <xs:annotation>
                <xs:documentation>
                  <p xmlns="http://Hps.Exchange.PosGateway">TODO: add documentation</p>
                  <p xmlns="http://Hps.Exchange.PosGateway"></p>
                  <p xmlns="http://Hps.Exchange.PosGateway">Internal use only</p>
                </xs:documentation>
              </xs:annotation>
            </xs:element>
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>
See Also
PosRequest ElementPosGateway Schema