3.11. /api/v2/preauth

Введение

Preauth инициируется запросом HTTPS POST с использованием указанных ниже URL и параметров. Для аутентификации используйте SHA-1. См. статусы.

API URL

Примечание

Путь API URL не должен быть задан фиксированным значением, т.к. он может быть изменён позднее.

Интеграционная среда

Производственная среда

https://sandbox.payneteasy.ru/paynet/api/v2/preauth/ENDPOINTID

https://gate.payneteasy.ru/paynet/api/v2/preauth/ENDPOINTID

https://sandbox.payneteasy.ru/paynet/api/v2/preauth/group/ENDPOINTGROUPID

https://gate.payneteasy.ru/paynet/api/v2/preauth/group/ENDPOINTGROUPID

Параметры запроса

Примечание

Запрос должен иметь заголовок content-type=application/x-www-form-urlencoded.

Название параметра

Описание

Значение

client_orderid

Уникальный идентификатор заказа, присвоенный Присоединяющейся Стороной.

Необходимость: Обязательно
Тип: String
Длина: 128

order_desc

Описание заказа.

Необходимость: Обязательно
Тип: String
Длина: 1525

amount

Сумма к оплате. Сумма должна быть указана в наибольших единицах с разделителем .. Например, 10.5 для USD означает 10 долларов США и 50 центов.

Необходимость: Обязательно
Тип: Numeric
Длина: 10

currency

Валюта, в которой проводится операция (см. Коды валют). Примеры значений: USD для доллара США, EUR для европейского евро, RUB для российского рубля.

Необходимость: Обязательно
Тип: String
Длина: 3

address1

Адрес Плательщика, строка 1. (Обратите внимание, что в некоторых случаях невозможно отправить адрес длиной более 50 символов. Для получения более подробной информации обратитесь к вашему менеджеру.)

Необходимость: Обязательно
Тип: String
Длина: 256

city

Город Плательщика.

Необходимость: Обязательно
Тип: String
Длина: 50

zip_code

Почтовый индекс Плательщика.

Необходимость: Обязательно
Тип: String
Длина: 10

country

Страна Плательщика. Для списка действительных кодов см. Коды стран.

Необходимость: Обязательно
Тип: String
Длина: 2

phone

Полный международный номер телефона Плательщика, включая код страны.

Необходимость: Обязательно
Тип: String
Длина: 15

email

Адрес электронной почты Плательщика.

Необходимость: Обязательно
Тип: String
Длина: 50

ipaddress

IP-адрес Плательщика, передаётся для целей мониторинга мошенничества.

Необходимость: Обязательно
Тип: String
Длина: 45

control

Контрольная сумма, сгенерированная SHA-1. Строка для подписи представляет собой объединение следующих параметров:
1. <ENDPOINTID | ENDPOINTGROUPID> (См.: URL запроса).
2. Параметр запроса:client_orderid.
3. Параметр запроса: amount в минимальных денежных единицах,
4. Параметр запроса: email,
5. merchant_control (Контрольный ключ, назначенный для учетной записи Присоединяющейся стороны в Payneteasy).
Необходимость: Обязательно
Тип: String
Длина: 40

cvv2

Код CVV2 плательщика. CVV2 (Card Verification Значение) — это трех - или четырехзначное число, напечатанное на обратной стороне карты в области подписи.

Необходимость: Обязательно
Тип: Numeric
Длина: 3-4

credit_card_number

Номер банковской карты плательщика (также известный как PAN — Primary Account Number).

Необходимость: Обязательно
Тип: Numeric
Длина: 20

card_recurring_payment_id

Идентификатор токенизированных данных держателя карты Плательщика. Отправьте либо card_recurring_payment_id, либо комбинацию credit_card_number, card_printed_name, expire_month и expire_year, но не все значения одновременно. Сведения о создании card_recurring_payment_id см. в /api/v2/create-card-ref.

Необходимость: Обязательно
Тип: Long
Длина: 20

card_printed_name

Имя владельца карты, напечатанное на банковской карте.

