Skip to main content

In-Person Payments

HostTransaction.hpp

Last updated: 18-Jul-2024

namespace verifone_sdk

struct HostTransaction

  • The transaction information. This will have multiple components describing the payment, instrument/source, merchant and the sales context.

Public Functions

inline HostTransaction(std::optional<std::string> referenceId_, std::optional<TransactionType> transactionType_, std::optional<std::string> currencyCode_, std::optional<std::string> totalAmount_, std::optional<std::string> gratuityAmount_, std::optional<std::string> cashbackAmount_, std::optional<std::string> discountAmount_, std::optional<std::string> taxAmount_, std::optional<std::string> createdDateTime_, std::optional<std::string> merchantId_, std::optional<std::string> poiId_, std::optional<std::string> poiName_, std::optional<std::string> poiSerialNumber_, std::optional<std::string> poiDeviceType_)

Public Members

std::optional<std::string> referenceId

  • A client (user friendly) identifier for the transaction generated at the outset of a business event. The format will be dependent on the calling system.
  • A reference supplied by the system retaining the original source information and used to assist in locating that transaction or a copy of the transaction. This value is critical in matching values that are sent to other Payment processors or Acquirers. This value would correspond to the ISO8583 specification as RRN in attribute DE 37, which limits the value to being an alphanumeric value 12 characters.

std::optional<TransactionType> transactionType

  • A type indicator for the main operation or service that was performed as part of the transaction event.
  • See TransactionType

std::optional<std::string> currencyCode

  • Three-letter ISO 4217 alphabetical currency code. e.g. USD. Values correspond to ISO 4217.

std::optional<std::string> totalAmount

  • A amount type represented as money for all financial-related fields, such as balance, payment due…

std::optional<std::string> gratuityAmount

  • The amount of gratuity or Tip if applicable.

std::optional<std::string> cashbackAmount

  • The amount of cashback. This is optional.

std::optional<std::string> discountAmount

  • The discount amount for the total quantity.

std::optional<std::string> taxAmount

  • The tax for this merchandise based on total quantity.

std::optional<std::string> createdDateTime

  • The time that the transaction occured at the POI/Terminal, this is referred to as the acceptor datetime in ISO8583 specification DE 12. In some cases this may reflect the date time when the transaction was received at a client Gateway or Switch where this is not managed by Verifone. This format should include the necessary timezone information

std::optional<std::string> merchantId

  • The Code identifying the card acceptor as issued by the Acquiring Institution. This may not be unique across institutions. Also referred to as the MID. ISO8583 - DE 42

std::optional<std::string> poiId

  • The Code identifying the card accepting device as issued by the Acquiring Institution. This may not be unique across institutions hence the use of a unique surrogate key. Also referred to as the TID. ISO8583 - DE 41 or Terminal ID.
  • This value will be validated against the authenticated Identity. So must match the range of identifiers that have been allocated to the Merchant Entity who authenticates to the API.

std::optional<std::string> poiName

  • The identifier used to represent this POI from an estate management perspective. This is not the same as the TID which will be derived from the relationship with an Acquirer Agreement.

std::optional<std::string> poiSerialNumber

  • A value to indicate the device serial number where known.

std::optional<std::string> poiDeviceType

  • The device type where transaction was captured, if known. This could be a model number or other description e.g. VX690.

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo