Справочная информация

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

Термины и определения

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

Продавец (также «ТСП», «мерчант») — это юридическое лицо/индивидуальный предприниматель, осуществляющее (-ий) продажу товаров или услуг через Интернет.

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

Банк-эмитент — банк, выпустивший карту Покупателя.

МПС — международная платежная система.

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

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

Транзакция — это совокупность операций взаимодействия держателя банковской карты с процессинговым центром при осуществлении онлайн-платежа по карте. Транзакция изменяет состояние карточного счета. Каждая транзакция имеет свой уникальный идентификатор.

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

Одностадийный платеж — платеж, состоящий из единственной операции — прямого списания средств с карты Покупателя.

Двухстадийный платеж — платеж, который включает выполнение двух операций: блокирование средств на карте и завершение авторизации — списание.

Блокирование (также «блокировка», «авторизация» или «холдирование» средств) — предварительное резервирование средств на карте Покупателя.

Списание — выполнение фактического списания денежных средств со счета Покупателя.

Списание в рамках двухстадийного платежа должно быть инициализировано Продавцом в течение 7 дней после успешной блокировки. Если списание не будет инициализировано в указанный срок, то возможно оспаривание операции в связи с нарушением правил МПС. Также эмитент может самостоятельно осуществить автоматическую разблокировку средств на карте покупателя. Завершение после этого уже может быть недоступно.

Отмена блокировки (также «отмена», «разблокировка» или «отмена авторизации») — операция, обратная блокировке. Выполняется в рамках двухстадийного платежа.

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

Рекуррентный платеж (также «автоплатеж») — платеж по ранее добавленной карте без повторного ввода реквизитов банковской карты, инициированный Продавцом. Для выполнения рекуррентных платежей необходимо получение согласия у Покупателя при первом платеже.
Пример: ежемесячное списание абонентской платы за подписку в онлайн кинотеатре; автоматическое пополнение мобильного телефона при снижении баланса ниже 100 рублей.

Рекарринговый платеж — платеж по ранее добавленной карте без повторного ввода реквизитов банковской карты, инициированный Покупателем.
Пример: заказ и оплата такси через приложение в один клик.

Чарджбэк (Chargeback) — процедура опротестования транзакции Покупателем, при которой сумма платежа безакцептно списывается с Продавца и возвращается Покупателю. После чего обязанность доказательства истинности транзакции ложится на Продавца.

3-D Secure (3DS) — протокол, который используется как дополнительный уровень безопасности Интернет-платежей по кредитным и дебетовым картам. Основная концепция протокола — добавить к процессу финансовой авторизации онлайн-проверку подлинности держателя карты.

Порядок (место) ввода данных банковской карты

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

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

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

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

На стороне Payture

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

  • На странице оплаты Payture — в данном случае Покупатель находится на сайте Продавца только до момента ввода данных своей платежной карты, после чего автоматически перенаправляется на защищенную страницу Payture. После оплаты Покупатель будет проинформирован о результатах операции и возвращен обратно на сайт Продавца, а Продавцу будут отправлены нотификации с результатами платежа.
  • Через платежный виджет — всплывающее окно, которое встраивается на сайт Продавца и появляется при нажатии на кнопку «Оплатить». Включает защищенные поля ввода платежных данных (данные обрабатывает Payture в соответствии со стандартами безопасности).

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

Работа с API

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

Запрос

Запрос с необходимыми параметрами формируется на стороне Продавца и передается методом GET или POST по протоколу HTTPS. Значение заголовка «Content-Type» для запроса POST должно быть установлено «application/x-www-form-urlencoded».

URL запроса:

https://{Environment}.payture.com/{Interface}/{Command}

{Environment} — программная среда, предоставляется с параметрами тестового и рабочего доступа
{Interface} — используемый программный интерфейс
{Command} — название выполняемой команды

Ответ

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

Структура ответа:

<{Command} Key1="Value1" Key2="Value2"/>

Payture API

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

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

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

Возможности

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

Схема взаимодействия

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

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

Команда Pay используется для выполнения платежа по одностадийной схеме.

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

Запрос

curl https://sandbox3.payture.com/api/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12515 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
--data-urlencode "PayInfo= \
PAN=4011111111111112; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515" \
--data-urlencode "CustomFields = \
IP=66.114.206.197; \
Product=Ticket" \

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

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

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

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

PAN=4011111111111112;
EMonth=12;
EYear=22;
CardHolder=Ivan Ivanov;
SecureCode=123;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515

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

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

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

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

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

Ответ

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

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

Success: True False 3DS
<Pay OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="True" Amount="12515"/>
<Pay OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Key Наименование платежного Терминала
Соответствует переданному в запросе
String
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
ThreeDSVersion Версия протокола 3-D Secure:
1.0 — первая версия
2.1 — вторая версия
Передается, если «Success=3DS»
String
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если было перенаправление на другой Терминал
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/api/Pay3DS

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

Запрос

curl https://sandbox3.payture.com/api/Pay3DS \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
-d PaRes={PaRes} \

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

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

Ответ

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

https://{Environment}.payture.com/api/Block

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

Заблокированные средства далее могут быть списаны командой Charge или разблокированы командой Unblock.

Запрос

curl https://sandbox3.payture.com/api/Block \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12515 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
--data-urlencode "PayInfo= \
PAN=4011111111111112; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515" \
--data-urlencode "CustomFields = \
IP=66.114.206.197; \
Product=Ticket" \

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

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

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

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

PAN=4011111111111112;
EMonth=12;
EYear=22;
CardHolder=Ivan Ivanov;
SecureCode=123;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515

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

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

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

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

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

Ответ

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

Success: True False 3DS
<Block OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="True" Amount="12492"/>
<Block OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Block OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="3DS" Amount="12725" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>

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

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

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

Запрос

curl https://sandbox3.payture.com/api/Block3DS \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
-d PaRes={PaRes} \

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

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

Ответ

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

https://{Environment}.payture.com/api/Charge

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

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

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

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

curl https://sandbox3.payture.com/api/Charge \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

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

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

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

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

curl https://sandbox3.payture.com/api/Unblock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

Запрос

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

Ответ

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

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

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

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

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

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

Запрос

curl https://sandbox3.payture.com/api/Refund \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d Amount=12515 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<Refund Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" NewAmount="0"/>
<Refund Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" ErrCode="PROCESSING_TIME_OUT"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmount Остаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/api/GetRefunds

Команда GetRefunds используется для получения списка возвратов по заказу.

Запрос

curl https://sandbox3.payture.com/api/GetRefunds \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<GetRefunds Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Forwarded="True" MerchantContract="Merchant" 
FinalTerminal="Merchant" State="Charged" Amount="300000" NewAmount="100000"> 
<Item RefundDateTime="2023.08.17 18:22:07" RefundAmount="150000" RefundNewAmount="150000"/> 
</Item> 
<Item RefundDateTime="2023.10.19 19:12:07" RefundAmount="50000" RefundNewAmount="100000"/>
</Item> 
<GetRefunds/>
<GetRefunds Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" Forwarded="false" State="" ErrCode="ACCESS_DENIED"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе. Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True»
Integer
Optional
NewAmount Остаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
Item Список возвратов по заказу
Передается, если «Success=True»
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

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

Параметр Описание Формат
RefundDateTimeДата и время возврата
Передается, если «Success=False» и по заказу есть успешные возвраты
String
Optional
RefundAmountСумма возврата в копейках
Передается, если «Success=False» и по заказу есть успешные возвраты
Integer
Optional
RefundNewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=False» и по заказу есть успешные возвраты
Integer
Optional
https://{Environment}.payture.com/api/GetState

Команда GetState используется для получения актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/api/GetState \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<GetState Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" State="Refunded" Forwarded="False" MerchantContract="Merchant" Amount="12515" RRN="003770024290"/>
<GetState Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" State="" Forwarded="False" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции (получения статуса). Принимает значения:
True — заказ найден и статус получен
False — не удалось выполнить запрос статуса
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе. Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True»
Integer
Optional
RRN Уникальный номер транзакции, присвоенный банком-эквайером (Retrieval Reference Number)
Передается, если «Success=True»
String [12]
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Payture InPay

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

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

Страница оплаты

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

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

Возможности

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

Для дополнительной проверки Покупателя на странице оплаты Payture выполняется его аутентификация по протоколу 3-D Secure, если эта процедура доступна для используемой карты.

Стандартный набор операций электронной коммерции для интерфейса InPay

Init Инициализация одностадийного или двухстадийного платежа — создание платежной сессии, необходимой для открытия страницы оплаты
Pay Открытие страницы оплаты на стороне платежного шлюза Payture
Charge Списание средств, заблокированных на карте Покупателя в рамках двухстадийного платежа
Unblock Отмена блокировки средств на карте Покупателя
Refund Полный или частичный возврат средств на карту Покупателя
GetState Получение текущего состояния платежа
https://{Environment}.payture.com/apim/Init

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

Запрос

curl https://sandbox3.payture.com/apim/Init \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
--data-urlencode "Data= \
SessionType=Pay; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515; \
Product=Ticket; \
Total=125.15; \
Phone=79156783333; \
Description=MyTestTransaction; \
Url=https://payture.com/result?orderid={orderid}&result={success}; \
AdditionalField1=Value1; \
AdditionalField2=Value2" \

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

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

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

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

SessionType=Pay;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
Total=125.15;
Product=Ticket;
Phone=79156783333;
Description=MyTestTransaction;
Url=https://payture.com/result?orderid={orderid}&result={success};
AdditionalField1=Value1;
AdditionalField2=Value2

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

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

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

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

Optional

Ответ

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

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

Success: True False
<Init Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Amount="12515" SessionLifeTime="60" AttemptsCount="5" SessionId="d039d41b-1af7-6da5-3d29-9a622795dd6c"/>
<Init Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" ErrCode="AMOUNT_ERROR"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True». Соответствует переданному в запросе
Integer
Optional
SessionLifeTimeСрок жизни платежной сессии с момента получения в ответе Init (в минутах)
Передается, если «Success=True». По умолчанию 60 минут. Значение может быть изменено через службу поддержки Payture
Integer
Optional
AttemptsCountКоличество попыток оплаты, которое будет у Покупателя на странице оплаты в рамках текущей сессии
Передается, если «Success=True». По умолчанию 5 попыток. Количество может быть изменено через службу поддержки Payture
Integer
Optional
SessionId Идентификатор платежной сессии в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/apim/Pay

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

Запрос может быть отправлен GET или POST методом.

Запрос

curl https://sandbox3.payture.com/apim/Pay \
-d SessionId=d039d41b-1af7-6da5-3d29-9a622795dd6c \

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

ПараметрОписаниеФормат
SessionIdИдентификатор платежной сессии. Содержится в ответе на запрос Init
По умолчанию срок жизни сессии 60 минут. Может быть изменен через службу поддержки Payture
String [36]
Mandatory

Результат успешной операции — открытие страницы оплаты на стороне платежного шлюза Payture.

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

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

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

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

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

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

Запрос

curl https://sandbox3.payture.com/apim/Charge \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<Charge Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Amount="12515"/>
<Charge Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" ErrCode="ILLEGAL_ORDER_STATE"/>
ПараметрОписаниеФормат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Конечная сумма, списанная с карты Покупателя
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/apim/Unblock

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

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

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

Запрос

curl https://sandbox3.payture.com/apim/Unblock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

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

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

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

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

Запрос

curl https://sandbox3.payture.com/apim/Refund \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Password=123 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
-d Amount=12515 \

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

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

Ответ

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

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

Success: True False
<Refund Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" NewAmount="2000"/>
<Refund Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" ErrCode="AMOUNT_ERROR"/>
ПараметрОписаниеФормат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/apim/GetRefunds

Команда GetRefunds используется для получения списка возвратов по заказу.

Запрос

curl https://sandbox3.payture.com/apim/GetRefunds \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<GetRefunds Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Forwarded="True" MerchantContract="Merchant" 
FinalTerminal="Merchant" State="Charged" Amount="300000" NewAmount="100000"> 
<Item RefundDateTime="2023.08.17 18:22:07" RefundAmount="150000" RefundNewAmount="150000"/> 
</Item> 
<Item RefundDateTime="2023.10.19 19:12:07" RefundAmount="50000" RefundNewAmount="100000"/>
</Item> 
<GetRefunds/>
<GetRefunds Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" Forwarded="false" State="" ErrCode="ACCESS_DENIED"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе. Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True»
Integer
Optional
NewAmount Остаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
Item Список возвратов по заказу
Передается, если «Success=True»
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

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

Параметр Описание Формат
RefundDateTimeДата и время возврата
Передается, если «Success=False» и по заказу есть успешные возвраты
String
Optional
RefundAmountСумма возврата в копейках
Передается, если «Success=False» и по заказу есть успешные возвраты
Integer
Optional
RefundNewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=False» и по заказу есть успешные возвраты
Integer
Optional
https://{Environment}.payture.com/apim/GetState

Команда GetState используется для получения актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/apim/GetState \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<GetState Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" State="Refunded" Forwarded="False" MerchantContract="Merchant" Amount="12515" RRN="003770024290"/>
<GetState Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" State="" Forwarded="False" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции (получения статуса). Принимает значения:
True — заказ найден и статус получен
False — не удалось выполнить запрос статуса
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе. Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True»
Integer
Optional
RRN Уникальный номер транзакции, присвоенный банком-эквайером (Retrieval Reference Number)
Передается, если «Success=True»
String [12]
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

Payture eWallet

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

Способы ввода данных платежных карт

Интерфейс eWallet поддерживает два варианта реализации, в зависимости от места ввода данных платежных карт.

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

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

Страница оплаты на стороне Payture

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

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

Стандартный набор операций электронной коммерции для интерфейса eWallet

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

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

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

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

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

Запрос

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

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

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

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

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

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

Ответ

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

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

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

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

Запрос

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

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

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

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

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

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

Ответ

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

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

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

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

Запрос

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

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

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

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

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

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

Ответ

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

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

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

Команда Check служит для проверки существования Покупателя в платежной системе Payture (Покупателя с такими VWUserLgn и VWUserPsw).

Запрос

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

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

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

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

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

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

Ответ

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

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

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

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

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

Команда регистрации новой карты в системе Payture.

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

Карта может быть добавлена не только командой Add, но и при выполнении платежа.

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

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

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

Схема взаимодействия

Запрос Add

curl https://sandbox3.payture.com/vwapi/Add \
-d SessionId=d039d41b-1af7-6da5-3d29-9a622795dd6c \

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

Запрос может быть отправлен GET или POST методом.

Параметр Описание Формат
SessionIdИдентификатор сессии, возвращаемый в ответ на команду Init
По умолчанию срок жизни сессии 60 минут. Может быть изменен через службу поддержки Payture
String [36]
Mandatory

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

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

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

Схема взаимодействия

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

Запрос Add

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

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

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

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

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

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

Optional

Ответ

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

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

Success: True False 3DS
<Add VWUserLgn="123@ya.ru" Success="True" CardName="521885xxxxxx5484" CardId="5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85"/>
<Add VWUserLgn="123@ya.ru" Success="False" ErrCode="WRONG_CARD_INFO"/>
<Add VWUserLgn="123@ya.ru" Success="3DS" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0" CardName="521885xxxxxx5484" CardId="5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardNameМаскированный номер карты (первые 6 и последние 4 цифры: 123456хххххх1234)
Передается, если «Success=True» или «Success=3DS»
String [13..19]
Optional
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True» или «Success=3DS»
String [36]
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
ThreeDSVersion Версия протокола 3-D Secure:
1.0 — первая версия
2.1 — вторая версия
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/AddSubmit3DS

Команда AddSubmit3DS используется для завершения добавления карты, защищенной 3-D Secure. Выполняется после запроса Add — на стороне Продавца и получения результатов 3‑D Secure аутентификации от банка-эмитента.

Используется только при вводе карточных данных на стороне Продавца.

Запрос

curl https://sandbox3.payture.com/vwapi/AddSubmit3DS \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d MD=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85 \
-d PaRes={PaRes} \

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

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

Ответ

Полностью соответствует ответу на запрос Add — на стороне Продавца.

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

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

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

Запрос

curl https://sandbox3.payture.com/vwapi/Activate \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85; \
Amount=101" \

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

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

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

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

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85;
Amount=12515
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture, для которой выполняется активацияString [36]
Mandatory
Amount Заблокированная сумма на карте Покупателя в копейках Integer
Mandatory

Ответ

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

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

Success: True False
<Activate Success="True" VWUserLgn="123@ya.ru" CardId="5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85"/>
<Activate Success="False" VWUserLgn="123@ya.ru" ErrCode="CARD_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/Remove

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

Запрос

curl https://sandbox3.payture.com/vwapi/Remove \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85" \

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

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

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

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

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture, для которой выполняется активацияString [36]
Mandatory

Ответ

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

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

Success: True False
<Remove Success="True" VWUserLgn="123@ya.ru" CardId="5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85"/>
<Remove Success="False" VWUserLgn="123@ya.ru" ErrCode="WRONG_CARD_INFO"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/GetList

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

Максимальное количество карт в ответе GetList: 20. Карты сортируются по дате последней успешной операции списания или блокирования денежных средств.

Запрос

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

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

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

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

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

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

Ответ

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

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

Success: True False
<GetList Success="True" VWUserLgn="123@ya.ru">
  <Item CardName="411111xxxxxx1112" CardId="e5dfa016-27e0-45bb-8167-44299642b529" CardHolder="Ivan Ivanov" Status="NotActive" NoCVV="false" Expired="false" ExpMonth="12" ExpYear="2022" PaymentSystem="Visa"/>
    <Param Key="ExternalWallet" Value="ApplePay" />
    <Param Key="CAVV" Value="/oasQvoGZxvwxyU5V/RYMAACAAA=" />
    <Param Key="BindingOrderId" Value="d5f8531f-308b-4470-96c9-e56be812896b" />
    <Param Key="LastSuccess" Value="2019.08.17 18:22:07" />
    <Param Key="LastSuccessOrderId" Value="4b7638ef-c1bf-4e8b-8530-9bc13825c1d8" />
  </Item>
  <Item CardName="411111xxxxxx1111" CardId="001f2def-64e9-4cef-ae02-aa2bd9508a8b" CardHolder="Ivan Ivanov" Status="IsActive" NoCVV="true" Expired="false" ExpMonth="12" ExpYear="2022" PaymentSystem="Visa">
    <Param Key="LastSuccess" Value="2019.06.24 12:42:14"/>
    <Param Key="LastSuccessOrderId" Value="4b7638ef-c1bf-4e8b-8530-9bc13825c1d8" />
    <Param Key="LastLessSecureCode:VWMerchantTest" Value="True"/>
    <Param Key="BindingOrderId" Value="a760d6a6-4c6f-4687-95c2-e1c7dcc8151f"/>
  </Item>
</GetList>
<GetList Success="False" VWUserLgn="123@ya.ru" ErrCode="WRONG_USER_PARAMS"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
ItemСписок карт Покупателя
Передается, если «Success=True»
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

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

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

Возможные атрибуты элемента Param

Параметр Описание Формат
BindingOrderId Идентификатор платежа (номер заказа), при котором была добавлена карта
Передается, если карта была добавлена с платежом
String [1..50]
Optional
LastSuccess Дата и время последнего успешного списания в рамках одностодийного платежа или блокирования средств в рамках двухстадийного платежа
Передается, если по карте был успешный платеж
String
Optional
LastSuccessOrderId Номер заказа последнего успешного списания в рамках одностодийного платежа или блокирования средств в рамках двухстадийного платежа
Передается по согласованию со службой поддержки Payture
String
Optional
LastLessSecureCode:VWID Наименование терминала и признак успешности последнего платежа без CVV2/CVC2 (рекуррентный платеж):
True — последний рекуррентный платеж успешен
False — последний рекуррентный платеж неуспешен
Передается, если по карте был рекуррентный платеж
String
Optional
ExternalWallet Признак карты:
ApplePay — Apple Pay
GooglePayToken — токенизированная карта Google Pay (CRYPTOGRAM_3DS)
GooglePayCard — нетокенизированная карта Google Pay (PAN_ONLY)
SamsungPay — Samsung Pay
Передается для карт из кошельков Apple Pay, Google Pay или Samsung Pay
String
Optional
CAVV Код проверки подлинности держателя карты
Передается для карт из кошельков Apple Pay, Google Pay или Samsung Pay
String
Optional
https://{Environment}.payture.com/vwapi/Init

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

Запрос

curl https://sandbox3.payture.com/vwapi/Init \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
SessionType=Pay; \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515; \
Product=Ticket; \
Total=125.15; \
Description=MyTestTransaction; \
PhoneNumber=79156783333; \
Url=https://payture.com/result?orderid={orderid}&result={success}; \
AdditionalField1=Value1; \
AdditionalField2=Value2" \

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

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

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

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

SessionType=Pay;
VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
Product=Ticket;
Total=125.15;
Description=MyTestTransaction;
PhoneNumber=79156783333;
Url=https://payture.com/result?orderid={orderid}&result={success};
AdditionalField1=Value1;
AdditionalField2=Value2

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

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

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

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

Optional

Ответ

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

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

Success: True False
<Init Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Amount="12515" SessionLifeTime="60" AttemptsCount="5" SessionId="d039d41b-1af7-6da5-3d29-9a622795dd6c" SessionType="Block"/>
<Init Success="False" ErrCode="ACCESS_DENIED"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderIdИдентификатор платежа в системе Продавца
Передается, если «Success=True» и «SessionType=Pay» (Block). Соответствует переданному в запросе
String [1..50]
Optional
AmountСумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True». Равен «0», если «SessionType=Add»
Integer
Optional
SessionLifeTimeСрок жизни платежной сессии с момента получения в ответе Init (в минутах)
Передается, если «Success=True». По умолчанию 60 минут. Значение может быть изменено через службу поддержки Payture
Integer
Optional
AttemptsCountКоличество попыток оплаты, которое будет у Покупателя на странице оплаты в рамках текущей сессии
Передается, если «Success=True». По умолчанию 5 попыток. Количество может быть изменено через службу поддержки Payture
Integer
Optional
SessionIdИдентификатор платежной сессии в системе Payture
Передается, если «Success=True»
String [36]
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/Pay

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

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

Схема взаимодействия

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-d SessionId=d039d41b-1af7-6da5-3d29-9a622795dd6c \

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

Запрос может быть отправлен GET или POST методом.

ПараметрОписаниеФормат
SessionIdИдентификатор платежной сессии. Содержится в ответе на запрос Init
По умолчанию срок жизни сессии 60 минут. Может быть изменен через службу поддержки Payture
String
Mandatory

Результат успешной операции — открытие страницы оплаты на стороне платежного шлюза Payture.

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

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

https://{Environment}.payture.com/vwapi/Pay

Команда для выполнения платежа, когда ввод данных платежных карт выполняется непосредственно на веб-странице или в мобильном приложении Продавца. Позволяет выполнить списание средств в рамках одностадийного платежа (SessionType=Pay) или блокирование средств в рамках двухстадийного платежа (SessionType=Block).

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

Схема взаимодействия

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

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

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=FreePay; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515; \
CardNumber=4011111111111112; \
CardHolder=Ivan Ivanov; \
EMonth=12; \
EYear=22; \
SecureCode=123; \
PhoneNumber=79156783333; \
IP=66.114.206.197; \
AdditionalField1=Value1; \
AdditionalField2=Value2" \

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

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

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

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

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=FreePay;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
CardNumber=4011111111111112;
CardHolder=Ivan Ivanov;
EMonth=12;
EYear=22;
SecureCode=123;
SessionType=Block;
PhoneNumber=79156783333;
IP=66.114.206.197;
AdditionalField1=Value1;
AdditionalField2=Value2
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdДля платежа по незарегистрированной карте необходимо передавать значение CardId=FreePayString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
CardNumberНомер карты
Цифры без пробелов
String [13..19]
Mandatory
EMonthМесяц истечения срока действия карты
2 цифры
Integer
Mandatory
EYearГод истечения срока действия карты
Последние 2 цифры года
Integer
Mandatory
SecureCode CVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала
Integer
Optional
CardHolderФамилия и имя держателя карты
Только латинские буквы и пробел
String [1..30]
Optional
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
AddCardПризнак сохранения карты
True — необходимо добавить карту. По умолчанию False
Boolean
Optional
PhoneNumberНомер телефона Покупателя
Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента]
String
Optional
EmailEmail Покупателя
Может передаваться, если не используется в качестве VWUserLgn
String [1..50]
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional
Дополнительные параметры Любые дополнительные параметры Продавца
Дополнительных параметров может быть несколько. Каждый параметр передается отдельно

Optional

Ответ

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

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12515"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="c3b33136-1180-643b-c159-6ee283970082" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
ThreeDSVersion Версия протокола 3-D Secure:
1.0 — первая версия
2.1 — вторая версия
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

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

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85; \ 
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515; \
SecureCode=123; \
IP=66.114.206.197; \
AdditionalField1=Value1; \
AdditionalField2=Value2" \

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

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

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

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

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
SecureCode=123;
SessionType=Block;
IP=66.114.206.197;
AdditionalField1=Value1;
AdditionalField2=Value2
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор ранее зарегистрированной карты в системе PaytureString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
SecureCode CVC2/CVV2 код
3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала
Integer
Optional
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional
Дополнительные параметры Любые дополнительные параметры Продавца
Дополнительных параметров может быть несколько. Каждый параметр передается отдельно

Optional

Ответ

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

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12515"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="c3b33136-1180-643b-c159-6ee283970082" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
ThreeDSVersion Версия протокола 3-D Secure:
1.0 — первая версия
2.1 — вторая версия
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/Pay

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

Для оплаты не требуется передача CVV2/CVC2 и прохождение аутентификации 3-D Secure.

Рекуррентные и рекарринговые платежи могут выполняться как при варианте интеграции «На стороне Продавца», так и «На стороне Payture».

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515; \
AdditionalField1=Value1; \
AdditionalField2=Value2" \

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

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

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

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

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
SessionType=Block;
AdditionalField1=Value1;
AdditionalField2=Value2
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdИдентификатор ранее зарегистрированной карты в системе PaytureString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Цифры, не содержащие десятичных или других разделителей
Integer
Mandatory
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional
Дополнительные параметры Любые дополнительные параметры Продавца
Дополнительных параметров может быть несколько. Каждый параметр передается отдельно

Optional

Ответ

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

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12515"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="c3b33136-1180-643b-c159-6ee283970082" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure. Аутентификация может потребоваться для рекарринговых платежей в зависимости от конфигурации Терминала. Для рекуррентных платежей значение 3DS не возвращается
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/PaySubmit3DS

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

Используется только при вводе карточных данных на стороне Продавца.

Запрос

curl https://sandbox3.payture.com/vwapi/PaySubmit3DS \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d MD=5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85 \
-d PaRes={PaRes} \

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

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

Ответ

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

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

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

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

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

Запрос

curl https://sandbox3.payture.com/vwapi/Charge \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
-d Password=123 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<Charge Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Amount="12515"/>
<Charge Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" ErrCode="ILLEGAL_ORDER_STATE"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Amount Конечная сумма, списанная с карты Покупателя
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/Unblock

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

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

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

Запрос

curl https://sandbox3.payture.com/vwapi/Unblock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
-d Password=123 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

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

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

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

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

Запрос

curl https://sandbox3.payture.com/vwapi/Refund \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=Merchant \
--data-urlencode "DATA= \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Password=123; \
Amount=12515" \

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

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

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

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

OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
Password=123
Параметр Описание Формат
PasswordПароль платежного Терминала
Предоставляется с параметрами тестового/рабочего доступа
String
Mandatory
OrderIdУникальный идентификатор платежа в системе ПродавцаString [1..50]
Mandatory
Amount Сумма, которую следует вернуть, в копейках. В случае отсутствия параметра в запросе выполняется полный возврат
Цифры, не содержащие десятичных или других разделителей
Integer
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional

Ответ

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

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

Success: True False
<Refund Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" NewAmount="7800"/>
<Refund Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" ErrCode="AMOUNT_ERROR"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
NewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/GetRefunds

Команда GetRefunds используется для получения списка возвратов по заказу.

Запрос

curl https://sandbox3.payture.com/vwapi/GetRefunds \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<GetRefunds Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" Forwarded="True" MerchantContract="Merchant" 
FinalTerminal="Merchant" State="Charged" Amount="300000" NewAmount="100000"> 
<Item RefundDateTime="2023.08.17 18:22:07" RefundAmount="150000" RefundNewAmount="150000"/> 
</Item> 
<Item RefundDateTime="2023.10.19 19:12:07" RefundAmount="50000" RefundNewAmount="100000"/>
</Item> 
<GetRefunds/>
<GetRefunds Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" Forwarded="false" State="" ErrCode="ACCESS_DENIED"/>
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе. Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True»
Integer
Optional
NewAmount Остаток списанной суммы после возврата в копейках
Передается, если «Success=True»
Integer
Optional
Item Список возвратов по заказу
Передается, если «Success=True»
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

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

Параметр Описание Формат
RefundDateTimeДата и время возврата
Передается, если «Success=False» и по заказу есть успешные возвраты
String
Optional
RefundAmountСумма возврата в копейках
Передается, если «Success=False» и по заказу есть успешные возвраты
Integer
Optional
RefundNewAmountОстаток списанной суммы после возврата в копейках
Передается, если «Success=False» и по заказу есть успешные возвраты
Integer
Optional
https://{Environment}.payture.com/vwapi/GetState

Команда GetState используется для получения актуального статуса платежа.

Запрос

curl https://sandbox3.payture.com/vwapi/GetState \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \

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

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

Ответ

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

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

Success: True False
<GetState Success="True" OrderId="c3b33136-1180-643b-c159-6ee283970082" State="Refunded" Forwarded="False" MerchantContract="Merchant" Amount="12515" RRN="003770024290" VWUserLgn="123@ya.ru" CardId="5f9468a9-9dfc-2cde-2b27-f6c7e3e27d85" PANMask="521885xxxxxx5484"/>
<GetState Success="False" OrderId="c3b33136-1180-643b-c159-6ee283970082" State="" Forwarded="False" ErrCode="ORDER_NOT_FOUND"/>
Параметр Описание Формат
Success Признак успешности операции (получения статуса). Принимает значения:
True — заказ найден и статус получен
False — не удалось выполнить запрос статуса
String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
Forwarded Признак перенаправления платежа на другой Терминал Boolean
Mandatory
State Статус платежа. См. статусы транзакций
Передается, если «Success=True»
String
Optional
MerchantContract Наименование платежного Терминала
Соответствует переданному в запросе. Передается, если «Success=True»
String [1..50]
Optional
FinalTerminal Конечный Терминал, на котором был выполнен платеж
Передается, если «Forwarded=True»
String
Optional
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True»
Integer
Optional
RRN Уникальный номер транзакции, присвоенный банком-эквайером (Retrieval Reference Number)
Передается, если «Success=True»
String [12]
Optional
VWUserLgnИдентификатор Покупателя в системе Payture
Передается, если «Success=True»
String [1..50]
Optional
CardIdИдентификатор карты в системе Payture
Передается, если «Success=True»
String [36]
Optional
PANMaskМаскированный номер карты (первые 6 и последние 4 цифры: 123456хххххх1234)
Передается, если «Success=True»
String [13..19]
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCode Код ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional

3-D Secure 1.0

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

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

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

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

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

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

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

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

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

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

Для этого используется POST запрос по адресу, указанному в параметре ACSUrl. В запросе передаются следующие параметры:

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

Получение результата аутентификации

После выполнения проверки банк-эмитент возвращает Покупателя POST запросом по адресу Продавца, указанному в значении параметра TermUrl. В теле запроса передаются параметры:

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

Завершение платежа

Наконец, для выполнения списания или блокирования средств на карте, защищенной 3-D Secure, Продавцу необходимо передать в платежный шлюз результаты аутентификации, полученные от банка-эмитента. Для интерфейса Payture API результаты передаются в запросе Pay3DS или Block3DS. Для Payture eWallet — в PaySubmit3DS или AddSubmit3DS.

3-D Secure 2.0

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

  • Frictionless Flow — процесс 3-D Secure аутентификации без участия держателя карты. Для Покупателя процесс оплаты выглядит как платеж без 3DS, а для Продавца платеж остается защищенным 3-D Secure.
  • Challenge Flow — процесс 3-D Secure аутентификации с проверкой держателя карты. Для Покупателя процесс проверки выглядит аналогично 3DS 1.0.

Решение о выполнении Frictionless или Challenge аутентификации принимает банк-эмитент на основе анализа параметров транзакции, в том числе информации о браузере Покупателя.

Параметры браузера собираются Продавцом и передаются перед выполнением платежа. Однако эмитент может запросить возможность самостоятельного сбора параметров браузера. Для этого в протоколе 3-D Secure 2.0 используется 3DS Method — открытие скрытого iframe в браузере Покупателя для сбора параметров браузера.

Предварительная аутентификация

Предварительная аутентификация выполняется для проверки версии протокола 3-D Secure и необходимости использования 3DS метода. Для предварительной аутентификации используется запрос api/PreAuth (Payture API) или vwapi/PreAuth (Payture eWallet). Описание методов доступно в документациях 3‑D Secure 2.0 на стороне Продавца и 3‑D Secure 2.0 на шаблоне.

Выполнение 3DS метода

Если в ответе PreAuth переданы параметры ThreeDSServerTransId, ThreeDSMethodURL и ThreeDSMethodNotificationURL, то необходимо выполнение 3DS метода — открытие скрытого iframe в браузере клиента, с помощью которого данные браузера автоматически передаются на сервер банка-эмитента.

В ином случае (если в ответе PreAuth отсутствуют параметры ThreeDSServerTransId, ThreeDSMethodURL и ThreeDSMethodNotificationURL или хотя бы один из этих параметров не имеет значения), открытие скрытого iframe не требуется — переходите к следующему шагу.

Примеры ответов методов apim/PreAuth (Payture API) и vwapi/PreAuth (Payture eWallet) описаны в документациях 3‑D Secure 2.0 на стороне Продавца и 3‑D Secure 2.0 на шаблоне.

Выполнение платежа (добавление карты)

Для оплаты или добавления карты используются следующие методы:

Если банк эмитент разрешил выполнение операции по сценарию Frictionless Flow, то платеж выполняется без проверки Покупателя. В ответе на запрос оплаты (добавления карты) передается «Success=True» и отсутствуют параметры 3DS, что говорит о выполненном списании или блокировании средств на карте Покупателя. Процесс оплаты завершен.

В случае, если необходима проверка Покупателя, операция проходит по сценарию Challenge Flow. Дальнейший порядок действий различается в зависимости от того, чья сторона обрабатывает карточные данные. Более подробная информация доступна в документациях 3‑D Secure 2.0 на стороне Продавца и 3‑D Secure 2.0 на шаблоне.

Проверка Покупателя (только для Challenge Flow)

Пример HTML формы

<html><head><title></title></head>
 <body onload="setTimeout(document.forms['form'].submit(), 10000)">
 <form name='form' action='{ACSUrl}' method='post'>
 <input type='hidden' name='creq' value='{CReq}'>
 <input type='hidden' name='threeDSSessionData' value='{ThreeDSSessionData}'>
 </form>
</body></html>

В случае необходимости прохождения аутентификации Продавец перенаправляет Покупателя на страницу банка-эмитента. На странице банка-эмитента выполняется проверка Покупателя, обычно это ввод СМС-кода.

Для перенаправления используется POST запрос по адресу, указанному в параметре ACSUrl. Передаваемые параметры:

Параметр Описание
threeDSSessionDataУникальный идентификатор транзакции
Соответствует параметру ThreeDSSessionData из ответа на запрос Pay, Block, Add, MobilePay или MobileBlock
creqСоответствует параметру CReq из ответа на запрос Pay, Block, Add, MobilePay или MobileBlock

При выполнении операции на стороне Payture после выполнения проверки ACS перенаправляет Покупателя POST запросом на шаблон возврата Payture. А с шаблона возврата Покупатель возвращается на сайт Продавца (аналогично сценарию 3DS 1.0).

При выполнении операции на стороне продавца после выполнения проверки ACS возвращает Покупателя POST запросом по адресу, указанному в параметре ChallengeNotificationUrl. В запросе передаются следующие параметры:

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

Завершение оплаты (только для Challenge Flow на стороне Продавца)

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

Для интерфейса Payture API результаты передаются в запросе Pay3DS или Block3DS. Для Payture eWallet — в PaySubmit3DS или AddSubmit3DS. Описание методов доступно в документации 3‑D Secure 2.0 на стороне Продавца.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SDK

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

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

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

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

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

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

Разработчик Описание Установить
Payture 1С-Битрикс — это автоматизированная система управления контентом. Продукт предназначен для создания и развития корпоративных проектов предприятий и организаций, информационных, новостных и справочных порталов, социальных сетей, интернет-магазинов и других видов сайтов. Bitrix
Payture Битрикс24 — это популярная облачная платформа для управления бизнесом и коммуникаций внутри компании. Она предлагает широкий спектр инструментов для организации работы, включая управление задачами, проектами, клиентскими отношениями (CRM), внутренними коммуникациями и многим другим. Интеграция выполнена партнером. По вопросам поддержки обращаться к разработчику. Bitrix24
Simpla Программный модуль для интернет-магазина на Simpla CMS. Simpla — это готовое решение для быстрого создания интернет-магазина с широкими возможностями и современным дизайном. Уже 63019 лицензионных установок. Bitrix
Payture OpenCart — бесплатная система управления содержимым, ориентированная на создание интернет-магазинов. Программное обеспечение написано на языке программирования PHP, платформа устанавливается на любом веб-сервере с поддержкой PHP и MySQL. Данная CMS пригодится для тех, кому нужен легкий и надежный движок интернет-магазина. Большим преимуществом данной системы управления сайтом является визуальная привлекательность интерфейса.Инструкция по установке модуля Opencart
Payture Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля Drupal
Payture Commerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля Drupal
Payture VirtueMart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Joomla!. Joomla! — система управления содержимым сайта, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL. CMS позволяет без особых знаний в веб-программировании создавать отличные и динамичные сайты. Инструкция по установке модуля Joomla
Payture Woocommerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS WordPress. WordPress — система управления контентом с открытым исходным кодом, написанная на языке PHP. Универсальная и самая популярная CMS в мире. Применима к ресурсам любого назначения, от блогов до интернет-магазинов. Инструкция по установке модуля. Валюта оплаты по умолчанию RUB, для добавления других валют обратитесь в службу поддержки Payture Wordpress
Payture Программный модуль для интернет-магазина ReadyScript. ReadyScript — собрала в себе все лучшее, что существует сегодня на рынке CMS, а также приобрела множество уникальных возможностей. Чтобы сохранить удобство пользования сайтом на различных по размеру экранах, сайт автоматически адаптируется, скрывая, сворачивая или переставляя некоторые второстепенные блоки. Все это включено в стандартную тему оформления. Readyscript
VirtualityCMS VirtualityCMS поможет Вам и вашим клиентам всегда быть рядом, получать актуальные предложения и повысить лояльность с помощью встроенных маркетинговых инструментов. В VirtualityCMS реализована система мультивалютности что позволяет загружать прайсы поставщиков в любых валютах, цены автоматически будут конвертированыв в основную вашу валюту. В админпанели цены будет указаны в валюте поставщика, а для клиентов на сайте в основной валюте. Для управления VirtualityCMS Вам не нужно сидеть в офисе или дома перед компьютером, Вы можете управлять вашим интернет-магазином, принимать заказы и платежи из любой точки мира, достаточно иметь мобильный гаджет и доступ в интернет. VirtualityCMS предоставляет вам все современные решения для успешного управления сайтом. Инструкция по установке модуля. Интеграция выполнена партнером. По вопросам поддержки обращаться к VirtualityCMS. VirtualityCMS
Webasyst Webasyst заменяет множество разрозненных сервисов и приложений и объединяет все бизнес-процессы компании в единой защищенной системе. Приложения Webasyst помогают решать все задачи развивающегося бизнеса — от приема заказов через маркетплейсы и анализа клиентской базы (CRM) до корпоративной базы знаний, поддержки клиентов и прогноза кассовых разрывов. Webasyst

Pay сервисы

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

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

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

Инструкции:

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

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

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

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

SberPay позволяет оплачивать покупки в одно касание картами в приложении Сбербанк Онлайн

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

https://{Environment}.payture.com/api/MobilePay

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

Запрос

curl https://sandbox3.payture.com/api/MobilePay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d PayToken={PayToken} \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
-d Checksum=true \
-d Amount=12515 \

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

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

Ответ

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

Success: True False 3DS
<Pay OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="True" Amount="12515"/>
<Pay OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>

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

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

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

Запрос

curl https://sandbox3.payture.com/api/MobileBlock \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d PayToken={PayToken} \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
-d Checksum=true \
-d Amount=12515 \

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

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

Ответ

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

Success: True False 3DS
<Block OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="True" Amount="12515"/>
<Block OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Block OrderId="c3b33136-1180-643b-c159-6ee283970082" Key="Merchant" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>

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

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

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

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

Запрос

curl https://sandbox3.payture.com/vwapi/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d VWID=VWMerchantside \
--data-urlencode "DATA= \
VWUserLgn=123@ya.ru; \
VWUserPsw=2645363; \
CardId=FreePay; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515; \
PayToken={PayToken}; \
SessionType=Block; \
AdditionalField1=Value1; \
AdditionalField2=Value2" \

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

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

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

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

VWUserLgn=123@ya.ru;
VWUserPsw=2645363;
CardId=FreePay;
OrderId=c3b33136-1180-643b-c159-6ee283970082;
Amount=12515;
PayToken={PayToken};
SessionType=Block;
SecureCode=123;
IP=66.114.206.197;
AdditionalField1=Value1;
AdditionalField2=Value2
Параметр Описание Формат
VWUserLgnИдентификатор Покупателя в системе PaytureString [1..50]
Mandatory
VWUserPswДополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя)String [1..50]
Mandatory
CardIdДля платежей Apple Pay, Google Pay и Samsung Pay необходимо передавать значение CardId=FreePayString [36]
Mandatory
OrderId Уникальный идентификатор платежа в системе Продавца String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Для текущего запроса сумма платежа всегда используется из запроса (не из токена). Сумма должна совпадать со значением в токене
Integer
Mandatory
PayToken Платежные данные:
для Apple Pay — paymentData из PKPaymentToken в кодировке Base64
для Google Pay — token из paymentData в кодировке Base64
для Samsung Pay — paymentCredential в кодировке Base64
String
Mandatory
SessionType Тип платежа. Определяет количество стадий платежа:
Pay — одностадийный платеж (по умолчанию)
Block — двухстадийный платеж
String
Optional
AddCardПризнак сохранения карты
True — необходимо добавить карту. По умолчанию False
Boolean
Optional
SecureCode CVV2/CVC2 код
Параметр обязателен при оплате нетокенизированной картой через Google Pay
Integer
Optional
IPIP адрес Покупателя
IPv4 или IPv6
String
Optional
Cheque Информация о чеке в формате JSON, закодированная в Base64 String
Optional
Дополнительные параметры Любые дополнительные параметры Продавца
Дополнительных параметров может быть несколько. Каждый параметр передается отдельно

Optional

Ответ

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

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

Success: True False 3DS
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="True" Amount="12515"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="c3b33136-1180-643b-c159-6ee283970082" Success="False" ErrCode="DUPLICATE_ORDER_ID"/>
<Pay VWUserLgn="123@ya.ru" OrderId="c3b33136-1180-643b-c159-6ee283970082" MerchantOrderId="[CUSTOMERS_PAY]-[1715289]-[1]" Success="3DS" Amount="12515" ACSUrl="{ACSUrl}" PaReq="{PaReq}" ThreeDSKey="{ThreeDSKey}" ThreeDSVersion="1.0"/>
Параметр Описание Формат
SuccessПризнак успешности операции. Принимает значения:
True — операция успешна
False — операция неуспешна
3DS — необходима аутентификация 3‑D Secure
String
Mandatory
VWUserLgnИдентификатор Покупателя в системе Payture
Соответствует переданному в запросе
String [1..50]
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
MerchantOrderIdИдентификатор платежа в системе Payture
Дополнительный идентификатор платежа, присвоенный системой Payture. Содержит номер попытки совершения платежа
String [1..50]
Mandatory
Amount Сумма платежа в копейках (или другая минимальная единица валюты терминала)
Передается, если «Success=True» или «Success=3DS». Соответствует переданному в запросе
Integer
Optional
ACSUrl Адрес сервера аутентификации 3-D Secure
Передается, если «Success=3DS»
String
Optional
PaReq Запрос на аутентификацию 3-D Secure
Передается, если «Success=3DS»
String
Optional
ThreeDSKey Уникальный идентификатор транзакции (MD)
Передается, если «Success=3DS»
String
Optional
ThreeDSVersion Версия протокола 3-D Secure:
1.0 — первая версия
2.1 — вторая версия
Передается, если «Success=3DS»
String
Optional
AddInfo Дополнительные параметры транзакции, которые могут быть переданы в ответе платежного шлюза по согласованию со службой поддержки Payture
Описание формата и возможных параметров доступно здесь
Object
Optional
ErrCodeКод ошибки. См. коды ошибок
Передается, если «Success=False»
String
Optional
https://{Environment}.payture.com/vwapi/Add

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

Запрос

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

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

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

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

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

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

Optional

Ответ

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

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

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

Система быстрых платежей (СБП)

Функциональность Payture позволяет Покупателю оплачивать покупки по QR-коду через Систему быстрых платежей (СБП). Список банков-участников размещен на сайте СБП: sbp.nspk.ru/participants. Вопросы и ответы про СБП здесь: sbp.nspk.ru/faq.

В этом разделе представлен сценарий, когда оплата (отображение QR-кода) выполняется на стороне Продавца.

Выполнение платежей

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

Порядок выполнения платежа следующий:

  1. Покупатель переходит к оплате и выбирает оплату по QR-коду;
  2. Продавец формирует запрос GetQRCode для получения QR-кода;
  3. В ответе на запрос передается URL, который необходимо закодировать в QR-код (срок жизни QR-кода 72 часа). На мобильном устройстве по этой ссылке возможно напрямую открыть приложение банка (если у Покупателя установлено приложение банка, которое поддерживает оплату по QR);
  4. Продавец отображает QR-код и/или ссылку и ожидает результат оплаты (получение результата платежа возможно двумя способами: используя стандартный запрос статуса GetState и/или в нотификациях от платежного шлюза);
  5. Покупатель в мобильном приложении банка выбирает оплату по QR-коду, сканирует QR-код и подтверждает оплату;
  6. Payture направляет Продавцу нотификацию с результатами платежа:
  • EnginePaySuccess — при успешном выполнении;
  • EnginePayFail — при неуспешном платеже или истечении времени на оплату (72 часа).

Рекомендации по использованию запроса статуса

Если для получения результата оплаты Продавец использует запрос статуса GetState, рекомендуется применять следующую схему:

  1. Продавец начинает запрашивать статус через 15 секунд после отображения QR-кода:
  • в течение первых 30 секунд каждые 3 секунды;
  • в течение следующих 120 секунд каждые 5 секунд;
  • далее с увеличенными интервалами.
  1. Запрос статуса выполняется до получения статусов Charged или Rejected. Заказ в данном случае может принимать следующие статусы:
  • Pending — ожидание оплаты Покупателем;
  • Charged — платеж выполнен успешно;
  • Rejected — неуспешный платеж или время на оплату истекло (72 часа).

Описание метода GetState представлено в разделе Payture API, Payture InPay и Payture eWallet.

Возврат

Возврат выполняется стандартной командой Refund (см. в разделе Payture API, Payture InPay и Payture eWallet).

https://{Environment}.payture.com/ncapi/GetQRCode

Метод для получения QR-кода для оплаты через СБП.

Запрос

curl https://sandbox3.payture.com/ncapi/GetQRCode \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d PaymentKey=Merchant \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
-d Amount=12515 \
-d AdditionalField1=Value1 \
-d AdditionalField2=Value2 \

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

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

Optional

Ответ

Передается в JSON.

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

Success: True False
{
    "Success": true,
    "ErrCode": "NONE",
    "OrderId": "ca6db0c6-546e-4a75-a4c1-7ac7e6b428c1",
    "QRCodeId": "AD10004QCI3EQ5S19N689BOA45F54714",
    "QRCodePayload": "https://qr.nspk.ru/AD10004QCI3EQ5S19N689BOA45F54714?type=02&bank=100000000015&sum=2725&cur=RUB&crc=2D98"
}
{
    "Success": false,
    "ErrCode": "ACCESS_DENIED",
    "OrderId": "6bd5fe4b-0ee9-4f23-9f7d-36f0c5a764cb",
    "QRCodeId": null,
    "QRCodePayload": null
}
Параметр Описание Формат
Success Признак успешности операции. Принимает значения:
true — операция успешна, QR-код получен
false — не удалось выполнить операцию
Boolean
Mandatory
ErrCode Код ошибки. См. коды ошибок String
Mandatory
OrderId Идентификатор платежа в системе Продавца
Соответствует переданному в запросе
String [1..50]
Mandatory
QRCodeId Идентификатор QR-кода в СБП
Передается, если «Success=True»
String [1..32]
Mandatory
QRCodePayload Ссылка на оплату, которую необходимо закодировать в QR-код.
На мобильных устройствах возможно прямое перенаправление Покупателя по этой ссылке. В таком случае мобильное устройство Покупателя предложит открыть приложение банка (если у Покупателя установлено приложение банка, которое поддерживает оплату по QR)
Передается, если «Success=True»
String [1..999]
Mandatory

