Если вы используете решение ЮKassa для платформ, вы можете создавать чек прихода, чек возврата прихода и чек зачета предоплаты от имени магазина, в котором пользователь приобрел товар. Для этого всем магазинам, с которыми вы работаете, нужно подключить сценарий отправки чеков Сначала платеж, потом чек.
Для каждого магазина нужно создавать отдельный чек прихода, чек возврата прихода и чек зачета предоплаты.
Чтобы сформировать чек прихода, отправьте ЮKassa запрос на создание чека . Обязательно передайте в нём
on_behalf_of
с идентификатором магазина, от лица которого хотите отправить чек, payment_id
с идентификатором платежа, который приняли от пользователя, и type
со значением payment
(чек прихода).Если пользователь оплатил несколько товаров из разных магазинов, вам необходимо создать отдельный чек от имени каждого магазина.
Пример запроса на создание чека прихода
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "customer": { "email": "user@example.com", "phone": "79000000000" }, "type": "payment", "payment_id": "24e89cb0-000f-5000-9000-1de77fa0d6df", "on_behalf_of": "123", "send": true, "items": [ { "description": "Платок Gucci", "quantity": "1.00", "amount": { "value": "3000.00", "currency": "RUB" }, "supplier": { "name": "Красота в платках", "phone": "79000000000", "inn": "1000000000" }, "agent_type": "commissioner", "vat_code": 2, "payment_mode": "full_payment", "payment_subject": "commodity", "country_of_origin_code": "IT" } ], "tax_system_code": 1, "settlements": [ { "type": "cashless", "amount": { "value": "2000.00", "currency": "RUB" } }, { "type": "postpayment", "amount": { "value": "1000.00", "currency": "RUB" } } ] }'
В ответ ЮKassa отправит вам объект чека в актуальном статусе. Помимо основных параметров в ответе вернется
on_behalf_of
c идентификатором магазина, от имени которого вы отправляете чек.Пример объекта чека
JSON
{ "id": "rt-2da5c87d-0384-50e8-a7f3-8d5646dd9e10", "type": "payment", "payment_id": "24e89cb0-000f-5000-9000-1de77fa0d6df", "on_behalf_of": "123", "status": "pending", "items": [ { "description": "Платок Gucci", "quantity": 1.000, "amount": { "value": "3000.00", "currency": "RUB" }, "supplier": { "name": "Красота в платках", "phone": "79000000000", "inn": "1000000000" }, "agent_type": "commissioner", "vat_code": "2", "payment_mode": "full_payment", "payment_subject": "commodity", "country_of_origin_code": "IT" } ], "settlements": [ { "type": "cashless", "amount": { "value": "2000.00", "currency": "RUB" } }, { "type": "postpayment", "amount": { "value": "1000.00", "currency": "RUB" } } ], "tax_system_code": 1 }
Чек возврата прихода необходимо формировать в следующих случаях:
- при возврате успешного платежа;
- при частичном подтверждении или отмене двухстадийного платежа, для которого был создан чек прихода.
Чек для возврата создается аналогично чеку прихода, но в запросе вместо
payment_id
с идентификатором платежа необходимо передать refund_id
с идентификатором возврата, а в параметре type
— значение refund
(чек возврата прихода).Вам нужно сформировать чек возврата прихода вне зависимости от того, кто сделал возврат — вы или магазин. Чтобы узнавать о возвратах, сделанных магазином, настройте входящие уведомления о событии
refund.succeeded
.Чтобы сформировать чек возврата прихода для отмененного или частично подтвержденного платежа, в запросе на создание чека нужно передать параметр
type
со значением refund
и payment_id
с идентификатором этого платежа.При создании чека зачета предоплаты передайте в запросе дополнительный параметр
on_behalf_of
с идентификатором магазина, на счет которого перечислены деньги.Пример запроса на создание чека зачета предоплаты
cURL
PHP
Python
curl https://api.yookassa.ru/v3/receipts \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "customer": { "email": "user@example.com", "phone": "79000000000" }, "payment_id": "24e89cb0-000f-5000-9000-1de77fa0d6df", "on_behalf_of": "123", "type": "payment", "send": "true", "items": [ { "description": "Платок Gucci", "quantity": "1.00", "amount": { "value": "3000.00", "currency": "RUB" }, "supplier": { "name": "Красота в платках", "phone": "79000000000", "inn": "1000000000" }, "agent_type": "commissioner", "vat_code": "2", "payment_mode": "full_payment", "payment_subject": "commodity", "country_of_origin_code": "IT" } ], "settlements": [ { "type": "prepayment", "amount": { "value": "2000.00", "currency": "RUB" } }, { "type": "cashless", "amount": { "value": "1000.00", "currency": "RUB" } } ] }'
В ответ ЮKassa отправит вам объект чека в актуальном статусе.
Пример объекта чека зачета предоплаты
JSON
{ "id": "rt_1da5c87d-0984-50e8-a7f3-8de646dd9ec9", "type": "payment", "payment_id": "24e89cb0-000f-5000-9000-1de77fa0d6df", "on_behalf_of": "123", "status": "pending", "items": [ { "description": "Платок Gucci", "quantity": 1.000, "amount": { "value": "3000.00", "currency": "RUB" }, "supplier": { "name": "Красота в платках", "phone": "79000000000", "inn": "1000000000" }, "agent_type": "commissioner", "vat_code": "2", "payment_mode": "full_payment", "payment_subject": "commodity", "country_of_origin_code": "IT" } ], "settlements": [ { "type": "prepayment", "amount": { "value": "2000.00", "currency": "RUB" } }, { "type": "cashless", "amount": { "value": "1000.00", "currency": "RUB" } } ] }