Payture API

Программный интерфейс Payture API обеспечивает интеграцию Продавца с нашим платежным шлюзом. Payture гарантирует высокую надежность и защищенность платежных операций.

Перед тем, как начать использовать Payture API, пожалуйста, ознакомьтесь с порядком интеграции и выполните все необходимые шаги.

Обязательная верификация

В целях безопасности основные международные платежные системы требуют от стороны, оперирующей данными платежных карт, соответствовать требованиям стандарта безопасности PCI DSS. Для подтверждения соответствия этому стандарту Продавцу необходимо заполнить самоопросник SAQ категории D и пройти его верификацию. Это может повлечь дополнительные финансовые и организационные затраты. Если у Вас нет возможности пройти верификацию по стандарту PCI DSS, вы не сможете использовать платежную функциональность Payture API. В этом случае мы рекомендуем использовать интерфейс Payture InPay или Payture eWallet.

Возможности

Интерфейс API Payture позволяет выполнять стандартный набор операций электронной коммерции при условии ввода данных банковских карт на странице Продавца:

PayБыстрое проведение платежа одной командой
BlockБлокировка средств на карте Покупателя
ChargeЗавершение платежа со списанием средств с карты Покупателя
UnblockОтмена блокировки средств на карте Покупателя
RefundВозврат средств (полный или частичный) на карту Покупателя
GetStateУточнение текущего состояния платежа

Интеграция с платежным шлюзом

Взаимодействие решения Продавца с платежным шлюзом Payture строится по схеме запрос-ответ.

Запрос Payture API

Запрос c необходимыми параметрами формируется на стороне Продавца и передается методом POST по протоколу HTTPS. Тип тела запроса "Content-Type: application/x-www-form-urlencoded".

https://{Host}.payture.com/api/{Command}

где {Host} – хост платежного шлюза, {Command} – название команды.

Ответ Payture API

Результаты обработки запросов возвращаются платежным шлюзом синхронно в формате XML, кодировка UTF8.

<{Command} Key="Value" Key2="Value2"/>

Payture API Scheme

Дополнительная безопасность

Для повышения безопасности платежей в этом интерфейсе Продавца может использовать механизм аутентификации 3-D Secure. Включение механизма осуществляется на стороне шлюза при наличии письменной заявки от Продавца после предварительной интеграции поддержки 3-D Secure.

Обратите внимание: после включения аутентификации 3-D Secure формат операций Block/Pay незначительно изменяется, как описано в разделе 3-D Secure.

GET https://{Host}.payture.com/api/Pay

Запрос Pay используется для быстрого проведения клиентского платежа одним действием. Платеж в этом случае выполняется по одностадийной схеме. Результатом обработки запроса является списание денежных средств с карты Покупателя. Списанные средства могут быть (полностью или частично) возвращены на карту Покупателя при помощи команды Refund.

Запрос

curl https://sandbox3.payture.com/api/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12368 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
--data-urlencode "PayInfo= \
PAN=4111111111100031; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368" \
--data-urlencode "CustomFields = \
IP=66.159.236.12; \
Product=Ticket" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
PayInfo Параметры для совершения транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory
PaytureId Идентификатор платежа в системе Payture AntiFraud String [1..50]
Optional
CustomerKey Идентификатор Покупателя в системе Payture AntiFraud String [1..50]
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Состав параметра PayInfo

Пример параметра PayInfo (decoded):

PAN=4111111111100031;
EMonth=12;
EYear=22;
CardHolder=Ivan Ivanov;
SecureCode=123;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368

Внимание! Параметры OrderId и Amount передаются дважды в одном запросе: в основных параметрах запроса и в параметре PayInfo.

Параметр Описание Формат
PAN Номер карты
Цифры без пробелов
String [13..19]
Mandatory
EMonth Месяц истечения срока действия карты
2 цифры
Integer
Mandatory
EYear Год истечения срока действия карты
Последние 2 цифры года
Integer
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
SecureCode CVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала
Integer
Optional
CardHolder Фамилия и имя держателя карты
Только латинские буквы и пробел
String [1..30]
Optional

Пример возможных ключей параметра CustomFields

Пример параметра CustomFields (decoded):

IP=66.159.236.12;
Description=MyTestTransaction
Параметр Описание Формат
IP IP адрес Покупателя
IPv4 или IPv6
String
Optional
Description Дополнительное описание платежа String
Optional

Ответ

XML строка с элементом Pay

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

Success: True False 3DS
<Pay OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="True" Amount="12368"/>
<Pay OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="3DS" Amount="12368" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Key Наименование платежного Терминала
Соответствует переданному в запросе
String
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если было перенаправление на другой Терминал
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/api/Block

Этот запрос позволяет блокировать денежные средства на карте Покупателя для последующего списания. Выполняется в рамках двухстадийной схемы проведения платежа. Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock.

Запрос

curl https://sandbox3.payture.com/api/Block \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12368 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
--data-urlencode "PayInfo= \
PAN=4111111111100031; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368" \
--data-urlencode "CustomFields = \
IP=66.159.236.12; \
Product=Ticket" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
PayInfo Параметры для совершения транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory
PaytureId Идентификатор платежа в системе Payture AntiFraud String [1..50]
Optional
CustomerKey Идентификатор Покупателя в системе Payture AntiFraud String [1..50]
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Состав параметра PayInfo

Пример параметра PayInfo (decoded):

PAN=4111111111100031;
EMonth=12;
EYear=22;
CardHolder=Ivan Ivanov;
SecureCode=123;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368

Внимание! Параметры OrderId и Amount передаются дважды в одном запросе: в основных параметрах запроса и в параметре PayInfo.

Параметр Описание Формат
PAN Номер карты
Цифры без пробелов
String [13..19]
Mandatory
EMonth Месяц истечения срока действия карты
2 цифры
Integer
Mandatory
EYear Год истечения срока действия карты
Последние 2 цифры года
Integer
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
SecureCode CVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала
Integer
Optional
CardHolder Фамилия и имя держателя карты
Только латинские буквы и пробел
String [1..30]
Optional

Пример возможных ключей параметра CustomFields

Пример параметра CustomFields (decoded):

IP=66.159.236.12;
Description=MyTestTransaction
Параметр Описание Формат
IP IP адрес Покупателя
IPv4 или IPv6
String
Optional
Description Дополнительное описание платежа String
Optional

Ответ

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

Success: True False 3DS
<Block OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="True" Amount="12492"/>
<Block OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Block OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="3DS" Amount="12725" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>

XML строка с элементом Block.

Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Key Наименование платежного Терминала
Соответствует переданному в запросе
String
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если было перенаправление на другой Терминал
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/api/Charge

Запрос используется для списания денежных средств с карты Покупателя, предварительно заблокированных командой Block. Выполняется в рамках двухстадийной схемы проведения платежа. Результатом обработки запроса является списание с карты Покупателя суммы, не превышающей заблокированной (равной или меньшей).

Внимание! Для успешного списания необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.

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

curl https://sandbox3.payture.com/api/Charge \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
AmountСумма списания в копейках. В случае отсутствия параметра в запросе выполняется списание полной суммы
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Charge

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

Success: True False
<Charge Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Amount="12564"/>
<Charge Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Конечная сумма, списанная с карты Покупателя
Передается, если «Success=True»
Integer
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/api/Unblock

Запрос позволяет полностью снять блокирование денежных средств, предварительно заблокированных командой Block. Выполняется в рамках двухстадийной схемы проведения платежа. Результатом обработки запроса является полное разблокирование суммы, заблокированной на карте Покупателя.

Внимание! Для успешной разблокировки средств необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.

curl https://sandbox3.payture.com/api/Unblock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Запрос

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory

Ответ

XML строка с элементом Unblock

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

Success: True False
<Unblock Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" NewAmount="0"/>
<Unblock Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="ILLEGAL_ORDER_STATE"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmount Остаток заблокированной суммы, всегда равен "0"
Передается, если «Success=True»
Integer
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/api/Refund

Этот запрос используется для возврата денежных средств, списанных командой Pay или Charge, на карту Покупателя. Выполняется как при одностадийной, так и при двухстадийной схеме проведения платежа. Результатом обработки запроса является возврат (полный или частичный) списанных денежных средств на карту Покупателя.

Внимание! Для успешного возврата необходимо, чтобы на момент исполнения запроса платеж имел статус Charged.

Запрос

curl https://sandbox3.payture.com/api/Refund \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d Amount=12368 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Password Пароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма, которую следует вернуть, в копейках. В случае отсутствия параметра в запросе выполняется полный возврат
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Refund.

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

Success: True False
<Refund Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" NewAmount="0"/>
<Refund Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="PROCESSING_TIME_OUT"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmount Остаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/api/GetState

Запрос используется для получения информации о текущем состоянии платежа. Рекомендуется также использовать его в случае неполучения ответа от шлюза Payture при проведении других запросов по платежу.

Выполняется как при одностадийной, так и при двухстадийной схеме проведения платежа.

Результатом обработки запроса является получение актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/api/GetState \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory

Ответ

XML строка с элементом GetState

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

Success: True False
<GetState Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" State="Refunded" Forwarded="False" MerchantContract="Merchant" Amount="12368"/>
<GetState Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" State="" Forwarded="False" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках
Передается, если «Success=True»
Integer
Optional
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Payture InPay

Программный интерфейс Payture InPay предназначен для Продавца, заинтересованных в доступе к удобному и гибкому решению для автоматизации электронных платежей. По своей функциональности он аналогичен Payture API. Основное его отличие от Payture API – данные банковской карты Покупателя вводятся не на веб-странице Продавца, а на странице защищенного шлюза Payture. Таким образом, при использовании Payture InPay Продавец избавлен от необходимости самостоятельно обеспечивать безопасность платежной информации Покупателя – защиту информации обеспечивает Payture.

Возможности

Интерфейс Payture InPay позволяет выполнять стандартный набор операций электронной коммерции с вводом данных банковских карт на странице шлюза Payture:

Init Инициализация сессии двухстадийного платежа
Pay Запрос для быстрого выполнения одностадийного платежа или для блокировки средств на карте при двухстадийном платеже
Charge Списание средств, заблокированных на карте Покупателя
Unblock Отмена блокировки средств на карте Покупателя
Refund Полный или частичный возврат средств на карту Покупателя
GetState Получение текущего состояния платежа

Интеграция с платежным шлюзом

Взаимодействие решения Продавца с платежным шлюзом Payture строится по схеме запрос-ответ.

Запрос Payture InPay

Запрос c необходимыми параметрами формируется на стороне Продавца и передается методом POST по протоколу HTTPS. Тип тела запроса "Content-Type: application/x-www-form-urlencoded".

https://{Host}.payture.com/apim/{Command}

где {Host} – хост платежного шлюза, {Command} – название команды.

Ответ InPay

Результаты обработки запросов выдаются платежным шлюзом синхронно в формате XML, кодировка UTF8.

<{Command} Key="Value" Key2="Value2" />

Payture InPay API Scheme

Дополнительная безопасность

Для повышения безопасности платежей в этом интерфейсе Продавец может использовать механизм аутентификации 3-D Secure. Включение механизма осуществляется на стороне шлюза при наличии письменной заявки Продавца после предварительной интеграции поддержки 3-D Secure.

Обратите внимание: после включения аутентификации 3-D Secure формат операций Charge/Pay незначительно изменяется, как описано в разделе 3-D Secure.

Внимание! Поскольку при использовании Payture InPay данные платежной карты Покупателя вводятся не на веб-странице Продавца, а на странице защищенного шлюза Payture, к Продавца не выдвигается требований по соответствию стандарту безопасности PCI DSS.

Шаблоны для Payture InPay

При работе с Payture InPay Продавцу необходимо подготовить страницу, на которую будет перенаправляться Покупатель для оплаты. Информацию и подробные технические сведения о создании таких страниц вы можете изучить здесь. Также предлагаем скачать готовые к использованию шаблоны таких страниц, которые легко можете изменить и настроить под свои запросы.

https://{Host}.payture.com/apim/Init

Запрос инициализации платежа. Выполняется перед операцией списания средств или блокировки средств на карте Покупателя при двухстадийном платеже. Результатом исполнения запроса является подготовка к перенаправлению Покупателя на страницу платежного шлюза Payture для ввода данных банковской карты.

Запрос

curl https://sandbox3.payture.com/apim/Init \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
--data-urlencode "Data= \
SessionType=Pay; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368; \
Product=Ticket; \
Total=123.68; \
Phone=79156783333; \
Description=MyTestTransaction; \
Url=https://payture.com/result?orderid={orderid}&result={success}" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Data Параметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав параметра Data

Пример параметра Data (decoded):

SessionType=Pay;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
Total=123.68;
Product=Ticket;
Phone=79156783333;
Description=MyTestTransaction;
Url=https://payture.com/result?orderid={orderid}&result={success}

Пример параметра Url (адрес возврата):

https://server.com/result?orderid={orderid}&result={success}

Параметры {success}, {orderid} указываются в нижнем регистре.

Параметр Описание Формат
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж
Block — двухстадийный платеж
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
Url Адрес возврата Покупателя после совершения платежа. В адресе возврата дополнительно могут передаваться параметры Success и OrderId
В общем случае адрес возврата можно настроить для платежного Терминала через службу поддержки Payture и не передавать
String
Optional
Product Название оплачиваемой покупки, которое будет выведено Покупателю на странице оплаты String [1..50]
Optional
Total Сумма заказа, которая будет выведена Покупателю на странице оплаты String [1..50]
Optional
TemplateTag Название используемого шаблона страницы оплаты
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default». См. подробнее о шаблонах страниц оплаты
String [1..50]
Optional
Language Язык шаблона страницы оплаты
Необходимо передавать, если для шаблона используется несколько языков. Если параметр не передан, используется язык шаблона «Default». См. подробнее о шаблонах страниц оплаты
String [1..50]
Optional
Phone Номер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional
Description Дополнительное описание платежа String
Optional
IP IP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Init

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

Success: True False
<Init Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Amount="12368" SessionId="72222870-96eb-f30a-e6ea-5bbd2ad644dc"/>
<Init Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="AMOUNT_ERROR"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True». Соответствует переданному в запросе
Integer
Optional
SessionId Идентификатор платежной сессии в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/apim/Pay

Запрос открытия страницы оплаты на стороне платежного шлюза Payture. После обработки запроса Pay Покупатель будет перенаправлен на страницу оплаты.

Запрос Pay выполняется после успешной команды инициализации сессии Init.

Порядок выполнения операции – POST запрос с перенаправлением Покупателя на страницу Payture. На сранице оплаты Покупатель вводит данные карты, по которой будет выполнен платеж.

При совершении Покупателем оплаты с платежной страницы будет отправлен запрос на списание средств (при одностадийном платеже) или блокировку средств (при двухстадийном платеже).

Запрос

curl https://sandbox3.payture.com/apim/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d SessionId=72222870-96eb-f30a-e6ea-5bbd2ad644dc \

В запросах наименования параметров чувствительны к регистру

ПараметрОписаниеФормат
SessionIdИдентификатор платежной сессии. Содержится в ответе на запрос InitString [36]
Mandatory

После совершения оплаты Покупателю будут показаны результаты платежа, и через 3 секунды он будет перенаправлен на страницу возврата (параметр Url запроса Init).

Результаты выполнения операции передаются Продавцу в рамках нотификации.

https://{Host}.payture.com/apim/Charge

Запрос используется для списания денежных средств с карты Покупателя, предварительно заблокированных командой Pay.

Выполняется в рамках двухстадийной схемы проведения платежа. Результатом обработки запроса является списание с карты Покупателя суммы, не превышающей заблокированной (равной или меньшей).

Внимание! Для успешного списания необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.

Запрос

curl https://sandbox3.payture.com/apim/Charge \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

ПараметрОписаниеФормат
KeyНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory
AmountСумма списания в копейках. В случае отсутствия параметра в запросе выполняется списание полной суммы
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Сharge

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

Success: True False
<Charge Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Amount="12368"/>
<Charge Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="ILLEGAL_ORDER_STATE"/>
ПараметрОписаниеФормат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Конечная сумма, списанная с карты Покупателя
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/apim/Unblock

Запрос позволяет полностью снять блокирование денежных средств, ранее заблокированных на карте Покупателя командой Block.

Выполняется в рамках двухстадийной схемы проведения платежа. Результатом обработки запроса является полная разблокировка суммы, заблокированной на карте Покупателя.

Внимание! Для успешной разблокировки средств необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.

Запрос

curl https://sandbox3.payture.com/apim/Unblock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

ПараметрОписаниеФормат
KeyНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory

Ответ

XML строка с элементом Unblock

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

