In case if card needs to be verified by 3DS, you'll receive status=3ds_verify, token of a payment redirect_to - Address to which customer should be redirected for verification with 3DS.
There are 2 options to finish 3DS of payment

1. Finishing the paymetn without redirect to shop web page

In this option you need to redirect customer to the address that is indicated in a parameter redirect_to, where customer will be verified with 3DS, and sent back to Liqpay. The final status merchant can get using the method Callback to the address that is indicated in a payment initialization request in a parameter server_url

2. Finishing the payment with redirect to shop web page

For this option you need:
1. redirect customer to url, specified in redirect_to, add to request additional GET parameter return_to, indicating the address to which customer should be returned after 3DS.
For example: https://www.liqpay.com/api/3ds/request/fsjj4234hkhjk?return_to=https://yoursite.com/3dsreturn
2. After check 3DS customer will be redirected to address return_to. Besides, additional GET parameter will be sent to this url liqpay_token.
For example: https://yoursite.com/3dsreturn?liqpay_token=fsjj4234hkhjk
3. To finish the payment you need to send request:

Possible report format json, csv, xml. If parameter is not passed, will be passed by default json.

date

no**

String

If the compensation id parameter is unknown, then date by which you need to get a compensation id list, is transferred

phone

yes

String

Payer's mobile phone. One time password will be sent to the number to confirm the payment. Mobile number should be in the international format (Ukraine +380, Russia +7). For example: +380950000001 (with +) or 380950000001 (without +)

Enables the testing environment for developers. Payer card will not be charged. To enable testing environment you will need to transmit value 1. All test payments will have sandbox status - success test payment.

prepare

no

String

Preparation of the request. This mode allows to check if all data are filled in, if 3DS authentication is required, if transaction is within limit. Payer card will not be charged. To enable this mode you will need to transmit value 1.

recurringbytoken

no

String

This parameter allows to generate payer card_token which you receive in callback request to server_url. card_token allows to make recurring payments without payer card requisites using paytoken. To receive card_token please send in request value: 1

server_url

no

String

URL API in your store for notifications of payment status change (server->server). The maximum length is 510 characters. Learn more

result_url

no

String

Your store URL where customer will be redirected after purchasing in case of redirecting through 3ds page 3DS-verify. Maximum length 510 symbols.

receiver_card_token

no

String

Recipient's card token. For example: B5BВB0D00B88B00ED00A00D0D

result_url

no

String

URL in your store where the payer will be redirected after the payment. The maximum length is characters .

Possible Y value. Dynamic verification code is generated and going back to Callback. Also generated code will be transferred to verification transactions for displaying in statement by client's card. Works for action = auth em>.

token

no

String

payment token

otp

no

String

One time password that customer received to his phone numbert

date_from

no

String

Start date of a report in timestamp in milliseconds

date_to

no

String

End date of a report in timestamp in milliseconds

resp_format

no

String

Possible report format json, csv, xml. If parameter is not passed, will be passed by default json.

phone

yes

String

Shop phone number

public_phone

no

String

Shop public phone number

logo

no

String

URL shop logo

site

yes

String

Store URL

description

yes

String

Store description

email

yes

String

Store e-mail

name

yes

String

Store name

card

yes *

String

Card number to receive payments in this store

card_exp_month

yes *

String

Expiry month of the card

card_exp_year

yes *

String

Expiry year of the card

card_cvv

yes *

String

CVV/CVV2

account

yes **

String

Account number to receive payments in this store

mfo

yes **

String

Formation

okpo

yes **

String

OKPO of the account

company

yes **

String

Account name

amount_procent_agent

no

Number

Agent fee in %

amount_static_agent

no *

Number

Agent static fee

currency_static_agent

no *

String

Currency of agent static fee

expired_date

no

String

Date and time untill which customer is able to pay invoice by UTC. Should be sent in the following format 2016-04-24 00:00:00

Date of the first payment.Time must be specified in the following format 2015-03-31 00:00:00 according to UTC. If past date is indicated - subscription will be activated with the date and time of request

subscribe_periodicity

no

String

Period of payments.
Possible values:month - once in a monthyear - once in a year

Letter of credit parameters

letter_of_credit

no

String

To enable receipt of payments within letter of credit send request with the value 1

letter_of_credit_date

no

String

Letter of credit expiration date UTC. Should be sent in the following format 2015-04-24 00:00:00

3DS parameters

mpi_pares

no

String

Parameter that returns from ACS pares.
This parameter is transmitted only in case when is used the API
MPI

mpi_md

no

String

Parameter that returns from ACS MD.
This parameter is transmitted only in case when is used the API
MPI

Payment with split amount for a few receivers. This parameter is a JSON array containing split rules. While using split_rules paarameter, card is being charged and amount is split and credited to a few receivers. Acquiring fee is being charged from each shop in the split_rules array. Example of JSON string:

where TermUrl – page address to which issuer will return the answer with PaRes and MD parameters. To make a payment with already passed 3DS you need to transfer mpi_pares and mpi_md parameters with PaRes and MD values which were received from issuer bank ACS while payment is created.