Проведение оплат с частичным одобрением

статья о возможности проводить через Payment Page оплаты, в рамках которых эмитенты одобряют частичные списания от исходных сумм платежей

Общая информация

При проведении оплат могут возникать ситуации, когда у пользователя недостаточно средств на счёте для оплаты всей требуемой суммы, но для мерчанта может быть приемлема и частичная сумма зачисления. Например, это может быть актуальным для гибкого пополнения пользовательского баланса в веб-сервисе или для бронирования услуг, полная оплата которых может быть осуществлена в дальнейшем при их фактическом оказании. Чтобы допускать такие оплаты и не отклонять их из-за недостатка средств на счетах пользователей, можно использовать функциональность частичного одобрения платежей со стороны эмитентов (Partial Approval или Partial Authorization), которая применима в рамках отдельных платёжных систем.

В платёжной платформе Ecommpay возможность проведения оплат с частичным одобрением поддерживается для классических карточных платежей с использованием карт платёжных систем Mastercard и Visa при работе через Gate API (подробнее) или основную редакцию Payment Page. Эта возможность подключается по согласованию с курирующим менеджером Ecommpay в отношении требуемых проектов, после чего со стороны веб-сервиса мерчанта можно регулировать допустимость частичного одобрения в отношении каждого инициируемого платежа. Для этого в структуре запросов на открытие платёжной формы предусмотрен специализированный параметр allow_partial_approval.

В платёжной платформе Ecommpay поддерживается возможность частичного одобрения оплат с прямым использованием карт платёжных систем Mastercard и Visa.

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

Конкретная сумма, которая может использоваться в рамках оплаты с возможностью частичного одобрения, каждый раз определяется на стороне эмитента используемой платёжной карты (с учётом актуального баланса средств на счёте и правил работы эмитента). Информация об этой сумме передаётся от сервиса эмитента к платёжной платформе Ecommpay, где одобренная сумма учитывается как актуальная сумма платежа, а исходно указанная в запросе сумма становится неактуальной. При этом важно учитывать, что такое изменение может влиять на дальнейшие операции в рамках оплаты, как например действия с заблокированными средствами или возврат средств после оплаты. Так, если исходно указанная сумма оплаты составляла 100 EUR, а фактически одобренная и оплаченная сумма оказалась равной 90 EUR, то вернуть в рамках такой оплаты можно не более 90 EUR. В свою очередь, разница между исходной и одобренной суммами может быть оплачена (и при необходимости возвращена) лишь отдельно, в рамках другой оплаты.

Применение возможности частичного одобрения не влияет на типовые схемы проведения оплат в одну и две стадии в отношении последовательности взаимодействий между веб-сервисом и платёжной платформой. Вместе с тем, при использовании этой возможности важно учитывать изменения в форматах запросов и оповещений (подробнее далее), и, когда это актуально, расширять пользовательские сценарии:

  • уведомлять о допустимости частичного одобрения суммы платежа или предоставлять возможность согласия с таким вариантом оплаты — перед каждым вызовом платёжной формы для проведения оплаты, которая может допускать частичное одобрение;
  • уведомлять о фактически одобренной и оплаченной сумме — по итогам проведения каждой оплаты, которая была одобрена частично;
  • предоставлять возможность доплаты до исходно требуемой суммы через дополнительный платёж (с повторным открытием платёжной формы или с использованием другого интерфейса, обеспечивая возможность применения другого платёжного инструмента) — когда это актуально;
  • предоставлять возможность возврата оплаченной суммы — когда это актуально;
  • вносить другие дополнения — когда это уместно в рамках оказываемых услуг и специфики веб-сервиса.

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

С вопросами, касающимися порядка подключения возможности проведения оплат с частичным одобрением, можно обращаться к курирующему менеджеру Ecommpay, с техническими вопросами, касающимися аспектов применения этой возможности — к настоящей документации и специалистам технической поддержки Ecommpay.

Особенности и ограничения

При использовании возможности оплат с частичным одобрением стоит учитывать следующие особенности и ограничения:

  • Возможность подключается в отношении конкретных проектов взаимодействия с платформой и может быть доступной для конкретных оплат только при соблюдении ряда условий:
    • Частичное одобрение допустимо для используемого проекта.
    • Для проведения оплаты используется Gate API или основная редакция платёжной формы Payment Page.
    • Платёжным методом выступают классические карточные платежи с прямым использованием карт.
    • Используемая карта выпущена и обслуживается в рамках платёжной системы Mastercard или Visa.
    • Эмитент используемой карты поддерживает оплаты с частичным одобрением.

    Во всех иных случаях частичное одобрение не применимо и если на счёте пользователя недостаточно средств, то оплата отклоняется, даже если в запросе была указана допустимость частичного одобрения.

    Notice: Стоит учитывать, что с учётом ограничений по допустимым интерфейсам и методам частичное одобрение не может применяться при работе с платформой через специализированные редакции Payment Page, SDK для мобильных приложений, CMS-плагины и платёжные ссылки, а также при использовании таких карточных методов, как Click to Pay и Visa Instalments.
  • Возможность применима для проведения оплат и блокировки средств, в том числе с регистрацией повторяемых оплат.

    При этом в случае регистрации повторяемых оплат возможность применима только для исходных оплат, но не для регистрируемых серий списаний, для которых актуальной в любом случае остаётся исходно запрошенная сумма списаний.

  • Возможность может комбинироваться с другими дополнительными возможностями, доступными при работе с Payment Page.

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

  • После частичного одобрения актуальной считается сумма платежа, одобренная эмитентом.

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

