- Онлайн-касса
- Скрипт checkout
- API
- Виды операций
- Условия использования Apple Pay
- Идемпотентность API
- MIR Pay
- Момент отправки чека
- Возврат денег
- Требования
- Формат передачи данных для онлайн-чека
- Установка
- Вариант с передачей карточных данных напрямую в скрипт
- Вариант с использованием формы
- При разработке собственной формы или передачи данных в скрипт обратите внимание на следующие моменты
- Настройка подключения
- Типы операций
- Регистрация платежей
- Сценарии интеграции
- Типы уведомлений
- Самостоятельное размещение Apple Pay на сайте
- Классическая интеграция
- Автоплатежи для благотворительных фондов
- Google Pay в мобильных приложениях
- Принцип работы
- Статусы операций
- Запуск и остановка регулярных платежей
- Мобильный виджет
- Способы оплаты
- ASV-сканирование
- Получение QR-кода для оплаты
- Параметры запроса
- Пример запроса
- Статусы подписок (рекуррент)
- Онлайн-фискализация
- Установка виджета
- Fail
Онлайн-касса
Мы используем кассы MicroPay-ФАС и MicroPay-ФС с подключением к любому оператору фискальных данных.

Скрипт checkout
Checkout — скрипт, который прописывается на вашем сайте, собирает из указанной формы карточные данные и составляет из них криптограмму для оплаты через наш API.
Криптограмма формируется алгоритмом RSA с длиной ключа в 2048 бит и удовлетворяет стандарту по защите карточных данных. При соблюдении описанных ниже требований карточные данные к вам не попадают, но ваш сервер всё равно влияет на их безопасность.
API
API — программный интерфейс системы для взаимодействия с системами ТСП.
Интерфейс работает по адресу api.cloudpayments.ru и поддерживает функции для выполнения платежа, отмены оплаты, возврата денег, завершения платежей, выполненных по двухстадийной схеме, создания и отмены подписок на рекуррентные платежи, а также отправки счетов по почте.
Виды операций
Система предполагает два вида операций: оплата и возврат.
Условия использования Apple Pay
Вы можете применять технологию Apple Pay с системой CloudPayments на сайтах и в мобильных приложениях при соблюдении условий использования от компании Apple:

Идемпотентность API
Идемпотентность — свойство API при повторном запросе выдавать тот же результат, что на первичный запрос без повторной обработки. Это значит, что вы можете отправить несколько запросов к системе с одинаковым идентификатором, при этом обработан будет только один успешный запрос, а все ответы будут идентичными. Таким образом реализуется защита от сетевых ошибок, которые приводят к созданию дублированных записей и действий. Для включения идемпотентности необходимо в запросе к API передавать заголовок с ключом X-Request-ID, содержащий уникальный идентификатор. Формирование идентификатора запроса остается на вашей стороне — это может быть guid, комбинация из номера заказа, даты и суммы или любое другое значение на ваше усмотрение. Каждый новый запрос, который необходимо обработать, должен включать новое значение X-Request-ID. Обработанный результат хранится в системе в течение 1 часа.
MIR Pay
MIR Pay позволяет оплачивать покупки в одно касание картами платежной системы МИР. Кнопка Pay-сервиса отображается на платёжной странице рядом с другими способами оплаты.

