Operations

Проведение операции

Проведение операции в 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сли касса передает информацию о кассире, проводившем оплату, то для просмотра подробной информации о кассире подключите модуль Сотрудники

СтатусКод ошибкиОписание
400badRequestВозникли ошибки при проведении валидации. Для получения подробной информации об ошибке обратитесь к полю errors.
400invalidChecksumУказанные значения в полях cash, points или total не соответствуют настройке "Способ предоставления скидки" в настройках UDS.
400withdrawNotPermittedВ запросе было указано значение в поле participant -> uid, при этом значение в поле points не равно 0.0.
400insufficientFundsЗначение в поле pointsпревышает доступное количество бонусных баллов на счете клиента.
400discountLimitExceedСоотношение points / total больше, чем указано в настройках UDS.
400purchaseByPhoneDisabledПроведение операции по номеру телефона не разрешено настройками UDS.
401unauthorizedНеверно указан ID компании или API Key
404notFoundПользователь с данным кодом на оплату или идентификатором не найден.
post/operations

Request body

codestring nullable

Код на оплату.

noncestring nullable

Уникальный идентификатор операции (UUID).

tagsTagId[] nullable

Список id тегов компании, назначаемых клиенту при проведении операции. Передача null означает, что существующее значение не будет изменено

Example request

{
  "tags": [
    1
  ]
}

Response

Операция.

idinteger

ID операции в базе UDS .

dateCreatedstring date-time

Дата операции.

action'PURCHASE' required

Тип операции.

state'NORMAL' | 'CANCELED' | 'REVERSAL'

Статус операции.

pointsnumber

Количество бонусных баллов, которое будет списано с клиента после завершения операции. Отрицательное значение говорит о списании, а положительное - о начислении бонусных баллов.

certificatePointsnumber nullable

Количество списываемых баллов сертификата.

receiptNumberstring nullable

Номер чека.

Changes

No recorded changes to this endpoint across all 1 revision of this API.