Проведение операции
Проведение операции в UDS. После успешного завершения операция отобразится в списке операций в UDS, а администратор и клиент получат push-уведомление о покупке.
Способ предоставления скидки
Зависит от выбранной компанией политики (поле baseDiscountPolicy) в настройках компании. Допустимо два значения:
-
APPLY_DISCOUNT - Понижать сумму счета: позволяет пользователю получать скидку в денежных единицах при проведении операции в размере, указанном в поле participant.discountRate в информации о пользователе;
-
CHARGE_SCORES - Начислять бонусные баллы. При проведении операции пользователь получит бонусные баллы в размере, указанном в поле participant.cashbackRate в информации о пользователе;
Основные моменты
-
Поля total и points должны быть введены со стороны интегрируемого приложения, но поле cash - вычислено при помощи запроса Рассчитать информацию по операции.
-
Пользователь может быть идентифицирован с помощью кода на оплату, с помощью uuid-идентификатора (participant -> uid), либо с помощью номера телефона (поле participant -> phone). В случае, если пользователь идентифицирован с помощью uid, то списание бонусных баллов не будет разрешено. В таком случае требуется указать значение 0.0 в поле points, иначе будет получен ответ 400 с кодом ошибки withdrawNotPermitted;
-
Необходимо передавать только один из параметров: или код клиента, или номер телефона, или UID;
-
Все числа должны быть округлены по правилу математического округления (round half up). Баллы points можно округлять только в меньшую сторону;
-
Поля cash, points и total в обязательном порядке должны соответствовать настройке "Способ предоставления скидки" в настройках UDS
-
Поле nonce - произвольная строка вида uuid, которая может быть использована только однажды. Рекомендуется указывать для исключения повторных операций в случае дублирования запроса.
-
Поле externalId - идентификатор кассира, производивший оплату. Он может состоять только из латинских букв, цифр и символов _, -.
-
Eсли касса передает информацию о кассире, проводившем оплату, то для просмотра подробной информации о кассире подключите модуль Сотрудники
| Статус | Код ошибки | Описание |
|---|---|---|
| 400 | badRequest | Возникли ошибки при проведении валидации. Для получения подробной информации об ошибке обратитесь к полю errors. |
| 400 | invalidChecksum | Указанные значения в полях cash, points или total не соответствуют настройке "Способ предоставления скидки" в настройках UDS. |
| 400 | withdrawNotPermitted | В запросе было указано значение в поле participant -> uid, при этом значение в поле points не равно 0.0. |
| 400 | insufficientFunds | Значение в поле pointsпревышает доступное количество бонусных баллов на счете клиента. |
| 400 | discountLimitExceed | Соотношение points / total больше, чем указано в настройках UDS. |
| 400 | purchaseByPhoneDisabled | Проведение операции по номеру телефона не разрешено настройками UDS. |
| 401 | unauthorized | Неверно указан ID компании или API Key |
| 404 | notFound | Пользователь с данным кодом на оплату или идентификатором не найден. |
Request body
Example request
{
"tags": [
1
]
}Response
Операция.
Changes
No recorded changes to this endpoint across all 1 revision of this API.