Разбиение сумм платежей
Общие сведения
При проведении платежа есть вероятность столкнуться с ограничениями, наложенными платёжными провайдерами на сумму оплаты. Gate позволяет обойти данные ограничения путем разбиения суммы платежа, превышающей установленный лимит, на несколько операций с меньшими суммами. Для установки максимально допустимого количества операций, создаваемых по платежу с разбиением суммы, обращайтесь к специалистам технической поддержки ecommpay.
- сумма платежа делится на сумму лимита, целое число из получившегося результата — это количество операций с суммой, максимально допустимой по лимиту,
- из суммы платежа вычитается произведение установленного лимита и получившегося целого числа, чтобы узнать остаток суммы.
Например, если лимит суммы, установленный провайдером, составляет 10 000,00 EUR
, а сумма платежа от пользователя — 15 000,00 EUR
, то платеж разбивается на две операции с суммами: 10 000,00 EUR
(максимально допустимая сумма) и 5 000,00 EUR
(остаток суммы) по формуле 15000:10000=1.5
, 15000-(10000*1)=5000
. Или если лимит суммы — 1 800,00 EUR
, а сумма платежа — 5 000,00 EUR
, то платеж разбивается на три операции с суммами: 1 800,00 EUR
, 1 800,00 EUR
(максимально допустимые суммы) и 1 400,00 EUR
(остаток суммы) по формуле: 5000:1800=2.8
, 5000-(1800*2)=1400
.
Функциональность поддерживается для проведения разовой оплаты с использованием карт в одну или в две стадии. При проведении платежа пользователю на Payment Page отображается предупреждение о том, что сумма может быть разбита, и возникнет необходимость пройти аутентификацию 3‑D Secure более одного раза.