Success: True False
<Unblock Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" NewAmount="0"/>
<Unblock Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="ILLEGAL_ORDER_STATE"/>
ПараметрОписаниеФормат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmountОстаток заблокированной суммы, всегда равен "0"
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/apim/Refund

Этот запрос используется для возврата денежных средств, списанных командой Pay (при одностадийной схеме проведения платежа) или Charge (при двухстадийной схеме). Результатом обработки запроса является полный или частичный возврат списанных денежных средств на карту Покупателя.

Внимание! Для успешного возврата необходимо, чтобы на момент исполнения запроса платеж имел статус Charged.

Запрос

curl https://sandbox3.payture.com/apim/Refund \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
-d Amount=12368 \

В запросах наименования параметров чувствительны к регистру

ПараметрОписаниеФормат
KeyНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory
AmountСумма, которую следует вернуть, в копейках. В случае отсутствия параметра в запросе выполняется полный возврат
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Refund

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

Success: True False
<Refund Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" NewAmount="2000"/>
<Refund Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="AMOUNT_ERROR"/>
ПараметрОписаниеФормат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/apim/GetState

Запрос используется для получения информации о текущем состоянии платежа. Рекомендуется также использовать его в случае неполучения ответа от шлюза Payture при проведении других запросов по платежу.

Выполняется как при одностадийной, так и при двухстадийной схеме проведения платежа.

Результатом обработки запроса является получение актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/apim/GetState \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory

Ответ

XML строка с элементом GetState

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

Success: True False
<GetState Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" State="Refunded" Forwarded="False" MerchantContract="Merchant" Amount="12368"/>
<GetState Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" State="" Forwarded="False" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках
Передается, если «Success=True»
Integer
Optional
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/apim/PayStatus

Запрос используется для получения информации о текущем состоянии платежа. Рекомендуется также использовать его в случае не получения ответа от шлюза Payture, при проведении других запросов по платежу.

Выполняется как при одностадийной, так и при двухстадийной схемы проведения платежа.

Результатом обработки запроса является получение актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/apim/PayStatus \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

ПараметрОписаниеФормат
KeyНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory

Ответ

XML строка с элементом PayStatus

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

Success: True False
<PayStatus Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantContract="Merchant" Amount="12368" State="Charged" Forwarded="False"/>
<PayStatus Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantContract="Merchant" ErrCode="ORDER_NOT_FOUND" Forwarded="False"/>
ПараметрОписаниеФормат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках
Передается, если «Success=True»
Integer
Optional
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Payture eWallet

Программный интерфейс Payture eWallet предоставляет ряд дополнительных возможностей, ориентированных на удобство постоянных Покупателей той или иной системы электронных платежей. eWallet предлагает функциональность по регистрации Покупателей в системе и привязке платежных карт к учетным записям зарегистрированных Покупателей.

Возможности

Интерфейс Payture eWallet обеспечивает управление учетными записями Покупателей, управление платежными картами, и наконец, проведение платежных операций с картами Покупателей:

InitИнициализация сессии для проведения операции настранице Payture, используется в случаях, когда для ввода данных карты (операции добавления карты или списания) Покупатель перенаправляется на сторону Payture
PayСписание (одностадийный платеж) или блокирование (двухстадийный платеж) средств на карте Покупателя
ChargeСписание средств, заблокированных на карте Покупателя в рамках двухстадийного платежа
UnblockОтмена блокировки средств, заблокированных на карте Покупателя в рамках двухстадийного платежа
RefundЧастичный или полный возврат средств, например за неоказанную услугу или возврат товара
GetStateПолучение актуального состояния платежа

Дополнительная безопасность

Взаимодействие решения Продавца с платежным шлюзом Payture строится по схеме запрос-ответ.

Запрос Payture eWallet
Запрос c необходимыми параметрами формируется на стороне Продавца и передается методом POST по протоколу HTTPS. Тип тела запроса "Content-Type: application/x-www-form-urlencoded".

https://{Host}.payture.com/vwapi/{Command}

где {Host} – хост платежного шлюза, {Command} – название команды.

Ответ eWallet
Результаты обработки запросов выдаются платежным шлюзом синхронно в формате XML, кодировка UTF8.

<{Command} Key="Value" Key2="Value2" />

Для повышения безопасности платежей в этом интерфейсе Продавец может использовать механизм аутентификации 3-D Secure. Включение механизма осуществляется на стороне шлюза при наличии письменной заявки Продавца после предварительной интеграции поддержки 3-D Secure.

Обратите внимание: после включения аутентификации 3-D Secure формат операций Block/Pay незначительно изменяется, как описано в разделе 3-D Secure.

Внимание! Payture eWallet поддерживает два варианта архитектуры платежного решения: данные платежной карты Покупателя могут вводиться как на веб-странице Продавца, так и на странице защищенного шлюза Payture. В первом случае Продавец должен соответствовать требованиям стандарта безопасности PCI DSS, чтобы гарантировать достаточный уровень защищенности вводимых данных. Для подтверждения соответствия этому стандарту Продавцу необходимо, как правило, заполнить самоопросник SAQ категории D и пройти его верификацию, которая может повлечь дополнительные, хоть и небольшие, финансовые и организационные затраты.

Если у Вас нет возможности пройти верификацию по стандарту PCI DSS, вы не сможете использовать эту платежную функциональность. В этом случае мы рекомендуем использовать опцию «ввод данных карты на странице платежного шлюза Payture».

Шаблоны для Payture eWallet

Если Вы выбрали реализацию с вводом данных карты Покупателя на странице платежного шлюза Payture, то Вам необходимо подготовить страницу, на которую будет перенаправляться Покупатель для оплаты. Информацию и подробные технические сведения о создании таких страниц вы можете изучить здесь. Также предлагаем Вам скачать готовые к использованию шаблоны таких страниц, которые Вы легко можете изменить и настроить под свои запросы.

Payture eWallet предлагает набор функций по управлению учетными записями постоянных клиентов. Эта функциональность позволяет решать такие задачи, как создание новой учетной записи, изменение параметров или же удаление учетной записи.

RegisterРегистрация Покупателя в системе Payture
UpdateИзменение параметров зарегистрированного в системе Покупателя
DeleteУдаление зарегистрированного Покупателя
CheckПроверка существования Покупателя в платежной системе Payture
https://{Host}.payture.com/vwapi/Register

Этот запрос служит для регистрации нового Покупателя в платежной системе Payture.

Система также предлагает возможность регистрации Покупателя не отдельной командой, а автоматически, при исполнении команды добавления карты. Для активации этой опции, пожалуйста, обратитесь в службу поддержки Payture.

Запрос

curl https://sandbox3.payture.com/vwapi/Register \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
PhoneNumber=79156783333" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры Покупателя
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
PhoneNumber=79156783333
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе Payture
Устанавливается Продавцом, например email
String [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)
Устанавливается Продавцом
String [1..50]
Mandatory
PhoneNumberНомер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional
EmailEmail Покупателя
Может передаваться, если не используется в качестве VWUserLgn
String [1..50]
Optional

Ответ

XML строка с элементом Register

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

Success: True False
<Register Success="True" VWUserLgn="123@ya.ru"/>
<Register Success="False" VWUserLgn="123@ya.ru" ErrCode="DUPLICATE_USER"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Update

Запрос позволяет редактировать параметры учетной записи Покупателя (PhoneNumber или Email), зарегистрированного ранее в системе Payture.

Запрос

curl https://sandbox3.payture.com/vwapi/Update \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
PhoneNumber=79156783333" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры Покупателя
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
PhoneNumber=79156783333
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
PhoneNumberНомер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional
EmailEmail Покупателя
Может передаваться, если не используется в качестве VWUserLgn
String [1..50]
Optional

Ответ

XML строка с элементом Update

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

Success: True False
<Update Success="True" VWUserLgn="123@ya.ru"/>
<Update Success="False" VWUserLgn="123@ya.ru" ErrCode="DUPLICATE_USER"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Delete

Запрос служит для удаления учетной записи выбранного Покупателя, а также всех карт, зарегистрированных на его имя в системе Payture.

Запрос

curl https://sandbox3.payture.com/vwapi/Delete \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
Password=123" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры Покупателя
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
Password=123
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory

Ответ

XML строка с элементом Delete

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

Success: True False
<Delete Success="True" VWUserLgn="123@ya.ru"/>
<Delete Success="False" VWUserLgn="" ErrCode="ACCESS_DENIED"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Check

Этот запрос служит для проверки существования Покупателя в платежной системе Payture.

Запрос

curl https://sandbox3.payture.com/vwapi/Check \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры Покупателя
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory

Ответ

XML строка с элементом Check

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

Success: True False
<Check Success="True" VWUserLgn="123@ya.ru"/>
<Check Success="False" VWUserLgn="123@ya.ru" ErrCode="USER_NOT_FOUND"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

В этом разделе описаны функции по управлению картами Покупателей в системе eWallet (привязка карты к учетной записи Покупателя, активация карты, удаление карты и т.д.)

Обратите внимание, что карту необходимо не только привязать к выбранному Покупателю, но и активировать. При активации с карты списывается случайная небольшая сумма, которую Покупатель должен точно указать. Платежи по зарегистрированной карте возможны только после ее активации.

AddДобавление банковской карты в список карт Покупателя с автоматической блокировкой средств для последующей активации
ActivateАктивация карты, опциональная операция, заключающаяся в проверке случайной суммы, заблокированной на карте при ее регистрации. Неактивированная карта не может быть использована для оплаты
GetListПолучение актуальной информации о картах Покупателя, например с целью активации, удаления карты или проведения платежа
RemoveУдаление карты из списка карт Покупателя
https://{Host}.payture.com/vwapi/Add

Данный запрос служит для регистрации новой платежной карты в системе Payture и ее привязки к Покупателю, ранее зарегистрированному в системе. При регистрации карты происходит блокировка произвольной суммы (от 1 до 5000 копеек) на карте Покупателя для подтверждения права владения Покупателя указанной картой. Значение суммы необходимо ввести при активации карты после ее добавления.

По желанию Продавца возможно установить автоматическую активацию карты, для этого необходимо обратиться в службу поддержки Payture.

Внимание! Платежи по зарегистрированной карте возможны только после ее активации.

В зависимости от наличия у Продавца сертификата PCI DSS, регистрация карты может проводится на веб-странице продавца или на странице защищенного шлюза Payture.

Payture eWallet API Card Add Scheme

Команда регистрации новой платежной карты непосредственно на веб-странице Продавца.

Запрос Add

curl https://sandbox3.payture.com/vwapi/Add \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardNumber=4111111111100031; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
PhoneNumber=79156783333" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры карты
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Cостав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardNumber=4111111111100031;
EMonth=12;
EYear=22;
CardHolder=Ivan Ivanov;
SecureCode=123;
PhoneNumber=79156783333
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardNumberНомер карты
Цифры без пробелов
String [13..19]
Mandatory
EMonthМесяц истечения срока действия карты
2 цифры
Integer
Mandatory
EYearГод истечения срока действия карты
Последние 2 цифры года
Integer
Mandatory
SecureCodeCVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от схемы регистрации карты и конфигурации платежного Терминала
Integer
Optional
CardHolderФамилия и имя держателя карты
Только латинские буквы и пробел
String [1..30]
Optional
PhoneNumberНомер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional

Ответ

XML строка с элементом Add

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

Success: True False 3DS
<Add VWUserLgn="123@ya.ru" Success="True" CardName="521885xxxxxx5484" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5"/>
<Add VWUserLgn="123@ya.ru" Success="False" ErrCode="WRONG_CARD_INFO"/>
<Add VWUserLgn="123@ya.ru" Success="3DS" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" CardName="521885xxxxxx5484" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardNameМаскированный номер карты (первые 6 и последние 4 цифры: 123456хххххх1234)
Передается, если «Success=True» или «Success=3DS»
String [13..19]
Optional
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True» или «Success=3DS»
String [36]
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Add

Команда регистрации новой платежной карты на стороне платежного шлюза Payture выполняется после успешной команды инициализации сессии Init.

Порядок выполнения операции – POST запрос с перенаправлением Покупателя на страницу Payture.

Запрос Add

curl https://sandbox3.payture.com/vwapi/Add \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d SessionId=72222870-96eb-f30a-e6ea-5bbd2ad644dc \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
SessionIdИдентификатор сессии, возвращаемый в ответ на команду InitString [36]
Mandatory

После завершения попытки регистрации карты Покупатель будет перенаправлен на страницу возврата (параметр Url запроса Init).

Результаты выполнения операции передаются платежным шлюзом в рамках нотификации.

https://{Host}.payture.com/vwapi/Activate

Запрос используется для активации карты, ранее зарегистрированной в системе Payture и ожидающей активации.

Во время выполнения запроса Покупателю необходимо указать сумму, заблокированную на карте в ходе обработки запроса. В случае корректного ввода заблокированной суммы Покупателем, карта будет активирована и заблокированные денежные средства будут разблокированы. В случае некорректного ввода денежные средства разблокируются по отдельному запросу Покупателя.

Запрос

curl https://sandbox3.payture.com/vwapi/Activate \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5; \
Amount=101" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры карты
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5;
Amount=12368
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture, для которой выполняется активацияString [36]
Mandatory
Amount Заблокированная сумма на карте Покупателя в копейках Integer
Mandatory

Ответ

XML строка с элементом Activate

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

Success: True False
<Activate Success="True" VWUserLgn="123@ya.ru" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5"/>
<Activate Success="False" VWUserLgn="123@ya.ru" ErrCode="CARD_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Remove

Этот запрос служит для удаления данных платежной карты (как активированной, так и неактивированной) из списка карт выбранного Покупателя.

Запрос

curl https://sandbox3.payture.com/vwapi/Remove \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры карты
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture, для которой выполняется активацияString [36]
Mandatory

Ответ

XML строка с элементом Remove

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

Success: True False
<Remove Success="True" VWUserLgn="123@ya.ru" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5"/>
<Remove Success="False" VWUserLgn="123@ya.ru" ErrCode="WRONG_CARD_INFO"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/GetList

Запрос позволяет получить список платежных карт, зарегистрированных выбранным Покупателем в системе Payture.

Запрос

curl https://sandbox3.payture.com/vwapi/GetList \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры Покупателя
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory

Ответ

XML строка с элементом GetList и вложенными элементами Item

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

Success: True False
<GetList Success="True" VWUserLgn="123@ya.ru">
  <Item CardName="411111xxxxxx1112" CardId="e5dfa016-27e0-45bb-8167-44299642b529" CardHolder="Ivan Ivanov" Status="NotActive" NoCVV="false" Expired="false"/>
  <Item CardName="411111xxxxxx1111" CardId="001f2def-64e9-4cef-ae02-aa2bd9508a8b" CardHolder="Ivan Ivanov" Status="IsActive" NoCVV="true" Expired="false">
    <Param Key="LastSuccess" Value="2014.06.24 12:42:14"/>
    <Param Key="LastLessSecureCode:VWMerchantTest" Value="True"/>
  </Item>
</GetList>
<GetList Success="False" VWUserLgn="123@ya.ru" ErrCode="WRONG_USER_PARAMS"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
ItemСписок карт Покупателя
Передается, если «Success=True»
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Атрибуты элемента Item

Параметр Описание Формат
CardNameМаскированный номер карты (первые 6 и последние 4 цифры: 123456хххххх1234)
Передается, если «Success=True» или «Success=3DS»
String [13..19]
Mandatory
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True» или «Success=3DS»
String [36]
Mandatory
CardHolderФамилия и имя держателя карты
Только латинские буквы и пробел
String [1..30]
Mandatory
StatusТекущий статус карты:
IsActive — карта активирована (возможно выполнение запроса проведения платежа, удаления карты)
NotActive — карта не активирована (возможно выполнение запроса активации карты, удаления карты)
NotActive3DS — карта вовлечена в 3-D Secure и не активирована (возможно выполнение запроса активации карты, удаления карты)
String
Mandatory
NoCVVВозможность оплаты по карте без введения CVV2/CVC2:
true — оплата возможна
false — оплата невозможна
Boolean
Mandatory
ExpiredПризнак истечения срока действия карты:
true — срок действия карты истек
false — срок действия не истек
Boolean
Mandatory
ParamДополнительные параметры карты
Каждый параметр передается во вложенном узле Param в формате Key={Key} Value={Value}
Object
Optional
https://{Host}.payture.com/vwapi/Init

Запрос инициализации платежа или добавления карты на стороне Payture. Выполняется перед перенаправлением Покупателя на страницу платежного шлюза Payture для ввода данных карты.

Запрос

curl https://sandbox3.payture.com/vwapi/Init \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
SessionType=Pay; \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368; \
Product=Ticket; \
Total=123.68; \
Description=MyTestTransaction; \
PhoneNumber=79156783333; \
Url=https://payture.com/result?orderid={orderid}&result={success}" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATA Параметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