P2P переводы

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

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

Payture P2P Scheme

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

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

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

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

Запрос

curl https://sandbox3.payture.com/api/Pay \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d Key=Merchant \
-d Amount=12515 \
-d OrderId=c3b33136-1180-643b-c159-6ee283970082 \
--data-urlencode "PayInfo= \
PAN=4011111111111112; \
EMonth=12; \
EYear=22; \
CardHolder=Ivan Ivanov; \
SecureCode=123; \
OrderId=c3b33136-1180-643b-c159-6ee283970082; \
Amount=12515;" \
--data-urlencode "CustomFields= \
CardTo=4242424242424242;" \

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

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

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

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

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

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

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

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

Ответ

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

Кассы по 54-ФЗ

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

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

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

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

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

Пример Cheque с максимальным набором параметров (ФФД 1.2):

Orange Data JSON Base64

АТОЛ JSON Base64

Бухта JSON Base64

{
  "Positions":[
    {
      "Quantity":2.0,
      "Price":27.25,
      "Tax":2,
      "Text":"Пирожок",
      "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
      "AgentType":127,
      "AgentInfo":{
        "PaymentAgentOperation":"Операция плат. агента",
        "PaymentAgentPhoneNumbers":["+79260000004"],
        "PaymentOperatorName":"ООО \"Технологии\"",
        "PaymentOperatorAddress":"Москва, Зорге 29",
        "PaymentOperatorINN":"2306935781",
        "PaymentOperatorPhoneNumbers":["+79260000003"],
        "PaymentTransferOperatorPhoneNumbers":["+79260000002"]
      },
      "CustomsDeclarationNumber":"№ декларации",
      "Excise":1.00,
      "ManufacturerCountryCode":"643",
      "PaymentMethodType":3,
      "PaymentSubjectType":10,
      "ItemCode":"010460406000600021N4N57RSCBUZTQ\u001d2403004002910161218\u001d1724010191ffd0\u001d92tIAF/YVoU4roQS3M/m4z78yFq0fc/WsSmLeX5QkF/YVWwy8IMYAeiQ91Xa2z/fFSJcOkb2N+uUUmfr4n0mOX0Q==",
      "SupplierINN":"7203305114",
      "SupplierInfo":{
        "Name":"Наименование поставщика",
        "PhoneNumbers":["+79990000009"]
      },
      "QuantityMeasurementUnit": 10
    }
  ],
  "CustomerContact":"79991234567",
  "Payments":[
    {
      "Type":2,
      "Amount":54.50
    }
  ],
  "Message":"Чек Payture",
  "Group":"main",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
  "AdditionalAttribute":"Доп.реквиз.чека",
  "AdditionalUserAttribute":{
    "Name":"Наименование дополнительного реквизита пользователя",
    "Value":"Значение дополнительного реквизита пользователя"
  },
  "AutomatNumber":"1258",
  "Customer":"Иванов Иван Иванович",
  "CustomerINN":"142702309610",
  "PaymentAgentOperation":"Операция плат. агента",
  "PaymentAgentPhoneNumbers":["+79260000003"],
  "PaymentOperatorName":"ООО \"Ромашка\"",
  "PaymentOperatorAddress":"Москва, Дурова 10",
  "PaymentOperatorINN":"9715225506",
  "PaymentOperatorPhoneNumbers":["+79260000002","+74957870002"],
  "PaymentTransferOperatorPhoneNumbers":["+79260000001"],
  "SettlementAddress":"Москва, Золотая 72",
  "SettlementPlace":"https://site.ru/",
  "SupplierPhoneNumbers":["+74957870004"]
}
ewogICJQb3NpdGlvbnMiOlsKICAgIHsKICAgICAgIlF1YW50aXR5IjoyLjAsCiAgICAgICJQcmljZSI6MjcuMjUsCiAgICAgICJUYXgiOjIsCiAgICAgICJUZXh0Ijoi0J/QuNGA0L7QttC+0LoiLAogICAgICAiQWRkaXRpb25hbEF0dHJpYnV0ZSI6ItCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0Lkg0YDQtdC60LLQuNC30LjRgiDQv9GA0LXQtNC80LXRgtCwINGA0LDRgdGH0LXRgtCwIiwKICAgICAgIkFnZW50VHlwZSI6MTI3LAogICAgICAiQWdlbnRJbmZvIjp7CiAgICAgICAgIlBheW1lbnRBZ2VudE9wZXJhdGlvbiI6ItCe0L/QtdGA0LDRhtC40Y8g0L/Qu9Cw0YIuINCw0LPQtdC90YLQsCIsCiAgICAgICAgIlBheW1lbnRBZ2VudFBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDQiXSwKICAgICAgICAiUGF5bWVudE9wZXJhdG9yTmFtZSI6ItCe0J7QniBcItCi0LXRhdC90L7Qu9C+0LPQuNC4XCIiLAogICAgICAgICJQYXltZW50T3BlcmF0b3JBZGRyZXNzIjoi0JzQvtGB0LrQstCwLCDQl9C+0YDQs9C1IDI5IiwKICAgICAgICAiUGF5bWVudE9wZXJhdG9ySU5OIjoiMjMwNjkzNTc4MSIsCiAgICAgICAgIlBheW1lbnRPcGVyYXRvclBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDMiXSwKICAgICAgICAiUGF5bWVudFRyYW5zZmVyT3BlcmF0b3JQaG9uZU51bWJlcnMiOlsiKzc5MjYwMDAwMDAyIl0KICAgICAgfSwKICAgICAgIkN1c3RvbXNEZWNsYXJhdGlvbk51bWJlciI6IuKEliDQtNC10LrQu9Cw0YDQsNGG0LjQuCIsCiAgICAgICJFeGNpc2UiOjEuMDAsCiAgICAgICJNYW51ZmFjdHVyZXJDb3VudHJ5Q29kZSI6IjY0MyIsCiAgICAgICJQYXltZW50TWV0aG9kVHlwZSI6MywKICAgICAgIlBheW1lbnRTdWJqZWN0VHlwZSI6MTAsCiAgICAgICJJdGVtQ29kZSI6IjAxMDQ2MDQwNjAwMDYwMDAyMU40TjU3UlNDQlVaVFFcdTAwMWQyNDAzMDA0MDAyOTEwMTYxMjE4XHUwMDFkMTcyNDAxMDE5MWZmZDBcdTAwMWQ5MnRJQUYvWVZvVTRyb1FTM00vbTR6Nzh5RnEwZmMvV3NTbUxlWDVRa0YvWVZXd3k4SU1ZQWVpUTkxWGEyei9mRlNKY09rYjJOK3VVVW1mcjRuMG1PWDBRPT0iLAogICAgICAiU3VwcGxpZXJJTk4iOiI3MjAzMzA1MTE0IiwKICAgICAgIlN1cHBsaWVySW5mbyI6ewogICAgICAgICJOYW1lIjoi0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INC/0L7RgdGC0LDQstGJ0LjQutCwIiwKICAgICAgICAiUGhvbmVOdW1iZXJzIjpbIis3OTk5MDAwMDAwOSJdCiAgICAgIH0sCiAgICAgICJRdWFudGl0eU1lYXN1cmVtZW50VW5pdCI6IDEwCiAgICB9CiAgXSwKICAiQ3VzdG9tZXJDb250YWN0IjoiNzk5OTEyMzQ1NjciLAogICJQYXltZW50cyI6WwogICAgewogICAgICAiVHlwZSI6MiwKICAgICAgIkFtb3VudCI6NTQuNTAKICAgIH0KICBdLAogICJNZXNzYWdlIjoi0KfQtdC6IFBheXR1cmUiLAogICJHcm91cCI6Im1haW4iLAogICJUZW1wbGF0ZVRhZyI6IkRlZmF1bHQiLAogICJUZW1wbGF0ZUxhbmciOiJEZWZhdWx0IiwKICAiQWRkaXRpb25hbE1lc3NhZ2VzIjpbCiAgICB7CiAgICAgICJLZXkiOiJOYW1lIiwKICAgICAgIlZhbHVlIjoiVmFsdWUiCiAgICB9CiAgXSwKICAiQWRkaXRpb25hbEF0dHJpYnV0ZSI6ItCU0L7Qvy7RgNC10LrQstC40Lcu0YfQtdC60LAiLAogICJBZGRpdGlvbmFsVXNlckF0dHJpYnV0ZSI6ewogICAgIk5hbWUiOiLQndCw0LjQvNC10L3QvtCy0LDQvdC40LUg0LTQvtC/0L7Qu9C90LjRgtC10LvRjNC90L7Qs9C+INGA0LXQutCy0LjQt9C40YLQsCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8iLAogICAgIlZhbHVlIjoi0JfQvdCw0YfQtdC90LjQtSDQtNC+0L/QvtC70L3QuNGC0LXQu9GM0L3QvtCz0L4g0YDQtdC60LLQuNC30LjRgtCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyIKICB9LAogICJBdXRvbWF0TnVtYmVyIjoiMTI1OCIsCiAgIkN1c3RvbWVyIjoi0JjQstCw0L3QvtCyINCY0LLQsNC9INCY0LLQsNC90L7QstC40YciLAogICJDdXN0b21lcklOTiI6IjE0MjcwMjMwOTYxMCIsCiAgIlBheW1lbnRBZ2VudE9wZXJhdGlvbiI6ItCe0L/QtdGA0LDRhtC40Y8g0L/Qu9Cw0YIuINCw0LPQtdC90YLQsCIsCiAgIlBheW1lbnRBZ2VudFBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDMiXSwKICAiUGF5bWVudE9wZXJhdG9yTmFtZSI6ItCe0J7QniBcItCg0L7QvNCw0YjQutCwXCIiLAogICJQYXltZW50T3BlcmF0b3JBZGRyZXNzIjoi0JzQvtGB0LrQstCwLCDQlNGD0YDQvtCy0LAgMTAiLAogICJQYXltZW50T3BlcmF0b3JJTk4iOiI5NzE1MjI1NTA2IiwKICAiUGF5bWVudE9wZXJhdG9yUGhvbmVOdW1iZXJzIjpbIis3OTI2MDAwMDAwMiIsIis3NDk1Nzg3MDAwMiJdLAogICJQYXltZW50VHJhbnNmZXJPcGVyYXRvclBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDEiXSwKICAiU2V0dGxlbWVudEFkZHJlc3MiOiLQnNC+0YHQutCy0LAsINCX0L7Qu9C+0YLQsNGPIDcyIiwKICAiU2V0dGxlbWVudFBsYWNlIjoiaHR0cHM6Ly9zaXRlLnJ1LyIsCiAgIlN1cHBsaWVyUGhvbmVOdW1iZXJzIjpbIis3NDk1Nzg3MDAwNCJdCn0=
{
  "Positions":[
    {
      "Quantity":2.0,
      "Price":27.25,
      "Tax":2,
      "Text":"Пирожок",
      "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
      "PaymentMethodType":3,
      "PaymentSubjectType":10,
      "ItemCode":"010460406000600021N4N57RSCBUZTQ\u001d2403004002910161218\u001d1724010191ffd0\u001d92tIAF/YVoU4roQS3M/m4z78yFq0fc/WsSmLeX5QkF/YVWwy8IMYAeiQ91Xa2z/fFSJcOkb2N+uUUmfr4n0mOX0Q==",
      "SupplierINN":"7203305114",
      "SupplierInfo":{
        "Name":"Наименование поставщика",
        "PhoneNumbers":["+79990000009"]
      },
      "QuantityMeasurementUnit": 10
    }
  ],
  "CustomerContact":"79991234567",
  "Payments":[
    {
      "Type":2,
      "Amount":54.50
    }
  ],
  "Message":"Чек Payture",
  "Group":"main",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
      "PaymentAgentOperation":"Операция плат. агента",
      "PaymentAgentPhoneNumbers":["+79260000003"],
      "PaymentOperatorName":"ООО \"Ромашка\"",
      "PaymentOperatorAddress":"Москва, Дурова 10",
      "PaymentOperatorINN":"9715225506",
      "PaymentOperatorPhoneNumbers":["+79260000002"],
      "PaymentTransferOperatorPhoneNumbers":["+79260000001"],
      "SupplierPhoneNumbers":["+74957870004"]
}
ewogICJQb3NpdGlvbnMiOlsKICAgIHsKICAgICAgIlF1YW50aXR5IjoyLjAsCiAgICAgICJQcmljZSI6MjcuMjUsCiAgICAgICJUYXgiOjIsCiAgICAgICJUZXh0Ijoi0J/QuNGA0L7QttC+0LoiLAogICAgICAiQWRkaXRpb25hbEF0dHJpYnV0ZSI6ItCU0L7Qv9C+0LvQvdC40YLQtdC70YzQvdGL0Lkg0YDQtdC60LLQuNC30LjRgiDQv9GA0LXQtNC80LXRgtCwINGA0LDRgdGH0LXRgtCwIiwKICAgICAgIlBheW1lbnRNZXRob2RUeXBlIjozLAogICAgICAiUGF5bWVudFN1YmplY3RUeXBlIjoxMCwKICAgICAgIkl0ZW1Db2RlIjoiMDEwNDYwNDA2MDAwNjAwMDIxTjRONTdSU0NCVVpUUVx1MDAxZDI0MDMwMDQwMDI5MTAxNjEyMThcdTAwMWQxNzI0MDEwMTkxZmZkMFx1MDAxZDkydElBRi9ZVm9VNHJvUVMzTS9tNHo3OHlGcTBmYy9Xc1NtTGVYNVFrRi9ZVld3eThJTVlBZWlROTFYYTJ6L2ZGU0pjT2tiMk4rdVVVbWZyNG4wbU9YMFE9PSIsCiAgICAgICJTdXBwbGllcklOTiI6IjcyMDMzMDUxMTQiLAogICAgICAiU3VwcGxpZXJJbmZvIjp7CiAgICAgICAgIk5hbWUiOiLQndCw0LjQvNC10L3QvtCy0LDQvdC40LUg0L/QvtGB0YLQsNCy0YnQuNC60LAiLAogICAgICAgICJQaG9uZU51bWJlcnMiOlsiKzc5OTkwMDAwMDA5Il0KICAgICAgfSwKICAgICAgIlF1YW50aXR5TWVhc3VyZW1lbnRVbml0IjogMTAKICAgIH0KICBdLAogICJDdXN0b21lckNvbnRhY3QiOiI3OTk5MTIzNDU2NyIsCiAgIlBheW1lbnRzIjpbCiAgICB7CiAgICAgICJUeXBlIjoyLAogICAgICAiQW1vdW50Ijo1NC41MAogICAgfQogIF0sCiAgIk1lc3NhZ2UiOiLQp9C10LogUGF5dHVyZSIsCiAgIkdyb3VwIjoibWFpbiIsCiAgIlRlbXBsYXRlVGFnIjoiRGVmYXVsdCIsCiAgIlRlbXBsYXRlTGFuZyI6IkRlZmF1bHQiLAogICJBZGRpdGlvbmFsTWVzc2FnZXMiOlsKICAgIHsKICAgICAgIktleSI6Ik5hbWUiLAogICAgICAiVmFsdWUiOiJWYWx1ZSIKICAgIH0KICBdLAogICAgICAiUGF5bWVudEFnZW50T3BlcmF0aW9uIjoi0J7Qv9C10YDQsNGG0LjRjyDQv9C70LDRgi4g0LDQs9C10L3RgtCwIiwKICAgICAgIlBheW1lbnRBZ2VudFBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDMiXSwKICAgICAgIlBheW1lbnRPcGVyYXRvck5hbWUiOiLQntCe0J4gXCLQoNC+0LzQsNGI0LrQsFwiIiwKICAgICAgIlBheW1lbnRPcGVyYXRvckFkZHJlc3MiOiLQnNC+0YHQutCy0LAsINCU0YPRgNC+0LLQsCAxMCIsCiAgICAgICJQYXltZW50T3BlcmF0b3JJTk4iOiI5NzE1MjI1NTA2IiwKICAgICAgIlBheW1lbnRPcGVyYXRvclBob25lTnVtYmVycyI6WyIrNzkyNjAwMDAwMDIiXSwKICAgICAgIlBheW1lbnRUcmFuc2Zlck9wZXJhdG9yUGhvbmVOdW1iZXJzIjpbIis3OTI2MDAwMDAwMSJdLAogICAgICAiU3VwcGxpZXJQaG9uZU51bWJlcnMiOlsiKzc0OTU3ODcwMDA0Il0KfQ==
{
  "Positions":[
    {
      "Quantity":2.0,
      "Price":27.25,
      "Tax":2,
      "Text":"Пирожок",
      "PaymentMethodType":3,
      "PaymentSubjectType":10,
    }
  ],
  "CustomerContact":"79991234567",
  "Payments":[
    {
      "Type":2,
      "Amount":54.50
    }
  ],
  "Message":"Чек Payture",
  "Group":"main",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ]
}
ewogICJQb3NpdGlvbnMiOlsKICAgIHsKICAgICAgIlF1YW50aXR5IjoyLjAsCiAgICAgICJQcmljZSI6MjcuMjUsCiAgICAgICJUYXgiOjIsCiAgICAgICJUZXh0Ijoi0J/QuNGA0L7QttC+0LoiLAogICAgICAiUGF5bWVudE1ldGhvZFR5cGUiOjMsCiAgICAgICJQYXltZW50U3ViamVjdFR5cGUiOjEwLAogICAgfQogIF0sCiAgIkN1c3RvbWVyQ29udGFjdCI6Ijc5OTkxMjM0NTY3IiwKICAiUGF5bWVudHMiOlsKICAgIHsKICAgICAgIlR5cGUiOjIsCiAgICAgICJBbW91bnQiOjU0LjUwCiAgICB9CiAgXSwKICAiTWVzc2FnZSI6ItCn0LXQuiBQYXl0dXJlIiwKICAiR3JvdXAiOiJtYWluIiwKICAiVGVtcGxhdGVUYWciOiJEZWZhdWx0IiwKICAiVGVtcGxhdGVMYW5nIjoiRGVmYXVsdCIsCiAgIkFkZGl0aW9uYWxNZXNzYWdlcyI6WwogICAgewogICAgICAiS2V5IjoiTmFtZSIsCiAgICAgICJWYWx1ZSI6IlZhbHVlIgogICAgfQogIF0KfQ==

