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.3.tar.gz (32.9 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.3-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: merit_api-0.5.3.tar.gz
  • Upload date:
  • Size: 32.9 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.3.tar.gz
Algorithm Hash digest
SHA256 53a57624b7d1aacb493c721ce2b95d032ede2cbb51cf2cd3d40a92e7616b0fd2
MD5 952df85748366f6db9dbb56afab7ae77
BLAKE2b-256 9981539f51e3520f184fde9a8696811c1dc1b1d5b91a706dfacaca4678948f89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: merit_api-0.5.3-py3-none-any.whl
  • Upload date:
  • Size: 13.4 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e9d40101c63cfa650d194a7e8142edd35abfd761dd165d164a257d76ab36888b
MD5 da0edec7eb5ebb4ec0f14d175585cfe5
BLAKE2b-256 38c9266ac0df375c60f8ec3ebd5ff58e9e282e8e22f2d8112ada1bfc9d94edc6

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