SessionType=Pay;
VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
Product=Ticket;
Total=123.68;
Description=MyTestTransaction;
PhoneNumber=79156783333;
Url=https://payture.com/result?orderid={orderid}&result={success}

Пример параметра Url (адрес возврата):

https://server.com/result?orderid={orderid}&result={success}

Параметры {success}, {orderid} указываются в нижнем регистре.

ПараметрОписаниеФормат
SessionType Тип платежа. Определяет количество стадий платежа:
Add — регистрация карты
Pay — одностадийный платеж
Block — двухстадийный платеж
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
OrderIdУникальный идентификатор платежа в системе Продавца
Параметр обязателен, если «SessionType=Pay» или «SessionType=Block»
String [1..50]
Optional
AmountСумма платежа в копейках
Параметр обязателен, если «SessionType=Pay» или «SessionType=Block»
Integer
Optional
Url Адрес возврата Покупателя после совершения платежа. В адресе возврата дополнительно могут передаваться параметры Success и OrderId
В общем случае адрес возврата можно настроить для платежного Терминала через службу поддержки Payture и не передавать
String
Optional
CardIdИдентификатор зарегистрированной карты Покупателя в статусе «IsActive», которая будет выбрана по умолчанию на странице оплаты
Может быть передан, если «SessionType=Pay» или «SessionType=Block»
String [36]
Optional
ProductНазвание оплачиваемой покупки, которое будет выведено Покупателю на странице оплатыString [1..50]
Optional
TotalСумма заказа, которая будет выведена Покупателю на странице оплатыString [1..50]
Optional
TemplateTagНазвание используемого шаблона страницы оплаты
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default». См. подробнее о шаблонах страниц оплаты
String [1..50]
Optional
LanguageЯзык шаблона страницы оплаты
Необходимо передавать, если для шаблона используется несколько языков. Если параметр не передан, используется язык шаблона «Default». См. подробнее о шаблонах страниц оплаты
String [1..50]
Optional
PhoneNumberНомер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional
DescriptionДополнительное описание платежаString
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64String
Optional

Ответ

XML строка с элементом Init

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

Success: True False
<Init Success="True" Amount="0" SessionId="72222870-96eb-f30a-e6ea-5bbd2ad644dc" SessionType="Add"/>
<Init Success="False" ErrCode="ACCESS_DENIED"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderIdИдентификатор платежа в системе Продавца
Передается, если «Success=True» и «SessionType=Pay» (Block). Соответствует переданному в запросе
String [1..50]
Optional
AmountСумма платежа в копейках
Передается, если «Success=True». Равен «0» если «SessionType=Add»
Integer
Optional
SessionIdИдентификатор платежной сессии в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Pay

Запрос служит для списания средств в рамках одностадийного платежа (SessionType=Pay) или для блокирования средств при двухстадийном платеже (SessionType=Block).

Процедура списания средств включает несколько сценариев для использования в различных ситуациях. Данные платежной карты Покупателя могут вводиться как на веб-странице Продавца, так и на странице защищенного шлюза Payture. Оплата может производиться как с зарегистрированной в системе Payture карты, так и с незарегистрированной.

Запрос на выполнение платежа непосредственно на веб-странице Продавца.

При этом возможны два сценария оплаты: зарегистрированной картой и незарегистрированной.

Payture eWallet API Pay Merchant Scheme

Запрос Pay для выполнения списания или блокировки средств с зарегистрированной карте Покупателя. Карта должна находится в статусе «IsActive».

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5; \ 
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368; \
SecureCode=123; \
IP=66.159.236.12" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
SecureCode=123;
SessionType=Block;
IP=66.159.236.12
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор ранее зарегистрированной карты в системе PaytureString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
SecureCode CVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала
Integer
Optional
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Pay

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12368"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12368" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Запрос Pay для выполнения списания или блокировки средств с незарегистрированной ранее карте.

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=FreePay; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368; \
CardNumber=4111111111100031; \
CardHolder=Ivan Ivanov; \
EMonth=12; \
EYear=22; \
SecureCode=123; \
IP=66.159.236.12" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=FreePay;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
CardNumber=4111111111100031;
CardHolder=Ivan Ivanov;
EMonth=12;
EYear=22;
SecureCode=123;
SessionType=Block;
IP=66.159.236.12
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdДля платежа по незарегистрированной карте необходимо передавать значение CardId=FreePayString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
CardNumberНомер карты
Цифры без пробелов
String [13..19]
Mandatory
EMonthМесяц истечения срока действия карты
2 цифры
Integer
Mandatory
EYearГод истечения срока действия карты
Последние 2 цифры года
Integer
Mandatory
SecureCode CVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала
Integer
Optional
CardHolderФамилия и имя держателя карты
Только латинские буквы и пробел
String [1..30]
Optional
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Pay

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12368"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12368" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Запрос Pay выполняется для открытия страницы оплаты на стороне платежного шлюза Payture. После обработки запроса Pay Покупатель будет перенаправлен на страницу оплаты.

Запрос Pay выполняется после успешной команды инициализации сессии Init.

Порядок выполнения операции – POST запрос с перенаправлением Покупателя на страницу Payture. На сранице оплаты Покупатель может выбрать ранее зарегистрированую карту или ввести данные новой карты, по которой будет выполнен платеж.

При совершении Покупателем оплаты с платежной страницы будет отправлен запрос на списание средств (при одностадийном платеже) или блокировку средств (при двухстадийном платеже).

Payture eWallet API Pay Payture Scheme

Запрос Pay

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d SessionId=72222870-96eb-f30a-e6ea-5bbd2ad644dc \

В запросах наименования параметров чувствительны к регистру

ПараметрОписаниеФормат
SessionIdИдентификатор платежной сессии. Содержится в ответе на запрос InitString
Mandatory

После совершения оплаты Покупателю будут показаны результы платежа, и через 3 секунды он будет перенаправлен на страницу возврата (параметр Url запроса Init).

Результаты выполнения операции передаются Продавцу в рамках нотификации.

Запрос предназначен для выполнения платежа по ранее привязанной карте без участия Покупателя (рекуррентный платеж) или для проведения оплаты в "один клик" без повторного ввода реквизитов карты (рекарринговый платеж).

Запрос Pay

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала для выполнения рекуррентных / рекарринговых платежейString
Mandatory
DATAПараметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
SessionType=Block
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdДля платежа по незарегистрированной карте необходимо передавать значение CardId=FreePayString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элеметном Pay

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

Success: True False
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12368"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Charge

Запрос используется для списания денежных средств с карты Покупателя, предварительно заблокированных командой Pay. Выполняется в рамках двухстадийной схемы проведения платежа.

Результатом обработки запроса является списание с карты Покупателя суммы, не превышающей заблокированной (равной или меньшей).

Внимание! Для успешного списания необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.

Запрос

curl https://sandbox3.payture.com/vwapi/Charge \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
-d Password=123 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory
AmountСумма списания в копейках. В случае отсутствия параметра в запросе выполняется списание полной суммы
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64String
Optional

Ответ

XML строка с элементом Charge

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

Success: True False
<Charge Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Amount="12368"/>
<Charge Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="ILLEGAL_ORDER_STATE"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Конечная сумма, списанная с карты Покупателя
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Unblock

Запрос позволяет полностью снять блокирование денежных средств, заблокированных на карте Покупателя командой Pay. Выполняется в рамках двухстадийной схемы проведения платежа.

Результатом обработки запроса является полная разблокировка средств, заблокированных на карте Покупателя.

Внимание! Для успешной разблокировки средств необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.

Запрос

curl https://sandbox3.payture.com/vwapi/Unblock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
-d Password=123 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory

Ответ

XML строка с элементом Unblock

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

Success: True False
<Unblock Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" NewAmount="0"/>
<Unblock Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="ILLEGAL_ORDER_STATE"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmountОстаток заблокированной суммы, всегда равен "0"
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/Refund

Этот запрос используется для возврата денежных средств, списанных командой Pay или Charge, на карту Покупателя. Результатом обработки запроса является возврат (полный или частичный) списанных денежных средств на карту Покупателя.

Основанием для возврата средств, как правило, является отказ Покупателя от купленного товара/услуги, либо неоказание услуги Продавцом. Возврат средств может сопровождаться потерями для Продавца ввиду наличия комиссий третьей стороны за проведение операции возврата денежных средств или иных условий платежа.

Внимание! Для успешного возврата необходимо, чтобы на момент исполнения запроса платеж имел статус Charged.

Запрос

curl https://sandbox3.payture.com/vwapi/Refund \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Password=123; \
Amount=12368" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATA Параметры возврата
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
Password=123
Параметр Описание Формат
PasswordПароль платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory
Amount Сумма, которую следует вернуть, в копейках. В случае отсутствия параметра в запросе выполняется полный возврат
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Refund

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

Success: True False
<Refund Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" NewAmount="7800"/>
<Refund Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" ErrCode="AMOUNT_ERROR"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/GetState

Запрос используется для получения информации о текущем состоянии платежа. Рекомендуется также использовать его в случае неполучения ответа от шлюза Payture при проведении других запросов по платежу.

Выполняется как при одностадийной, так и при двухстадийной схеме проведения платежа.

Результатом обработки запроса является получение актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/vwapi/GetState \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory

Ответ

XML строка с элементом GetState

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

Success: True False
<GetState Success="True" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" State="Refunded" Forwarded="False" MerchantContract="Merchant" Amount="12368"/>
<GetState Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" State="" Forwarded="False" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках
Передается, если «Success=True»
Integer
Optional
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Host}.payture.com/vwapi/PayStatus

Запрос используется для получения информации о текущем состоянии платежа. Рекомендуется также использовать его в случае неполучения ответа от шлюза Payture при проведении других запросов по платежу.

Запрос

curl https://sandbox3.payture.com/vwapi/PayStatus \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATA Параметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав параметра DATA

Пример параметра DATA (decoded):

OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254
Параметр Описание Формат
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory

Ответ

XML строка с элементом PayStatus

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

Success: True False
<PayStatus Success="True" VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Forwarded="False" Amount="12368" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5" Status="Charged"/>
<PayStatus Success="False" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Forwarded="False" MerchantContract="Merchant" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Status Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
VWUserLgnИдентификатор Покупателя в системе Payture
Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
AmountСумма платежа в копейках
Передается, если «Success=True»
Integer
Optional
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True»
String [36]
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Mobile Pay

Программный интерфейс Payture позволяет клиентам оплачивать покупки в одно касание, используя карточные хранилища Apple Pay, Google Pay и Samsung Pay. Предоставляет Продавцу дополнительную возможность приема платежей по дебетовым и кредитным картам на сайте и в приложении.

Процесс интеграции Apple Pay:

  1. Создание мобильного приложения с кнопкой оплаты AppleTouch. Внедрение кода Mobile SDK.
  2. Интеграцию с нашим платежным шлюзом с помощью api/MobilePay.
  3. Создание сертификата Certificate, ключа Merchant Key и пароля для ключа Password.

Скачать инструкцию по созданию сертификата и регистрации Merchant ID

Необходимые параметры для интеграции Samsung Pay

  • Public Key (выдается технической поддержкой компании Payture)

Необходимые параметры для интеграции Google Pay

  • Gateway Payture
  • GatewayMerchantId (выдается технической поддержкой компании Payture)
https://{HOST}.payture.com/api/MobilePay

Метод MobilePay используется для быстрого проведения клиентского платежа одним действием (одностадийный платеж) с помощью систем мобильных платежей Apple Pay, Google Pay, Samsung Pay.

Запрос

curl https://sandbox3.payture.com/api/MobilePay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d PayToken={PayToken} \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
-d Checksum=true \
-d Amount=12368 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
PayToken Платежные данные:
для Apple Pay — paymentData из PKPaymentToken в кодировке Base64
для Google Pay — Token из paymentData в кодировке Base64
для Samsung Pay — paymentCredential в кодировке Base64
String
Mandatory
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках. Обязательный параметр для Google Pay
Для Samsung Pay и Apple Pay используется только при «Checksum=True»
Integer
Optional
SecureCode CVV2/CVC2 код
Параметр обязателен при оплате нетокенизированной картой через Google Pay
Integer
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Checksum Флаг, используемый для проверки совпадения сумм в токенах Apple Pay или Samsung Pay и параметре Amount с точностью до 100 копеек Boolean
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

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

Success: True False 3DS
<Pay OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="True" Amount="12368"/>
<Pay OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="3DS" Amount="12368" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>

XML строка с элементом Pay

Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Key Наименование платежного Терминала
Соответствует переданному в запросе
String
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS»
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если было перенаправление на другой Терминал
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{HOST}.payture.com/api/MobileBlock

Метод MobileBlock позволяет блокировать денежные средства на карте Покупателя, добавленной в сервисах Apple Pay, Google Pay, Samsung Pay.

Запрос

curl https://sandbox3.payture.com/api/MobileBlock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d PayToken={PayToken} \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
-d Checksum=true \
-d Amount=12368 \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
PayToken Платежные данные:
для Apple Pay — paymentData из PKPaymentToken в кодировке Base64
для Google Pay — Token из paymentData в кодировке Base64
для Samsung Pay — paymentCredential в кодировке Base64
String
Mandatory
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках. Обязательный параметр для Google Pay
Для Samsung Pay и Apple Pay используется только при «Checksum=True»
Integer
Optional
SecureCode CVV2/CVC2 код
Параметр обязателен при оплате нетокенизированной картой через Google Pay
Integer
Optional
CustomFields Дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Optional
Checksum Флаг, используемый для проверки совпадения сумм в токенах Apple Pay или Samsung Pay и параметре Amount с точностью до 100 копеек Boolean
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

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

Success: True False 3DS
<Block OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="True" Amount="12368"/>
<Block OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Block OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Key="Merchant" Success="3DS" Amount="12368" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>

XML строка с элементом Block

Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Key Наименование платежного Терминала
Соответствует переданному в запросе
String
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS»
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если было перенаправление на другой Терминал
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{HOST}.payture.com/vwapi/Pay

Запрос vwapi/Pay c передачей PayToken используется для совершения платежа с использованием систем Apple Pay, Google Pay или Samsung Pay.

Платеж может быть выполнен по одностадийной (SessionType=Pay) или по двухстадийной схеме (SessionType=Block).

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=FreePay; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368; \
PayToken={PayToken}; \
SessionType=Block" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=FreePay;
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254;
Amount=12368;
PayToken={PayToken};
SessionType=Block;
SecureCode=123;
IP=66.159.236.12
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdДля платежей Apple, Google и Samsung Pay необходимо передавать значение CardId=FreePayString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Для текущего запроса сумма платежа всегда используется из запроса (не из токена)
Integer
Mandatory
PayToken Платежные данные:
для Apple Pay — paymentData из PKPaymentToken в кодировке Base64
для Google Pay — Token из paymentData в кодировке Base64
для Samsung Pay — paymentCredential в кодировке Base64
String
Mandatory
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
SecureCode CVV2/CVC2 код
Параметр обязателен при оплате нетокенизированной картой через Google Pay
Integer
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

XML строка с элементом Pay

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12368"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="2b7da0a3-cf36-f1ea-abd0-abf8dde36254" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12368" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{HOST}.payture.com/vwapi/Add

Запрос vwapi/Add с передачей PayToken используется для привязки карты из Apple Pay, Google Pay или Samsung Pay перед выполнением рекуррентных платежей.

Запрос

curl https://sandbox3.payture.com/vwapi/Add \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
PayToken={PayToken}" \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
VWIDНаименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
DATAПараметры платежа
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory

Состав ключей параметра DATA

Пример параметра DATA (decoded):

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
PayToken={PayToken};
SecureCode=123;
PhoneNumber=79156783333
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
PayToken Платежные данные:
для Apple Pay — paymentData из PKPaymentToken в кодировке Base64
для Google Pay — Token из paymentData в кодировке Base64
для Samsung Pay — paymentCredential в кодировке Base64
String
Mandatory
SecureCode CVV2/CVC2 код
Параметр обязателен при оплате нетокенизированной картой через Google Pay
Integer
Optional
PhoneNumberНомер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional

Ответ

XML строка с элементом Add

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

Success: True False 3DS
<Add VWUserLgn="123@ya.ru" Success="True" CardName="411111xxxxxx1112" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5"/>
<Add VWUserLgn="123@ya.ru" Success="False" ErrCode="WRONG_CARD_INFO"/>
<Add VWUserLgn="123@ya.ru" Success="3DS" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" CardName="411111xxxxxx1112" CardId="fe4f3462-ea41-8c01-7f3d-39c1a36f2fb5"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardNameМаскированный номер карты (первые 6 и последние 4 цифры: 123456хххххх1234)
Передается, если «Success=True» или «Success=3DS»
String [13..19]
Optional
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True» или «Success=3DS»
String [36]
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть добавлены в ответ платежного шлюза по согласованию со службой поддержки Payture. Например, код авторизации или RRNЭлемент AddInfo
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Ниже приведены примеры программной интеграции с некоторыми наиболее распространенными системами мобильных платежей.

