Python SDK for the Ophelos API
Project description
Ophelos Python SDK
Official Python SDK for the Ophelos API - a comprehensive debt management and customer communication platform.
Installation
From PyPI (when published)
pip install ophelos-sdk
From Local Distribution
# Install from wheel (recommended)
pip install dist/ophelos_sdk-1.0.1-py3-none-any.whl
# Or install from source distribution
pip install dist/ophelos-sdk-1.0.1.tar.gz
# Or install in development mode
pip install -e .
Quick Start
from ophelos_sdk import OphelosClient
# Initialize client with your credentials
client = OphelosClient(
client_id="your_client_id",
client_secret="your_client_secret",
audience="your_audience",
environment="staging" # or "production"
)
# Create a customer
customer = client.customers.create({
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com"
})
# Create a debt
debt = client.debts.create({
"customer_id": customer.id,
"organisation_id": "org_123",
"total_amount": 10000, # Amount in cents
"currency": "GBP",
"reference_code": "DEBT-001"
})
# Prepare the debt for processing
client.debts.ready(debt.id)
📋 For comprehensive usage examples and advanced features, see USAGE.md
Features
- Complete API Coverage: All Ophelos API endpoints supported
- Type Safety: Full type hints and Pydantic models
- Authentication: Automatic OAuth2 token management
- Error Handling: Comprehensive error handling with custom exceptions
- Pagination: Built-in pagination support
- Search: Advanced search functionality
- Webhooks: Webhook event handling and validation
API Resources
Debt Management
- Create, update, and manage debts
- Debt lifecycle operations (ready, pause, resume, withdraw)
- Payment processing and tracking
Customer Management
- Customer CRUD operations
- Search and filtering
- Contact detail management
Payment Management
- Payment creation and tracking
- Payment plan management
- External payment recording
Organisation Management
- Organisation setup and configuration
- Contact detail management
Invoice Management
- Invoice creation and management
- Line item handling
Communication Management
- Communication tracking
- Outbound communication management
Authentication
The Ophelos API uses OAuth2 Client Credentials flow. You'll need:
- Client ID: Your application's client identifier
- Client Secret: Your application's client secret
- Audience: Your API identifier
Contact Ophelos support to obtain these credentials.
# Environment configuration
client = OphelosClient(
client_id="your_client_id",
client_secret="your_client_secret",
audience="your_audience",
environment="production" # "development", "staging", or "production"
)
# For local development (uses http://api.localhost:3000)
client = OphelosClient(
client_id="your_client_id",
client_secret="your_client_secret",
audience="your_audience",
environment="development"
)
Examples
Working with Debts
# List debts with pagination
debts = client.debts.list(limit=10)
# Search debts
results = client.debts.search("status:paying AND updated_at>=2024-01-01")
# Get debt details with expansions
debt = client.debts.get("debt_123", expand=["customer", "payments"])
# Update debt
updated_debt = client.debts.update("debt_123", {
"metadata": {"case_id": "12345"}
})
Working with Customers
# Search customers by email
customers = client.customers.search("email:john@example.com")
# Update customer
customer = client.customers.update("cust_123", {
"preferred_locale": "en-GB",
"metadata": {"updated_reason": "customer request"}
})
Working with Payments
# Create external payment
payment = client.payments.create("debt_123", {
"amount": 5000,
"transaction_at": "2024-01-15T10:00:00Z",
"payment_provider": "bank_transfer"
})
# List payments for a debt
payments = client.debts.payments.list("debt_123")
Error Handling
from ophelos_sdk.exceptions import OphelosAPIError, AuthenticationError
try:
debt = client.debts.get("invalid_debt_id")
except OphelosAPIError as e:
print(f"API Error: {e.message} (Status: {e.status_code})")
except AuthenticationError as e:
print(f"Authentication failed: {e.message}")
Webhook Handling
from ophelos_sdk.webhooks import WebhookHandler
# Initialize webhook handler
webhook_handler = WebhookHandler("your_webhook_secret")
# Validate and parse webhook
try:
event = webhook_handler.verify_and_parse(
payload=request.body,
signature=request.headers.get("Ophelos-Signature")
)
if event.type == "debt.created":
print(f"New debt created: {event.data.id}")
except Exception as e:
print(f"Webhook validation failed: {e}")
API Reference
Client Configuration
OphelosClient(
client_id: str,
client_secret: str,
audience: str,
environment: str = "staging", # "development", "staging", or "production"
timeout: int = 30,
max_retries: int = 3
)
Resource Managers
client.debts- Debt management operationsclient.customers- Customer management operationsclient.organisations- Organisation management operationsclient.payments- Payment management operationsclient.invoices- Invoice management operationsclient.webhooks- Webhook management operations
Development
# Clone the repository
git clone https://github.com/ophelos/ophelos-python-sdk.git
cd ophelos-python-sdk
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run linting
flake8 ophelos_sdk/
mypy ophelos_sdk/
Support
- API Reference: https://api.ophelos.com
- Support Email: support@ophelos.com
- Issues: GitHub Issues
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ophelos_sdk-1.0.1.tar.gz.
File metadata
- Download URL: ophelos_sdk-1.0.1.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bec0955cfdd2f0a49a9b9297e787f98dcb9be22f3ac599a06ed26eaa98bd601
|
|
| MD5 |
6a1acc1399ec3022b2d5744689434841
|
|
| BLAKE2b-256 |
a12a8040cbc3d2dc0c15eea91ef3c967a4eaf136ba0286a9e71af7d8f01a9c50
|
File details
Details for the file ophelos_sdk-1.0.1-py3-none-any.whl.
File metadata
- Download URL: ophelos_sdk-1.0.1-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83181c88d34936458828358e6d81971df5f4c5aa66e68f26eb38c868d070d6ed
|
|
| MD5 |
04981e16ddd918f46dd6050a20bc94ae
|
|
| BLAKE2b-256 |
cc19f47f8cb2643c9dd52438272d6f3f75654029017890b696bafa204bc52c62
|