Необходимость: Обязательно
Тип: String
Длина: 64k

expire_month

Месяц окончания срока действия банковской карты.

Необходимость: Обязательно
Тип: Numeric
Длина: 2

expire_year

Год окончания срока действия банковской карты.

Необходимость: Обязательно
Тип: Numeric
Длина: 4

first_name

Имя Плательщика.

Необходимость: Обязательно
Тип: String
Длина: 50

last_name

Фамилия Плательщика.

Необходимость: Обязательно
Тип: String
Длина: 50

state

Штат Плательщика. Для списка действительных кодов штатов см. Обязательные коды штатов. Требуется для США, Канады и Австралии.

Необходимость: Условно
Тип: String
Длина: 2-3

redirect_url

URL-адрес, на который будет перенаправлен Плательщик после завершения транзакции. Перенаправление выполняется в любом случае, независимо от того, получила ли транзакция статус successful, unsuccessful или любой другой конечный статус (см. Статусы транзакций).
Присоединяющаяся сторона должен не use parameters come along с redirect HTTP Запрос в treat статус транзакция. Instead Присоединяющаяся сторона может utilize server_callback_url или статус API command. Pass https://doc.payneteasy.ru if you have no need в return payer anywhere. Use either redirect_url или combination redirect_успех_url и redirect_fail_url, не both. https://doc.payneteasy.ru
Необходимость: Опционально
Тип: String
Длина: 1024

redirect_success_url

URL-адрес, на который будет перенаправлен Плательщик после получения успешного статуса транзакции (см. Статусы транзакций).
Присоединяющаяся сторона не должна использовать параметры, передаваемые вместе с перенаправленным HTTP-запросом, для определения статуса транзакции. Вместо этого Присоединяющаяся сторона может использовать server_callback_url или команду API статуса. В противном случае передайте https://doc.payneteasy.ru, если не требуется перенаправлять плательщика. Используйте комбинацию redirect_success_url и redirect_fail_url либо redirect_url, но не оба варианта.
Необходимость: Опционально
Тип: String
Длина: 1024

redirect_fail_url

URL-адрес, на который будет перенаправлен Плательщик после получения неуспешного статуса транзакции (см. Статусы транзакций).
Присоединяющаяся сторона не должна использовать параметры, переданные с HTTP-запросом перенаправления, для определения статуса транзакции. Вместо этого используйте server_callback_url или status API command. Передайте https://doc.payneteasy.ru, если плательщика не нужно никуда перенаправлять. Используйте либо сочетание redirect_fail_url и redirect_success_url, либо redirect_url, но не оба варианта.
Необходимость: Опционально
Тип: String
Длина: 1024

ssn

Последние четыре цифры номера социального страхования Плательщика.

Необходимость: Опционально
Тип: Numeric
Длина: 32

birthday

Дата рождения Плательщика в формате YYYYMMDD.

Необходимость: Опционально
Тип: Numeric
Длина: 8

cell_phone

Полный международный мобильный номер телефона Плательщика, включая код страны.

Необходимость: Опционально
Тип: String
Длина: 15

site_url

URL-адрес сайта электронной коммерции, откуда происходит платеж.

Необходимость: Опционально
Тип: String
Длина: 128

purpose

Получатель платежа. Это полезно для Присоединяющихся сторон, позволяющих плательщикам пополнять свои счета банковской картой (счета мобильных телефонов, игровые счета и т. д.). Примеры значений: +9999999999; mail@example.com и т. д. Это значение может использоваться системой мониторинга мошенничества.

Необходимость: Опционально
Тип: String
Длина: 128

server_callback_url

URL-адрес, по которому будет отправлен обратный вызов с результатом транзакции.
Присоединяющаяся сторона may use server callback URL для custom processing транзакция completion, e.g. в collect платёж data in Присоединяющаяся сторона’s information system. For list parameters which come along с server callback в server_callback_url refer в Присоединяющаяся сторона callback parameters. Thявляется parameter может be sent instead notify_url. If server_callback_url является sent, Платёжный Шлюз sends callback notification only when original транзакция receives final статус. If notify_url является sent, Платёжный Шлюз sends callback notification once original транзакция receives final статус, и about every future upдата для thявляется original транзакция (reversal, chargeback, etc).
Необходимость: Опционально
Тип: String
Длина: 1024

