Skip to main content

Loyalty Partner Program

Loyalty Frequently Asked Questions (FAQ)

Last updated: 01-Apr-2025

Q: I am getting a PCATS7 error when trying to use loyalty.

A: Most likely there is a NPE occurring when processing the response. Please verify the response coming back from the loyalty host. 

 

Q: Site is having connection issues.

A: It could be a few things but one thing to try is reducing the heartbeat value for the FEP in the PCATS config page. It can be set as low as 120 (Seconds). This should keep the connection open and detect disconnects faster. 

 

Q: Which certificates are supported for the tls 1.2 connection (SSL in the PCATS config)?

A: We do not support self signed certificates. You must use one from a trusted signing authority. We support the major ones that are supported by Java. 

 

Q: <Insert problem here> is happening in the field, can you tell me what's wrong?

A: Please call into helpdesk and have a case created. They may want to pull logs from your commander. They may escalate for further investigation. 

 

Q: Is Fuel Price Data only included on the first getRewardsRequest?

A: correct, We only send fuel info on the first getRewardsRequest, there may be a POS enhancement in the future to include this until we have fueled, but currently it is only available on the first request. 

 

Q: When I send a PPG discount after fueling, it does not get applied.

A: PPG discount must be sent prior to fueling. If sent after fueling it will be ignored because we can no longer change the PPG price (due to weights and measures). You must send either a ticket level or line item discount after fueling. 

 

Q: How should we handle loyalty refunds?

A: Loyalty refunds are not currently supported. The site can still do a cash refund for the amount of the item if they choose to. 

 

Q: Is everything in the Conexxus document supported on Commander?

A: No, we do not use every message present in the document. GetCustomerMessaging, BeginCustomer, EndCustomer are a few of the unsupported ones. 

 

Q: Can the receipt text messaging from the loyalty host via FinalizeRewardResponse be formatted to show as bold, italic etc.?

A: Currently, no. Due to the  interconnected dependencies across a multitude of printer hardware platforms that would be needed in the implementation this is not currently supported. This ensures that our receipts have a consistent appearance for all supported printers both inside and outside at the dispensers.

 

Q. Message GetInstrumentDefinitionRequest is being sent by Commander and is not supported by the Loyalty Partner.

A. In PCATS configuration page, the flag "Enable Card Download from Host" will sent the message GetInstrumentDefinitionRequest and retrieve the BIN range table for loyalty from the PCATS host. The only customer using this feature is FIS, so it should be left unchecked for anyone else.

 

Q. When using Mobile Payment, Loyalty Rewards cannot be stacked - the 2 seem to operate independently.

A. As long as multiple loyalty instances are in play at the site level (EPS Loyalty), we can stack and report accordingly; but when loyalty rewards are applied via MPPA they cannot be stacked with rewards that might have been available via the EPS Loyalty Host, except for one very specific flow.

Local(acquired at the site) loyalty can stack with mobile if a very specific flow is followed:

  1. At the DCR one have to select the rewards softkey to start the transaction.
  2. Then when prompted, swipe/enter your loyalty card/id.
  3. When it prompts for payment you can use the mobile application to arm the pump.

Any other action to start the transaction will reserve the pump and prevent a local loyalty id from being acquired.

 

Q. Would like to be able to scan loyalty ID anytime during transaction (before, during, after).

A. Define a Loyalty Card Function Key to the touchscreen or keyboard which the cashier would press to invoke loyalty input rules (scan or alternate id?).

 

Q. When a transaction is initiated via a mobile app, if a Loyalty id is passed down to Commander via the Mobile Payment, is it sent to multiple loyalty hosts setup? Does it behave similar as initiated locally?

A. Mobile supports a loyalty ID list, so multiple loyalty tokens/IDs can be sent from the mobile host. Commander will match them through card matching logic so it would depend on the sites config. We also support above site discounting where the mobile host sends down discounts instead of IDs/tokens. In that flow we are not the ones matching and reaching out to the host, we just apply the given discounts. 

 

Q. Does Loyalty FEPS supports 2-way SSL authentication?

A. No. Commander only check certs when connecting.

 

Q. Is it possible to remove the step that requires the guest to tap 'I'm Done' on the pin pad to apply the discounts?

A. The prompt where you have to select “I’m done” is an attempt to acquire other loyalties for the transaction. This only happens when the site has multiple loyalty enabled and there are multiple loyalty FEPs configured for the site.

To disable this the site can disable multiple loyalty in the configuration. Look for "POS Configuration Page" in Commander User Manual.

 

Q. Does Loyalty supports GetCustomerMessagingRequest message?

A. No, this is currently not supported..

 

Q. What determines when a heartbeat message (GetOnlineLoyaltyStatusRequest) is sent?

A. The heartbeat is sent after a given period of inactivity. Any successful response from the host resets the timer. Hypothetically, If is a 24 hr busy site you could potentially never see the heartbeat.

 

Q. We have a customer that wants to offer consumers option to pay more to donate to green environmental causes.

