Перейти к основному содержимому

API возвратов

Инициация возврата по операции

  • Метод: POST
  • Адрес: https://services.robokassa.ru/RefundService/Refund/Create

Этот запрос позволяет инициировать возврат по успешно прошедшей операции оплаты, как полный, так и частичный.


Запрос

Представляет собой JWT-строку, передаваемую в теле HTTP POST. Для подписи используется ключ Password3 из настроек магазина.

Важно

Если параметр состава чека (InvoiceItems) не передаётся, выполняется только возврат средств без формирования фискального чека. Для формирования чека возврата прихода передача состава обязательна.

Перед работой с API возвратов сначала запросите доступ к API Refund в личном кабинете, затем сгенерируйте Password3 в настройках магазина.

Пример JWT (декодировать можно, например, на jwt.io):

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJPcEtleSI6IjAwMDVGODkxLThDQ0QtNDM0Qi04NDU1LTgxNkFGRkZEQkYzNy0wVk9pc1dpa0ZGIiwiUmVmdW5kU3VtIjoxLCJJbnZvaWNlSXRlbXMiOlt7Ik5hbWUiOiLQotC10YHRgtC-0LLRi9C5INGC0L7QstCw0YAtMSIsIlF1YW50aXR5IjoxLCJDb3N0IjoxLCJUYXgiOiJ2YXQyMCIsIlBheW1lbnRNZXRob2QiOiJmdWxsX3BheW1lbnQiLCJQYXltZW50T2JqZWN0IjoiY29tbW9kaXR5In1dfQ.8TLNBdYYyl218qhdssAhs7ldiDIFeLZWh9Pf0UuN3wg

Поддерживаемые алгоритмы

  • HS256,HS384,HS512

{
"alg": "HS256",
"typ": "JWT"
}

Полезная нагрузка (Payload)

{
"OpKey": "0005F891-8CCD-434B-8455-816AFFFDBF37-0VOisWikFF",
"RefundSum": 1.0,
"InvoiceItems": [
{
"Name": "Тестовый товар",
"Quantity": 1,
"Cost": 1.0,
"Tax": "none",
"PaymentMethod": "full_payment",
"PaymentObject": "payment"
}
]
}

Важно: JSON-объект должен быть представлен в компактном формате (без лишних пробелов и переносов строк), чтобы избежать ошибок при обработке.


Подпись (Signature)

Используется для проверки подлинности токена. Строка генерируется путём подписания заголовка и payload с использованием выбранного алгоритма и Password3.


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

НазваниеТипОбязательностьОписание
OpKeyStringДаУникальный идентификатор операции (из OpStateExt или Result2)
RefundSumDecimalНетСумма частичного возврата (не указывать при полном возврате)
InvoiceItemsStringНетТоварные позиции из чека, по которым необходимо совершить возврат

Ответ

Успешный ответ:
{
"success": true,
"message": null,
"requestId": "68cd7fa6-1338-4745-ba5c-28d16cbcdb3d"
}

Неуспешный ответ:
{
"success": false,
"message": "NotEnoughOperationFunds",
"requestId": null
}

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

НазваниеТипОбязательностьОписание
successbooleanДаУспешно ли создана заявка
messagestringНетСообщение об ошибке (если success = false)
requestIdguidНетGUID созданной заявки (если success = true)

Проверка статуса возврата

  • Метод: GET
  • Адрес: https://services.robokassa.ru/RefundService/Refund/GetState?id=<request_id>

Этот запрос позволяет получить статус операции возврата.

Запрос

Для того что бы получить статус операции возврата необходимо использовать параметр requestId полученный в ответе на успешное создание возврата.

Пример

https://services.robokassa.ru/RefundService/Refund/GetState?id=cf15fd52-d2d1-4fc4-b9c0-25310e3bdded

Ответ

Успешный ответ:
{
"requestId": "cf15fd52-d2d1-4fc4-b9c0-25310e3bdded",
"amount": 1.000000,
"label": "finished"
}

Неуспешный ответ:
{
"message": "Id is invalid or request id does not exist"
}

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

НазваниеОписание
requestIdGUID созданной заявки
amountСумма возврата
labelСтатус возврата

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

СтатусОписание
finishedУспешный полный или частичный возврат
processingВозврат находящийся в процессе выполнения
canceledВозврат отмененный через личный кабинет