Skip to main content

Tochka API v2 aka Cyclops API

Project description

Tochka API v2 aka Cyclops API Library for Python

PyPI - Python Version PyPI - Version PyPI - Downloads

Ставьте звезды, суки бесполезные! Мне от ваших 100 установок в первый день НИКАКОЙ ПОЛЬЗЫ

Unofficial Python Library for Tochka API

Неофициальная библиотека на Python для работы с АПИ Точка Банка (я его предпочитаю называть дрочка банком). Документация туть.

  • Работает через JSONRPC.
  • Может грузить документы.

Установка:

pip install tochka-cyclops-api

Поддержка asyncio пока не планируется, но за звезду и донат в пару тысяч оперативно добавлю.

В эпоху Docker использовать версии Python, отличные от последних — моветон, поэтому поддержка более старых точно не планируется.

Использование:

from tochka_cyclops_api import ApiTochka, ApiError

api = ApiTochka(
    base_url='<API_URL>',
    sign_system='<SIGN_SYSTEM>',
    sign_thumbprint='<SIGN_THUMBPRINT>',
    pkey_data=open('/path/to/rsaprivkey.pem').read(),
)

# Вызов методов
try:
    """
    Отправит запрос с таким телом:

    {
      "id": "0d6a26ea-84f0-4be2-9999-b46edc9b59b6",
      "jsonrpc": "2.0",
      "method": "identification_payment",
      "params": {
        "payment_id": "cyclops-b9eabfd7-eead-4940-a6b1-4654850664f5",
        "owners":[{
          "virtual_account": "859b645a-ebb8-4f91-8b05-b433c85dc662",
          "amount": 1000
        }]
      }
    }

    * camelCase преобразуется в snake_case: identificationPayment,
      IdentificationPayment и identification_payment равнозначны.
    * Вместо именованных параметров можно передать словарь.
    * Если словарь и именованные параметры передаются вместе, то они мержатся,
      причем именованные параметры перезапишут элементы словаря.

    Результат будет примерно таким:

    {
      "virtual_accounts": [{
        "code": "859b645a-ebb8-4f91-8b05-b433c85dc662",
        "cash": 1000
      }]
    }
    """
    res = api.identificationPayment(payment_id="cyclops-b9eabfd7-eead-4940-a6b1-4654850664f5", owners=[{
        "virtual_account": "859b645a-ebb8-4f91-8b05-b433c85dc662",
        "amount": 1000
    }])

    # Вместо словаря при парсинге объектов используется AttrDict,
    # который позволяет к полям обращаться как к атрибутам, а не только по индексу
    print(rv.virtual_accounts[0])
except ApiError as ex:
    if ex.code == '4411':
        print('Аккаунт не найден')
  ...


rv = api.upload_document(
    'beneficiary',
    open('/path/to/offer.pdf', 'rb'),  # можно передать любой объект, имеющий метод read, например, `requests.get('https://target/path/to/file.pdf')`, но тогда придется указать content_type
    beneficiary_id='...',
    document_type='contract_offer',
    document_date='2023-11-12',
    document_number='12345',
)

print(rv.document_id)  # cyclops-231020230621590-98a669e2-859b-44ac-9831-4a964ac7e49b

Все мыслимые права защищены в натуре (с) 2023.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tochka_cyclops_api-0.2.4.tar.gz (5.1 kB view hashes)

Uploaded Source

Built Distribution

tochka_cyclops_api-0.2.4-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page