Запрос

func paymentAuthorizationViewController( _ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, completion: (PKPaymentAuthorizationStatus) -> Void) {

    paymentToken = payment.token
    let url = NSURL( string: "https://sandbox3.payture.com/api/MobilePay")
    let request = NSMutableURLRequest( url: url! as URL, 
        cachePolicy: NSURLRequest.CachePolicy.reloadIgnoringLocalCacheData, timeoutInterval: 30 )

    request.httpMethod = "POST"

    do
    {
        request.httpBody = ("PayToken="+paymentToken.paymentData.base64EncodedString()+
            "&Key=TestTerminal").data(using: String.Encoding.utf8)
    }
    catch {}

    self.Success=false;
    self.ErrCode="";

    var error: NSCocoaError?
    // send the request
    NSURLConnection.sendAsynchronousRequest( request as URLRequest, queue: OperationQueue()) 
    {
        (response, data, error) -> Void in
        if error != nil {
            completion( PKPaymentAuthorizationStatus.failure)      
        } else {
            let string = NSString( data: data!, encoding: String.Encoding.utf8.rawValue);
            self.xmlParser = XMLParser( data: data!)
            self.xmlParser.delegate = self
            self.xmlParser.parse()
            if(self.Success)
            {
                completion( PKPaymentAuthorizationStatus.success)

                DispatchQueue.main.asynchronously() {
                    self.performSegue(withIdentifier: ProductTableViewController.confirmationSegue, sender: self)
                }
            }
            else
            {
                DispatchQueue.main.asynchronously() {
                    let alert = UIAlertView()
                    alert.title = "Error"
                    alert.message = "Operation exit with Error Code:\n" + self.ErrCode
                    alert.addButton( withTitle: "Close")
                    alert.show()
                }
                completion( PKPaymentAuthorizationStatus.failure)
            }
        }
    }       
}

Ответ

func parser( _ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String: String])
{
    let success = attributeDict[ "Success" ]
    if success != nil
    {
        self.Success = ( attributeDict[ "Success" ]! as NSString).boolValue
        if( !self.Success )
        {
            self.ErrCode = attributeDict[ "ErrCode" ]! as String;
        }
        else
        {
            self.OrderId = attributeDict[ "OrderId" ]! as String;
        }
    }
}
private PaymentDataRequest createPaymentDataRequest() {
    PaymentDataRequest.Builder request =
        PaymentDataRequest.newBuilder()
            .setTransactionInfo(
                TransactionInfo.newBuilder()
                    .setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)
                    .setTotalPrice("10.00")
                    .setCurrencyCode("USD")
                    .build())
            .addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_CARD)
            .addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_TOKENIZED_CARD)
            .setCardRequirements(
                CardRequirements.newBuilder()
                    .addAllowedCardNetworks(
                        Arrays.asList(
                            WalletConstants.CARD_NETWORK_AMEX,
                            WalletConstants.CARD_NETWORK_DISCOVER,
                            WalletConstants.CARD_NETWORK_VISA,
                            WalletConstants.CARD_NETWORK_MASTERCARD))
                    .build());

    PaymentMethodTokenizationParameters params =
        PaymentMethodTokenizationParameters.newBuilder()
            .setPaymentMethodTokenizationType(
                WalletConstants.PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY)
            .addParameter("gateway", "payture")
            .addParameter("gatewayMerchantId", "12345678901234567890")
            .build();

    request.setPaymentMethodTokenizationParameters(params);
    return request.build();
}
@Override
  public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
      case LOAD_PAYMENT_DATA_REQUEST_CODE:
        switch (resultCode) {
          case Activity.RESULT_OK:
            PaymentData paymentData = PaymentData.getFromIntent(data);
            String token = paymentData.getPaymentMethodToken().getToken();
      String tokenBase64 = Base64.encodeToString(token.getBytes(), Base64.DEFAULT).replace("\n", "");
       
      String response = sendPost(Constants.Terminal,tokenBase64,Long.toString(mItemInfo.getTotalPrice()),"");

      try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes("UTF-8"));
        Document doc = builder.parse(input);
        Element root = doc.getDocumentElement();
        String Success = root.getAttribute("Success").toLowerCase();
        TextView text =  (TextView) findViewById(R.id.OrderCompleteInfo);
        if (Success.equalsIgnoreCase("true"))
        {
          text.setText(String.format("Your order confirmation number is %s.\n\nYour purchase will be shipped within two business days.",root.getAttribute("OrderId")));
        } else {
          text.setText(String.format("Operation exit with exception %s.",root.getAttribute("ErrCode")));
        }

      } catch (Exception e) {
        e.printStackTrace();
      } 
            break;
          case Activity.RESULT_CANCELED:
            break;
          case AutoResolveHelper.RESULT_ERROR:
            Status status = AutoResolveHelper.getStatusFromIntent(data);
            // Log the status for debugging.
            // Generally, there is no need to show an error to
            // the user as the Google Pay API will do that.
            break;
          default:
            // Do nothing.
        }
        break;
      default:
        // Do nothing.
    }
  }

private String sendPost(String Key,String PayToken,String Amount,String SecureCode) throws Exception
{
  String url = "https://sandbox3.payture.com/api/MobilePay";

  URL obj = new URL(url);
  HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
  
  con.setRequestMethod("POST");

  String urlParameters = String.format("Key=%s&PayToken=%s&Amount=%s&SecureCode=%s",Key,PayToken,Amount,SecureCode);

  // Send post request
  con.setDoOutput(true);
  DataOutputStream wr = new DataOutputStream(con.getOutputStream());
  wr.writeBytes(urlParameters);
  wr.flush();
  wr.close();

  int responseCode = con.getResponseCode();

  BufferedReader in = new BufferedReader(
      new InputStreamReader(con.getInputStream()));
  String inputLine;
  StringBuffer response = new StringBuffer();

  while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
  }
  in.close();
  return response.toString();
}
@Override
public void onSuccess(com.samsung.android.sdk.samsungpay.v2.payment.PaymentInfo response,
            String paymentCredential, Bundle extraPaymentData) {
  Log.d(TAG, "Transaction : Succeeded");
  String PayToken = paymentCredential.replace('\n', ' ');
  PayToken = Base64.encodeToString(PayToken.getBytes(), Base64.DEFAULT);
  PayToken = PayToken.replace("\n", "");
  final String finalPayToken = PayToken;
  final Object lock = new Object();
  try {
    Thread thread = new Thread(new Runnable() {
      public void run() {
      {
        synchronized (lock) {
          try {
            String response = sendPost(Constants.Terminal, finalPayToken);

            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            ByteArrayInputStream input = new ByteArrayInputStream(response.getBytes("UTF-8"));
            Document doc = builder.parse(input);
            Element root = doc.getDocumentElement();
            String Success = root.getAttribute("Success").toLowerCase();
            if (Success.equalsIgnoreCase("true"))
            {
              text.setText(String.format("Your order confirmation number is %s.\n\nYour purchase will be shipped within two business days.",root.getAttribute("OrderId")));
            } else {
              text.setText(String.format("Operation exit with exception %s.",root.getAttribute("ErrCode")));
            }
          } catch (Exception e) {
            e.printStackTrace();
          }
          lock.notify();
        }
    }}});
    thread.start();
    thread.wait();
  } catch (Exception e) {
    e.printStackTrace();
    enableSamsungPayButton();
    initOrderDetails();
  }
}

private String sendPost(String Key,String PayToken) throws Exception
{
  String url = "https://sandbox3.payture.com/api/MobilePay";

  URL obj = new URL(url);
  HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
  
  con.setRequestMethod("POST");

  String urlParameters = String.format("Key=%s&PayToken=%s",Key,PayToken);

  // Send post request
  con.setDoOutput(true);
  DataOutputStream wr = new DataOutputStream(con.getOutputStream());
  wr.writeBytes(urlParameters);
  wr.flush();
  wr.close();

  int responseCode = con.getResponseCode();

  BufferedReader in = new BufferedReader(
      new InputStreamReader(con.getInputStream()));
  String inputLine;
  StringBuffer response = new StringBuffer();

  while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
  }
  in.close();
  return response.toString();
}

3-D Secure

В целях повышения безопасности платежей банковская карта Покупателя может быть дополнительно защищена механизмом аутентификации 3-D Secure.

Порядок обработки запросов на проведение платежа или блокировку средств на карте, защищенной 3-D Secure, отличается от стандартного и подробно описан ниже.

Payture 3D Secure Scheme

Проверка участия карты в процедуре 3-­D Secure аутентификации

При получении запроса на блокировку средств или проведении платежа по одностадийной схеме платежный шлюз проверяет факт участия карты в 3-D Secure аутентификации.

Если карта Покупателя защищена 3-D Secure, значение атрибута Success в синхронном ответе на вызов команд Block и Pay становится равным «3DS». В этом случае в ответе платежного шлюза присутствуют атрибуты ACSUrl, PaReq и ThreeDSKey.

ПараметрОписаниеФормат
ACSUrlАдрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
PaReqЗапрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
ThreeDSKeyУникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String

Проведение процедуры аутентификации

Пример формы запроса

<body onload="document.form.submit()" >
<form name="form" action="{ACSUrl}" method="post" >
    <input type="hidden" name="TermUrl" value="{TermUrl}" >
    <input type="hidden" name="MD" value="{ThreeDSKey}" >
    <input type="hidden" name="PaReq" value="{PaReq}" >
</form>
</body>

После получения ответа шлюза Продавец перенаправляет Покупателя на сайт банка-эмитента для дополнительной аутентификации. Для этого используется POST запрос по адресу, указанному в значении атрибута ACSUrl (соответствует параметру ACSUrl из ответа на предыдущий запрос).

Передаваемые параметры

Параметр Описание Формат
TermUrlАдрес перенаправления после успешной аутентификации 3-D SecureString
Mandatory
MDУникальный идентификатор транзакции
Соответствует параметру ThreeDSKey из ответа на предыдущий запрос
String
Mandatory
PaReqЗапрос на аутентификацию 3-D Secure
Соответствует параметру PaReq из ответа на предыдущий запрос
String
Mandatory

Результат

Возврат Покупателя POST запросом по адресу, указанному в значении параметра TermUrl.

Параметр Описание Формат
MDУникальный идентификатор транзакции
Соответствует переданному в запросе
String
PaResШифрованная строка, содержащая результаты 3-D Secure аутентификацииString

Порядок обработки запросов на проведение платежа или блокировку средств на карте, защищенной 3-D Secure, отличается от стандартного.

Для списания средств с защищенной карты используется команда Pay3DS, для блокировки средств на защищенной карте — Block3DS.

https://{HOST}.payture.com/api/Pay3DS

Запрос Pay3DS служит для завершения списания средств с платежной карты, защищенной 3-D Secure, после получения результатов аутентификации от банка-эмитента.

Запрос

curl https://sandbox3.payture.com/api/Pay3DS \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
-d PaRes={PaRes} \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
PaResШифрованная строка, содержащая результаты 3-D Secure аутентификации
Соответствует ответу от ACS
String
Mandatory

Ответ

Полностью соответствует ответу на стандартный запрос Pay.

https://{HOST}.payture.com/api/Block3DS

Запрос Block3DS применяется для предплатежного блокирования средств с платежной карты, защищенной 3-D Secure, после получения результатов аутентификации от банка-эмитента.

Запрос

curl https://sandbox3.payture.com/api/Block3DS \
-d Key=Merchant \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
-d PaRes={PaRes} \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
PaResШифрованная строка, содержащая результаты 3-D Secure аутентификации
Соответствует ответу от ACS
String
Mandatory

Ответ

Полностью соответствует ответу на стандартный запрос Block.

https://{HOST}.payture.com/vwapi/PaySubmit3DS

При использованни карты, вовлеченной в 3-D Secure, порядок обработки запросов на проведение платежа отличается от стандартного.

Запрос PaySubmit3DS служит для завершения списания средств с платежной карты, защищенной 3-D Secure, после получения результатов аутентификации от банка-эмитента.

Запрос

curl https://sandbox3.payture.com/vwapi/PaySubmit3DS \
-d MD=20150624160356619170 \
-d PaRes={PaRes} \

В запросах наименования параметров чувствительны к регистру

Параметр Описание Формат
MD Уникальный идентификатор транзакцииString
Mandatory
PaResШифрованная строка, содержащая результаты 3-D Secure аутентификации
Соответствует ответу от ACS
String
Mandatory

Ответ

Полностью соответствует ответу на стандартный запрос Pay.

Кассы по ФЗ-54

54-ФЗ «О применении контрольно-кассовой техники» устанавливает новые правила использования кассового оборудования. Согласно закону, налогоплательщики обязаны подавать все фискальные документы, в том числе кассовые чеки и бланки строгой отчетности, в ФНС через Интернет.

Рекомендуется ознакомиться с форматами фискальных документов, обязательных к использованию.

Для передачи чека с платежом необходимо преобразовать JSON с информацией по чеку в строку Base64 и вложить в параметр Cheque при выполнении запросов Block / Pay / Init / Refund (частичный) / Charge (частичный) в любом варианте интеграции с платежным шлюзом.

Чек в данном случае состоит из позиций и контактной информации клиента. Также чек может содержать необязательные поля, которые Продавец может передавать при необходимости.

Пример Cheque с минимальным набором параметров:

JSON Base64
{
  "Positions":[
    {
      "Quantity":1.0,
      "Price":27.25,
      "Tax":6,
      "Text":"Пирожок"
    }
  ],
  "CustomerContact":"user@mail.com"
}
eyJQb3NpdGlvbnMiOlt7IlF1YW50aXR5IjoxLjAsIlByaWNlIjoyNy4yNSwiVGF4Ijo2LCJUZXh0Ijoi0J/QuNGA0L7QttC+0LoifV0sIkN1c3RvbWVyQ29udGFjdCI6InVzZXJAbWFpbC5jb20ifQ==

Пример Cheque с максимальным набором параметров:

JSON Base64
{
  "Positions":[
    {
      "Quantity":2.0,
      "Price":27.25,
      "Tax":2,
      "Text":"Пирожок",
      "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
      "PaymentMethodType":3,
      "PaymentSubjectType":10,
      "NomenclatureCode":"NjQwMTkyOTAwMA==",
      "SupplierINN":"7203305114",
      "SupplierInfo":{
        "Name":"Наименование поставщика",
        "PhoneNumbers":[
          "+79990000009"
        ]
      }
    },
    {
      "Quantity":1.0,
      "Price":12.00,
      "Tax":2,
      "Text":"Чай",
      "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
      "PaymentMethodType":3,
      "PaymentSubjectType":10,
      "NomenclatureCode":"NjQwMTkyOTAwMA==",
      "SupplierINN":"7203305114",
      "SupplierInfo":{
        "Name":"Наименование поставщика",
        "PhoneNumbers":[
          "+79990000009"
        ]
      }
    }
  ],
  "CustomerContact":"79991234567",
  "Payments":[
    {
      "Type":2,
      "Amount":66.50
    }
  ],
  "Message":"Чек Payture",
  "Group":"main",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
  "AdditionalAttribute":"Доп.реквиз.чека",
  "AdditionalUserAttribute":{
    "Name":"Наименование дополнительного реквизита пользователя",
    "Value":"Значение дополнительного реквизита пользователя"
  },
  "AgentType":64,
  "PaymentAgentOperation":"Операция плат. агента",
  "PaymentAgentPhoneNumbers":[
    "+79260000003"
  ],
  "PaymentOperatorName":"ООО \"Ромашка\"",
  "PaymentOperatorAddress":"Москва, Дурова 10",
  "PaymentOperatorINN":"9715225506",
  "PaymentOperatorPhoneNumbers":[
    "+79260000002",
    "+74957870002"
  ],
  "PaymentTransferOperatorPhoneNumbers":[
    "+79260000001",
    "+74957870001"
  ],
  "SupplierPhoneNumbers":[
    "+74957870004"
  ]
}
eyJQb3NpdGlvbnMiOlt7IlF1YW50aXR5IjoyLjAsIlByaWNlIjoyNy4yNSwiVGF4IjoyLCJUZXh0Ijoi0J/QuNGA0L7QttC+0LoiLCJBZGRpdGlvbmFsQXR0cmlidXRlIjoi0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQuSDRgNC10LrQstC40LfQuNGCINC/0YDQtdC00LzQtdGC0LAg0YDQsNGB0YfQtdGC0LAiLCJQYXltZW50TWV0aG9kVHlwZSI6MywiUGF5bWVudFN1YmplY3RUeXBlIjoxMCwiTm9tZW5jbGF0dXJlQ29kZSI6Ik5qUXdNVGt5T1RBd01BPT0iLCJTdXBwbGllcklOTiI6IjcyMDMzMDUxMTQiLCJTdXBwbGllckluZm8iOnsiTmFtZSI6ItCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSDQv9C+0YHRgtCw0LLRidC40LrQsCIsIlBob25lTnVtYmVycyI6WyIrNzk5OTAwMDAwMDkiXX19LHsiUXVhbnRpdHkiOjEuMCwiUHJpY2UiOjEyLjAwLCJUYXgiOjIsIlRleHQiOiLQp9Cw0LkiLCJBZGRpdGlvbmFsQXR0cmlidXRlIjoi0JTQvtC/0L7Qu9C90LjRgtC10LvRjNC90YvQuSDRgNC10LrQstC40LfQuNGCINC/0YDQtdC00LzQtdGC0LAg0YDQsNGB0YfQtdGC0LAiLCJQYXltZW50TWV0aG9kVHlwZSI6MywiUGF5bWVudFN1YmplY3RUeXBlIjoxMCwiTm9tZW5jbGF0dXJlQ29kZSI6Ik5qUXdNVGt5T1RBd01BPT0iLCJTdXBwbGllcklOTiI6IjcyMDMzMDUxMTQiLCJTdXBwbGllckluZm8iOnsiTmFtZSI6ItCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSDQv9C+0YHRgtCw0LLRidC40LrQsCIsIlBob25lTnVtYmVycyI6WyIrNzk5OTAwMDAwMDkiXX19XSwiQ3VzdG9tZXJDb250YWN0IjoiNzk5OTEyMzQ1NjciLCJQYXltZW50cyI6W3siVHlwZSI6MiwiQW1vdW50Ijo2Ni41MH1dLCJNZXNzYWdlIjoi0KfQtdC6IFBheXR1cmUiLCJHcm91cCI6Im1haW4iLCJUZW1wbGF0ZVRhZyI6IkRlZmF1bHQiLCJUZW1wbGF0ZUxhbmciOiJEZWZhdWx0IiwiQWRkaXRpb25hbE1lc3NhZ2VzIjpbeyJLZXkiOiJOYW1lIiwiVmFsdWUiOiJWYWx1ZSJ9XSwiQWRkaXRpb25hbEF0dHJpYnV0ZSI6ItCU0L7Qvy7RgNC10LrQstC40Lcu0YfQtdC60LAiLCJBZGRpdGlvbmFsVXNlckF0dHJpYnV0ZSI6eyJOYW1lIjoi0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdC+0LPQviDRgNC10LrQstC40LfQuNGC0LAg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPIiwiVmFsdWUiOiLQl9C90LDRh9C10L3QuNC1INC00L7Qv9C+0LvQvdC40YLQtdC70YzQvdC+0LPQviDRgNC10LrQstC40LfQuNGC0LAg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPIn0sIkFnZW50VHlwZSI6NjQsIlBheW1lbnRBZ2VudE9wZXJhdGlvbiI6ItCe0L/QtdGA0LDRhtC40Y8g0L/Qu9Cw0YIuINCw0LPQtdC90YLQsCIsIlBheW1lbnRBZ2VudFBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDMiXSwiUGF5bWVudE9wZXJhdG9yTmFtZSI6ItCe0J7QniBcItCg0L7QvNCw0YjQutCwXCIiLCJQYXltZW50T3BlcmF0b3JBZGRyZXNzIjoi0JzQvtGB0LrQstCwLCDQlNGD0YDQvtCy0LAgMTAiLCJQYXltZW50T3BlcmF0b3JJTk4iOiI5NzE1MjI1NTA2IiwiUGF5bWVudE9wZXJhdG9yUGhvbmVOdW1iZXJzIjpbIis3OTI2MDAwMDAwMiIsIis3NDk1Nzg3MDAwMiJdLCJQYXltZW50VHJhbnNmZXJPcGVyYXRvclBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDEiLCIrNzQ5NTc4NzAwMDEiXSwiU3VwcGxpZXJQaG9uZU51bWJlcnMiOlsiKzc0OTU3ODcwMDA0Il19

Состав Cheque

Параметр Описание (тег) Формат
Positions Список позиций чека (1059)
Описание элемента Positions см. ниже
Array of objects
Mandatory
CustomerContact Телефон в формате 79165554444 или Email Покупателя для отправки чека (1008) String [1..32]
Mandatory
Payments Оплаты
По умолчанию сумма оплаты равна Amount из запроса, тип — безналичными
Описание элемента Payments см. ниже
Array of objects
Optional
Message Тема письма или строка в сообщении СМС
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String [1..50]
Optional
Group Группа устройств, с помощью которых будет сформирован чек
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String [1..32]
Optional
TemplateTag Название используемого шаблона чека
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default»
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String
Optional
TemplateLang Язык шаблона чека
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется язык «Default»
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String
Optional
AdditionalMessages Позволяет добавить любые параметры на шаблон чека в плейсхолдер с названием из Key
Описание элемента AdditionalMessages см. ниже. Общая длина максимум 1000 символов
Array of objects
Optional
AdditionalAttribute Дополнительный реквизит чека (1192) String [1..16]
Optional
AdditionalUserAttribute Дополнительный реквизит пользователя (1084)
Описание структуры AdditionalUserAttribute см. ниже
Object
Optional
AgentType Признак агента (1057): значения
Число от 1 до 127 (битовое поле), где номер бита обозначает, что Продавец:
Бит Описание
0Банковский платежный агент
1Банковский платежный субагент
2Платежный агент
3Платежный субагент
4Поверенный
5Комиссионер
6Иной агент

В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
Integer
Optional
PaymentAgentOperation Операция платежного агента (1044)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String [1..24]
Optional
PaymentAgentPhoneNumbers Телефоны платежного агента в формате +79995554444 (1073)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
Array of strings [1..19]
Optional
PaymentOperatorName Наименование оператора перевода (1026)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String [1..64]
Optional
PaymentOperatorAddress Адрес оператора перевода (1005)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String [1..243]
Optional
PaymentOperatorINN ИНН оператора перевода (1016)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String [10..12]
Optional
PaymentOperatorPhoneNumber Телефоны оператора по приему платежей в формате +79995554444 (1074)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
Array of strings [1..19]
Optional
PaymentTransferOperatorPhoneNumbers Телефоны оператора перевода в формате +79995554444 (1075)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
Array of strings [1..19]
Optional
SupplierPhoneNumbers Телефоны поставщика в формате +79995554444 (1171)
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
Array of strings [1..19]
Optional

Состав элемента массива Cheque.Positions

Параметр Описание (тег) Формат
Quantity Количество предмета расчета (товара, услуги и т.д.) (1023)
Десятичное число с точностью до 3 цифр после точки
Float
Mandatory
Price Цена в рублях за единицу предмета расчета с учетом скидок и наценок (1079)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax Ставка НДС (1199): значения
Число от 1 до 6:
1Ставка НДС 20%
2Ставка НДС 10%
3Ставка НДС расч. 20/120
4Ставка НДС расч. 10/110
5Ставка НДС 0%
6НДС не облагается
Integer
Mandatory
Text Наименование предмета расчета (название товара, услуги и т.д.) (1030) String [1..128]
Mandatory
AdditionalAttribute Дополнительный реквизит предмета расчета (1191) String [1..64]
Optional
PaymentMethodType Способ расчета (1214): значения
Число от 1 до 7:
1Предоплата 100%
2Частичная предоплата
3Предвариательная оплата (Аванс)
4Полный расчет
5Частичный расчет и кредит
6Передача в кредит
7Оплата кредита
Integer
Optional
PaymentSubjectType Предмет расчета (1212): значения
Число от 1 до 13:
1Товар
2Подакцизный товар
3Работа
4Услуга
5Ставка азартной игры
6Выигрыш азартной игры
7Лотерейный билет
8Выигрыш лотереи
9Предоставление РИД
10Платеж
11Агентское вознаграждение
12Составной предмет расчета
13Иной предмет расчета
Integer
Optional
NomenclatureCode Код товарной номенклатуры (1162) (base64 кодированный массив от 1 до 32 байт) String
Optional
SupplierINN ИНН поставщика (1226) String [10..12]
Optional
SupplierInfo Данные поставщика (1224)
Описание структуры SupplierInfo см. ниже
Object
Optional

Состав элемента массива Cheque.Positions

Параметр Описание (тег) Формат
Type Тип оплаты: значения
Число от 1 до 16:
1Наличными (1031)
2Безналичными (1081)
14Предвариательная оплата (аванс) (1215)
15Последующая оплата (в кредит) (1216)
16Встречное предоставление (1217)
Integer
Mandatory
Amount Сумма оплаты в рублях
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory

Состав элемента массива Cheque.AdditionalMessages

Параметр Описание Формат
Key Название параметра String
Mandatory
Value Значение параметра String
Mandatory

Состав Cheque.AdditionalUserAttribute

Параметр Описание (тег) Формат
Name Наименование дополнительного реквизита пользователя (1085) String [1..64]
Mandatory
Value Значение дополнительного реквизита пользователя (1086) String [1..175]
Mandatory

Состав Cheque.Positions.SupplierInfo

Параметр Описание (тег) Формат
Name Наименование поставщика (1225)
Строка длиной до (239 – N) символов, где N — это количество символов в телефонных номерах поля PhoneNumbers + 4 символа на каждый номер
String
Mandatory
PhoneNumbers Телефоны поставщика в формате +79995554444 (1171) Array of strings [1..19]
Optional

Запрос Payture ApiCheque
Запрос c необходимыми параметрами формируется на стороне Продавца и передается методом POST по протоколу HTTPS. Тип тела запроса "Content-Type: application/json".

https://{Host}.payture.com/apicheque/{Command}

где {Host} – хост платежного шлюза, {Command} – название команды.

Ответ Payture ApiCheque
Результаты обработки запросов возвращаются платежным шлюзом синхронно в формате JSON, кодировка UTF8.

Продавец может передавать чеки в онлайн кассы без совершения платежа, используя программный интерфейс Payture ApiCheque.

Для передачи чека необходимо сформировать структуру данных, состоящую из позиций чека в виде массива объектов и контактной информации в формате JSON.

Возможности

CreateСоздание чека
CreateCorrectionСоздание чека коррекции
StatusПроверка статуса чека и получение информации о чеке
https://{Host}.payture.com/apicheque/Create

Запрос Create используется для создания чека без платежа.

Создание чека — асинхронный запрос, после которого чек оказывается в очереди на обработку. Помимо данных чека Продавец передает уникальный идентификатор документа, используя который впоследствии, он сможет запросить статус чека. Данный идентификатор должен быть уникальным в пределах организации. Для передачи чека необходимо сформировать структуру данных в виде JSON.

Запрос

Пример тела запроса (минимальный набор параметров) [JSON]:

{
  "Key":"Merchant",
  "Password":"1234",
  "Cheque":{
    "Id":"6363901578517681941",
    "INN":"7702684259",
    "Content":{
      "Type":1,
      "Positions":[
        {
          "Quantity":1,
          "Price":27.25,
          "Tax":1,
          "Text":"Пирожок"
        }
      ],
      "CheckClose":{
        "Payments":[
          {
            "Type":2,
            "Amount":27.25
          }
        ],
        "TaxationSystem":1
      },
      "CustomerContact":"user@mail.com"
    }
  }
}

Пример тела запроса (максимальный набор параметров) [JSON]:

{
  "Key":"Merchant",
  "Password":"1234",
  "Message":"Чек Payture",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
  "Cheque":{
    "Id":"636390157851768146941",
    "INN":"7710140679",
    "Group":"main",
    "Content":{
      "Type":1,
      "Positions":[
        {
          "Quantity":1,
          "Price":27.25,
          "Tax":1,
          "Text":"Пирожок",
          "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
          "PaymentMethodType":3,
          "PaymentSubjectType":10,
          "NomenclatureCode":"NjQwMTkyOTAwMA==",
          "SupplierINN":"7203305114",
          "SupplierInfo":{
            "Name":"Наименование поставщика",
            "PhoneNumbers":[
              "+79990000009"
            ]
          }
        }
      ],
      "CheckClose":{
        "Payments":[
          {
            "Type":2,
            "Amount":27.25
          }
        ],
        "TaxationSystem":1
      },
      "CustomerContact":"79991234567",
      "AdditionalAttribute":"Доп.реквиз.чека",
      "AdditionalUserAttribute":{
        "Name":"Наименование дополнительного реквизита пользователя",
        "Value":"Значение дополнительного реквизита пользователя"
      },
      "AgentType":64,
      "PaymentAgentOperation":"Операция плат. агента",
      "PaymentAgentPhoneNumbers":[
        "+79260000003"
      ],
      "PaymentOperatorName":"ООО \"Ромашка\"",
      "PaymentOperatorAddress":"Москва, Дурова 10",
      "PaymentOperatorINN":"9715225506",
      "PaymentOperatorPhoneNumbers":[
        "+79260000002",
        "+74957870002"
      ],
      "PaymentTransferOperatorPhoneNumbers":[
        "+79260000001",
        "+74957870001"
      ],
      "SupplierPhoneNumbers":[
        "+74957870004"
      ]
    }
  }
}
Параметр Описание Формат
Key Наименование Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Password Пароль для выполнения запросов apiecheque
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Cheque Параметры чека
Описание структуры Cheque см. ниже
Object
Mandatory
Message Тема письма или строка в сообщении СМС String [1..50]
Optional
TemplateTag Название используемого шаблона чека
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default»
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String
Optional
TemplateLang Язык шаблона чека
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется язык «Default»
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String
Optional
AdditionalMessages Позволяет добавить любые параметры на шаблон чека в плейсхолдер с названием из Key
Описание элемента AdditionalMessages см. ниже. Общая длина максимум 1000 символов
Array of objects
Optional

Состав элемента массива Cheque.AdditionalMessages

Параметр Описание Формат
Key Название параметра String
Mandatory
Value Значение параметра String
Mandatory

Состав Cheque

Параметр Описание Формат
Id Уникальный идентификатор чека String [1..64]
Mandatory
INN ИНН организации, для которой формируется чек String [10..12]
Mandatory
Content Данные чека
Описание структуры Content см. ниже
Object
Mandatory
Group Группа устройств, с помощью которых будет сформирован чек
По умолчанию «main»
String [1..32]
Optional

Состав Cheque.Content

Параметр Описание (тег) Формат
Type Тип документа (1054): значения
Число от 1 до 4:
1Приход
2Возврат прихода
3Расход
4Возврат расхода
Integer
Mandatory
Positions Список позиций чека (1059)
Описание элемента Positions см. ниже
Array of objects
Mandatory
CheckClose Контейнер с информацией о системе налогообложения и параметрах закрытия чека
Описание структуры CheckClose см. ниже
Object
Mandatory
CustomerContact Телефон в формате 79165554444 или Email Покупателя для отправки чека (1008) String [1..32]
Mandatory
AgentType Признак агента (1057): значения
Число от 1 до 127 (битовое поле), где номер бита обозначает, что Продавец:
Бит Описание
0Банковский платежный агент
1Банковский платежный субагент
2Платежный агент
3Платежный субагент
4Поверенный
5Комиссионер
6Иной агент
Integer
Optional
AdditionalUserAttribute Дополнительный реквизит пользователя (1084)
Описание структуры AdditionalUserAttribute см. ниже
Object
Optional
AdditionalAttribute Дополнительный реквизит чека (1192) String [1..16]
Optional
PaymentAgentOperation Операция платежного агента (1044) String [1..24]
Optional
PaymentAgentPhoneNumbers Телефоны платежного агента в формате +79995554444 (1073) Array of strings [1..19]
Optional
PaymentOperatorName Наименование оператора перевода (1026) String [1..64]
Optional
PaymentOperatorAddress Адрес оператора перевода (1005) String [1..243]
Optional
PaymentOperatorINN ИНН оператора перевода (1016) String [10..12]
Optional
PaymentOperatorPhoneNumber Телефоны оператора по приему платежей в формате +79995554444 (1074) Array of strings [1..19]
Optional
PaymentTransferOperatorPhoneNumbers Телефоны оператора перевода в формате +79995554444 (1075) Array of strings [1..19]
Optional
SupplierPhoneNumbers Телефоны поставщика в формате +79995554444 (1171) Array of strings [1..19]
Optional

Состав Cheque.Content.AdditionalUserAttribute

Параметр Описание (тег) Формат
Name Наименование дополнительного реквизита пользователя (1085) String [1..64]
Mandatory
Value Значение дополнительного реквизита пользователя (1086) String [1..175]
Mandatory

