Кассы по ФЗ-54

Формат чека для передачи с платежом

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

Когда надо выбивать электронный чек?


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

Как поступать с возвратами/разблокировкой?


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

Cheque

Name Description Format Mandatory
Positions Список позиций чека Массив M
CheckClose Контейнер с информацией о системе налогообложения. В общем случае - можно настроить через support@payture.com и не передавать. Контейнер O
CustomerContact Email или Телефон. Телефон в формате “79165554444” Строка M
Message Тема письма или строка в сообщении СМС Строка (максимум 50 символов) M
AdditionalMessages Позволяет добавить любые параметры на шаблон чека в плейсхолдер с названием из Key. Массив O

Positions

Name Description Format Mandatory
Quantity Количество Цифры без пробелов M
Price Стоимость Цифры M
Tax Ставка НДС Цифра M
Text Наименование товара/услуги для пробития чека Строка до 128 символов M

CheckClose

Name Description Format Mandatory
TaxationSystem Номер системы налогообложения Цифры без пробелов M

Пример корректного json: Base64/Normal
{ "Positions":[ { "Quantity":1.000, "Price":123.45, "Tax":6, "Text":"Булка" }, { "Quantity":2.000, "Price":4.45, "Tax":4, "Text":"Спички" } ], "CheckClose":{ "TaxationSystem":0 }, "CustomerContact":"foo@example.com", "Message":"Чек Payture", "AdditionalMessages":[ { "Key":"Параметр1", "Value":"Значение1" } ] }




Формат чека для передачи без платежа


Создание чека


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

Как поступать с возвратами/разблокировкой?


На возврат выбивается чек – возврат прихода со всеми позициями чека прихода. На частичный возврат – выбивается чек во возврат прихода со всеми позициями чека прихода, а потом выбивается новый чек прихода с новыми позициями.

Cheque

Name Description Format Mandatory
Id Идентификатор документа Строка от 1 до 32 символов M
INN ИНН организации, для которой пробивается чек Строка 12 символов M
Content Содержимое документа Структура M
Group Группа устройств Строка до 32 символов O

Content

Name Description Format Mandatory
Type Тип документа Число M
Positions Список позиций в чеке Массив M
CheckClose Параметры закрытия чека Структура M
CustomerContact Телефон или e-mail покупателя Строка до 32 символов (Email или Телефон покупателя. Телефон в формате “79165554444”) M
Message Информация переданная в сообщении Строка до 64 символов M

Positions

Name Description Format Mandatory
Quantity Количество товара Десятичное число с точностью до 3 символов после точки M
Price Цена товара с учетом всех скидок и наценок Десятичное число с точностью до 2 символов после точки M
Tax Ставка НДС Число от 1 до 6 M
Text Текст позиции Строка до 128 символов M

CheckClose

Name Description Format Mandatory
Payments Оплаты Массив M
TaxationSystem Номер системы налогообложения Число от 0 до 5 M

Payments

Name Description Format Mandatory
Type Тип оплаты Число от 1 до 16 M
Amount Сумма оплаты Десятичное число с точностью до 2 символов после точки M

Пример корректного json:
{ "Key":"Merchant", "Password":"1234", "Message":"Оплата Payture", "Cheque":{ "Id":"1231244424", "INN":"5902202276", "Group":"Main", "Content":{ "Type":1, "Positions":[ { "Quantity":1.000, "Price":111.45, "Tax":1, "Text":"Булка" } ], "CheckClose":{ "Payments":[ { "Type":1, "Amount":123.45 } ], "TaxationSystem":1 }, "CustomerContact":nikita.popovsky@payture.com } } } Примечание:"Key":"Merchant", (название терминала, выдается с тестовым доступом)
Пример ответа
{ "Success":true, "ErrCode":null, "Status":"Created" }




Статус чека

Status

Name Description Format Mandatory
Key Идентификатор Продавца Строка M
Password Пароль Строка M
Id Идентификатор чека из нотификации Строка O
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов) O

Пример корректного json:
{ "Key":"VWMerchantViasatAdd", "Password":"1234", "Id":"6363737176995117182", "OrderId":"" }
Должен быть задан хотя бы один из опциональных параметров

Пример ответа
{ "Success":true, "ErrCode":null, "Cheques":[ { "Sended":true, "Cheque":{ ....... "ErrCode":null, "Status":"Created" } } ] }


Номера ставок НДС
Positions.Tax

Name Номер
ставка НДС 18% 1
ставка НДС 10% 2
ставка НДС расч. 18/118 3
ставка НДС расч. 10/110 4
ставка НДС 0% 5
НДС не облагается 6

Номера систем налогообложения
CheckClose.TaxationSystem

Name Номер
Общая, ОСН 0
Упрощенная доход, УСН доход 1
Упрощенная доход минус расход, УСН 2
3
Единый сельскохозяйственный налог, ЕСН 4
Патентная система налогообложения 5

Типы документ
Contents.Type

Name Номер
Приход 1
Возврат прихода 2
Расход 3
Возврат расхода 4

Типы оплат
Payments.Type

Name Номер
Наличными 1
Картой Мир 2
Картой Visa 3
Картой MasterCard 4
Расширенная оплата 1 5
Расширенная оплата 2 6
Расширенная оплата 3 7
Расширенная оплата 4 8
Расширенная оплата 5 9
Расширенная оплата 6 10
Расширенная оплата 7 11
Расширенная оплата 8 12
Расширенная оплата 9 13
Предвариательная оплата(Аванс) 14
Последующая оплата(Кредит) 15
Иная форма оплаты 16

Payture API

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

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

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

Возможности

Интерфейс API Payture позволяет выполнять стандартный набор операций электронной коммерции при условии ввода данных банковских карт на странице ТСП:
Pay Быстрое проведение платежа одной командой
Block Блокировка средств на карте пользователя
Charge Завершение платежа со списанием средств с карты пользователя
Unblock Изменение суммы средств, заблокированных на карте пользователя
Refund Возврат средств (полный или частичный) на карту пользователя
GetState Уточнение текущего состояния платежа
Для удобства интеграции с платежным шлюзом, вы можете скачать нашу PHP библиотеку

Внимание! для корректной работы в вашей системе должно быть установлено расширение cUrl

Подключение библиотеки
require 'Payture.php';
require 'PaytureConfiguration.php';
require 'PaytureAPI.php';
Инициализация
PaytureConfiguration::setMerchantKey("Merchant");
PaytureConfiguration::setEnvironment(PaytureConfiguration::ENV_DEVELOPMENT);

где в параметре метода «setMerchantKey» – должен передаваться идентификатор Продавца, «setEnvironment» – указатель на тип среды - тестовая (ENV_DEVELOPMENT) или боевая (ENV_PRODUCTION).

Скачать

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

Payture API Pay/Block

Внимание! При интеграции, пожалуйста, убедитесь, что Ваша система разбора XML работает в максимально толерантном режиме. Отсутствие опциональных параметров, изменение порядка следования атрибутов, появление новых атрибутов не должно вызывать ошибку разбора. Анализ значений следует производить без чувствительности к регистру, там, где это возможно. Все команды API Payture должны включать обязательный параметр Key (идентификатор ТСП), который выдается после подписания договора.

Взаимодействие решения клиента с платежным шлюзом Payture строится по схеме запрос-ответ.
Запрос
Запрос c необходимыми параметрами формируется на стороне клиента и передается методом POST по протоколу HTTP
https://{Host}.payture.com/api/{Command}

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

Ответ
Результаты обработки запросов выдаются платежным шлюзом синхронно в формате XML, кодировка UTF8.
<{Command} Key="Value" Key2="Value2" />

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

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

Pay

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

Запрос

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа Строка
PayInfo Параметры для совершения транзакции Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
PaytureId Идентификатор платежа в системе Payture AntiFraud Строка (максимум 50 символов)
CustomerKey Идентификатор Покупателя в системе Payture AntiFraud Строка (максимум 50 символов)
CustomFields Дополнительные поля транзакции. Может использоваться для передачи в процессинг дополнительных параметров, например, для фрод-мониторинга Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/api/Pay \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
--data-urlencode "PayInfo= \
PAN=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
OrderId=; \
Amount=;" \
--data-urlencode "CustomFields = \
OrderId=7.2.236.72; \
Product=ticket;" \
Скопировать код Получить ссылку

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

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

PaytureAPI::Pay(, , array(
    "PAN" => ,
    "EMonth" => ,
    "EYear" => ,
    "CardHolder" => ,
    "SecureCode" => ,
    "OrderId"=> ,
    "Amount" => 
))

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

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

Состав ключей параметра PayInfo
Ключ Описание Формат
PAN Номер карты Цифры без пробелов
EMonth Месяц истечения срока действия карты 2 цифры с лидирующим нулём
EYear Год истечения срока действия карты 2 цифры (последние цифры года)
CardHolder Фамилия и имя держателя карты Строка (максимум 30 символов, латинские буквы или пробел)
SecureCode CVC2/CVV2 Цифры
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей

PAN=; EMonth=; EYear=; CardHolder=; SecureCode=; OrderId=; Amount=

Состав возможных ключей параметра CustomFields
Ключ Описание Формат
IP IP адрес Покупателя Строка вида xxx.xxx.xxx.xxx
Description Дополнительное описание транзакции Строка

IP=; Description=MyTestTransaction

Ответ

XML строка с элементом Pay
Название Описание Формат
Success Флаг успешности операции «True» — операция успешна, «False» — операция не успешна, 3DS — карта вовлечена в 3DS
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
Key Идентификатор ТСП Соответствует переданному в запросе
Amount Сумма платежа. Передается, если «Success=True» Cоответствует переданному в запросе
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<Pay OrderId="" Key="Merchant" Success="True" Amount="" />
Пример ответа на неуспешный запрос
<Pay OrderId="" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Пример ответа на успешный запрос
[OrderId] => 
[Key] => Merchant
[Success] => 1
[Amount] => 
Пример ответа на неуспешный запрос
[OrderId] => 
[Key] => Merchant 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Block

Этот запрос позволяет блокировать денежные средства на карте Покупателя для последующего списания. Выполняется в рамках двухстадийной схемы проведения платежа. Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock.  
https://{Host}.payture.com/api/Block

Запрос

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа Строка
PayInfo Параметры для совершения транзакции Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
PaytureId Идентификатор платежа в системе Payture AntiFraud Строка (максимум 50 символов)
CustomerKey Идентификатор Покупателя в системе Payture AntiFraud Строка (максимум 50 символов)
CustomFields Дополнительные поля транзакции. Может использоваться для передачи в процессинг дополнительных параметров, например, для фрод-мониторинга Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/api/Block \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
--data-urlencode "PayInfo= \
PAN=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
OrderId=; \
Amount=;" \
Скопировать код Получить ссылку

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

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

PaytureAPI::Block(, , array(
    "PAN" => ,
    "EMonth" => ,
    "EYear" => ,
    "CardHolder" => ,
    "SecureCode" => ,
    "OrderId"=> ,
    "Amount" => 
))

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

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

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

Ключ Описание Формат
PAN Номер карты Цифры без пробелов
EMonth Месяц истечения срока действия карты 2 цифры с лидирующим нулём
EYear Год истечения срока действия карты 2 цифры (последние цифры года)
CardHolder Фамилия и имя держателя карты строка (максимум 30 символов, латинские буквы или пробел)
SecureCode CVC2/CVV2 Цифры
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей

PAN=; EMonth=; EYear=; CardHolder= ; SecureCode=; OrderId=; Amount=

Состав возможных ключей параметра CustomFields
Ключ Описание Формат
IP IP адрес Покупателя Строка вида xxx.xxx.xxx.xxx
Description Дополнительное описание транзакции Строка

IP=; Description=MyTestTransaction

Ответ

XML строка с элементом Block
Название Описание Формат
Success Флаг успешности операции «True» — операция успешна «False» — операция не успешна
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
Amount Сумма платежа. Передается, если «Success=True» Соответствует переданному в запросе
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<Block OrderId="" Success="True" Amount="" />
Пример ответа на неуспешный запрос
<Block OrderId="" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Пример ответа на успешный запрос
[OrderId] => 
[Key] => Merchant
[Success] => 1
[Amount] => 
Пример ответа на неуспешный запрос
[OrderId] => 
[Key] => Merchant 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Charge

Запрос используется для списания денежных средств с карты покупателя, предварительно заблокированных командой Block. Выполняется в рамках двухстадийной схемы проведения платежа. Результатом обработки запроса является списание заблокированной суммы с карты покупателя. Внимание: для успешного списания необходимо, чтобы на момент исполнения запроса платеж имел статус Authorized.
https://{Host}.payture.com/api/Charge

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

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа Строка
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/api/Charge \
-d Key=Merchant \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureAPI::Charge() \

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

Ответ

XML строка с элементом Charge
Название Описание Формат
Success Флаг успешности операции «True» — операция успешна «False» — операция не успешна
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<Charge Success="True" OrderId="" Amount="" />
Пример ответа на успешный запрос
[Success] => 1
[OrderId] =>  
[Amount] => 

Unblock

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

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

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

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

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

Запрос

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа Строка
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Полная сумма разблокировки в копейках Цифры, не содержащие десятичных или других разделителей
curl https://sandbox.payture.com/api/Unblock \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureAPI::Unblock(, )

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

Ответ

XML строка с элементом Unblock
Название Описание Формат
Success Флаг успешности операции «True» — операция успешна, «False» — операция не успешна
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
NewAmount Остаток заблокированной суммы в копейках. Передается, если «Success=True» Цифры, не содержащие десятичных или других разделителей
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<Unblock Success="True" OrderId="" NewAmount="0"/>
Пример ответа на успешный запрос
[Success] =  > 1
[OrderId] =  >  
[NewAmount] =  > 0

Refund

Этот запрос используется для возврата денежных средств, списанных командой Pay или Charge, на карту покупателя. Выполняется как при одностадийной, так и при двухстадийной схеме проведения платежа. Результатом обработки запроса является возврат (полный или частичный) списанных денежных средств на карту покупателя. Внимание: для успешного списания необходимо, чтобы на момент исполнения запроса платеж имел статус Charged.
https://{Host}.payture.com/api/Refund

Запрос

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа Строка
Password Пароль ТСП для проведения операций через API. Выдается ТСП с параметрами тестового/боевого доступа Строка (максимум 50 символов)
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Сумма, которую следует вернуть в копейках Цифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/api/Refund \
-d Key=Merchant \
-d Password=123 \
-d Amount= \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureAPI::Refund() \

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

Ответ

XML строка с элементом Refund
Название Описание Формат
Success Флаг успешности операции True — операция успешна, False — операция не успешна
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
NewAmount Остаток списанной суммы в копейках. Передается, если «Success=True» Цифры, не содержащие десятичных или других разделителей
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<Refund Success="True" OrderId="" NewAmount="0" />
Пример ответа на успешный запрос
[Success] => 1
[OrderId] =>  
[NewAmount] => 0

GetState

Запрос используется для получения информации о текущем состоянии платежа. Рекомендуется также использовать его в случае не получения ответа от шлюза Payture, при проведении других запросов по платежу. Выполняется как при одностадийной, так и при двухстадийной схеме проведения платежа. Результатом обработки запроса является получение актуального статуса платежа.
https://{Host}.payture.com/api/GetState

Запрос

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа Строка
OrderId Идентификатор платежа в системе ТСП Строка (максимум 50 символов)
curl https://sandbox.payture.com/api/GetState \
-d Key=Merchant \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureAPI::GetState() \

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

Ответ

XML строка с элементом GetState
Название Описание Значения
Success Флаг успешности операции «True» — операция успешна «False» — операция не успешна
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
Amount Сумма платежа. Передается, если «Success=True» Цифры, не содержащие десятичных или других разделителей
State Состояние платежа. Передается, если «Success=true» см. статусы транзакций
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<GetState Success="True" MerchantContract="Merchant" OrderId="" Amount="" State="Voided" />
Пример ответа на успешный запрос
[Success] => 1 
[MerchantContract] => Merchant 
[OrderId] =>  
[Amount] =>  
[State] => Charged

Payture InPay

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

Возможности

Интерфейс Payture InPay позволяет выполнять стандартный набор операций электронной коммерции с вводом данных банковских карт на странице шлюза Payture:
Init Инициализация сессии двухстадийного платежа
Pay Запрос для быстрого выполнения одностадийного платежа или для блокировки средств на карте при двухстадийном платеже
Charge Списание средств, заблокированных на карте покупателя
Unblock Отмена блокировки средств или изменение суммы, заблокированной на карте покупателя
Refund Полный или частичный возврат средств на карту покупателя
PayStatus Уточнение текущего состояния платежа
Для удобства интеграции с платежным шлюзом, вы можете скачать нашу PHP библиотеку

Внимание! для корректной работы в вашей системе должно быть установлено расширение cUrl

Подключение библиотеки
require 'Payture.php';
require 'PaytureConfiguration.php';
require 'PaytureInPay.php';
Инициализация
Результаты обработки запросов выдаются платежным шлюзом синхронно в формате XML, кодировка UTF8.
PaytureConfiguration::setMerchantKey("Merchant");
PaytureConfiguration::setEnvironment(PaytureConfiguration::ENV_DEVELOPMENT);

где в параметре метода «setMerchantKey» – должен передаваться идентификатор Продавца, «setEnvironment» – указатель на тип среды - тестовая (ENV_DEVELOPMENT) или боевая (ENV_PRODUCTION).

Скачать

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

Payture Inpay Pay/Block
Взаимодействие решения ТСП с платежным шлюзом Payture строится по схеме запрос-ответ.
Запрос
Запрос c необходимыми параметрами формируется на стороне ТСП и передается методом POST по протоколу HTTP
https://{Host}.payture.com/apim/{Command}

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

Ответ
Результаты обработки запросов выдаются платежным шлюзом синхронно в формате XML, кодировка UTF8.
<{Command} Key="Value" Key2="Value2" />

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

Для повышения безопасности платежей в этом интерфейсе ТСП может использовать механизм аутентификации 3-D Secure. Включение механизма осуществляется на стороне шлюза при наличии письменной заявки ТСП после предварительной интеграции поддержки 3-D Secure. Обратите внимание: после включения аутентификации 3-D Secure формат операций Charge/Pay незначительно изменяется, как описано в разделе 3-D Secure. Внимание! Поскольку при использовании Payture InPay данные платежной карты покупателя вводятся не на веб-странице продавца, а на странице защищенного шлюза Payture, к ТСП не выдвигается требований по соответствию стандарту безопасности PCI DSS.

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

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

Init

Запрос инициализации платежа. Выполняется обязательно перед операцией списания средств или блокировки средств на карте покупателя при двухстадийном платеже. Результатом исполнения запроса является подготовка к перенаправлению пользователя на страницу платежного шлюза Payture для ввода данных банковской карты.
https://{Host}.payture.com/apim/Init

Запрос

Название Описание Формат
Key Идентификатор ТСП. Выдается с параметрами тестового боевого доступа Строка
Data Параметры платежа Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
curl https://sandbox.payture.com/apim/Init \
-d Key=Merchant \
--data-urlencode "Data= \
SessionType=Pay; \
OrderId=; \
Amount=; \
Product=ticket; \
Description=MyTestTransaction \
IP=; \
Url=http://payture.com/result?orderid={orderid}&result={success}" \
Скопировать код Получить ссылку

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

PaytureInPay::Init(array (
    "SessionType" => "Pay",
    "OrderId" => ,
    "Amount" => ,
    "IP" => $_SERVER["REMOTE_ADDR"]
))

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

Минимальный состав ключей параметра Data
Ключ Описание Формат
SessionType Тип сессии. Определяет количество стадий платежа «Pay» – одностадийный платеж «Block» – двухстадийный платеж
OrderId Уникальный идентификатор платежа в системе ТСП Строка (максимум 50 символов)
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
IP IP адрес покупателя Строка вида xxx.xxx.xxx.xxx
Url Адрес возврата пользователя после совершения платежа Полный URL для возврата пользователя
TemplateTag Используемый шаблон страницы оплаты При отсутствии используется шаблон «по умолчанию» Строка (максимум 50 символов)
Language Дополнительный параметр, для определения шаблона страницы. Используется для определения языка страницы Строка (максимум 50 символов)
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
Кроме необходимых ключей ТСП может передать произвольное количество дополнительных ключей, значения которых будут выведены покупателю на странице оплаты. Например, параметры Total (сумма заказа), Product (оплачиваемая покупка/услуга) переданные в запросе инициализации сессии, будут выведены в неизменном виде в соответствующих полях {Total} и {Product} шаблона страницы оплаты.

SessionType=Pay; OrderId=; Amount=; IP= ; Total=123; Product=ticket; TemplateTag=mobile; Url=http://payture.com/result?orderid={orderid}&result={success}

Ответ

XML строка с элементом Init
Название Описание Значения
Success Флаг успешности операции «True» — операция успешна «False» — операция не успешна
OrderId Идентификатор платежа в системе ТСП Соответствует переданному в запросе
Amount Сумма платежа. Передается, если «Success=True» Соответствует переданному в запросе
SessionId Идентификатор платежа в системе Payture. Передается, если «Success=True» Строка (максимум 50 символов)
ErrCode Код ошибки. Передается, если «Success=False» См. коды ошибок
Пример ответа на успешный запрос
<Init Success="true" OrderId="" Amount="" SessionId="" />
Пример ответа на успешный запрос
[Success] => 1
[OrderId] =>  
[Amount] =>  
[SessionId] => 

Pay

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

Выполняется после успешной команды Init.

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

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

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

Запрос

НазваниеОписаниеФормат
SessionIdИдентификатор платежа. Содержится в ответе на запрос InitСтрока
curl https://sandbox.payture.com/apim/Pay \
-d SessionId=
 \
Скопировать код Получить ссылку

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

PaytureInPay::generatePayLink()

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

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

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

Адрес возврата Покупателя (URL страницы) – указывается Продавцом заранее, в виде статичного Url, либо задается при запросе Init в виде дополнительного параметра url (в этом случае при каждом запросе Init, в составе параметра Data нужно будет указывать дополнительный параметр url).

Внимание! Допускается указание параметра Success в URL перенаправления Пользователя, отмечающего успешность завершения транзакции. Однако при этом параметр Success уязвим к манипуляциям мошенников и не может служить гарантией успешного платежа. Для получения фактических результатов транзакции следует использовать данные, полученные в рамках Подтверждения платежа (см. методы нотификаций) или запроса статуса транзакции.

http://server.com/result?orderid={OrderId}&result={Success}

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

Charge

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

Выполняется в рамках двухстадийной схемы проведения платежа, после успешной команды Init с ключом «SessionType=Block».

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

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

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

Запрос

НазваниеОписаниеФормат
KeyИдентификатор ТСП. Выдается с параметрами тестового/боевого доступаСтрока
PasswordПароль ТСП для проведения операций через API. Выдается ТСП с параметрами тестового/боевого доступаСтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе ТСПСтрока (максимум 50 символов)
AmountСумма списания в копейках. Если параметр не передан, то завершение осуществляется на всю сумму платежаЦифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/apim/Charge \
-d Key=Merchant \
-d Password= \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureInPay::Charge(, );

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

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе ТСПСоответствует переданному в запросе
AmountСписанная сумма.
Передается, если «Success=True»
Цифры, не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Charge Success="True" OrderId="" Amount="" />
Пример ответа на неуспешный запрос
<Charge Success="False" OrderId="" Amount="0" ErrCode="ILLEGAL_ORDER_STATE" />
Пример ответа на успешный запрос
[OrderId] => 
[Success] => 1
[Amount] => 
Пример ответа на неуспешный запрос
[OrderId] => 
[Success] => 1 
[ErrCode] => ILLEGAL_ORDER_STATE

Unblock

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

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

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

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

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

Запрос

НазваниеОписаниеФормат
KeyИдентификатор ТСП. Выдается с параметрами тестового/боевого доступаСтрока
PasswordПароль Продавца для проведения операций через API. Выдается ТСП с параметрами тестового/боевого доступаСтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе ТСПСтрока (максимум 50 символов)
AmountПолная сумма разблокировки в копейкахЦифры, не содержащие десятичных или других разделителей
curl https://sandbox.payture.com/apim/Unblock \
-d Key=Merchant \
-d Password= \
-d OrderId= \
-d Amount= \
Скопировать код Получить ссылку

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

PaytureInPay::Unblock(, , );

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

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе ТСПСоответствует переданному в запросе
NewAmountОстаток заблокированной суммы в копейках.
Передается, если «Success=True»
Цифры, не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Unblock Success="True" OrderId="" NewAmount="0" />
Пример ответа на неуспешный запрос
<Unblock Success="False" OrderId="" ErrCode="ILLEGAL_ORDER_STATE" />
Пример ответа на успешный запрос
[OrderId] => 
[Success] => 1
[NewAmount] => 0
Пример ответа на неуспешный запрос
[OrderId] => 
[Success] => 1 
[ErrCode] => ILLEGAL_ORDER_STATE

Refund

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

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

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

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

Запрос

НазваниеОписаниеФормат
KeyИдентификатор ТСП. Выдается с параметрами тестового/боевого доступаСтрока
PasswordПароль ТСП для проведения операций через API. Выдается ТСП с параметрами тестового/боевого доступаСтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе ТСПСтрока (максимум 50 символов)
AmountСумма, которую следует вернуть в копейкахЦифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/apim/Refund \
-d Key=Merchant \
-d Password= \
-d OrderId= \
-d Amount= \
Скопировать код Получить ссылку

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

PaytureInPay::Refund(, , );

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

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе ТСПСоответствует переданному в запросе
NewAmountОстаток списанной суммы в копейках.
Передается, если «Success=True»
Цифры, не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Refund Success="True" OrderId="" NewAmount="2000" />
Пример ответа на неуспешный запрос
<Refund Success="False" OrderId="" ErrCode="AMOUNT_ERROR" />
Пример ответа на успешный запрос
[OrderId] => 
[Success] => 1
[NewAmount] => 0
Пример ответа на неуспешный запрос
[OrderId] => 
[Success] => 1 
[ErrCode] => AMOUNT_ERROR

PayStatus

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

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

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

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

Запрос

НазваниеОписаниеФормат
KeyИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
curl https://sandbox.payture.com/apim/PayStatus \
-d Key=Merchant \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureInPay::PayStatus()

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

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе ПродавцаСоответствует переданному в запросе
AmountСумма платежа.
Передается, если «Success=True»
Цифры, не содержащие десятичных или других разделителей
StateСостояние платежа.
Передается, если «Success=True»
см. статусы транзакций
ErrCodeКод ошибки. Передается, если «Success=False»см. коды ошибок
Пример ответа на успешный запрос
<PayStatus Success="True" OrderId="" Amount="2000" State="Charged" />
Пример ответа на успешный запрос
[OrderId] => 
[Success] => 1
[Amount] => 
[State] => "Charge"

Payture eWallet

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

Возможности

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

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

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

Внимание! для корректной работы в вашей системе должно быть установлено расширение cUrl

Подключение библиотеки
require 'Payture.php';
require 'PaytureConfiguration.php';
require 'PaytureEWallet.php';
require 'PaytureEWalletCard.php';
require 'PaytureEWalletConfiguration.php';
require 'PaytureEWalletTemplate.php';
require 'PaytureEWalletUser.php';
Инициализация
PaytureEWalletConfiguration::setMerchantKey("Merchant");
PaytureEWalletConfiguration::setEnvironment(PaytureConfiguration::ENV_DEVELOPMENT);
PaytureEWalletConfiguration::setVWUserLogin("user@ya.ru");
PaytureEWalletConfiguration::setVWUserPassword("123");

где в параметре метода «setMerchantKey» – должен передаваться идентификатор Продавца,
«setEnvironment» – указатель на тип среды - тестовая (ENV_DEVELOPMENT) или боевая (ENV_PRODUCTION),
«setVWUserLogin» – имя пользователя,
«setVWUserPassword» – пароль пользователя

Скачать

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

Для повышения безопасности платежей в этом интерфейсе Продавец может использовать механизм аутентификации 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

Register

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

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры клиентаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Register \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
PhoneNumber=79156783333;" \
Скопировать код Получить ссылку

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

PaytureEWallet::UserRegister();

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Пользователя (пароль Пользователя)Строка (максимум 50 символов)
PhoneNumberТелефон ПользователяНомер телефона в международном формате (только цифры, без пробелов): [код страны][код оператора][номер абонента]

VWUserLgn=;
VWUserPsw=;
PhoneNumber=79156783333

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСоответствует переданному в запросе
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Register Success="True" VWUserLgn="" />
Пример ответа на успешный запрос
[Success] => 1 
[VWUserLgn] => 

Update

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры клиентаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Update \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
PhoneNumber=79266786457;" \
Скопировать код Получить ссылку

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

PaytureEWallet::UserUpdate( array (
        "PhoneNumber" => "8-999-99-99"
));

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Пользователя (пароль Пользователя)Строка (максимум 50 символов)
PhoneNumberТелефон ПользователяНомер телефона в международном формате (только цифры, без пробелов): [код страны][код оператора][номер абонента]
EmailE-mail ПользователяСтрока (максимум 50 символов)

VWUserLgn=;
VWUserPsw=;
PhoneNumber=79266786457

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе PaytureСоответствует переданному в запросе
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Update Success="True" VWUserLgn="" />
Пример ответа на успешный запрос
[Success] => 1 
[VWUserLgn] => 

Delete

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры клиентаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Delete \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
Password=;" \
Скопировать код Получить ссылку

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

PaytureEWallet::UserDelete();

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
PasswordПароль Продавца для проведения операций через API. Выдается Продавцу с параметрами тестового/боевого доступаСтрока (максимум 50 символов)

VWUserLgn=;
Password=

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе PaytureСоответствует переданному в запросе
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Delete Success="True" VWUserLgn="" />
Пример ответа на успешный запрос
[Success] => 1 
[VWUserLgn] => 

Check

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры клиентаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Check \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
Скопировать код Получить ссылку

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Пользователя (пароль Пользователя)Строка (максимум 50 символов)

VWUserLgn=;
VWUserPsw=;

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСоответствует переданному в запросе
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Check Success="True" VWUserLgn="" />
Пример ответа на успешный запрос
[Success] => 1 
[VWUserLgn] => 

Карты

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

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

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

Add

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

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

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

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

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

Payture eWallet Add Card
https://{Host}.payture.com/vwapi/Add

На стороне Продавца

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры картыUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Add \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardNumber=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
PhoneNumber=79001234567;" \
Скопировать код Получить ссылку

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

PaytureEWallet::CardAdd([
    "CardNumber" => ,
    "EMonth" => ,
    "EYear" => ,
    "CardHolder" => ,
    "SecureCode" => ,
]);

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Покупателя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)Строка (максимум 50 символов)
CardNumberНомер картыЦифры без пробелов
EMonthМесяц истечения срока действия карты2 цифры с лидирующим нулём
EYearГод истечения срока действия карты2 цифры (последние цифры года)
CardHolderФамилия и имя держателя картыСтрока (максимум 30 символов, латинские буквы или пробел)
SecureCodeCVC2/CVV2Цифры
PhoneNumberТелефон ПокупателяНомер телефона в международном формате (только цифры, без пробелов): [код страны][код оператора][номер абонента]

VWUserLgn=;
VWUserPsw=;
CardNumber=;
EMonth=;
EYear=;
CardHolder=;
SecureCode=;
PhoneNumber=79001234567

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Покупателя в системе PaytureСоответствует переданному в запросе
CardNameНомер карты (усеченный, последние 4 цифры в явном виде) Строка (максимум 32 символа)
CardIdИдентификатор карты в системе PaytureСтрока (максимум 32 символа)
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Add VWUserLgn="" Success="True" CardName="" CardId="" />
Пример ответа на успешный запрос
[VWUserLgn] => 
[Success] => 1
[CardName] => 
[CardId] => 

На стороне Payture

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

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

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

Запрос

НазваниеОписаниеФормат
SessionIdИдентификатор сессии, возвращаемый в ответ на команду InitСтрока
curl https://sandbox.payture.com/vwapi/Add \
-d SessionId= \
Скопировать код Получить ссылку

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

PaytureEWalletTemplate::generateCardAddLink()

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

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

После завершения попытки регистрации карты Покупатель будет возвращен на страницу Продавца. Адрес возврата (URL страницы) указывается Продавцом заранее при подключении.

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

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

http://server.com/result/order?Id={MerchantOrderId}

Activate

Запрос используется для активации карты, ранее зарегистрированной в системе Payture и ожидающей активации. Во время выполнения запроса Пользователю необходимо указать сумму, заблокированную на карте в ходе обработки запроса. В случае корректного ввода заблокированной суммы Пользователем, карта будет активирована и заблокированные денежные средства будут разблокированы. В случае некорректного ввода денежные средства разблокируются по отдельному запросу Пользователя.
https://{Host}.payture.com/vwapi/Activate

Запрос

Название Описание Формат
VWID Идентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступа Строка
DATA Параметры карты Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Activate \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=; \
Amount=;" \
Скопировать код Получить ссылку

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

PaytureEWallet::CardActivate(['CardId' => , "Amount" => ])

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

Минимальный состав ключей параметра DATA
Ключ Описание Формат
VWUserLgn Идентификатор Пользователя в системе Payture. Рекомендуется использовать e-mail Строка (максимум 50 символов)
VWUserPsw Дополнительный параметр доступа к приватной информации Пользователя Строка (максимум 50 символов)
CardId Идентификатор карты в системе Payture Строка (максимум 50 символов)
Amount Cумма платежа в копейках цифры, не содержащие десятичных или других разделителей

VWUserLgn=; VWUserPsw=; CardId=; Amount=

Ответ

XML строка с элементом Activate
Название Описание Значения
Success Флаг успешности операции «True» — операция успешна «False» — операция не успешна
VWUserLgn Идентификатор Пользователя в системе Payture Соответствует переданному в запросе
CardId Идентификатор карты в системе Payture Соответствует переданному в запросе
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
Пример ответа на успешный запрос
<Activate Success="True" VWUserLgn="" CardId="" />
Пример ответа на успешный запрос
[Success] => 1
[VWUserLgn] =>  
[CardId] => 

Remove

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры картыUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Remove \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=;" \
Скопировать код Получить ссылку

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

PaytureEWallet::CardRemove()

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации ПользователяСтрока (максимум 50 символов)
CardIdИдентификатор карты в системе PaytureСтрока (максимум 32 символов)

VWUserLgn=;
VWUserPsw=;
CardId=

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе PaytureСоответствует переданному в запросе
CardIdИдентификатор карты в системе PaytureСоответствует переданному в запросе
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Remove Success="True" VWUserLgn="" CardId="" />
Пример ответа на успешный запрос
[Success] => 1 
[VWUserLgn] => 
[CardId] => 

GetList

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры картыUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/GetList \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=;" \
Скопировать код Получить ссылку

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

PaytureEWallet::CardGetList()

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации ПользователяСтрока (максимум 50 символов)

VWUserLgn=;
VWUserPsw=

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе PaytureСоответствует переданному в запросе
ItemПередается, если «Success=True»Cостав элемента Item ниже
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Атрибуты элемента Item
НазваниеОписаниеЗначения
CardNameМаска карты (последние 4 цифры в явном виде) 123456хххххх1234
CardIdИдентификатор карты в системе PaytureCтрока (максимум 32 символа)
CardHolderФамилия и имя держателя картыCтрока (максимум 30 символа, латинские буквы или пробел)
StatusТекущий статус карты«IsActive» – карта активирована (возможно выполнение запроса проведения платежа, удаления карты)
«NotActive» – карта не активирована (возможно выполнение запроса активации карты, удаления карты)
NoCVVВозможность оплаты по карте без введения CVV/CVC2«True» — оплата возможна,
«False» — оплата невозможна
ExpiredПроверка срока действия привязанной карты«True» — карта просрочена,
«False» — карта не просрочена
Пример ответа на успешный запрос
<GetList Success="True" VWUserLgn="Tester@payture.com">
  <Item CardName="411111xxxxxx1112" CardId="e5dfa016-27e0-45bb-8167-44299642b529" CardHolder="Tester" Status="NotActive" NoCVV="false" Expired="false" />
  <Item CardName="411111xxxxxx1111" CardId="001f2def-64e9-4cef-ae02-aa2bd9508a8b" CardHolder="User" Status="IsActive" NoCVV="true" Expired="false">
    <Param Key="LastSuccess" Value="2014.06.24 12:42:14" />
    <Param Key="LastLessSecureCode:VWMerchantTest" Value="True" />
  </Item>
</GetList>

Init

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры платежаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Init \
-d VWID=Merchant \
--data-urlencode "DATA= \
SessionType=Add; \
VWUserLgn=; \
VWUserPsw=; \
PhoneNumber=79001234567; \
Product=ticket; \
TemplateTag=mobile; \
IP=" \
Скопировать код Получить ссылку

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

PaytureEWallet::Init(array (
    "SessionType" => "Pay",
    "OrderId" => ,
    "Amount" => ,
    "IP" => $_SERVER["REMOTE_ADDR"]
))

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
SessionTypeТип сессии. Определяет вид операции.«Add» – регистрация карты
«Pay» – одностадийный платеж
«Block» – двухстадийный платеж
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Пользователя (пароль Пользователя)Строка (максимум 50 символов)
IPIP адрес ПользователяСтрока вида xxx.xxx.xxx.xxx
PhoneNumberТелефон ПользователяНомер телефона в международном формате (только цифры, без пробелов): [код страны][код оператора][номер абонента]
CardIdИдентификатор карты в системе Продавца.
Присутствует, если «SessionType=Pay»(Block)
Строка (максимум 50 символов)
OrderIdИдентификатор платежа в системе Продавца.
Присутствует, если «SessionType=Pay»(Block)
Строка (максимум 50 символов)
AmountСумма платежа в копейках.
Присутствует, если «SessionType=Pay»(Block)
Цифры, не содержащие десятичных или других разделителей
TemplateTagИспользуемый шаблон страницы оплаты.
При отсутствии используется шаблон «по умолчанию»
Строка (максимум 50 символов)
LanguageДополнительный параметр, для определения шаблона страницы. Используется для определения языка страницыСтрока (максимум 50 символов)
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

SessionType=Add;
VWUserLgn=;
VWUserPsw=;
PhoneNumber=79001234567;
IP=

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе Продавца.
Передается, если «Success=True» и «SessionType=Pay»
Соответствует переданному в запросе
AmountСумма платежа в копейках.
Передается, если «Success=True»
Соответствует переданному в запросе или равен «0» если «SessionType=Add» в запросе
SessionIdИдентификатор платежа в системе Payture.
Передается, если «Success=True»
Строка (максимум 50 символов)
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Init Success="True" Amount="0" SessionId="" SessionType="Add" />
Пример ответа на успешный запрос
[Success] => 1
[OrderId] =>  
[Amount] =>  
[SessionId] => 

Pay

Запрос служит для быстрого (одностадийного) списания средств с платежной карты покупателя. Процедура списания средств включает несколько сценариев для использования в различных ситуациях. Данные платежной карты покупателя могут вводиться как на веб-странице продавца, так и на странице защищенного шлюза Payture. Оплата может производиться как с зарегистрированной в системе Payture карты, так и с незарегистрированной. В целях повышения безопасности платежа ТСП может потребовать дополнительное подтверждение личности держателя карты. Для этого перед запросом платежа на мобильный телефон покупателя, указанный при регистрации, направляется случайный код из 6 цифр. При запросе платежа покупатель должен ввести полученный код; если код не указан или указан неверно, платеж автоматически отменяется.

На стороне Продавца

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

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

Payture eWallet Pay Merchant
https://{Host}.payture.com/vwapi/Pay

Зарегистрированная карта

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры платежаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Pay \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=; \ 
OrderId=; \
Amount=; \
SecureCode=; \
IP=; \
CustomField1=Value1; \
CustomFiledN=ValueN;" \
Скопировать код Получить ссылку

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

PaytureEWallet::Pay(array (
        'CardId' => ,
        'OrderId' => ,
        'Amount' => ,
        'SecureCode' => ,
        'IP' => $_SERVER["REMOTE_ADDR"]
    ))

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Пользователя (пароль Пользователя)Строка (максимум 50 символов)
CardIdИдентификатор карты в системе PaytureЦифры без пробелов
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
AmountСумма платежа в копейкахЦифры, не содержащие десятичных или других разделителей
SecureCodeCVC2/CVV23 цифры
IPIP адрес ПользователяСтрока вида xxx.xxx.xxx.xxx
ConfirmCodeКод подтверждения, полученный по SMS. Обязательно указывается, если был запрос кода подтверждения для данного OrderId6 цифр
CustomFieldsДополнительные поля транзакцииПары ключей и их значений, разделённые символом «;». Ключи и значения разделены символом «=» (равно)
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

VWUserLgn=;
VWUserPsw=;
CardId=;
OrderId=;
Amount=;
SecureCode=;
IP=;
CustomField1=Value1;
CustomFiledN=ValueN;

Ответ

XML строка с нодой Pay

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Пользователя в системе PaytureСоответствует переданному в запросе
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
AmountСумма платежа в копейкахЦифры, не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример для успешной операции
<Pay VWUserLgn="" OrderId="" Success="True" Amount="" />
Пример для неуспешной операции
<Pay VWUserLgn="" OrderId="" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Пример ответа на успешный запрос
[OrderId] => 
[Key] => Merchant
[Success] => 1
[Amount] => 
Пример ответа на неуспешный запрос
[OrderId] => 
[Key] => Merchant 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

Незарегистрированная карта

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры платежаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённых символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно)
curl https://sandbox.payture.com/vwapi/Pay \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=FreePay; \
OrderId=; \
Amount=; \
CardNumber=; \
CardHolder=; \
EMonth=; \
EYear=; \
SecureCode=; \
IP=; \
CustomField1=Value1; \
CustomFiledN=ValueN;" \
Скопировать код Получить ссылку

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

PaytureEWallet::Pay(array (
        'CardId' => 'FreePay',
        'OrderId' => ,
        'Amount' => ,
        "CardNumber" => ,
        "EMonth" => ,
        "EYear" => ,
        "CardHolder" => ,
        'SecureCode' => ,
        'IP' => $_SERVER["REMOTE_ADDR"]
    ))

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Пользователя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Пользователя (пароль Пользователя)Строка (максимум 50 символов)
CardIdИдентификатор карты в системе PaytureCardId=FreePay
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
AmountСумма платежа в копейкахЦифры, не содержащие десятичных или других разделителей
CardNumberНомер карты Visa или MasterCardЦифры без пробелов
CardHolderФамилия и имя держателя картыСтрока (максимум 30 символов [a-Z])
EMonthМесяц истечения срока действия карты2 цифры с лидирующим нулём
EYearГод истечения срока действия карты2 цифры (последние цифры года)
SecureCodeCVC2/CVV23 цифры
IPIP адрес ПользователяСтрока вида xxx.xxx.xxx.xxx
ConfirmCodeКод подтверждения, полученный по SMS.
Обязательно указывается, если был запрос кода подтверждения для данного OrderId
6 цифр
CustomFieldsДополнительные поля транзакцииПары ключей и их значений, разделённые символом «;». Ключи и значения разделены символом «=» (равно)
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

VWUserLgn=;
VWUserPsw=;
CardId=FreePay;
OrderId=;
Amount=;
CardNumber=;
CardHolder=;
EMonth=;
EYear=;
SecureCode=;
IP=;
CustomField1=Value1;
CustomFiledN=ValueN

Ответ

XML строка с нодой Pay

НазваниеОписаниеЗначения
VWUserLgnИдентификатор Пользователя в системе PaytureСоответствует переданному в запросе
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
AmountСумма платежа в копейкахЦифры, не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример для успешной операции
<Pay VWUserLgn="" OrderId="" Success="True" Amount="1300" />
Пример для неуспешной операции
<Pay VWUserLgn="" OrderId="" Success="False" ErrCode="DUPLICATE_ORDER_ID" />
Пример ответа на успешный запрос
[OrderId] => 
[Success] => 1
[Amount] => 
Пример ответа на неуспешный запрос
[OrderId] => 
[Success] => 1 
[ErrCode] => DUPLICATE_ORDER_ID

На стороне Payture

Запрос на выполнение платежа на стороне платежного шлюза Payture.

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

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

Payture eWallet Pay - Payture side
https://{Host}.payture.com/vwapi/Pay

Запрос

НазваниеОписаниеФормат
SessionIdидентификатор платежа. Содержится в ответе на запрос InitСтрока
curl https://sandbox.payture.com/vwapi/Pay \
-d SessionId= \
Скопировать код Получить ссылку

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

PaytureEWalletTemplate::generatePayLink()

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

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

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

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

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

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

http://server.com/result?orderid={MerchantOrderId}

SendCode

Запрос SendCode выполняется перед командой проведения платежа для дополнительной аутентификации держателя карты (Покупателя). Результатом запроса является генерация кода подтверждения. Таким образом, при проведении платежа Покупателю потребуется указать только CVC2/CVV2 и код подтверждения.

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

Код подтверждения формируется для коллекции параметров VWUserLgn, CardId (опционально), OrderId(опционально). Выполнение запроса с повторяющимися значениями параметров ведет к отправке Покупателю нового кода.

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры платежаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/SendCode \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
VWUserLgn=; \
VWUserPsw=; \
CardId=; \ 
OrderId=; \
Amount=;" \
Скопировать код Получить ссылку

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
VWUserLgnИдентификатор Покупателя в системе Payture. Рекомендуется использовать e-mailСтрока (максимум 50 символов)
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (Пароль Покупателя)Строка (максимум 50 символов)
CardIdИдентификатор карты в системе PaytureСтрока (максимум 32 символов)
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
AmountСумма платежа в копейкахЦифры, не содержащие десятичных или других разделителей

VWUserLgn=;
VWUserPsw=;
CardId=;
OrderId=;
Amount=

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
VWUserLgnИдентификатор Покупателя в системе PaytureСоответствует переданному в запросе
AmountСумма платежа в копейкахСоответствует переданному в запросе или равен «0» если параметр не передавался в запросе
OrderIdИдентификатор платежа в системе Продавца.
Присутствует если передавался в запросе
Соответствует переданному в запросе
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<SendCode VWUserLgn="" OrderId="" Success="True" Amount="" />

Charge

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

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

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор ТСП. Выдается с параметрами тестового/боевого доступаСтрока
PasswordПароль ТСП для проведения операций через API. Выдается ТСП с параметрами тестового/боевого доступаСтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе ТСПСтрока (максимум 50 символов)
AmountСумма платежа в копейкахЦифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка
curl https://sandbox.payture.com/vwapi/Charge \
-d VWID=Merchant \
-d Password= \
-d OrderId= \
Скопировать код Получить ссылку

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

PaytureEWallet::Charge() \

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

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе ТСП.Соответствует переданному в запросе
AmountСписанная сумма.
Передается, если «Success=True»
Целое число без делителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Charge Success="True" OrderId="" Amount="" />
Пример ответа на неуспешный запрос
<Charge Success="False" OrderId="" Amount="0" ErrCode="ILLEGAL_ORDER_STATE" />
Пример ответа на успешный запрос
[Success] => 1
[OrderId] =>  
[Amount] => 

Unblock

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

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

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

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
PasswordПароль Продавца для проведения операций через API. Выдается Продавцу с параметрами тестового/боевого доступаСтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
AmountПолная сумма разблокировки в копейкахЦифры, не содержащие десятичных или других разделителей
curl https://sandbox.payture.com/vwapi/Unblock \
-d VWID=Merchant \
-d Password= \
-d OrderId= \
-d Amount= \
Скопировать код Получить ссылку

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

PaytureEWallet::Charge(, ) \

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

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе Продавца.Соответствует переданному в запросе
NewAmountОстаток заблокированной суммы в копейках.
Передается, если «Success=True»
Цифры не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Unblock Success="True" OrderId="" NewAmount="0" />
Пример ответа на неуспешный запрос
<Unblock Success="False" OrderId="" ErrCode="ILLEGAL_ORDER_STATE" />
Пример ответа на успешный запрос
[Success] => 1
[OrderId] =>  
[NewAmount] => 

Refund

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

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

Основанием для возврата средств, как правило, является отказ покупателя от купленного товара/услуги, либо неоказание услуги ТСП.

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

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор ТСП. Выдается с параметрами тестового/боевого доступаСтрока
DATAПараметры платежаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/Refund \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
OrderId=; \
Password=123; \
Amount=;" \
Скопировать код Получить ссылку

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

PaytureEWallet::Refund(array ("Password" => 123, "OrderId" => , "Amount" => )) \

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
PasswordПароль ТСП для проведения операций через API. Выдается с параметрами тестового/боевого доступаСтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе ТСПСтрока (максимум 50 символов)
AmountСумма возврата в копейкахЦифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

OrderId=;
Amount=;
Password=123

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
OrderIdИдентификатор платежа в системе ТСП.Соответствует переданному в запросе
NewAmountОстаток списанной ранее суммы после проведения возврата в копейках.
Передается, если «Success=True»
Цифры не содержащие десятичных или других разделителей
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<Refund Success="true" OrderId="" NewAmount="7800" />
Пример ответа на успешный запрос
[Success] => 1 
[OrderId] => 
[NewAmount] => 0

PayStatus

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

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

Запрос

НазваниеОписаниеФормат
VWIDИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
DATAПараметры платежаUrl Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/vwapi/PayStatus \
-d VWID=VWMerchant \
--data-urlencode "DATA= \
OrderId=;" \
Скопировать код Получить ссылку

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

PaytureEWallet::PayStatus()

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

Минимальный состав ключей параметра DATA
КлючОписаниеФормат
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)

OrderId=

Ответ

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

НазваниеОписаниеЗначения
SuccessФлаг успешности операции«True» — операция успешна
«False» — операция не успешна
StatusТекущий статус платежа.
Передается, если «Success=True».
см. Таблицу возможных значений
VWUserLgnИдентификатор Пользователя в системе Payture.
Передается, если «Success=True»
Cтрока (максимум 50 символов)
OrderIdИдентификатор платежа в системе Продавца.
Передается, если «Success=True».
Соответствует переданному в запросе
AmountСумма платежа в копейках.
Передается, если «Success=True»
Цифры, не содержащие десятичных или других разделителей
CardIdИдентификатор карты в системе Payture.
Передается, если «Success=True».
Cтрока (максимум 50 символов)
ErrCodeКод ошибки.
Передается, если «Success=False»
см. коды ошибок
Пример ответа на успешный запрос
<PayStatus Success="true" Status="Charged" VWUserLgn="" OrderId="" Amount="" CardId="" />
Пример ответа на успешный запрос
[OrderId] => 
[VWUserLgn] => 
[Success] => 1
[Amount] => 
[State] => "Charge"

Apple Pay API

Использование запроса ApplePay

http://{HOST}.payture.com/api/ApplePay

Программный интерфейс системы онлайн-платежей Apple Pay, позволяющая клиентам оплачивать покупки в одно касание через устройства на платформе iOS, предоставляет ТСП дополнительную возможность приема платежей по дебетовым и кредитным картам на сайте. в основе Apple Pay лежат безопасность и конфиденциальность. При добавлении кредитной или дебетовой карты в Apple Wallet. Сам номер карты не хранится ни на устройстве, ни на серверах Apple. Вместо этого присваивается уникальный номер учётной записи устройства, который шифруется и безопасно хранится в чипе «Безопасный Элемент» устройства. Каждая транзакция авторизуется благодаря уникальному одноразовому секретному коду, который генерируется динамически.


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

1. Создание мобильного приложения с кнопкой оплаты AppleTouch. Внедрение кода Mobile SDK.

2. Интеграцию с нашим платежным шлюзом с помощью api/ApplePay.

3. Создание сертификата Certificate, ключа Merchant Key и пароля для ключа Password.

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


Возможности

Интерфейс ApplePay API позволяет выполнять стандартный набор операций электронной коммерции при условии подтверждения данных банковских карты при помощи технологий TouchID или двойном нажатии кнопки на AppleWatch.

ApplePayБыстрое проведение платежа одной командой
AppleBlockБлокировка средств на карте пользователя
ChargeЗавершение платежа со списанием средств с карты пользователя
UnblockИзменение суммы средств, заблокированных на карте пользователя
RefundВозврат средств (полный или частичный) на карту пользователя

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

ApplePay

Запрос Pay используется для быстрого проведения клиентского платежа одним действием. Платеж в этом случае выполняется по одностадийной схеме. Результатом обработки запроса является списание денежных средств с карты Покупателя, привязанной в приложении Apple Wallet. Списанные средства могут быть (полностью или частично) возвращены на карту Покупателя при помощи команды Refund.
Пример запроса: http://sandbox.payture.com/api/ApplePay?Key=TestMerchant&Method=PAY &PayToken=abcdefg&OrderId=MyOrderId1234

curl https://sandbox.payture.com/api/ApplePay \
-d Key=Merchant \
-d Method=PAY \
-d PayToken=abcdefg \
-d OrderId= \
Получить ссылку

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

Запрос

Название Описание Формат
PayToken PaymentData из PayToken для данной транзакции строка
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа строка
Method ( PAY ) строка
OrderId Идентификатор платежа в системе ТСП. При отсутствии или пустом OrderId, он будет присвоен. строка
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

Ответ в формате XML

Название Описание Формат
Success Флаг успешности выполнения запроса True» — операция успешна
«False» — операция не успешна
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
OrderId Высланный ТСП или сгенерированный номер заказа строка

AppleBlock

Данный запрос позволяет блокировать денежные средства на карте Покупателя, привязанной в приложении Apple Wallet, для последующего списания. Выполняется в рамках двухстадийной схемы проведения платежа. Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock.
Пример запроса: http://sandbox.payture.com/api/ApplePay?Key=TestMerchant&Method=BLOCK &PayToken=abcdefg&OrderId=MyOrderId1234

curl https://sandbox.payture.com/api/ApplePay \
-d Key=Merchant \
-d Method=BLOCK \
-d PayToken=abcdefg \
-d OrderId= \
Получить ссылку

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

Запрос

Название Описание Формат
PayToken PaymentData из PayToken для данной транзакции строка
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа строка
Method ( BLOCK ) строка
OrderId Идентификатор платежа в системе ТСП. При отсутствии или пустом OrderId, он будет присвоен. строка
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

Ответ в формате XML

Название Описание Формат
Success Флаг успешности выполнения запроса True» — операция успешна
«False» — операция не успешна
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
OrderId Высланный ТСП или сгенерированный номер заказа строка

Пример интеграции

1) Запрос



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

	paymentToken = payment.token
	let url = NSURL( string: "https://secure.payture.com/api/ApplePay")
	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&Method=PAY").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)
			}
		}
	}   	
}

2) Ответ


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;
		}
	}
}

Android Pay API

Использование запроса Android Pay

http://{HOST}.payture.com/api/AndroidPay

Программный интерфейс системы онлайн-платежей Android Pay, позволяющая клиентам оплачивать покупки в одно касание через устройства на платформе Android версии KitKat 4.4 и выше, предоставляет ТСП дополнительную возможность приема платежей по дебетовым и кредитным картам на сайте.


Необходимые параметры

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


Возможности

Интерфейс Android Pay API позволяет выполнять стандартный набор операций электронной коммерции при условии подтверждения данных банковской карты через идентификацию отпечатка пальца или с помощью пароля.

PayБыстрое проведение платежа одной командой
BlockБлокировка средств на карте пользователя
ChargeЗавершение платежа со списанием средств с карты пользователя
UnblockИзменение суммы средств, заблокированных на карте пользователя
RefundВозврат средств (полный или частичный) на карту пользователя

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

Pay

Запрос Pay используется для быстрого проведения клиентского платежа одним действием. Платеж в этом случае выполняется по одностадийной схеме. Результатом обработки запроса является списание денежных средств с карты Покупателя, привязанной в кошельке Android Pay. Списанные средства могут быть (полностью или частично) возвращены на карту Покупателя при помощи команды Refund.
Пример запроса: http://sandbox3.payture.com/api/AndroidPay?Key=Merchant&Method=PAY&OrderId=2324nj-dfgdfg4546&Amount=101
curl https://sandbox3.payture.com/api/AndroidPay \
-d Key=Merchant \
-d Method=PAY \
-d PayToken=abcdefg \
-d Amount=101 \
-d OrderId= \
Получить ссылку

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

Запрос

Название Описание Формат
PayToken Token для данной транзакции строка Base64
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа строка
Method ( PAY ) строка
OrderId Идентификатор платежа в системе ТСП. При отсутствии или пустом OrderId, он будет присвоен. строка
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

Ответ в формате XML

Название Описание Формат
Success Флаг успешности выполнения запроса True» — операция успешна
«False» — операция не успешна
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
OrderId Сгенерированный номер заказа строка

Block

Данный запрос позволяет блокировать денежные средства на карте Покупателя, привязанной в кошельке Android Pay для последующего списания. Выполняется в рамках двухстадийной схемы проведения платежа. Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock.
Пример запроса: http://sandbox3.payture.com/api/AndroidPay?Key=TestMerchant&Method=BLOCK&OrderId=2324nj-dfgdfg4546&Amount=101
curl https://sandbox3.payture.com/api/AndroidPay \
-d Key=Merchant \
-d Method=BLOCK\
-d PayToken=abcdefg \
-d Amount=101 \
-d OrderId= \
Получить ссылку

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

Запрос

Название Описание Формат
PayToken Token для данной транзакции строка Base64
Key Идентификатор ТСП. Выдается с параметрами тестового/боевого доступа строка
Method ( BLOCK ) строка
OrderId Идентификатор платежа в системе ТСП. При отсутствии или пустом OrderId, он будет присвоен. строка
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
Cheque Информация о чеке в формате JSON, закодированная в Base64 Строка

Ответ в формате XML

Название Описание Формат
Success Флаг успешности выполнения запроса True» — операция успешна
«False» — операция не успешна
ErrCode Код ошибки. Передается, если «Success=False» см. коды ошибок
OrderId Сгенерированный номер заказа строка

Пример интеграции



//publickey, выдается технической поддержкой Payture, используется при создании MaskedWalletRequest

MaskedWalletRequest maskedWalletRequest = createMaskedWalletRequest( Constants.ITEMS_FOR_SALE[mItemId],getString(R.string.public_key));

//здесь ItemInfo - Ваш товар
public static MaskedWalletRequest createMaskedWalletRequest(ItemInfo itemInfo,String publicKey) {
	if (publicKey == null) {
		throw new IllegalArgumentException("Invalid public key");
	}
	PaymentMethodTokenizationParameters parameters =
			PaymentMethodTokenizationParameters.newBuilder()
					.setPaymentMethodTokenizationType(PaymentMethodTokenizationType.NETWORK_TOKEN)
					.addParameter("publicKey", publicKey)
					.build();
	return createMaskedWalletRequest(itemInfo, parameters);
}

private static MaskedWalletRequest createMaskedWalletRequest(ItemInfo itemInfo,PaymentMethodTokenizationParameters parameters) {
	MaskedWalletRequest request = MaskedWalletRequest.newBuilder()
			.setMerchantName(Constants.MERCHANT_NAME)
			.setPhoneNumberRequired(true)
			.setShippingAddressRequired(true)
			.setCurrencyCode(Constants.CURRENCY_CODE_RUB)
			.setEstimatedTotalPrice(itemInfo.Price)
			.setCart(Cart.newBuilder()
					.setCurrencyCode(Constants.CURRENCY_CODE_RUB)
					.setTotalPrice(itemInfo.Price)
					.setLineItems(lineItems)
					.build())
			.setPaymentMethodTokenizationParameters(parameters)
			.build();
	return request;
}
	
//PayToken берется из FullWallet,кодируется в base64 и отправляется на {HOST}.payture.com
public static final String EXTRA_MASKED_WALLET = "com.google.android.gms.wallet.EXTRA_MASKED_WALLET";
public static final String EXTRA_FULL_WALLET = "com.google.android.gms.wallet.EXTRA_FULL_WALLET";

