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.13
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.13.tar.gz | 15.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fidloy_sdk-0.1.13-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.9 kB
Release files / fidloy_sdk-0.1.13.tar.gz
| Download URL | fidloy_sdk-0.1.13.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a3b90f9f3f10e511f5459b1bd4be9ec23f498287c247b1ee63dabf3fd60b6635
|
|
BLAKE2b-256 checksum How to use checksums |
73a9fa262ac114d10361fdcc7a5ece72a69df578c187d56601c32ddf490a2ce1
|
| 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.13-py3-none-any.whl
| Download URL | fidloy_sdk-0.1.13-py3-none-any.whl |
|---|---|
| Size | 13.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
29302a3fae5a7e0aa918f025f3721a59ab021a363918627e81d6a7ccd2bf2ed6
|
|
BLAKE2b-256 checksum How to use checksums |
8346de23b4f4dcfadf4404502603bca88a396d7aba02fb4cd40d8a7c20a280c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.3
|