Состав Cheque

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

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

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

Параметр Описание (тег) Формат Orange Data АТОЛ Бухта
Quantity Количество предмета расчета (товара, услуги и т.д.) (1023)
Десятичное число с точностью до 3 цифр после точки
Float
Mandatory
+ + +
Price Цена в рублях за единицу предмета расчета с учетом скидок и наценок (1079)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
+ + +
Tax Ставка НДС (1199): значения
Orange Data/Атол:
1Ставка НДС 20%
2Ставка НДС 10%
3Ставка НДС расч. 20/120
4Ставка НДС расч. 10/110
5Ставка НДС 0%
6       НДС не облагается
Бухта:
1Ставка НДС 20%
2Ставка НДС 10%
5Ставка НДС 0%
1000Ставка НДС 12%
Integer
Mandatory
+ + +
Text Наименование предмета расчета (название товара, услуги и т.д.) (1030) String [1..128]
Mandatory
+ + +
AdditionalAttribute Дополнительный реквизит предмета расчета (1191) String [1..64]
Optional
+ +
AgentType Признак агента по предмету расчета (1222): значения
Число от 1 до 127 (битовое поле), где номер бита обозначает, что оказывающий услугу Покупателю (клиенту) пользователь является:
Бит Описание
0Банковский платежный агент
1Банковский платежный субагент
2Платежный агент
3Платежный субагент
4Поверенный
5Комиссионер
6Иной агент
Integer
Optional
+ +
AgentInfo Данные агента (1223)
Описание структуры AgentInfo см. ниже
Object
Optional
+
PaymentMethodType Способ расчета (1214): значения
Число от 1 до 7:
1Предоплата 100%
2Частичная предоплата
3Предварительная оплата (Аванс)
4Полный расчет
5Частичный расчет и кредит
6Передача в кредит
7Оплата кредита
Integer
Optional
+ + +
PaymentSubjectType Предмет расчета (1212): значения
Число от 1 до 13:
1Товар
2Подакцизный товар
3Работа
4Услуга
5Ставка азартной игры
6Выигрыш азартной игры
7Лотерейный билет
8Выигрыш лотереи
9Предоставление РИД
10Платеж
11Агентское вознаграждение
12Составной предмет расчета
13Иной предмет расчета
14Имущественное право
15Внереализационный доход
16Иные платежи и взносы
17Торговый сбор
18Курортный сбор
19Залог
20Расход
21Взносы на обязательное пенсионное страхование ИП
22Взносы на обязательное пенсионное страхование
23Взносы на обязательное медицинское страхование ИП
24Взносы на обязательное медицинское страхование
25Взносы на обязательное социальное страхование
26Платеж казино
27Выдача денежных средств
30АТНМ (не имеющем кода маркировки)
31АТМ (имеющем код маркировки)
32ТНМ
33ТМ
Integer
Optional
+ + +
CustomsDeclarationNumber Номер таможенной декларации (1231) String [1..32]
Optional
+
Excise Акциз (1229)
Десятичное число с точностью до 2 цифр после точки
Float
Optional
+
ManufacturerCountryCode Код страны происхождения товара (1230) String [1..3]
Optional
+
NomenclatureCode Код товарной номенклатуры (1162) (base64 кодированный массив от 1 до 32 байт). Используется только для ФФД 1.05 String
Optional
+ + +
ItemCode Код маркировки (2000) (значение, считанное сканером). Используется только для ФФД 1.2 String
Optional
+ +
SupplierINN ИНН поставщика (1226) String [10..12]
Optional
+ +
SupplierInfo Данные поставщика (1224)
Описание структуры SupplierInfo см. ниже
Object
Optional
+ +
UnitOfMeasurement Единица измерения предмета расчета (1197). Используется только для ФФД 1.05 String [1..16]
Optional
+
QuantityMeasurementUnit Единица измерения предмета расчета (2108) (число от 0 до 255, 0 если не передано). Используется только для ФФД 1.2 Integer
Optional
+ +

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

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

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

Параметр Описание Формат Orange Data АТОЛ Бухта
Key Название параметра String
Mandatory
+ + +
Value Значение параметра String
Mandatory
+ + +

Состав Cheque.AdditionalUserAttribute

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

Состав Cheque.Positions.AgentInfo

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

Состав Cheque.Positions.SupplierInfo

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

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

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

где {Environment} — программная среда, {Command} – название команды.

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

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

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

Возможности

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

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

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

Запрос

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

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

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