notify_url

URL-адрес, по которому будет отправлен обратный вызов с результатом транзакции.
Присоединяющаяся сторона may use notify URL для custom processing транзакция completion, e.g. в collect платёж data in Присоединяющаяся сторона’s information system. For list parameters which come along с server callback в notify_url refer в Присоединяющаяся сторона callback parameters. Thявляется parameter может be sent instead server_callback_url. If notify_url является sent, Платёжный Шлюз sends callback notification once original транзакция receives final статус, и about every future upдата для thявляется original транзакция (reversal, chargeback, etc). If server_callback_url является sent, Платёжный Шлюз sends callback notification only when original транзакция receives final статус.
Необходимость: Опционально
Тип: String
Длина: 1024

order_desc

Дополнительные сведения о транзакции для Присоединяющейся Стороны, которые можно прикрепить к транзакции и получить обратно в ответе на запрос статуса, обратном вызове Присоединяющейся Стороны или server_callback_url. Может содержать данные, которые будут полезны во внешней системе Присоединяющейся Стороны, например VIP клиент, телевизионная промо-кампания.
Информация возвращается в ответе на запрос статуса и в обратном вызове Присоединяющейся Стороны.
Необходимость: Опционально
Тип: String
Длина: 64k

minimum_transaction_amount

Этот параметр можно использовать для ограничения минимальной суммы транзакции, если сумма транзакции доступна для указания Плательщиком в форме. Свяжитесь с менеджером службы поддержки, чтобы включить эту функцию. Формат значения такой же, как и в параметре amount.

Необходимость: Опционально
Тип: Numeric
Длина: 10

maximum_transaction_amount

Этот параметр можно использовать для ограничения максимальной суммы транзакции, если сумма транзакции доступна для указания Плательщиком в форме. Свяжитесь с менеджером службы поддержки, чтобы включить эту функцию. Формат значения такой же, как и в параметре amount.

Необходимость: Опционально
Тип: Numeric
Длина: 10

customer_level

Уровень клиента в системе CMS.

Необходимость: Опционально
Тип: Varchar
Длина: 32

customer_id

Идентификатор клиента в системе CMS. Параметр становится обязательным, если включена система CMS в режиме определения клиента Платёжным шлюзом.

Необходимость: Опционально
Тип: Int
Длина: 10

merchant_customer_identifier

Идентификатор клиента-продавца в системе CMS. Параметр становится обязательным, если включена система CMS в режиме CRM.

Необходимость: Опционально
Тип: Varchar
Длина: 64

recurring-payment-id

Recurring Payment ID может быть передан вместо данных держателя карты. Для нативных транзакций CVV не требуется. Обновление данных клиента возможно через /api/v4/update-recurring-payment/. Процесс создания Recurring Payment ID инициируется HTTPS POST запросом с использованием указанных ниже URLs. и параметров, используйте OAuth RSA-SHA256 для аутентификация

Необходимость: Условно
Тип: Long

Hosted Fields Parameters

When the card is collected with Hosted Fields, the Connecting Party does not have the card data: the request carries the hosted_fields_token received from the Hosted Fields SDK instead of the card parameters. The other parameters from Параметры запроса are sent as usual. The control checksum does not include card data and is calculated as usual.

Название параметра

Описание

Значение

hosted_fields_token

The hostedFieldsToken received from the Hosted Fields SDK. The Payment Gateway takes the card number, expiry date and CVV from it. Valid for 5 minutes, single use: a second request with the same token is rejected.

Необходимость: Условно
Тип: String
Длина: 2048

When hosted_fields_token is sent, these rules take precedence over the necessity of the card parameters in Параметры запроса.

Rule

Detail

