Open the Portico Developer Guide site
PosGateway Schema
PosRequest Element
PosGateway Schema : PosRequest Element
Description

Request message from a client to the gateway

Namespace http://Hps.Exchange.PosGateway
Diagram
Ver1.0 Element Choice PosRequest Element
Overview
PosRequest

Request message from a client to the gateway

clientType optional

Client type internal use only

clientVer optional

Client version internal use only

Choice
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

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.

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..

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

AltPaymentAuth PosAltPayAuthReqType Complex Type

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

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.

AltPaymentCreateAuth PosAltPayCreateAuthReqType Complex Type

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

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.

AltPaymentOrder PosAltPayOrderReqType Complex Type

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

AltPaymentReturn PosAltPayReturnReqType Complex Type

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

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

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.

AltPaymentSessionInfo PosAltPaySessionInfoReqType Complex Type

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

AltPaymentVoid PosAltPayVoidReqType Complex Type

AltPaymentVoid takes a Alternate Payment GatewayTxnId and performs a void against that transaction. AltPaymentAuth, AltPaymentOrder and AltPaymentCreateAuth can 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.

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.

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.

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.

CheckQuery PosCheckQueryReqType Complex Type

CheckQuery is used to query info about a check transaction.

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.

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.

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).

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.

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.

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.

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.

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).

CreditIPQuery PosCreditIPQueryReqType Complex Type

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

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.

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.

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.

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.

NTRSCreateToken NTRSCreateTokenReqType Complex Type

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

Note: RESERVED FOR FUTURE USE

NTRSGetTokenCryptogram NTRSGetTokenCryptogramReqType Complex Type

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

Note: RESERVED FOR FUTURE USE

NTRSTokenStatus NTRSTokenStatusReqType Complex Type

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

Note: RESERVED FOR FUTURE USE

NTRSUpdateTokenStatus NTRSUpdateTokenStatusReqType Complex Type

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

Note: RESERVED FOR FUTURE USE

NTRSTokenMetadata NTRSTokenMetadataReqType Complex Type

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

Note: RESERVED FOR FUTURE USE

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.

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).

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.

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.

DebitBalanceInquiry PosDebitBalanceInquiryReqType Complex Type

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

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.

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.

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.

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

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.

EBTBalanceInquiry PosEBTBalanceInquiryReqType Complex Type

EBTBalanceInquiry returns the available balance for an EBT account.

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.

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.

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.

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.

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.

EBTVoucherPurchase PosEBTFSVoucherReqType Complex Type

EBTVoucherPurchase is obsolete and should no longer be used

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.

GetAttachments PosGetAttachmentReqType Complex Type

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

GetTransactionStatus PosGetTransactionStatusReqType Complex Type

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

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.

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.

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.

GiftCardBalance PosGiftCardBalanceReqType Complex Type

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

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.

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.

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.

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.

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.

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.

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.

Impersonate PosImpersonateReqType Complex Type

Note: This is for internal use only.

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.

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.

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.

ManageUsers PosManageUsersReqType Complex Type

Note: This is for internal use only.

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.

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.

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

PrePaidBalanceInquiry PosPrePaidBalanceInquiryReqType Complex Type

PrePaidBalanceInquiry returns the available balance for a prepaid card.

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.

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.

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.

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.

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.

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.

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.

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.

ReportTxnDetail PosReportTxnDetailReqType Complex Type

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

ReportTxnResearch PosReportTxnResearchReqType Complex Type

Extended transaction information.

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

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.

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.

SendFunds PosSendFundsReqType Complex Type

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

Note:This transaction is for Future Use.

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.

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.

TokenUpdaterHistory PosTokenUpdaterHistoryReqType Complex Type

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

Attributes
NameTypeUseDefaultFixedDescription
clientType optional  

Client type internal use only

clientVer optional  

Client version internal use only

Source
<xs:element name="PosRequest" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:documentation>
      <p xmlns="http://Hps.Exchange.PosGateway">Request message from a client to the gateway</p>
    </xs:documentation>
  </xs:annotation>
  <xs:complexType>
    <xs:choice>
      <xs:element name="Ver1.0">
        <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>
    </xs:choice>
    <xs:attribute name="clientType">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Client type internal use only</p>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="clientVer">
      <xs:annotation>
        <xs:documentation>
          <p xmlns="http://Hps.Exchange.PosGateway">Client version internal use only</p>
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
</xs:element>
See Also
PosGateway Schema