# Проведение оплаты с автоматическими списаниями {#ru_Gate__cof_gate_side} статья о порядке проведения через Gate повторяемых оплат с автоматическими списаниями \(по заданному расписанию\) **На уровень выше:**[Повторяемые оплаты](ru_Gate__payments_on_saved_data.md) ## Общая информация {#ru_gate_cof_gate_side_overview} *Повторяемая оплата с автоматическими списаниями* — это тип платежа, в рамках которого на основании одного исходного запроса осуществляется серия регулярных переводов денежных средств от пользователя к мерчанту \(списаний\) с использованием сохранённых платёжных данных и без подтверждения подлинности платёжного инструмента пользователя\(такого, как ввод кода проверки подлинности карты\). В платёжной платформе Ecommpay такие оплаты проводятся в соответствии с моделью проведения платежей \([подробнее](ru_platform_sheduled_recurring_model.md)\), при этом когда недостаточно одной попытки выполнить очередное автоматическое списание \(например, при недостатке средств на карте пользователя\), в платформе предусмотрена возможность автоматически инициировать повторные попытки таких списаний \([подробнее](ru_gate_cof_retry_attempts.md#)\). ## Схемы проведения {#ru_gate_cof_gate_side_workflow} ### Проведение с инициированием списаний при регистрации платежа {#section_oqf_hvd_w3b .section} В базовом случае, когда при регистрации повторяемой оплаты передаётся параметр `scheduled_payment_id`, для проведения повторяемой оплаты с автоматическими списаниями необходимо: 1. [Зарегистрировать](ru_gate_payment_recurring_registration.md) повторяемую оплату. 2. Принять от платёжной платформы [оповещение о результате списания](ru_Gate__cof_gate_side.md#). 3. Продолжать принимать оповещения о результате каждого списания в рамках платежа. Для изменения условий повторяемой оплаты или её отмены, а также для возврата средств после одного или нескольких списаний необходимо передать соответствующие запросы в платёжную платформу \(подробнее — в статье [Управление списаниями в рамках оплаты](ru_gate_payment_recurring_manage.md)\). ![](images/ru_gate_uml_scheduled_recurring_auto.svg) 1. В соответствии с графиком, в необходимое время от платёжной платформы к платёжной системе направляется запрос на очередное списание. 2. В платёжной системе выполняется дальнейшая обработка запроса и его отправка эмитенту. 3. На стороне эмитента выполняется обработка списания и перевод средств от пользователя к мерчанту. 4. От эмитента к платёжной системе направляется информация о результате списания. 5. От платёжной системы к платёжной платформе направляется информация о результате списания. 6. От платёжной платформы к веб-сервису направляется оповещение о результате списания. 7. На стороне веб-сервиса обеспечивается информирование пользователя о результате списания. 8. Далее со стороны платёжной платформы инициируются последующие плановые списания и для каждого из них повторяются шаги 1—7. Информация о форматах запросов и оповещений приведена далее; общая информация о работе с API — в разделе [Организация взаимодействия](ru_gate_interaction_organisation.md#). Информацию о возможных статусах такой оплаты можно найти [в соответствующей статье](ru_platform_payment_model.md). ### Проведение с отдельным инициированием списаний {#section_u5g_ytb_gzb .section} В случае, если при регистрации повторяемой оплаты не передаётся параметр `scheduled_payment_id`, для проведения повторяемой оплаты с автоматическими списаниями необходимо: 1. [Зарегистрировать](ru_gate_payment_recurring_registration.md) повторяемую оплату. 2. Передать [Формат запроса](ru_Gate__cof_gate_side.md#) с идентификатором записи о серии списаний. 3. Принять от платёжной платформы [оповещение о результате списания](ru_Gate__cof_gate_side.md#). 4. Продолжать принимать оповещения о результате каждого списания в рамках платежа. ![](images/ru_gate_uml_scheduled_recurring.svg) 1. От веб-сервиса на заданный URL Ecommpay передаётся запрос на инициирование списаний. 2. Этот запрос поступает в платёжную платформу. 3. В платёжной платформе выполняется обработка запроса. 4. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. 5. От платёжной платформы к платёжной системе направляется запрос на списание. 6. В платёжной системе выполняется дальнейшая обработка запроса и его отправка эмитенту. 7. На стороне эмитента выполняется обработка списания и перевод средств от пользователя к мерчанту. 8. От эмитента к платёжной системе направляется информация о результате списания. 9. От платёжной системы к платёжной платформе направляется информация о результате списания. 10. От платёжной платформы к веб-сервису направляется оповещение о результате списания. 11. На стороне веб-сервиса обеспечивается информирование пользователя о результате списания. 12. Далее со стороны платёжной платформы инициируются последующие плановые списания и для каждого из них повторяются шаги 5—11. ## Формат запроса {#ru_gate_cof_gate_side_request} При работе с запросами на инициированиекарточных повторяемых оплат с автоматическими списаниями необходимо учитывать следующее: 1. Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке [/v2/payment/card/recurring](https://api-developers.ecommpay.com/api-specification/card-payments/post-v2-payment-card-recurring). 2. В каждом запросе должны использоваться следующие объекты и параметры: - `general` — объект, содержащий основные идентификационные сведения запроса: - `project_id` — идентификатор проекта, полученный от Ecommpay при интеграции; - `payment_id` — идентификатор платежа, уникальный в рамках проекта; - `signature` — подпись запроса, составленная после указания всех целевых параметров \(подробнее — в разделе [Работа с подписью к данным](ru_platform_signature.md#)\); - `customer` — объект, содержащий сведения о пользователе: - `id` — идентификатор пользователя, уникальный в рамках проекта и имеющий то же значение, которое было использовано при регистрации данной повторяемой оплаты; **Внимание:** Использование разных идентификаторов пользователя для операций в рамках одной повторяемой оплаты не допускается - `ip_address` — IP-адрес пользователя, актуальный для инициируемой операции; - `payment` — объект, содержащий сведения о платеже: - `amount` — сумма платежа в дробных единицах валюты; - `currency` — код валюты платежав формате ISO-4217 alpha-3; - `cryptocurrency_type` — указатель категории цифровой валюты, обязательный при выполнении операций, связанных с использованием криптовалют ччерез платёжные системы Mastercard и Visa, и допускающий одно из следующих значений: - `cbdc` — цифровая валюта центрального банка или токенизированный депозит, выпущенные определённым государством; - `stablecoins_fiat_backed` — цифровая валюта \(в виде стейблкоина\), чья стабильность обеспечивается за счёт резервов в определённой фиатной валюте; - `native_tokens` — цифровая валюта определённого блокчейна, необходимая для выполнения операций в его сети, в том числе для оплаты комиссий; - `other` — нефиатная валюта, которая заведомо не относится ни к одной из других категорий либо не может быть отнесена ни к одной из категорий при инициировании операции. - `recurring` — объект, содержащий сведения повторяемой оплате: - `id` — идентификатор записи о серии списаний, полученный в оповещении после регистрации повторяемой оплаты или заданный при переносе информации об этой оплате от стороннего эквайера. 3. С учётом региональных особенностей и специфики провайдеров, участвующих в проведении платежей, могут быть обязательны и некоторые другие параметры. Информацию о таких особенностях и требованиях провайдеров можно уточнять у курирующего менеджера Ecommpay. 4. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации. Таким образом, в общем случае корректный запрос должен содержать идентификаторы проекта и платежа, подпись, IP-адрес пользователя, код валюты и сумму проведения платежа, а также идентификатор серии списаний. ``` {#codeblock_ehx_5fm_13c .language-json} { "general":{ "project_id":42, "payment_id":"456789", "signature":"K5D/aZAMdeR+YyilUwS==" }, "customer":{ "ip_address":"202.144.196.0", "id":"customer_12" }, "payment":{ "amount":400, "currency":"USD" }, "recurring":{ "id":1079 } } ``` ## Формат оповещений {#ru_gate_cof_gate_side_callback} От платёжной платформы к веб-сервису передаются оповещения с информацией о результате каждого списания в рамках повторяемой оплаты.Для этих оповещений используется типовой формат, описание которого представлено в разделе [Работа с оповещениями](ru_platform_callbacks.md#). В следующем примере оповещение свидетельствует о том, что в рамках проекта `42` для пользователя `customer_12` было выполнено списание в размере `4,00 USD` с платёжной карты `№ 424242******4243` и ожидаются последующие списания. ```language-json { "customer":{ "id":"customer_12" }, "account":{ "number":"431422******0056", "type":"visa", "card_holder":"JOHN SMITH", "id":45678, "expiry_month":"08", "expiry_year":"2026" }, "payment":{ "sum":{ "amount":400, "currency":"USD" }, "method":"card", "date":"2023-06-07T06:18:02+0000", "status":"scheduled recurring processing", // Статус платежа "type":"recurring", // Тип платежа "id":"456789", "description":"" }, "project_id":42, "recurring":{ "valid_thru":"2023-07-31T00:00:00+0000", "currency":"USD", "id":1079 // Идентификатор серии списаний }, "operation":{ "id":39690002636, "type":"recurring", // Тип операции "status":"success", // Статус операции "date":"2023-06-07T06:18:02+0000", "created_date":"2023-06-07T06:18:02+0000", "request_id":"5cfa0199c33071", "sum_initial":{ "amount":400, "currency":"USD" }, "sum_converted":{ "amount":400, "currency":"USD" }, "provider":{ "id":6, "payment_id":"1192", "date":"2023-02-07T08:34:24+0000", "auth_code":"5253", "endpoint_id":6 }, "code":"0", "message":"Success" }, "signature":"v7KNMpfZZ5D/aZMdeR+YyilUwSm...==" } ``` В случае, если подключена возможность повторных попыток списаний, в такие оповещения также включается дополнительный объект `recurring_retry`, формат которого описан [в отдельной статье](ru_gate_cof_retry_attempts.md#).