A. Currently the Conexxus spec doesn’t support raising the price through loyalty and our POS would ignore the discount if it was trying to raise the price.

We have an option already for charitable donations though which can be setup at the site. 

 

Q. If the Loyalty host goes offline, does commander send Store&Forward in the order stored?

A. Yes, it sends in order.

 

Q. Is there a limit for how many transactions Store&Forward will hold?

A. There is a limit of 50 transactions. After that limit it will just say loyalty unavailable. The idea here is to reduce fraud risk with offline transactions.

 

Q. Why when using 'Rewards' as the soft key type, is the text on the DCR Idle screen is associated with that key not replaced with text configured, and instead the program name is displayed? 

A. The intention for this key type is to guide customers through loyalty programs available at the site if/when multiple loyalty programs are available. If only a single loyalty program is available, it will show the loyalty program name configured in PCATS. 

 

Q. How can we ensure tax calculation for discounted items, the tax is calculated against full price of item(s) before any discount is applied, and full taxable amount of each item is displayed?

A. The way to make sure the tax is calculated before the discount is applied is to use <ns2:DoNotRelieveTaxFlag value="yes"/> in an AddReward for each item.

Example:

<ns2:AddReward>
    <ns2:LoyaltyRewardID>90204766</ns2:LoyaltyRewardID>
    <ns2:InstantRewardFlag value="yes"/>
    <ns2:RewardTargetLineNumber>3</ns2:RewardTargetLineNumber>
    <ns2:RewardDiscountMethod>amountOff</ns2:RewardDiscountMethod>
    <ns2:RewardValue>0.50</ns2:RewardValue>
    <ns2:RewardLimit type="quantity">20.0</ns2:RewardLimit>
    <ns2:RewardReceiptDescShort>ITEM DISC</ns2:RewardReceiptDescShort>
    <ns2:RewardReceiptDescLong>LINE ITEM DISC</ns2:RewardReceiptDescLong>
    <ns2:DoNotRelieveTaxFlag value="yes"/>
</ns2:AddReward> 

 

 

Sample Calculations & Receipt: 

Item D $9.97 + Item E $9.98 + Item F $9.99 = Before Discount Sub Total $29.94

25% tax calculated against the 'Before Discount Sub Total' = $7.49

 

After $0.50 discount applied per item = Updated Sub Total $28.44

 

Final Total $28.44 + $7.49 = $35.93

 

Q. Why isn't the fueling transaction stopping at the set amount for the 'Reward Limit' when type is quantity?

A. Using a volume limit could result in situations where the computed currency amount includes fractional cents. The Commander is unable to predict how fractional cents will be handled by each and every dispenser type. The potential for charging customer the incorrect amount or an amount that differs from what they were charged/authorized exist on a loyalty transaction where a quantity/volume limit is used. The Commander logic  ensures the dollar amount on the pump will not differ from the collected/authorized amount, by prioritizing the currency limit. Small deviations from the loyalty quantity/volume limit will occur and should be expected.

 

Q - How can we match transaction from loyalty messages to same transaction in the T-log? 

A - The POSTransactionID in the loyalty message is a padded transaction number. If you remove the first digit and the last two digits from this number, you will be left with the 7-digit POS transaction number or transaction sequence number, used in the T-logs. 

Sample:

From GetRewardsRequest: 

<ns2:TransactionData>

        <ns2:TransactionHeader>

            <ns3:OutsideSalesFlag value="no"/>

            <ns3:RegisterID>1</ns3:RegisterID>

            <ns3:CashierID>1</ns3:CashierID>

            <ns2:TillID>001</ns2:TillID>

<ns2:POSTransactionID>0101002932</ns2:POSTransactionID> 

<ns2:BusinessPeriod>

                <ns3:BusinessDate>2025-02-24</ns3:BusinessDate>

                <ns3:PrimaryReportPeriod interval="day">6</ns3:PrimaryReportPeriod>

                <ns3:BeginDate>2025-02-20</ns3:BeginDate>

                <ns3:BeginTime>09:09:03-05:00</ns3:BeginTime>

                <ns3:EndDate>2100-01-01</ns3:EndDate>

                <ns3:EndTime>00:00:00-05:00</ns3:EndTime>

            </ns2:BusinessPeriod>

            <ns3:EventStartDate>2025-02-24</ns3:EventStartDate>

            <ns3:EventStartTime>14:19:11-05:00</ns3:EventStartTime>

 

And now the same transaction from the T-Log:

<termMsgSN type="FINANCIAL" term="101">10129</termMsgSN>
            <trTickNum>
                <posNum>101</posNum>
                <trSeq>1010029</trSeq>
            </trTickNum>

 <trUniqueSN>52</trUniqueSN>
            <period level="0" seq="14" name="HOUR"/>
            <period level="1" seq="9" name="Shift"/>
            <period level="2" seq="6" name="Day"/>
            <date>2025-02-24T14:19:17-05:00</date>
            <duration>44</duration>
            <till>1</till>

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