Loading
Point of Sale
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Payment Error Handling

          Payment Error Handling

          An order failure with unknown payment statuses is critical. Point of Sale made enhancements addressing this issue by adding additional parameters and descriptive order statuses in the CMS reporting. Additionally, there is the abort option in the app's user interface to mark the payment status as unknown in case of communication failures between the app and the terminal. This enables you to verify and reconcile the transaction later depending on the order status in the CMS failed order report.

          Set Payment Timeouts

          Control the timeout duration for terminal requests so the POS app waits for a payment gateway response. You can also set the duration for API requests so the system waits for a response from the payment status check API. Setting the request duration ensures efficient communication and prevents delays during transactions. Configure the duration to optimize performance and maintain a smooth user experience.

          Set Payment Request Timeout

          Set the duration of the terminal requests to control how long the POS app will wait for a response from the payment gateway before timing out. The default duration is set to 150 seconds, and it's recommended not to use extremely low values to avoid potential issues.

          1. Go to Integrations | Payment Gateways.
          2. Edit a configuration.
          3. Set Terminal Request Timeout Interval In Seconds to your desired value.
          4. Save your changes.

          Set Payment Status Verification Request Timeout

          Set the duration of the API requests to control how long the system will wait for a response from the payment status check API. Negative values are not allowed, and the recommended default value is 5 seconds.

          1. Go to Integrations | Payment Gateways.
          2. Edit a configuration.
          3. Set Payment Status Check API Timeout In Seconds to your desired value.
          4. Save your changes.

          Failed Orders Corrective Action

          Get details of how to identify various failed order scenarios and address their corrective actions in Point of Sale.

          Failure Type

          Likely User Scenario

          /

          Probable Cause

          Corrective Actions

          Successful Orders without Payments

          Order number is available in the terminal console but not in CMS success/failed order reports

          Not an expected scenario This is not an expected behavior for the POS app. If this is experienced, contact Salesforce Customer Support.

          Orders having Aborted payments

          Order with payment status UNKNOWN (before 8.1.1) and ABORTED (from 8.1.1) in CMS Failed Order report

          • Payment gateway timeout
          • Check Wi-Fi connectivity at the store
          • Consult with the payment processor on why the delay in processing occurs
          Merchant should manually refund customers directly from the Payment Gateway tied to each individual order.

          Orders having Auto-Reverted payments

          Order is listed in the payment reversal CMS report

          • Merchant's API Endpoint errors
          • Check why order processing failed
          • Check Point of Sale's platform on why the scenario occurred
          • Check your merchant's OMS on why order processing failed
          No action needed

          Orders Pending Payments

          Order is listed in Failed Order report with UNKNOWN (before 8.1.1) and FAILED (from 8.1.1) order status and PENDING payment status

          • Associate force closed app
          • App crashes
          • Check if there are any Phase 2 API issues in the Point of Sale platform
          • The app should not be closed during an ongoing transaction.
          • Crashes or submission failures are not expected behavior and need to be resolved.
          • Make sure to relaunch the app as the app verifies the payment status if it's a card payment and sends the correct status to the platform.

          Orders having Cancelled Payment

          Order is listed in Failed Order report with FAILED order status and CANCELED payment status.

          • Customer changed their mind
          • Associates are canceling the payments
          • Check if there are any card processing issues.
          No action needed

          Orders having Declined Payment

          Order is listed in Failed Order report with FAILED order status and DECLINED payment status

          • Customer credit card declined
          • Bad payment terminal hardware
          • Check why payments are declined by consulting with the payment processor
          No action needed

          Orders having Approved Payment but order submission failed

          Order is listed in Failed Order report with FAILED order status and APPROVED payment status

          • Customer's credit card was accepted
          • POS was closed while payment was in progress but payment completed on terminal
          • When the order was synced by the app to Point of Sale's platform the order couldn't be processed by the platform so the payment is reverted.
          No action needed

          Orders having UNKNOWN (before 8.1.1) or CANCELLED (from 8.1.1) cash orders

          Cash order is listed in Failed Order report with FAILED order status and UNKNOWN (before 8.1.1) or CANCELLED (from 8.1.1) payment status

          • Associate cancels the cash tender payment by using the cross button in the cash payment interstitial after choosing OPEN DRAWER
          • App doesn’t know if cash was returned to the customer as the payment was canceled after opening the drawer
          • No action needed assuming that the cash would be returned to the customer by the associate as order was cancelled

          Orders having FAILED for In Store Pay By Link or Remote Pay By Link order

          Order with FAILED status and FAILED In Store Pay By Link or Remote Pay By Link tender will be in CMS

          • Click on In Store Pay By Link or Remote Pay By Link tender on Cart screen in the app
          • While generating QR code, if there is a problem generating QR code, you will see payment error with generating payment QR code

          No action needed

          Orders having DISCARDED card tender orders

          Order with FAILED status and DISCARD card tender will be in CMS

          • Go to multi tender screen and add a cash value
          • Swipe the cell where cash value is present, you will get an option to delete it

          No action needed

          FAILED order having Approved cash tenders

          Order with FAILED status and approved cash tender will be in CMS

          • Click on the cash tile on the cart screen
          • Complete a partial payment and then delete it
          • Reset tender pop-up will be shown
          • If any cash were accepted during this order, then either cash drawer will be opened or QR code camera screen will be shown on the POS to return the cash
          No action needed

          PENDING ORDERS with missing order IDs

          Orders with a PENDING ORDER status and missing order IDs will be in CMS

          Adyen callback URL configured at the parent account level in the Adyen Portal, allowing events to be received from all regions Merchant should configure individual region-specific callback URLs for only the region-specific Adyen account

          Scenarios That Result in Failed Orders

          These scenarios explore cases where the payment can be approved in the terminal but the CMS report can have the order status as FAILED/ UNKNOWN.

          Order Fails After Terminal Payment Approval

          A payment can be approved by the terminal and fail in the order submission phase in the Point of Sale platform. In this case, the payment will be reverted by the platform, and the same information will become available in the CMS Payment Reversals report.

          An iPad displays an online shopping cart with a notification that a transaction is not complete.

          Payment Request Fails at Terminal

          On checkout after selecting card as the mode of payment, the POS app initiates the payment request to the terminal. A communication failure can occur between the POS app and the terminal which would cause the app to not receive any response from the terminal after payment initiation. Payment Request Failures can occur in the following scenarios:

          Payment Request Timeout

          The default timeout value for a payment request is 150 seconds and is configurable in CMS. In the case of a timeout, the response from the terminal wasn’t received by the POS and hence it performs an additional request to the terminal to verify the transaction status of the previously initiated payment. This identifies the success or failure of the payment and submits the same information to the platform so that it can get reported in the CMS.

          Note
          Note There is a possibility of a transaction status verification request timeout as well. In this case, the associate can cancel the transaction from the POS app or from the terminal using the "X" button. In case of a cancel request timeout, the user will be able to abort the transaction.

          An iPad screen displays an online retail app with a timed out payment request.

          Payment Request Fail Due to Internet Failure

          When there is an internet failure after a payment request is initiated, the payment request fails due to network unavailability which disrupts communication between POS and the terminal. The POS app sends a request to the terminal to verify the transaction status of the previously initiated payment. With a network failure, the transaction status request also fails. The associate can cancel the transaction from the POS app or from the terminal using a button. In the case of a cancel request failing, the user will be able to abort the transaction.

          The Payment Tender Status for the order will be reported as "ABORTED" in the CMS Failed Orders report as the POS app is unable to know the exact payment status of the order. You will need to manually verify and reconcile the transaction.

          A screenshot of a point of sale app on a tablet.An application screen displays an abort message.

          Cancel Request Fails During Payment in Progress

          After the POS app initiates the payment request to the terminal, while the payment is in progress, the associate can cancel the request using the "X" button. There can be communication failure between the POS app and the terminal causing the app to not receive any cancel response from the terminal. Payment In-Progress with Cancel Request Failures can occur in the following scenarios:

          Cancel Request Timeout

          The default timeout value for cancel requests is 150 seconds and is configurable from CMS. When the cancel request timeouts, the POS app sends a request to the terminal to verify the transaction status of the canceling payment. In the case of a transaction request time out, the user will be able to abort the transaction. In case of an abort, the Payment Tender status is reported as "ABORTED" in the CMS Failed Order reports as the POS app is unable to know the exact payment status of the order. You will need to manually verify and reconcile the transaction.

          A tablet displaying a point of sale system screen.

          Cancel Request Fail Due to Internet Failure

          When an internet failure occurs after a cancellation request from the POS app, there is no communication between the POS app and the terminal. The POS app will not know the status of the cancel request. The POS app will send a request to the terminal to verify the transaction status of the previously initiated payment. In the case of a transaction request time out/fail due to network failure, the user will be able to abort the transaction.

          A screen displays a fashion item and associated payment options.

          Payment and Order Successful but Missing in CMS

          When the payment is approved in the terminal but there are intermittent network failures during communication to the platform, the POS app persists these pending orders locally as failed and syncs them to the platform when the network is online. The associate is shown the failure message and then the cart is voided as we cannot confirm the order. These pending orders will show up in the checkout screen for the subsequent orders and the user can see the details and manually sync them from the pending orders screen. The associate can also see all the pending orders by choosing the pending orders deep link if configured in the Hamburger Menu. Until the orders sync up to the platform, the Payment Tender Statuses for these orders are shown as "PENDING" and Order Status as "UNKNOWN" in CMS Failed Orders report.

          The POS app shows the order failed and cart voided warning.
          Note
          Note It is possible that the platform received the order request, but the POS did not receive a confirmation response due to network failure. In that case, the order will show up as a successful order in CMS but the POS will persist the order locally as failed. On pending order sync, the order will appear in the failed order report.

          Pending Payment and Unknown Order Status in CMS

          When the POS app is force-closed after the payment is initiated, and before the app receives a response from the terminal and communicates it to the platform, the Payment Tender Status remains "PENDING", and the Order Status as "UNKNOWN" in CMS Failed Orders report. These orders will not be listed in the pending orders screen in the POS app.

          Note
          Note The app should never be closed during an ongoing payment.

          Adyen-Specific Scenario

          In such scenarios, in the case of Adyen's credit card payment, the associate will not be able to return the money to the customer. Hence, the app will remember these order references, verify the payment status with the terminal, and report the same during the next session to the platform. These pending verification orders are seen in the pending orders screen below:

          The POS app displays details of a failed order from an Ayden's transaction.

          The payment verification is done during the next successful order placement in the case of 1:1 card reader topology and during the next successful card order for 1:N card reader topology settings. If the payment was successful, then the platform refunds these payments as the app did not show the order confirmation screen for these orders. These orders are modified to have a Payment Tender Status as "APPROVED" and an Order Status as "FAILED" in the Failed Orders report in CMS. If the app is unable to retrieve the status from the terminal, it reports the Payment Tender Status as "ABORTED" and they have to be reviewed and manually refunded to the customer.

          Verifone-Specific Scenario

          In the case of Verifone terminals, if there is a loss of Wi-Fi or an internet failure, attempting to cancel a transaction will prompt an error message: "Transaction Failed: Lost connection to the payment terminal." When the associate voids the cart, they have the option to reset tenders. At this point, any accepted payment tenders will be returned to the customer. This scenario will report the Payment Tender Status as "Canceled," which is different from Adyen terminals, where the Payment Tender Status is reported as "ABORTED".

          The POS app displays an error message indicating the connection has been lost.

          Online Payments Restricted During Network Issues

          The current app doesn't switch to offline mode when there is an intermittent network failure if a payment is in progress or partially applied for a transaction. The app allows the user to complete the current transaction in the same online mode. As an enhancement in the version 8.0.1 release, the POS app will also now restrict the app of online-only tenders such as GiftCard, Check, Finance, Store Credit, Remote Pay By Link, In Store Pay By Link, Reward Card, Miscellaneous and Loyalty Card when there is an intermittent network failure. The app will be shown an error message and the user will automatically be allowed to use these online-only tenders when the network connectivity issue is resolved.

          The POS app displays the error message ​​​​:This tender cannot be applied at the moment due to an intermittent internet failure”.

          Online Payment Restrictions During Network Instability

          For app builds 9.8.1, Point of Sale introduced handling for scenarios when the POS system is online but operating in Adyen's Store-and-Forward (SAF) mode, and a payment confirmation from Adyen is pending. Now, during return transactions, if the payment status remains unverified, the system will prevent the return from proceeding. Users will be notified with the error message, "Payment is still processing for this order, return can't be initialized".

          The POS app displays the error message “Payment is still in process for this order return can't be initialized.”

          Unable to Process Refunds for New Store

          If you're unable to process refunds for a newly set-up store and encounter the error:

          "Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $", check your Adyen configuration in CMS. If there's a configuration marked as Default, check that the Secondary URL Base is correctly configured. An incorrect or missing URL can cause refund requests to fail.

          Known Issues & Restrictions

          Discovered known issues and restrictions with the Point of Sale payment error handling.

          • Phase 1 error simulation is not supported for return flows as it is only for sales.
          • Phase 2 error simulation failed order reports do not update for a failed return flow.
          • If the app is closed before receiving a response from the payment terminal, reopening the app will display the pending transaction in the "Pending Verification Pending Orders" section.
            • In a 1:1 configuration, tapping on the order entry will trigger a status verification and sync the order with the backend.
            • In a 1:N configuration, the terminal must be connected in the Device Manager screen before tapping on the order to sync. Otherwise, a "Terminal not connected" error will be displayed, and the sync will not occur.
           
          Loading
          Salesforce Help | Article