Момент отправки чека
Чек должен быть отправлен покупателю в момент расчета. Для одностадийных платежей чек формируется сразу же после прохождения оплаты, для двухстадийных — при подтверждении операции.
Возврат денег
Возврат денег можно выполнить через личный кабинет или через вызов метода API.
| Параметр | Тип | Описание |
|---|---|---|
| TransactionId | Long | Номер транзакции оплаты |
| Amount | Number | Сумма возврата в валюте транзакции |
JsonData Json Необязательный Любые другие данные, которые будут связаны с транзакцией, в том числе инструкции для формирования онлайн-чека
## Схемы проведения платежа
Существует два варианта проведения операции оплаты: одностадийная и двухстадийная, их также называют single message system (SMS) и dual message system (DMS).
Одностадийная оплата выполняется одной командой, по результатам которой проходит авторизация и последующее списание средств в пользу ТСП.
Двухстадийная оплата использует две команды: отдельно на авторизацию и списание. После успешной авторизации сумма операции будет блокирована на счету держателя, то есть он не сможет ей воспользоваться. Далее у ТСП есть до 7 дней, в зависимости от типа карты, для подтверждения операции, после чего произойдет списание денег. Если операцию не подтвердить в течение этого времени — она будет автоматически отменена. Подтверждать можно как всю сумму авторизации, так и ее часть. Как правило, двухстадийная схема используется для получения депозита с плательщика, например, в прокатных компаниях или отелях.
В зависимости от настройки, система может автоматически выполнять подтверждение двухстадийных платежей через указанное количество дней.
## Операторы фискальных данных
В таблице ниже представлены операторы фискальных данных, с которыми могут работать интернет-кассы.
- PeterService ООО ПС СТ
- Sbis Компания ТЕНЗОР, ООО
Переменная содержащая тип сделки, которая содержится в объекте cp.constant.escrow. Она отвечает за схему проведения сделки:
- cp.constant.escrow.NToOne // переменная для типа сделки
- cp.constant.escrow.OneToN // переменная для типа сделки = Оплата (первичное создание накопления)
// charge
// id из личного кабинета
// валюта (единственная поддерживаемая валюта)
// идентификатор плательщика (необязательно)
// номер заказа (необязательно)
// email плательщика (необязательно)
// дизайн виджета (необязательно)
// объект описывающий безопасную сделку
// - Используется для первой оплаты - для создания накопления
// - Оплата по уже созданному накоплению.
// Объект escrow требует наличия поля startAccumulation со значением true, либо поля AccumulationId с id накопления, но не обоих одновременно
// действие при успешной оплате
// действие при неуспешной оплате
// Вызывается как только виджет получает от api.cloudpayments ответ с результатом транзакции.
В ответ на запрос, в Pay уведомлении будет получен уникальный EscrowAccumulationId.
Также, при условии успешной транзакции, EscrowAccumulationId будет содержаться во всех вебхуках, кроме Check вебхука.
Оплата (по созданному накоплению)
Для последующих запросов (оплат), в рамках созданной безопасной сделки, необходимо добавить поля accumulationId, startAccumulation, escrowType в объект escrow.
### Схема интеграции для API CheckoutНеобходимо использовать запрос `payments/cards/charge` (либо auth), где в теле в теле запроса в объекте escrow нужно передать StartAccumulation: true и тип сделки EscrowType:0 или EscrowType: “NToOne . То есть для EscrowType значения можно передавать как целочисленное значение (0/1), так и строковым представлением (NToOne/OneToN).
В ответ на запрос будет получен уникальный EscrowAccumulationId.
Сибирский федеральный округ
Visa Signature (Signature)
Оплата успешно проведена
Для последующих запросов (оплат), в рамках созданной безопасной сделки, необходимо добавить в запрос `payments/cards/charge` AccumulationId в объект Escrow с указанием StartAccumulation: false и тип сделки EscrowType:0 или EscrowType: “NToOne:
Для завершения сделки необходимо отправить запрос payments/token/topup с указанием AccumulationId и массива транзакций к выплате:
Массив транзакций оплаты для выплаты должен должен содержать только транзакции, которые проводились по терминалу оплаты с текущим AccumulationId. Выплата будет осуществлена только по тем TransactionId, которые были указаны в TransactionIds в запросе payments/token/topup. По неуказанным транзакциям, провести выплату не возможно, т.к. сделка будет уже закрытой. Т.е. по закрытой сделке невозможно сделать как оплату, так и выплату.
### Ограничения
Сумма выплат должна быть меньше, либо равна сумме оплат.
Ни по одной из транзакций, указанных в массиве транзакций для выплаты не должно быть отмен/полных возвратов (частичные возвраты производить можно).
Если запрос на оплату приходит с AccumulationId, а по нему уже есть выплата - оплата будет отклонена.
Все транзакции для выплаты должны быть:
## Параметры
Вызов функции pay c аргументом auth или charge определяет схему проведения оплаты:
- publicId String Обязательный Идентификатор сайта, который находится в ЛК
- currency String Обязательный Валюта: RUB/USD/EUR/GBP (см. справочник)
- accountId String Обязательный для создания подписки Идентификатор пользователя
- description String Необязательный Описание назначения оплаты в произвольном формате
- invoiceId String Необязательный Номер заказа или счета
- email String Необязательный E-mail адрес пользователя
- requireEmail bool Необязательный Требование указать e-mail адрес пользователя в виджете
- data Json Необязательный Любые другие данные, которые будут связаны с транзакцией, в том числе инструкции для создания подписки или формирования онлайн-чека должны обёртываться в объект cloudpayments. Мы зарезервировали названия следующих параметров и отображаем их содержимое в транзакционной выгрузке в Личном Кабинете: name, firstName, middleName, lastName, nick, phone, address, comment, birthDate
- skin String Необязательный Выбор дизайна виджета. Возможные варианты: classic, modern, mini. По умолчанию стоит — classic
- retryPayment bool Необязательный Появление кнопки Повторить платеж при неудачном платеже. По умолчанию стоит true## Автоматическое закрытие
- **autoClose number** Необязательный - Автоматическое закрытие виджета после успешной оплаты через указанное количество секунд (минимум 3 секунды, максимум 10 секунд). Дальнейшее поведение задается параметром onSuccess. Если параметр не передан, значение не определено - виджет автоматически не будет закрыт.
## Информация о плательщике
- **payer Object** Необязательный - Дополнительное поле, куда передается информация о плательщике. Используйте следующие параметры: - firstName, lastName, middleName, birth, street, address, city, country, phone, postcode
## Url для перенаправления
- **configuration.common.successRedirectUrl String** Необязательный - Url для перенаправления клиента из мобильного приложения банка после успешной оплаты по Tinkoff Pay
- **configuration.common.failRedirectUrl String** Необязательный - Url для перенаправления клиента из мобильного приложения банка после неуспешной оплаты по Tinkoff Pay
## Поведение формы после оплаты
- При успешной или неуспешной оплате, можно определить поведение формы следующими параметрами: - **onSuccess** Function или String Необязательный - Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после успешного завершения оплаты и закрытия пользователем окна виджета. В случае указания адреса — пользователь будет направлен на указанную страницу. - **onFail** Function или String Необязательный - Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после неуспешного завершения платежа. В случае указания адреса — пользователь будет направлен на указанную страницу. - **onComplete** Function Необязательный - Указывается функция, которая будет вызвана, как только виджет получит ответ с результатом транзакции. Редиректы в этом методе делать нельзя.
## Условия успешного создания чека
- Данные для онлайн-чека можно передавать в параметры виджета, при оплате по криптограмме или токену, при подтверждении оплаты, при проведении возврата, а также через специальный API кассы.
## Рекуррентные платежи (подписка)
- После успешного завершения оплаты виджет может автоматически создавать подписку на рекуррентные платежи. Для этого нужно добавить несколько параметров запуска: - **Interval** String Обязательный - Интервал. Возможные значения: Day, Week, Month - **Period** Int Обязательный - Период. В комбинации с интервалом, 1 Month значит раз в месяц, а 2 Week — раз в две недели. Должен быть больше 0 - **MaxPeriods** Int Необязательный - Максимальное количество платежей в подписке. По умолчанию стоит без ограничений. Если задаете количество, проверьте, чтобы оно было больше 0 - **Amount** Number Необязательный - Сумма регулярного платежа. По умолчанию совпадает с суммой первого, установочного платежа. Если указываете другую сумму, проверьте, чтобы она была больше 0 - **StartDate** DateTime Необязательный - Дата и время первого регулярного платежа. По умолчанию запуск произойдет через указанный интервал и период, например через месяц. Если указываете другую дату, то она должна стоять в будущем времени - **CustomerReceipt** String Необязательный - Данные для формирования онлайн-чека в регулярных платежахПараметры для запуска регулярных платежей необходимо добавить в объект data.CloudPayments.recurrent как в примере ниже::
Наименование товара 3 // тег-1214 признак способа расчета — признак способа расчета // тег-1212 признак предмета расчета — признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета //система налогообложения; необязательный, если у вас одна система налогообложения //e-mail покупателя, если нужно отправить письмо с чеком //телефон покупателя в любом формате, если нужно отправить сообщение со ссылкой на чек //чек является бланком строгой отчетности // Сумма оплаты электронными деньгами // Сумма из предоплаты (зачетом аванса) (2 знака после точки) // Сумма постоплатой(в кредит) (2 знака после точки) // Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после точки) //чек для первого платежа //чек для регулярных платежей //создание ежемесячной подписки //id из личного кабинета Подписка на ежемесячный доступ к сайту example.com //номер заказа (необязательно) //идентификатор плательщика (обязательно для создания подписки) //действие при успешной оплате //действие при неуспешной оплате
Обратите внимание, что создать подписку можно, указав параметр accountId, который может быть e-mail адресом, номером телефона или любым другим идентификатором плательщика.
Больше примеров создания рекуррентных платежей из виджета — в разделе "Сценарии интеграции".
Для отмены рекуррентных платежей используйте возможности личного кабинета, API или предоставьте покупателю ссылку на сайт системы — https://my.cloudpayments.ru/, где он самостоятельно сможет найти и отменить свои подписки.
Требования
С точки зрения PCI DSS, подобный способ подключения классифицируется как "E-commerce merchants who outsource all payment processing to PCI DSS validated third parties, and who have a website(s) that doesn’t directly receive cardholder data but that can impact the security of the payment transaction. No electronic storage, processing, or transmission of any cardholder data on the merchant’s systems or premises.", то есть обработка платежных данных выполняется третьей стороной, но сайт влияет на безопасность карточных данных.
Для соблюдения требований стандарта, необходимо заполнять лист самооценки SAQ-EP и ежеквартально проходить ASV-тестирование.
Подробнее про соответствие требованиям PCI читайте в разделе PCI DSS.
Формат передачи данных для онлайн-чека
Данные для чека необходимо передавать в формате json по примеру ниже:
Наименование товара 1 // тег-1214 признак способа расчета — признак способа расчета // тег-1212 признак предмета расчета — признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета Наименование товара 2 //сумма со скидкой 25% // тег-1214 признак способа расчета — признак способа расчета // тег-1212 признак предмета расчета — признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета // тег-1229 сумма акциза // тег-1230 цифровой код страны происхождения товара в соответствии с Общероссийским классификатором стран мира 3 симв. // тег-1231 регистрационный номер таможенной декларации 32 симв. //данные маркировки товара //HEX представление штрих/бар кода маркировки целиком (Только для касс Микропэй) Наименование товара 3 // тег-1214 признак способа расчета — признак способа расчета // тег-1212 признак предмета расчета — признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета //признак агента, тег ОФД 1057, 1222 //данные агента, тег офд 1223 // наименование операции банковского платежного агента или банковского платежного субагента, тег ОФД 1044 // телефон платежного агента, тег ОФД 1073 // телефон оператора по приему платежей, тег ОФД 1074 // телефон оператора перевода, тег ОФД 1075 // наименование оператора перевода, тег ОФД 1026 // адрес оператора перевода, тег ОФД 1005 // ИНН оператора перевода, тег ОФД 1016 //данные поставщика платежного агента, тег ОФД 1224 // телефон поставщика, тег ОД 1171 // наименование поставщика, тег ОФД 1225 // ИНН поставщика, тег ОФД 1226 //место осуществления расчёта, по умолчанию берется значение из кассы //система налогообложения; необязательный, если у вас одна система налогообложения //e-mail покупателя, если нужно отправить письмо с чеком //телефон покупателя в любом формате, если нужно отправить сообщение со ссылкой на чек // тег-1227 Покупатель — наименование организации или фамилия, имя, отчество (при наличии), серия и номер паспорта покупателя (клиента) // тег-1228 ИНН покупателя //чек является бланком строгой отчётности //признак агента, тег ОФД 1057 // Сумма оплаты электронными деньгами // Сумма из предоплаты (зачетом аванса) (2 знака после точки) // Сумма постоплатой(в кредит) (2 знака после точки) // Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после точки) //содержимое элемента data
Описание параметров для формирования объекта СustomerReceipt смотрите в документации сервиса CloudKassir.
Установка
Для создания криптограммы необходимо прописать на странице с платежной формой скрипт checkout:
Выбрать удобный для вас вариант передачи карточных данных:
Далее созданную криптограмму карты необходимо отправить на сервер и вызывать метод оплаты через API.
Вариант с передачей карточных данных напрямую в скрипт
Инициализировать скрипт checkout
Вызвать метод генерации криптограммы, передав в него карточные данные
4242 4242 4242 4242
Вариант с использованием формы
- Создать форму для ввода карточных данных:
Поля ввода карточных данных должны быть помечены атрибутами:
Инициализировать скрипт checkout
Вызвать метод генерации криптограммы
При разработке собственной формы или передачи данных в скрипт обратите внимание на следующие моменты
Метод создания подписки на рекуррентные платежи.
Token String Обязательный Токен карты, выданный системой после первого платежа
Description String Обязательный Назначение платежа в свободной форме
Amount Number Обязательный Cумма платежа в валюте, разделитель точка. Количество не нулевых знаков после точки – 2
RequireConfirmation Bool Обязательный Если значение true — платежи будут выполняться по двухстадийной схеме
StartDate DateTime Обязательный Дата и время первого платежа по плану во временной зоне UTC. Значение должно быть в будущем
MaxPeriods Int Необязательный Максимальное количество платежей в подписке. Если указан, должен быть больше 0
CustomerReceipt json Необязательный Для изменения состава онлайн-чека
В ответ на корректно сформированный запрос система возвращает сообщение об успешно выполненной операции и идентификатор подписки.
"Ежемесячная подписка на сервис example.com"
Настройка подключения
Для подключения продукта"Безопасная сделка" необходимо подать заявку своему персональному менеджеру или указать это на этапе подключения выделенному менеджеру.
Типы операций
В таблице ниже представлены коды типов операций в уведомлениях.
CardPayout Выплата на карту
Регистрация платежей
Если вам необходимо регистрировать платежи в своей системе, но нет необходимости проверять перед оплатой, то ваши действия следующие:
Сценарии интеграции
Система предлагает различные варианты интеграции от очень простого до бесконечно функционального в зависимости от требований.
Типы уведомлений
В таблице ниже представлены типы уведомлений.
Самостоятельное размещение Apple Pay на сайте
Если вы хотите разместить кнопку Apple Pay непосредственно на вашем сайте по примеру ниже, а не через платёжный виджет, то следуйте дальнейшей инструкции.
Интеграция предполагает использование клиентской части (javascript) и серверной. На клиенте вы проверяете совместимость устройства и обрабатываете события: создание сессии, авторизация платежа, обработка платежа.
На серверной части необходимо выполнять вызовы API:
Пример js кода:
Ваш Apple Merchant ID //кнопка Apple Pay //Если устройство поддерживает — добавляем карты МИР //Назначение платежа указывайте только латиницей! //назначение платежа и сумма // обработчик события для создания merchant session. // отправьте запрос на ваш сервер, а далее запросите API CloudPayments // для запуска сессии // обработчик события авторизации платежа //var email = event.payment.shippingContact.emailAddress; //если был запрошен адрес e-mail //var phone = event.payment.shippingContact.phoneNumber; //если был запрошен телефон //все варианты смотрите на сайте https://developer.apple.com/reference/applepayjs/paymentcontact //передайте полученный токен на бэкэнд сервера и оттуда выполните //запрос оплаты по криптограмме https://developers.cloudpayments.ru/#oplata-po-kriptogramme, //используя этот токен в параметре CardCryptogramPacket // Начало сессии Apple Pay
Классическая интеграция
Apple Pay Merchant ID, сертификаты и домены
Для использования технологии Apple Pay вам необходимо зарегистрировать Merchant ID, сформировать платежный сертификат, сертификат для веб-платежей и подтвердить владение доменами сайтов, на которых будет производиться оплата.
Регистрация Merchant ID:
В виджете появится возможность оплачивать через Apple Pay.
Прием платежей с Apple Pay
Схема оплаты включает в себя 3 этапа:
Apple Pay в мобильных приложениях
Используйте SDK PassKit от Apple для получения PaymentToken и метод оплаты по криптограмме в API для проведения платежа.

