For any question, we are one click away

Contact us

Two-Step Payments Overview

Two-Step Payments is a payment process that includes authorization and capture. Authorization checks that the transaction can be made and reserves the amount before the actual charge. Capture is the charge itself.

Two-Step Payments via API

In terms of API, the Two-Step process requires two calls to be made. The first call designates the payment as Two-Step, and the second call captures it.

Designating a payment as Two-Step via API

There are two ways to designate a payment as Two-Step. Which way to chose depends on the type of API integration: Redirect or Direct.

Two-Step Payments in Redirect integration

Redirect integration uses a payment page provided by the Payment Gateway. To indicate that the payment is Two-Step, call POST /sessions passing the value manual in paymentData.captureMethod parameter. The default value of this parameter is automatic, it corresponds to One-Step payment. See the detailed description of the /sessions request in the API Reference.

Two-Step Payments in Direct integration

In Direct integration, you provide your own payment page. This flow does not rely on /sessions call. Therefore, the parameter captureMethod of /payments should be used instead - pass the value manual. The response will include an amountCapturable parameter that indicates the amount that can be captured. Also, the returned status will be requiresCapture. However, if a 3DS flow is initiated, the status will be requiresAction. Once 3DS verification is complete, the status will become requiresCapture. See the detailed description of the /payments request in the API Reference.

Capturing a Two-Step payment

No matter the type of integration, call POST /payments/{id}/capture to settle the transaction. {id} is the identifier of payment to be captured. Use the value received in the id parameter of the response to /payments call. See the detailed description of the /payments/{id}/capture request in the API Reference.

Partial and Multiple captures

The Payment Gateway supports partial and multilpe captures for cases when a lesser amount has to be charged or a charge is made in increments. This feature is reflected by the value of captureType parameter of POST /payments/{id}/capture request. The value incremental means that this is not a final capture, while the value last stands for the final charge. The payment status becomes succeded only upon receipt of last capture. Note that the response also includes amountCapturable and amountReceived parameters denoting, respectively, the amount that is still avalable for capture, and the amount already charged. If you want to use Partial and Multiple captures, please contact our support team so that they enable this feature for you on the backend.

Auto-Capture and Auto-Reverse

A payment can be set to be captured or reversed automatically upon a configurable timeout. The way to do it is to use manualCaptureOptions parameter of POST /payments/{id}/capture request:

"manualCaptureOptions": {
    "autoCancelAt": "2023-02-17T16:30:55+03:00"
eCommerce API V2
Search results