Состав элемента массива Cheque.Content.Positions

Параметр Описание (тег) Формат
Quantity Количество предмета расчета (товара, услуги и т.д.) (1023)
Десятичное число с точностью до 3 цифр после точки
Float
Mandatory
Price Цена в рублях за единицу предмета расчета с учетом скидок и наценок (1079)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax Ставка НДС (1199): значения
Число от 1 до 6:
1Ставка НДС 20%
2Ставка НДС 10%
3Ставка НДС расч. 20/120
4Ставка НДС расч. 10/110
5Ставка НДС 0%
6НДС не облагается
Integer
Mandatory
Text Наименование предмета расчета (название товара, услуги и т.д.) (1030) String [1..128]
Mandatory
AdditionalAttribute Дополнительный реквизит предмета расчета (1191) String [1..64]
Optional
PaymentMethodType Способ расчета (1214): значения
Число от 1 до 7:
1Предоплата 100%
2Частичная предоплата
3Предвариательная оплата (Аванс)
4Полный расчет
5Частичный расчет и кредит
6Передача в кредит
7Оплата кредита
Integer
Optional
PaymentSubjectType Предмет расчета (1212): значения
Число от 1 до 13:
1Товар
2Подакцизный товар
3Работа
4Услуга
5Ставка азартной игры
6Выигрыш азартной игры
7Лотерейный билет
8Выигрыш лотереи
9Предоставление РИД
10Платеж
11Агентское вознаграждение
12Составной предмет расчета
13Иной предмет расчета
Integer
Optional
NomenclatureCode Код товарной номенклатуры (1162) (base64 кодированный массив от 1 до 32 байт) String
Optional
SupplierINN ИНН поставщика (1226) String [10..12]
Optional
SupplierInfo Данные поставщика (1224)
Описание структуры SupplierInfo см. ниже
Object
Optional

Состав Cheque.Content.Positions.SupplierInfo

Параметр Описание (тег) Формат
Name Наименование поставщика (1225)
Строка длиной до (239 – N) символов, где N — это количество символов в телефонных номерах поля PhoneNumbers + 4 символа на каждый номер
String
Mandatory
PhoneNumbers Телефоны поставщика в формате +79995554444 (1171) Array of strings [1..19]
Optional

Состав Cheque.Content.CheckClose

Параметр Описание (тег) Формат
Payments Оплаты
Описание элемента Payments см. ниже
Array of objects
Mandatory
TaxationSystem Номер системы налогообложения (1055): значения
Число от 0 до 5:
0Общая, ОСН
1Упрощенная доход, УСН доход
2Упрощенная доход минус расход, УСН
3Единый налог на вмененный доход, ЕНВД
4Единый сельскохозяйственный налог, ЕСН
5Патентная система налогообложения
Integer
Mandatory

Состав элемента массива Cheque.Content.CheckClose.Payments

Параметр Описание (тег) Формат
Type Тип оплаты: значения
Число от 1 до 16:
1Наличными (1031)
2Безналичными (1081)
14Предвариательная оплата (аванс) (1215)
15Последующая оплата (в кредит) (1216)
16Встречное предоставление (1217)
Integer
Mandatory
Amount Сумма оплаты в рублях
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory

Ответ

Пример успешного ответа [JSON]:

{ 
  "Success":true,
  "ErrCode":"NONE",
  "ErrMessages":null,
  "Status":"Accepted"
}

Пример ответа при получении ошибки от сервиса онлайн касс [JSON]:

{
  "Success":true,
  "ErrCode":"NONE",
  "ErrMessages":[
    "Неизвестная группа"
  ],
  "Status":"BadRequest"
}
Параметр Описание Формат
Success Признак успешности выполнения операции в платежном шлюзе. Принимает значения:
true — операция успешна
false — операция неуспешна
Boolean
Mandatory
ErrCode Код ошибки платежного шлюза String
Mandatory
Status Статус чека. См. статусы чеков String
Mandatory
ErrMessages Сообщения об ошибках, полученные от сервиса онлайн касс
Передаются, если получены от сервиса онлайн касс
Array of strings
Optional
https://{Host}.payture.com/apicheque/CreateCorrection/

Запрос CreateCorrection используется для создания чека коррекции без платежа.

Создание чека коррекции — асинхронный запрос, после которого чек оказывается в очереди на обработку. Помимо данных чека Продавец передает уникальный идентификатор документа, используя который, он сможет запросить статус чека. Данный идентификатор должен быть уникальным в пределах организации. Для передачи чека необходимо сформировать структуру данных в виде JSON.

Запрос

Пример тела запроса (минимальный набор параметров) [JSON]:

{
  "Key":"Merchant",
  "Password":"1234",
  "Body":{
    "Id":"pprcrnyf236wc4bu38uw",
    "Inn":"7710140679",
    "Content":{
      "Type":1,
      "TotalSum":100,
      "CashSum":0,
      "ECashSum":100,
      "TaxationSystem":1,
      "Description":"Описание коррекции",
      "CauseDocumentDate":"2019-09-17T00:00:00",
      "CauseDocumentNumber":"22000070248"
    }
  }
}

Пример тела запроса (максимальный набор параметров) [JSON]:

{
  "Key":"Merchant",
  "Password":"1234",
  "Body":{
    "Id":"tf73q69ft3rfs4ep2yld3v",
    "Inn":"7710140679",
    "Group":"main",
    "Content":{
      "Type":1,
      "TotalSum":100,
      "CashSum":0,
      "ECashSum":100,
      "TaxationSystem":1,
      "Description":"Описание коррекции",
      "CauseDocumentDate":"2019-09-17T00:00:00",
      "CauseDocumentNumber":"22000070249",
      "CorrectionType":0,
      "PrepaymentSum":0,
      "PostpaymentSum":0,
      "OtherPaymentTypeSum":0,
      "Tax1Sum":20,
      "Tax2Sum":0,
      "Tax3Sum":0,
      "Tax4Sum":0,
      "Tax5Sum":0,
      "Tax6Sum":0
    }
  }
}
Параметр Описание Формат
Key Наименование Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Password Пароль для выполнения запросов apiecheque
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Body Контейнер с информацией о чеке
Описание структуры Body см. ниже
Object
Mandatory

Состав Body

Параметр Описание Формат
Id Уникальный идентификатор чека String [1..64]
Mandatory
INN ИНН организации, для которой формируется чек String [10..12]
Mandatory
Content Данные чека
Описание структуры Content см. ниже
Object
Mandatory
Group Группа устройств, с помощью которых будет сформирован чек
По умолчанию «main»
String [1..32]
Optional

Состав Body.Content

Параметр Описание (тег) Формат
Type Тип документа (1054): значения
Число (только 1 или 3):
1Приход
3Расход
Integer
Mandatory
TotalSum Сумма расчета в рублях, указанного в чеке (1020)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
CashSum Сумма по чеку наличными в рублях (1031)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
ECashSum Сумма по чеку безналичными в рублях (1081)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
TaxationSystem Номер системы налогообложения (1055): значения
Число от 0 до 5:
0Общая, ОСН
1Упрощенная доход, УСН доход
2Упрощенная доход минус расход, УСН
3Единый налог на вмененный доход, ЕНВД
4Единый сельскохозяйственный налог, ЕСН
5Патентная система налогообложения
Integer
Mandatory
Description Описание коррекции (1177) String [1..244]
Mandatory
CauseDocumentDate Дата документа основания для коррекции (1178)
Строка в формате ISO8601. Время должно быть указано 00:00:00
String
Mandatory
CauseDocumentNumber Номер документа основания для коррекции (1179) String [1..32]
Mandatory
CorrectionType Тип коррекции (1173): значения
Число от 0 до 1:
0Самостоятельно
1По предписанию

По умолчанию 0
Integer
Mandatory
PrepaymentSum Сумма по чеку в рублях предоплатой (зачетом аванса и (или) предыдущих платежей) (1215)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
PostpaymentSum Сумма по чеку в рублях постоплатой (в кредит) (1216)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
OtherPaymentTypeSum Сумма по чеку в рублях встречным предоставлением (1217)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax1Sum Сумма НДС чека в рублях по ставке 20% (1102)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax2Sum Сумма НДС чека в рублях по ставке 10% (1103)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax3Sum Сумма расчета в рублях по чеку с НДС по ставке 0% (1104)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax4Sum Сумма расчета в рублях по чеку без НДС (1105)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax5Sum Сумма НДС чека в рублях по расч. ставке 20/120 (1106)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
Tax6Sum Сумма НДС чека в рублях по расч. ставке 10/110 (1107)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory

Ответ

Пример успешного ответа [JSON]:

{ 
  "Success":true,
  "ErrCode":"NONE",
  "ErrMessages":null,
  "Status":"Accepted"
}

Пример ответа при получении ошибки от сервиса онлайн касс [JSON]:

{
  "Success":true,
  "ErrCode":"NONE",
  "ErrMessages":[
    "Отсутсвует поле 'CauseDocumentNumber'"
  ],
  "Status":"BadRequest"
}
Параметр Описание Формат
Success Признак успешности выполнения операции в платежном шлюзе. Принимает значения:
true — операция успешна
false — операция неуспешна
Boolean
Mandatory
ErrCode Код ошибки платежного шлюза String
Mandatory
Status Статус чека. См. статусы чеков String
Mandatory
ErrMessages Сообщения об ошибках, полученные от сервиса онлайн касс
Передаются, если получены от сервиса онлайн касс
Array of strings
Optional
https://{Host}.payture.com/apicheque/Status/

Запрос Status используется для получения актуального статуса чека и информации о чеке.

Запрос

Пример тела запроса JSON:

{ 
  "Key":"Merchant",
  "Password":"1234",
  "Id":"6363737176995117182",
  "OrderId":""
}
Параметр Описание Формат
Key Наименование Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Password Пароль для выполнения запросов apiecheque
Выдается с параметрами тестового/боевого доступа
String
Mandatory
Id Идентификатор чека, переданный в запросе или полученный из нотификации String [1..64]
Optional*
OrderId Идентификатор платежа в системе Продавца
Может использоваться, если чек был передан с платежом
String [1..50]
Optional*

*Должен быть задан хотя бы один из опциональных параметров. Если задан Id, поиск будет выполнять по этому параметру.

Ответ

Пример ответа [JSON]:

{
  "Success":true,
  "ErrCode":null,
  "Cheques":[
    {
      "Sended":false,
      "Cheque":{
        "Content":{
          ...
        },
        "Id":"1568707129",
        "DeviceSN":"0578050005001542",
        "DeviceRN":"0000000400054952",
        "FSNumber":"9999078900001341",
        "OFDName":"ООО \"Ярус\" (\"ОФД-Я\")",
        "OFDWebsite":"www.ofd-ya.ru",
        "OFDINN":"7728699517",
        "FNSWebsite":"www.nalog.ru",
        "CompanyINN":"7710140677",
        "CompanyName":"ООО «Ромашка»",
        "DocumentNumber":8750,
        "ShiftNumber":3420,
        "DocumentIndex":945,
        "ProcessedAt":"2019-09-17T10:58:00",
        "Change":0.0,
        "FP":"671302447"
      },
      "ErrCode":null,
      "Status":"Created"
    }
  ]
}
Параметр Описание Формат
Success Признак успешности выполнения операции в платежном шлюзе. Принимает значения:
true — операция успешна
false — операция неуспешна
Boolean
Mandatory
ErrCode Код ошибки платежного шлюза String
Mandatory
Cheques Список чеков по данному запросу
Передается, если «Success=True»
Описание элемента Cheques см. ниже
Array of objects
Optional

Состав элемента массива Cheques

Параметр Описание Формат
Sended Признак отправки чека
Отправка не всегда означает доставку чека Покупателю
Boolean
Mandatory
Status Статус чека. См. статусы чеков String
Mandatory
Cheque Фискальные данные чека. Передается, если «Status=Created»
Описание структуры Cheque см. ниже
Object
Optional
ErrCode Передается, если возникла внутренняя ошибка при добавлении данных текущего чека в ответ этого запроса String
Optional

Состав Cheques.Cheque

Параметр Описание Формат
Content Данные чека. Соответствует параметру Content в запросах на создание чека.
Различается в зависимости от типа чека:
для обычного чека — параметр Cheque.Content из запроса Create
для чека коррекции — параметр Body.Content из запроса CreateCorrection
Object
Mandatory
Id Идентификатор чека
Соответствует переданному в запросе
String [1..64]
Mandatory
DeviceSN Серийный номер устройства, пробившего чек String [1..20]
Mandatory
DeviceRN Регистрационный номер устройства, пробившего чек String [1..20]
Mandatory
FSNumber Номер фискального накопителя String [1..16]
Mandatory
OFDName Наименование ОФД String [1..256]
Mandatory
OFDWebsite Веб-сайт ОФД String [1..58]
Mandatory
OFDINN ИНН ОФД String [1..12]
Mandatory
FNSWebsite Веб-сайт ФНС String [1..256]
Mandatory
CompanyINN ИНН компании String [1..12]
Mandatory
CompanyName Название компании String [1..256]
Mandatory
DocumentNumber Номер фискального документа Integer
Mandatory
ShiftNumber Номер смены Integer
Mandatory
DocumentIndex Номер чека Integer
Mandatory
ProcessedAt Время регистрации фискального документа в ФН
Строка в формате ISO8601
String
Mandatory
Change Сдача в рублях
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
FP Фискальный признак String [1..10]
Mandatory
Статус Значение
AcceptedЗаявка на создание чека принята (находится в очереди на обработку кассой или в процессе обработки)
CreatedЧек сформирован и получен от кассы
ConflictЧек с указанным Id уже существует
BadRequestЗапрос на создание чека имеет неверный формат
UnauthorizedНе удалось авторизоваться для работы с кассой
UnknownСтатус не известен, чек не создан
TimeoutНе удалось получить данные чека за допустимое время от сериса онлайн-касс
NotFoundЧека с указанным Id не существует

Платежный виджет

Виджет оплаты — это всплывающее окно (поп-ап), которое встраивается на сайт Продавца и появляется при нажатии на кнопку «Оплатить». Включает защищенные поля ввода платежных данных (данные обрабатывает Payture в соответствии со стандартами безопасности) и e-mail для отправки электронного чека в соответствии с требованиями 54-ФЗ. Платежный виджет оптимизирован для использования на мобильных устройствах и в различных браузерах.

Чтобы совершить пробный платеж, нажмите «Оплатить».

Чтобы протестировать работу виджета, используйте тестовые карты. Результат для этого виджета — всегда успешный платеж без 3DS.
Например, номер карты 4111 1111 1111 1111. Срок действия, CVC2/CVV2 и держатель — произвольные.
Высланный чек не является фискальным документом и служит только для демонстрации работы виджета.

Пример раздела head на странице с виджетом:

<head>
    <script type="text/javascript" src="path/to/widget/payture-widget.min.js" ></script>
    <link rel="stylesheet" type="text/css" href="path/to/widget/widgetStyles.css">
</head>

Пример вызова виджета при нажатии Оплатить:

<button id="start_widget" onclick="openWidget()">Оплатить</button>

Для установки виджета на сайт Продавцу необходимо выполнить следующие шаги:

  1. Запросить в службе поддержки Payture параметры тестового доступа.
  2. По умолчанию для виджета используются стандартные шаблоны Payture. Если Продавец желает изменить внешний вид шаблонов, необходимо подготовить и отправить в службу поддержки шаблон формы оплаты (Type=Pay) и шаблон с результатами операции (Type=Return), который открывается после 3DS-проверки. Продавец может как создать собственные шаблоны с нуля, так и изменить стандартные шаблоны для виджета Payture. Информацию, подробные технические сведения о создании шаблонов и примеры шаблонов для виджета вы можете получить здесь в разделе «Шаблоны для виджета Payture»;
  3. Подключить на странице в разделе head библиотеку payture-widget.min.js. Скачать библиотеку payture-widget.min.js.
  4. Добавить в разделе head необходимые стили для работы виджета. Скачать стили для виджета.
  5. Задать функцию вызова виджета. Необходимые параметры задаются в конструкторе PaytureWidget().
  6. Настроить открытие виджета на какое-либо событие, например, на нажатие кнопки «Оплатить».
  7. При необходимости настроить поведение сайта в зависимости от аргумента success функции из OnTransactionCompleted.
  8. Протестировать работу виджета на тестовой среде с использованием тестовых карт.
  9. Получить от службы поддержки Payture параметры коммерческого доступа и выполнить переключение в боевую среду.

Пример функции вызова виджета:

