One-step and two-step payments

Yandex Pay supports both one-step and two-step payments

One-step payment

By default, a payment through Yandex Pay is considered successful once the client has completed the order payment in the form (see the interactions workflow). No merchant's confirmation of funds debiting is required. This kind of payment is referred to as a one-step payment. It implements the following scenario:

  1. The client pays for the order using the Yandex Pay form.
  2. The funds are debited from the customer's account.
  3. The payment changes to the CAPTURED status.
  4. The merchant's backend gets a notification about the ORDER_STATUS_UPDATED event.

Two-step payment

In the case of a two-step payment, the merchant's confirmation of funds transfer is required. It consists of two steps: the first step is placing a hold on the user funds (pre-authorization) after which the payment status changes to AUTHORIZED. The second step is the transfer confirmation by the merchant, at which point the payment changes to CAPTURED status.

To enable two-step payments, contact support.

Warning

To avoid losing money, the merchant must approve two-step payments. If you do not confirm a payment, once the hold has expired, the funds are returned to the customer.

Two-step payments implement the following scenario:

  1. The client pays for the order using the Yandex Pay form.
  2. The merchant places a hold on the customer account.
  3. The payment status changes to AUTHORIZED.
  4. The merchant's backend gets a notification about the ORDER_STATUS_UPDATED event.
  5. The merchant confirms the order payment transfer.
  6. The funds are debited from the customer's account.
  7. The payment changes to the CAPTURED status.
  8. The merchant's backend gets a notification about the ORDER_STATUS_UPDATED event.

Two-step payment approval

There are two ways to approve an order payment transfer in the two-step payment scenario:

  • Over the API using the capture call.
  • In the Yandex Pay console, select an unconfirmed order with the Waiting status and click Confirm order.

Funds hold cancellation

The two-step payment scenario supports cancellation of the funds hold. If the funds are on hold but not transferred yet (the payment is in AUTHORIZED status), you can unlock the customer's funds over the API by calling cancel or in the Yandex Pay console using the Cancel order button.

Checking payment status

Both for a one-step and two-step payment, you can check the current status of the order and payment over the API (order details), or in the Yandex Pay console by selecting the order.