Skip to main content

In-Person Payments

HostPaymentData.hpp

Last updated: 18-Jul-2024

namespace verifone_sdk

struct HostPaymentData

  • The Payment Data object is introduced to reflect the nexo/ISO20022 structure that encapsulates the data elements required to execute the required transaction, such as the Instrument used e.g. card and the authentication details (e.g. the actual signature or the encrypted PIN block if captured).

Public Functions

inline HostPaymentData(std::optional<std::string> billingStreet_, std::optional<std::string> billingCity_, std::optional<std::string> billingCountrySubdivision_, std::optional<std::string> billingPostCode_, std::optional<std::string> billingCountry_, std::optional<std::string> pinEncrytpedData_, std::optional<std::string> pinKeySerialNumber_, std::optional<InstrumentType> instrumentType_, std::optional<std::string> maskedCardNumber_, std::optional<std::unordered_map<std::string, std::string>> cardDataEmvTags_, std::optional<std::string> cardDataEparms_, std::optional<CardEncryptionType> cardDataEncryptionType_, std::optional<std::string> cardDataTrack2_, std::optional<std::string> cardDataTrack2Ksn_, std::optional<std::string> cardDataPan_, std::optional<std::string> cardDataPanKsn_, std::optional<std::string> cardDataExpiry_, std::optional<std::string> cardDataExpiryKsn_, std::optional<std::string> cardDataCvv_, std::optional<std::string> cardDataCvvKsn_, std::optional<std::string> cardBrand_, std::optional<std::string> cardproduct_, std::optional<OrderType> orderType_)

Public Members

std::optional<std::string> billingStreet

  • Customer Billing Address Street

std::optional<std::string> billingCity

  • Customer Billing Address City Name of a built-up area, with defined boundaries, and a local government. This could be city or town.

std::optional<std::string> billingCountrySubdivision

  • Customer Billing Address Country Subdivision Identifies a sub-division of a country which may be state, region or county.

std::optional<std::string> billingPostCode

  • Customer Billing Address Postal Code Identifier consisting of a group of letters and/or numbers that is added to a postal address to assist the sorting of mail

std::optional<std::string> billingCountry

  • Customer Billing Address Country The ISO 3166-1 alpha-3 country code.

std::optional<std::string> pinEncrytpedData

  • Encrypted PIN. (Personal Identification Number). The PIN data associated with the Card holder or Customer (where known). This value should be an encrypted representation of the PIN. This is attribute ISO8583 DE52. This value can never be persisted or logged. Authentication Online PinData EncryptedPINBlock The encrypted PIN content as a string.

std::optional<std::string> pinKeySerialNumber

  • Authentication Online PinData EncryptedPINBlock The KSN is a constructed element that has multiple parts. In DUKPT 2009 this identification information is referred to as a Key Serial Number (KSN) sent by the initiator of the message to uniquely identify the derived key at the recipient. This is the first 5 bytes of the KSN. The structure should follow the standard:
Issuer Identification Number - 3 bytes
Merchant ID - 1 byte
Group ID - 1 byte
Device ID - 19 bits
Transaction Counter 21 bits.

std::optional<InstrumentType> instrumentType

  • To identify the type of instrument whether it is a card, token or other… see InstrumentType

std::optional<std::string> maskedCardNumber

  • The masked value for the Card Number.

std::optional<std::unordered_map<std::string, std::string>> cardDataEmvTags

  • To identify the type of encryptionKey whether it is a Verifone keys, Acquirer/Customer keys or none.

std::optional<std::string> cardDataEparms

  • VCL AES-DUKPT encryption requires the use of eParms which is an additional blob of encrypted data associated with the encrypted track data.

std::optional<CardEncryptionType> cardDataEncryptionType

  • Encryption Type CardEncryptionType()

std::optional<std::string> cardDataTrack2

  • Encrypted Blob Base-64 converted variable length blob.

std::optional<std::string> cardDataTrack2Ksn

  • Track2 Key Serial Number NOTE: This is optional. If encryption is based on the encryption used

std::optional<std::string> cardDataPan

  • PAN - Used for Manual Entry

std::optional<std::string> cardDataPanKsn

  • PAN Key Serial Number - Used for Manual Entry NOTE: This is optional. If encryption is based on the encryption used

std::optional<std::string> cardDataExpiry

  • Expiry - Used for Manual Entry

std::optional<std::string> cardDataExpiryKsn

  • Expiry Key Serial Number - Used for Manual Entry NOTE: This is optional. If encryption is based on the encryption used

std::optional<std::string> cardDataCvv

  • CVV - Used for Manual Entry

std::optional<std::string> cardDataCvvKsn

  • CVV Key Serial Number - Used for Manual Entry NOTE: This is optional. If encryption is based on the encryption used

std::optional<std::string> cardBrand

  • Represents a Card type or brand. It should correspond to a consistent name, the list of constants is in CardInformation

std::optional<std::string> cardproduct

  • The product name associated with the card brand. e.g. Classic, Standard, Gold, Platinum, World. This must correspond to an actual product name.

std::optional<OrderType> orderType

  • Order type see OrderType

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