Документация CloudPayments

Описание объекта carddata:

ПараметрОписаниеТипОбязательный *
cvvCVV/CVC кодstringНет *
cardNumberНомер карты, наличие пробелов не имеет значенияstringНе обязательный, если поле привязано в форме
expDateMonthСрок действия карты – месяцstringНе обязательный, если поле привязано в форме или передано поле expDateMonthYear
expDateYearСрок дейcтвия карты – годstringНе обязательный, если поле привязано в форме или переданы поля expDateMonth и expDateYear
expDateMonthYearСрок действия карты, все символы за исключением цифр игнорируются. Если длина строки 2, 3 или 5 символов то первая цифра воспринимается как месяц, оставшиеся как год. Если длина строки 4 или 6 символов то первые два трактуются как месяц, а оставшиеся как год.stringНе обязательный, если поле привязано в форме или переданы поля expDateMonth и expDateYear
nameИмя владельца картыstringНет

Api и доступные методы

Данные передаются в формате Json, методом POST на сервер Cloudpayments.

Пример запроса на оплату по криптограмме:

{ "Amount":10, "Currency":"RUB", "InvoiceId":"1234567", "IpAddress": "123.123.123.123", "Description":"Оплата товаров в example.com", "AccountId":"user_x", "Name":"CARDHOLDER NAME", // CardCryptogramPacket Обязательный параметр "CardCryptogramPacket":"01492500008719030128SMfLeYdKp5dSQVIiO5l6ZCJiPdel4uDjdFTTz1UnXY 3QaZcNOW8lmXg0H670MclS4lI qLkujKF4pR5Ri T/E04Ufq3t5ntMUVLuZ998DLm OVHV7FxIGR7snckpg47A73v7/y88Q5dxxvVZtDVi0qCcJAiZrgKLyLCqypnMfhjsgCEPF6d4OMzkgNQiynZvKysI2q xc9cL0 CMmQTUPytnxX52k9qLNZ55cnE8kuLvqSK TOG7Fz03moGcVvbb9XTg1oTDL4pl9rgkG3XvvTJOwol3JDxL1i6x VpaRxpLJg0Zd9/9xRJOBMGmwAxo8/xyvGuAj85sxLJL6fA==" "Payer": { "FirstName":"Тест", "LastName":"Тестов", "MiddleName":"Тестович", "Birth":"1955-02-24", "Address":"тестовый проезд дом тест", "Street":"Lenina", "City":"MO", "Country":"RU", "Phone":"123", "Postcode":"345" }
}

Пример ответа (некорректный запрос):

  • Аутентификация запросов;
  • Идемпотентность API;
  • Тестовый метод;
  • Оплата по криптограмме;
  • Обработка 3-D Secure;
  • Оплата по токену (рекарринг);
  • Подтверждение оплаты;
  • Отмена оплаты;
  • Возврат денег;
  • Выплата по криптограмме;
  • Выплата по токену;
  • Просмотр транзакции;
  • Проверка статуса платежа;
  • Выгрузка списка транзакций;
  • Выгрузка токенов;
  • Создание подписки на рекуррентные платежи;
  • Запрос информации о подписке;
  • Поиск подписок;
  • Изменение подписки на рекуррентные платежи;
  • Отмена подписки на рекуррентные платежи;
  • Создание счета для отправки по почте;
  • Отмена созданного счета;
  • Просмотр настроек уведомлений;
  • Изменение настроек уведомлений;
  • Запуск сессии для оплаты через Apple Pay.

Asv-сканирование

ASV-сканирование — автоматизированная проверка вашего сайта на наличие уязвимостей. Сканер проверяет наличие вирусов, известных уязвимостей, таких как XSS, SQL Injections и так далее. После чего составляет детальный отчет с инструкцией по устранению проблем, если они были обнаружены.

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

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

Cancel

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

Параметры передаются в теле запроса, список представлен в следующей таблице:

ПараметрФорматПрименениеОписание
TransactionIdЦелое числоОбязательныйНомер отмененной транзакции в системе
AmountNumeric, точка в качестве разделителя, две цифры после точкиОбязательныйСумма отмененной транзакции в валюте платежа
DateTimeyyyy-MM-dd HH:mm:ssОбязательныйДата/время отмены по временной зоне UTC
InvoiceIdStringНеобязательныйНомер заказа отмененной операции
AccountIdStringНеобязательныйИдентификатор пользователя отмененной операции
EmailStringНеобязательныйE-mail адрес плательщика
DataJsonНеобязательныйПроизвольный набор параметров, переданных в транзакцию

В ответ на запрос система ожидает получить ответ в JSON-формате с обязательным параметром code:

Код определяет результат обработки сервером ТСП уведомления и может принимать единственное значение:

КодЗначение
0Возврат зарегистрирован

Check

Выполняется после того, как держатель заполнил платежную форму и нажал кнопку «Оплатить».

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

Параметры передаются в теле запроса, список представлен в следующей таблице:

В ответ на запрос система ожидает получить ответ в JSON-формате с обязательным параметром code:

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

КодЗначениеРезультат
0Платеж может быть проведенСистема выполнит авторизацию платежа
10Неверный номер заказаПлатеж будет отклонен
11Некорректный AccountIdПлатеж будет отклонен
12Неверная суммаПлатеж будет отклонен
13Платеж не может быть принятПлатеж будет отклонен
20Платеж просроченПлатеж будет отклонен, плательщик получит соответствующее уведомление

Автоплатежи для благотворительных фондов

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

Код формы:

this.paySample4=function(){varwidget=newcp.CloudPayments();vardata={//данные дарителяname:$('#name-sample-4').val(),lastName:$('#lastName-sample-4').val(),phone:$('#phone-sample-4').val()};varauto=$('#recurrent-sample-4').is(':checked');//проверкаif(auto){//включаем подпискуdata.CloudPayments={recurrent:{interval:'Month',period:1}//один раз в месяц начиная со следующего месяца}}varamount=parseFloat($('#amount-sample-4').val());varaccountId=$('#email-sample-4').val();widget.charge({// optionspublicId:'test_api_00000000000000000000002',//id из личного кабинетаdescription:'Пожертвование в фонд ...',//назначениеamount:amount,//суммаcurrency:'RUB',//валютаaccountId:accountId,//идентификатор плательщика (обязательно для создания подписки)email:accountId,data:data},function(options){// success//действие при успешной оплате},function(reason,options){// fail//действие при неуспешной оплате});};$('#checkout-sample-4').click(paySample4);

Автоплатежи для интернет-провайдеров

Платежное решение подходит для интернет-провайдеров, операторов связи и телекомов. Уведомления на проверку и регистрацию платежей могут быть настроены как в формате CloudPayments, так и в формате QIWI (ОСМП).

Код формы:

this.paySample3=function(){varwidget=newcp.CloudPayments();vardata={};varauto=$('#recurrent-sample-3').is(':checked');//проверкаif(auto){//включаем подпискуvardate=newDate();//текущая датаdate.setMonth(date.getMonth() 1);//следующий месяцdate.setDate(date.getDate()-1);//минус один деньvarrecurrent={interval:'Month',period:1,startDate:date};//один раз в месяц начиная со следующего месяца за минусом одного дняdata.CloudPayments={recurrent:recurrent}}varamount=parseFloat($('#amount-sample-3').val());varaccountId=$('#account-sample-3').val();widget.charge({// optionspublicId:'test_api_00000000000000000000002',//id из личного кабинетаdescription:'Пополнение счета абонента ' accountId,//назначениеamount:amount,//суммаcurrency:'RUB',//валютаaccountId:accountId,//идентификатор плательщика (обязательно для создания подписки)data:data},function(options){// success//действие при успешной оплате},function(reason,options){// fail//действие при неуспешной оплате});};$('#checkout-sample-3').click(paySample3);

Виды операций

Система предполагает два вида операций: оплата и возврат.

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

Возможные варианты

  • Некорректно сформирован запрос:
    success — false
    message — описание ошибки
  • Транзакции отклонена:
    success — false
    model — информация о транзакции и код ошибки
  • Транзакции принята:
    success — true
    model — информация о транзакции

Пример запроса на оплату по токену:

Пример ответа:некорректный запрос

Пример ответа:транзакция отклонена. В поле ReasonCode код ошибки (см. справочник)

{"Model":{"ReasonCode":5051,"PublicId":"pk_**********************************","TerminalUrl":"http://test.test","TransactionId":891583633,"Amount":100,"Currency":"RUB","CurrencyCode":0,"PaymentAmount":100,"PaymentCurrency":"RUB","PaymentCurrencyCode":0,"InvoiceId":"1234567","AccountId":"user_x","Email":null,"Description":"Оплата товаров в example.com","JsonData":null,"CreatedDate":"/Date(1635154784619)/","PayoutDate":null,"PayoutDateIso":null,"PayoutAmount":null,"CreatedDateIso":"2021-10-25T09:39:44","AuthDate":null,"AuthDateIso":null,"ConfirmDate":null,"ConfirmDateIso":null,"AuthCode":null,"TestMode":true,"Rrn":null,"OriginalTransactionId":null,"FallBackScenarioDeclinedTransactionId":null,"IpAddress":"123.123.123.123","IpCountry":"CN","IpCity":"Beijing","IpRegion":"Beijing","IpDistrict":"Beijing","IpLatitude":39.9289,"IpLongitude":116.3883,"CardFirstSix":"400005","CardLastFour":"5556","CardExpDate":"12/25","CardType":"Visa","CardProduct":null,"CardCategory":null,"EscrowAccumulationId":null,"IssuerBankCountry":"US","Issuer":"ITS Bank","CardTypeCode":0,"Status":"Declined","StatusCode":5,"CultureName":"ru","Reason":"InsufficientFunds","CardHolderMessage":"Недостаточно средств на карте","Type":0,"Refunded":false,"Name":"CARDHOLDER NAME","Token":"tk_255c42192323f2e09ea17635302c3","SubscriptionId":null,"GatewayName":"Test","ApplePay":false,"AndroidPay":false,"WalletType":"","TotalFee":0},"Success":false,"Message":null}

Пример ответа:транзакция принята

{"Model":{"ReasonCode":0,"PublicId":"pk_**************************","TerminalUrl":"http://test.test","TransactionId":897728064,"Amount":59,"Currency":"RUB","CurrencyCode":0,"PaymentAmount":59,"PaymentCurrency":"RUB","PaymentCurrencyCode":0,"InvoiceId":1234567,"AccountId":"user_x","Email":null,"Description":"Оплата товаров в example.com","JsonData":null,"CreatedDate":"/Date(1635562705992)/","PayoutDate":null,"PayoutDateIso":null,"PayoutAmount":null,"CreatedDateIso":"2021-10-30T02:58:25","AuthDate":"/Date(1635562706070)/","AuthDateIso":"2021-10-30T02:58:26","ConfirmDate":"/Date(1635562706070)/","ConfirmDateIso":"2021-10-30T02:58:26","AuthCode":"A1B2C3","TestMode":true,"Rrn":null,"OriginalTransactionId":null,"FallBackScenarioDeclinedTransactionId":null,"IpAddress":"87.251.91.164","IpCountry":"RU","IpCity":"Новосибирск","IpRegion":"Новосибирская область","IpDistrict":"Сибирский федеральный округ","IpLatitude":55.03923,"IpLongitude":82.927818,"CardFirstSix":"424242","CardLastFour":"4242","CardExpDate":"12/25","CardType":"Visa","CardProduct":"I","CardCategory":"Visa Infinite Infinite","EscrowAccumulationId":null,"IssuerBankCountry":"RU","Issuer":"CloudPayments","CardTypeCode":0,"Status":"Completed","StatusCode":3,"CultureName":"ru-RU","Reason":"Approved","CardHolderMessage":"Оплата успешно проведена","Type":0,"Refunded":false,"Name":"SER","Token":"success_1111a3e0-2428-48fb-a530-12815d90d0e8","SubscriptionId":null,"GatewayName":"Test","ApplePay":false,"AndroidPay":false,"WalletType":"","TotalFee":0},"Success":true,"Message":null}

Длинная запись

Длинная запись для авиа (airline addendum) — расширенная информация о маршрутной квитанции, которая передается вместе с транзакцией на обработку в платежную систему. Использование длинной записи позволяет сократить риски мошеннических операций и снизить стоимость обработки платежа.

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

Информация о маршрутной квитанции включает в себя:

ПараметрФорматПрименениеОписание
BookingRefStringОбязательный, если не указан номер билетаНомер брони
TicketNumberStringОбязательный, если не указан номер брониНомер билета

Под сегментом понимается один авиаперелет: взлет и посадка. Необходимо указать все сегменты маршрута с перечнем следующих параметров:

ПараметрФорматПрименениеОписание
FlightNumberStringОбязательныйНомер рейса
DepartureDateTimeDateTimeОбязательныйДата и время отправления
ArrivalDateTimeDateTimeОбязательныйДата и время прибытия
OriginatingCountryStringОбязательныйСтрана вылета на русском или английском языке
OriginatingCityStringОбязательныйГород вылета на русском или английском языке
OriginatingAirportCodeString(3)ОбязательныйКод аэропорта вылета — 3 буквы по классификации IATA
DestinationCountryStringОбязательныйСтрана прилета на русском или английском языке
DestinationCityStringОбязательныйГород прилета на русском или английском языке
DestinationAirportCodeString(3)ОбязательныйКод аэропорта прилета — 3 буквы по классификации IATA

Для передачи информации о пассажирах, необходимо по каждому указать имя и фамилию латиницей:

ПараметрФорматПрименениеОписание
FirstNameStringОбязательныйИмя пассажира
LastNameStringОбязательныйФамилия пассажира

Длинную запись можно передать в систему в параметре AirlineAddendum при вызове метода оплаты через API или в ответе на запрос проверки платежа.

Пример формирования длинной записи:

{"TicketNumber":"390 5241025377","BookingRef":null,"Legs":[{"FlightNumber":"A3 971","DepartureDateTime":"2022-05-26T05:15:00","ArrivalDateTime":"2022-05-26T07:30:00","OriginatingCountry":"Россия","OriginatingCity":"Москва","OriginatingAirportCode":"DME","DestinationCountry":"Греция","DestinationCity":"Афины","DestinationAirportCode":"ATH"},{"FlightNumber":"A3 204","DepartureDateTime":"2022-05-26T09:45:00","ArrivalDateTime":"2022-05-26T10:50:00","OriginatingCountry":"Греция","OriginatingCity":"Афины","OriginatingAirportCode":"ATH","DestinationCountry":"Греция","DestinationCity":"Родос","DestinationAirportCode":"RHO"},{"FlightNumber":"A3 980","DepartureDateTime":"2022-06-06T09:00:00","ArrivalDateTime":"2022-06-06T13:45:00","OriginatingCountry":"Греция","OriginatingCity":"Родос","OriginatingAirportCode":"RHO","DestinationCountry":"Россия","DestinationCity":"Москва","DestinationAirportCode":"DME"}],"Passengers":[{"FirstName":"KONSTANTIN","LastName":"IVANOV"},{"FirstName":"JULIA","LastName":"IVANOVA"}]}

Запуск и остановка регулярных платежей

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

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

Если покупатель отказывается от дальнейших платежей, вы можете отменить подписку в любой момент:

Также плательщик может самостоятельно найти и отменить свои регулярные платежи на сайте системы CloudPayments.

Идемпотентность api

Идемпотентность — свойство API при повторном запросе выдавать тот же результат, что на первичный запрос без повторной обработки. Это значит, что вы можете отправить несколько запросов к системе с одинаковым идентификатором, при этом обработан будет только один успешный запрос, а все ответы будут идентичными.

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

Формирование идентификатора запроса остается на вашей стороне — это может быть guid, комбинация из номера заказа, даты и суммы или любое другое значение на ваше усмотрение.Каждый новый запрос, который необходимо обработать, должен включать новое значение X-Request-ID. Обработанный результат хранится в системе в течение 1 часа.

Коды временных зон

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

КодНазвание
HST(UTC-10:00) Гавайи
AKST(UTC-09:00) Аляска
PST(UTC-08:00) Тихоокеанское время (США и Канада)
MST(UTC-07:00) Горное время (США и Канада)
CST(UTC-06:00) Центральное время (США и Канада)
EST(UTC-05:00) Восточное время (США и Канада)
AST(UTC-04:00) Атлантическое время (Канада)
BRT(UTC-03:00) Бразилия
UTC(UTC) Время в формате UTC
GMT(UTC) Дублин, Лиссабон, Лондон, Эдинбург
CET(UTC 01:00) Амстердам, Берлин, Берн, Вена, Рим, Стокгольм
CET(UTC 01:00) Белград, Братислава, Будапешт, Любляна, Прага
CET(UTC 01:00) Брюссель, Копенгаген, Мадрид, Париж
CET(UTC 01:00) Варшава, Загреб, Сараево, Скопье
EET(UTC 02:00) Афины, Бухарест
EET(UTC 02:00) Вильнюс, Киев, Рига, София, Таллин, Хельсинки
EET(UTC 02:00) Восточная Европа
EET(UTC 02:00) Калининград (RTZ 1)
MSK(UTC 03:00) Волгоград, Москва, Санкт-Петербург (RTZ 2)
MSK(UTC 03:00) Минск
AZT(UTC 04:00) Баку
AMT(UTC 04:00) Ереван
SAMT(UTC 04:00) Ижевск, Самара (RTZ 3)
GET(UTC 04:00) Тбилиси
TJT(UTC 05:00) Ашхабад, Ташкент
YEKT(UTC 05:00) Екатеринбург (RTZ 4)
ALMT(UTC 06:00) Астана, Алматы
NOVT(UTC 06:00) Новосибирск (RTZ 5)
KRAT(UTC 07:00) Красноярск (RTZ 6)
HKT(UTC 08:00) Гонконг, Пекин, Урумчи, Чунцин
IRKT(UTC 08:00) Иркутск (RTZ 7)
SGT(UTC 08:00) Куала-Лумпур, Сингапур
ULAT(UTC 08:00) Улан-Батор
YAKT(UTC 09:00) Якутск (RTZ 8)
VLAT(UTC 10:00) Владивосток, Магадан (RTZ 9)
SAKT(UTC 11:00) Чокурдах (RTZ 10)
ANAT(UTC 12:00) Анадырь, Петропавловск-Камчатский (RTZ 11)

Коды ошибок

Ниже представлены коды ошибок, которые определяют причину отказа в проведении платежа.

Сообщение для плательщика виджет показывает самостоятельно, а в API за него отвечает параметр CardHolderMessage.

КодНазваниеПричинаСообщение для плательщика
5001Refer To Card IssuerОтказ эмитента проводить онлайн-операциюСвяжитесь с вашим банком или воспользуйтесь другой картой
5003Invalid MerchantОтказ эмитента проводить онлайн-операциюСвяжитесь с вашим банком или воспользуйтесь другой картой
5004Pick Up CardКарта потерянаСвяжитесь с вашим банком или воспользуйтесь другой картой
5005Do Not HonorОтказ эмитента без объяснения причин
- неверно указан код CVV на картах Mastercard;
- внутренние ограничения банка, выпустившего карту;
- карта заблокирована или еще не активирована;
- на карте не включены интернет-платежи или не подключен 3DS.
Свяжитесь с вашим банком или воспользуйтесь другой картой
5006ErrorОтказ сети проводить операцию или неправильный CVV-кодПроверьте правильность введенных данных карты или воспользуйтесь другой картой
5007Pick Up Card Special ConditionsКарта потерянаСвяжитесь с вашим банком или воспользуйтесь другой картой
5012Invalid TransactionКарта не предназначена для онлайн-платежейВоспользуйтесь другой картой или свяжитесь с банком, выпустившим карту
5013Amount ErrorСлишком маленькая или слишком большая сумма операцииПроверьте корректность суммы
5014Invalid Card NumberНекорректный номер картыПроверьте правильность введенных данных карты или воспользуйтесь другой картой
5015No Such IssuerЭмитент не найденПроверьте правильность введенных данных карты или воспользуйтесь другой картой
5019Transaction ErrorОтказ эмитента без объяснения причин
- неверно указан код CVV на картах Mastercard;
- внутренние ограничения банка, выпустившего карту;
- карта заблокирована или еще не активирована;
- на карте не включены интернет-платежи или не подключен 3DS.
Свяжитесь с вашим банком или воспользуйтесь другой картой
5030Format ErrorОшибка на стороне эквайера — неверно сформирована транзакцияПовторите попытку позже
5031Bank Not Supported By SwitchНеизвестный эмитент картыВоспользуйтесь другой картой
5033Expired Card PickupИстек срок утери картыСвяжитесь с вашим банком или воспользуйтесь другой картой
5034Suspected FraudОтказ эмитента — подозрение на мошенничествоСвяжитесь с вашим банком или воспользуйтесь другой картой
5036Restricted CardКарта не предназначена для платежейПлатежи для этой карты запрещены. Попробуйте другую карту
5041Lost CardКарта потерянаСвяжитесь с вашим банком или воспользуйтесь другой картой
5043Stolen CardКарта украденаСвяжитесь с вашим банком или воспользуйтесь другой картой
5051Insufficient FundsНедостаточно средствНедостаточно средств на карте
5054Expired CardКарта просрочена или неверно указан срок действияПроверьте правильность введенных данных карты или воспользуйтесь другой картой
5057Transaction Not PermittedОграничение на карте
— внутренние ограничения банка, выпустившего карту;
— карта заблокирована или еще не активирована;
— на карте не включены интернет-платежи или не подключен 3DS.
Свяжитесь с вашим банком или воспользуйтесь другой картой
5059Suspected Fraud DeclineТранзакция была отклонена банком по подозрению в мошенничествеСвяжитесь с банком или воспользуйтесь другой картой
5062Restricted Card 2Карта не предназначена для платежейПлатежи для этой карты запрещены. Попробуйте другую карту
5063Security ViolationКарта заблокирована из-за нарушений безопасностиВоспользуйтесь другой картой
5065Exceed Withdrawal FrequencyПревышен лимит операций по картеСвяжитесь с вашим банком или воспользуйтесь другой картой
5082Incorrect CVVНеверный CVV-кодНеверно указан код CVV
5091TimeoutЭмитент недоступенПовторите попытку позже или воспользуйтесь другой картой
5092Cannot Reach NetworkЭмитент недоступенПовторите попытку позже или воспользуйтесь другой картой
5096System ErrorОшибка банка-эквайера или сетиПовторите попытку позже
5204Unable To ProcessОперация не может быть обработана по прочим причинамСвяжитесь с вашим банком или воспользуйтесь другой картой
5206Authentication failed3-D Secure авторизация не пройденаСвяжитесь с вашим банком или воспользуйтесь другой картой
5207Authentication unavailable3-D Secure авторизация недоступнаСвяжитесь с вашим банком или воспользуйтесь другой картой
5300Anti FraudЛимиты эквайера на проведение операцийВоспользуйтесь другой картой

Локализация виджета

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

Список поддерживаемых языков:

ЯзыкЧасовой поясКод
РусскийMSKru-RU
АнглийскийCETen-US
НемецкийCETde-DE
ЛатышскийCETlv
АзербайджанскийAZTaz
РусскийALMTkk
КазахскийALMTkk-KZ
УкраинскийEETuk
ПольскийCETpl
ПортугальскийCETpt
ЧешскийCETcs-CZ
ВьетнамскийICTvi-VN
ТурецкийTRTtr-TR
ИспанскийCETes-ES
ИтальянскийCETit

Обработка ошибок валидации карточных данных:

Код ошибкиОписание
CardNumber_EmptyПустой номер карты
CardNumber_InvalidНекорректный номер карты
Cvv_EmptyПустой CVV
Cvv_InvalidНекорректный CVV
ExpDateMonthYear_EmptyПустой год и месяц
ExpDateMonthYear_InvalidНекорректный год и месяц
ExpDateMonth_EmptyПустой месяц
ExpDateMonth_InvalidНекорректный месяц
ExpDateYear_EmptyПустой год
ExpDateYear_InvalidНекорректный год
Name_EmptyПустое имя *
Name_InvalidНекорректное имя *
Name_TooLongСлишком длинное имя *
Name_TooShortСлишком короткое имя *

Онлайн-фискализация

Компания CloudPayments предлагает своим партнерам облачное решение “под ключ” для онлайн-фискализации интернет-платежей, и в рамках соблюдения закона 54-ФЗ для любого бизнеса вы получите:

  • выделенную онлайн-кассу, зарегистрированную в ФНС на вашу компанию;
  • фискальный накопитель;
  • подключение к оператору фискальных данных;
  • автоматическое формирование чеков прихода и возврата в момент проведения расчета;
  • полный отчет по операциям в личном кабинете.

Касса будет находиться в дата-центре 24/7, с подключением к интернету и питанию, работать круглосуточно и без перебоев. Наши сотрудники будут следить за ее техническим состоянием и своевременно менять фискальные накопители, а специальное программное обеспечение — корректировать ошибки, открывать и закрывать смену по расписанию, в “облаке” ставить чеки в очередь при большой нагрузке и гарантированно отправлять покупателям.

Оплата в рассрочку

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

Код формы:

this.paySample5=function(){varwidget=newcp.CloudPayments();varamount=12000;//по умолчанию 12000 рублей разомvardata={};varpayLater=$('#select-sample-5-later').is(':checked');//проверкаif(payLater){//включаем подпискуdata.CloudPayments={recurrent:{interval:'Month',period:1,amount:1000,maxPeriods:6}//6 месяцев по 1000 рублей начиная со следующего месяца};amount=6000;//сумма первого платежа - 6000 рублей.}widget.charge({// optionspublicId:'test_api_00000000000000000000002',//id из личного кабинетаdescription:'Оплата ...',//назначениеamount:amount,//суммаcurrency:'RUB',//валютаaccountId:'user@example.com',//идентификатор плательщика (обязательно для создания подписки)data:data},function(options){// success//действие при успешной оплате},function(reason,options){// fail//действие при неуспешной оплате});};$('#checkout-sample-5').click(paySample5);

Параметры

Вызов функции pay c аргументом auth или charge определяет схему проведения оплаты:

  • charge для одностадийной оплаты
  • auth – для двухстайдийной оплаты
ПараметрФорматПрименениеОписание
publicIdStringОбязательныйИдентификатор сайта, который находится в ЛК
amountFloatОбязательныйСумма оплаты
currencyStringОбязательныйВалюта: RUB/USD/EUR/GBP (см. справочник)
accountIdStringОбязательный для создания подпискиИдентификатор пользователя
descriptionStringНеобязательныйОписание назначения оплаты в произвольном формате
invoiceIdStringНеобязательныйНомер заказа или счета
emailStringНеобязательныйE-mail адрес пользователя
requireEmailboolНеобязательныйТребование указать e-mail адрес пользователя в виджете
dataJsonНеобязательныйЛюбые другие данные, которые будут связаны с транзакцией, в том числе инструкции для создания подписки или формирования онлайн-чека должны обёртываться в объект cloudpayments. Мы зарезервировали названия следующих параметров и отображаем их содержимое в транзакционной выгрузке в Личном Кабинете: name, firstName, middleName, lastName, nick, phone, address, comment, birthDate
skinStringНеобязательныйВыбор дизайна виджета. Возможные варианты: classic, modern, mini. По умолчанию стоит — classic
retryPaymentboolНеобязательныйПоявление кнопки «Повторить платеж» при неудачном платеже. По умолчанию стоит true

В случае успешной или неуспешной оплаты, можно определить поведение формы следующими параметрами:

ПараметрФорматПрименениеОписание
onSuccessFunction или StringНеобязательныйУказывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после успешного завершения оплаты и закрытия пользователем окна виджета. В случае указания адреса — пользователь будет направлен на указанную страницу.
onFailFunction или StringНеобязательныйУказывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после неуспешного завершения платежа. В случае указания адреса — пользователь будет направлен на указанную страницу.
onCompleteFunctionНеобязательныйУказывается функция, которая будет вызвана, как только виджет получит ответ с результатом транзакции. Редиректы в этом методе делать нельзя.

Платежи в один клик

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

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

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

  • При последующих оплатах предлагайте пользователю оплатить с ранее привязанной карты.

Если пользователь выбирает ранее использованную карту — вызывайте метод оплаты по токену через API.

  • Предоставьте пользователю возможность управлять своими картами.

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

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

Рекуррентные платежи

Рекуррентные платежи, также известные как платежи по подписке или «автоплатежи» — возможность выполнять регулярные списания денег с банковской карты покупателя без повторного ввода реквизитов карты и без участия плательщика для инициации очередного платежа.

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

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

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

Рекуррентные платежи (подписка)

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

ПараметрФорматПрименениеОписание
IntervalStringОбязательныйИнтервал. Возможные значения: Day, Week, Month
PeriodIntОбязательныйПериод. В комбинации с интервалом, 1 Month значит раз в месяц, а 2 Week — раз в две недели. Должен быть больше 0
MaxPeriodsIntНеобязательныйМаксимальное количество платежей в подписке. По умолчанию стоит без ограничений. Если задаете количество, проверьте, чтобы оно было больше 0
AmountNumericНеобязательныйСумма регулярного платежа. По умолчанию совпадает с суммой первого, установочного платежа. Если указываете другую сумму, проверьте, чтобы она была больше 0
StartDateDateTimeНеобязательныйДата и время первого регулярного платежа. По умолчанию запуск произойдет через указанный интервал и период, например через месяц. Если указываете другую дату, то она должна стоять в будущем времени
CustomerReceiptStringНеобязательныйДанные для формирования онлайн-чека в регулярных платежах

Параметры для запуска регулярных платежей необходимо добавить в объект data.СloudPayments.recurrent как в примере ниже::

this.pay=function(){varwidget=newcp.CloudPayments();varreceipt={Items:[//товарные позиции{label:'Наименование товара 3',//наименование товараprice:300.00,//ценаquantity:3.00,//количествоamount:900.00,//суммаvat:20,//ставка НДСmethod:0,// тег-1214 признак способа расчета - признак способа расчетаobject:0,// тег-1212 признак предмета расчета - признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета}],taxationSystem:0,//система налогообложения; необязательный, если у вас одна система налогообложенияemail:'user@example.com',//e-mail покупателя, если нужно отправить письмо с чекомphone:'',//телефон покупателя в любом формате, если нужно отправить сообщение со ссылкой на чекisBso:false,//чек является бланком строгой отчетностиamounts:{electronic:900.00,// Сумма оплаты электронными деньгамиadvancePayment:0.00,// Сумма из предоплаты (зачетом аванса) (2 знака после запятой)credit:0.00,// Сумма постоплатой(в кредит) (2 знака после запятой)provision:0.00// Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после запятой)}};vardata={};data.CloudPayments={CustomerReceipt:receipt,//чек для первого платежаrecurrent:{interval:'Month',period:1,customerReceipt:receipt//чек для регулярных платежей}};//создание ежемесячной подпискиwidget.charge({// optionspublicId:'test_api_00000000000000000000001',//id из личного кабинетаdescription:'Подписка на ежемесячный доступ к сайту example.com',//назначениеamount:1000,//суммаcurrency:'RUB',//валютаinvoiceId:'1234567',//номер заказа (необязательно)accountId:'user@example.com',//идентификатор плательщика (обязательно для создания подписки)data:data},function(options){// success//действие при успешной оплате},function(reason,options){// fail//действие при неуспешной оплате});};

Обратите внимание, что создать подписку можно, указав параметр accountId, который может быть e-mail адресом, номером телефона или любым другим идентификатором плательщика.

Больше примеров создания рекуррентных платежей из виджета — в разделе “Сценарии интеграции”.

Самостоятельное размещение apple pay на сайте

Если вы хотите разместить кнопку Apple Pay непосредственно на вашем сайте по примеру ниже, а не через платёжный виджет, то следуйте дальнейшей инструкции.

Интеграция предполагает использование клиентской части (javascript) и серверной. На клиенте вы проверяете совместимость устройства и обрабатываете события: создание сессии, авторизация платежа, обработка платежа.

На серверной части необходимо выполнять вызовы API:

  1. Запуск сессии Apple Pay;

  2. Проведение оплаты по криптограмме с передачей Apple Pay токена в параметре CardCryptogramPacket;

Если вы хотите поддержать оплату через ApplePay с использование карт НСПК (МИР), вам необходимо убедиться что устройство поддерживает версию ApplePay > 11 и добавить в список поддерживаемых систем “мир“.

Пример js кода:

if(window.ApplePaySession){//проверка устройстваvarmerchantIdentifier='Ваш Apple Merchant ID';varpromise=ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);promise.then(function(canMakePayments){if(canMakePayments){$('#apple-pay').show();//кнопка Apple Pay}});}$('#apple-pay').click(function(){//обработчик кнопкиvarsupportedNetworksArray=["visa","mastercard"];if(ApplePaySession.supportsVersion(11)){supportedNetworksArray.push("mir");//Если устройство поддерживает - добавляем карты МИР}varrequest={// requiredShippingContactFields: ['email'], //Раскомментируйте, если вам нужен e-mail. Также можно запросить postalAddress, phone, name.countryCode:'RU',currencyCode:'RUB',supportedNetworks:supportedNetworksArray,merchantCapabilities:['supports3DS'],//Назначение платежа указывайте только латиницей!total:{label:'Test',amount:'1.00'},//назначение платежа и сумма}varsession=newApplePaySession(1,request);// обработчик события для создания merchant session.session.onvalidatemerchant=function(event){vardata={validationUrl:event.validationURL};// отправьте запрос на ваш сервер, а далее запросите API CloudPayments// для запуска сессии$.post("/ApplePay/StartSession",data).then(function(result){session.completeMerchantValidation(result.Model);});};// обработчик события авторизации платежаsession.onpaymentauthorized=function(event){//var email = event.payment.shippingContact.emailAddress; //если был запрошен адрес e-mail//var phone = event.payment.shippingContact.phoneNumber; //если был запрошен телефон//все варианты смотрите на сайте https://developer.apple.com/reference/applepayjs/paymentcontactvardata={cryptogram:JSON.stringify(event.payment.token)};//передайте полученный токен на бэкэнд сервера и оттуда выполните //запрос оплаты по криптограмме https://developers.cloudpayments.ru/#oplata-po-kriptogramme,//используя этот токен в параметре CardCryptogramPacket$.post("/ApplePay/Pay",data).then(function(result){varstatus;if(result.Success){status=ApplePaySession.STATUS_SUCCESS;}else{status=ApplePaySession.STATUS_FAILURE;}session.completePayment(status);});};// Начало сессии Apple Paysession.begin();});

Список валют

Наши партнеры принимают платежи в рублях, американских долларах, евро, фунтах стерлингов и 54 других валютах мира.

В таблице ниже представлены названия валют и их коды для использования в параметре currencyвиджета или API.

НазваниеКод
Российский рубльRUB
ЕвроEUR
Доллар СШАUSD
Фунт стерлинговGBP
Украинская гривнаUAH
Белорусский рубль (не используется с 1 июля 2022)BYR
Белорусский рубльBYN
Казахский тенгеKZT
Азербайджанский манатAZN
Швейцарский франкCHF
Чешская кронаCZK
Канадский долларCAD
Польский злотыйPLN
Шведская кронаSEK
Турецкая лираTRY
Китайский юаньCNY
Индийская рупияINR
Бразильский реалBRL
Южноафриканский рэндZAR
Узбекский сумUZS
Болгарский левBGN
Румынский лейRON
Австралийский долларAUD
Гонконгский долларHKD
Грузинский лариGEL
Киргизский сомKGS
Армянский драмAMD
Дирхам ОАЭAED

Схема интеграции для api checkout:

Оплата (первичное создание накопления)

Необходимо использовать запрос payments/cards/charge (либо auth), где в теле запроса в JsonData нужно передать “StartAccumulation”: true:

В ответ на запрос будет получен уникальный EscrowAccumulationId.

{"Model":{"ReasonCode":0,"PublicId":"pk_71efb26a18397ec61b755221123cc","TerminalUrl":"https://example.com","TransactionId":10649404,"Amount":215,"Currency":"RUB","CurrencyCode":0,"PaymentAmount":215,"PaymentCurrency":"RUB","PaymentCurrencyCode":0,"InvoiceId":null,"AccountId":null,"Email":null,"Description":null,"JsonData":"{"Phone": " 74951234567","Cloudpayments": {"Escrow": { "StartAccumulation": true}}}","CreatedDate":"/Date(1640787010601)/","PayoutDate":null,"PayoutDateIso":null,"PayoutAmount":null,"CreatedDateIso":"2021-12-29T14:10:10","AuthDate":"/Date(1640787010877)/","AuthDateIso":"2021-12-29T14:10:10","ConfirmDate":null,"ConfirmDateIso":null,"AuthCode":"A1B2C3","TestMode":true,"Rrn":null,"OriginalTransactionId":null,"FallBackScenarioDeclinedTransactionId":null,"IpAddress":"127.0.0.1","IpCountry":"RU","IpCity":"","IpRegion":" ","IpDistrict":" ","IpLatitude":1.03923,"IpLongitude":1.927818,"CardFirstSix":"411111","CardLastFour":"1111","CardExpDate":"11/23","CardType":"Visa","CardProduct":"C","CardCategory":"Visa Signature (Signature)","EscrowAccumulationId":"365b6942-94e8-4c5b-aff5-392dc1a51c28","IssuerBankCountry":"RU","Issuer":"CloudPayments","CardTypeCode":0,"Status":"Authorized","StatusCode":2,"CultureName":"ru","Reason":"Approved","CardHolderMessage":" ","Type":0,"Refunded":false,"Name":null,"Token":null,"SubscriptionId":null,"GatewayName":"Test","ApplePay":false,"AndroidPay":false,"WalletType":"","TotalFee":0},"Success":true,"Message":null}

Оплата (по созданному накоплению)

Для последующих запросов (оплат), в рамках созданной безопасной сделки, необходимо добавить AccumulationId в JsonData запроса payments/cards/charge с указанием “StartAccumulation”: false:

Ответ:

{"Model":{"ReasonCode":0,"PublicId":"pk_71efb26a18397ec61b755221123cc","TerminalUrl":"https://example.com","TransactionId":10649405,"Amount":215,"Currency":"RUB","CurrencyCode":0,"PaymentAmount":215,"PaymentCurrency":"RUB","PaymentCurrencyCode":0,"InvoiceId":null,"AccountId":null,"Email":null,"Description":null,"JsonData":"{"Phone": " 74951234567","Cloudpayments": {"Escrow": { "StartAccumulation": false, "AccumulationId": "365b6942-94e8-4c5b-aff5-392dc1a51c28"}}}","CreatedDate":"/Date(1640787317880)/","PayoutDate":null,"PayoutDateIso":null,"PayoutAmount":null,"CreatedDateIso":"2021-12-29T14:15:17","AuthDate":"/Date(1640787319410)/","AuthDateIso":"2021-12-29T14:15:19","ConfirmDate":null,"ConfirmDateIso":null,"AuthCode":"A1B2C3","TestMode":true,"Rrn":null,"OriginalTransactionId":null,"FallBackScenarioDeclinedTransactionId":null,"IpAddress":"127.0.0.1","IpCountry":"RU","IpCity":"","IpRegion":" ","IpDistrict":" ","IpLatitude":1.03923,"IpLongitude":1.927818,"CardFirstSix":"411111","CardLastFour":"1111","CardExpDate":"11/23","CardType":"Visa","CardProduct":"C","CardCategory":"Visa Signature (Signature)","EscrowAccumulationId":"365b6942-94e8-4c5b-aff5-392dc1a51c28","IssuerBankCountry":"RU","Issuer":"CloudPayments","CardTypeCode":0,"Status":"Authorized","StatusCode":2,"CultureName":"ru","Reason":"Approved","CardHolderMessage":" ","Type":0,"Refunded":false,"Name":null,"Token":null,"SubscriptionId":null,"GatewayName":"Test","ApplePay":false,"AndroidPay":false,"WalletType":"","TotalFee":0},"Success":true,"Message":null}

Выплата

Для завершения сделки необходимо отправить запрос payments/token/topup с указанием AccumulationId и массива транзакций к выплате:

Массив транзакций оплаты для выплаты должен должен содержать только транзакции, которые проводились по терминалу оплаты с текущим AccumulationId.
Выплата будет осуществлена только по тем TransactionId, которые были указаны в TransactionIds в запросе payments/token/topup.

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

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

В спорных случаях выступает Арбитром в спорах и несет финансовую ответственность.Сделка – процесс приобретения товара/услуги одним физическим лицом у другого.Оплата – приобретение товара/услуги у физического лица.Выплата – получение вознаграждения физического лица, оказавшего услугу/продавцу товара.

Widget – всплывающая форма для ввода реквизитов карты и e-mail адреса плательщика.Checkout – скрипт, который прописывается на сайте, собирает из указанной формы карточные данные и составляет из них криптограмму для оплаты через API.

Тестирование

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

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

ТипНомер картыРезультат оплатыРезультат оплаты по токену
Карта Visa с 3-D Secure4242 4242 4242 4242Успешный результатУспешный результат
Карта Mastercard с 3-D Secure5555 5555 5555 4444Успешный результатУспешный результат
Карта Visa с 3-D Secure4012 8888 8888 1881Недостаточно средств на карте
Карта Mastercard с 3-D Secure5105 1051 0510 5100Недостаточно средств на карте
Карта Visa без 3-D Secure4111 1111 1111 1111Успешный результатНедостаточно средств на карте
Карта Mastercard без 3-D Secure5200 8282 8282 8210Успешный результатНедостаточно средств на карте
Карта Visa без 3-D Secure4000 0566 5566 5556Недостаточно средств на карте
Карта Mastercard без 3-D Secure5404 0000 0000 0043Недостаточно средств на карте

Уведомления

Самым заметным отличием сервиса Cloudpayments является возможность широкой настройки Callback(или Webhook) уведомлений на адрес вашего проекта о различных событиях происходящих в момент оплаты. Это позволяет реализовать очень гибкий функционал взаимодействия вашего проекта с сервисом приема платежей, а также с вашим клиентом(пользователем производящим оплату).

Поддерживаются уведомления следующих типов:

Check уведомление — Запрос на проверку платежаPay уведомление — Уведомление о принятом платежеFail уведомление — Уведомление о об отклоненном платежеConfirm уведомление — Уведомление о проверке платежаRefund уведомление — Уведомление о возврате платежаReceipt уведомление — Уведомление об онлайн чекеKkt уведомление — Уведомление об статусе кассыRecurrent уведомление — Уведомление об изменении статуса подпискиCancel уведомление — Уведомление об отмене платежа

На стороне вашего проекта, при получении уведомлений, рекомендуется проверять статус, сумму, дату и ID клиента.

Скрипт обработки Pay уведомления(пример):

Условия успешного создания чека

  • В чеке есть хотя бы одна позиция;
  • Во всех позициях указано наименование;
  • Цена и сумма позиции не отрицательная;
  • Общая сумма всех позиций больше нуля;
  • Входная строка наименования товара длиной не более 128 символов, более длинные строки будут обрезаны;
  • Указанная система налогообложения должна совпадать с одним из вариантов, зарегистрированных в ККТ;
  • Числовые значения переданы с точностью не более двух знаков после запятой;
  • Передан ИНН, если он требуется в документации.

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

Формат передачи данных для онлайн-чека

Данные для чека необходимо передавать в формате json по примеру ниже:

varreceipt={"Items":[//товарные позиции{"label":"Наименование товара 1",//наименование товара"price":100.00,//цена"quantity":1.00,//количество"amount":100.00,//сумма"vat":0,//ставка НДС"method":0,// тег-1214 признак способа расчета - признак способа расчета"object":0,// тег-1212 признак предмета расчета - признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета"measurementUnit":"шт"//единица измерения},{"label":"Наименование товара 2",//наименование товара"price":200.00,//цена"quantity":2.00,//количество"amount":300.00,//сумма со скидкой 25%"vat":10,//ставка НДС"method":0,// тег-1214 признак способа расчета - признак способа расчета"object":0,// тег-1212 признак предмета расчета - признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета"measurementUnit":"шт",//единица измерения"excise":0.01,// тег-1229 сумма акциза"countryOriginCode":"156",// тег-1230 цифровой код страны происхождения товара в соответствии с Общероссийским классификатором стран мира 3 симв. "customsDeclarationNumber":"54180656/1345865/3435625/23",// тег-1231 регистрационный номер таможенной декларации 32 симв. "ProductCodeData"://данные маркировки товара{"CodeProductNomenclature":"3031303239303030303033343....a78495a4f6672754744773d3d"//HEX представление штрих/бар кода маркировки целиком (Только для касс Микропэй)}},{"label":"Наименование товара 3",//наименование товара"price":300.00,//цена"quantity":3.00,//количество"amount":900.00,//сумма"vat":20,//ставка НДС"method":0,// тег-1214 признак способа расчета - признак способа расчета"object":0,// тег-1212 признак предмета расчета - признак предмета товара, работы, услуги, платежа, выплаты, иного предмета расчета"measurementUnit":"шт",//единица измерения"AgentSign":6,//признак агента, тег ОФД 1057, 1222"AgentData":{//данные агента, тег офд 1223"AgentOperationName":null,// наименование операции банковского платежного агента или банковского платежного субагента, тег ОФД 1044"PaymentAgentPhone":null,// телефон платежного агента, тег ОФД 1073"PaymentReceiverOperatorPhone":null,// телефон оператора по приему платежей, тег ОФД 1074"TransferOperatorPhone":null,// телефон оператора перевода, тег ОФД 1075"TransferOperatorName":null,// наименование оператора перевода, тег ОФД 1026"TransferOperatorAddress":null,// адрес оператора перевода, тег ОФД 1005"TransferOperatorInn":null// ИНН оператора перевода, тег ОФД 1016},"PurveyorData":{//данные поставщика платежного агента, тег ОФД 1224"Phone":" 74951234567",// телефон поставщика, тег ОД 1171"Name":"ООО Ромашка",// наименование поставщика, тег ОФД 1225"Inn":"1234567890"// ИНН поставщика, тег ОФД 1226}}],"calculationPlace":"www.my.ru",//место осуществления расчёта, по умолчанию берется значение из кассы"taxationSystem":0,//система налогообложения; необязательный, если у вас одна система налогообложения"email":"user@example.com",//e-mail покупателя, если нужно отправить письмо с чеком"phone":"",//телефон покупателя в любом формате, если нужно отправить сообщение со ссылкой на чек"customerInfo":"",// тег-1227 Покупатель - наименование организации или фамилия, имя, отчество (при наличии), серия и номер паспорта покупателя (клиента)"customerInn":"7708806063",// тег-1228 ИНН покупателя "isBso":false,//чек является бланком строгой отчётности"AgentSign":null,//признак агента, тег ОФД 1057"amounts":{"electronic":1300.00,// Сумма оплаты электронными деньгами"advancePayment":0.00,// Сумма из предоплаты (зачетом аванса) (2 знака после запятой)"credit":0.00,// Сумма постоплатой(в кредит) (2 знака после запятой)"provision":0.00// Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после запятой)}}vardata={//содержимое элемента data"CloudPayments":{"CustomerReceipt":receipt,//онлайн-чек}}

Описание параметров для формирования объекта СustomerReceipt смотрите в документации сервиса CloudKassir.