Формат оповещения о результате оплаты
Для оповещений о результатах оплат с разбиением суммы платежа используется стандартный формат, описание которого представлено в разделе Оповещения. Оповещение отправляется на каждую обработанную операцию по платежу.
success
— оплачена вся сумма платежа,decline
— не оплачена вся сумма платежа и нет или закончены все попытки каскадного проведения,partially paid
— сумма платежа оплачена частично и нет или закончены все попытки каскадного проведения.
Полная сумма и валюта платежа передаются в объекте payment.sum
:
amount
— общая сумма платежа, всегда передается;currency
— валюта платежа, всегда передается;
payment
могут передаваться следующие параметры, содержащие информацию о суммах:actual_amount
— фактическая сумма, которая была оплачена по проведенной операцииsale
илиcapture
, всегда передается;amount_authorized
— фактическая сумма, которая ранее была заблокирована операциейauth
, и ее можно либо подтвердить операциейcapture
, либо отменить операциейcancel
, передается, если оплата в две стадии;amount_remaining_refund
— сумма, на которую возможно сделать возврат средств пользователю, передается только для платежей со статусомpartially paid
илиsuccess
.
Далее приведены примеры оповещений, отправляемые при разных возможных вариантах проведения оплат в одну и две стадии с разбиением суммы платежа.
-
Пример оплаты в одну стадию общей суммой
10,01 EUR
и с лимитом провайдера в10,00 EUR
:В следующем примере оповещение свидетельствует о том, что инициирована оплата в одну стадию от пользователя. Cумма первой операции, на которую отправлено оповещение и которая фактически была оплачена пользователем, равна
10,00 EUR
.Рис.: Пример оповещения о проведении оплаты в одну стадию с разбиением суммы
{ "project_id": 968, "payment": { "id": "ORDER_ID_762", "type": "purchase", "status": "processing", "date": "2019-11-14T05:36:19+0000", "method": "card", "sum": { "amount": 1001, "currency": "EUR" }, "actual_amount": 1000, "description": "2 operations" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "PAUL LEE", "expiry_month": "01", "expiry_year": "2025" }, "customer": { "id": "D_K" }, "operation": { "id": 302103697, "type": "sale", "status": "success", "date": "2019-11-14T05:36:20+0000", "created_date": "2019-11-14T05:36:13+0000", "request_id": "00000001", "sum_initial": { "amount": 1000, "currency": "EUR" }, "code": "0", "message": "Success", "provider": { "id": 3, "payment_id": "81206", "auth_code": "", "endpoint_id": "3", "date": "2019-11-14T05:36:18+0000" } }, "signature": "h8WLEFVwUVnuL5X0szc0sVqDexKoe3UwumxXxLdn0...==" }
В следующем примере оповещение свидетельствует о том, что проведены обе операции оплаты в одну стадию от пользователя общей суммой
10,01 EUR
, а сумма операции, на которую отправлено оповещение —0,01 EUR
. Сумма, доступная к возврату —10,01 EUR
.Рис.: Пример оповещения о проведённой оплате в одну стадию с разбиением суммы
{ "project_id": 968, "payment": { "id": "ORDER_ID_762", "type": "purchase", "status": "success", "date": "2019-11-14T05:36:19+0000", "method": "card", "sum": { "amount": 1001, "currency": "EUR" }, "actual_amount": 1001, "amount_remaining_refund": 1001, "description": "2 operations" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "PAUL LEE", "expiry_month": "01", "expiry_year": "2025" }, "customer": { "id": "D_K" }, "operation": { "id": 302103697, "type": "sale", "status": "success", "date": "2019-11-14T05:36:20+0000", "created_date": "2019-11-14T05:36:13+0000", "request_id": "00000001", "sum_initial": { "amount": 1, "currency": "EUR" }, "code": "0", "message": "Success", "provider": { "id": 3, "payment_id": "81206", "auth_code": "", "endpoint_id": "3", "date": "2019-11-14T05:36:18+0000" } }, "signature": "h8WLEFVwUVnuL5X0szc0sVqDexKoe3UwumxXxLdn0...==" }
-
Пример оплаты в две стадии общей суммой
45,27 EUR
и с лимитом провайдера в25,00 EUR
:В следующем примере оповещение свидетельствует о том, что проведена часть оплаты в две стадии от пользователя общей суммой
45,27 EUR
, а сумма операции, на которую отправлено оповещение, составляет25,00 EUR
. Статус платежаprocessing
означает, что по платежу остается сумма на подтверждение —20,27 EUR
.Рис.: Пример оповещения о проведении оплаты в две стадии с разбиением суммы
{ "project_id": 968, "payment": { "id": "ORDER_09519", "type": "purchase", "status": "processing", "date": "2019-11-14T05:32:27+0000", "method": "card", "sum": { "amount": 4527, "currency": "EUR" }, "actual_amount": 2500, "amount_authorized": 2027, "description": "2 operations" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "PAUL LEE", "expiry_month": "01", "expiry_year": "2025" }, "customer": { "id": "D_K" }, "operation": { "id": 302103695, "type": "capture", "status": "success", "date": "2019-11-14T05:32:28+0000", "created_date": "2019-11-14T05:32:26+0000", "request_id": "00000001", "sum_initial": { "amount": 2500, "currency": "EUR" }, "code": "0", "message": "success", "provider": { "id": 3, "payment_id": "", "auth_code": "", "endpoint_id": "3", "date": "2019-11-14T05:32:27+0000" } }, "signature": "GvDHyki3OPkwbWzumbTYRBxNSgDFLF8Yg220hAud3r...==" }
В следующем примере оповещение свидетельствует о том, что провайдером отклонена часть оплаты в две стадии общей суммой
45,27 EUR
, сумма операции, на которую отправлено оповещение, составляет20,27 EUR
. Статус платежаawaiting capture
означает, что по платежу есть сумма, уже подтвержденная и проведенная ранее —25,00 EUR
, и остается сумма на подтверждение или отмену —20,27 EUR
.Рис.: Пример оповещения об отказе в проведении оплаты в две стадии с разбиением суммы
{ "project_id": 968, "payment": { "id": "ORDER_ID_C00024_0.63157000_1573709519", "type": "purchase", "status": "awaiting capture", "date": "2019-11-14T05:32:27+0000", "method": "card", "sum": { "amount": 4527, "currency": "EUR" }, "actual_amount": 2500, "amount_authorized": 2027, "description": "2 operations" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "PAUL LEE", "expiry_month": "01", "expiry_year": "2025" }, "customer": { "id": "D_K" }, "operation": { "id": 302103695, "type": "capture", "status": "decline", "date": "2019-11-14T05:32:28+0000", "created_date": "2019-11-14T05:32:26+0000", "request_id": "00000001", "sum_initial": { "amount": 2027, "currency": "EUR" }, "code": "10000", "message": "General decline", "provider": { "id": 3, "payment_id": "", "auth_code": "", "endpoint_id": "3", "date": "2019-11-14T05:32:27+0000" } }, "signature": "GvDHyki3OPkwbWzumbTYRBxNSgDFLF8Yg220hAud3r...==" }
В следующем примере оповещение свидетельствует о том, что мерчантом произведена отмена части оплаты в две стадии от пользователя общей суммой
45,27 EUR
, сумма операции, на которую отправлено оповещение, составляет20,27 EUR
. Статус платежаpartially paid
означает, что по платежу есть сумма, уже подтвержденная и проведенная ранее —25,00 EUR
и ее можно вернуть пользователю.Рис.: Пример оповещения об отмене проведения оплаты в две стадии с разбиением суммы
{ "project_id": 968, "payment": { "id": "ORDER_ID_C00024_0.63157000_1573709519", "type": "purchase", "status": "partially paid", "date": "2019-11-14T05:32:27+0000", "method": "card", "sum": { "amount": 4527, "currency": "EUR" }, "actual_amount": 2500, "amount_authorized": 0, "amount_remaining_refund": 2500, "description": "2 operations" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "PAUL LEE", "expiry_month": "01", "expiry_year": "2025" }, "customer": { "id": "D_K" }, "operation": { "id": 302103695, "type": "cancel", "status": "success", "date": "2019-11-14T05:32:28+0000", "created_date": "2019-11-14T05:32:26+0000", "request_id": "00000001", "sum_initial": { "amount": 2027, "currency": "EUR" }, "code": "10000", "message": "General decline", "provider": { "id": 3, "payment_id": "", "auth_code": "", "endpoint_id": "3", "date": "2019-11-14T05:32:27+0000" } }, "signature": "GvDHyki3OPkwbWzumbTYRBxNSgDFLF8Yg220hAud3r...==" }
-
Пример оплаты в две стадии общей суммой
45,00 EUR
и с лимитом провайдера в20,00 EUR
и с установленным лимитом на количество создаваемых операций по одному платежу —2
.Оповещение свидетельствует о том, что сумма платежа превышает установленный лимит по количеству создаваемых операций с разбиением суммы.
Рис.: Пример оповещения об отказе в проведении оплаты с разбиением суммы
{ "customer": { "id": "customer_123" }, "account": { "number": "431422******0056", "type": "visa", "card_holder": "PAUL LEE", "expiry_month": "07", "expiry_year": "2021" }, "project_id": 260, "payment": { "id": "TEST_14-04-2020_0001", "type": "purchase", "status": "decline", "date": "2020-04-14T11:19:42+0000", "method": "card", "sum": { "amount": 4500, "currency": "EUR" }, "description": "TEST_1586862995539" }, "operation": { "id": 46523000020281, "type": "auth", "status": "decline", "date": "2020-04-14T11:19:42+0000", "created_date": "2020-04-14T11:19:42+0000", "request_id": "046524", "sum_initial": { "amount": 4500, "currency": "EUR" }, "code": "3019", "message": "Exceeded count split operation", "provider": { "id": 414, "payment_id": "", "endpoint_id": 414 } }, "signature": "/dnQUd/uLStqBI4DU1j2+/X2Cua6cvH00...==" }