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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| silvr-client-0.1.1.tar.gz | 7.8 kB | Without provenance | Details for silvr-client-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| silvr_client-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for silvr_client-0.1.1-py3-none-any.whl |
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
|
Security for silvr-client 0.1.1
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.