Orange Data АТОЛ Бухта
{
  "Key":"Merchant",
  "Password":"123",
  "Message":"Чек Payture",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
  "Cheque":{
    "Id":"{{$timestamp}}",
    "INN":"7701870710",
    "Group":"main",
    "Content":{
      "Type":2,
      "Positions":[
        {
          "Quantity":1,
          "Price":11,
          "Tax":1,
          "Text":"Пирожок",
          "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
          "AgentType":2,
          "CustomsDeclarationNumber":"1271",
          "Excise":1.00,
          "ManufacturerCountryCode":"643",
          "PaymentMethodType":7,
          "PaymentSubjectType":1,         "ItemCode":"010460406000600021N4N57RSCBUZTQ\u001d2403004002910161218\u001d1724010191ffd0\u001d92tIAF/YVoU4roQS3M/m4z78yFq0fc/WsSmLeX5QkF/YVWwy8IMYAeiQ91Xa2z/fFSJcOkb2N+uUUmfr4n0mOX0Q==",
          "SupplierINN":"7701870710",
          "SupplierInfo":{
            "Name":"Наименование поставщика",
            "PhoneNumbers":["+79990000009"]
          },
          "QuantityMeasurementUnit": 10
        }
      ],
      "CheckClose":{
        "Payments":[
          {
            "Type":1,
            "Amount":11
          }
        ],
     "TaxationSystem":1
      },
      "CustomerContact":"roman@test.com",
      "AdditionalAttribute":"Доп.реквиз.чека",
      "AdditionalUserAttribute":{
        "Name":"Наименование дополнительного реквизита пользователя",
        "Value":"Значение дополнительного реквизита пользователя"
      },
      "AutomatNumber":"1258",
      "Customer":"Иванов Иван Иванович",
      "CustomerINN":"142702309610",
      "PaymentAgentOperation":"Операция плат. агента",
      "PaymentAgentPhoneNumbers":["+79260000003"],
      "PaymentOperatorName":"ООО \"Ромашка\"",
      "PaymentOperatorAddress":"Москва, Дурова 10",
      "PaymentOperatorINN":"9715225506",
      "PaymentOperatorPhoneNumbers":["+79260000002"],
      "PaymentTransferOperatorPhoneNumbers":["+79260000001"],
      "SettlementAddress":"Москва, Золотая 72",
      "SettlementPlace":"https://site.ru/",
      "SupplierPhoneNumbers":["+74957870004"]
    }
  }
}
{
  "Key":"Merchant",
  "Password":"123",
  "TemplateTag":"Default",
  "Message":"Чек Payture",
  "TemplateLang":"Default",
  "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
  "Cheque":{
    "Id":"{{$timestamp}}",
    "INN":"5544332219", 
    "Group":"main",
    "Content":{
      "Type":1,
      "Positions":[
        {
          "Quantity":1,
          "Price":27.25,
          "Tax":1,
          "Text":"Пирожок",
          "AdditionalAttribute":"Дополнительный реквизит предмета расчета",
          "PaymentMethodType":7,
          "PaymentSubjectType":1,
          "ItemCode":"MDEwNDYwNzQyODY3OTA5MDIxNmVKSWpvV0g1NERkVSA5MWZmZDAgOTJzejZrU1BpckFwZk1CZnR2TGJvRTFkbFdDLzU4aEV4UVVxdjdCQmtabWs0PQ=",
          "SupplierINN":"5544332219",
          "SupplierInfo":{
            "Name":"Наименование поставщика",
            "PhoneNumbers":["+79990000009"]
          },
          "QuantityMeasurementUnit": 10
        }
      ],
      "CheckClose":{
        "Payments":[
          {
            "Type":2,
            "Amount":27.25
          }
        ],
        "TaxationSystem":1
      },
      "CustomerContact":"user@mail.com",
      "PaymentAgentOperation":"Операция плат. агента",
      "PaymentAgentPhoneNumbers":["+79260000003"],
      "PaymentOperatorName":"ООО \"Ромашка\"",
      "PaymentOperatorAddress":"Москва, Дурова 10",
      "PaymentOperatorINN":"9715225506",
      "PaymentOperatorPhoneNumbers":["+79260000002"],
      "PaymentTransferOperatorPhoneNumbers":["+79260000001"],
      "SupplierPhoneNumbers":["+74957870004"]
    }
  }
}
{
  "Key":"Merchant",
  "Password":"123",
  "Message":"Чек Payture",
  "TemplateTag":"Default",
  "TemplateLang":"Default",
   "AdditionalMessages":[
    {
      "Key":"Name",
      "Value":"Value"
    }
  ],
  "Cheque":{
    "Id":"{{$timestamp}}",
    "INN":"140840021970",
    "Group":"main",
    "Content":{
      "Type":2,
      "Positions":[
        {
          "Quantity":1,
          "Price":11,
          "Tax":1,
          "Text":"Пирожок",
          "PaymentMethodType":7,
          "PaymentSubjectType":1,
          "NomenclatureCode":"Tm9tZW5rbA=="
        }
      ],
      "CheckClose":{
        "Payments":[
          {
            "Type":1,
            "Amount":11
          }
        ]
      },
      "CustomerContact":"roman@test.com"
    }
  }
}
```
Параметр Описание Формат Orange Data АТОЛ Бухта
Key Наименование Терминала
Предоставляется с параметрами тестового/рабочего доступа
String
Mandatory
+ + +
Password Пароль для выполнения запросов apiecheque
Предоставляется с параметрами тестового/рабочего доступа
String
Mandatory
+ + +
Cheque Параметры чека
Описание структуры Cheque см. ниже
Object
Mandatory
+ + +
Message Тема письма или строка в сообщении СМС String [1..50]
Optional
+ + +
TemplateTag Название используемого шаблона чека
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется шаблон с названием «Default»
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String
Optional
+ + +
TemplateLang Язык шаблона чека
Необходимо передавать, если Продавец применяет несколько шаблонов. Если параметр не передан, используется язык «Default»
В общем случае можно задать значение по умолчанию через службу поддержки Payture и не передавать
String
Optional
+ + +
AdditionalMessages Позволяет добавить любые параметры на шаблон чека в плейсхолдер с названием из Key
Описание элемента AdditionalMessages см. ниже. Общая длина максимум 1000 символов
Array of objects
Optional
+ + +

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

Параметр Описание Формат Orange Data АТОЛ Бухта
Key Название параметра String
Mandatory
+ + +
Value Значение параметра String
Mandatory
+ + +

Состав Cheque

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

Состав Cheque.Content

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

Состав Cheque.Content.AdditionalUserAttribute

Параметр Описание (тег) Формат Orange Data АТОЛ Бухта
Name Наименование дополнительного реквизита пользователя (1085) String [1..64]
Mandatory
+ - -
Value Значение дополнительного реквизита пользователя (1086) String [1..175]
Mandatory
+ + -

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

Параметр Описание (тег) Формат Orange Data АТОЛ Бухта
Quantity Количество предмета расчета (товара, услуги и т.д.) (1023)
Десятичное число с точностью до 3 цифр после точки
Float
Mandatory
+ + +
Price Цена в рублях за единицу предмета расчета с учетом скидок и наценок (1079)
Десятичное число с точностью до 2 цифр после точки
Float
Mandatory
+ + +
Tax Ставка НДС (1199): значения
Orange Data/Атол:
1Ставка НДС 20%
2Ставка НДС 10%
3Ставка НДС расч. 20/120
4Ставка НДС расч. 10/110
5Ставка НДС 0%
6       НДС не облагается
Бухта:
1Ставка НДС 20%
2Ставка НДС 10%
5Ставка НДС 0%
1000Ставка НДС 12%
Integer
Mandatory
+ + +
Text Наименование предмета расчета (название товара, услуги и т.д.) (1030) String [1..128]
Mandatory
+ + +
AdditionalAttribute Дополнительный реквизит предмета расчета (1191) String [1..64]
Optional
+ + -
AgentType Признак агента по предмету расчета (1222): значения
Число от 1 до 127 (битовое поле), где номер бита обозначает, что оказывающий услугу Покупателю (клиенту) пользователь является:
Бит Описание
0Банковский платежный агент
1Банковский платежный субагент
2Платежный агент
3Платежный субагент
4Поверенный
5Комиссионер
6Иной агент
Integer
Optional
+ + -
AgentInfo Данные агента (1223)
Описание структуры AgentInfo см. ниже
Object
Optional
+ - -
CustomsDeclarationNumber Номер таможенной декларации (1231) String [1..32]
Optional
+ - -
Excise Акциз (1229)
Десятичное число с точностью до 2 цифр после точки
Float
Optional
+ - -
ManufacturerCountryCode Код страны происхождения товара (1230) String [1..3]
Optional
+ + +
PaymentMethodType Способ расчета (1214): значения
Число от 1 до 7:
1Предоплата 100%
2Частичная предоплата
3Предварительная оплата (Аванс)
4Полный расчет
5Частичный расчет и кредит
6Передача в кредит
7Оплата кредита
Integer
Optional
+ + +
PaymentSubjectType Предмет расчета (1212): значения
Число от 1 до 13:
1Товар
2Подакцизный товар
3Работа
4Услуга
5Ставка азартной игры
6Выигрыш азартной игры
7Лотерейный билет
8Выигрыш лотереи
9Предоставление РИД
10Платеж
11Агентское вознаграждение
12Составной предмет расчета
13Иной предмет расчета
14Имущественное право
15Внереализационный доход
16Иные платежи и взносы
17Торговый сбор
18Курортный сбор
19Залог
20Расход
21Взносы на обязательное пенсионное страхование ИП
22Взносы на обязательное пенсионное страхование
23Взносы на обязательное медицинское страхование ИП
24Взносы на обязательное медицинское страхование
25Взносы на обязательное социальное страхование
26Платеж казино
27Выдача денежных средств
30АТНМ (не имеющем кода маркировки)
31АТМ (имеющем код маркировки)
32ТНМ
33ТМ
Integer
Optional
+ + +
NomenclatureCode Код товарной номенклатуры (1162) (base64 кодированный массив от 1 до 32 байт). Используется только для ФФД 1.05 String
Optional
+ + +
ItemCode Код маркировки (2000) (значение, считанное сканером). Используется только для ФФД 1.2 String
Optional
+ + -
SupplierINN ИНН поставщика (1226) String [10..12]
Optional
+ + -
SupplierInfo Данные поставщика (1224)
Описание структуры SupplierInfo см. ниже
Object
Optional
+ + -
UnitOfMeasurement Единица измерения предмета расчета (1197). Используется только для ФФД 1.05 String [1..16]
Optional
+ - -
QuantityMeasurementUnit Единица измерения предмета расчета (2108) (число от 0 до 255, 0 если не передано). Используется только для ФФД 1.2 Integer
Optional
+ + -

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

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

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

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

Состав Cheque.Content.CheckClose

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

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

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

Ответ

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

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

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

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

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

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

Запрос

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

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

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

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

Состав Body

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

Состав Body.Content

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

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

Ответ

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

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

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

{
  "Success":true,
  "ErrCode":"NONE",
  "ErrMessages":[
    "Отсутсвует поле 'CauseDocumentNumber'"
  ],
  "Status":"BadRequest"
}
Параметр Описание Формат
Success Признак успешности выполнения операции в платежном шлюзе. Принимает значения:
true — операция успешна
false — операция неуспешна
Boolean
Mandatory
ErrCode Код ошибки платежного шлюза String
Mandatory
Status Статус чека. См. статусы чеков String
Mandatory
ErrMessages Сообщения об ошибках, полученные от сервиса онлайн-касс
Передаются, если получены от сервиса онлайн-касс
Array of strings
Optional
Статус Значение
AcceptedЗаявка на создание чека принята (находится в очереди на обработку кассой или в процессе обработки)
CreatedЧек сформирован и получен от кассы
ConflictЧек с указанным Id уже существует
BadRequestЗапрос на создание чека имеет неверный формат
UnauthorizedНе удалось авторизоваться для работы с кассой
UnknownСтатус не известен, чек не создан
TimeoutНе удалось получить данные чека за допустимое время от сериса онлайн-касс
NotFoundЧека с указанным Id не существует
https://{Environment}.payture.com/apicheque/Status/

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

Запрос

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

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

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

Ответ

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

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

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

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

Состав Cheques.Cheque

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

Коды ошибок

Код ошибки Значение
ACCESS_DENIED Запрещены операции с данным набором параметров логин/пароль для Терминала
AMOUNT_ERROR Ошибка суммы операции. Превышена сумма либо сумма операции не проверена в биллинге
AMOUNT_EXCEED Запрос был отклонен из-за недостатка средств на карте или счете плательщика
API_NOT_ALLOWED Запрет использования API с данного IP
CARD_EXPIRED Срок действия карты указан некорректно, истек или отсутствует
CARD_NOT_FOUND Не найдена карта по данному идентификатору
CURRENCY_NOT_ALLOWED Валюта не разрешена для предприятия
CUSTOMER_NOT_FOUND Покупатель не найден
DUPLICATE_CARD Карта уже существует
DUPLICATE_CUSTOMER Покупатель уже зарегистрирован
DUPLICATE_ORDER_ID Данный номер заказа уже использовался ранее
DUPLICATE_PROCESSING_ORDER_ID Заказ с данным идентификатором уже существует в системе процессинга
FRAUD_ERROR Недопустимая транзакция согласно настройкам антифродового фильтра
GEO_CARD_RESTRICTION Ограничение на стороне процессинга по стране эмитента
ILLEGAL_ORDER_STATE Попытка выполнения недопустимой операции для текущего состояния платежа в Payture
INSTALLMENT_NOT_ALLOWED Рассрочка не разрешена для дебетовых карт
INTERNAL_ERROR Внутренняя ошибка шлюза
ISSUER_BLOCKED_CARD Запрос отклонен из-за ограничений на карте или счете держателя. Повторная попытка выполнения операции запрещена требованиями МПС
ISSUER_CARD_FAIL Запрос отклонен эмитентом. Клиенту рекомендуется обратиться в банк, выпустивший карту
ISSUER_CRITICAL_CARD Запрос отклонен из-за попытки использования закрытой, украденной или утерянной карты. Повторная попытка выполнения операции запрещена требованиями МПС
ISSUER_CRITICAL_ERROR Критическая ошибка от эмитента. Повторная попытка выполнения операции запрещена требованиями МПС
ISSUER_FAIL Внутренняя ошибка эмитента
ISSUER_LIMIT_AMOUNT_FAIL Отклонение запроса из-за превышения лимита карты по общей сумме операций данного типа. Лимит устанавливается эмитентом на определенный период, как правило, день или месяц
ISSUER_LIMIT_COUNT_FAIL Отклонение запроса из-за превышения лимита карты по общему количеству операций данного типа. Лимит устанавливается эмитентом на определенный период, как правило, день
ISSUER_LIMIT_FAIL Предпринята попытка выполнить транзакцию, превышающая ограничения, установленные эмитентом
ISSUER_TIMEOUT Запрос был отклонен из-за невозможности его обработки в установленное время на стороне эмитента
MERCHANT_RESTRICTION В связи с отработкой антифродового фильтра операция направлена на другой платежный терминал
MPI_GATEWAY_ERROR Ошибка сервиса MPI (шлюз)
MPI_ERROR Ошибка сервиса MPI (МПС)
NEED_3DS_REQUEST Ошибка оплаты, необходимо запросить 3DS аутентификацию
ORDER_NOT_FOUND Не найдена транзакция
ORDER_TIMEOUT Время платежа (сессии) истекло
PAYMENT_ENGINE_ERROR Ошибка взаимодействия в ядре процессинга
PROCESSING_ACCESS_DENIED Доступ к процессингу запрещен
PROCESSING_AMOUNT_ERROR Запрос был отклонен из-за того, что сумма операции не соответствует условиям выполнения на стороне процессинга
PROCESSING_CARD_FAIL Ограничения по типу карты со стороны процессинга
PROCESSING_ERROR Ошибка функционирования системы, имеющая общий характер. Фиксируется платежной сетью или эмитентом
PROCESSING_FRAUD_ERROR Запрос был отклонен, так как операция была признана мошеннической со стороны процессинга.
PROCESSING_ILLEGAL_ORDER_STATE Попытка выполнения недопустимой операции для текущего состояния платежа в процессинге
PROCESSING_MERCHANT_LIMIT Запрос был отклонен, так как сработал лимит на ТСП со стороны процессинга
PROCESSING_ORDER_NOT_FOUND Не найдена транзакция в процессинге
PROCESSING_TIMEOUT Запрос был отклонен из-за невозможности его обработки в установленное время на стороне процессинга
PROCESSING_WRONG_PARAMS Неверный набор или формат параметров для процессинга
RECURRENT_PAY_UNBINDED Попытка выполнения рекуррентного платежа для отвязанной карты/счета
THREE_DS_AUTH_ERROR Ошибка авторизации 3DS
THREE_DS_ERROR Ошибка оплаты 3DS
THREE_DS_NOT_ATTEMPTED 3DS не вводился
THREE_DS_NOTENROLLED Карта не вовлечена в систему 3DS
UNKNOWN_ERROR Неклассифицированная ошибка со стороны процессинга. Необходимо обратиться в поддержку
WRONG_CARD_INFO Введены неверные параметры карты
WRONG_CONFIRM_CODE Неверный код подтверждения
WRONG_CVV Отклонение запроса по причине отсутствия или некорректного CVV
WRONG_PAN Неверный номер карты
WRONG_CARDHOLDER Недопустимое имя держателя карты
WRONG_PARAMS Неверный набор или формат параметров
WRONG_PAY_INFO Некорректный параметр PayInfo (неправильно сформирован или нарушена криптограмма)
WRONG_BINDING_PAYMENT Ошибка при попытке рекуррентного платежа
OFD_ERROR Ошибка в ответе сервиса, взаимодействующего с кассами
CHEQUE_DATA_INVALID Для всех оплат через Терминал должны отправляться чеки, но данные для чека переданы некорректные или отсутствуют
WRONG_CHEQUE_AMOUNT Сумма позиций чека не совпадает с суммой, переданной для списания
CHEQUE_RESENDING Чек уже был отправлен
CHEQUE_WRONG_RECIPIENT Формат адреса или телефона получателя чека невалидный
CHEQUE_TIMEOUT Статус чека не получен за допустимое время от сервиса, взаимодействующего с кассами
CHEQUE_PARSE_ERROR Ошибка при парсинге строки чека в json
CHEQUE_NOT_FOUND Чек не найден
CHEQUE_WRONG_STATUS Чек имеет статус, отличный от ожидаемого (подробности зависят от контекста)
CHEQUE_DUPLICATE Чек с данным идентификатором уже существует

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

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

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

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

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

Карты с успешным результатом (3DS 1.0)

Номер картыКодСрок действияМПСРезультат
521885194695548412312/25MastercardУспешный платеж без 3DS с опциональным CVV
401111111111111212312/25VisaУспешный платеж без 3DS с опциональным CVV
411111111110003112312/25VisaУспешный платеж без 3DS с опциональным CVV
411111111110002312312/25VisaУспешный платеж без 3DS с обязательным CVV
548673205886447112312/25MastercardУспешный платеж с 3DS 1.0
411111111111111112312/25VisaУспешный платеж с 3DS 1.0
220220831111001012312/25МИРУспешный платеж с 3DS 1.0
639002888000000001012312/25MaestroУспешный платеж с 3DS 1.0
410040111110006212312/25VisaТаймаут 40 секунд во время блокировки
410040111110072412312/25VisaТаймаут 40 секунд во время разблокировки
410040111110032812312/25VisaТаймаут 40 секунд во время списания
410040111110302512312/25VisaТаймаут 40 секунд во время возврата

Карты с успешным результатом (3DS 2.0)

Номер картыСрок действия/кодВерсия 3DSМПСРезультат
2200240607992720Любой2.0МИРУспешный платеж (Frictionless Flow). 3DS метод не требуется
2200240603241437Любой2.0МИРУспешный платеж (Challenge Flow). 3DS метод не требуется
2200240607564008Любой2.0МИРУспешный платеж (Frictionless Flow). Необходим 3DS метод
2200240607136989Любой2.0МИРУспешный платеж (Challenge Flow). Необходим 3DS метод
2200240848120503Любой1.0МИРУспешный платеж
5492230007795070Любой1.0MastercardУспешный платеж
4714870000534086Любой1.0VisaУспешный платеж

Карты с ошибками

Номер картыКодСрок действияМПСРезультат
411110100000004612312/25VisaОшибка AMOUNT_EXCEED при превышении суммы в 100 рублей (Amount>=10001)
330000000000000152112/25Ошибка AMOUNT_EXCEED — недостаточно средств
440000000000000852109/11VisaОшибка WRONG_EXPIRE_DATE — неверный срок действия карты
550000000000000452112/25MastercardОшибка FRAUD_ERROR — карта в черном списке
660000000000000137412/25MaestroОшибка CARD_NOT_FOUND — несуществующая карта
411111111110005612312/25VisaОшибка PROCESSING_ERROR
411111111110007212312/25VisaОшибка ISSUER_BLOCKED_CARD
411111111110008012312/25VisaОшибка ISSUER_CARD_FAIL
411111111110022112312/25VisaОшибка PROCESSING_ERROR во время списания
411111111110062712312/25VisaОшибка PROCESSING_ERROR во время разблокировки
411111111110202912312/25VisaОшибка PROCESSING_ERROR во время возврата
481111111111111412312/25VisaНеуспешный платеж с 3DS 1.0 (PROCESSING_ERROR при завершении оплаты)
471111111111111512312/25VisaНеуспешный платеж с 3DS 1.0 (PROCESSING_ERROR при завершении оплаты)

Нотификации

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

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

Примеры нотификаций

Тип: Email HTTP POST
Код события: [EnginePaySuccess]
Is3DS: [False]
ForwardedTo: [NotForwarded]
Notification: [EnginePaySuccess]
MerchantContract: [Merchant]
Success: [True]
TransactionDate: [08.05.2019 15:36:27]
ErrCode: [NONE]
OrderId: [e83f0323-fca0-0f91-9db9-393523563bc5]
Amount: [12677]
MerchantId: [1]
Is3DS=False&ForwardedTo=NotForwarded&Notification=EnginePaySuccess&MerchantContract=Merchant&Success=True&TransactionDate=08.05.2019+15%3A36%3A27&ErrCode=NONE&OrderId=e83f0323-fca0-0f91-9db9-393523563bc5&Amount=12677&MerchantId=1
  • HTTP POST — HTTP POST запрос. По умолчанию запрос отправляется один раз. При необходимости через службу поддержки Payture можно установить количество повторных попыток отправки нотификации и период между ними (повторные попытки выполняются, если не был получен ответ «200 OK»). Тело запроса состоит из Url Encoded строки, содержащей пары ключей и их значений, разделённых символом «&» (амперсанд). Ключи и значения разделены символом «=» (равно).
  • Email — сообщение по указанному адресу, отправляется один раз.

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

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

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

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

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

Примеры нотификаций при использовании шифрования

Encrypted Decrypted
DATA=4Rk65RLgsa7fUBoB72rz3TwrL3nHouyDQf91kK2eAPEEIp9DYqPFm0AnJh2eQBTcPVsfG9F8XzGtMu0zUuuxU%2FNxUVaxGDFw54n3kb5d%2FdnUMU2HaGeFTHGm%2F2p9JwmtTow82ZszX9e10u07a9x5xmn%2B3VXRJNttFcsiDBCuH3qdEmBYo9EhOVROjngki1aGucw0ZL3ifY4MEPbQrj0IWWcQ3LBGe2jhcaXc6iAGyKiDQZKymW0PwDvc3YAO29POzP0YB7tJtwPjIJgr%2FOSt31030P7hCtjM2XYjGPN4iy%2Fi2CV5bCw8ve01ZWP8XkPF
Is3DS=False;ForwardedTo=NotForwarded;Notification=EnginePaySuccess;MerchantContract=Merchant;Success=True;TransactionDate=08.05.2020 17:21:24;ErrCode=NONE;OrderId=ea2209f1-c062-700a-a0f7-41055f23f027;Amount=12495;MerchantId=1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

СтатусЗначение
NewПлатеж зарегистрирован в шлюзе, но его обработка в процессинге не начата
PreAuthorized3DSПлатеж находится в процессе аутентификации по протоколу 3-D Secure
AuthorizedСредства заблокированы, но не списаны (2-х стадийный платеж)
VoidedСредства на карте были заблокированы и разблокированы (2-х стадийный платеж)
ChargedДенежные средства списаны с карты Покупателя
RefundedУспешно произведен полный возврат денежных средств на карту Покупателя (при частичном возврате платеж остается в статусе Charge, но изменяется его сумма)
ForwardedПлатеж был перенаправлен на другой Терминал
RejectedНеуспешный платеж
ErrorПоследняя операция по платежу завершена с ошибкой
ChargebackУспешно завершенная транзакция, по которой впоследствии поступила претензия от банка-эмитента
ObsoleteЭтот статус получает попытка оплаты, по которой не был завершен процесс аутентификации по протоколу 3-D Secure и была совершена новая попытка оплаты (статус ранней попытки меняется с PreAuthorized3DS на Obsolete). Попытки оплаты доступны в интерфейсах Payture InPay и Payture eWallet
PendingОжидание оплаты Покупателем. В зависимости от сценария оплаты также могут присутствовать статусы PendingBlock, PendingUnblock, PendingCharge и PendingRefund. Правила обработки статусов Pending см. ниже

Группа статусов Pending обозначает транзакции, которые находятся в процессе выполнения. Рекомендуется обрабатывать данные статусы одним из следующих образов:

Обработка нотификаций с результатами платежа

В случае, если транзакции был присвоен один из статусов группы Pending, Payture направляет Продавцу нотификацию в зависимости от сценария оплаты:

  • EngineBlockPending, EngineChargePending, EngineRefundPending, EngineUnblockPending, CustomerRefundPending.

Далее, при получении финального статуса, Payture направляет Продавцу нотификацию с результатами платежа:

  • EnginePaySuccess, EngineBlockSuccess, EngineChargeSuccess, EngineRefundSuccess, EngineUnblockSuccess, CustomerRefundSuccess — при успешном выполнении;
  • EnginePayFail, EngineBlockFail, EngineChargeFail, EngineRefundFail, EngineUnblockFail, CustomerRefundFail — при неуспешном платеже или истечении времени на оплату (72 часа);

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

Если для получения результата оплаты Продавец использует запрос статуса GetState, рекомендуется применять следующую схему:

  1. Продавец начинает запрашивать статус через 15 секунд после перенаправления пользователя на страницу оплаты:
  • в течение первых 30 секунд каждые 3 секунды;
  • в течение следующих 120 секунд каждые 5 секунд;
  • далее с увеличенными интервалами.
  1. Запрос статуса выполняется до получения статусов Charged или Rejected. Заказ в данном случае может принимать следующие статусы:
  • Pending — ожидание оплаты Покупателем;
  • Charged — платеж выполнен успешно;
  • Rejected — неуспешный платеж или время на оплату истекло (72 часа).

Описание метода GetState представлено в разделе Payture API, Payture InPay и Payture eWallet.