/
Оплата по карте

Оплата по карте

Версия – 1.1

Вызов методов для оплаты можно делать только server to server.

Если у вас нет PSI DSS то карточные данные нельзя передавать с устройства на ваш сервер. Для передачи карточных даных вам необходимо сформировать криптограмму на устройстве и передавать криптограмму на ваш сервер, также пройти asv-сканирование и заполнить лист самооценки, подробнее можно почитать в документации: https://developers.cloudpayments.ru/#platezhi-v-odin-klik

Для всех методов оплаты необходимо передавать access token.

Оплата комиссии за счет отправителя

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

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

Если платящий согласен оплатить комиссию за получателя, необходимо в Авторизацию платежа передать параметр “feeFromPayer”: true, в противном случае false.

Пример реализации у нас:

 

Расчет комиссии с платящего

Адрес: https://api.cloudtips.ru/api/payment/fee

Тип: GET

Запрос:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

amount

decimal

Да

Сумма чаевых

layoutId

String

Да

Уникальный идентификатор страницы оплаты получателя

Пример запроса:

{ "amount": 0; "layoutId": "string" }

Ответ:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

amount

decimal

Да

Сумма чаевых

feeAmount

decimal

Да

Комиссия с платящего в %

amountFromPayer

decimal

Да

Сумма с платящего с учетом комиссии с платящего

succeed

Boolean

Да

Стату запроса, значение true и false

errors

Array of string

Да

Возвращатеся список ошибок, относящихся целиком к запросу

validationErrors

Array of string

Да

Поле представлено в формате ключ-значение и содержит ошибки, которые отнести к конкретному полю запроса

Пример ответа:

{ "data": { "amount": 0, "feeAmount": 0, "amountFromPayer": 0 }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }

Получение данных для страницы оплаты

Описание: Получение информации о платежной странице получателя

Адрес: https://api.cloudtips.ru/api/paymentpages/{layoutId}

Тип: GET

Запрос:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

layoutId

String

Да

Уникальный идентификатор страницы оплаты получателя

Пример запроса:

-

Ответ:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

url

String

Да

Ссылка на страницу оплаты

title

String

Да

Название

backgroundUrl

String

Да

Ссылка на обложку

avatarUrl

String

Да

Ссылка на аватарку получателя

logoUrl

String

Да

Ссылка на логотип

nameText

String

Да

Имя получателя

backgroundColor

String

Да

Цвет бэкграунда страницы оплаты

linksColor

String

Да

Цвет ссылок

buttonsColor

String

Да

Цвет кнопок

applePayEnabled

Boolean

Да

Оплата по apple pay доступна, значения true и false

googlePayEnabled

Boolean

Да

Оплата по google pay доступна, значения true и false

userAgreementText

String

Да

Текст пользовательского соглашения

userAgreementUrl

String

Да

Ссылка на пользовательское соглашение

hideReCaptchaHint

Boolean

Да

Скрывать иконку капчи

excludeCharityBanner

Boolean

Да

Не используется

paymentMessage

String

Да

Текст на странице оплаты

successMessage

String

Да

Текст на странице успешной оплаты

failMessage

String

Да

Не используется

amount

 

Да

Блок для управления полем сумма

amountPresetSettings

 

Да

Блок с предустановленными суммами

enabled

Boolean

Да

Включен, значения true и false

amounts

Array of integer

Да

Варианты сумм

constraints

 

Да

Не используется

range

 

Да

Ограничение на сумму платежа

minimal

decimal

Да

минимальная сумма платежа

maximal

decimal

Да

максимальная сумма платежа

fixed

decimal

Да

фиксированная сумма платежа

target

 

Да

Блок цель

startDate

Date

Да

Дата начала сбора денег

finishDate

Date

Да

Дата окончания сбора денег

targetAmount

decimal

Да

Сумма цели

currentAmount

decimal

Да

Текущая сумма

rating

 

Да

Блок рейтинг

enabled

Boolean

Да

Включен, значения true и false

components

 

Да

Компоненты рейтинга

id

String

Да

Уникальный идентификатор компоненты

title

String

Да

Название компоненты

imageUrl

String

Да

Ссылка на изображение

availableFields

 

Да

Блок полей для заполнения

comment

 

Да

Комментарий

title

String

Да

Название поля

enabled

Boolean

Да

Включен, значения true и false

required

Boolean

Да

Обязательно, значения true и false

email

 

Да

Почта платящего

title

String

Да

Название поля

enabled

Boolean

Да

Включен, значения true и false

required

Boolean

Да

Обязательно, значения true и false

name

 

Да

Имя платящего

title

String

Да

Название поля

enabled

Boolean

Да

Включен, значения true и false

required

Boolean

Да

Обязательно, значения true и false

phoneNumber

 

Да

Телефон платящего

title

String

Да

Название поля

enabled

