Регистрация повторяемой оплаты
Общая информация
Для регистрации повторяемой оплаты на стороне платёжной платформы необходимо предварительно сохранить данные платёжного инструмента пользователя. Это можно сделать разными способами, в том числе при проведении платежей через Gate, Payment Page (подробнее), Dashboard (подробнее) и при переносе информации о повторяемых оплатах от стороннего эквайера (подробнее).
При регистрации повторяемой оплаты через Gate необходимо отправить запрос на проведение разовой оплаты, оплаты по ссылке или на проверку действительности платёжного инструмента с параметрами, указывающими на необходимость сохранения данных.
Повторяемая оплата регистрируется на срок, заданный в параметрах запроса, или, если такие параметры не переданы, на срок, равный сроку действия платёжной карты. После истечения срока действия повторяемой оплаты к веб-сервису мерчанта направляется оповещение, а выполнение списаний в рамках этой оплаты становится недоступным: запросы на списания отклоняются и к веб-сервису направляются оповещения с кодом ошибки 3184
(или 3301
).
Регистрация повторяемых оплат может быть запрещена в рамках проекта мерчанта или для провайдера, участвующего в проведении платежа. В таком случае запрос на проведение оплаты с регистрацией повторяемой оплаты может быть отклонён. Чтобы избежать отклонения платежа можно настроить игнорирование параметров, указывающих на необходимость зарегистрировать повторяемую оплату, при наличии таких запретов. Для этого необходимо обратиться к специалистам службы технической поддержки — support@ecommpay.com.
При изменениях в настройках системы провайдера может требоваться новая регистрация повторяемых оплат. В таких случаях от службы технической поддержки ecommpay мерчанту направляется письмо со списком идентификаторов повторяемых оплат, по которым следует выполнить регистрацию заново. Для этой регистрации необходимо уведомить пользователей о прекращении прежних списаний и необходимости инициирования новых, предварительно отвязав сохранённую карту, после чего инициировать регистрацию в платформе. Каждая вновь зарегистрированная повторяемая оплата получает новый идентификатор, который отправляется мерчанту в оповещении об успешной регистрации.
Схема выполнения
Для регистрации повторяемой оплаты необходимо отправить запрос на инициирование одной из операций: sale
, auth
, account verification
или invoice
. В таком запросе необходимо передать не только параметры, обязательные для инициирования операции, но и параметры, необходимые для регистрации повторяемой оплаты.
После получения запроса на инициирование одной из перечисленных операций в платёжной платформе выполняется стандартное выполнение такой операции, которое может включать в том числе выполнение вспомогательных процедур. В случае хранения данных на стороне платёжной платформы при успешном завершении операции на стороне платёжной системы или провайдера (то есть при получении статуса операции success
) на стороне платёжной платформы создаётся запись о серии списаний. Этой записи присваиваются следующие атрибуты:
- Идентификатор. После создания записи о серии списаний этот идентификатор передаётся к веб-сервису в параметре
id
объектаrecurring
оповещения о результате операции и должен использоваться в запросах на проведение повторяемой оплаты и для управления ей. - Статус. Как правило, при создании записи о серии списаний ей присваивается статус
active
. Этот статус может измениться на статусcanceled
, если повторяемая оплата отменена по запросу мерчанта или пользователя, а также в некоторых других случаях.
В случае хранения данных на стороне веб-сервиса запись о серии списаний не создаётся.
Далее от платёжной платформы к веб-сервису направляется оповещение о результате операции, в котором содержится присвоенный записи о серии списаний идентификатор, если эта запись была создана. Такое оповещение свидетельствует об успешной регистрации повторяемой оплаты.
Регистрация с хранением данных на стороне веб-сервиса
При формировании запросов на регистрацию повторяемой оплаты с хранением платёжных данных пользователя на стороне веб-сервиса необходимо учитывать следующее:
- Должен использоваться POST-запрос к одной из следующих конечных точек:
- В запросе должны использоваться обязательные для этого запроса объекты и параметры.
- Помимо обязательных объектов и параметров в запросе должен использоваться параметр
stored_card_type
с одним из следующих значений:3
— для автооплаты,5
— для регулярной оплаты (кроме запросов к конечной точке /v2/payment/card/account_verification/token).
Таким образом, помимо обязательных параметров корректный запрос должен содержать признак регистрации определённой категории повторяемой оплаты.
Информация о регистрации повторяемой оплаты передаётся от платёжной платформы к веб-сервису в составе оповещения о результате операции. Для этого оповещения используется стандартный формат, описание которого представлено в разделе Оповещения.
Регистрация с хранением данных на стороне платёжной платформы
При формировании запросов на регистрацию повторяемой оплаты с хранением платёжных данных пользователя на стороне платёжной платформы необходимо учитывать следующее:
- Должен использоваться POST-запрос к одной из следующих конечных точек:
- /v2/payment/card/sale — при проведении разовой оплаты в одну стадию,
- /v2/payment/card/auth — при проведении разовой оплаты в две стадии,
- /v2/payment/card/account_verification — при проверке платёжного инструмента,
- /v2/payment/invoice/create — при проведении оплаты по ссылке,
- /v2/payment/invoice/card/token/create — при проведении оплаты по ссылке с использованием токена.
- В запросе должны использоваться обязательные для этого запроса объекты и параметры.
- Помимо обязательных объектов и параметров в запросе должен использоваться объект
recurring
, содержащий параметры с информацией о регистрируемой оплате:register
— признак регистрации повторяемой оплаты, необходимо использовать значениеtrue
;type
— категория регистрируемой повторяемой оплаты, необходимо использовать одно из следующих значений:C
— для экспресс-оплаты,U
— для автооплаты,R
— для регулярной оплаты;
time
— время последующих списаний (для регулярной оплаты) в форматеhh:mm:ss
;period
— периодичность списаний (для регулярной оплаты):D
— ежедневно,W
— еженедельно,M
— ежемесячно,Q
— ежеквартально,Y
— ежегодно.
- Для регистрации регулярной оплаты также могут использоваться и другие параметры в объекте
recurring
:expiry_year
— год окончания действия повторяемой оплаты;expiry_month
— месяц окончания действия повторяемой оплаты;expiry_day
— день окончания действия повторяемой оплаты;interval
— множитель для кратного увеличения периода списаний, например чтобы списания выполнялись раз в три недели, в параметреperiod
надо задать значениеW
, а в параметреinterval
значение3
; возможные значения: от1
до100
;amount
— сумма каждого списания;start_date
— дата первого списания;scheduled_payment_id
— идентификатор платежа, в рамках которого следует выполнять списания; должен отличаться от идентификатора платежа, в рамках которого выполняется регистрация повторяемой оплаты, и быть уникальным в рамках проекта (также не стоит путать его с идентификатором серии списаний, передаваемым в параметреid
объектаrecurring
оповещения о регистрации повторяемой оплаты).Внимание: Если идентификаторы платежа, который необходимо присвоить повторяемой оплате (scheduled_payment_id
), и платежа, в рамках которого эта оплата регистрируется (payment_id
), совпадают, запрос на регистрацию отклоняется.
Таким образом, помимо обязательных параметров корректный запрос должен содержать признак регистрации повторяемой оплаты и её категорию, а также, при регистрации регулярной оплаты, время и периодичность списаний.
В зависимости от особенностей провайдеров, участвующих в проведении платежа, набор обязательных параметров может варьироваться. Подробную информацию о требованиях провайдеров можно уточнить у курирующего менеджера ecommpay.
Информация о регистрации повторяемой оплаты передаётся от платёжной платформы к веб-сервису в составе оповещения о результате операции. Для этого оповещения используется стандартный формат, описание которого представлено в разделе Оповещения.
В примере далее оповещение свидетельствует о том, что повторяемая оплата зарегистрирована и записи о серии списаний присвоен идентификатор 1001648059
.