function openWidget() {
    var widget = new PaytureWidget({
        Key : "Merchant_Widget",
        Amount : 20,
        Product : "Payture",
        Domain : "2",
        CustomParams : 
        {
            TemplateTag : "Default",
            Language : "Default",
            Name : "Иван Иванов",
            Delivery : "Самовывоз"
        },
        ChequeParams : 
        {  
            Positions:[  
               {  
                  Quantity: 1.000,
                  Price: 10.00,
                  Tax: 2,
                  Text: "Чай"
               },
               {  
                  Quantity : 2.000,
                  Price : 5.00,
                  Tax: 2,
                  Text: "Пирожок"
               }
            ],
            CustomerContact : "",
            Message: "Чек Payture"
        }, 
        OnTransactionCompleted : function(success) { 
            alert( success );  
            }
    });
}

Параметры виджета, которые передаются в его конструктор PaytureWidget():

Параметр Описание Формат
Key Наименование платежного Терминала String
Mandatory
Amount Сумма платежа в рублях с точностью до 2 цифр после точки Float
Mandatory
Product Название оплачиваемой покупки, которое будет выведено Покупателю в платежном виджете
Подставляется в плейсхолдер {Product} шаблона виджета
String [1..50]
Optional
Domain Номер, обозначающий URL-адрес шлюза:
1 – Основной адрес Production среды платежного шлюза (по умолчанию)
2 – Тестовая среда: https://sandbox3.payture.com
Integer
Optional
Session Тип операции:
Pay – списание в рамках одностадийного платежа (по умолчанию)
Block – блокировка средств в рамках двухстадийного платежа. Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock
String
Optional
CustomParams Содержит название и язык используемого шаблона виджета, а также любые дополнительные параметры Продавца (например имя плательщика и описание доставки): String
Optional
TemplateTag Название используемого шаблона виджета
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default». См. подробнее о шаблонах страниц оплаты
Language Язык шаблона виджета
Необходимо передавать, если для шаблона используется несколько языков. Если параметр не передан, используется язык шаблона «Default». См. подробнее о шаблонах страниц оплаты
ChequeParams Параметры чека. Соответствует параметру Cheque.
Ниже приведен минимальный набор параметров для чека:
String
Optional
Positions Список позиций чека, которые включают в себя:
⦁ Наименование позиции (Text)
⦁ Кол-во единиц продукции (Quantity)
⦁ Цена (Price)
⦁ Налог (Tax)
Внимание! Сумма позиций чека должна равняться сумме операции в Amount.
Подробное описание этих параметров см. здесь
CustomerContact Телефон в формате 79165554444 или Email Покупателя для отправки чека, куда будет отправлен чек, если Покупатель не укажет адрес отправки в виджете
Message Тема письма или строка в сообщении СМС
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
OnTransactionCompleted Функция, вызываемая после завершения транзакции перед закрытием виджета.
Имеет один аргумент success — результат операции. True — успешный платеж, False — неуспешный платеж
Function
Optional

P2P переводы

Перевести деньги

Функциональность P2P переводов (перевод с карты на карту) позволяет переводить денежные средства с одной карты международных платежных систем Visa и Mastercard на другую.

Технически на стороне платежных систем схема переводов реализована в два этапа. Первый этап — списание денежных средств с карты-источника. Второй этап — пополнение карты-приемника. Интерфейс переводов, предлагаемый Payture, позволяет реализовать эту функциональность в один шаг (выполнение метода Pay).

Payture P2P Scheme

При выполнении перевода с плательщика (владельца карты-источника) будет удержана комиссия, которая прописана в договоре на P2P перевод. Таким образом, в поле суммы (Amount) при совершении платежа, указывается сумма к начислению на карту-приемник. Комиссия за выполнение перевода удерживается с карты-источника.

Возможность перевода с карты на карту поддерживается в интерфейсе Payture API (посредством API).

https://{Host}.payture.com/api/Pay

Метод API для P2P переводов практически полностью соответствует методу Pay, разница заключается в добавлении параметра CardTo (номер карты-приемника) в CustomFields. В случае добавления такого параметра платеж автоматически становится P2P переводом.

Запрос

curl https://sandbox3.payture.com/api/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12368 \
-d OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254 \
--data-urlencode "PayInfo= \
PAN=4111111111100031; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
Amount=12368;" \
--data-urlencode "CustomFields= \
CardTo=4242424242424242;" \

В запросах наименования параметров чувствительны к регистру

Внимание! Параметры OrderId и Amount передаются дважды в одном запросе: в основных параметрах запроса и в параметре PayInfo, после Url Encode преобразования

Параметр Описание Формат
Key Наименование платежного Терминала
Выдается с параметрами тестового/боевого доступа
String
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
PayInfo Параметры для совершения транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory
CustomFields Параметр для передачи номера карты-приемника. Также может содержать дополнительные поля транзакции
Url Encoded строка, содержащая пары ключей и их значений, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
String
Mandatory
PaytureId Идентификатор платежа в системе Payture AntiFraud String [1..50]
Optional
CustomerKey Идентификатор Покупателя в системе Payture AntiFraud String [1..50]
Optional

Состав ключей параметра PayInfo

Соответствует аналогичному в Payture API Pay

Состав ключей параметра CustomFields

Пример параметра CustomFields (decoded):

CardTo=4111111111100031;
Параметр Описание Формат
CardTo Номер карты, на которую будет совершен перевод (карта-приемник)
Цифры без пробелов
String [13..19]
Mandatory

Ответ

Соответствует аналогичному в Payture API Pay

Коды ошибок

Код ошибки Значение
NONE Операция выполнена без ошибок
ACCESS_DENIED Запрещены операции с данным набором параметров для Терминала
AMOUNT_ERROR Ошибка суммы операции. Превышена сумма либо сумма операции не проверена в биллинге
AMOUNT_EXCEED Сумма транзакции превышает доступный остаток средств на выбранном счете
API_NOT_ALLOWED Запрет использования API с данного IP
CARD_EXPIRED Истек срок действия карты
CARD_NOT_FOUND Не найдена карта по данному идентификатору
COMMUNICATE_ERROR Ошибка связи в физических каналах
CURRENCY_NOT_ALLOWED Валюта не разрешена для предприятия
CUSTOMER_NOT_FOUND Покупатель не найден
DUPLICATE_ORDER_ID Номер заказа уже использовался ранее
DUPLICATE_PROCESSING_ORDER_ID Заказ существует в процессинге с данным идентификатором
DUPLICATE_CARD Карта уже существует
DUPLICATE_USER Покупатель уже зарегистрирован
EMPTY_RESPONSE Пустой ответ процессинга
EMAIL_ERROR Ошибка при обработке сообщения электронной почты ошибка отправки сообщения
FRAUD_ERROR Недопустимая транзакция согласно настройкам антифродового фильтра
FRAUD_ERROR_CRITICAL_CARD Номер карты(BIN, маска) внесен в черный список антифродового фильтра на стороне эмитента
ILLEGAL_ORDER_STATE Попытка выполнения недопустимой операции для текущего состояния платежа
INTERNAL_ERROR Внутренняя ошибка шлюза
INVALID_PAYTUREID Неверный fingerprint устройства
INVALID_SIGNATURE Неверная подпись запроса
ISSUER_BLOCKED_CARD Владелец карты пытается выполнить транзакцию, которая для него не разрешена банком-эмитентом, либо произошла внутренняя ошибка эмитента
ISSUER_CARD_FAIL Банк-эмитент запретил интернет транзакции по карте
ISSUER_FAIL Владелец карты пытается выполнить транзакцию, которая для него не разрешена банком-эмитентом, либо внутренняя ошибка эмитента
ISSUER_LIMIT_FAIL Предпринята попытка, превышающая ограничения банка-эмитента на сумму или количество операций в определенный промежуток времени
ISSUER_LIMIT_AMOUNT_FAIL Предпринята попытка выполнить транзакцию на сумму, превышающую (дневной) лимит, заданный банком-эмитентом
ISSUER_LIMIT_COUNT_FAIL Превышен лимит на число транзакций: клиент выполнил максимально разрешенное число транзакций в течение лимитного цикла и пытается провести еще одну
ISSUER_TIMEOUT Эмитент не ответил в установленное время
MERCHANT_FORWARD Перенаправление на другой Терминал
MERCHANT_RESTRICTION Запрет МПС или эквайера на проведение операции мерчанту
MPI_CERTIFICATE_ERROR Ошибка сервиса MPI(шлюз)
MPI_RESPONSE_ERROR Ошибка сервиса MPI(МПС)
ORDER_NOT_FOUND Не найдена транзакция
ORDER_TIME_OUT Время платежа (сессии) истекло
PAYMENT_ENGINE_ERROR Ошибка взаимодействия в ядре процессинга
PROCESSING_ACCESS_DENIED Доступ к процессингу запрещен
PROCESSING_ERROR Ошибка функционирования системы, имеющая общий характер. Фиксируется платежной сетью или банком-эмитентом
PROCESSING_FRAUD_ERROR Процессинг отклонил мошенническую транзакцию
PROCESSING_TIME_OUT Не получен ответ от процессинга в установленное время
PROCESSING_ERROR_CODE_FAIL_CONVERT Невозможно конвертировать код ошибки процессинга
REFUSAL_BY_GATE Отказ шлюза в выполнении операции
THREE_DS_ATTEMPTS_FAIL Попытка 3DS авторизации неудачна
THREE_DS_AUTH_ERROR Ошибка авторизации 3DS
THREE_DS_ERROR Ошибка оплаты 3DS
THREE_DS_FAIL Ошибка сервиса 3DS
THREE_DS_NOT_ATTEMPTED 3DS не вводился
THREE_DS_NOTENROLLED Карта не вовлечена в систему 3DS
THREE_DS_TIME_OUT Превышено время ожидания 3DS
THREE_DS_USER_AUTH_FAIL Покупатель ввел неверный код 3DS
UNKNOWN_STATE Неизвестный статус транзакции
USER_NOT_FOUND Покупатель не найден
WRONG_AUTHORIZATION_CODE Неверный код авторизации
WRONG_CARD_INFO Введены неверные параметры карты
WRONG_CONFIRM_CODE Неверный код подтверждения
WRONG_CVV Недопустимый CVV
WRONG_EXPIRE_DATE Неправильная дата окончания срока действия
WRONG_PAN Неверный номер карты
WRONG_CARDHOLDER Недопустимое имя держателя карты
WRONG_PARAMS Неверный набор или формат параметров
WRONG_PAY_INFO Некорректный параметр PayInfo (неправильно сформирован или нарушена криптограмма)
WRONG_PHONE Неверный телефон
WRONG_USER_PARAMS Покупатель с такими параметрами не найден
RECURRING_PAY_NOT_FOUND Рекуррентный платеж не найден
WRONG_BINDING_PAYMENT Ошибка при попытке рекуррентного платежа
INSTALLMENT_NOT_ALLOWED Рассрочка не разрешена для дебетовых карт
OTHER_ERROR Другая ошибка
OFD_ERRORОшибка в ответе сервиса, взаимодействующим с кассами
CHEQUE_DATA_EMPTYДля всех оплат через Терминал должны отправляться чеки, но данные для чека не переданы в запросе
CHEQUE_DATA_INVALIDДля всех оплат через Терминал должны отправляться чеки, но переданы некорректные данные для чека
WRONG_CHEQUE_AMOUNTСумма позиций чека не совпадает с суммой, переданной для списания
CHEQUE_RESENDINGЧек уже был отправлен
CHEQUE_WRONG_RECIPIENTФормат адреса или телефона получателя чека невалидный
CHEQUE_TIMEOUTСтатус чека не получен за допустимое время от сервиса, взаимодействующего с кассами
CHEQUE_PARSE_ERRORОшибка при парсинге строки чека в json
CHEQUE_NOT_FOUNDЧек не найден
CHEQUE_WRONG_STATUSЧек имеет статус, отличный от ожидаемого (подробности зависят от контекста)
CHEQUE_DUPLICATEДубликат чека

Тестовые карты

В ходе тестирования технической интеграции с платежным шлюзом Payture Продавцу следует использовать тестовый сервис шлюза и параметры тестовых карт.

Использование параметров действующих банковских карт при тестировании строго запрещено!

Правила использования тестовых карт

Сумма платежа: от 1 до 100 руб.

Держатель карты: произвольное имя, только латинские символы и пробел, не менее 3 символов (Например: Test)

Тестовый сервис: https://sandbox3.payture.com

Тестирование кодов ошибок

curl https://sandbox3.payture.com/vwapi/Block \
-d VWID=Merchant \
--data-urlencode "Data= \
OrderId=2b7da0a3-cf36-f1ea-abd0-abf8dde36254; \
PayToken=UGF5bWVudFRva2Vu; \
VWUserLgn=123@ya.ru; \
IP=66.159.236.12; \
ErrCode=PROCESSING_ERROR; \
Amount=12368; \
CardId=FreePay; \
VWUserPsw=2645363 \

Для тестирования кодов ошибки с использованием PayToken в Sandbox существует возможность возвращать код ошибки, переданный в запросе.

При этом необходимо указать необходимый код ошибки в поле Data HTTP-запроса.

Данный код возвращается для методов eWallet:

  • PaySubmit
  • Block
  • AddSubmit

Список тестовых карт

Номер картыCVC2/CVV2Срок действияРезультат платежа
52188519469554841232021/12Успешный платеж без 3DS с опциональным CVV
41111111111111121232022/12успешный платеж без 3DS с опциональным CVV
41111111111000311232022/12успешный платеж без 3DS с опциональным CVV
41111111111000231232022/12успешный платеж без 3DS с обязательным CVV
54867320588644711232022/12успешный платеж с 3DS
41111111111111111232022/12успешный платеж с 3DS
41111111111111141232022/12неуспешный платеж с 3DS
41111111111111151232022/12неуспешный платеж с 3DS
33000000000000015212022/12неуспешный платеж («недостаточно средств»)
44000000000000085212011/09неуспешный платеж («неверный срок действия карты»)
55000000000000045212022/12неуспешный платеж («номер карты в черном списке»)
66000000000000013742022/12неуспешный платеж («несуществующая карта»)
41111010000000461232022/12«AMOUNT_EXCEED» во время блокировки (при превышении суммы в 100 рублей (Amount=10001))
41111111111000561232022/12«PROCESSING_ERROR» во время блокировки
41111111111000721232022/12«ISSUER_BLOCKED_CARD» во время блокировки
41111111111000801232022/12«ISSUER_CARD_FAIL» во время блокировки
41111111111002211232022/12«PROCESSING_ERROR» во время списания
41111111111006271232022/12«PROCESSING_ERROR» во время разблокировки
41111111111020291232022/12«PROCESSING_ERROR» во время возврата
41004011111000621232022/12Таймаут 40 секунд во время блокировки
41004011111007241232022/12Таймаут 40 секунд во время разблокировки
41004011111003281232022/12Таймаут 40 секунд во время списания
41004011111030251232022/12Таймаут 40 секунд во время возврата
22022011111100101232022/12BIN MIR, успешный платеж с 3DS
6762800000000000111232022/12BIN MAESTRO, успешный платеж с 3DS
63900200000000000101232022/12BIN MAESTRO, успешный платеж с 3DS
6762806518546000101232022/12BIN MAESTRO, успешный платеж с 3DS

Список тестовых карт

PayBox

Номер картыCVC2/CVV2Срок действия3DS кодРезультат платежа
44056450000061506532025/09успешный платеж без 3DS
54831850000002933432025/09успешный платеж без 3DS
37751450000995134462025/09успешный платеж без 3DS
40030350000053783232025/12secure1успешный платеж с 3DS
51014500000078984542025/12Master1успешный платеж с 3DS

BePaid

Номер картыРезультат платежа
4200000000000000успешный платеж без 3DS
4005550000000019неуспешный платеж без 3DS
4012001037141112успешный платеж с 3DS
4012001037461114неуспешный платеж с 3DS

Нотификации

Нотификации — это асинхронные ответы от Payture о результатах выполнения запросов.

Методы нотификации

  • HTTP POST — запрос повторяется несколько раз с периодичностью 10 секунд до получения ответа «200 OK». Тело запроса будет состоять из Url Encoded строки, содержащей пары ключей и их значений, разделённых символом «&» (амперсанд). Ключи и значения разделены символом «=» (равно).
  • Email — сообщение по указанному адресу, отправляется один раз.
  • SMS — сообщение по указанному номеру, отправляется один раз.

Подробное описание нотификаций: состав, возможность расширения параметров и описание всех параметров нотификаций см. в документе Нотификации 2.0.

Порядок подключения нотификации

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

При переходе в коммерческую эксплуатацию все параметры метода нотификаций по умолчанию устанавливаются аналогичными соответствующим параметрам тестового доступа.

Внесение изменений в действующие параметры нотификаций производится по отдельному запросу Продавца в службу поддержки Payture.

Дополнительная безопасность

