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.0.tar.gz (30.7 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.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: merit_api-0.5.0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for merit_api-0.5.0.tar.gz
Algorithm Hash digest
SHA256 90d141bdc5cedb57fced192f95eacfe0d64e336256ab2cf2d14b106575f20473
MD5 0257a9251be7726922816c477c5a0613
BLAKE2b-256 1f84e4a0d4a4387eeb1db740f2b4092fac74538e4ea1f3b75904c9ae7d2b5db4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: merit_api-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for merit_api-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e785a9c431a4c7141d63589f8557c37d95954d963865b47a1dfecd6c93069bb
MD5 b5fd41324d32ad6f835efe9bec89bbe4
BLAKE2b-256 a82fa5a48e653351747bcf7c29747b141b64b074fed968d7292d34d637552d49

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