Оплаты по платёжным ссылкам
Помимо этой статьи для работы с оплатами по платёжным ссылкам могут быть полезны:
- статья Оплата по платёжной ссылке модели проведения платежей с описанием того, как в целом проводятся оплаты по платёжным ссылкам в платёжной платформе ecommpay, какие операции при этом используются и как меняются статусы этих платежей и операций;
- описание того, как проводить оплаты по платёжным ссылкам через Dashboard;
- статьи раздела Платёжные методы с описанием того, как проводятся оплаты с использованием платёжной формы Payment Page в контексте пользовательских сценариев и общих схем взаимодействия.
Общая информация
Оплата по платёжной ссылке — это тип платежа, в рамках которого на основании одного исходного запроса сначала создаётся и отправляется пользователю платёжная ссылка, а затем, при переходе по этой ссылке и подтверждении платежа, выполняется перевод или серия переводов денежных средств от пользователя к мерчанту. Как правило, оплаты по ссылкам используются для разовых расчётов, с предварительной блокировкой средств или без таковой. Вместе с тем, когда это актуально, при проведении оплат по ссылкам можно регистрировать повторяемые оплаты, а в рамках работы с отдельными платёжными методами можно использовать платёжные ссылки только для получения согласия пользователей на регистрацию повторяемых оплат, без фактических списаний.
Такие оплаты проводятся с использованием платёжной формы Payment Page, ссылка для открытия которой отправляется на электронную почту пользователя через платформу ecommpay или любым другим способом со стороны мерчанта. Дата и время окончания срока действия ссылки и вариант проведения платежа определяются на стороне мерчанта и указываются в параметрах запроса на его инициирование, при этом срок действия ссылки не может превышать 30 суток (с момента формирования ссылки в платформе и до момента получения в платформе запроса на инициирование платежа) и по его истечении от платформы отправляется соответствующее оповещение. Также в параметрах такого запроса можно указать платёжный метод, с использованием которого необходимо провести платёж, или предоставить пользователю возможность выбора из всех методов, подключенных для проекта мерчанта.
Так как оплаты по платёжной ссылке проводятся с использованием платёжной формы Payment Page, в параметрах запросов на инициирование таких оплат реквизиты платёжного инструмента либо не указываются, либо указываются в форме токена карты. В последнем случае пользователю понадобится только подтвердить подлинность платёжного инструмента, без указания его реквизитов в платёжной форме.
Как и при проведении других типов платежей, в процессе проведения оплаты по платёжной ссылке может потребоваться выполнить вспомогательные процедуры, такие как аутентификация с использованием технологии 3‑D Secure, дополнение информации о платеже и конвертация валют. Эти процедуры полностью выполняются на стороне Payment Page, дополнительных действий со стороны веб-сервиса мерчанта при этом не требуется.
Сценарии использования
Допустим, пользователь веб-сервиса оформил заказ на сумму 1379,50 USD и выбрал возможность оплаты по платёжной ссылке, указав для получения ссылки свой адрес электронной почты — eddington@mail.uk.
Проведение платежа
- Со стороны веб-сервиса мерчанта к платёжной платформе отправляется запрос с параметрами, необходимыми для отправки платёжной ссылки пользователю средствами ecommpay.
- Платёжная платформа обрабатывает такой запрос, направляет оповещение к веб-сервису мерчанта и отправляет на указанный в запросе адрес электронной почты письмо. Стандартный язык письма — английский.
- Пользователь переходит по ссылке, после чего ему отображается Payment Page. Если в запросе на инициирование платежа не указан платёжный метод, то пользователю отображается страница выбора платёжного метода, а если платёжный метод указан — страница указанного платёжного метода.
- Пользователь указывает платёжные данные и подтверждает оплату, а также, при необходимости, осуществляет дополнительные действия, требуемые для выполнения одной или нескольких вспомогательных процедур.
- По результатам проведения платежа к веб-сервису направляется оповещение о результате, а пользователю отображается страница результата оплаты.
Отмена платежа
- Со стороны веб-сервиса мерчанта к платёжной платформе отправляется запрос на отмену платежа.
- Платёжная платформа обрабатывает такой запрос, направляет оповещение к веб-сервису мерчанта и отправляет на ранее указанный адрес электронной почты письмо, стандартные вид и содержание которого представлены в примере далее. Стандартный язык письма — английский.
Рис. 3. Пример письма об отмене платежа
- Если пользователь переходит по платёжной ссылке, ему отображается сообщение об ошибке.
Истечение срока действия ссылки
- К веб-сервису мерчанта направляется оповещение об истечении срока действия платёжной ссылки.
- Если пользователь переходит по платёжной ссылке, ему отображается страница с уведомлением об истечении срока действия платёжной ссылки.
Рис. 4. Пример страницы с уведомлением об истечении срока действия платёжной ссылки
Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения платежа, представлены далее.
Настройка
Оформление писем
По умолчанию в письмах, отправляемых пользователям, содержатся адрес отправителя, noreply@ecommpay.com, тема письма с указанием названия мерчанта или используемого проекта (в соответствии с указанными в платформе), например Payment Link from Cosmoshop, а также сведения из запроса на создание платёжной ссылки:
- идентификатор платежа (
payment_id); - сумма (
amount) и валюта (currency) платежа; - дата и время окончания срока действия платёжной ссылки (
best_before); - описание платежа (
description).
По желанию мерчанта можно указать адрес электронной почты, который следует отображать пользователю в качестве адреса отправителя, а также изменить язык письма и состав данных, которые необходимо передавать в его составе, или предоставить собственную вёрстку такого письма.
По всем вопросам, связанным с изменением содержания и оформления писем, следует обращаться к специалистам технической поддержки — support@ecommpay.com.
Оформление платёжной формы
По умолчанию пользователю отображается платёжная форма с типовым вариантом оформления от ecommpay. По желанию мерчант может настроить собственный вариант оформления, применив различные изменения к отдельным элементам платёжной формы с помощью соответствующего конструктора. С вопросами, выходящими за рамки возможностей конструктора, можно обращаться к курирующему менеджеру.
Схема проведения
Для проведения оплаты по платёжной ссылке через Gate необходимо:
- Отправить запрос на оплату по платёжной ссылке к конечной точке
/v2/payment/invoice[/card/token]/create. - Принять оповещение о создании платёжной ссылки.
- Если исходно не инициирована отправка платёжной ссылки пользователю средствами платформы ecommpay (и подразумевается отправка средствами веб-сервиса), отправить ссылку пользователю (по электронной почте или любым другим способом).
- Принять оповещение о результате оплаты или оповещение об истечении срока действия ссылки.
Для проведения оплаты по платёжной ссылке в две стадии дополнительно требуется выполнить вторую стадию такой оплаты: подтверждение списания заблокированных средств или отмену блокировки. Подробная информация о выполнении второй стадии оплаты в две стадии представлена в разделе Оплата в две стадии.
Схема проведения оплаты по платёжной ссылке представлена далее.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на оплату по платёжной ссылке.
- Запрос поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса с проверкой его корректности.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности.
- В платёжной платформе осуществляется обработка запроса.
- От платёжной платформы к веб-сервису мерчанта направляется оповещение о создании платёжной ссылки.
- От платёжной платформы на электронную почту пользователя (или от веб-сервиса мерчанта на электронную почту либо другим способом) отправляется платёжная ссылка.
- Пользователь переходит по этой платёжной ссылке.
- Запрос на открытие платёжной формы поступает в платёжную платформу.
- В платёжной платформе осуществляется обработка запроса.
- Осуществляется генерация Payment Page согласно настройкам проекта.
- Пользователю отображается ранее сгенерированная платёжная форма.
- Пользователь указывает платёжные данные и подтверждает оплату.
- Запрос на проведение оплаты поступает в платёжную платформу.
- Выполняются обработка запроса и его отправка в платёжную систему (или в сервис провайдера).
- В платёжной системе (или в сервисе провайдера) выполняется обработка платежа.
- От платёжной системы (или сервиса провайдера) к платёжной платформе направляется уведомления о результате платежа.
- От платёжной платформы к веб-сервису направляется оповещение о результате платежа.
- От платёжной платформы к Payment Page направляется результат платежа.
- Результат платежа отображается пользователю на Payment Page.
Для отмены такой оплаты до её подтверждения пользователем необходимо:
- Отправить запрос на отмену платежа к конечной точке
/v2/payment/invoice/cancel. - Принять оповещение об отмене платежа.
Далее приведена информация о форматах запросов и параметрах инициирования оплаты по платёжной ссылке и её отмены, а также о форматах оповещений, используемых при проведении платежа. Информацию о возможных статусах такой оплаты можно найти в соответствующей статье.
Форматы запросов
Формат запроса на проведение платежа
При формировании запросов необходимо учитывать следующее:
- Должен использоваться POST-запрос к одной из следующих конечных точек: /v2/payment/invoice/create или /v2/payment/invoice/card/token/create.
- В запросе должны использоваться следующие объекты и параметры:
general— объект, содержащий основные идентификационные сведения запроса:project_id— идентификатор проекта, полученный от ecommpay при интеграции;payment_id— идентификатор платежа, уникальный в рамках проекта;signature— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью к данным);
customer— объект, содержащий сведения о пользователе:id— идентификатор пользователя в веб-сервисе мерчанта;
payment— объект, содержащий сведения о платеже:amount— сумма платежа в дробных единицах валюты;currency— валюта платежа в формате ISO-4217 alpha-3;best_before— дата и время окончания срока действия платёжной ссылки в форматеYYYY-MM-DDThh:mm:ss±hh:mm; необходимо указывать таким образом, чтобы срок действия ссылки не превышал 30 суток.
- При инициировании оплаты с использованием токена платёжной карты он должен указываться в параметре
token. - Для отправки платёжной ссылки средствами платформы ecommpay должны передаваться следующие параметры:
send_email— указатель необходимости автоматической отправки платёжной ссылки (должен принимать значениеtrue);email(в объектеcustomer) — целевой адрес электронной почты пользователя для отправки платёжной ссылки;language(в объектеcustomer) — код языка для оформления письма (его следует указывать, если предпочитаемый для пользователя язык отличается от используемого по умолчанию английского и для этого языка предварительно был настроен шаблон письма).
- Для отправки платёжной ссылки средствами веб-сервиса мерчанта (и блокировки отправки через платформу ecommpay) должен передаваться параметр
send_emailсо значениемfalse. - Для выбора варианты оплаты, отличного от заданного по умолчанию, должен передаваться указатель этого варианта в значении параметра
operation_type. - Для предварительного выбора платёжного метода должен передаваться код этого метода в значении параметра
force_method(список таких кодов — представлен в справочнике Коды платёжных методов). - Для регистрации дальнейших списаний в рамках повторяемой оплаты должен передаваться объект
recurringс информацией о регистрируемой оплате:register— признак регистрации повторяемой оплаты, со значениемtrue;type— указатель категории регистрируемой повторяемой оплаты, в виде одного из следующих значений:C— для экспресс-оплаты,U— для автооплаты,R— для регулярной оплаты;
period— периодичность списаний (в рамках регулярной оплаты):D— ежедневно,W— еженедельно,M— ежемесячно,Q— ежеквартально,Y— ежегодно;
time— время выполнения последующих регулярных списаний (в рамках регулярной оплаты) в форматеhh:mm:ss.
- Для выполнения списания в рамках сервиса Mastercard MoneySend или Visa Direct необходимо передавать сведения о получателе платежа в объекте
recipient(с информацией о требованиях к составу таких сведений можно ознакомиться в статье о работе с этими сервисами). - Дополнительно могут использоваться любые другие параметры, указанные в спецификации.
Таким образом, корректный запрос на оплату по платёжной ссылке должен содержать идентификаторы проекта и платежа, подпись, идентификатор пользователя, валюту и сумму платежа, дату и время окончания срока действия платёжной ссылки и, при необходимости, токен платёжной карты. Дополнительно, если платёжную ссылку необходимо отправить средствами ecommpay, запрос должен содержать адрес электронной почты пользователя и индикатор автоматической отправки платёжной ссылки.
{
"general": {
"project_id": 1901,
"payment_id": "456789",
"signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm=="
},
"customer": {
"id": "stapleton",
"email": "baskerville@mail.uk"
},
"payment": {
"amount": 1500,
"currency": "GBP",
"best_before": "2026-03-08T09:00:00+03:00"
},
"send_email": true,
// при передаче ранее созданного токена платёжной карты:
"token": "f365bb1729f9b72fd9c097becc679f29c3e35c91d18070d15654"
}
{
"general": {
"project_id": 1901,
"payment_id": "1234",
"signature": "rS3vlABOs/fve6o555OINkQJqlDDZR2rQ=="
},
"customer": {
"id": "stapleton",
"email": "baskerville@mail.uk"
},
"payment": {
"amount": 1299,
"currency": "EUR",
"description": "fluorescent paint 400ml",
"best_before": "2026-10-20T23:59:59Z"
},
"send_email": false,
"operation_type": "sale"
}
Формат запроса на отмену платежа
При формировании запросов необходимо учитывать следующее:
- Должен использоваться POST-запрос к конечной точке /v2/payment/invoice/cancel.
- В запросе должен использоваться объект
general, содержащий основные идентификационные сведения запроса:project_id— идентификатор проекта, полученный от ecommpay при интеграции;payment_id— идентификатор того платежа, который необходимо отменить;signature— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью к данным);
- Дополнительно могут использоваться любые другие параметры, указанные в спецификации.
Таким образом, корректный запрос на отмену платежа должен содержать идентификаторы проекта и платежа, а также подпись.
{
"general": {
"project_id": 1901,
"payment_id": "456789",
"signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm=="
}
}
Форматы оповещений
Формат оповещения о создании платёжной ссылки
Для оповещений об создании и отправке платёжной ссылки пользователю используется стандартный формат, описание которого представлено в разделе Работа с оповещениями.
В следующем примере содержится информация о том, что пользователю stapleton на адрес электронной почты baskerville@mail.uk отправлена платёжная ссылка для оплаты заказа в размере 12,99 GBP. Срок действия ссылки истекает 11 октября 2026 года, в 11:50.
{
"project_id":1901,
"payment":{
"id":"456789",
"type":"invoice",
"status":"invoice sent",
"date":"2025-11-11T11:50:24+0000",
"best_before":"2026-10-11T11:50:00+0000",
"force_payment_method":"card",
"method":"card",
"email":"baskerville@mail.uk",
"sum":{
"amount":1299,
"currency":"GBP"
},
"description":"fluorescent paint 400ml"
},
"paymentLink": ".../payment?project_id=1901&payment_id=456789&customer_country=GB&
language_code=en&payment_currency=GBP&best_before=2026-10-11T11:50%&
interface_type=%7B%22id%22%3A3%7D&operation_type=sale&
signature=hghwGGyapGUQnI+Qg==",
"account":{
"number":"431422******0056",
"token":"f365bb1729f9b72fd9c097becc679f29c3e35c91d18070d15654",
"type":"visa",
"card_holder":"STAPLETON JACK",
"id":1353,
"expiry_month":"11",
"expiry_year":"2028"
},
"customer":{
"id":"stapleton"
},
"operation":{
"id":180001525,
"type":"invoice",
"status":"invoice sent",
"date":"2025-11-11T11:57:34+0000",
"created_date":"2025-11-11T11:56:32+0000",
"request_id":"b3dee0a9d6c36460ada75f71ed0802c6f9",
"sum_initial":{
"amount":1299,
"currency":"GBP"
},
"sum_converted":{
"amount":1299,
"currency":"GBP"
},
"code":"3701",
"message":"Merchant sent invoice",
"eci":"02"
},
"signature":"hghwGGyapGUQnI+Qg=="
}
В следующем примере содержится информация о создании платёжной ссылки, которая должна быть отправлена пользователю stapleton через веб-сервис мерчанта.
{
"customer": {
"id": "stapleton"
},
"project_id": 1901,
"payment": {
"id": "1234",
"type": "invoice",
"status": "awaiting payment",
"date": "2025-10-13T13:14:46+0000",
"sum": {
"amount": 1299,
"currency": "EUR"
},
"description": "fluorescent paint 400ml"
},
"paymentLink": "https://cosmoshop-pp.com/3fdsfdfoeV6",
"operation": {
"sum_initial": {
"amount": 1299,
"currency": "EUR"
},
"sum_converted": {
"amount": 1299,
"currency": "EUR"
},
"code": "9999",
"message": "Awaiting processing",
"provider": {
"id": 0,
"payment_id": ""
},
"id": 5034534534341907,
"type": "invoice",
"status": "awaiting payment",
"date": "2025-10-13T13:14:47+0000",
"created_date": "2025-10-13T13:14:46+0000",
"request_id": "3b1ef25371d43bcf061bdfgdf2276a2fb0eb4647-05026527"
},
"signature": "oFsfX5SZkzSNubrB3dsfsdf555P3iMTdfsds55VnMgmhLlsmx6cJLQg=="
}
Формат оповещения об отмене платежа
Для оповещения об отмене платежа по инициативе мерчанта используется стандартный формат, описание которого представлено в разделе Работа с оповещениями.
В следующем примере содержится информация о том, что платёж 456789 отменён, статус платежа — invoice canceled.
{
"project_id":1901,
"payment":{
"id":"456789",
"type":"invoice",
"status":"invoice canceled",
"date":"2025-11-11T11:57:36+0000",
"best_before":"2026-10-11T11:50:00+0000",
"sum":{
"amount":1299,
"currency":"GBP"
},
"description":"fluorescent paint 400ml"
},
"paymentLink": ".../payment?project_id=1901&payment_id=456789&customer_country=GB&
language_code=en&payment_currency=GBP&best_before=2026-10-11T11:50%&
interface_type=%7B%22id%22%3A3%7D&operation_type=sale&
signature=hghwGGyapGUQnI+Qg==",
"account":{
"number":"431422******0056",
"token":"f365bb1729f9b72fd9c097becc679f29c3e35c91d18070d15654",
"type":"visa",
"card_holder":"STAPLETON JACK",
"id":1353091,
"expiry_month":"11",
"expiry_year":"2028"
},
"customer":{
"id":"stapleton"
},
"operation":{
"id":180001525,
"type":"invoice",
"status":"invoice canceled",
"date":"2025-11-11T11:57:34+0000",
"created_date":"2025-11-11T11:56:32+0000",
"request_id":"b3dee0a9d0d2c8d2aa56c36ed0802c6f9",
"sum_initial":{
"amount":1299,
"currency":"GBP"
},
"sum_converted":{
"amount":1299,
"currency":"GBP"
},
"code":"3702",
"message":"Merchant canceled invoice",
"eci":"02"
},
"signature":"hghwGlmVZ6Z1ZZ5D/aZAmrqdZb+GyapGUQnI+Qg=="
}
Формат оповещения об истечении срока действия платёжной ссылки
Для оповещения об истечении срока действия платёжной ссылки используется стандартный формат, описание которого представлено в разделе Работа с оповещениями.
В следующем примере содержится информация о том, что срок действия платёжной ссылки, отправленной пользователю stapleton на адрес электронной почты baskerville@mail.uk, истёк 11 февраля 2025 года, в 11:50.
{
"project_id":1901,
"payment":{
"id":"456789",
"type":"invoice",
"status":"expired",
"date":"2025-01-11T11:57:36+0000",
"best_before":"2025-02-11T11:50:00+0000",
"force_payment_method":"card",
"method":"card",
"email":"baskerville@mail.uk",
"sum":{
"amount":1299,
"currency":"GBP"
},
"description":"fluorescent paint 400ml"
},
"paymentLink": ".../payment?project_id=1901&payment_id=456789&customer_country=GB&
language_code=en&payment_currency=GBP&best_before=2025-02-11T11:50%&
interface_type=%7B%22id%22%3A3%7D&operation_type=sale&
signature=hghwGGyapGUQnI+Qg==",
"account":{
"number":"431422******0056",
"token":"f365bb1729f9b72fd9c097becc679f29c3e35c91d18070d15654",
"type":"visa",
"card_holder":"STAPLETON JACK",
"id":1353091,
"expiry_month":"11",
"expiry_year":"2028"
},
"customer":{
"id":"stapleton"
},
"operation":{
"id":180001525,
"type":"invoice",
"status":"expired",
"date":"2025-01-11T11:57:34+0000",
"created_date":"2025-01-11T11:56:32+0000",
"request_id":"b3dee0a9d0d2c8d2aa56c36ed0802c6f9",
"sum_initial":{
"amount":1299,
"currency":"GBP"
},
"sum_converted":{
"amount":1299,
"currency":"GBP"
},
"code":"3700",
"message":"Best_before has expired",
"eci":"02"
},
"signature":"hghwGlmVZ6Z1ZZ5D/aZAmrqdZb+GyapGUQnI+Qg=="
}
Формат оповещения о результате платежа
Для оповещения о результате оплаты по платёжной ссылке используется стандартный формат, описание которого представлено в разделе Работа с оповещениями.
В следующем примере содержится информация о том, что для пользователя stapleton проведена оплата в размере 12,99 GBP.
{
"project_id":1901,
"payment":{
"id":"456789",
"type":"invoice",
"status":"success",
"date":"2025-11-11T11:57:36+0000",
"best_before":"2026-10-11T11:50:00+0000",
"force_payment_method":"card",
"method":"card",
"email":"baskerville@mail.uk",
"sum":{
"amount":1299,
"currency":"GBP"
},
"description":"fluorescent paint 400ml"
},
"paymentLink": ".../payment?project_id=1901&payment_id=456789&customer_country=GB&
language_code=en&payment_currency=GBP&best_before=2026-10-11T11:50%&
interface_type=%7B%22id%22%3A3%7D&operation_type=sale&
signature=hghwGGyapGUQnI+Qg==",
"account":{
"number":"431422******0056",
"token":"f365bb1729f9b72fd9c097becc679f29c3e35c91d18070d15654",
"type":"visa",
"card_holder":"STAPLETON JACK",
"id":1353091,
"expiry_month":"11",
"expiry_year":"2028"
},
"customer":{
"id":"stapleton"
},
"operation":{
"id":180001525,
"type":"invoice",
"status":"success",
"date":"2025-11-11T11:57:34+0000",
"created_date":""2025-11-11T11:56:32+0000",
"request_id":"b3dee0a9d6c36460ada75f71ed0802c6f9",
"sum_initial":{
"amount":1299,
"currency":"GBP"
},
"sum_converted":{
"amount":1299,
"currency":"GBP"
},
"code":"0",
"message":"Success",
"eci":"02"
},
"signature":"hghwGlmVZ6Z1ZZ5D/aZAmrqdZb+GyapGUQnI+Qg=="
}