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 not retried, because Merit does not deduplicate a POST that timed out after the server already committed it, so a replay would create a duplicate. Such writes are retried only when an Idempotency-Key is supplied.
  • 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.2.tar.gz (32.6 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.2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: merit_api-0.5.2.tar.gz
  • Upload date:
  • Size: 32.6 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.2.tar.gz
Algorithm Hash digest
SHA256 1e1ff68fb1946efe3b2f8e0550c5860153df287b908272814f11560b730d5a39
MD5 94fbd03199d0f38b6f6a9b0d1af87a81
BLAKE2b-256 6a4f4bbc0c47fd90b4fd4cc826d936053b10cbc3a2d9a570eaed2db42a87f32a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: merit_api-0.5.2-py3-none-any.whl
  • Upload date:
  • Size: 13.3 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e11200e9f7c857e560c1b1e2756a9757f746f82a7f1926b6706d28a171fb8dd5
MD5 97506a307d70cdd2a6d4ba099d070af3
BLAKE2b-256 b5276ad9781d2e5ba47b32d1b6be7602e5e65b5e3991af4b486a5e52b01876cd

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