Подключение, тестирование и использование

Чтобы подключить возможность проведения оплат с частичным одобрением, со стороны мерчанта необходимо:

  1. Согласовать подключение с курирующим менеджером Ecommpay подключение этой возможности и необходимость её тестирования.
  2. Если была согласована необходимость тестирования, получить от специалистов Ecommpay уведомление о готовности к тестированию, проверить корректность работы с использованием этой возможности и сообщить о готовности к запуску.
  3. Получить от специалистов Ecommpay уведомление о подключении возможности.

Чтобы протестировать проведение оплат с частичным одобрением, со стороны мерчанта следует провести как минимум одну оплату в рамках тестового проекта, с формированием запроса требуемого формата на открытие платёжной формы и с указанием тестовых данных. При этом должны соблюдаться следующие условия:

  • При попытке оплаты на сумму более 120 EUR (в дробных единицах 12000) с использованием тестовой карты 5126160000356675 или 4010571676223548 должно выполняться списание ровно на 120 EUR. В таких случаях остальные параметры, включая имя держателя карты или проверочный код, могут иметь произвольные значения, но должны указываться в корректном формате и срок действия карты должен заканчиваться позднее даты платежа.
  • В других случаях оплаты должны проводиться на полную сумму или отклоняться, в соответствии с настроенными для проекта сценариями.

Чтобы допускать применение ранее подключённой возможности частичного одобрения для конкретных платежей, со стороны веб-сервиса необходимо указывать специализированный параметр allow_partial_approval со значением 1 в запросах на проведение таких платежей (подробнее далее).

Формат запросов

При формировании запросов на открытие платёжной формы для проведения оплаты с возможностью частичного одобрения необходимо учитывать следующее:

  1. В каждом запросе должны использоваться обязательные для выполнения конкретного целевого действия параметры (подробнее — в описаниях форматов запросов на открытие платёжной формы для проведения оплат, блокировки средств и регистрации повторяемых оплат).
  2. В каждом запросе должен передаваться параметр allow_partial_approval со значением 1. При передаче в этом параметре значения 0, как и при отсутствии этого параметра, частичное одобрение недопустимо.
  3. Дополнительно в запросах могут использоваться любые другие параметры, доступные при работе в режиме Purchase, из числа представленных в спецификации.
Рис. 1. Пример данных из запроса на открытие платёжной формы с возможностью частичного одобрения
{
   "project_id": "42",
   "payment_id": "456789",
   "payment_currency": "EUR",
   "payment_amount": "10000",
   "customer_id": "customer_12",
   "customer_phone": "44991234567",
   "allow_partial_approval": 1,
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."
}
Рис. 2. Пример данных из запроса на открытие платёжной формы с возможностью частичного одобрения
{
   "project_id": "42",
   "payment_id": "456789",
   "payment_currency": "EUR",
   "payment_amount": "10000",
   "customer_id": "customer_12",
   "customer_phone": "44991234567",
   "allow_partial_approval": 1,
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."
}

Формат оповещений

Для итоговых оповещений об оплатах с частичным одобрением используется типовой формат, описание которого представлено в статье Работа с оповещениями. При этом в объектах payment и operation в параметрах sum и sum_converted указываются значения с учётом суммы, одобренной эмитентом, и эту сумму следует использовать для финансового учёта и сверок.

