/v1/orders/{order_id}/refund

Запрос на возврат средств за заказ.

Запуск возврата средств по заказу.

Доступно только для платежей в статусе CAPTURED и PARTIALLY_REFUNDED. В случае успеха статус платежа изменится на REFUNDED или PARTIALLY_REFUNDED в зависимости от суммы и будет отправлено событие ORDER_STATUS_UPDATED. Событие OPERATION_STATUS_UPDATED будет отправлено как в случае успеха, так и при возникновении ошибки в процессе совершения возврата.

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

Request

POST

https://pay.yandex.ru/api/merchant/v1/orders/{order_id}/refund

Production

POST

https://sandbox.pay.yandex.ru/api/merchant/v1/orders/{order_id}/refund

Sandbox

Path parameters

Name

Description

order_id*

Type: string

ID заказа на стороне продавца, который был передан в ответе на /orders.

Max length: 2048

Body

application/json
{
    "cart": {
        "cartId": "string",
        "coupons": [
            {
                "description": "string",
                "status": "VALID",
                "value": "string"
            }
        ],
        "discounts": [
            {
                "amount": "123.45",
                "description": "string",
                "discountId": "string"
            }
        ],
        "externalId": "string",
        "items": [
            {
                "description": "string",
                "discountedUnitPrice": "123.45",
                "features": {
                    "pointsDisabled": false
                },
                "measurements": {
                    "height": 0,
                    "length": 0,
                    "weight": 0,
                    "width": 0
                },
                "pointsAmount": "123.45",
                "productId": "string",
                "quantity": {
                    "available": "123.45",
                    "count": "123.45"
                },
                "receipt": {
                    "agent": {
                        "agentType": 1,
                        "operation": "string",
                        "paymentsOperator": {
                            "phones": [
                                "string"
                            ]
                        },
                        "phones": [
                            "string"
                        ],
                        "transferOperator": {
                            "address": "string",
                            "inn": "string",
                            "name": "string",
                            "phones": [
                                "string"
                            ]
                        }
                    },
                    "excise": "123.45",
                    "markQuantity": {
                        "denominator": 0,
                        "numerator": 0
                    },
                    "measure": 0,
                    "paymentMethodType": 1,
                    "paymentSubjectType": 1,
                    "productCode": "string",
                    "supplier": {
                        "inn": "string",
                        "name": "string",
                        "phones": [
                            "string"
                        ]
                    },
                    "tax": 1,
                    "title": "string"
                },
                "subtotal": "123.45",
                "title": "string",
                "total": "123.45",
                "type": "PHYSICAL",
                "unitPrice": "123.45"
            }
        ],
        "measurements": {
            "height": 0,
            "length": 0,
            "weight": 0,
            "width": 0
        },
        "total": {
            "amount": "123.45",
            "pointsAmount": "123.45"
        }
    },
    "externalOperationId": "string",
    "orderAmount": "123.45",
    "refundAmount": "123.45",
    "shipping": {
        "amount": "123.45",
        "methodType": "DIRECT"
    }
}

Name

Description

orderAmount*

Type: string<double>

Итоговая сумма заказа. Равна cart.total.amount + shipping.amount

Example: 123.45

refundAmount*

Type: string<double>

Сумма к возврату

Example: 123.45

cart

Type: CartWithRequiredTotalWithoutFinalPrice

Итоговая корзина

externalOperationId

Type: string

Идентификатор операции в системе продавца

Max length: 2048

shipping

Type: ShippingPrice

CartWithRequiredTotalWithoutFinalPrice

Name

Description

items*

Type: CartItemWithoutFinalPriceCamelCase[]

total*

Type: CartTotal

cartId

Type: string

Внутренний идентификатор корзины Яндекс Пэй.

Бэкенд магазина должен использовать этот параметр как идентификатор корзины покупателя и как ключ идемпотентности для запроса /order/create. Если бэкенд магазина получает повторный запрос /order/create, то необходимо вернуть уже созданный номер заказа. На одну корзину (cartId) бэкенд магазина может создать не больше одного заказа (orderId).

Max length: 2048

coupons

Type: Coupon[]

Купоны, применённые к корзине

discounts

Type: Discount[]

Скидки, применённые к корзине

externalId

Type: string

Переданный продавцом идентификатор корзины

Max length: 2048

measurements

Type: Measurements

ShippingPrice

Name

Description

amount*

Type: string<double>

Не должно содержать больше двух знаков после запятой. Например: 1.12, 5.1, 10, 11.00 .

Example: 123.45

methodType*

Type: string

Enum: DIRECT, PICKUP, COURIER, YANDEX_DELIVERY

CartItemWithoutFinalPriceCamelCase

Name

Description

productId*

Type: string

Id товара в системе продавца. В параметрах запроса каждый идентификатор товара productId должен быть уникальным

Max length: 2048

quantity*

Type: ItemQuantity

Количество товара в заказе

description

Type: string

Описание товара

Max length: 2048

discountedUnitPrice

Type: string<double>

Цена за единицу товара с учётом скидок на позицию

Example: 123.45

features

Type: CartItemFeatures

Промо параметры товара

measurements

Type: Measurements

Размеры и вес товара. Обязательно для товара типа PHYSICAL

pointsAmount

Type: string<double>

Количество баллов Плюса

Поле только для чтения. Переданные значения будут проигнорированы.

Example: 123.45

receipt

