Skip to main content

pydmvl

PyPI version CI

Unofficial Python client for the "Domovladelets+" ("Домовладелец+", homeowner) account API. It implements the protocol used by the app (Google Play): it authenticates with an account login and password and exposes the account snapshot the service returns for its home screen: account aggregates, per-period charges (documents), receipt links, and payment history.

Неофициальный Python-клиент API лицевого счёта приложения «Домовладелец+». Реализует протокол этого приложения (Google Play): аутентифицируется по логину и паролю лицевого счёта и предоставляет снимок счёта, который сервис возвращает для главного экрана: агрегаты по счёту, начисления за период (документы), ссылки на квитанции и историю платежей.

Disclaimer. This project is unofficial and is not affiliated with, endorsed by, or sponsored by the "Domovladelets+" application or its operators. It is built for interoperability with your own account. Use it at your own risk; only access accounts you are authorized to access.

Отказ от ответственности. Проект неофициальный и не связан с приложением «Домовладелец+» или его операторами, не одобрен и не спонсируется ими. Он создан для взаимодействия с вашим собственным лицевым счётом. Используйте его на свой риск; получайте доступ только к тем счетам, на которые у вас есть разрешение.

Install

pip install pydmvl

Usage

from pydmvl import DmvlClient

with DmvlClient() as client:
    session = client.login("user", "secret")
    print(session.personal_account.debt_current)
    print(session.has_unpaid_documents, session.last_payment)

TLS verification (disabled by default)

The service presents an incomplete certificate chain (it does not serve the intermediate CA), so standard verification fails against the real endpoint with certificate verify failed: unable to get local issuer certificate. The official client disables verification for this reason, and pydmvl matches that observed behavior: verify defaults to False.

This is a deliberate, documented default, not a silent downgrade. Whenever you can, turn verification back on — pass a CA bundle that includes the missing intermediate, or verify=True if your trust store already chains the certificate:

DmvlClient(verify="/path/to/ca-bundle.pem")

Consumers that expose TLS settings to end users should present this as an explicit opt-in control. See spec 0004 R8.

Status

Authentication, the account snapshot, documents (charges, receipts, unpaid detection), payment history, account metadata, and meter counters (read-only) are implemented (specs 0001–0007); 0.x — the API may still change. See specs/ for the specifications and their status.

Capabilities:

  • Login with login + hash (MD5 of the password); stateless session, no bearer token — spec 0001
  • Account snapshot with debt/charge/payment aggregates — spec 0002
  • Per-period charges and receipt links — spec 0002
  • Payment history and the latest payment — spec 0003
  • Account metadata (organization, address, contacts, settings, counts) — spec 0007
  • Meter counters and their readings (read-only; submit/delete out of scope) — spec 0006
  • Public sync + async client API — spec 0004
  • Configurable TLS verification (default off; see below) — spec 0004 R8

Known API surface

The service exposes a single PHP action router. The catalogue of known actions is spec 0005; only the read-only subset needed for the account snapshot is implemented here — writing actions (submitting meter readings, creating payments, opening doors, sending messages, and similar) are out of scope.

Requirements

  • Python >= 3.11
  • httpx >= 0.27

Development

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/ruff check .
.venv/bin/ruff format --check .
.venv/bin/mypy
.venv/bin/pytest -m "not live"

Live tests against the real API stay behind the live marker and are run manually only, with credentials from the environment (DMVL_USERNAME, DMVL_PASSWORD). Account credentials are sent as request query parameters, so do not enable request-URL logging while a live client is in use.

License

MIT

Metadata

Release files for pydmvl 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydmvl 0.4.1
File Size Uploaded
pydmvl-0.4.1.tar.gz 34.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydmvl 0.4.1
File Interpreter ABI Platform
pydmvl-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 49.9 kB

Release files / pydmvl-0.4.1.tar.gz

Download URL pydmvl-0.4.1.tar.gz
Size 34.4 kB
Tags Source
SHA-256 checksum
How to use checksums
75fa9c70337bfef6797a1983361121f77abe2893b558576f166b7ffcc89b5c5c
BLAKE2b-256 checksum
How to use checksums
8ba5171cbe357cffcc1a0c056aec81110c6b7169fb3b4e06b5493e1713ffff6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release files / pydmvl-0.4.1-py3-none-any.whl

Download URL pydmvl-0.4.1-py3-none-any.whl
Size 15.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
655ce37f88ea0ab238a108b9bf2ed7db234659bc5889bb215a8ea39ad9db73cb
BLAKE2b-256 checksum
How to use checksums
27df435eccdd44489307947a71485a2efd97f0eb5ce8d34e28356ab0c42cff2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 3, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.0

2 release files

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page