Skip to main content

silvr-client

A Python client for brokers to send new applications.

See demo.py to see how to use the API.

Install

From PyPI

pip install silvr-client

From source

pip install -e .

Demo

export BROKER_API_KEY="<api-key>"

CLIENT_EMAIL="john.doe@acme.com" \
COMPANY_REGISTRATION_NUMBER="123456789" \
python demo.py

API

List existing applications

import os
import httpx
import json

from silvr_client import SilvrClient, TokenAuth
from silvr_client.models import Application, Document

API_URL = "https://demo.silvr.dev/api/"
BROKER_API_KEY = os.getenv("BROKER_API_KEY")

with SilvrClient(base_url=API_URL, auth=TokenAuth(BROKER_API_KEY)) as client:
    applications_response = client.applications()
    try:
        applications_response.raise_for_status()
    except httpx.HTTPStatusError:
        print(json.dumps(applications_response.json(), indent=2))

    applications = [Application.from_request(a) for a in applications_response.json()]

Create new application

import httpx
import json

from silvr_client import SilvrClient, TokenAuth, choices
from silvr_client.models import Application, Document

COMPANY_REGISTRATION_NUMBER = "123456789"
CLIENT_EMAIL = "john.doe@acme.com"


with SilvrClient(base_url=API_URL, auth=TokenAuth(BROKER_API_KEY)) as client:
    application = Application(
            first_name="John",
            last_name="Doe",
            email=CLIENT_EMAIL,
            phone_number="+33123456789",
            company_name="ACME SAS",
            company_registration_number=COMPANY_REGISTRATION_NUMBER,
            country=choices.Country.FR,
            expected_funding_amount_range=choices.ExpectedFundingAmountRange.BETWEEN_10K_AND_100K,
            declared_monthly_revenue_range=choices.DeclaredRevenueRange.BETWEEN_10K_AND_25K,
            declared_revenue_duration_range=choices.DeclaredRevenueDuration.ABOVE_12_MONTHS,
            additional_message="API demo",
    )
    application_response = application.save(client)
    try:
        application_response.raise_for_status()
    except httpx.HTTPStatusError:
        print(json.dumps(application_response.json(), indent=2))
    else:
        application = Application.from_request(application_response.json())

Upload a new attachment

import httpx
import json

from silvr_client import SilvrClient, TokenAuth, choices
from silvr_client.models import Application, Document


with SilvrClient(base_url=API_URL, auth=TokenAuth(BROKER_API_KEY)) as client:
    application = Application.from_request(applications_response.json())

    # From the application object

    document_response = application.upload_document(
        client,
        choices.UploadedFile("bank_statement.pdf", open("demo.pdf", "rb"), choices.ContentType.PDF),
        choices.DocumentCategory.BANK_STATEMENT
    )
    document_response.raise_for_status()
    Document.from_request(document_response.json())

    # Or from the client

    document_response = client.new_document(
        application_id=application.uuid,
        file=choices.UploadedFile("financial_statement.pdf", open("demo.pdf", "rb"), choices.ContentType.PDF),
        category=choices.DocumentCategory.FINANCIAL_STATEMENT,
    )
    document_response.raise_for_status()
    Document.from_request(document_response.json())

List all documents

import httpx
import json

from silvr_client import SilvrClient, TokenAuth, choices
from silvr_client.models import Application, Document


with SilvrClient(base_url=API_URL, auth=TokenAuth(BROKER_API_KEY)) as client:
    documents_response = client.documents(
        application_id=application.uuid,
    )
    documents_response.raise_for_status()
    documents = [Document.from_request(d) for d in documents_response.json()]

CHANGELOG

This document describes changes between each past release.

0.1.1 (2023-11-13)

  • Add Silvr models dataclasses to help with the integration.
  • Add API documentation in README

0.1.0 (2023-11-13)

  • Allow broker login
  • Allow sending applications

Release files for silvr-client 0.1.1

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

Source distribution (sdist)

Source distribution for silvr-client 0.1.1
File Size Uploaded
silvr-client-0.1.1.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for silvr-client 0.1.1
File Interpreter ABI Platform
silvr_client-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 14.6 kB

Release files / silvr-client-0.1.1.tar.gz

Download URL silvr-client-0.1.1.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
1d629d454e602b743d89bcca74297249d955fe7401863291f6062d429de74151
BLAKE2b-256 checksum
How to use checksums
629b902fc24dfde47335b65ecf9e474fcbf8fa62eaada5b7e00f3ae4ca44bac3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Release files / silvr_client-0.1.1-py3-none-any.whl

Download URL silvr_client-0.1.1-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d1095b2c1ab96e130d178e54de31cc156dabc0fe230a950295aa69791a83c491
BLAKE2b-256 checksum
How to use checksums
f76c46c9e53c5100d63477d4b3a5291655805104b6142eea4627b86751843d53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release 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