Skip to main content

Python client for ModulBank REST API

Project description

https://travis-ci.org/Otetz/modulbank.svg?branch=master Documentation Status https://badge.fury.io/py/modulbank.svg https://coveralls.io/repos/github/Otetz/modulbank/badge.svg?branch=master Code Climate

Python client for ModulBank REST API

Installation

Install modulbank package from PyPI

pip install modulbank

Getting started

Make sure to include this lines in the beginning of your code:

from modulbank.client import ModulbankClient
import modulbank.structs as structs

Set your API Token and choose sandbox mode on or off:

client = ModulbankClient(token=MODULBANK_TOKEN, sandbox_mode=True)

Make queries:

print([str(acc) for acc in client.accounts()])
print(client.balance('58c20343-5d3b-422c-b98b-a5ec037df782'))
print([str(op) for op in client.operations('58c20343-5d3b-422c-b98b-a5ec037df782')])

Or send payment order:

p = structs.PaymentOrder(
    doc_num='994720', account_num='40802810670010011008', amount=Decimal(100.00), purpose='Для теста',
    payer=structs.Contractor(name='Индивидуальный предприниматель Александров Александр Александрович',
                             inn='770400372208', kpp='',
                             bank=structs.BankShort(account='40802810670010011008',
                                                    name='МОСКОВСКИЙ ФИЛИАЛ АО КБ "МОДУЛЬБАНК"',
                                                    bic='044525092', corr_acc='30101810645250000092')),
    recipient=structs.Contractor(name='МОСКОВСКИЙ ФИЛИАЛ АО КБ "МОДУЛЬБАНК"',
                                 inn='2204000595', kpp='771543001',
                                 bank=structs.BankShort(account='30102810675250000092',
                                                        name='МОСКОВСКИЙ ФИЛИАЛ АО КБ "МОДУЛЬБАНК"',
                                                        bic='044525092', corr_acc='30102810675250000092')))
res = client.create_payment_draft(p)
assert len(res.errors) == 0
assert res.total_loaded == 1

Helper class for processing web-hooks

Sample usage of class NotifyRequest:

@app.route('/modulbank', methods=['POST'])
def notify():
  client = ModulbankClient(token=MODULBANK_TOKEN)

  if not request.is_json:
      return make_response(render_template('template.json'), 400)

  nr = structs.NotifyRequest(request.json)

  # Filter only needed company's operations
  if nr.inn != INN or nr.kpp != KPP:
      return make_response(render_template('template.json'), 200)

  # Check signature in `SHA1Hash` field
  if not nr.check_signature(MODULBANK_TOKEN):
      return make_response(render_template('template.json'), 403)

  #
  # Make something with `nr`
  #

  make_response(render_template('template.json'), 200)

TODO

  • OAuth 2 authorization.

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

modulbank-0.0.9.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

modulbank-0.0.9-py2.py3-none-any.whl (17.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file modulbank-0.0.9.tar.gz.

File metadata

  • Download URL: modulbank-0.0.9.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for modulbank-0.0.9.tar.gz
Algorithm Hash digest
SHA256 5d81ecebf8def0ad974f5fab02bc461724b3d4872685dd86cca716918e5ea5a6
MD5 943595ee51943b23fd1cae24bca6e6c8
BLAKE2b-256 2296f5137ce52daa5a958c111157f72ed9dc9bc9f71c7617bfec9fb94ca953af

See more details on using hashes here.

File details

Details for the file modulbank-0.0.9-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for modulbank-0.0.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 98308280e24ef7e0e6707dff1a80419d3237fda2bed638f757c827083c0e5e54
MD5 91c69d92cd181cb6964678248fd35bb4
BLAKE2b-256 5b2f9c03876c188b1c048caffa50102d7cc4fbd4368a60b2aff8d1f74ecbad4a

See more details on using hashes here.

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