A single source of card data

hosted_fields_token replaces credit_card_number, temporary_card_record_id and card_recurring_payment_id. Two of them at once are rejected with «At most one of credit_card_number, card_recurring_payment_id, temporary_card_record_id or hosted_fields_token should be set.»

expire_month and expire_year must not be sent

The expiry date comes from the token. Sending it as well is rejected with «When hosted_fields_token present expire_month and expire_year should not be set.»

cvv2 must not be sent

The CVV comes from the token. Sending it as well is rejected with «When hosted_fields_token present cvv2 should not be set.»

card_printed_name is not required

The Hosted Fields SDK does not collect the cardholder name. If the Connecting Party form has such a field, it is sent as card_printed_name; with hosted_fields_token it may also be omitted altogether.

Дополнительные поля для транзакций Preauth

Для Присоединяющейся Стороны

Примечание

Данные браузера для 3DS 2.X собираются системой Payneteasy на этапе 3DS-аутентификации. Однако для некоторых каналов обработки данные браузера и/или URL Присоединяющейся стороны для результатов 3DS challenge должны быть переданы в первоначальном запросе транзакции. Обратитесь к менеджеру поддержки, чтобы уточнить, следует ли включать эти параметры в параметры запроса.

Сайт Присоединяющейся Стороны должен точно заполнять информацию о браузере по каждой транзакции. Эти данные могут быть получены серверами Присоединяющейся Стороны. Убедитесь, что данные не изменены и не жестко запрограммированы, и что они уникальны для каждой транзакции.

Название параметра

Описание

Значение

ipaddress

IP-адрес браузера, возвращаемый HTTP-заголовками инициатору запроса 3DS.

Необходимость: Обязательно
Тип: String
Длина: 45

customer_browser_accept_header

Точное содержание заголовков HTTP Accept, отправленное инициатору запроса 3DS из браузера владельца карты.

Необходимость: Обязательно
Тип: String
Длина: 2048

customer_browser_javascript_enabled

Boolean, представляющий cпособность браузера владельца карты запускать JavaScript.

Необходимость: Обязательно
Тип: Boolean
Длина: -

customer_browser_accept_language

Значение, представляющее язык браузера, по определено IETF BCP47.

Необходимость: Обязательно
Тип: String
Длина: 8

customer_browser_user_agent

Точное содержание заголовка HTTP user-agent.

Необходимость: Обязательно
Тип: String
Длина: 2048

tds_areq_notification_url, псевдоним tds_cres_notification_url

Полный URL-адрес системы Присоединяющейся Стороны, которая получит сообщение CRes или сообщение об ошибке. Это сообщение CRes должно быть отправлено Payneteasy. См. Загрузка результата CRes.

Необходимость: Опционально
Тип: String
Длина: 256

customer_browser_info

Если true, параметры, приведенные ниже, должны быть указаны.

Необходимость: Опционально
Тип: Boolean
Длина: -

customer_browser_color_depth

Значение, представляющее разрядность цветовой палитры для отображения изображений, в битах на пиксель. Становится обязательным, когда browser_javaScript_enabled = true».

Необходимость: Опционально
Тип: String
Длина: 2

customer_browser_java_enabled

Boolean, который представляет способность браузера владельца карты запускать Java. Становится обязательным, когда browser_javaScript_enabled = true.

Необходимость: Опционально
Тип: Boolean
Длина: -

customer_browser_screen_height

Общая высота экрана владельца карты в пикселях. Требуется, когда browser_javaScript_enabled = true.

Необходимость: Опционально
Тип: Numeric
Длина: 6

customer_browser_screen_width

Общая ширина экрана владельца карты в пикселях. Требуется, когда browser_javaScript_enabled = true.

Необходимость: Опционально
Тип: Numeric
Длина: 6

customer_browser_time_zone

Смещение часового пояса в минутах между UTC и местным временем браузера держателя карты. Обратите внимание, что смещение является положительным, если местный часовой пояс отстает от UTC, и отрицательным, если он опережает UTC. Становится обязательным, когда browser_javaScript_enabled = true.

