vater’s docs

Introduction

https://travis-ci.org/myslak71/vater.svg?branch=develop https://coveralls.io/repos/github/myslak71/vater/badge.svg?branch=master PyPI Documentation Status PyPI - Python Version

vater is python client providing convenient way to access polish VAT payers register API. Currently supported API version is 1.3.0.

Information about API may be found here: https://www.gov.pl/web/kas/api-wykazu-podatnikow-vat

Installation

Basic usage

pip install vater

or

pip install git+https://github.com/myslak71/vater.git

Development

pip install vater[dev]

Usage

Scripts

>>> import vater
>>> client = vater.Client(base_url='https://wl-api.mf.gov.pl')
>>> client.search_nip(nip='1111111111')
(
  Subject(
    name='Beastie Boys',
    nip='1111111111',
    status_vat='Czynny',
    regon='111111111',
    pesel=None,
    krs='1111111111',
    residence_address=None,
    working_address='Brooklyn',
    representatives=[],
    authorized_clerks=[],
    partners=[
      Company(
        company_name='Mike D',
        first_name='Michael',
        last_name='Diamond',
        nip=None,
        pesel=None
      )
    ],
    registration_legal_date=datetime.date(2001, 1, 1),
    registration_denial_basis=None,
    registration_denial_date=None,
    restoration_basis=None,
    restoration_date=None,
    removal_basis=None,
    removal_date=None,
    account_numbers=['11111111111111111111111111'],
    has_virtual_accounts=False
  ),
  'z5x71-85a8gl5'
)

If you want to get raw server json just set raw to True:

>>> client.search_nip(nip='1111111111', raw=True)
{
  'result': {
    'subject': {
        'name': 'Eminem',
        'nip': '6969696969',
        'statusVat': 'Active',
        'regon': '777777777',
        'pesel': '77777777777',
        'krs': '6969696969',
        'residenceAddress': '8 mile',
        'workingAddress': '8 mile',
        'representatives': [
            {
              'companyName': 'Moby Dick Inc',
              'firstName': 'sir Richard',
              'lastName': 'Lion Heart',
              'nip': '6969696969',
              'pesel': '77777777777'
            }
        ],
        'authorizedClerks': [],
        'partners': [],
        'registrationLegalDate': '2001-01-01',
        'registrationDenialBasis': 'Denial Basis',
        'registrationDenialDate': '2002-02-02',
        'restorationBasis': 'Restoration Basis',
        'restorationDate': '2003-03-03',
        'removalBasis': 'Removal Basis',
        'removalDate': '2004-04-04',
        'accountNumbers': ['11111111111111111111111111'],
        'hasVirtualAccounts': False
  },
  'requestId': 'aa111-aa111aaa',
  }
}

By default the data is fetched from today’s date, it can be changed by setting date argument:

>>> import datetime
>>> client.search_nip(nip='1111111111', date=datetime.date(2001, 1, 1))

String may also be passed as a date:

>>> client.search_nip(nip='1111111111', date='2001-01-01')

Keep in mind the API limits maximum number of requested subjects to 30.

CLI

Commands

command

vater search-nip [ACCOUNT]

vater search-nip [ACCOUNTS]

vater search-nip [NIP]

vater search-nips [NIPS]

vater search-nips [REGON]

vater search-nips [REGONS]

vater check-nip [NIP] [ACCOUNT]

vater check-regon [REGON] [ACCOUNT]

Parameters

parameter

default

description

--date

today

date in YYYY-MM-DD format

--url

https://wl-api.mf.gov.pl

vat register API url

Client

Vat register client module.

class vater.client.Client(base_url)

Bases: object

Vat register client class.

Currently the API limits maximum number of requested subjects to 30, therefore if that number is exceeded MaximumParameterNumberExceeded is raised.

Set root API url.

Parameters

base_url (str) – root url of the API

check_nip(nip, account, *, date=None, raw=False)

Check if given account is assigned to the subject with given nip.

Parameters
  • nip (str) – nip number of the subject to check

  • account (str) – account number of the subject to check

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[bool, str]

check_regon(regon, account, *, date=None, raw=False)

Check if given account is assigned to the subject with given regon.

Parameters
  • regon (str) – regon number of the subject to check

  • account (str) – account number of the subject to check

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[bool, str]

search_account(account, *, date=None, raw=False)

Get detailed vat payer information for given bank account.

Parameters
  • account (str) – account number of the subject to fetch

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[List[Subject], str]

search_accounts(accounts, *, date=None, raw=False)

Get a list of detailed vat payers information.

Parameters
  • accounts (Iterable[str]) – account numbers of the subjects to fetch

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[List[Subject], str]

search_nip(nip, *, date=None, raw=False)

Get detailed vat payer information for given nip.

Parameters
  • nip (str) – nip number of the subject to fetch

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[Optional[Subject], str]

Returns

subject and request id

search_nips(nips, *, date=None, raw=False)

Get a list of detailed vat payers information.

Parameters
  • nips (Iterable[str]) – nip numbers of the subjects to fetch

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[List[Subject], str]

search_regon(regon, *, date=None, raw=False)

Get detailed vat payer information for given regon.

Parameters
  • regon (str) – regon number of the subject to fetch

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[Optional[Subject], str]

search_regons(regons, *, date=None, raw=False)

Get a list of detailed vat payers information.

Parameters
  • regons (Iterable[str]) – regon numbers of the subjects to fetch

  • date (Optional[date]) – date data is acquired from

  • raw (bool) – flag indicating if raw json from the server is returned or python object representation

Return type

Tuple[List[Subject], str]

Models

Schemas and models module.

class vater.models.Company(company_name, first_name, last_name, nip, pesel)

Bases: object

Class representing company in vat payers register.

class vater.models.CompanySchema(*, only=None, exclude=(), many=False, context=None, load_only=(), dump_only=(), partial=False, unknown=None)

Bases: marshmallow.schema.Schema

Schema for company entity.

make_company(data, **kwargs)

Create a company instance.

Return type

Company

opts = <marshmallow.schema.SchemaOpts object>
class vater.models.Subject(name, nip, status_vat, regon, pesel, krs, residence_address, working_address, representatives, authorized_clerks, partners, registration_legal_date, registration_denial_basis, registration_denial_date, restoration_basis, restoration_date, removal_basis, removal_date, account_numbers, has_virtual_accounts)

Bases: object

Class representing subject in vat payers register.

class vater.models.SubjectSchema(*, only=None, exclude=(), many=False, context=None, load_only=(), dump_only=(), partial=False, unknown=None)

Bases: marshmallow.schema.Schema

Schema for subject entity.

make_subject(data, **kwargs)

Create a subject instance.

Return type

Subject

opts = <marshmallow.schema.SchemaOpts object>

Indices and tables