..
  This file is part of GNU TALER.
  Copyright (C) 2014-2026 Taler Systems SA

  TALER is free software; you can redistribute it and/or modify it under the
  terms of the GNU Affero General Public License as published by the Free Software
  Foundation; either version 2.1, or (at your option) any later version.

  TALER is distributed in the hope that it will be useful, but WITHOUT ANY
  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
  A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

  You should have received a copy of the GNU Affero General Public License along with
  TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>


.. _pos_recovery:

Recover an Interrupted Payment
==============================

.. contents::
  :depth: 1
  :local:

If a payment is interrupted, reopen the checkout and check what has already
been paid before continuing. Restarting the app does not undo a payment.

Resuming a checkout
-------------------

1. Connect to the same merchant account on the same POS device.
2. Open **History** and find the unfinished payment. Check its total,
   recorded payments and remaining balance.
3. Press **Continue**, or **Show payment** if the Taler order already exists.
4. Resolve any pending payment result before taking more money, then
   complete the remaining payment or receipt collection.

Use the same POS device and merchant account: unfinished checkouts are saved
on that device for that account.

.. _pos_pending_card:

Resolving an uncertain card payment
-----------------------------------

If the POS asks you to resolve a pending card payment, it has not received
a final result. Do not assume that the customer was not charged.

1. Note the payment amount, provider and reference shown by the POS.
2. Check that exact payment in the provider's transaction records.
3. If the provider confirms success, select
   **Payment confirmed in provider records**. Enter the provider transaction
   reference and confirm the outcome.
4. If the provider confirms that the payment failed or was cancelled and
   cannot settle later, select **Provider confirmed no charge** and confirm.
5. Only after resolving the result should you continue with another payment.

A pending transaction or a transaction that you cannot find yet is not proof
of failure. Keep the checkout pending until the provider gives a final result.

Recovering from a backend connection problem
--------------------------------------------

If the POS says the order may already exist, restore connectivity and retry
the Taler step on the same checkout before changing its payments. This lets
the POS recover the existing order instead of creating a second sale.

If **Back to payment options** fails, keep the checkout and try again once
the connection is restored. Check whether the customer has paid before
cancelling or taking more money.

Cancelling after receiving money
--------------------------------

1. Inspect the checkout's recorded payments. Use **About this checkout** if
   money has already been taken.
2. Read the cancellation explanation. If you need to cancel the sale,
   select **Cancel payment anyway**.
3. Return the money: hand back cash and process card refunds through the
   card provider's own tools.
4. In **History**, use **Mark as settled** for the cancelled checkout only
   after the customer's payments have been settled.

Cancelling does not automatically return cash or refund a card.
An unresolved card attempt or uncertain backend order must be resolved
before it can be safely discarded.

Use **Delete order** only for unpaid orders; see :ref:`pos_orders`.
For paid orders, follow :ref:`pos_refunds`.

.. topic:: Next step

   Continue with :ref:`pos_history` to check the final order state.
