Справочная информация
С технической точки зрения, прием банковской карты к оплате всегда сводится к процессу списания средств с карты Покупателя. Здесь и далее этот процесс списания называется «платежом». Платеж может состоять из одной операции или последовательности операций.
Термины и определения
Покупатель — держатель карты, совершающий покупку в магазине Продавца.
Продавец (также «ТСП», «мерчант») — это юридическое лицо/индивидуальный предприниматель, осуществляющее (-ий) продажу товаров или услуг через Интернет.
Банк-эквайер — банк, осуществляющий первичную обработку транзакций, проводимых по банковским картам, в пользу Продавца, являющегося клиентом этого банка.
Банк-эмитент — банк, выпустивший карту Покупателя.
МПС — международная платежная система.
Терминал — программное средство, обеспечивающее автоматизированный прием платежей. Имеет совокупность настроек, определяющих правила проведения платежа.
Страница оплаты — 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.
Pay
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
Примеры ответов
<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 |
Pay3DS
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.
Block
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 |
Ответ
Примеры ответов
<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 |
Block3DS
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.
Charge
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
Примеры ответов
<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 |
Unblock
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
Примеры ответов
<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 |
Refund
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.
Примеры ответов
<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 |
GetRefunds
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
Примеры ответов
<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 |
GetState
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
Примеры ответов
<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 | Получение текущего состояния платежа |
Интеграция
Init
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
Примеры ответов
<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 |
Pay
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).
Charge
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
Примеры ответов
<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 |
Unblock
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
Примеры ответов
<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 |
Refund
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
Примеры ответов
<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 |
GetRefunds
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
Примеры ответов
<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 |
GetState
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
Примеры ответов
<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 |
Register
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 |
Email Покупателя Может передаваться, если не используется в качестве VWUserLgn | String [1..50] Optional |
Ответ
XML строка с элементом Register
Примеры ответов
<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 |
Update
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
PhoneNumber | Номер телефона Покупателя Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента] | String Optional |
Email Покупателя Может передаваться, если не используется в качестве VWUserLgn | String [1..50] Optional |
Ответ
XML строка с элементом Update
Примеры ответов
<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 |
Delete
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
Password | Пароль платежного Терминала Предоставляется с параметрами тестового/рабочего доступа | String Mandatory |
Ответ
XML строка с элементом Delete
Примеры ответов
<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 |
Check
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
Ответ
XML строка с элементом Check
Примеры ответов
<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 | Получение списка карт Покупателя |
Add
https://{Environment}.payture.com/vwapi/Add
Команда регистрации новой карты в системе Payture.
Обратите внимание, что в некоторых случаях (когда это предполагается используемой схемой добавления карты) необходимо не только добавить карту, но и активировать ее. Платежи по зарегистрированной карте возможны только после активации. Как правило, для активации происходит блокирование и последующая отмена блокировки небольшой проверочной суммы.
Карта может быть добавлена не только командой Add, но и при выполнении платежа.
В зависимости от наличия у Продавца сертификата PCI DSS, регистрация карты может проводится на веб-странице продавца или на шаблоне платежного шлюза Payture.
На стороне 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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] 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 |
PhoneNumber | Номер телефона Покупателя Только цифры, без разделителей. Формат: [код страны][код оператора][номер абонента] | String Optional |
Email Покупателя Может передаваться, если не используется в качестве VWUserLgn | String [1..50] Optional |
|
Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно |
— Optional |
Ответ
XML строка с элементом Add
Примеры ответов
<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 |
AddSubmit3DS
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 — на стороне Продавца.
Activate
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
CardId | Идентификатор карты в системе Payture, для которой выполняется активация | String [36] Mandatory |
Amount | Заблокированная сумма на карте Покупателя в копейках | Integer Mandatory |
Ответ
XML строка с элементом Activate
Примеры ответов
<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 |
Remove
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
CardId | Идентификатор карты в системе Payture, для которой выполняется активация | String [36] Mandatory |
Ответ
XML строка с элементом Remove
Примеры ответов
<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 |
GetList
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
Ответ
XML строка с элементом GetList и вложенными элементами Item
Примеры ответов
<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 PayGooglePayToken — токенизированная карта 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 |
Init
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 | Идентификатор Покупателя в системе Payture | String [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 |
Email Покупателя Может передаваться, если не используется в качестве VWUserLgn | String [1..50] Optional |
|
Description | Дополнительное описание платежа | String Optional |
IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно |
— Optional |
Ответ
XML строка с элементом Init
Примеры ответов
<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 |
Pay — на стороне Payture
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).
Pay — на стороне Продавца
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
CardId | Для платежа по незарегистрированной карте необходимо передавать значение CardId=FreePay | String [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 |
Email Покупателя Может передаваться, если не используется в качестве VWUserLgn | String [1..50] Optional |
|
IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно |
— Optional |
Ответ
XML строка с элементом Pay
Примеры ответов
<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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
CardId | Идентификатор ранее зарегистрированной карты в системе Payture | String [36] Mandatory |
OrderId | Уникальный идентификатор платежа в системе Продавца | String [1..50] Mandatory |
Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Цифры, не содержащие десятичных или других разделителей |
Integer Mandatory |
SecureCode | CVC2/CVV2 код 3 или 4 цифры. Обязательность передачи зависит от типа платежа и конфигурации платежного Терминала |
Integer Optional |
SessionType | Тип платежа. Определяет количество стадий платежа:Pay — одностадийный платеж (по умолчанию)Block — двухстадийный платеж |
String Optional |
IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно |
— Optional |
Ответ
XML строка с элементом Pay
Примеры ответов
<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 — рекуррентные платежи
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
CardId | Идентификатор ранее зарегистрированной карты в системе Payture | String [36] Mandatory |
OrderId | Уникальный идентификатор платежа в системе Продавца | String [1..50] Mandatory |
Amount | Сумма платежа в копейках (или другая минимальная единица валюты терминала) Цифры, не содержащие десятичных или других разделителей |
Integer Mandatory |
SessionType | Тип платежа. Определяет количество стадий платежа:Pay — одностадийный платеж (по умолчанию)Block — двухстадийный платеж |
String Optional |
IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно |
— Optional |
Ответ
XML строка с элементом Pay
Примеры ответов
<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 |
PaySubmit3DS
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 — на стороне Продавца.
Charge
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, закодированная в Base64 | String Optional |
Ответ
XML строка с элементом Charge
Примеры ответов
<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 |
Unblock
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
Примеры ответов
<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 |
Refund
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
Примеры ответов
<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 |
GetRefunds
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
Примеры ответов
<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 |
GetState
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
Примеры ответов
<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 на шаблоне.
Выполнение платежа (добавление карты)
Для оплаты или добавления карты используются следующие методы:
- На стороне продавца — api/Pay, api/Block, api/MobilePay, api/MobileBlock, vwapi/Pay — на стороне Продавца или vwapi/Add — на стороне Продавца
- На стороне Payture — apim/PaySubmit, vwapi/AddSubmit или vwapi/AddSubmit. Описание методов доступно в документации 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 | Уникальный идентификатор транзакции Соответствует переданному в запросе |
cres | Base64 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>
Для установки виджета на сайт Продавцу необходимо выполнить следующие шаги:
- Запросить в службе поддержки Payture параметры тестового доступа.
- По умолчанию для виджета используются стандартные шаблоны Payture. Если Продавец желает изменить внешний вид шаблонов, необходимо подготовить и отправить в службу поддержки шаблон формы оплаты (Type=Pay) и шаблон с результатами операции (Type=Return), который открывается после 3DS-проверки. Продавец может как создать собственные шаблоны с нуля, так и изменить стандартные шаблоны для виджета Payture. Информацию, подробные технические сведения о создании шаблонов и примеры шаблонов для виджета вы можете получить здесь в разделе «Шаблоны для виджета Payture»;
- Подключить на странице в разделе
head
библиотекуpayture-widget.min.js
. Скачать библиотеку payture-widget.min.js. - Добавить в разделе
head
необходимые стили для работы виджета. Скачать стили для виджета. - Задать функцию вызова виджета. Необходимые параметры задаются в конструкторе
PaytureWidget()
. - Настроить открытие виджета на какое-либо событие, например, на нажатие кнопки «Оплатить».
- При необходимости настроить поведение сайта в зависимости от аргумента
success
функции из OnTransactionCompleted. - Протестировать работу виджета на тестовой среде с использованием тестовых карт.
- Получить от службы поддержки 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.
Готовые модули для CMS
Для облегчения интеграции платежного решения на сайт магазина вы можете использовать готовые платежные модули.
Мы не поддерживаем работу приложений сторонних разработчиков, все обновления вы можете посмотреть по ссылке для скачивания.
Разработчик | Описание | Установить |
---|---|---|
1С-Битрикс — это автоматизированная система управления контентом. Продукт предназначен для создания и развития корпоративных проектов предприятий и организаций, информационных, новостных и справочных порталов, социальных сетей, интернет-магазинов и других видов сайтов. | ||
Битрикс24 — это популярная облачная платформа для управления бизнесом и коммуникаций внутри компании. Она предлагает широкий спектр инструментов для организации работы, включая управление задачами, проектами, клиентскими отношениями (CRM), внутренними коммуникациями и многим другим. Интеграция выполнена партнером. По вопросам поддержки обращаться к разработчику. | ||
Программный модуль для интернет-магазина на Simpla CMS. Simpla — это готовое решение для быстрого создания интернет-магазина с широкими возможностями и современным дизайном. Уже 63019 лицензионных установок. | ||
OpenCart — бесплатная система управления содержимым, ориентированная на создание интернет-магазинов. Программное обеспечение написано на языке программирования PHP, платформа устанавливается на любом веб-сервере с поддержкой PHP и MySQL. Данная CMS пригодится для тех, кому нужен легкий и надежный движок интернет-магазина. Большим преимуществом данной системы управления сайтом является визуальная привлекательность интерфейса.Инструкция по установке модуля | ||
Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля | ||
Commerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Drupal. Drupal — максимально функциональная система управления содержимым веб-сайта. Является свободным программным обеспечением, защищённым лицензией GPL, и развивается усилиями разработчиков со всего мира. Язык программирования - PHP, база данных - MySQL, PostgreSQL и другие. Подойдет для разработки веб-приложений любой сложности. Инструкция по установке модуля | ||
VirtueMart — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS Joomla!. Joomla! — система управления содержимым сайта, написанная на языках PHP и JavaScript, использующая в качестве хранилища базы данных MySQL. Является свободным программным обеспечением, распространяемым под лицензией GNU GPL. CMS позволяет без особых знаний в веб-программировании создавать отличные и динамичные сайты. Инструкция по установке модуля | ||
Woocommerce — это программный модуль с открытым исходным кодом, полностью интегрирующий интернет-магазин с CMS WordPress. WordPress — система управления контентом с открытым исходным кодом, написанная на языке PHP. Универсальная и самая популярная CMS в мире. Применима к ресурсам любого назначения, от блогов до интернет-магазинов. Инструкция по установке модуля. Валюта оплаты по умолчанию RUB, для добавления других валют обратитесь в службу поддержки Payture | ||
Программный модуль для интернет-магазина ReadyScript. ReadyScript — собрала в себе все лучшее, что существует сегодня на рынке CMS, а также приобрела множество уникальных возможностей. Чтобы сохранить удобство пользования сайтом на различных по размеру экранах, сайт автоматически адаптируется, скрывая, сворачивая или переставляя некоторые второстепенные блоки. Все это включено в стандартную тему оформления. | ||
VirtualityCMS поможет Вам и вашим клиентам всегда быть рядом, получать актуальные предложения и повысить лояльность с помощью встроенных маркетинговых инструментов. В VirtualityCMS реализована система мультивалютности что позволяет загружать прайсы поставщиков в любых валютах, цены автоматически будут конвертированыв в основную вашу валюту. В админпанели цены будет указаны в валюте поставщика, а для клиентов на сайте в основной валюте. Для управления VirtualityCMS Вам не нужно сидеть в офисе или дома перед компьютером, Вы можете управлять вашим интернет-магазином, принимать заказы и платежи из любой точки мира, достаточно иметь мобильный гаджет и доступ в интернет. VirtualityCMS предоставляет вам все современные решения для успешного управления сайтом. Инструкция по установке модуля. Интеграция выполнена партнером. По вопросам поддержки обращаться к VirtualityCMS. | ||
Webasyst заменяет множество разрозненных сервисов и приложений и объединяет все бизнес-процессы компании в единой защищенной системе. Приложения Webasyst помогают решать все задачи развивающегося бизнеса — от приема заказов через маркетплейсы и анализа клиентской базы (CRM) до корпоративной базы знаний, поддержки клиентов и прогноза кассовых разрывов. |
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
Порядок интеграции Apple Pay различается в зависимости от используемого программного интерфейса Payture и канала приема платежей.
Инструкции:
- Регистрация Merchant ID и получение Payment Processing Certificate — необходимо для подключения Apple Pay на сайте или в приложении Продавца
- Верификация доменов и получение Merchant Identity Certificate — необходимо только для подключения Apple Pay на сайте Продавца
Google Pay
Порядок интеграции Google Pay различается в зависимости от используемого программного интерфейса Payture и канала приема платежей.
Samsung Pay
Необходимый параметр для интеграции Samsung Pay
- Public Key (выдается технической поддержкой компании Payture)
Yandex Pay
Порядок интеграции Yandex Pay различается в зависимости от используемого программного интерфейса Payture и канала приема платежей.
SberPay
SberPay позволяет оплачивать покупки в одно касание картами в приложении Сбербанк Онлайн
API
Программный интерфейс Payture позволяет клиентам оплачивать покупки в одно касание, используя карточные хранилища Apple Pay, Google Pay и Samsung Pay. Предоставляет Продавцу дополнительную возможность приема платежей по дебетовым и кредитным картам на сайте и в приложении.
Payture API
MobilePay
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 |
Ответ
Примеры ответов
<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 |
MobileBlock
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 |
Ответ
Примеры ответов
<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 |
Payture eWallet
Pay
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 | Идентификатор Покупателя в системе Payture | String [1..50] Mandatory |
VWUserPsw | Дополнительный параметр доступа к приватной информации Покупателя (пароль Покупателя) | String [1..50] Mandatory |
CardId | Для платежей Apple Pay, Google Pay и Samsung Pay необходимо передавать значение CardId=FreePay | String [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 |
IP | IP адрес Покупателя IPv4 или IPv6 | String Optional |
Cheque | Информация о чеке в формате JSON, закодированная в Base64 | String Optional |
Дополнительные параметры | Любые дополнительные параметры Продавца Дополнительных параметров может быть несколько. Каждый параметр передается отдельно |
— Optional |
Ответ
XML строка с элементом Pay
Примеры ответов
<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 |
Add
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 | Идентификатор Покупателя в системе Payture | String [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
Примеры ответов
<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-кода) выполняется на стороне Продавца.
Выполнение платежей
Платежи через СБП выполняются только по одностадийной схеме. Списание денежных средств происходит со счета и на счет, даже если к ним не привязаны карты.
Порядок выполнения платежа следующий:
- Покупатель переходит к оплате и выбирает оплату по QR-коду;
- Продавец формирует запрос GetQRCode для получения QR-кода;
- В ответе на запрос передается URL, который необходимо закодировать в QR-код (срок жизни QR-кода 72 часа). На мобильном устройстве по этой ссылке возможно напрямую открыть приложение банка (если у Покупателя установлено приложение банка, которое поддерживает оплату по QR);
- Продавец отображает QR-код и/или ссылку и ожидает результат оплаты (получение результата платежа возможно двумя способами: используя стандартный запрос статуса GetState и/или в нотификациях от платежного шлюза);
- Покупатель в мобильном приложении банка выбирает оплату по QR-коду, сканирует QR-код и подтверждает оплату;
- Payture направляет Продавцу нотификацию с результатами платежа:
- EnginePaySuccess — при успешном выполнении;
- EnginePayFail — при неуспешном платеже или истечении времени на оплату (72 часа).
Рекомендации по использованию запроса статуса
Если для получения результата оплаты Продавец использует запрос статуса GetState, рекомендуется применять следующую схему:
- Продавец начинает запрашивать статус через 15 секунд после отображения QR-кода:
- в течение первых 30 секунд каждые 3 секунды;
- в течение следующих 120 секунд каждые 5 секунд;
- далее с увеличенными интервалами.
- Запрос статуса выполняется до получения статусов Charged или Rejected. Заказ в данном случае может принимать следующие статусы:
- Pending — ожидание оплаты Покупателем;
- Charged — платеж выполнен успешно;
- Rejected — неуспешный платеж или время на оплату истекло (72 часа).
Описание метода GetState представлено в разделе Payture API, Payture InPay и Payture eWallet.
Возврат
Возврат выполняется стандартной командой Refund (см. в разделе Payture API, Payture InPay и Payture eWallet).
GetQRCode
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,
"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).
При выполнении перевода с плательщика (владельца карты-источника) будет удержана комиссия, которая прописана в договоре на P2P перевод. Таким образом, в поле суммы (Amount) при совершении платежа, указывается сумма к начислению на карту-приемник. Комиссия за выполнение перевода удерживается с карты-источника.
Возможность перевода с карты на карту поддерживается в интерфейсе Payture API (посредством API).
Payture API (P2P)
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 с минимальным набором параметров:
{
"Positions":[
{
"Quantity":1.0,
"Price":27.25,
"Tax":2,
"Text":"Пирожок"
}
],
"CustomerContact":"user@mail.com"
}
ewogICJQb3NpdGlvbnMiOlsKICAgIHsKICAgICAgIlF1YW50aXR5IjoxLjAsCiAgICAgICJQcmljZSI6MjcuMjUsCiAgICAgICJUYXgiOjIsCiAgICAgICJUZXh0Ijoi0J/QuNGA0L7QttC+0LoiCiAgICB9CiAgXSwKICAiQ3VzdG9tZXJDb250YWN0IjoidXNlckBtYWlsLmNvbSIKfQ==
Пример Cheque с максимальным набором параметров (ФФД 1.2):
{
"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: значения В общем случае можно задать значение по умолчанию через службу поддержки 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): значения | Integer Mandatory |
+ | + | + |
Text | Наименование предмета расчета (название товара, услуги и т.д.) (1030) | String [1..128] Mandatory |
+ | + | + |
AdditionalAttribute | Дополнительный реквизит предмета расчета (1191) | String [1..64] Optional |
+ | + | — |
AgentType | Признак агента по предмету расчета (1222): значения | Integer Optional |
+ | + | — |
AgentInfo | Данные агента (1223) Описание структуры AgentInfo см. ниже |
Object Optional |
+ | — | — |
PaymentMethodType | Способ расчета (1214): значения | Integer Optional |
+ | + | + |
PaymentSubjectType | Предмет расчета (1212): значения | 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 | Тип оплаты: значения | 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 | Проверка статуса чека и получение информации о чеке |
Create
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]:
{
"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): значения | 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: значения | 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): значения | Integer Mandatory |
+ | + | + |
Text | Наименование предмета расчета (название товара, услуги и т.д.) (1030) | String [1..128] Mandatory |
+ | + | + |
AdditionalAttribute | Дополнительный реквизит предмета расчета (1191) | String [1..64] Optional |
+ | + | - |
AgentType | Признак агента по предмету расчета (1222): значения | 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): значения | Integer Optional |
+ | + | + |
PaymentSubjectType | Предмет расчета (1212): значения | 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): значения | Integer Optional |
+ | + | - |
Состав элемента массива Cheque.Content.CheckClose.Payments
Параметр | Описание (тег) | Формат | Orange Data | АТОЛ | Бухта |
---|---|---|---|---|---|
Type | Тип оплаты: значения | 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 |
CreateCorrection
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): значения | Integer Mandatory |
TotalSum | Сумма расчета в рублях, указанного в чеке (1020) Десятичное число с точностью до 2 цифр после точки |
Float Mandatory |
CashSum | Сумма по чеку наличными в рублях (1031) Десятичное число с точностью до 2 цифр после точки |
Float Mandatory |
ECashSum | Сумма по чеку безналичными в рублях (1081) Десятичное число с точностью до 2 цифр после точки |
Float Mandatory |
TaxationSystem | Номер системы налогообложения (1055): значения | 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 |
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)
Номер карты | Код | Срок действия | МПС | Результат |
---|---|---|---|---|
5218851946955484 | 123 | 12/25 | Mastercard | Успешный платеж без 3DS с опциональным CVV |
4011111111111112 | 123 | 12/25 | Visa | Успешный платеж без 3DS с опциональным CVV |
4111111111100031 | 123 | 12/25 | Visa | Успешный платеж без 3DS с опциональным CVV |
4111111111100023 | 123 | 12/25 | Visa | Успешный платеж без 3DS с обязательным CVV |
5486732058864471 | 123 | 12/25 | Mastercard | Успешный платеж с 3DS 1.0 |
4111111111111111 | 123 | 12/25 | Visa | Успешный платеж с 3DS 1.0 |
2202208311110010 | 123 | 12/25 | МИР | Успешный платеж с 3DS 1.0 |
6390028880000000010 | 123 | 12/25 | Maestro | Успешный платеж с 3DS 1.0 |
4100401111100062 | 123 | 12/25 | Visa | Таймаут 40 секунд во время блокировки |
4100401111100724 | 123 | 12/25 | Visa | Таймаут 40 секунд во время разблокировки |
4100401111100328 | 123 | 12/25 | Visa | Таймаут 40 секунд во время списания |
4100401111103025 | 123 | 12/25 | Visa | Таймаут 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.0 | Mastercard | Успешный платеж |
4714870000534086 | Любой | 1.0 | Visa | Успешный платеж |
Карты с ошибками
Номер карты | Код | Срок действия | МПС | Результат |
---|---|---|---|---|
4111101000000046 | 123 | 12/25 | Visa | Ошибка AMOUNT_EXCEED при превышении суммы в 100 рублей (Amount>=10001) |
3300000000000001 | 521 | 12/25 | Ошибка AMOUNT_EXCEED — недостаточно средств | |
4400000000000008 | 521 | 09/11 | Visa | Ошибка WRONG_EXPIRE_DATE — неверный срок действия карты |
5500000000000004 | 521 | 12/25 | Mastercard | Ошибка FRAUD_ERROR — карта в черном списке |
6600000000000001 | 374 | 12/25 | Maestro | Ошибка CARD_NOT_FOUND — несуществующая карта |
4111111111100056 | 123 | 12/25 | Visa | Ошибка PROCESSING_ERROR |
4111111111100072 | 123 | 12/25 | Visa | Ошибка ISSUER_BLOCKED_CARD |
4111111111100080 | 123 | 12/25 | Visa | Ошибка ISSUER_CARD_FAIL |
4111111111100221 | 123 | 12/25 | Visa | Ошибка PROCESSING_ERROR во время списания |
4111111111100627 | 123 | 12/25 | Visa | Ошибка PROCESSING_ERROR во время разблокировки |
4111111111102029 | 123 | 12/25 | Visa | Ошибка PROCESSING_ERROR во время возврата |
4811111111111114 | 123 | 12/25 | Visa | Неуспешный платеж с 3DS 1.0 (PROCESSING_ERROR при завершении оплаты) |
4711111111111115 | 123 | 12/25 | Visa | Неуспешный платеж с 3DS 1.0 (PROCESSING_ERROR при завершении оплаты) |
Нотификации
Нотификации — это асинхронные ответы от Payture о результатах выполнения запросов.
Методы нотификации
Примеры нотификаций
Код события: [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.
Дополнительная безопасность
Примеры нотификаций при использовании шифрования
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/Pay | Success, Fail или Pending: MerchantPay, MerchantBlock Success: EngineBlockSuccess, EngineChargeSuccess, EnginePaySuccess Fail: EngineBlockFail, EngineChargeFail, EnginePayFail Pending: EngineBlockPending, EngineChargePending |
apim/Charge | Success: EngineChargeSuccess Fail: EngineChargeFail Pending: EngineChargePending |
apim/Refund | Success, Fail или Pending: MerchantRefund Success: EngineRefundSuccess Fail: EngineRefundFail Pending: EngineRefundPending |
apim/Unblock | Success: EngineUnblockSuccess Fail: EngineUnblockFail Pending: EngineUnblockPending |
Нотификации eWallet
Операция | Возможные нотификации |
---|---|
vwapi/Pay | Success: EngineBlockSuccess, EngineChargeSuccess, CustomerPaySuccess, EnginePaySuccess Fail: EngineBlockFail, EngineChargeFail, CustomerPayFail, EnginePayFail Pending: EngineBlockPending, EngineChargePending |
vwapi/Refund | Success: CustomerRefundSuccess, EngineRefundSuccess Fail: CustomerRefundFail, EngineRefundFail Pending: EngineRefundPending, CustomerRefundPending |
vwapi/Charge | Success: EngineChargeSuccess Fail: EngineChargeFail Pending: EngineChargePending |
vwapi/Unblock | Success: EngineUnblockSuccess Fail: EngineUnblockFail Pending: EngineUnblockPending |
vwapi/Add | Success: EngineBlockSuccess, CustomerAddSuccess Fail: EngineBlockFail, CustomerAddFail Pending: EngineBlockPending |
vwapi/RemoveCard | Success или Fail: CustomerDeleteCard |
Нотификации сервиса Чеков
Возможные нотификации |
---|
ChequeSent, ChequeNotSent, ChequeAccepted, ChequeRejected, ChequeCreated, ChequeTimeout, ChequeNotAccepted |
Нотификации ChargeBack
Возможные нотификации |
---|
ChargeBack |
Описание нотификаций
Название | Описание | Пример (Email) |
---|---|---|
EnginePaySuccess | Успешное списание средств в рамках одностадийного платежа | Пример |
EnginePayFail | Неуспешное списание средств в рамках одностадийного платежа | Пример |
EngineBlockSuccess | Успешная блокировка средств | Пример |
EngineBlockFail | Неуспешная блокировка средств | Пример |
EngineBlockPending | Блокировка средств в процессе выполнения | Пример |
EngineChargeSuccess | Успешное списание заблокированных средств | Пример |
EngineChargeFail | Неуспешное списание заблокированных средств | Пример |
EngineChargePending | Cписание заблокированных средств в процессе выполнения | Пример |
EngineUnblockSuccess | Успешная разблокировка средств | Пример |
EngineUnblockFail | Неуспешная разблокировка средств | Пример |
EngineUnblockPending | Разблокировка средств в процессе выполнения | Пример |
EngineRefundSuccess | Успешный возврат средств | Пример |
EngineRefundFail | Неуспешный возврат средств | Пример |
EngineRefundPending | Возврат средств в процессе выполнения | Пример |
MerchantBlock | Блокировка средств (с параметром Success=True/False) | Пример |
MerchantPay | Списание средств (с параметром Success=True/False) | Пример |
MerchantRefund | Возврат средств (с параметром Success=True/False) | Пример |
CustomerAddSuccess | Успешная регистрация карты | Пример |
CustomerAddFail | Неуспешная регистрация карты | Пример |
CustomerPaySuccess | Успешное списание средств | Пример |
CustomerPayFail | Неуспешное списание средств | Пример |
CustomerRefundSuccess | Успешный возврат средств | Пример |
CustomerRefundFail | Неуспешный возврат средств | Пример |
CustomerRefundPending | Возврат средств в процессе выполнения | Пример |
CustomerDeleteCard | Удаление карты (с параметром Success=True/False) | Пример |
ChequeSent | Чек отправлен Покупателю | Пример |
ChequeNotSent | Чек не отправлен Покупателю | Пример |
ChequeCreated | Чек создан | Пример |
ChequeAccepted | Чек принят | Пример |
ChequeNotAccepted | Чек не принят на стороне сервиса онлайн-касс | Пример |
ChequeRejected | Чек отклонён на стороне платежного шлюза | Пример |
ChequeTimeout | Чек не отправлен за допустимое время | Пример |
ChargeBack | Возвратный платеж | Пример |
Статусы транзакции
Статус | Значение |
---|---|
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 обозначает транзакции, которые находятся в процессе выполнения. Рекомендуется обрабатывать данные статусы одним из следующих образов:
Обработка нотификаций с результатами платежа
В случае, если транзакции был присвоен один из статусов группы Pending, Payture направляет Продавцу нотификацию в зависимости от сценария оплаты:
- EngineBlockPending, EngineChargePending, EngineRefundPending, EngineUnblockPending, CustomerRefundPending.
Далее, при получении финального статуса, Payture направляет Продавцу нотификацию с результатами платежа:
- EnginePaySuccess, EngineBlockSuccess, EngineChargeSuccess, EngineRefundSuccess, EngineUnblockSuccess, CustomerRefundSuccess — при успешном выполнении;
- EnginePayFail, EngineBlockFail, EngineChargeFail, EngineRefundFail, EngineUnblockFail, CustomerRefundFail — при неуспешном платеже или истечении времени на оплату (72 часа);
Использование запроса статуса
Если для получения результата оплаты Продавец использует запрос статуса GetState, рекомендуется применять следующую схему:
- Продавец начинает запрашивать статус через 15 секунд после перенаправления пользователя на страницу оплаты:
- в течение первых 30 секунд каждые 3 секунды;
- в течение следующих 120 секунд каждые 5 секунд;
- далее с увеличенными интервалами.
- Запрос статуса выполняется до получения статусов Charged или Rejected. Заказ в данном случае может принимать следующие статусы:
- Pending — ожидание оплаты Покупателем;
- Charged — платеж выполнен успешно;
- Rejected — неуспешный платеж или время на оплату истекло (72 часа).
Описание метода GetState представлено в разделе Payture API, Payture InPay и Payture eWallet.