Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

autosignly

Python client for the Autosignly API - eIDAS electronic signatures and document workflows.

Not published yet. This package is being built. Install from source for now.

Install

pip install autosignly

Requires Python 3.10 or newer.

Quickstart

from autosignly import AutosignlyClient, Signer

with AutosignlyClient(api_key="api_key_...", api_secret="api_sct_...") as client:
    document_id = client.upload_and_sign(
        pdf=open("contract.pdf", "rb").read(),
        document_name="Consulting agreement",
        signers=[
            Signer(
                first_name="Anna",
                last_name="Nowak",
                email="anna@example.com",
                country="PL",
            )
        ],
    )
    print(document_id)

The key and secret decide which environment you are working in. Every environment, production or sandbox, has its own pair, so pointing a script at the sandbox is a matter of swapping credentials.

The secret must stay on your server. It must never be shipped to a browser or a mobile app.

Reading documents

document = client.get_document(document_id)
print(document.status, [s.email for s in document.signers])

for summary in client.iter_documents(status="SIGNED"):
    print(summary.id, summary.name)

Downloading the file

A document carries a short-lived link to its file. The link expires, so fetch the document again for a fresh one rather than storing it.

document = client.get_document(document_id)
print(document.file_url)

pdf = client.download_document(document_id)
open("signed.pdf", "wb").write(pdf)

A document that is still being signed can be downloaded as well - it then carries only the signatures collected so far.

Tags

tag = client.create_tag("contracts")
client.set_document_tags(document_id, tag_ids=[tag.id], names=["2026"])

Setting tags replaces the whole set: tags left out are removed, and names that do not exist yet are added to the company tag pool.

Verifying webhooks

Autosignly signs every webhook delivery. Check the signature against the raw request body, before parsing it - re-serialising the JSON changes the bytes and the signature will not match.

from autosignly import webhooks

webhooks.verify(request.body, request.headers["X-Webhook-Signature"], webhook_key)

verify raises InvalidSignatureError on a mismatch; webhooks.is_valid(...) returns a boolean instead.

Errors

Every failure raises a subclass of AutosignlyError carrying the HTTP status and the error type returned by the API.

from autosignly import AutosignlyError, NotFoundError

try:
    client.get_document("does-not-exist")
except NotFoundError:
    ...
except AutosignlyError as error:
    print(error.status_code, error.error_type, error.error_id)

Connection problems and server errors are retried automatically, with an exponential backoff and jitter. Client errors are not retried, since repeating a rejected request cannot change its outcome.

Rate limits are retried too, honouring the delay the API asks for. When that delay is longer than a minute the call fails instead of blocking your thread, and RateLimitError.retry_after tells you how long to wait.

The client does not implement a circuit breaker. It runs inside your process, on calls you asked for, so refusing to even attempt one would be surprising - and your own infrastructure is the right place for that policy. Pass your own http_client if you want to add one.

Links

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autosignly-0.1.0.dev0.tar.gz (11.8 kB view details)

Uploaded Source

Built Distribution

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

autosignly-0.1.0.dev0-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file autosignly-0.1.0.dev0.tar.gz.

File metadata

  • Download URL: autosignly-0.1.0.dev0.tar.gz
  • Upload date:
  • Size: 11.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for autosignly-0.1.0.dev0.tar.gz
Algorithm Hash digest
SHA256 52463c543a1483eb46878a4f7921dadda46e6d1a9e11fd2e4047d3d32bdc9d1b
MD5 40202378cb6adbcebd34280024f67ef2
BLAKE2b-256 96ac71a616ae8f256ed107124ee5c01db56b001de173879a4ea13fac2d01f52c

See more details on using hashes here.

Provenance

The following attestation bundles were made for autosignly-0.1.0.dev0.tar.gz:

Publisher: publish-python.yml on 16it-pl/autosignly-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file autosignly-0.1.0.dev0-py3-none-any.whl.

File metadata

  • Download URL: autosignly-0.1.0.dev0-py3-none-any.whl
  • Upload date:
  • Size: 11.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for autosignly-0.1.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd5b8b0b885bf878fab00307bb329d003bd7863028c3fe84570a0650b4832e77
MD5 5d69ea595409f17f647570fb416c58f3
BLAKE2b-256 d2fe4b9d0a048b3d2c258db5eef1d8af64a78ad02f22df44a82eec0b35648d8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for autosignly-0.1.0.dev0-py3-none-any.whl:

Publisher: publish-python.yml on 16it-pl/autosignly-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.0

2 files

This release

0.1.0.dev0 This release

2 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