Необходимость: Опционально
Тип: String
Длина: 5

Для платежных учреждений

PSP или эквайер могут заполнить результаты 3DS для каждой транзакции, если выполнение 3DS аутентификации происходит на их стороне.

Название параметра

Описание

Значение

tds_authentication_result_type

Тип результата. Возможное значение:
- SIMPLE
Тип: String
Длина: 6

tds_authentication_result_authentication_type

Тип Аутентификации. Показывает тип метода аутентификации, используемый Эмитентом, для отправки ARes сообщения или использованный ACS при отправке RReq сообщения. Возможные значения:
- 01 = Static
- 02 = Dynamic
- 03 = OOB
- 04 = Decoupled
- 05-79 = Reserved for EMVCo future use (values invalid until defined by EMVCo)
- 80-99 = Reserved for DS use
Тип: String
Длина: 2

tds_authentication_result_authentication_value

Значение Аутентификации. Зависищее от Платежной Системы значение, определяемое ACS или DS, используя алгоритмы, определенные Платежной Системой. Значение Аутентификации может быть использовано как подтверждение аутентификации. 20-байтное значение, закодированное Base64, выдающее 28-байтный результат

Тип: String
Длина: 19-28

tds_authentication_result_transaction_id

xid для 1.0.2 или dsTransID для 2.1.0/2.2.0

Тип: String
Длина: 19-36

tds_authentication_result_transaction_status

Статус транзакции. Показывает, транзакция аутентифицирована или верифицирована. Возможные значения:
- Y = Authentication Verification Successful
- N = Not Authenticated/Account Not Verified, Transaction denied
- U = Authentication/Account Verification Could Not Be Performed, Technical or other problem, as indicated in ARes or RReq
- A = Attempts Processing Performed, Not Authenticated/Verified, but a proof of attempted authentication/verification is provided
- C = Challenge Required, Additional authentication is required using the CReq/CRes
- D = Challenge Required, Decoupled Authentication confirmed
- R = Authentication/ Account Verification Rejected, Issuer is rejecting
Тип: String
Длина: 15

tds_authentication_result_message_version

Версия номера сообщения. Версия протокола идентификацтора. Это номер версии протокола, назначенного системой, посылающей сообщение. Версия номера сообщения назначается Сервером 3DS, который относит протокол к сообщению AReq. Версия номера сообщения не меняется во время процесса 3DS. Возможные значения:
- 1.0.2
- 2.1.0
- 2.2.0
Тип: String
Длина: 5

Параметры ответа

Примечание

Ответ имеет заголовок Content-Type: text/html;charset=utf-8. Все поля имеют кодировку x-www-form-urlencoded, с символом (0xA) в конце значения каждого параметра.

Параметры ответа

Описание

type

Тип ответа. Может принимать такие значения как - async-response, validation-error, error и т.д.
Если тип равен validation-error или error, параметры error-message и error-code будут содержать сведения об ошибке.

paynet-order-id

Идентификатор заказа, присвоенный Payneteasy.

merchant-order-id

Идентификатор заказа Присоединяющейся Стороны.

serial-number

Уникальный номер, присваиваемый сервером Payneteasy конкретному запросу от Присоединяющейся стороны.

error-message

Для транзакций в статусе error этот параметр будет содержать причину отклонения или сведения об ошибке.

error-code

Код ошибки для транзакций в статусе error.

end-point-id

Идентификатор терминала, используемый для транзакции.

Пример запроса с данными владельца карты

