[POST] Проведение автоплатежа
Описание запроса
POST /v1/payment/recurring
Запрос предназначен для создания повторного платежа и инициации его автооплаты. Для автооплаты используются ранее сохраненные платежные данные.
В результате выполнения запроса создается объект Платеж в статусе not paid после чего инициируется автооплата.
Сценарий использования:
Условия начала обработки запроса:
- Выполнена первая операция сценария:
- Ранее был создан платеж, зарегистрированный в качестве родительского платежа (передано поле
"recurring_indicator":true
). - Родительский платеж успешно завешен (проведена оплата) и имеет статус обработки paid.
- Ранее был создан платеж, зарегистрированный в качестве родительского платежа (передано поле
Проверка результата оплаты выполняется отдельно, см. описание в сценариях.
Данные для отправки запроса
- Endpoints URL:
- Боевая среда: https://api.ecommerce.softline.com/v1/payment/recurring
- Тестовая среда: https://api.ecommerce.softline.com.demoslweb.com/v1/payment/recurring
- Метод: POST
- Формат: JSON
- Авторизация: с помощью токена
- Формат значения:
Bearer [token]
- Вместо [token] подставьте значение token, полученное в ответ на запрос к Authentication API.
Вы получаете этот идентификатор в ответ на запрос создания платежа.
- Информационное поле, уникальность идентификатора не проверяется.
- В случае, если будет сделан повторный запрос с одним и тем же идентификатором, то будет создан новый платеж.
- Допустимы только цифры, латинские буквы, символы "-" и "_".
- Формат: ISO 4217 alpha-3. 3 символа.
- Должна совпадать с валютой родительского платежа.
- Формат: Число, до 2 десятичных знаков, разделитель - точка.
- Сумма платежа должна быть строго больше нуля.
- Это описание может отображаться покупателю при оплате для некоторых платежных методов, см. в справочнике.
- Не более 255 символов.
- Если не передано, то будет сгенерировано по шаблону: "Payment [payment_id]".
Пример запроса
{
"parent_order_id": 1122344,
"payment_id": "TEST12025-2",
"currency": "RUB",
"amount": "112.50",
"payment_description": "Тестовая оплата"
}
Ответ на запрос
В ответ на запрос вы получите код ответа сервера, соответствующий результату обработки.
В зависимости от кода в теле ответа могут присутствовать дополнительные параметры.
Положительный ответ
При успешной обработке запроса вы получите код ответа сервера HTTP/1.1 200 OK. В теле ответа будут переданные данные созданного платежа в формате JSON.
Этот ответ обозначает, что на стороне Softline Payments:
- Создан платеж в статусе not paid. Срок жизни неоплаченного платежа - 90 дней.
- Инициирована автоматическая оплата созданного платежа.
Чтобы узнать о результатах оплаты подождите пока придет webhook уведомление или проверьте статус платежа с помощью запроса получения данных о платеже.
Пример положительного ответа
{
"order_id": 123456
}
Ответ об ошибке
В случае ошибки при обработке запроса вы получите код ответа сервера, соответствующий результату обработки.
В зависимости от кода в теле ответа могут присутствовать дополнительные параметры.
Справочник HTTP-кодов ответа сервера при ошибке
Код ответа сервера | Описание |
HTTP/1.1 400 Bad Request | Запрос не валиден (ошибка в параметрах; не переданы необходимые данные и т.п.). В теле ответа будет передан дополнительный код ошибки (один или несколько). |
HTTP/1.1 401 Unauthorized | Неуспешная аутентификация. В теле ответа будет передан дополнительный код ошибки (один или несколько). |
HTTP/1.1 404 Not found | Неверный URL запроса или не найден родительский платеж. Проверьте адрес запроса. В теле ответа может быть передан дополнительный код ошибки (один или несколько). |
HTTP/1.1 500 Request Error | Ошибка на стороне сервера. Повторите запрос позднее или обратитесь в службу поддержки. |
Справочник дополнительных кодов ошибок для HTTP 400
Error | Message | Описание |
Если хотя бы одна ошибка из списка ниже найдена, то она возвращается в ответе на запрос, остальные ошибки не проверяются. | ||
110 | JSON is not valid. | Автоплатеж не может быть выполнен. Структура параметров запроса не валидна. Проверьте параметры в теле запроса на соответствие формату JSON. |
111 | Invalid data format (Content-type). | Автоплатеж не может быть выполнен. Неправильный заголовок запроса. Content-type должен быть равен application/json. |
6000 | Unable to generate payment. Please contact technical support. | Автоплатеж не может быть выполнен. В том числе, если переданная валюта (currency) не доступна для использования. Обратитесь в поддержку. |
Если хотя бы одна ошибка из списка ниже найдена, то проверка запроса не прерывается. В ответе может быть возвращено несколько ошибок. |
||
6010 | Invalid field value: [наименование параметра] | Запрос не валиден, например, не заполнен обязательный параметр, передано неверное название параметра, тип или формат значения параметра неверны. В том числе ошибка будет возвращена, если в параметре передано null, и этот вариант значения не указан как допустимый. |
6210 | Recurring payment processing is not available. Parent payment [parent_order_id] has not been completed successfully. | Автоплатеж не может быть выполнен. Родительский платеж с переданным идентификатором (parent_order_id) не был выполнен успешно (имеет статус not paid). |
6215 | Recurring payment processing is not available. Parent payment [parent_order_id] has been deleted. | Автоплатеж не может быть выполнен. Родительский платеж с переданным идентификатором (parent_order_id) был удален (имеет статус deleted). |
6220 | Recurring payment processing is not available. Parent payment was made using different currency [код валюты по ISO из родительского платежа]. | Автоплатеж не может быть выполнен. Переданная валюта автоплатежа (currency) не совпадает с валютой родительского платежа. В ответе будет возвращен код валюты из родительского платежа. |
6230 | Recurring payment processing for payment method [платежный метод из родительского платежа] is not available. | Автоплатеж не может быть выполнен. В родительском платеже с переданным идентификатором (parent_order_id) установлен платежный метод, который не поддерживает проведение автоплатежей. В ответе будет возвращен код платежного метода из родительского платежа. |
6240 | Recurring payment processing is not available. During payment [parent_order_id] processing, failed to save data for next payments. | Автоплатеж не может быть выполнен. В родительском платеже с переданным идентификатором (parent_order_id) не сохранены платежные данные. |
6250 | Parameter recurring_indicator = true has not been set for payment [parent_order_id]. | Автоплатеж не может быть выполнен. Платеж с переданным идентификатором (parent_order_id) не зарегистрирован в качестве родительского (recurring_indicator не равен true). |
6260 | Recurring payment processing is not available. This payment method is not available for this payment amount. | Автоплатеж не может быть выполнен. Переданный метод оплаты (payment_method) не доступен для переданной суммы платежа (amount). |
6265 | Recurring payment processing is not available. This payment method is not available. Please contact technical support. | Автоплатеж не может быть выполнен. Переданный метод оплаты (payment_method) не доступен. Обратитесь в поддержку. |
Справочник дополнительных кодов ошибок для HTTP 401
Справочник этих ошибок одинаковый для всех API, которые используют авторизацию по токену.
Справочник дополнительных кодов ошибок для HTTP 404
Error | Message | Описание |
Если хотя бы одна ошибка из списка ниже найдена, то она возвращается в ответе на запрос, остальные ошибки не проверяются. | ||
6200 | Payment [order_id] is not found. | Автоплатеж не может быть выполнен. Родительский платеж с переданным идентификатором (parent_order_id) не найден или у вас нет прав на выполнение операции с ним. |
Пример ответа об ошибке
{
"errors": [{
"error": 6210,
"message": "Recurring payment processing is not available. Parent payment was made using different currency ARS."
}
]
}