По желанию Продавца, в целях повышения безопасности платежей, для метода нотификаций HTTP POST может применяться шифрование с использованием алгоритма AES-256-ECB. При этом тело запроса будет содержать один параметр DATA, в качестве значения которого указывается зашифрованная строка, содержащая пары ключей и их значений, разделённых символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).

Обмен ключами шифрования осуществляется на этапе подключения, замена — в процессе взаимодействия по инициативе любой из сторон.

Нотификации Payture API

ОперацияВозможные нотификации
api/Pay Success: EngineBlockSuccess, EngineChargeSuccess, EnginePaySuccess
Fail: EnginePayFail, EngineBlockFail, EngineChargeFail
api/Block Success: EngineBlockSuccess
Fail: EngineBlockFail
api/Charge Success: EngineChargeSuccess
Fail: EngineChargeFail
api/Refund Success: EngineRefundSuccess
Fail: EngineRefundFail
api/Unblock Success: EngineUnblockSuccess
Fail: EngineUnblockFail

Нотификации InPay

ОперацияВозможные нотификации
apim/PaySuccess или Fail: MerchantPay, MerchantBlock
Success: EngineBlockSuccess, EngineChargeSuccess, EnginePaySuccess
Fail: EngineBlockFail, EngineChargeSuccess, EnginePayFail
apim/ChargeSuccess: EngineChargeSuccess
Fail: EngineChargeFail
apim/RefundSuccess или Fail: MerchantRefund
Success: EngineRefundSuccess
Fail: EngineRefundFail
apim/UnblockSuccess: EngineUnblockSuccess
Fail: EngineUnblockFail

Нотификации eWallet

ОперацияВозможные нотификации
vwapi/Pay Success: EngineBlockSuccess, EngineChargeSuccess, CustomerPaySuccess, EnginePaySuccess
Fail: EngineBlockFail, EngineChargeFail, CustomerPayFail, EnginePayFail
vwapi/RefundSuccess: CustomerRefundSuccess, EngineRefundSuccess
Fail: CustomerRefundFail, EngineRefundFail
vwapi/ChargeSuccess: EngineChargeSuccess
Fail: EngineChargeFail
vwapi/UnblockSuccess: EngineUnblockSuccess
Fail: EngineUnblockFail
vwapi/AddSuccess: EngineBlockSuccess, CustomerAddSuccess
Fail: EngineBlockFail, CustomerAddFail
vwapi/RemoveCardSuccess или Fail: CustomerDeleteCard

Нотификации сервиса Чеков

Возможные нотификации
ChequeSent, ChequeNotSent, ChequeAccepted, ChequeRejected, ChequeCreated, ChequeTimeout, ChequeNotAccepted

Нотификации ChargeBack

Возможные нотификации
ChargeBack

Описание нотификаций

НазваниеОписаниеПример Email или SMS
EngineBlockSuccessУспешная блокировка средств Пример
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EngineBlockSuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [09.08.2018 13:02:35]
ErrCode: [NONE]
OrderId: [636694166050528637]
Amount: [2500]
EngineBlockFailНеуспешная блокировка средств Пример
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EngineBlockFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [09.08.2018 14:30:01]
ErrCode: [AMOUNT_EXCEED]
OrderId: [636694218513740423]
Amount: [232]
EnginePaySuccessУспешное списание средств Пример
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EnginePaySuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [09.08.2018 12:58:16]
ErrCode: [NONE]
OrderId: [636694163154551367]
Amount: [3500]
EnginePayFailНеуспешное списание средств Пример
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EnginePayFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [09.08.2018 14:30:01]
ErrCode: [AMOUNT_EXCEED]
OrderId: [636694218513740423]
Amount: [232]
EngineChargeSuccessУспешное завершение средств Пример
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EngineChargeSuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [09.08.2018 14:25:08]
ErrCode: [NONE]
OrderId: [636694215634212517]
Amount: [300]
EngineChargeFailНеуспешное завершение средств Пример
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EngineChargeFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [09.08.2018 14:31:33]
ErrCode: [PROCESSING_ERROR]
OrderId: [636694219488092941]
Amount: [2800]
EngineUnblockSuccessУспешная разблокировка средств Пример
Is3DS: [False]
NewAmount: [0]
OrderId: [636694215745929202]
Amount: [1400]
Notification: [EngineUnblockSuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [09.08.2018 14:25:19]
ErrCode: [NONE]
EngineUnblockFailНеуспешная разблокировка средств Пример
Is3DS: [False]
NewAmount: [1900]
OrderId: [636694219992986858]
Amount: [1900]
Notification: [EngineUnblockFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [09.08.2018 14:32:24]
ErrCode: [PROCESSING_ERROR]
EngineRefundSuccessУспешный возврат средств Пример
Is3DS: [False]
NewAmount: [0]
OrderId: [636694215684050471]
Amount: [800]
Notification: [EngineRefundSuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [09.08.2018 14:25:13]
ErrCode: [NONE]
EngineRefundFailНеуспешный возврат средств Пример
Is3DS: [False]
NewAmount: [200]
OrderId: [636694220420935985]
Amount: [200]
Notification: [EngineRefundFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [09.08.2018 14:33:06]
ErrCode: [PROCESSING_ERROR]
MerchantBlockБлокировка средств (с параметром Success=True/False) Пример
SessionId: [43bb096a-f8ed-4dcf-824f-035b5f3a7b86]
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [MerchantBlock]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 14:50:42]
ErrCode: [NONE]
OrderId: [d424050f-4e22-40be-85ee-19fcc1646688]
Amount: [102]
MerchantPayСписание средств (с параметром Success=True/False) Пример
SessionId: [ab157c83-5a9d-4dde-b5f4-c8b448e607ff]
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [MerchantPay]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 14:49:26]
ErrCode: [NONE]
OrderId: [17f76c0c-177f-46cb-b35c-620ed5b1189c]
Amount: [102]
MerchantRefundВозврат средств (с параметром Success=True/False) Пример
Is3DS: [False]
NewAmount: [0]
OrderId: [b3ee1dd0-8fa3-41d7-96e7-537822b45d5a]
Amount: [102]
Notification: [MerchantRefund]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 14:51:43]
ErrCode: [NONE]
CustomerAddSuccessУспешная регистрация карты Пример
CardNumber: [411111xxxxxx0023]
CardId: [2770521a-597f-4a8d-b283-d9f5f8257589]
VWUserLgn: [101@ya.ru]
CardHolder: [CARD HOLDER]
OrderId: [[CUSTOMERS_ADD]-[9416342]]
Amount: [101]
ExpDate: [12/2018]
Notification: [CustomerAddSuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 12:21:30]
ErrCode: [NONE]
CustomerAddFailНеуспешная регистрация карты Пример
CardNumber: [411111xxxxxx0080]
CardId: []
VWUserLgn: [101@ya.ru]
CardHolder: [CARD HOLDER]
ExpDate: [12/2018]
Notification: [CustomerAddFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [10.08.2018 12:20:35]
ErrCode: [ISSUER_CARD_FAIL]
CustomerPaySuccessУспешное списание средств Пример
Is3DS: [False]
SessionId: [b7d55d5b-c323-4f9f-9dc4-4e864011b0c9]
CardNumber: [411111xxxxxx0023]
CardId: [d85a6a7f-f908-4f02-a8bfdd9d33561213]
VWUserLgn: [101@ya.ru]
ForwardedTo: [NotForwarded]
Notification: [CustomerPaySuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 14:02:27]
ErrCode: [NONE]
OrderId: [1fb56e1f-a533-407d-bca3-cc2c8ef87f04]
Amount: [102]
CustomerPayFailНеуспешное списание средств Пример
Is3DS: [False]
SessionId: [1c3ab2b6-944e-489f-a686-c977c6d9fbde]
CardNumber: [330000xxxxxx0001]
CardId: [87ee56bd-ec6e-4932-a8cbc85c81437824]
VWUserLgn: [101@ya.ru]
ForwardedTo: [NotForwarded]
Notification: [CustomerPayFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [10.08.2018 14:08:20]
ErrCode: [AMOUNT_EXCEED]
OrderId: [2031feb6-f2e6-4c21-be67-c669b9786027]
Amount: [102]
CustomerRefundSuccessУспешный возврат средств Пример
Is3DS: [False]
NewAmount: [0]
OrderId: [6075f4c6-a1d0-4366-a4ca-3100625bafa6]
Amount: [102]
Notification: [CustomerRefundSuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 14:09:36]
ErrCode: [NONE]
CustomerRefundFailНеуспешный возврат средств Пример
Is3DS: [False]
NewAmount: [102]
OrderId: [80cc7ce0-b2da-46bb-96e7-02416cdb7bc7]
Amount: [102]
Notification: [CustomerRefundFail]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [10.08.2018 14:10:32]
ErrCode: [PROCESSING_ERROR]
CustomerDeleteCardУдаление карты (с параметром Success=True/False) Пример
DeleteDate: [10.08.2018 12:30:50]
CardNumber: [411111xxxxxx0023]
CardId: [6fd5fa99-7e26-4637-84a4-8cc90d49c4d1]
VWUserLgn: [101@ya.ru]
CardHolder: [CARD HOLDER]
ExpDate: [12/2018]
Notification: [CustomerDeleteCard]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [10.08.2018 12:30:50]
ErrCode: [NONE]
ChequeSentЧек отправлен Покупателю Пример
OrderId: []
ChequeId: [bfh7k8f3j582c17d]
Type: [Pay]
Status: [Created]
Cheque: [Чек в Base64]
Notification: [ChequeSent]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [15.08.2018 19:02:53]
ErrCode: [NONE]
MerchantId: [140]
ChequeNotSentЧек не отправлен Покупателю Пример
OrderId: []
ChequeId: [bfh7k8f3j582c17d]
Type: [Pay]
Status: []
Cheque: [Чек в Base64]
Notification: [ChequeNotSent]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [15.08.2018 19:02:53]
ErrCode: [NONE]
ChequeCreatedЧек создан Пример
OrderId: []
ChequeId: [bfh7k8f3j582c17d]
Type: [Pay]
Status: [Created]
Cheque: [Чек в Base64]
Notification: [ChequeCreated]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [15.08.2018 19:02:52]
ErrCode: [NONE]
MerchantId: [140]
ChequeAcceptedЧек принят Пример
OrderId: [dfe29039-c795-44aa-8297-ae61e7102fc9]
ChequeId: []
Type: [Pay]
Status: [Accepted]
Cheque: []
Notification: [ChequeAccepted]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [15.08.2018 16:48:04]
ErrCode: [NONE]
MerchantId: [140]
ChequeNotAcceptedЧек не принят на стороне сервиса онлайн касс Пример
OrderId: [dfe29039-c795-44aa-8297-ae61e7102fc9]
ChequeId: []
Type: [Pay]
Status: [NotAccepted]
Cheque: []
Notification: [ChequeNotAccepted]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [15.08.2018 16:48:04]
ErrCode: [NONE]
ChequeRejectedЧек отклонён на стороне платежного шлюза Пример
OrderId: []
ChequeId: []
Type: [Pay]
Status: [Unknown]
Cheque: []
Notification: [ChequeRejected]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [15.08.2018 16:27:26] ErrCode: []
ChequeTimeoutЧек не отправлен за допустимое время Пример
OrderId: [dfe29039-c795-44aa-8297-ae61e7102fc9]
ChequeId: [636699484844436085331]
Type: [Normal]
Status: [Accepted]
Cheque: []
Notification: [ChequeTimeout]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [15.08.2018 16:54:05]
ErrCode: [CHEQUE_TIMEOUT]
ChargeBackВозвратный платеж Пример
OrderId: [17f76c0c-177f-46cb-b35c-620ed5b1189c]
Amount: [1500]
ChargeBackDate: [27.08.2018 12:17:26]
CardHolder: [CARD HOLDER]
PANMask: [411111xxxxxx0080]
Notification: [ChargeBack]
MerchantContract: [Merchant]
Success: [False]
TransactionDate: [15.08.2018 16:27:26]
ErrCode: []

Статусы транзакции

СтатусЗначение
NewПлатеж зарегистрирован в шлюзе, но его обработка в процессинге не начата
PreAuthorized3DSПлатеж находится в процессе аутентификации по протоколу 3D Secure
AuthorizedСредства заблокированы, но не списаны (2-х стадийный платеж)
VoidedСредства на карте были заблокированы и разблокированы (2-х стадийный платеж)
ChargedДенежные средства списаны с карты Покупателя, платёж завершен успешно
RefundedУспешно произведен полный возврат денежных средств на карту Покупателя
ForwardedПлатеж был перенаправлен на другой Терминал
RejectedНеуспешный платеж
ErrorПоследняя операция по платежу завершена с ошибкой
ChargebackУспешно завершенная транзакция, по которой впоследствии поступила претензия от банка-эмитента

SDK

Для облегчения интеграции платежного решения на сайт магазина вы можете использовать SDK.

В SDK можно найти готовые решения для разных языков программирования. По вопросам использования и встраивания в свои системы Вы можете обращаться в службу поддержки Payture.

Node.js Node.js — готовый модуль для разработчиков на Node.js. Простая и удобная установка с помощью npm:
npm install payture-official
Добавить в проект:
var payture = require('payture-official');
Дополнительная документация на GitHub
Payture Node.js Github
C Sharp CSharpPaytureAPI — готовая библиотека, доступная для скачивания с NuGet. Для установки удобно использовать менеджер NuGet из Visual Studio, либо устанавливаем через консоль NuGet по команде:
Install-Package CSharpPaytureAPI
Добавить в проект:
using CSharpPayture;
Дополнительная документация на GitHub
Payture CSharp Github
Golang Go — компилируемый многопоточный язык программирования, разработанный компанией Google.
Добавить в проект:
Go Get "github.com/Payture/Go-Payture-official/payture"
Дополнительная документация на GitHub
Payture Golang Github

Готовые модули для CMS

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

Узнать о новых бесплатных модулях, которые сейчас тестируются или предложить свой модуль для интеграции с нами можно по электронной почте support@payture.com.

Мы не поддерживаем работу приложений сторонних разработчиков, все обновления вы можете посмотреть по ссылке для скачивания.

Mygento Magento — это бесплатный движок для управления интернет магазином с открытым кодом. Входит в ТОП-20 самых популярных платформ для электронной коммерции в мире. Компания Mygento специализируется на разработке интернет-магазинов на CMS Magento и подготовила модуль интеграции с Payture. Mygento - команда профессионалов, с глубоким знанием платформы, большой выдержкой и терпением в работе с клиентами и партнерами. В их портфеле более 100 успешно реализованных проектов. Mygento
Intermedia CMS 1С-Битрикс — это автоматизированная система управления контентом. Продукт предназначен для создания и развития корпоративных проектов предприятий и организаций, информационных, новостных и справочных порталов, социальных сетей, интернет-магазинов и других видов сайтов. Модуль интеграции с 1С-Битрикс разработала компания InterMedia Service. Она является Золотым сертифицированным партнером и Хостинг-партнером компании «1С-Битрикс» и оказывает полный комплекс услуг по веб-разработке с использованием новых идей и технологий, которые позволяют достичь качественного результата. При установке модуля необходимо согласиться с лицензионным соглашением-офертой. Bitrix
Simpla Программный модуль для интернет-магазина на Simpla CMS. Simpla — это готовое решение для быстрого создания интернет-магазина с широкими возможностями и современным дизайном. Уже 63019 лицензионных установок. Bitrix
Payture OpenCart — бесплатная система управления содержимым, ориентированная на создание интернет-магазинов. Программное обеспечение написано на языке программирования PHP, платформа устанавливается на любом веб-сервере с поддержкой PHP и MySQL. Данная CMS пригодится для тех, кому нужен легкий и надежный движок интернет-магазина. Большим преимуществом данной системы управления сайтом является визуальная привлекательность интерфейса.Инструкция по установке модуля Opencart
Payture Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля Drupal
Payture Commerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля Drupal
Payture VirtueMart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Joomla!. Joomla! — система управления содержимым сайта, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL. CMS позволяет без особых знаний в веб-программировании создавать отличные и динамичные сайты. Инструкция по установке модуля Joomla
Payture Woocommerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS WordPress. WordPress — система управления контентом с открытым исходным кодом, написанная на языке PHP. Универсальная и самая популярная CMS в мире. Применима к ресурсам любого назначения, от блогов до интернет-магазинов. Инструкция по установке модуля Wordpress
Payture Программный модуль для интернет-магазина ReadyScript. ReadyScript — собрала в себе все лучшее, что существует сегодня на рынке CMS а также приобрела множество уникальных возможностей. Чтобы сохранить удобство пользования сайтом на различных по размеру экранах, сайт автоматически адаптируется, скрывая, сворачивая или переставляя некоторые второстепенные блоки. Все это включено в стандартную тему оформления. Readyscript