Автоплатежи для благотворительных фондов
Платежное решение подходит для благотворительных фондов. Имя, фамилия, телефон, e-mail и любые другие данные с формы будут сохранены в виджете и переданы на ваш сервер через Pay-уведомление.

//один раз в месяц начиная со следующего месяца //id из личного кабинета //идентификатор плательщика (обязательно для создания подписки) //действие при успешной оплате //действие при неуспешной оплате
Google Pay в мобильных приложениях
Используйте Google Pay API для получения PaymentData и метод оплаты по криптограмме в API для проведения платежа.
При формировании запроса на платежные данные укажите тип оплаты через шлюз: Wallet-Constants.PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY и добавьте два параметра:
"ваш Public ID"
Принцип работы
Выбор формата передачи параметров определяется на стороне клиента и управляется через заголовок запроса Content-Type.
Ответ система выдает в JSON-формате, который как минимум включает в себя два параметра: Success и Message:
"Invalid Amount value"
Статусы операций
В таблице ниже представлены статусы транзакций, условия применения и возможные действия.
AwaitingAuthentication Ожидает аутентификации После перехода плательщика на сайт эмитента в ожидании результатов 3-D Secure Нет
Authorized Авторизована После получения авторизации Подтверждение, Отмена
Completed Завершена После подтверждения операции Возврат денег
Cancelled Отменена В случае отмены операции Нет
Declined Отклонена В случае невозможности провести операцию (нет денег на счете карты и т.п.) Нет
Запуск и остановка регулярных платежей
Запуск рекуррентных платежей возможен в любое время после выполнения установочного платежа: в тот же момент, через неделю или через месяц. Ограничение только одно — интервал между регулярными платежами, а также между установочным и первым регулярным платежом не может превышать один год.
Пример: покупатель оплачивает первый месяц предоставления услуг через установочный платеж и дает согласие на ежемесячное списание с его карты начиная со второго месяца. Запуск регулярных платежей может быть выполнен через API или платежный виджет.
Если покупатель отказывается от дальнейших платежей, вы можете отменить подписку в любой момент:
Также плательщик может самостоятельно найти и отменить свои регулярные платежи на сайте системы CloudPayments.
Выполняется после того, как оплата была успешно проведена и получена авторизация эмитента.
Служит для информирования о проведенном платеже: система отправляет запрос на адрес ТСП с информацией об оплате, а сайт должен зафиксировать факт платежа.
Параметры передаются в теле запроса, список представлен в следующей таблице:
TransactionId Long Обязательный Номер транзакции в системе
Amount Number, точка в качестве разделителя, две цифры после точки Обязательный Сумма оплаты из параметров платежа
Currency String Обязательный Валюта: RUB/USD/EUR/GBP из параметров платежа (см. справочник)
DateTime yyyy-MM-dd HH:mm:ss Обязательный Дата/время создания платежа во временной зоне UTC
CardId String Необязательный Уникальный идентификатор карты в системе CloudPayments
CardFirstSix String(6) Обязательный Первые 6 цифр номера карты
CardLastFour String(4) Обязательный Последние 4 цифры номера карты
CardType String Обязательный Платежная система карты: Visa, Mastercard, Maestro или "МИР"
CardExpDate String Обязательный Срок действия карты в формате MM/YY
TestMode Bit (1 или 0) Обязательный Признак тестового режима
Status String Обязательный Статус платежа после авторизации: Completed — для одностадийных платежей, Authorized — для двухстадийных
OperationType String Обязательный Тип операции: Payment/CardPayout (см. справочник)
InvoiceId String Необязательный Номер заказа из параметров платежа
AccountId String Необязательный Идентификатор пользователя из параметров платежа
SubscriptionId String Необязательный Идентификатор подписки (для рекуррентных платежей)
Name String Необязательный Имя держателя карты
Email String Необязательный E-mail адрес плательщика
IpCountry String(2) Необязательный Двухбуквенный код страны нахождения плательщика по ISO3166-1
IpCity String Необязательный Город нахождения плательщика
IpRegion String Необязательный Регион нахождения плательщика
IpDistrict String Необязательный Округ нахождения плательщика
IpLatitude String Необязательный Широта нахождения плательщика
IpLongitude String Необязательный Долгота нахождения плательщика
Issuer String Необязательный Название банка-эмитента карты
IssuerBankCountry String(2) Необязательный Двухбуквенный код страны эмитента карты по ISO3166-1
Description String Необязательный Назначение оплаты из параметров платежа
Data Json Необязательный Произвольный набор параметров, переданных в транзакцию
Token String Необязательный Токен карты для повторных платежей без ввода реквизитов
TotalFee Decimal Необязательный Значение общей комиссии
CardProduct String Необязательный Тип карточного продукта
PaymentMethod String Необязательный Метод оплаты ApplePay, GooglePay, Яндекс Пэй или TinkoffPay
FallBackScenarioDeclinedTransactionId Long Необязательный Номер первой неуспешной транзакции
Rrn String Необязательный Уникальный номер банковской транзакции, который назначается обслуживающим банком
В ответ на запрос система ожидает получить ответ в JSON-формате с обязательным параметром code:
Код определяет результат обработки сервером ТСП уведомления о платеже и может принимать единственное значение:
Мобильный виджет
Скрипт автоматически определяет устройство пользователя и запускает наиболее подходящий вариант виджета: обычный либо оптимизированный для мобильных устройств. Для удобства покупателей мобильная версия виджета занимает весь экран и предлагает провести оплату либо картой, либо по технологии Apple Pay или Google Pay.

