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:
- The client pays for the order using the Yandex Pay form.
- The funds are debited from the customer's account.
- The payment changes to the
CAPTURED
status. - 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:
- The client pays for the order using the Yandex Pay form.
- The merchant places a hold on the customer account.
- The payment status changes to
AUTHORIZED
. - The merchant's backend gets a notification about the
ORDER_STATUS_UPDATED
event. - The merchant confirms the order payment transfer.
- The funds are debited from the customer's account.
- The payment changes to the
CAPTURED
status. - 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.