Рис. 3. Пример данных из итогового оповещения об оплате с частичным одобрением
{
    "account": {
        "number": "431422******0056",
        "type": "visa",
        "card_holder": "PROSTETNIK JELTZ",
        "id": 45678,
        "expiry_month": "08",
        "expiry_year": "2035"
    },
    "customer": {
        "id": "customer_12",
        "phone": "44991234567"
    },
    "payment": {
        "date": "2026-01-11T13:02:42+0000",
        "id": "456789",
        "method": "card",
        "status": "success",
        "sum": {
            "amount": 9000, // одобренная сумма
            "currency": "EUR" // код валюты
        },
        "type": "purchase",
        "description": ""
    },
    "project_id": 42,
    "operation": {
        "id": 969000002636,
        "type": "sale",
        "status": "success",
        "date": "2026-01-11T13:02:42+0000",
        "created_date": "2026-01-11T13:01:45+0000",
        "request_id": "c6eed1eb14c629b4ef20b3b8086d...d04132c34b0088cbc0be4667c",
        "sum_initial": {
            "amount": 10000, // запрошенная сумма
            "currency": "EUR" // код валюты
        },
        "sum_converted": {
            "amount": 9000, // одобренная сумма
            "currency": "EUR" // код валюты
        },
        "provider": {
            "id": 408,
            "payment_id": "330157196",
            "date": "2026-01-11T13:02:32+0000",
            "auth_code": "",
            "endpoint_id": "612266625"
        },
        "code": "0",
        "message": "Success",
        "eci": "07"
    },
    "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
}
Рис. 4. Пример данных из итогового оповещения об оплате с частичным одобрением
{
    "account": {
        "number": "431422******0056",
        "type": "visa",
        "card_holder": "PROSTETNIK JELTZ",
        "id": 45678,
        "expiry_month": "08",
        "expiry_year": "2035"
    },
    "customer": {
        "id": "customer_12",
        "phone": "44991234567"
    },
    "payment": {
        "date": "2026-01-11T13:02:42+0000",
        "id": "456789",
        "method": "card",
        "status": "success",
        "sum": {
            "amount": 9000, // одобренная сумма
            "currency": "EUR" // код валюты
        },
        "type": "purchase",
        "description": ""
    },
    "project_id": 42,
    "operation": {
        "id": 969000002636,
        "type": "sale",
        "status": "success",
        "date": "2026-01-11T13:02:42+0000",
        "created_date": "2026-01-11T13:01:45+0000",
        "request_id": "c6eed1eb14c629b4ef20b3b8086d...d04132c34b0088cbc0be4667c",
        "sum_initial": {
            "amount": 10000, // запрошенная сумма
            "currency": "EUR" // код валюты
        },
        "sum_converted": {
            "amount": 9000, // одобренная сумма
            "currency": "EUR" // код валюты
        },
        "provider": {
            "id": 408,
            "payment_id": "330157196",
            "date": "2026-01-11T13:02:32+0000",
            "auth_code": "",
            "endpoint_id": "612266625"
        },
        "code": "0",
        "message": "Success",
        "eci": "07"
    },
    "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
}
Рис. 5. Пример данных из итогового оповещения об оплате с частичным одобрением и конвертацией валюты
{
    "account": {
        "number": "431422******0056",
        "type": "visa",
        "card_holder": "PROSTETNIK JELTZ",
        "id": 45678,
        "expiry_month": "08",
        "expiry_year": "2035"
    },
    "customer": {
        "id": "customer_12",
        "phone": "44991234567"
    },
    "payment": {
        "date": "2026-01-11T13:02:42+0000",
        "id": "456789",
        "method": "card",
        "status": "success",
        "sum": {
            "amount": 9000, // одобренная сумма в исходной валюте
            "currency": "EUR" // код исходной валюты
        },
        "type": "purchase",
        "description": ""
    },
    "project_id": 42,
    "operation": {
        "id": 969000002636,
        "type": "sale",
        "status": "success",
        "date": "2026-01-11T13:02:42+0000",
        "created_date": "2026-01-11T13:01:45+0000",
        "request_id": "c6eed1eb14c629b4ef20b3b8086d...d04132c34b0088cbc0be4667c",
        "sum_initial": {
            "amount": 10000, // запрошенная сумма в запрошенной операционной валюте
            "currency": "EUR" // код запрошенной операционной валюты
        },
        "sum_converted": {
            "amount": 7805, // одобренная сумма в фактической операционной валюте
            "currency": "GBP" // код фактической операционной валюты
        },
        "provider": {
            "id": 408,
            "payment_id": "330157196",
            "date": "2026-01-11T13:02:32+0000",
            "auth_code": "",
            "endpoint_id": "612266625"
        },
        "code": "0",
        "message": "Success",
        "eci": "07"
    },
    "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
}

Дополнительные материалы

При работе с оплатами с частичным одобрением могут быть полезны следующие материалы:

  • Проведение оплат — статья о порядке проведения через Payment Page одностадийных оплат с незамедлительными списаниями.
  • Блокировка средств — статья о порядке выполнения через Payment Page предварительных блокировок средств в рамках двухстадийных оплат с последующими списаниями.
  • Регистрация повторяемых оплат — статья о порядке регистрации через Payment Page оплат с сериями повторяемых списаний.
  • Повторные попытки проведения платежей — статья о возможности предоставлять пользователям дополнительные попытки проведения платежей через Payment Page при отклонении предшествующих попыток, с доступностью выбора платёжных методов.
  • Сбор данных о пользователях — статья о возможности получать и использовать при работе с Payment Page дополнительную информацию о пользователях, позволяющую минимизировать применение вспомогательных процедур.
  • Работа с информацией о платежах — статьи о том, как можно получать информацию о платежах, проводимых через платформу, чтобы организовывать необходимые процессы контроля, реагирования и анализа.
  • Отправка чеков и оповещений пользователям — статья о возможностях прямо информировать пользователей о проведении платежей и других событиях через электронную почту при работе через Payment Page.