3.1.6. Формат заказа Taler#
Формат заказа Taler описывает JSON, который должен быть отправлен в бэкенд продавца для создания заказа. Это прототип, на основе которого бэкенд продавца создаст фактические условия договора.
Существуют различные версии формата заказа; они подробно описаны в Справочном руководстве.
Примечание
Финансовые суммы всегда указываются в виде строки в формате "CURRENCY:DECIMAL_VALUE".
В этом разделе представлен обзор наиболее распространенных полей:
- сумма
Указывает общую сумму, которую клиент должен заплатить продавцу.
- max_fee
Это максимальная общая сумма комиссии депозита, которую готов заплатить продавец. Если комиссия депозита за монеты превышает эту сумму, клиент должен включить её в общую сумму платежа. Комиссия указывается в том же формате, что и для
amount.
- max_wire_fee
Максимальная комиссия за перевод средств, принимаемая продавцом (доля клиента, которая делится на коэффициент
wire_fee_amortization, и далее уменьшается, если комиссия депозита нижеmax_fee). По умолчанию, если отсутствует, равна нулю.
- wire_fee_amortization
За какое количество транзакций клиента продавец рассчитывает в среднем амортизировать комиссию за перевод? Если комиссия обменника за перевод средств превышает
max_wire_fee, разница делится на это число, чтобы вычислить ожидаемый вклад клиента в комиссию за перевод средств. В дальнейшем вклад клиента может быть уменьшен на разницу междуmax_feeи суммой фактических комиссий по вкладам. Необязательно, значение по умолчанию, если отсутствует, равно 1. Нулевые и отрицательные значения недействительны и также интерпретируются как 1.
- pay_url
URL, принимающий платежи. Это URL, на котором кошелек будет размещать монеты.
- fulfillment_url
На какой URL-адрес должен перейти кошелек, чтобы получить исполнение, например, HTML или PDF-файл купленной статьи, или систему отслеживания заказов на поставку, или простую человекочитаемую веб-страницу, указывающую на статус договора.
- order_id
Буквенно-цифровой идентификатор, свободно определяемый продавцом. Используется продавцом для уникальной идентификации транзакции.
- резюме
Краткое, читаемое человеком резюме договора. Используется при отображении договора в одной строке, например, в истории операций клиента.
- метка времени
Время, в которое было сгенерировано предложение.
- pay_deadline
Временная метка времени, к которому продавец хочет, чтобы обменник окончательно перевёл деньги, причитающиеся по этому договору. По истечении этого срока обменник объединит все депозиты, по которым истёк срок
refund_deadline, и выполнит по ним один крупный банковский перевод. Суммы будут округляться до единицы банковского перевода; если общая сумма всё ещё меньше единицы банковского перевода, она не будет выплачена.
- refund_deadline
Временная метка, до которой продавец готов (и может) произвести возврат средств по договору с помощью Taler. Обратите внимание, что обменник Taler будет держать платеж в эскроу как минимум до этого срока. До этого времени продавец сможет подписать сообщение, чтобы инициировать возврат средств клиенту. По истечении этого времени возврат средств клиенту будет невозможен. Должно быть меньше, чем
pay_deadline.
- продукция
Массив товаров, которые продаются клиенту. Каждая запись содержит кортеж со следующими значениями:
- описание
Описание товара.
- количество
Количество отправляемых предметов. Можно указать единицу измерения (например,
1 kg) или просто количество.- цена
Цена за
quantityединиц данного товара, поставляемого в указанноеdelivery_location. Обратите внимание, что обычно сумма всех цен должна равняться общей сумме договора, но она может отличаться из-за скидок или недоступности отдельных цен.- идентификатор товара
Уникальный идентификатор товара в каталоге продавца. Может быть выбран произвольно, так как имеет значение только для продавца, но должен быть числом в диапазоне .
- налоги
Карта применимых налогов, которые должен уплатить продавец. Метка - это название налога, например НДС, налог с продаж или подоходный налог, а значение - сумма применимого налога. Обратите внимание, что допускаются произвольные обозначения, если они используются для идентификации применимого налогового режима. Детали могут быть указаны регулирующим органом. Эта информация используется для того, чтобы сообщить клиенту, какие налоги продавец намерен заплатить, и может быть использована клиентом в качестве квитанции. Эта информация также может быть использована при проведении налоговых проверок продавца.
- дата доставки
Время, к которому товар должен быть доставлен в
delivery_location.- место_доставки
Это должно дать метку в карте
locations, указывающую, куда будет доставлен предмет.
Значения могут быть опущены, если они неприменимы. Например, если покупка касается пакета товаров, у которых нет индивидуальных цен или идентификаторов товаров,
product_idилиpriceмогут не указываться в договоре. Аналогично, для виртуальных товаров, доставляемых напрямую через URI выполнения, не указываетсяdelivery_location.- продавец
- адрес
Это должно дать метку на карте
locations, указывающую, где находится продавец.- имя
Это должно быть человекочитаемое название предприятия продавца.
- юрисдикция
Это должно привести к появлению метки в карте
locations, указывающей юрисдикцию, под которой будет рассматриваться этот договор.
- места
Ассоциативная карта мест, используемых в договоре. Метки для местоположений в этой карте можно выбирать произвольно и использовать всякий раз, когда местоположение требуется в других частях договора. Таким образом, если одно и то же место требуется много раз (например, рабочий адрес клиента или продавца), его нужно указать (и передать) только один раз, а в остальных случаях на него можно ссылаться через метку. Неполный список атрибутов местоположения выглядит следующим образом:
- имя
Имя получателя для доставки, либо имя компании, либо имя человека.
- страна
Название страны доставки, указанное на почтовом пакете, например, «Франция».
- штат
Название штата, в который осуществляется доставка, как указано на почтовом пакете, например, «NY».
- регион
Название региона доставки, указанное на почтовом отправлении.
- провинция
Название провинции, в которую осуществляется доставка, как указано на почтовом пакете.
- город
Название города для доставки, как указано на почтовом пакете.
- почтовый индекс
Почтовый индекс доставки, указанный на почтовой посылке.
- улица
Название улицы для доставки, как на почтовом пакете.
- номер_улицы
Номер улицы (номер дома) для доставки, указанный на почтовом пакете.
Примечание
Локации не обязаны указывать все эти поля, также допускается наличие дополнительных полей. Рендеры договоров должны отображать как минимум перечисленные выше поля, а поля, которые они не понимают, должны отображать в виде списка ключей-значений.