Skip to main content

A library to check for existing obligations to KAT Bulgaria

Project description

Summary

PyPI Link Last release PyPI License PyPI Downloads Code size

This is a python library to check for obligations to KAT Bulgaria programatically.

It does NOT save or log your data anywhere and it works with a single HTTPS request.

Installation

pip install kat_bulgaria

Example:

import asyncio
from dataclasses import asdict
from kat_bulgaria.obligations import (
    KatError,
    KatApi,
)

EGN = "0011223344"
LICENSE_NUMBER = "123456789"


def example_code():
    """Example Code"""

    api = KatApi()

    try:
        # Validates EGN and Driver License Number locally and with the API
        verify = asyncio.run(api.async_verify_credentials(EGN, LICENSE_NUMBER))
        print(f"IsValid: {verify.data}")
        print(f"{verify}\n")

        # Checks if a person has obligations, returns true or false
        has_obligations = asyncio.run(api.async_check_obligations(EGN, LICENSE_NUMBER))
        print(f"HasObligations: {has_obligations.data}")
        print(f"{has_obligations}\n")

        # Returns an object with additinal data (if any)
        obligations = asyncio.run(api.async_get_obligations(EGN, LICENSE_NUMBER))
        print(f"ObligationDetails: {obligations.data}")
        print(f"{obligations}")

    except KatError as err:
        # Malformed response.
        # If you get this probably KAT updated their website.
        # Open an issue or contact me for fix.
        print(f"Error: {str(err)}")
        return


example_code()

Known raw API responses (debug info):

# No fines/obligations:
{"obligations":[],"hasNonHandedSlip":false}

# One or more fines/obligations, which have not been served
{"obligations":[],"hasNonHandedSlip":true}

# One or more fines/obligations, which *have* been served
{
    "obligations": [
        {
            "status": 0,
            "amount": 100,
            "discountAmount": 80,
            "bic": "UBBSBGSF",
            "iban": "BG22UBBS88883122944101",
            "paymentReason": "НП 22-1085-002609 14.10.2022",
            "pepCin": "",
            "expirationDate": "2023-04-06T23:59:59",
            "obligedPersonName": "ИМЕ ПРЕЗИМЕ ФАМИЛИЯ",
            "obligedPersonIdent": "1234567890",
            "obligedPersonIdentType": 1,
            "obligationDate": "2023-04-06T00:00:00",
            "obligationIdentifier": "PENAL_DECREE||22-1085-002609|100",
            "type": 2,
            "serviceID": 349,
            "additionalData": {
                "isServed": "True",
                "discount": "20",
                "isMainDocument": "False",
                "documentType": "PENAL_DECREE",
                "documentSeries": null,
                "documentNumber": "22-1085-002609",
                "amount": "100",
                "fishCreateDate": "2022-10-14"
            }
        }
    ],
    "hasNonHandedSlip": false
}

# Invalid EGN or Driver License Number:
{"code":"GL_00038_E","message":"Няма данни за посоченото СУМПС/ЕГН или не се намира съответствие за издадено СУМПС на лице с посочения ЕГН/ЛНЧ"}

# The service is down, that happens a couple of times a day:
{"code":"GL_UNDELIVERED_AND_UNPAID_DEBTS_E","message":"По технически причини към момента не може да бъде извършена справка за невръчени и неплатени НП и/или електронни фишове по Закона за движението по пътищата и/или по Кодекса за застраховането."}

# Timeout:
# From time to time the API hangs and it takes more than 10s to load.
# You can retry immediately, you can wait a couple of minutes
# Господине, не виждате ли че сме в обедна почивка???
# At this point it's out of your hands

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

kat_bulgaria-0.6.2.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

kat_bulgaria-0.6.2-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file kat_bulgaria-0.6.2.tar.gz.

File metadata

  • Download URL: kat_bulgaria-0.6.2.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for kat_bulgaria-0.6.2.tar.gz
Algorithm Hash digest
SHA256 85b3764dbdf9e2a444452ef26b41c592fccb843a4623e359bf80e3870cc2fc64
MD5 ee738e28c12628d7517c556b222d4c6e
BLAKE2b-256 e8f4a8195b0d24d3755ae3d099bed7cfe390ce05dc85b80f626232d1329a53e8

See more details on using hashes here.

File details

Details for the file kat_bulgaria-0.6.2-py3-none-any.whl.

File metadata

File hashes

Hashes for kat_bulgaria-0.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f0fa345469dc528f532f06b6622600d409f7a78b10a8f7a5c83367d9e6210cf6
MD5 11029872e0c5925b3c7fa0622baf1ce6
BLAKE2b-256 b80c4af6b5ded8b860e7ee56246eeb3c0bb5c268bd334a691f93a84c7252e1b1

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