Lib for UDS API
Project description
This library for API calls to UDS App
All information about UDS App API: https://docs.uds.app/
Data Types
There are special notices regarding data types used by Partner API. Please consider these notices as requirements since not following them may result in lack of functionality, errors or unpredictable behavior.
Numbers and Rounding
All numbers given to API must be rounded off to two decimal places by the round half up method. All responses from the server shall also follow this rule; so every field which is calculated on the server side will have not more than two decimal digits and the number will be rounded off by the “half up” method.
UUID
Partner API uses UUID 4 (or similar) to distinguish each request sent by the application. Clients should set headers X-Origin-Request-Id in requests and log (if possible) X-Request-Id set by the server in order to simplify debugging and to get proper support in case of errors. It should be guaranteed that there will be no duplication in these identifiers at least during a reasonable time period. At least this identifier shall not be reused for further requests.
Standard integration scenario
Customer downloads the UDS app at promo.uds.app.
Customer shows a promo code (6 digits) from the app to a cashier.
Cashier registers this code and information on the customer is displayed (first name, last name, the balance of points).
Cashier enters the number of points to be deducted, 1 point = 1 ruble.
Total bill amount is reduced by the number of deducted points. For example, the amount payable is 100, 30 points to be deducted and 70 rubles are to be paid in total.
When the payment is completed, information on this transaction would be sent to UDS.
A detailed description of called methods.
Requirements API key (token) and company id used for integration with POS system shall not be hardcoded. I.e., when setting up the integration module, it should be possible to register API key and id in some configuration file (config), because they are different for each company.
Warning! If error 401 unauthorized is returned when sending requests, API key or company id are incorrect.
The integration module shall be accompanied by documentation on how to configure this module so that any cash processing specialist can do this.
Описание на русском языке.
В настоящем документе дается описание библиотеки запросов к PARTNER API, предоставляемого UDS для партнеров. PARTNER API предназначен для разработчиков для интеграции UDS в системы.
PARTNER API предоставляет функциональные возможности, которые направлены на выполнение различных программных действий, в том числе:
получение информации о компании, ее настройкам;
получение списка клиентов компании;
получение информации о клиенте по его ID в компании;
получение списка проведенных операций;
получение информации о проведенной операции по ID в компании;
получение списка товаров/ категорий;
получение информации о товаре/ категории по ID в компании;
получение информации о заказе по ID в компании;
поиск информации о клиенте по 6-значному коду из приложения UDS App, номеру телефона, UID;
создание операции;
возврат по операции;
расчет максимального количества списываемых бонусов/ размера скидки для операции;
начисление бонусных баллов;
создание ваучера;
создание товара/ категории;
редактирование товара/ категории;
удаление товара/ категории;
редактирование заказа;
закрытие заказа;
генерирование кода клиента для заказа;
Числа и округление
Все числа должны быть округлены с точностью до двух десятичных знаков до ближайшего числа. Все ответы от сервера также должны следовать этому правилу; поэтому каждое поле, рассчитанное на стороне сервера, будет иметь не более двух десятичных цифр, а число будет округлено до ближайшего числа.
UUID
Partner API использует UUID 4 (или аналогичный) для идентификации каждого запроса, отправленного приложением. Клиенты должны устанавливать заголовки X-Origin-Request-Id в запросах и регистрировать (если возможно)X-Request-Id, установленный сервером, чтобы упростить отладку ошибок и получить надлежащую поддержку в случае ошибок. Должно быть гарантировано, что в этих идентификаторах не будет дублирования, по крайней мере, в течение разумного периода времени. Этот идентификатор не должен использоваться повторно для дальнейших запросов.
Временные отметки и даты
Для любой временной отметки или даты в Partner API используется формат ISO 8601.
Временные отметки используются в:
заголовке X-Timestamp
поле для операции dateCreated
других заголовках или полях, имеющих явное описание типов Date или ISO 8601 Date.
Коды ответов и ошибки
Partner API использует стандартные коды состояния HTTP для индикации успешности запроса. Некоторые ответы также могут содержать поле errorCode, которое содержит подробное объяснение возникшей ошибки. Ожидается, что все запросы, приведшие к состоянию ответа 4xx (ошибка на стороне клиента), не будут повторяться до тех пор, пока не будет найден источник ошибки.
Типовой сценарий интеграции:
Клиент скачивает приложение UDS promo.uds.app
Показывает свой код на оплату (6 цифр) из приложения кассиру.
Кассир вводит данный код в кассу и отображается информация о клиенте (Имя, Фамилия, сколько бонусных баллов накопил).
Кассир вводит сколько бонусов списать, 1 бонусный балл = 1 рубль
Итоговая сумма счета понижается на количество списываемых бонусных баллов. Например, счет 100, списываем 30 бонусных баллов, итого клиент должен оплатить 70 рублей.
После оплаты в UDS отправляется информация о данной оплате.
Если по каким-то причинам чек был проведен без использования UDS, то реализовать печать ваучера для накопления бонусов после покупки.
Требования
API key (токен) и id компании, которые мы используем при интеграции с кассой, не должны жестко прописываться в коде. Т.е. при настройке интеграционного модуля должна быть возможность прописать API key и id в какой-нибудь конфигурационный файл (config), т.к. они для каждой компании свои. Внимание!
Если при отправке запросов возвращается 401 ошибка unauthorized, то API key или id компании введены неверно
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file uds_lib_test-0.1.4.tar.gz
.
File metadata
- Download URL: uds_lib_test-0.1.4.tar.gz
- Upload date:
- Size: 29.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb513cbd0a66e2cc87fc4339da0be9215033a57ea1219b77981e5513cc515c2e |
|
MD5 | 35c97d589766518c3afd6bbb1e985d2a |
|
BLAKE2b-256 | 9dc23af3f35e024ea12d9b8ce8659e3f2ab027d04bf6e9eea7a89081aaea3d4a |