Fidloy Python SDK
Official Python SDK for the Fidloy API.
Install
pip install fidloy-sdk
Quick Start
from fidloy import Fidloy
client = Fidloy(api_key="YOUR_API_KEY")
transactions = client.list_transactions(business_id=2)
for txn in transactions:
print("ID:", txn.get("id"), "Amount:", txn.get("amount"))
client.close()
base_url is optional and already defaults to the production API.
Simplest 2 Examples
Example 1: Show transactions
from fidloy import Fidloy
client = Fidloy(api_key="YOUR_API_KEY")
for txn in client.list_transactions(business_id=2):
print(txn.get("id"), txn.get("amount"))
client.close()
Example 2: Show customers
from fidloy import Fidloy
client = Fidloy(api_key="YOUR_API_KEY")
for customer in client.list_customers(business_id=2):
print(customer.get("id"), customer.get("first_name"), customer.get("phone"))
client.close()
Example 3: Get point balance
from fidloy import Fidloy
client = Fidloy(api_key="YOUR_API_KEY")
balance = client.get_points_balance(business_id=2, customer_id=30)
print(f"Balance: {balance.get('points_balance')} points")
client.close()
Example 4: Validate coupon
from fidloy import Fidloy
client = Fidloy(api_key="YOUR_API_KEY")
result = client.validate_coupon(
business_id=2,
code="SUMMER20",
amount=10000,
customer_id=30,
phone="+250788000000",
email="customer@example.com"
)
if result.get("valid"):
print(f"Coupon valid! Discount: {result.get('discount_amount')}")
else:
print(f"Invalid coupon: {result.get('error')}")
client.close()
Retention engine (API v1)
Use with a business API key. business_id is optional when the key is scoped to one merchant.
from fidloy import Fidloy
client = Fidloy(api_key="YOUR_API_KEY")
# Identity + external ID mapping
client.customers.upsert(
external_customer_id="cus_123",
first_name="Alex",
last_name="Dev",
email="alex@example.com",
)
# Activity signals (idempotent via external_event_id)
client.events.track(
external_customer_id="cus_123",
event_type="subscription_renewed",
external_event_id="evt_unique_1",
occurred_at="2026-09-30T12:00:00Z",
amount=49.0,
properties={"plan": "pro"},
)
# Purchases (external customer id)
client.transactions.create_v1(
external_customer_id="cus_123",
amount=12000,
transaction_date="2026-09-30T12:00:00Z",
store_name="Online",
)
# Feedback
client.feedback.submit(
external_customer_id="cus_123",
rating=4,
comment="Great service",
)
# Retention snapshot
snap = client.customers.retention("cus_123")
print(snap.get("state"), snap.get("score"), snap.get("reasons"))
# Retention rules (tenant automation config)
rules = client.retention_rules.list()
client.retention_rules.create(
name="At risk SMS",
trigger_kind="customer_state",
trigger_config={"state": "AT_RISK"},
action_kind="send_sms",
action_config={"message": "We miss you!"},
)
client.close()
Also Available (Direct Client)
from fidloy_sdk import FidloyClient
client = FidloyClient(api_key="YOUR_API_KEY")
customer = client.create_customer(
first_name="Alex",
last_name="Bwana",
business_id=2,
phone="+250788000000",
)
print(customer)
client.close()
Main Features
- API-key authenticated requests
- Very simple
Fidloyfacade for beginners - Customer-in-business reward history helper methods
- Customer and transaction creation helpers
- Points and coupon redemption helpers
- Point balance checking and point rules listing
- Coupon validation and code checking
- Receipt and webhook creation helpers
- Typed, predictable exceptions
- Configurable timeout and headers
Core Methods
get_rewards_historyget_customer_rewards_historycreate_customercreate_transactioncreate_receiptcreate_webhookredeem_pointsredeem_couponget_points_balancelist_point_ruleslist_point_rules_categorizedvalidate_coupon
Publish to PyPI
Recommended: Trusted Publishing (GitHub Actions)
Follow PYPI_RELEASE_CHECKLIST.md to configure PyPI Trusted Publisher.
Then publish by creating a GitHub Release for your version tag.
Manual upload (fallback)
python -m pip install --upgrade build twine
python -m build
python -m twine upload dist/*
Use a PyPI token when uploading.
Metadata
Release files for fidloy-sdk 0.1.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fidloy_sdk-0.1.10.tar.gz | 13.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fidloy_sdk-0.1.10-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.1 kB
Release files / fidloy_sdk-0.1.10.tar.gz
| Download URL | fidloy_sdk-0.1.10.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b94239ce4df69f550f9b3bc711e1dcf89256e7dc71490ce4d1367027991e6236
|
|
BLAKE2b-256 checksum How to use checksums |
ae883760eb72c774793477c46847b906ad820bde6682a2312f05afcf4eb7e997
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|
Release files / fidloy_sdk-0.1.10-py3-none-any.whl
| Download URL | fidloy_sdk-0.1.10-py3-none-any.whl |
|---|---|
| Size | 10.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
73e71d434a6311d5251962ae42b282fae62d2ca4d1328e8a6a8b2862c9a1c34d
|
|
BLAKE2b-256 checksum How to use checksums |
612bac98ccb52a246c685a1d835269ec1acf5f2fe7d28d9399f86950349936c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|