Boolean

Да

Включен, значения true и false

required

Boolean

Да

Обязательно, значения true и false

payerCity

 

Да

Город платящего

title

String

Да

Название поля

enabled

Boolean

Да

Включен, значения true и false

required

Boolean

Да

Обязательно, значения true и false

afterPaymentActions

 

Да

Действие после оплаты

emailSending

Boolean

Да

Отправить email, значения true и false. Если выбран true, то поле email обязательно для заполнения

payerFee

 

Да

Блок комиссия за счет платящего

enabled

Boolean

Да

Включен, значения true и false

initialState

String

Да

Положение по умолчанию, значения:

  • Disabled - отключена,

  • Enabled - включена

buttonPosition

String

Да

Не используется

feedback

 

Да

Не используется

succeed

Boolean

Да

Стату запроса, значение true и false

errors

Array of string

Да

Возвращатеся список ошибок, относящихся целиком к запросу

validationErrors

Array of string

Да

Поле представлено в формате ключ-значение и содержит ошибки, которые отнести к конкретному полю запроса

Пример ответа:

{ "data": { "url": "string", "title": "string", "backgroundUrl": "string", "avatarUrl": "string", "logoUrl": "string", "nameText": "string", "backgroundColor": "string", "linksColor": "string", "buttonsColor": "string", "applePayEnabled": true, "googlePayEnabled": true, "userAgreementText": "string", "userAgreementUrl": "string", "hideReCaptchaHint": true, "excludeCharityBanner": true, "paymentMessage": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" }, "successMessage": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" }, "failMessage": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" }, "amount": { "amountPresetSettings": { "enabled": true, "amounts": [ 0 ] }, "constraints": [ { "type": "string", "currency": "string", "value": 0 } ] }, "target": { "startDate": "2021-08-24T10:06:46.874Z", "finishDate": "2021-08-24T10:06:46.874Z", "targetAmount": 0, "currentAmount": 0 }, "rating": { "enabled": true, "components": [ { "id": "string", "title": "string", "imageUrl": "string" } ] }, "availableFields": { "comment": { "title": "string", "enabled": true, "required": true }, "email": { "title": "string", "enabled": true, "required": true }, "name": { "title": "string", "enabled": true, "required": true }, "phoneNumber": { "title": "string", "enabled": true, "required": true }, "payerCity": { "title": "string", "enabled": true, "required": true } }, "afterPaymentActions": { "emailSending": true }, "payerFee": { "enabled": true, "initialState": "string", "buttonPosition": "string" }, "feedback": { "enabled": true, "rating": { "enabled": true, "components": [ { "id": "string", "title": "string", "imageUrl": "string" } ] }, "availableFields": { "comment": { "title": "string", "enabled": true, "required": true }, "email": { "title": "string", "enabled": true, "required": true }, "name": { "title": "string", "enabled": true, "required": true }, "phoneNumber": { "title": "string", "enabled": true, "required": true }, "payerCity": { "title": "string", "enabled": true, "required": true } } } }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }

Получение publicId

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

Адрес: https://api.cloudtips.ru/api/payment/publicid

Тип: POST

Запрос:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

layoutId

String

Да

Идентификатор платежной ссылки

Пример запроса:

{ "layoutId": "string" }

Ответ:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

publicId

String

Да

Уникальный идентификатор терминала

succeed

Boolean

Да

Стату запроса, значение true и false

errors

Array of string

Да

Возвращатеся список ошибок, относящихся целиком к запросу

validationErrors

Array of string

Да

Поле представлено в формате ключ-значение и содержит ошибки, которые отнести к конкретному полю запроса

Пример ответа:

{ "data": { "publicId": "string" }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }

Создание криптограммы

Описание: Для создания криптограммы карты можно использовать SDK для Android и iOS в зависимости от устройства или использовать Скрипт checkout для web.

Авторизация платежа

Описание: Проведение платежа по карте

Если платящий согласен оплатить комиссию за получателя и передается параметр “feeFromPayer”: true, то сумма amount должна учитывать рассчитанную комиссию

Адрес: https://api.cloudtips.ru/api/payment/partner/auth

Тип: POST

Запрос:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

cardholderName

String

Нет

Имя держателя карты латиницей

cardCryptogramPacket

String

Да

Криптограмма карты

amount

decimal

Да

Сумма платежа

Число с плавающей запятой, округление до 2 знаков после запятой

feeFromPayer

Boolean

Да

Комиссия с платящего, значения true и false

currency

String

Да

Валюта платежа, константа RUB

name

String

Нет

Имя платящего

comment

String

Нет

Комментарий платящего

layoutId

String

Да

Уникальный идентификатор страницы оплаты получателя

invoiceId

String

Нет

Внешний идентификатор партнера, например внутренний номер заказа

payerEmail

String

Нет

email платящего

receiverSubscriptionSettingId

String

Нет

Не используется

payerPhoneNumber

String

Нет

Телефон платящего

payerCity

String

Нет

Город платящего

routeId

String

Нет

Не используется

captchaVerificationToken

String

Нет

Не используется

rating

 

Нет

Компоненты рейтинга

score

Integer

Нет

Оценка, значение от 0 до 5

selectedComponents

Array of string

Нет

Выбранные компоненты полученные при запросе данных Страницы оплаты, передается список id выбранных компонентов

ipSource

string

Да

Ip адрес плательщика

Пример запроса:

{ "cardholderName": "string", "cardCryptogramPacket": "string", "amount": 0, "feeFromPayer": true, "currency": "string", "name": "string", "comment": "string", "layoutId": "string", "invoiceId": "string", "payerEmail": "user@example.com", "receiverSubscriptionSettingId": "string", "payerPhoneNumber": "string", "payerCity": "string", "routeId": "string", "captchaVerificationToken": "string", "rating": { "score": 0, "selectedComponents": [ "string" ] }, "ipSource" : "string" }

Ответ:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

transactionId

String

Да

Уникальный идентификатор оплаты

md

String

Да

 

paReq

String

Да

 

acsUrl

String

Да

URL банка для прохождения 3DS

message

String

Да

Текстовый статус платежа

statusCode

String

Да

Статус код платежа

cardToken

String

Да

Токен карты платящего

partnerRedirectUrl

String

Да

URL редиректа на страницу партнера

cardIssuerBankCountry

String

Да

Страна банка эмитента карты

cardLastFour

String

Да

Последние 4 цифры карты

cardExpDate

String

Да

Дата окончания действия карты

issuerCode

String

Да

Код эмитента

succeed

Boolean

Да

Стату запроса, значение true и false

errors

Array of string

Да

Возвращатеся список ошибок, относящихся целиком к запросу

validationErrors

Array of string

Да

Поле представлено в формате ключ-значение и содержит ошибки, которые отнести к конкретному полю запроса

Пример ответа:

{ "data": { "transactionId": 0, "md": "string", "paReq": "string", "acsUrl": "string", "message": "string", "statusCode": "string", "cardToken": "string", "partnerRedirectUrl": "string", "cardIssuerBankCountry": "string", "cardLastFour": "string", "cardExpDate": "string", "issuerCode": "string" }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }

Обработка 3-D Secure

Описание: Если при Авторизации платежа вернулся статус Success, то оплата прошла успешна и проходить 3DS не требуется.

Если при Авторизации платежа вернулся статус Need3DS, то необходимо перенаправить получателя на AcsUrl банка для прохождения 3ds.

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

  • MD — параметр TransactionId из ответа сервера;

  • PaReq — одноименный параметр из ответа сервера;

  • TermUrl — адрес на вашем сайте для возврата плательщика после аутентификации.

Для завершения оплаты выполните следующий метод Завершение оплаты.

Завершение оплаты

Описания: После возвращения платящего на ваш сайт необходимо завершить оплату.

Адрес: https://api.cloudtips.ru/api/payment/post3ds

Тип: POST

Запрос:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

paRes

String

Да

 

md

String

Да

 

Пример запроса:

{ "paRes": "string", "md": "string" }

Ответ:

Наименование

Тип

Обязательность

Описание

Наименование

Тип

Обязательность

Описание

transactionId

String

Да

Уникальный идентификатор оплаты

md

String

Да

 

paReq

String

Да

 

acsUrl

String

Да

URL банка для прохождения 3DS

message

String

Да

Текстовый статус платежа

statusCode

String

Да

Статус код платежа

cardToken

String

Да

Токен карты платящего

partnerRedirectUrl

String

Да

URL редиректа на страницу партнера

cardIssuerBankCountry

String

Да

Страна банка эмитента карты

cardLastFour

String

Да

Последние 4 цифры карты

cardExpDate

String

Да

Дата окончания действия карты

issuerCode

String

Да

Код эмитента

succeed

Boolean

Да

Стату запроса, значение true и false

errors

Array of string

Да

Возвращатеся список ошибок, относящихся целиком к запросу

validationErrors

Array of string

Да

Поле представлено в формате ключ-значение и содержит ошибки, которые отнести к конкретному полю запроса

Пример ответа:

{ "data": { "transactionId": 0, "md": "string", "paReq": "string", "acsUrl": "string", "message": "string", "statusCode": "string", "cardToken": "string", "partnerRedirectUrl": "string", "cardIssuerBankCountry": "string", "cardLastFour": "string", "cardExpDate": "string", "issuerCode": "string" }, "succeed": true, "statusCode": 0, "errors": [ "string" ], "validationErrors": { "additionalProp1": [ "string" ], "additionalProp2": [ "string" ], "additionalProp3": [ "string" ] } }

 

Related content