Type: ItemReceipt

Данные для формирования чека

subtotal

Type: string<double>

Суммарная цена за позицию без учета скидок

Example: 123.45

title

Type: string

Наименование товара

Max length: 2048

total

Type: string<double>

Суммарная цена за позицию с учётом скидок на позицию

Example: 123.45

type

Type: string

Тип товара. Важен для интеграции с доставками

Default: UNSPECIFIED

Enum: PHYSICAL, DIGITAL, UNSPECIFIED

unitPrice

Type: string<double>

Полная цена за единицу товара без учетка скидки

Example: 123.45

CartTotal

Name

Description

amount*

Type: string<double>

Стоимость корзины с учетом всех скидок.

Example: 123.45

pointsAmount

Type: string<double>

Количество баллов плюса

Example: 123.45

Coupon

Name

Description

value*

Type: string

Код купона

Max length: 2048

description

Type: string

Описание. Например, "Скидка 3%"

Max length: 2048

status

Type: string

Enum: VALID, INVALID, EXPIRED, null

Discount

Name

Description

amount*

Type: string<double>

Сумма скидки

Example: 123.45

description*

Type: string

Текстовое описание

Max length: 2048

discountId*

Type: string

Идентификатор скидки в системе мерчанта

Max length: 2048

Measurements

Name

Description

height*

Type: number<float>

Высота, в метрах

length*

Type: number<float>

Длина, в метрах

weight*

Type: number<float>

Вес, в килограммах

width*

Type: number<float>

Ширина, в метрах

ItemQuantity

Name

Description

count*

Type: string<double>

Количество товара в заказе

Example: 123.45

available

Type: string<double>

Максимально доступное количество товара

Example: 123.45

CartItemFeatures

Name

Description

pointsDisabled

Type: boolean

Не распределять баллы Плюса. Используется только при создании заказа. Если это поле не указано, то баллы будут распределены на товар

ItemReceipt

Name

Description

tax*

Type: integer

Описание значений: Ссылка

Enum: 1, 2, 3, 4, 5, 6

agent

Type: Agent

excise

Type: string<double>

Не должно содержать больше двух знаков после запятой. Например: 1.12, 5.1, 10, 11.00 .

Example: 123.45

markQuantity

Type: MarkQuantity

measure

Type: integer

Описание значений: Ссылка

Enum: 0, 10, 11, 12, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, 51, 70, 71, 72, 73, 80, 81, 82, 83, 255, null

paymentMethodType

Type: integer

Описание значений: Ссылка

Enum: 1, 2, 3, 4, 5, 6, 7, null

paymentSubjectType

Type: integer

Описание значений: Ссылка

Enum: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, null

productCode

Type: string<base64>

Код товара (base64 кодированный массив от 1 до 32 байт)

supplier

Type: Supplier

title

Type: string

Max length: 2048

Agent

Name

Description

agentType*

Type: integer

Признак агента по предмету расчёта. См. значения

Enum: 1, 2, 3, 4, 5, 6, 7

operation

Type: string

Max length: 2048

paymentsOperator

Type: PaymentsOperator

phones

Type: string[]

Max length: 2048

transferOperator

Type: TransferOperator

MarkQuantity

Name

Description

denominator*

Type: integer<int32>

numerator*

Type: integer<int32>

Supplier

Name

Description

inn

Type: string

Max length: 2048

name

Type: string

Max length: 2048

phones

Type: string[]

Max length: 2048

PaymentsOperator

Name

Description

phones

Type: string[]

Max length: 2048

TransferOperator

Name

Description

address

Type: string

Max length: 2048

inn

Type: string

Max length: 2048

name

Type: string

Max length: 2048

phones

Type: string[]

Max length: 2048

Responses

200 OK

Body

application/json
{
    "code": 200,
    "data": {
        "operation": {
            "amount": "123.45",
            "created": "2022-12-29T18:02:01Z",
            "externalOperationId": "string",
            "operationId": "c3073b9d-edd0-49f2-a28d-b7ded8ff9a8b",
            "operationType": "AUTHORIZE",
            "orderId": "string",
            "params": {},
            "pointsAmount": "123.45",
            "reason": "string",
            "status": "PENDING",
            "updated": "2022-12-29T18:02:01Z"
        }
    },
    "status": "success"
}

Name

Description

code

Type: number

Default: 200

data

Type: OperationResponseData

status

Type: string

Default: success

Enum: success

OperationResponseData

Name

Description

operation

Type: Operation

Operation

Name

Description

amount*

Type: string<double>

Сумма операции в фиатной валюте

Example: 123.45

operationId*

Type: string<uuid>

Max length: 2048

operationType*

Type: string

Enum: AUTHORIZE, BIND_CARD, REFUND, CAPTURE, VOID, RECURRING, PREPAYMENT, SUBMIT

orderId*

Type: string

Max length: 2048

created

Type: string<date-time>

Дата и время создания операции (ISO 8601)

externalOperationId

Type: string

Идентификатор операции на стороне продавца

Max length: 2048

params

Type: object

pointsAmount

Type: string<double>

Сумма операции в баллах Плюса

Example: 123.45

reason

Type: string

Причина ошибки

Max length: 2048

status

Type: string

Default: PENDING

Enum: PENDING, SUCCESS, FAIL

updated

Type: string<date-time>

Дата и время обновления операции (ISO 8601)

Предыдущая