How to handle orders on ‘Hold’ due to payment mismatch

About this article

This article goes into detail about mismatch orders in Centra. An order is deemed as mismatch when the order total and the authorized amount are not equal. You can read more about the different cases of mismatch orders and how to handle them below.

What is a mismatch order?

A mismatch order is an order where the Authorisation (Auth) amount does not match the order total amount. Note that an Authorisation takes place upon order placement. This action reserves the amount of money to be paid by the customer in their bank account. Thus, the Authorisation amount can be larger or smaller than the order total.

For example:

  • Auth < order total - The customer was charged 20 EUR, but order total is 25 EUR. The consequence here is that the order is not paid in full, and there is money loss for the business
  • Auth > order total - The customer was charged 25 EUR, while the total order value is only 20 EUR. The consequence here is that the customer is overcharged

To prevent money loss or overcharging the customer, Centra has a mechanism that ensures these consequences are avoided and you can still profit from the sale. Read below to find out how such orders are handled.

What causes mismatch orders?

The most prevalent cause of mismatch orders is when customers update the basket after payment has been initiated. Example:

  • The customer initiated a payment, i.e. clicked on the Klarna widget, or chose MobilePay in Adyen drop-in widget etc.
  • Instead of completing the payment, the customer returns to the basket by going to another browser tab, and updating the basket. Basket updates include adding or removing products to/from the basket, changing shipping method etc.
  • The customer then returns to the previously initiated payment and completes the order.

How are mismatch orders handled by Centra?

When a customer finalizes the purchase by clicking “Place order” in the e-commerce store, Centra verifies if the Authorisation amount matches the order total. Should there be a discrepancy between these two amounts, Centra still places the order but sets it on ‘Hold’.

The key advantage of the ‘Hold’ state is that it gives you a chance to review the order manually and still capture partly or fully a sale that would otherwise be lost.

When the amount sent for Authorisation to the payment service provider differs from the order total in Centra, the order is deemed as needing manual review. In short, general rules on processing such orders can be found below, but a detailed explanation can be found here.

  • When the Authorisation amount is less than order total, meaning the order was not paid in full, it’s necessary to make updates to the order. In this way, products that were not paid for are not shipped to the customer. For example, you may choose to remove an item from the order to match the authorisation amount or to cancel such an order
  • When the Authorisation amount is larger than order total, administrators are given a choice to either proceed with the order or cancel it

How to recognize mismatch orders in Centra?

To find mismatch orders, you can follow these steps:

  1. Click on ‘Orders’ in the Direct To Consumer part of the menu

  2. In the search bar, type ‘hold:yes’ as seen below:

  3. Select an order that is on ‘Hold’ and you can notice the following:

    • There is a warning message, ‘The order value was modified during the payment step, please review this order’, as seen below:
    • Scroll down to the ‘Ordered products’ section and take a note of the ‘Order total’. In the ‘Payment information’ section, you can see the Auth amount. These are not equal. In the example below, the Auth is larger than the Order total:

Another point to notice is that there is an exclamation mark next to the Auth amount. Overall, the green Auth icon indicates a successful Auth, while the exclamation mark indicates the mismatch.

How are mismatch orders handled by different payment plugins?

The following list showcases which payment providers have mismatch orders set to ‘Hold’:

  • Klarna Checkout
  • Klarna Payments
  • Adyen drop-in
  • Qliro
  • Stripe Checkout
  • Stripe Payment Intents

How to process mismatch orders?

Below, find the steps to manage mismatched orders, whether you choose to do so manually in Centra or through the APIs.

The below are recommendations from Centra with regards to processing mismatch orders. You always have the option to decide on a different action towards the end consumer as needed.

Manually in Centra

Let’s review the steps to manually handle an order in Centra considering these two scenarios:

Auth < Order total

  1. Check the auth amount in the PSP (Payment Service Provider) (step not required)
  2. Cancel the extra order item in Centra that isn’t covered by the authorisation or update the shipping cost
  3. Resume the order by clicking the ‘Resume’ button
  4. Send a confirmation email from Centra to the customer
  5. Capture and ship only the products covered by the Auth amount

Auth > Order total

If auto capture is used, refund the difference. Alternatively, follow the steps below:

  1. Resume the order by clicking the ‘Resume’ button
  2. Process the order as per your normal order flow
  3. Capture and ship only the products covered by the Auth amount. In this case, the capture amount is smaller than the Auth amount
  4. The overpaid difference is released to the customer by the PSP in due time (24h or more)

Through APIs

Follow the steps below depending on the API used:

Integration API

  1. To get orders which are on ‘Hold’, use Orders query with ‘isOnHold:true’

    {
     orders(where: {isWaitingForPayment:false, isOnHold:true}, sort: [number_DESC], limit: 20, page: 1) {
      ...}
     }

    The above request excludes orders that are on hold due to ‘Waiting for payment’. To get orders which are not on ‘Hold’, use Orders query with ‘isOnHold:false

  2. Depending on whether the Auth amount is higher or lower than the Order total, follow the respective steps:

Auth < Order total

  • Validate the Auth amount in the Payment provider portal (or similar) (step not required)
  • Cancel the extra order item that isn’t covered by the authorization or update the shipping cost
  • Resume the order by using the mutation ‘updateDirectToConsumerOrder’ and set on hold flag with ‘isOnHold: False’
  • Send a confirmation email to the customer
  • Capture and ship only the products covered by the Auth amount

Auth > Order total

If auto capture is used, refund the difference. Alternatively, follow the steps below:

  • Resume the order by using the mutation ‘updateDirectToConsumerOrder’ and set on hold flag with ‘isOnHold: False
  • Process the order as per your normal order flow
  • Capture and ship the products covered by the Auth amount. In this case the capture amount is smaller than Auth amount
  • The overpaid difference is released to the customer by the PSP in due time (24h or more)

SOAP API

  1. It is not possible to filter orders with status on ‘Hold’. See docs for more info
  2. Orders on ‘Hold’ aren’t returned via this API
  3. Please refer to the manual handling in Centra to process these orders

Order API

  1. To get on ‘Hold’ orders the ‘ReturnOn holdorders’ Order API plugin setting should be set to Yes. To find the order API plugin, click on ‘System’ > ’Stores’ > ’Retail’ > Scroll down to ’Plugins’, open the ‘Order API’ plugin and find the setting as shown below:

  2. Note however that it is not possible to filter ‘Hold’ orders. Instead you can see if an order is set to ‘Hold’ (example below). This means that the API can return all orders or all orders minus ‘Hold’ orders.

    "status": "ok",
      "orders": [
          {
            ...
            "hold": 1,
            …
  3. It is not possible to resume orders via the Order API, so please refer to the manual handling in Centra to process these orders.

Previous article: Customer wishlist
Next article: Fraud prevention