public void onActivityResult(int requestCode, int resultCode, Intent data) {
	int errorCode = -1;
	if (data != null) {
		errorCode = data.getIntExtra(WalletConstants.EXTRA_ERROR_CODE, -1);
	}
	switch (requestCode) {
		case REQUEST_CODE_RESOLVE_LOAD_FULL_WALLET:
			switch (resultCode) {
				case Activity.RESULT_OK:
					if (data != null && data.hasExtra(EXTRA_FULL_WALLET)) {
						FullWallet fullWallet = data.getParcelableExtra(EXTRA_FULL_WALLET);
						fetchTransactionStatus(fullWallet);
					} else if (data != null && data.hasExtra(EXTRA_MASKED_WALLET)) {
						mMaskedWallet =  data.getParcelableExtra(EXTRA_MASKED_WALLET);
						mActivityLaunchIntent.putExtra(Constants.EXTRA_MASKED_WALLET, mMaskedWallet);
						startActivity(mActivityLaunchIntent);
					}
					break;
				case Activity.RESULT_CANCELED:
					break;
				default:
					handleError(errorCode);
					break;
			}
			break;
	}
}	 

 private void fetchTransactionStatus(FullWallet fullWallet) {
	String PayToken;
	PaymentMethodToken token = fullWallet.getPaymentMethodToken();
	if (token != null) {
		PayToken=token.getToken().replace('\n', ' ');
		PayToken=Base64.encodeToString(PayToken.getBytes(), Base64.DEFAULT);
		PayToken=PayToken.replace("\n", "");
	}
	try {
		Thread thread = new Thread(new Runnable() {
			public void run() {
				try {
					String response = sendPost("PaytureAndroidTest","Pay",PayToken,Long.toString(mItemInfo.getTotalPrice()));
					Intent intent = new Intent(getActivity(), OrderCompleteActivity.class);
						intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
						intent.putExtra(Constants.EXTRA_FULL_WALLET, response);
						startActivity(intent);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
		thread.start();
		thread.wait();
	} catch (Exception e) {
		e.printStackTrace();
	}
}

private String sendPost(String Key,String Method,String PayToken,String Amount) throws Exception{
	String url = "https://secure.payture.com/api/AndroidPay";
	URL obj = new URL(url);
	HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();
	con.setRequestMethod("POST");
	String urlParameters = String.format("Key=%s&Method=%s&PayToken=%s&Amount=%s",Key,Method,PayToken,Amount);
	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();
}

Masterpass API

Программный интерфейс системы онлайн-платежей Masterpass API позволяет клиентам оплачивать покупки картами, которые хранятся в кошельке Masterpass, предоставляет ТСП дополнительную возможность приема платежей по дебетовым и кредитным картам.


Возможности

Интерфейс Masterpass API позволяет выполнять стандартный набор операций электронной коммерции при условии подтверждения данных банковских карты верификацией в кошельке Masterpass.

MPPay

Этот запрос используется для быстрого проведения клиентского платежа одним действием. Платеж в этом случае выполняется по одностадийной схеме. Результатом обработки запроса является списание денежных средств с карты Покупателя. Списанные средства могут быть (полностью или частично) возвращены на карту Покупателя при помощи команды Refund.
Пример запроса: https://secure.payture.com/api/MPPay?Key=Merchant&OrderId=123456&Token=7f604806-7462-466d-be53-c037878caaad&Amount=1001&CVC2=155

Запрос

Название Описание Формат Обязательность
Key Идентификатор ТСП string M
OrderId Идентификатор платежа в системе ТСП, должен быть уникальным string M
Token Card ID в кошельке MasterPass string M
Amount Сумма платежа в копейках int M
CVC2 CVV/CVC2 код int O

Ответ

Название Описание Формат Обязательность
OrderId Идентификатор платежа в системе ТСП, должен быть уникальным string M
Key Идентификатор ТСП string M
Amount Сумма платежа в копейках int M
Success Флаг успешности операции bool M
ErrCode Код ошибки string O

MPBlock

Этот запрос позволяет блокировать денежные средства на карте Покупателя для последующего списания. Выполняется в рамках двухстадийной схемы проведения платежа. Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock.
Пример запроса: https://secure.payture.com/api/MPBlock?Key=Merchant&OrderId=123456&Token=7f604806-7462-466d-be53-c037878caaad&Amount=1001&CVC2=155

Запрос

Название Описание Формат Обязательность
Key Идентификатор ТСП string M
OrderId Идентификатор платежа в системе ТСП, должен быть уникальным string M
Token Card ID в кошельке MasterPass string M
Amount Сумма платежа в копейках int M
CVC2 CVV/CVC2 код int O

Ответ

Название Описание Формат Обязательность
OrderId Идентификатор платежа в системе ТСП, должен быть уникальным string M
Key Идентификатор ТСП string M
Amount Сумма платежа в копейках int M
Success Флаг успешности операции bool M
ErrCode Код ошибки string O

3-D Secure

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

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

Payture 3DS

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

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

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

НазваниеОписаниеФормат
ACSUrlАдрес (URL/URI) сервера аутентификации 3-D SecureСтрока
PaReqРезультат аутентификации 3-D SecureСтрока
ThreeDSKeyУникальный идентификатор транзакцииСтрока

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

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

Запрос

НазваниеОписаниеФормат
ACSUrlАдрес (URL/URI) сервера аутентификации 3-D Secure.Соответствует параметру ACSUrl из ответа на предыдущий запрос.
TermUrlАдрес перенаправления после успешной аутентификации 3-D SecureСтрока
MDУникальный идентификатор транзакцииСоответствует параметру ThreeDSKey из ответа на предыдущий запрос
PaReqРезультат аутентификации 3-D SecureСтрока
<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 запросом по адресу, указанному в значении атрибута TermUrl

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

Payture API

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

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

Pay3DS

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

Запрос
НазваниеОписаниеФормат
KeyИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
PaResШифрованная строка, содержащая результаты 3-D Secure аутентификацииСоответствует ответу от ACS
Ответ

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

curl https://sandbox.payture.com/api/Pay3DS \
-d Key=Merchant \
-d OrderId= \
-d PaRes= \
Скопировать код Получить ссылку

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

Block3DS

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

Запрос
НазваниеОписаниеФормат
KeyИдентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступаСтрока
OrderIdИдентификатор платежа в системе ПродавцаСтрока (максимум 50 символов)
PaResШифрованная строка, содержащая результаты 3-D Secure аутентификацииСоответствует ответу от ACS
Ответ

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

curl https://sandbox.payture.com/api/Block3DS \
-d Key=Merchant \
-d OrderId= \
-d PaRes= \
Скопировать код Получить ссылку

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

Payture eWallet

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

PaySubmit3DS

Запрос PaySubmit3DS служит для завершения списания средств с платежной карты, защищенной 3-D Secure, после получения результатов аутентификации от банка-эмитента.
Запрос
Название Описание Формат
MD Уникальный идентификатор транзакции Соответствует ответу от ACS
PaRes Шифрованная строка, содержащая результаты 3-D Secure аутентификации Соответствует ответу от ACS
Ответ
Полностью соответствует ответу на стандартный запрос Pay.
curl https://sandbox.payture.com/vwapi/PaySubmit3DS \
-d MD=20150624160356619170 \
-d PaRes=ODJhYTk0NGUtMDk0Z... \
Скопировать код Получить ссылку

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

P2P переводы

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

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

P2P

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

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

Внимание! При совершении перевода с карты на карту должны выполнятся следующие требования, установленные платежными системами:

  • 1. Обязательная проверка карты-источника с использованием технологии 3-D Secure.
  • 2. Обязательный ввод CVV2/CVC2 кода для карты-источника.

Внимание! Для P2P перевода операция возврата невозможна.

Payture API

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

Pay

https://{Host}.payture.com/api/Pay
Запрос
Название Описание Формат
Key Идентификатор Продавца. Выдается Продавцу с параметрами тестового/боевого доступа Строка
PayInfo Параметры для совершения транзакции Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
OrderId Идентификатор платежа в системе Продавца Строка (максимум 50 символов)
Amount Сумма платежа в копейках Цифры, не содержащие десятичных или других разделителей
PaytureId Идентификатор платежа в системе Payture AntiFraud Строка (максимум 50 символов)
CustomerKey Идентификатор Покупателя в системе Payture AntiFraud Строка (максимум 50 символов)
CustomFields Дополнительные поля транзакции. Может использоваться для передачи в процессинг дополнительных параметров, например, для фрод-мониторинга Url Encoded строка, содержащая пары ключей и их значений команды, разделённые символом «;» (точка с запятой). Ключи и значения разделены символом «=» (равно).
curl https://sandbox.payture.com/api/Pay \
-d Key=Merchant \
-d Amount= \
-d OrderId= \
--data-urlencode "PayInfo= \
PAN=; \
EMonth=; \
EYear=; \
CardHolder=; \
SecureCode=; \
OrderId=; \
Amount=;" \
--data-urlencode "CustomFields= \
CardTo=;" \
Скопировать код Получить ссылку

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

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

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

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

Состав возможных ключей параметра CustomFields
Ключ Описание Формат
CardTo Карта, на которую будет совершен перевод Полный номер карты

IP=; Description=MyTestTransaction

Ответ

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

Пример ответа на успешный запрос
<Pay OrderId="" Key="Merchant" Success="True" Amount="" />

Payture InPay

Для совершения P2P перевода при работе с интерфейсом Payture InPay ТСП необходимо внести изменения на странице формы Р2Р перевода. В форму необходимо добавить поле input с атрибутом name=”CardTo”, в котором будет передаваться номер карты, на которую необходимо перевести денежные средства. Внимание! Если вы пользуетесь шаблонами с библиотекой main.js, поле должно находится внутри блока с классом class=”.card”, для корректного сбора платежных данных. Вы также можете воспользоваться готовыми шаблонами.

Коды ошибок

Код ошибки Значение
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_BIN_LIMIT Превышен лимит по карте(BINу, маске) согласно настройкам антифродового фильтра
FRAUD_ERROR_BLACKLIST_BANKCOUNTRY Страна данного BINа находится в черном списке или не находится в списке допустимых стран
FRAUD_ERROR_BLACKLIST_AEROPORT Аэропорт находится в черном списке
FRAUD_ERROR_BLACKLIST_USERCOUNTRY Страна данного IP находится в черном списке или не находится в списке допустимых стран
FRAUD_ERROR_CRITICAL_CARD Номер карты(BIN, маска) внесен в черный список антифродового фильтра
FRAUD_ERROR_CRITICAL_CUSTOMER IP-адрес внесен в черный список антифродового фильтра
FRAUD_ERROR_IP IP помечен как мошеннический
FRAUD_INTERNAL_ERROR Ошибка антифрод фильтра при обработке транзакции
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 Не получен ответ от процессинга в установленное время
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_CONFIRM_CODE Неверный код подтверждения
WRONG_USER_PARAMS Пользователь с такими параметрами не найден
OTHER_ERROR Ошибка, которая произошла при невозможном стечении обстоятельств
OFD_ERRORОшибка в ответе сервиса взаимодействующим с кассами
CHEQUE_DATA_EMPTYДля всех оплат через терминал должны отправляться чека, но данных для чека нет в запросе
CHEQUE_DATA_INVALIDДля всех оплат через терминал должны отправляться чека, но данных для чека не корректны
WRONG_CHEQUE_AMOUNTЕсли сумма позиций чека не совпадает с суммой переданной для списания
CHEQUE_RESENDINGЧек уже был отправлен
CHEQUE_WRONG_RECIPIENTФормат адреса/телефона получателя чека на валидный
CHEQUE_NOT_CREATEDЧек не создан по каким то причинам
CHEQUE_TIMEOUTНе был получен статус чека от сервиса взаимодействующего с кассами за допустимое время
CHEQUE_PARSE_ERRORОшибка при парсинге строки чека в json
CHEQUE_NOT_FOUNDЧек не найден
CHEQUE_WRONG_STATUSЧек имеет статус отличный от ожидаемого, подробности зависят от контекста

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

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

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

PANCVC2/CVV2Exp.DateРезультат платежа
41111111111111121232018/12успешный платеж без 3DS с опциональным CVV
41111111111000311232018/12успешный платеж без 3DS с опциональным CVV
41111111111000231232018/12успешный платеж без 3DS с обязательным CVV
54867320588644711232018/12успешный платеж с 3DS
41111111111111111232018/12успешный платеж с 3DS
41111111111111141232018/12неуспешный платеж с 3DS
41111111111111151232018/12неуспешный платеж с 3DS
70000000000000075212018/08неуспешный платеж («недостаточно средств»)
80000000000000085212011/09неуспешный платеж («неверный срок действия карты»)
76000000000000065212018/08неуспешный платеж («номер карты в черном списке»)
12345619999999993742018/08неуспешный платеж («несуществующая карта»)
41111010000000461232018/08«AMOUNT_EXCEED» во время блокировки (при превышении суммы в 100 рублей (Amount=10001))
41111111111000561232018/08«PROCESSING_ERROR» во время блокировки
41111111111000721232018/08«ISSUER_BLOCKED_CARD» во время блокировки
41111111111000801232018/08«ISSUER_CARD_FAIL» во время блокировки
41111111111002211232018/08«PROCESSING_ERROR» во время списания
41111111111006271232018/08«PROCESSING_ERROR» во время разблокировки
41111111111020291232018/08«PROCESSING_ERROR» во время возврата
41004011111000621232018/08Таймаут 40 секунд во время блокировки
41004011111007241232018/08Таймаут 40 секунд во время разблокировки
41004011111003281232018/08Таймаут 40 секунд во время списания
41004011111030251232018/08Таймаут 40 секунд во время возврата
Сумма платежа

От 1 до 100 рублей

Держатель карты

Может быть любое имя

Должны использоваться только латинские символы или пробел

Имя держателя карты должно быть не менее трех символов

Пример: Test

Тестовый сервис

https://sandbox2.payture.com

Нотификации

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

Формат и параметры нотификации

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

Нотификации содержат все обязательные параметры оригинального запроса(за исключением данных платежных карт, номер карты заменяется на маскированный и передается в параметре CardName), а также параметр Notification (тип – строка), который определяет событие нотификации.

Методы нотификации
  • HTTP POST – запрос повторяется несколько раз с периодичностью 10 секунд до получения ответа «200 OK».
  • Email – сообщение отправляется один раз.
  • SMS – сообщение отправляется один раз.
ОперацияВозможные Нотификации
Интерфейс 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: MerchantPay, EngineBlockSuccess, EngineChargeSuccess, EnginePaySuccess
Fail: EngineBlockFail, EnginePayFail
apim/BlockSuccess: MerchantBlock, EngineBlockSuccess
Fail: EngineBlockFail
apim/ChargeSuccess: EngineChargeSuccess
apim/RefundSuccess: MerchantRefund, EngineRefundSuccess
apim/UnblockSuccess: EngineUnblockSuccess
Интерфейс eWallet
wapi/Pay Success: EngineBlockSuccess, EngineChargeSuccess, CustomerPaySuccess, EnginePaySuccess
Fail: EngineBlockFail, EngineChargeFail, CustomerPayFail, EnginePayFail
wapi/RefundSuccess: CustomerRefundSuccess, EngineRefundSuccess
Fail: CustomerRefundFail, EngineRefundFail
wapi/AddSuccess: EngineBlockSuccess, CustomerAddSuccess
Fail: EngineBlockFail, CustomerAddFail
wapi/SendCodeCustomerSendCode


НазваниеОписание
Значения параметра Notification для интерфейса Payture API
EngineBlockSuccessУспешная блокировка средств Пример
IP: [127.0.0.1]
Description: [TestDescription]
OrderId: [635894175573296165]
Is3DS: [False]
IsAFAuthorize: [False]
IsSecureCodeByPhone: [False]
TransactionDate: [26.01.2016 15:04:54]
Success: [True]
ErrCode: [NONE]
Notification: [EngineBlockSuccess]
MerchantContract: [Bono]
EngineBlockFailНеуспешная блокировка средств Пример
IP: [127.0.0.1]
Description: [TestDescription]
OrderId: [635894197418249955]
Is3DS: [False]
IsAFAuthorize: [False]
IsSecureCodeByPhone: [False]
TransactionDate: [26.01.2016 15:53:47]
Success: [False]
ErrCode: [DUPLICATE_ORDER_ID]
Notification: [EngineBlockFail]
MerchantContract: [Bono]
EnginePaySuccessУспешное списание средств Пример
OrderId: [635894197418249955]
Amount: [2100]
TransactionDate: [26.01.2016 15:40:56]
Success: [True]
ErrCode: [NONE]
Notification: [EnginePaySuccess]
MerchantContract: [Bono]
EnginePayFailНеуспешное списание средств Пример
OrderId: [635894197418249955]
Amount: [2100]
TransactionDate: [26.01.2016 16:32:06]
Success: [False]
ErrCode: [DUPLICATE_ORDER_ID]
Notification: [EnginePayFail]
MerchantContract: [Bono]
EngineChargeSuccessУспешное завершение средств Пример
OrderId: [635894175573296165]
Amount: [5700]
TransactionDate: [26.01.2016 15:08:28]
Success: [True]
Notification: [EngineChargeSuccess]
MerchantContract: [Bono]
EngineChargeFailНеуспешное завершение средств Пример
OrderId: [635894197418249955]
TransactionDate: [26.01.2016 16:06:54]
Success: [False]
ErrCode: [ILLEGAL_ORDER_STATE]
Notification: [EngineChargeFail]
MerchantContract: [Bono]
EngineUnblockSuccessУспешная разблокировка средств Пример
OrderId: [635894186601047892]
TransactionDate: [26.01.2016 15:23:20]
Success: [True]
ErrCode: [NONE]
Notification: [EngineUnblockSuccess]
MerchantContract: [Bono]
EngineUnblockFailНеуспешная разблокировка средств Пример
OrderId: [635894197418249955]
TransactionDate: [26.01.2016 16:16:41]
Success: [False]
ErrCode: [ILLEGAL_ORDER_STATE]
Notification: [EngineUnblockFail]
MerchantContract: [Bono]
EngineRefundSuccessУспешный возврат средств Пример
OrderId: [635894190709382580]
NewAmount: [0]
TransactionDate: [01/26/2016 15:30:16]
Success: [True]
ErrCode: [NONE]
Notification: [EngineRefundSuccess]
MerchantContract: [Bono]
EngineRefundFailНеуспешный возврат средств Пример
OrderId: [635894197418249955]
TransactionDate: [26.01.2016 16:23:39]
Success: [False]
ErrCode: [ILLEGAL_ORDER_STATE]
Notification: [EngineRefundFail]
MerchantContract: [Bono]
Значения параметра Notification для интерфейса InPay
MerchantBlockБлокировка средств (с параметром Success=True/False) Пример
OrderId: [e5eea2c9-26f0-40b8-9e7e-93ce52c0ab55]
Amount: [400]
SessionType: [Block]
templatetag: []
street: [street]
email: [test@payture.com]
city: [moscow]
zip: [1234567]
phone: [+79104298581]
CardNumber: [411111xxxxxx1112]
AuthCode: [1569017831]
RefNumber: [63590103660,2168,62427]
TransactionDate: [03.02.2016 13:41:01]
Is3DS: [false]
Success: [True]
Notification: [MerchantBlock]
MerchantContract: [Arrows12]
MerchantPayСписание средств (с параметром Success=True/False) Пример
OrderId: [02d989a0-aef2-4286-ba26-8c9324605b5e]
Amount: [400]
SessionType: [Pay]
templatetag: []
street: [street]
email: [test@payture.com]
city: [moscow]
zip: [1234567]
phone: [+79104298581]
CardNumber: [411111xxxxxx1112]
AuthCode: [1049449603]
RefNumber: [63590097444,8828,34354]
TransactionDate: [03.02.2016 11:57:27]
Is3DS: [false]
Success: [True]
Notification: [MerchantPay]
MerchantContract: [Arrows12]
MerchantRefundВозврат средств (с параметром Success=True/False) Пример
OrderId: [e5eea2c9-26f0-40b8-9e7e-93ce52c0ab55]
Amount: [400]
TransactionDate: [03.02.2016 13:44:38]
Success: [True]
ErrCode: [NONE]
Notification: [MerchantRefund]
MerchantContract: [Arrows12]
Значения параметра Notification для интерфейса eWallet
CustomerAddSuccessУспешная регистрация карты Пример
VWUserLgn: [payture.tester@gmail.com]
PhoneNumber: [79265351604]
CardNumber: [411111xxxxxx1112]
TransactionDate: [26.01.2016 17:08:20]
IsAlfa: [False]
CardName: [411111xxxxxx1112]
CardHolder: [ivan ivanov]
CardId: [15227c4a-d352-4191-8c3d-b331e9a9e57d]
SessionId: [89a02546-daf5-41c7-805d-5439a95c432d]
DateTime: [635894248576845703]
Success: [True]
Notification: [CustomerAddSuccess]
MerchantContract: [Arrows12]
CustomerAddFailНеуспешная регистрация карты Пример
VWUserLgn: [payture.tester@gmail.com]
PhoneNumber: [79265351604]
TransactionDate: [27.01.2016 10:39:41]
Success: [False]
ErrCode: [WRONG_PARAMS]
Notification: [CustomerAddFail]
MerchantContract: [Arrows12]
CustomerPaySuccessУспешное списание средств Пример
VWUserLgn: [payture.tester@gmail.com]
CardId: [15227c4a-d352-4191-8c3d-b331e9a9e57d]
OrderId: [da0b3a87-602f-40c4-83d7-3d88fd1151f2]
Amount: [300]
ConfirmCode: [10]
ExternalMerchantOrderId: [da0b3a87-602f-40c4-83d7-3d88fd1151f2]
IP: [109.73.11.168]
Is3DS: [False]
IsAFAuthorize: [False]
IsSecureCodeByPhone: [False]
TransactionDate: [26.01.2016 17:42:43]
SessionId: [4788156e-48bc-4103-96fb-2f32f5d65e6c]
CardNumber: [411111xxxxxx1112]
DateTime: [635894269530527343]
CustomerPayFailНеуспешное списание средств Пример
Email: [test@server.com]
OrderId: [462e381b-5bd4-4d0e-91e8-e9036dc3c896]
CardNumber: [411111xxxxxx1112]
Amount: [10000]
TransactionDate: [03.02.2016 13:28:27]
Success: [False]
ErrCode: [AMOUNT_ERROR]
Notification: [CustomerPayFail]
MerchantContract: [Arrows12]
CustomerRefundSuccessУспешный возврат средств Пример
OrderId: [805be31d-5f08-4a03-b7d1-adbaf82ec913]
NewAmount: [0]
TransactionDate: [01/26/2016 18:40:25]
Success: [True]
Notification: [CustomerRefundSuccess]
MerchantContract: [Arrows12]
CustomerRefundFailНеуспешный возврат средств Пример
OrderId: [d751e605-2f24-4917-ae95-c2a57e3e5769]
Amount: [700]
TransactionDate: [19.02.2016 10:58:44]
Success: [False]
ErrCode: [AMOUNT_ERROR]
Notification: [CustomerRefundFail]
MerchantContract: [Arrows12]
CustomerSendCodeОтправка кода подтверждения Пример
Email: []
OrderId: [333444555]
Amount: [300]
TransactionDate: [27.01.2016 10:27:03]
Notification: [CustomerSendCode]
MerchantContract: [Arrows12]

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

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

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

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

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

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

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

SDK

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

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

Node.js

Node.js - готовый модуль для разработчиков на Node.js. Простая и удобная установка с помощью npm:
npm install payture-official
Добавить в проект:
var payture = require('payture-official');
Дополнительная документация на GitHub

Node.js
Node.js

CSharpPaytureAPI - готовая библиотека, доступная для скачивания с NuGet.
Для установки удобно использовать менеджер NuGet из Visual Studio, либо устанавливаем через консоль NuGet по команде:
Install-Package CSharpPaytureAPI.
Включаем в проект:
using CSharpPayture;
Дополнительная документация на GitHub

Node.js

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

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

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

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

Mygento

Magento — это бесплатный движок для управления интернет магазином с открытым кодом. Входит в ТОП-20 самых популярных платформ для электронной коммерции в мире. Компания Mygento специализируется на разработке интернет-магазинов на CMS Magento и подготовила модуль интеграции с Payture. Mygento - команда профессионалов, с глубоким знанием платформы, большой выдержкой и терпением в работе с клиентами и партнерами. В их портфеле более 100 успешно реализованных проектов.

Magento
ИнтерМедиа Сервис

CMS 1С-Битрикс — это автоматизированная система управления контентом. Продукт предназначен для создания и развития корпоративных проектов предприятий и организаций, информационных, новостных и справочных порталов, социальных сетей, интернет-магазинов и других видов сайтов. Модуль интеграции с 1С-Битрикс разработала компания InterMedia Service. Она является Золотым сертифицированным партнером и Хостинг-партнером компании «1С-Битрикс» и оказывает полный комплекс услуг по веб-разработке с использованием новых идей и технологий, которые позволяют достичь качественного результата. При установке модуля необходимо согласиться с лицензионным соглашением-офертой.

1С-Битрикс
Opencart

OpenCart — бесплатная система управления содержимым, ориентированная на создание интернет-магазинов. Программное обеспечение написано на языке программирования PHP, платформа устанавливается на любом веб-сервере с поддержкой PHP и MySQL. Данная CMS пригодится для тех, кому нужен легкий и надежный движок интернет-магазина. Большим преимуществом данной системы управления сайтом является визуальная привлекательность интерфейса. Инструкция по установке модуля

Magento
Drupal

Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля

Drupal
Drupal

Commerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля

Drupal
Joomla!

VirtueMart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Joomla!. Joomla! — система управления содержимым сайта, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL. CMS позволяет без особых знаний в веб-программировании создавать отличные и динамичные сайты. Инструкция по установке модуля

Joomla!
WordPress

Woocommerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS WordPress. WordPress — система управления контентом с открытым исходным кодом, написанная на языке PHP. Универсальная и самая популярная CMS в мире. Применима к ресурсам любого назначения, от блогов до интернет-магазинов. Инструкция по установке модуля

WordPress
WordPress

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

WordPress
ru меньше больше руб.