Разделение платежа v2
Сплитование платежа – это способ проведения транзакции, при которой сумма платежа разделяется между несколькими получателями. Например, в случае маркетплейса, запрос на транзакцию осуществляется оператором маркетплейса, а в параметрах транзакции перечисляются данные получателей платежа: партнеров маркетплейса и магазинов, а также соответствующих банковских счетов для получения средств (опционально).
Info
При разделении платежа v2 проводится одна транзакция, т.е. с покупателя сразу списывается вся сумма платежа. Разделение происходит в момент расчета с получателями платежа.
Для разделения платежа в момент транзакции (при этом количество списаний с карты покупателя будет равно количеству получателей платежа) используйте другую версию разделения платежа.
Обратитесь в службу технической поддержки для активации сплитования для вашего магазина.
Сценарии использования сплитования
- оплата (
payment) + массивsplitИЛИ запрос на создание токена платежа с типом транзакцииpayment+ массивsplit; - при необходимости одна или несколько транзакций возврата средств (
refund)+ массивsplit.
- авторизация (
authorization) без массиваsplitИЛИ запрос на создание токена платежа с типом транзакцииauthorizationбез массиваsplit; - при необходимости отмена авторизации (
void) без массиваsplit; - списание средств (
capture) + массивsplit; - при необходимости возврат (
refund) + массивsplit.
Info
Для сохранения данных карты в запросе на авторизацию, оплату или на создание токена платежа можно передать массив additional_data.contract со значением ["contract", "card_on_file"]. Токен карты будет отправлен в ответе на запрос или в автоматическом уведомлении в параметре credit_card.token.
Запрос
Для разделения платежа, отправьте данные получателей платежа в массиве additional_data.split.
Сплитование поддерживают следующие транзакции:
Пример запроса на оплату с массивом split
{
"request": {
"amount": 1500,
"currency": "USD",
"test": true,
"description": "Test transaction",
"tracking_id": "tracking_id_000",
"notification_url": "https://notification_url",
"credit_card": {
"number": "4242424242424242",
"verification_value": "123",
"holder": "John Doe",
"exp_month": 10,
"exp_year": 2030
},
"customer": {
"device_id": "",
"birth_date": ""
},
"additional_data": {
"split": [
{
"company_name": "Generic Company LLC",
"bank_account": "IBAN000000000000000000000000",
"bank_bic": "GENBANKXX",
"tax_id": "171234567890",
"amount": 500
},
{
"company_name": "Best Restaurant Inc.",
"bank_account": "IBAN111111111111111111111111",
"bank_bic": "GENBANKYY",
"tax_id": "222222222",
"amount": 700
},
{
"company_name": "Courier Services Ltd.",
"bank_account": "IBAN222222222222222222222222",
"bank_bic": "GENBANKZZ",
"tax_id": "333333333",
"amount": 300
}
],
"contract": [
"recurring",
"card_on_file"
]
}
}
}
Пример запроса на создание токена с массивом split
{
"checkout": {
"test": true,
"transaction_type": "payment",
"settings": {
"return_url": "http://127.0.0.1:4567/return",
"success_url": "http://127.0.0.1:4567/success",
"notification_url": "http://your_shop.com/notification"
},
"order": {
"tracking_id": "your_uniq_number",
"currency": "USD",
"amount": 1400,
"expired_at": "2025-11-29T05:33:38Z",
"description": "description",
"additional_data": {
"split": [
{
"company_name": "Generic Company LLC",
"bank_account": "IBAN000000000000000000000000",
"bank_bic": "GENBANKXX",
"tax_id": "111111111",
"amount": 500
},
{
"company_name": "Best Restaurant Inc.",
"bank_account": "IBAN111111111111111111111111",
"bank_bic": "GENBANKYY",
"tax_id": "222222222",
"amount": 600
},
{
"company_name": "Courier Services Ltd.",
"bank_account": "IBAN222222222222222222222222",
"bank_bic": "GENBANKZZ",
"tax_id": "333333333",
"amount": 300
}
]
}
}
}
}
Пример запроса на списание средств с массивом split
{
"request": {
"parent_uid": "1-310b0da80b",
"amount": 1500,
"additional_data": {
"split": [
{
"company_name": "Generic Company LLC",
"bank_account": "IBAN000000000000000000000000",
"bank_bic": "GENBANKXX",
"tax_id": "111111111",
"amount": 500
},
{
"company_name": "Best Restaurant Inc.",
"bank_account": "IBAN111111111111111111111111",
"bank_bic": "GENBANKYY",
"tax_id": "222222222",
"amount": 700
},
{
"company_name": "Courier Services Ltd.",
"bank_account": "IBAN222222222222222222222222",
"bank_bic": "GENBANKZZ",
"tax_id": "333333333",
"amount": 300
}
]
}
}
}
Пример запроса на возврат средств с массивом split
{
"request": {
"parent_uid": "ef84f54b-a0d6-4bcb-813f-864a3cd9a44d",
"amount": 1300,
"reason": "Client request",
"additional_data": {
"split": [
{
"tax_id": "171234567",
"amount": 500
},
{
"tax_id": "333333333",
"amount": 800
}
]
}
}
}
Параметры массива split
|
|||||||||||||||||||||||||||||||||||||
Ответ
Пример ответа на запрос оплаты с массивом split
{
"uid": "ef84f54b-a0d6-4bcb-813f-864a3cd9a44d",
"code": "S.0000",
"friendly_message": "The transaction is successfully processed.",
"status": "successful",
"amount": 1500,
"currency": "USD",
"description": "Test transaction",
"type": "payment",
"payment_method": {
"payment_method_type": "credit_card",
"holder": "John Doe",
"stamp": "b3efde4d54bfda63f43c7bb5b1ca5bb93f9f16ed29590a70c190a7454f167679",
"brand": "visa",
"last_4": "4242",
"first_1": "4",
"bin": "424242",
"bin_8": "42424242",
"issuer_country": null,
"issuer_name": null,
"product": null,
"exp_month": 10,
"exp_year": 2030,
"token_provider": null,
"token": "657bb3ad-5f13-488d-bf9c-8305141dcd13"
},
"tracking_id": "tracking_id_000",
"message": "Transaction is successful.",
"test": true,
"created_at": "2025-11-12T12:35:10.321Z",
"updated_at": "2025-11-12T12:35:12.958Z",
"paid_at": "2025-11-12T12:35:12.845Z",
"expired_at": null,
"recurring_type": "initial",
"closed_at": null,
"settled_at": null,
"manually_corrected_at": null,
"language": "en",
"redirect_url": "https://gateway.pay-cross.com/process/ef84f54b-a0d6-4bcb-813f-864a3cd9a44d",
"status_code": null,
"links": {
"receipt_url": "https://admin.pay-cross.com/customer/transactions/ef84f54b-a0d6-4bcb-813f-864a3cd9a44d/20e4a187c3dd9e18085a43fac9b7c7ab73a4c933bf9154ef2a3ef73f6ea9bfc2?language=en"
},
"gateway": {
"iframe": true
},
"mute_notifications": null,
"version": 4,
"psp_settled_at": null,
"registry_id": null,
"three_ds_expired_at": null,
"additional_data": {
"split": [
{
"tax_id": "171234567",
"amount": 500
},
{
"tax_id": "222222222",
"amount": 500
},
{
"tax_id": "333333333",
"amount": 500
}
],
"contract": [
"recurring",
"card_on_file"
]
},
"customer": {
"ip": null,
"email": null,
"device_id": null,
"birth_date": null,
"external_id": null,
"first_name": null,
"last_name": null,
"address": null,
"country": null,
"city": null,
"zip": null,
"state": null,
"phone": null
},
"transaction": {
"auth_code": "654321",
"bank_code": "05",
"rrn": "999",
"ref_id": "777888",
"message": "Payment was approved",
"amount": 1500,
"currency": "USD",
"billing_descriptor": "TEST GATEWAY BILLING DESCRIPTOR",
"gateway_id": 3549,
"status": "successful"
},
"avs_cvc_verification": {
"avs_verification": {
"result_code": "1"
},
"cvc_verification": {
"result_code": "1"
}
}
}
Пример ответа с ошибкой валидации: сумма значений amount массива split не равна общей сумме транзакции
{
"code": "E.1025",
"friendly_message": "Invalid request params",
"message": "Split {:total_amount=>[\"Total amount in the 'split' section must equal the transaction amount.\"]}.",
"errors": {
"additional_data": {
"split": {
"total_amount": [
"Total amount in the 'split' section must equal the transaction amount."
]
}
}
}
}