POST /paynet/api/v2/preauth/39549 HTTP/1.1
User-Agent: curl/7.83.0
Accept: */*
Content-Length: 314
Content-Type: application/x-www-form-urlencoded
Connection: close

credit_card_number=4538977399606732
&card_printed_name=CARD HOLDER
&expire_month=12
&expire_year=2099
&cvv2=123
&client_orderid=902B4FF5
&order_desc=Test Order Описание
&first_name=John
&last_name=Smith
&ssn=1267
&birthday=19820115
&address1=100 Main st
&city=Seattle
&state=WA
&zip_code=98102
&country=US
&phone=%2B12063582043
&cell_phone=%2B19023384543
&email=john.smith@gmail.com
&currency=USD
&amount=10.42
&ipaddress=65.153.12.232
&site_url=https://doc.payneteasy.ru
&purpose=user_account1
&redirect_url=https://doc.payneteasy.ru/doc/dummy.htm
&server_callback_url=https://httpstat.us/200
&merchant_data=VIP customer
&control=768eb8162fc361a3e14150ec46e9a6dd8fbfa483

Пример запроса с идентификатором регулярного платежа по карте

POST /paynet/api/v2/preauth/39549 HTTP/1.1
User-Agent: curl/7.83.0
Accept: */*
Content-Length: 314
Content-Type: application/x-www-form-urlencoded
Connection: close

card_recurring_payment_id=1491927
&cvv2=123
&client_orderid=34T43R77N
&order_desc=Test Order Описание
&amount=777
&currency=USD
&ipaddress=65.153.12.232
&redirect_url=https://doc.payneteasy.ru/doc/dummy.htm
&server_callback_url=https://httpstat.us/200
&control=218d377897ce25c2ac69d99de42bc6902eb5bcd8

Request with Hosted Fields Token Example

POST /paynet/api/v2/preauth/39549 HTTP/1.1
User-Agent: curl/7.83.0
Accept: */*
Content-Type: application/x-www-form-urlencoded
Connection: close

hosted_fields_token=eyJhbGciOi...
&client_orderid=902B4FF5
&order_desc=Test Order Описание
&first_name=John
&last_name=Smith
&address1=100 Main st
&city=Seattle
&state=WA
&zip_code=98102
&country=US
&phone=%2B12063582043
&email=john.smith@gmail.com
&currency=USD
&amount=10.42
&ipaddress=65.153.12.232
&redirect_url=https://doc.payneteasy.ru/doc/dummy.htm
&server_callback_url=https://httpstat.us/200
&control=768eb8162fc361a3e14150ec46e9a6dd8fbfa483

Пример успешного ответа

HTTP/1.1 200 OK
Server: server
Date: Mon, 05 Sep 2022 10:43:57 GMT
Content-Type: text/html;charset=utf-8
Connection: close
Vary: Accept-Encoding
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Content-Language: en-US
Strict-Transport-Security: max-age=31536000
Content-Length: 139

type=async-response
&serial-number=00000000-0000-0000-0000-000002ddb018
&merchant-order-id=123
&paynet-order-id=6863073
&end-point-id=39914

Пример неуспешного ответа

HTTP/1.1 200 OK
Server: server
Date: Mon, 05 Sep 2022 10:51:14 GMT
Content-Type: text/html;charset=utf-8
Connection: close
Vary: Accept-Encoding
X-XSS-Protection: 1
X-Content-Type-Options: nosniff
Strict-Transport-Security: max-age=31536000
Content-Language: en-US
Strict-Transport-Security: max-age=31536000
Content-Length: 208

type=validation-error
&serial-number=00000000-0000-0000-0000-000002ddb019
&merchant-order-id=123
&error-message=Validate+card+number+failed.+Card+Number+length+must+be+between+16+and+19+digits..
&error-code=8

Open API Collection

Open this method in the OpenAPI Reference

View in OpenAPI

Коллекция Postman

Конструктор запросов

endpointid or groupid

input ENDPOINTID or ENDPOINTGROUPID

client_orderid

make it or use internal invoice ID

order_desc
first_name
last_name
ssn
birthday
address1
city
state
zip_code
country
phone
cell_phone
amount
email
currency
ipaddress
site_url
credit_card_number

card_printed_name
expire_month
expire_year
cvv2
purpose
merchant_control

input Control Key

redirect_url
redirect_success_url
redirect_fail_url
notify_url
server_callback_url
merchant_data
merchant_form_data

String to sign
Signature