Skip to main content

Python client for Merit Aktiva API

Project description

merit-api

Python SDK for the Merit Aktiva API.

Installation

pip install merit-api

Usage

from merit_api import MeritAPI

client = MeritAPI(api_id="YOUR_API_ID", api_key="YOUR_API_KEY")

customers = client.customers.get_list()
invoices = client.sales.get_invoices(
    PeriodStart="2024-01-01",
    PeriodEnd="2024-01-31",
)

Features

  • deterministic request-body serialization for signing
  • configurable timeout and retry handling — retries apply only to idempotent requests; mutating writes (create invoice, create payment, …) are never retried automatically, because Merit does not deduplicate a POST that timed out after the server already committed it, so a replay would create a duplicate. This holds even when an Idempotency-Key is supplied, since Merit does not honor the header.
  • request and response logging hooks with secret redaction
  • optional idempotency header generation. Note: Merit's API does not deduplicate on this header, so it is not a duplicate-prevention guarantee — it only prepares for servers that honor it. Real protection comes from the duplicate guards below.
  • duplicate-write guards for purchase invoices and payments: by default purchases.send_invoice refuses a second invoice with the same vendor + BillNo, and financial.create_payment refuses a second payment referencing the same BillNo and amount. Pass allow_duplicate=True to override.
  • API-level business error parsing from HTTP 200 responses

Testing and method coverage report

Run tests:

pytest -q

Regenerate the method-level read/write coverage report:

python scripts_report_method_test_coverage.py

The report is written to reports/method_test_coverage.md and CI checks that this file stays up to date.

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

merit_api-0.5.5.tar.gz (33.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

merit_api-0.5.5-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file merit_api-0.5.5.tar.gz.

File metadata

  • Download URL: merit_api-0.5.5.tar.gz
  • Upload date:
  • Size: 33.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for merit_api-0.5.5.tar.gz
Algorithm Hash digest
SHA256 38f9c726de2988ca3770886f556ae30ef03433becfcacf8c7feff196de48ca8b
MD5 a5ae5e395debc6b42ad5d220dd9e0da4
BLAKE2b-256 a585479d60ea4e5bd75de04ee1fce1951ba277dca0e12a2aae699a27cba9bb8b

See more details on using hashes here.

File details

Details for the file merit_api-0.5.5-py3-none-any.whl.

File metadata

  • Download URL: merit_api-0.5.5-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for merit_api-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 da6c50131b352ad7d1ecc3bff729a5e590bfd37fa78d695bb3f8264fffc4cac6
MD5 6cd84985210bb2d249b2968be8341d63
BLAKE2b-256 fbf8292d84b897a426fd5721069fada548051493356a26c75af6e13707cf07a6

See more details on using hashes here.

Supported by

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