Skip to main content

A Python client library for the Vhi API, handling authentication, MFA callbacks, claims retrieval, and document downloads.

Project description

Vhi Python Client

A Python client library for interacting dynamically with the Vhi API. Provides automated handling of Session state, Multi-Factor Authentication (MFA) callbacks, Claims Retrieval, and memory-efficient Document Downloads.

Installation

You can install the library directly from source (or via pip once published):

pip install vhi-python

Alternatively, to install it locally for development:

git clone https://github.com/agent/vhi-python.git
cd vhi-python
pip install -e .

Quick Start Example

This example demonstrates how to use the library to log in, handle an MFA callback (simulated via CLI input), retrieve claims, and download a claim PDF.

import os
from vhi.client import VhiClient
from vhi.exceptions import VhiAuthenticationError, VhiApiError

def my_cli_mfa_callback() -> str:
    """
    A simple callback function that pauses execution
    and waits for the user to input the 2FA code sent to their phone/email.
    """
    return input("Vhi 2FA Code Required. Enter OTP: ").strip()

def main():
    # 1. Initialize the client
    # Replace with your actual credentials
    username = os.getenv("VHI_USERNAME", "your_email@example.com")
    password = os.getenv("VHI_PASSWORD", "your_password")
    
    # We pass our callback function so the client can automatically 
    # pause and invoke it if the server demands MFA.
    client = VhiClient(
        username=username, 
        password=password, 
        mfa_callback=my_cli_mfa_callback
    )

    try:
        # 2. Login
        print("Logging in...")
        client.login()
        print("Login successful!")

        # 3. Retrieve Claims
        print("\nRetrieving claims...")
        statements = client.get_claims()
        
        if not statements:
            print("No claim statements found.")
            return

        for claim in statements:
            print(f"- Claim {claim.claim_id} | Date: {claim.date_of_service} | Status: {claim.status}")

        # 4. Download a Document
        # We will download the first available document as an example
        first_claim = statements[0]
        if first_claim.document_id:
            download_path = f"{first_claim.claim_id}.pdf"
            print(f"\nDownloading document {first_claim.document_id} to {download_path}...")
            client.download_document(first_claim.document_id, download_path)
            print("Download complete!")

    except VhiAuthenticationError as e:
        print(f"Authentication failed: {e}")
    except VhiApiError as e:
        print(f"API Error occurred: {e}")

if __name__ == "__main__":
    main()

Error Handling

The library provides structural custom exceptions:

  • VhiAuthenticationError: Raised when login fails due to invalid credentials.
  • VhiMfaRequiredError: Raised when the server requests MFA but you didn't provide a callback, or when the callback returns an invalid OTP.
  • VhiApiError: Raised for any other 4xx or 5xx API errors. Contains standard HTTP status codes for debugging.

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

vhi_python-0.1.4.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

vhi_python-0.1.4-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file vhi_python-0.1.4.tar.gz.

File metadata

  • Download URL: vhi_python-0.1.4.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vhi_python-0.1.4.tar.gz
Algorithm Hash digest
SHA256 de525236de15e5357f8ce3cb2f37bfa172ef90fe22304211da920c7cbf318662
MD5 91c8fdd2c693fd05301daf3d0c8bcac0
BLAKE2b-256 f84e77715ed65abf402740e99f7598f314d28f5a469b6845017b71a49a31be13

See more details on using hashes here.

Provenance

The following attestation bundles were made for vhi_python-0.1.4.tar.gz:

Publisher: publish.yml on Irishsmurf/vhi-python

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

File details

Details for the file vhi_python-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: vhi_python-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vhi_python-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 6ce95afa15925dade71ae451fecc13fa36f447457138abc23e327da9f98d99c0
MD5 de2a4a9e9434c7a572a857a8c88ffc31
BLAKE2b-256 162a553b7124a13efc9df4e17f52ad4b388cece56a28dc1a5bb7fa0c8f71a5af

See more details on using hashes here.

Provenance

The following attestation bundles were made for vhi_python-0.1.4-py3-none-any.whl:

Publisher: publish.yml on Irishsmurf/vhi-python

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

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