Предпросмотр платежей


Предпросмотр платежей позволяет расчитать сдачу, отобразить оставшуюся к оплате сумму, сумму кэшбэка, который будет начислен за текущий заказ, а так же проверить возможность оплаты заказа бонусами.

В API предпросмотра можно отправлять список платежей, которые будут учтены при расчёте всех значений.

Отправка запроса

Для предпросмотра платежей необходимо отправить POST-запрос на URL https://api.zenky.io/v2/orders/{orderId}/payments/preview, передав в поле payments список платежей.

{
    "payments": [
        {"method": "cash", "amount": "100000"}
    ]
}

В ответ вы получите структуру следующего формата:

{
    "total": {
        "value": 10399000,
        "short": "103 990",
        "trimmed": "103990",
        "full": "103 990 руб.",
        "currency": {
            "name": "Российский рубль",
            "thousands_separator": " ",
            "decimals_separator": ".",
            "prefix": "",
            "suffix": " руб.",
            "symbol": "₽"
        }
    },
    "unpaid": {
        "value": 399000,
        "short": "3 990",
        "trimmed": "3990",
        "full": "3 990 руб.",
        "currency": {
            "name": "Российский рубль",
            "thousands_separator": " ",
            "decimals_separator": ".",
            "prefix": "",
            "suffix": " руб.",
            "symbol": "₽"
        }
    },
    "change": {
        "value": 0,
        "short": "0",
        "trimmed": "0",
        "full": "0 руб.",
        "currency": {
            "name": "Российский рубль",
            "thousands_separator": " ",
            "decimals_separator": ".",
            "prefix": "",
            "suffix": " руб.",
            "symbol": "₽"
        }
    },
    "cashback": {
        "value": 0,
        "short": "0",
        "trimmed": "0",
        "full": "0 руб.",
        "currency": {
            "name": "Российский рубль",
            "thousands_separator": " ",
            "decimals_separator": ".",
            "prefix": "",
            "suffix": " руб.",
            "symbol": "₽"
        }
    },
    "max_bonuses_payment": {
        "value": 0,
        "short": "0",
        "trimmed": "0",
        "full": "0 руб.",
        "currency": {
            "name": "Российский рубль",
            "thousands_separator": " ",
            "decimals_separator": ".",
            "prefix": "",
            "suffix": " руб.",
            "symbol": "₽"
        }
    },
    "payments": [
        {
            "method": {
                "id": "cash",
                "name": "Наличные"
            },
            "amount": {
                "value": 10000000,
                "short": "100 000",
                "trimmed": "100000",
                "full": "100 000 руб.",
                "currency": {
                    "name": "Российский рубль",
                    "thousands_separator": " ",
                    "decimals_separator": ".",
                    "prefix": "",
                    "suffix": " руб.",
                    "symbol": "₽"
                }
            }
        }
    ]
}

Описание полей

Поля cashback и max_bonuses_payment

Поля cashback и max_bonuses_payment заполняются только для заказов, к которым прикреплён покупатель. Для заказов, у которых ещё нет прикреплённого покупателя, значением этих полей будет 0 руб.

Поле payments и оплата бонусами

Поле payments содержит оригинальный список платежей (отправленный в запросе на предпросмотр), но в нём может отсутствовать оплата бонусами, либо сумма оплаты бонусами может отличаться от изначально запрошенной суммы.

Это связано с тем, что максимальная сумма оплаты бонусами зависит от настроек программы лояльности магазина. Кроме того, это на значение влияет текущий баланс покупателя.

  • Если была запрошена оплата бонусами, но запрошенная сумма превышает максимальную сумму оплаты заказа, значением amount транзакции оплаты бонусами будет являться максимально разрешённая сумма оплаты;
  • Если была запрошена оплата бонусами, но запрошенная сумма превышает баланс покупателя, значением amount транзакции оплаты бонусами будет являться текущий баланс покупателя (либо максимально разрешённая сумма оплаты — выбирается наименьшее значение);
  • Если была запрошена оплата бонусами, но к заказу ещё не прикреплён покупатель, оплата бонусами будет отсутствовать в списке payments.