Возможность оплаты в виджете через Apple Pay и Google Pay появляется при соблюдении следующих условий:
Способы оплаты
Оплату можно проводить следующими способами:
ASV-сканирование
ASV-сканирование — автоматизированная проверка вашего сайта на наличие уязвимостей. Сканер проверяет наличие вирусов, известных уязвимостей, таких как XSS, SQL Injections и так далее, после чего составляет детальный отчет с инструкцией по устранению проблем, если они были обнаружены.
Использование сканера необходимо для приема платежей по технологии Checkout, для остальных инструментов — виджет, мобильный SDK, рекарринг и рекуррент — его использование не требуется.
Выбор вендора для сканирования остается на ваше усмотрение, но он должен быть из списка на сайте совета PCI.
Получение QR-кода для оплаты
Метод для получения QR-кода для отображения клиенту в браузере. В ответе вернётся параметр QrImage с QR-кодом в формате imageSVG для отображения клиенту. Значение строки закодировано в base64.
Параметры запроса
см. Tinkoff Pay. Получение ссылки для оплаты
Пример запроса
При работе в тестовом режиме кассовые чеки будут формироваться в демонстрационной ККТ с отладочным фискальным накопителем.
Статусы подписок (рекуррент)
В таблице ниже представлены статусы подписок, условия применения и возможные действия.
Active Подписка активна После создания и очередной успешной оплаты Отмена
PastDue Просрочена После одной или двух подряд неуспешных попыток оплаты Отмена
Cancelled Отменена В случае отмены по запросу Нет
Rejected Отклонена В случае трех неудачных попыток оплаты, идущих подряд Нет
Expired Завершена В случае завершения максимального количества периодов (если были указаны) Нет
Онлайн-фискализация
Компания CloudPayments предлагает своим партнерам облачное решение "под ключ" для онлайн-фискализации интернет-платежей, и в рамках соблюдения закона 54-ФЗ для любого бизнеса вы получите:
Касса будет находиться в дата-центре 24/7, с подключением к интернету и питанию, работать круглосуточно и без перебоев. Наши сотрудники будут следить за ее техническим состоянием и своевременно менять фискальные накопители, а специальное программное обеспечение — корректировать ошибки, открывать и закрывать смену по расписанию, в "облаке" ставить чеки в очередь при большой нагрузке и гарантированно отправлять покупателям.

