Skip to main content

Identisure Python Client

PyPI Downloads Documentation MIT license

API client for the Identisure REST API. Supports both synchronous and async usage via httpx and Pydantic models.

Documentation: identisure.github.io/api-client-py

Requirements

Python 3.10 or later.

Supported providers

  • BankID SE: auth, sign, phone auth and sign, QR verify, age verification
  • BankID NO: auth, backchannel auth, sign, age verification
  • Freja eID: auth, backchannel auth, sign, backchannel sign, age verification
  • MitID: auth, backchannel auth, sign, age verification
  • FTN (Finnish Trust Network): auth, age verification
  • Vipps MobilePay: auth, backchannel auth
  • Documents: upload and download documents for signing

Installation

pip install identisure-client

Usage

Synchronous

from identisure_client import IdentisureClientBuilder, BankIdSeAuthRequest, PollOptions

with IdentisureClientBuilder("client_id", "client_secret").environment("staging").build() as client:
    session = client.bankid_se().auth(BankIdSeAuthRequest())
    result = client.bankid_se().wait_for_auth(session.id, PollOptions())

print(result)

Async

import asyncio
from identisure_client import IdentisureClientBuilder, BankIdSeAuthRequest, PollOptions


async def main():
    async with (
        IdentisureClientBuilder("client_id", "client_secret")
        .environment("staging")
        .build_async() as client
    ):
        session = await client.bankid_se().auth(BankIdSeAuthRequest())
        result = await client.bankid_se().wait_for_auth(session.id, PollOptions())

    print(result)


asyncio.run(main())

Verifying callbacks

Pass the raw request body exactly as received, before parsing it.

from identisure_client import verify_callback_signature

valid = verify_callback_signature(raw_body, headers["X-Signature-SHA256"], hmac_secret)

Development

Prerequisites

Clone

The test fixtures live in a git submodule, so clone with --recurse-submodules (or run git submodule update --init in an existing clone).

git clone --recurse-submodules https://github.com/identisure/api-client-py.git

Install dependencies

uv sync --extra dev

Build, test and lint

just build
just test
just check

Release

Set the version in pyproject.toml and identisure_client/_client.py and commit. Then push a tag:

git tag v0.1.0
git push origin v0.1.0

The release workflow checks that the tag matches the version, runs CI, publishes to PyPI and creates a GitHub release.

Other languages

C#, Dart, Go, TypeScript/JavaScript, Java/Kotlin, PHP, Ruby, Rust, Swift

Metadata

Release files for identisure-client 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for identisure-client 0.1.0
File Size Uploaded Provenance Actions
identisure_client-0.1.0.tar.gz 10.3 kB Without provenance Details for identisure_client-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for identisure-client 0.1.0
File Interpreter ABI Platform Actions
identisure_client-0.1.0-py3-none-any.whl Python 3 none any Details for identisure_client-0.1.0-py3-none-any.whl

Total release size: 31.7 kB

Release files / identisure_client-0.1.0.tar.gz

Download URL identisure_client-0.1.0.tar.gz
Size 10.3 kB
Tags Source
SHA-256 checksum
How to use checksums
12538717f065b7676f4af6d1c7c70a512d81c8e9c255e8b6b9b765a039c4f2ab
BLAKE2b-256 checksum
How to use checksums
fc11a7acd851aad91ed4bfde52eb8fe90353d7604d918d9a8886873c7f814083
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / identisure_client-0.1.0-py3-none-any.whl

Download URL identisure_client-0.1.0-py3-none-any.whl
Size 21.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f593debbc249765397d84d94a0b5e17fdfcc22957a6d402c77ec2e877ce9a79
BLAKE2b-256 checksum
How to use checksums
13d5d96ee1a5472bd3a8d341e9efff28fa1d5f973f1d528107eb0873066233c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for identisure-client 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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