Транзакция оплаты - это одновременное сочетание авторизации и списания средств. Этот тип транзакций обычно используется когда товары или услуги могут быть немедленно предоставлены покупателю.
Info
Требуется наличие PCI DSS сертификата, чтобы использовать данную транзакцию и обрабатывать не шифрованные данные карты.
Запрос
Отправьте POST запрос на https://processing.ecomcharge.com/transactions/payments со следующими параметрами:
Note
Тело запроса должно быть обёрнуто в корневой объект request{}.
amount
обязательный
bigInteger Стоимость в минимальных денежных единицах. Например, $32.45 должна быть отправлена как 3245.
string (255) ID транзакции или заказа в вашей системе. Пожалуйста, используйте уникальное значение для того, чтобы при запросе статуса транзакции получить актуальную информацию. В противном случае вы получите массив данных по 10 последним транзакциям, найденным по указанному tracking_id. В параметре может быть отправлено несколько значений, разделенных символом ;. Например: "cbe59142-90af-4aea-b5a5-5bf3f66cf3da;f7883cb9-0e26-43a7-beb7-4027cb55d1a6;4a6a89d5-6950-400f". Если в запросе было передано более одного значения tracking_id, поиск транзакции в личном кабинете может быть осуществлен по любому из них.
expired_at
string Время в формате ISO 8601, до которого должен быть совершен платеж. Формат: YYYY-MM-DDThh:mm:ssTZD, где YYYY – год (например, 2023), MM – месяц (например, 02), DD – день (например, 09), hh – часы (например, 18), mm – минуты (например, 20), ss – секунды (например, 45), TZD – часовой пояс (+hh:mm или –hh:mm относительно UTC). Если в указанный момент транзакция всё ещё не будет оплачена, она будет переведён в статус expired.
duplicate_check
boolean Параметр управляет процессом проверки входящего запроса на уникальность. Если true, то повторный запрос на оплату с таким же amount и number или token, отправленный в течение 30 секунд после первого запроса, будет отклонен. По умолчанию, этот параметр имеет значение true.
string Язык вашей страницы оформления заказа. Если параметр установлен и email уведомление о транзакции включено, то eComCharge отправит email, язык текста которого будет language. По умолчанию - en. Доступные значения параметра language.
notification_url
string URL, на который будут приходить уведомления. Формат запроса уведомления аналогичен формату ответа транзакции.
verification_url
string URL, на который будут приходить запрос на подтверждение транзакции. Формат запроса на подтверждение аналогичен формату ответа транзакции.
return_url
обязательный
string URL на стороне торговца, на который eComCharge будет перенаправлять покупателя после возврата с 3-D Secure проверки. Параметр обязателен, если 3-D Secure включен. Обратитесь к менеджеру за информацией.
test
boolean Транзакция будет тестовой, если значение true.
object
number
обязательный
string (19) Номер карты.
verification_value
условно обязательный
string 3-х или 4-х цифровой код безопасности (CVC2, CVV2 или CID, в зависимости от бренда карты). Может быть отправлен вместе с параметром token и eComCharge доставит банку-эквайеру данные карты с CVC2/CVV2/CID. Обязательность параметра зависит от требований эквайера и настроек магазина.
holder
условно обязательный
string (35) Имя владельца карты. Максимальная длина: 35 символов. Параметр опционален в системе eComCharge, но может требоваться банком-эквайером.
exp_month
обязательный
string (2) Месяц окончания срока действия карты, представленный одной или двумя цифрами (например, 01).
exp_year
обязательный
string (4) Год окончания срока действия карты, представленный четырьмя цифрами (например, 2027).
token
условно обязательный
string Вместо 5 параметров выше можно отправить токен карты, который был получен в ответе первой оплаты. Если используется токен карты, то необходимо обязательно указывать параметр additional_data.contract
skip_three_d_secure_verification
boolean Параметр используется, если вы хотите, чтобы покупатель не проходил авторизацию по протоколу 3-D Secure. Уточните у службы технической поддержки, можете ли вы использовать этот параметр. Если значение параметра - true, eComCharge не применяет 3-D Secure проверку к транзакции оплаты. По умолчанию, false. Параметр force_three_d_secure_verification имеет больший приоритет, чем параметр skip_three_d_secure_verification, когда оба переданы со значением true. Значение игнорируется, если к транзакции применено правило Умной Маршрутизации с действием Force 3ds или Skip 3ds.
force_three_d_secure_verification
boolean Параметр используется, если вы хотите, чтобы покупатель проходил авторизацию по протоколу 3-D Secure. Уточните у службы технической поддержки, можете ли вы использовать этот параметр. Если значение параметра - true, eComCharge принудительно применяет 3-D Secure проверку к транзакции оплаты. По умолчанию, установлено значение false. Параметр force_three_d_secure_verification имеет больший приоритет, чем параметр skip_three_d_secure_verification, когда оба переданы со значением true. Значение игнорируется, если к транзакции применено правило Умной Маршрутизации с действием Force 3ds или Skip 3ds.
object Секция для настройки схемы обработки транзакций с проверкой 3-D Secure 2.0 с расширенным контролем.
advanced
boolean Установите значение true, чтобы обрабатывать платежи по схеме с расширенным контролем. В противном случае установите false.
travel
object Необязательная секция, предоставляющая расширенную информацию о продаже авиабилетов, туристических путевок и т.д.
условно обязательный
object Секция информации о покупателе. Уточните у службы технической поддержки, необходимо ли передавать параметры данной секции.
ip
условно обязательный
string IP-адрес покупателя, производящего оплату в вашем магазине.
email
условно обязательный
string email покупателя, производящего оплату в вашем магазине.
device_id
условно обязательный
string ID устройства покупателя, производящего оплату в вашем магазине.
birth_date
условно обязательный
string Дата рождения покупателя в формате ISO 8601 YYYY-MM-DD.
taxpayer_id
условно обязательный
string Идентификационный номер налогоплательщика (ИНН), присвоенный покупателю.
external_id
string (255) Идентификатор покупателя в системе торговца.
условно обязательный
object Секция информации об адресе покупателя. Узнайте у службы поддержки, должны ли вы отправлять параметры этой секции.
string Двухбуквенная аббревиатура штата, если страна покупателя IN, US или CA.
zip
условно обязательный
string Почтовый индекс покупателя. Для country=US, формат почтового индекса должен иметь вид NNNNN или NNNNN-NNNN.
address
условно обязательный
string (255) Адрес покупателя.
phone
условно обязательный
string (100) Номер телефона покупателя.
object Секция, содержащая дополнительную информацию о платеже.
expected_bank_code
string В этом поле можно отправить код ошибки обработки транзакции, который будет возвращён в ответе в параметре code. Также параметры message и friendly_message будут содержать сообщения, соответствующие указанному коду ошибки. Данная логика работает только для тестовых транзакций.
array Текст, который будет добавлен в письмо покупателю. Должен быть представлен массивом строк, например, ["Первая строка", "Вторая строка"].
contract
array Массив, элементами которого могут быть параметры:
recurring - eComCharge вернет токен карты для осуществления последующих платежей без повторного ввода реквизитов карты. Покупатель, соглашаясь с условиями регулярного списания, единожды производит оплату, вводя реквизиты карты, включая проверочный код карты CVC/CVV и проходя авторизацию по протоколу 3-D Secure;
oneclick - eComCharge вернет токен карты для осуществления последующих платежей по схеме oneclick, когда на странице оплаты будут уже частично заполнены реквизиты карты, а покупателю для завершения оплаты достаточно ввести проверочный код карты CVC/CVV и пройти авторизацию по протоколу 3-D Secure;
credit - eComCharge вернет токен карты для осуществления транзакций выплаты средств;
card_on_file - eComCharge вернет токен карты, чтобы сохранить ее в профиле покупателя в вашем сервисе или приложении, и использовать этот токен для последующих транзакций по снятию денег с карты за оказанные услуги или проданные товары. Ознакомьтесь ниже с секцией card_on_file, чтобы узнать, какие есть сценарии использования данного значения. Опция card_on_file в транзакции Оплата работает не со всеми эквайерами. Если вы хотите использовать card_on_file, свяжитесь со своим аккаунт менеджером.
object Данная секция устанавливает атрибуты, связанные с хранением данных карты в профиле покупателя. Если секция не передана, то для initiator и type будут использованы значения по умолчанию.
initiator
string merchant - (по умолчанию) транзакция инициирована вашей системой или приложением (например, оплата за поездку в такси)
customer - транзакция инициирована покупателем (например, покупатель сам нажал кнопку оплатить сохраненной картой в вашем приложении).
type
string Используется, только если additional_data.card_on_file.initiator имеет значение merchant.
Возможные значения: delayed_charge - (по умолчанию) предоплата (например, за оказанную услугу);
increment - дополнительное списание суммы (например, при допродаже товара или замене на более дорогой товар);
resubmission - повторная попытка списать деньги из-за предыдущего отказа в транзакции (например, было недостаточно средств на карте);
reauthorization - повторная авторизация (например, нужно перезаблокировать деньги на карте в связи с истечением срока авторизации предыдущей транзакции);
no_show - списание средств в случае неявки покупателя(например, покупатель не заехал в отель).
object Параметры браузера. Параметры из секции передаются только при использовании 3DS 2.0.
accept_header
string Значение HTTP-заголовка Accept запроса от браузера покупателя.
screen_width
integer Ширина экрана в пикселях. Соответствует параметру screen.width в JavaScript.
screen_height
integer Высота экрана в пикселях. Соответствует параметру screen.height в JavaScript.
screen_color_depth
integer Глубина цвета экрана в битах на пиксель. Соответствует параметру screen.colorDepth в JavaScript. Возможные значения:
integer Размер окна браузера по горизонтали в пикселях. Соответствует параметру document.body.clientWidth в JavaScript.
window_height
integer Размер окна браузера по вертикали в пикселях. Соответствует параметру document.body.clientHeight в JavaScript.
language
string Язык навигатора. Соответствует параметру navigator.language в JavaScript.
java_enabled
boolean Параметр показывает, включен ли java в текущем браузере или нет. Соответствует параметру navigator.javaEnabled() в JavaScript.
user_agent
string Строка агента пользователя текущего браузера. Соответствует параметру navigator.userAgent в JavaScript.
time_zone
integer Смещение часового пояса относительно часового пояса UTC в минутах для текущей локали. Соответствует параметру new Date().getTimezoneOffset() в JavaScript.
time_zone_name
string Название часового пояса. Соответствует параметру Intl.DateTimeFormat().resolvedOptions().timeZone в JavaScript.
string (6) Шестизначный банковский идентификационный номер. Первые 6 цифр номера карты.
bin_8
обязательный
string (8) Восьмизначный банковский идентификационный номер. Первые 8 цифр номера карты. Значение возвращается для карт Visa, Mastercard, Maestro и соответствующих кобрендинговых карт. Для брендов других платежных карт значение параметра – null.
issuer_country
обязательный
string (2) Страна банка, выпустившего карту в формате ISO 3166-1 alpha-2.
issuer_name
обязательный
string Название банка, выпустившего карту.
stamp
обязательный
string Хэш карты. Постоянная величина, даже если дата окончания действия карты или владелец изменены.
token
обязательный
string Токен карты. Позволяет сохранять данные покупателей и производить оплату, когда они делают покупку или вы возобновляете свои услуги.