Установка виджета
Для установки виджета необходимо прописать на сайте скрипт в раздел head:
Для появления платежной формы необходимо зарегистрировать функцию для вызова метода pay, передав в него параметр auth или charge:
// или ‘charge’ //id из личного кабинета Оплата товаров в example.com //идентификатор плательщика (необязательно) //номер заказа (необязательно) //email плательщика (необязательно) //дизайн виджета (необязательно) //время в секундах до авто-закрытия виджета (необязательный) // адреса для перенаправления // при оплате по Tinkoff Pay тестовый проезд дом тест //действие при успешной оплате //действие при неуспешной оплате //Вызывается как только виджет получает от api.cloudpayments ответ с результатом транзакции. //например вызов вашей аналитики
И прописать вызов функции на событие, например, нажатие кнопки «Оплатить»:
Демонстрация работы виджета представлена в нашем демо-магазине.
Пример реализации запуска виджета без библиотеки jquery:
Для тестирования можно использовать как тестовые карточные данные, так и реальные. Списания денежных средств не произойдет.
Fail
Выполняется в случае, если оплата была отклонена, и используется для анализа количества и причин отказов.
Стоит учитывать, что факт отказа в оплате не является конечным — пользователь может оплатить со второго раза.
ReasonCode Int Обязательный Код ошибки (см. справочник)
OperationType String Обязательный Тип операции: Payment/Refund/CardPayout (см. справочник)





