Skip to main content

Sardis payment tools for Composio's tool marketplace

Project description

sardis-composio

Sardis payment tools for Composio's tool marketplace. Gives AI agents policy-controlled access to real payments via Sardis.

Install

pip install sardis-composio

Quick Start

Python

from sardis_composio import sardis_pay, sardis_check_balance, sardis_check_policy

# Check balance before paying
balance = sardis_check_balance(token="USDC")
print(f"Balance: ${balance['balance']} | Remaining limit: ${balance['remaining']}")

# Dry-run policy check
policy = sardis_check_policy(amount=49.99, merchant="vendor.example.com")
if policy["allowed"]:
    # Execute payment
    result = sardis_pay(amount=49.99, merchant="vendor.example.com", purpose="SaaS renewal")
    print(f"Payment {result['status']}: {result['tx_id']}")

Environment Variables

SARDIS_API_KEY=sk_...         # Your Sardis API key
SARDIS_WALLET_ID=wallet_...   # Agent wallet ID

API keys and wallet IDs can also be passed directly to each function.

Tools

Function Description
sardis_pay(amount, merchant, purpose) Execute a policy-controlled payment
sardis_check_balance(token) Get wallet balance and remaining spend limit
sardis_check_policy(amount, merchant) Dry-run a payment against spending policy

sardis_pay

result = sardis_pay(
    amount=49.99,
    merchant="vendor.example.com",
    purpose="SaaS subscription",  # optional, default: "Payment"
    api_key="sk_...",              # optional, falls back to env var
    wallet_id="wallet_...",        # optional, falls back to env var
)
# {"success": True, "status": "APPROVED", "tx_id": "tx_...", "amount": 49.99, ...}

sardis_check_balance

result = sardis_check_balance(token="USDC")
# {"success": True, "balance": 500.0, "remaining": 200.0, "token": "USDC"}

sardis_check_policy

result = sardis_check_policy(amount=100.0, merchant="shop.com")
# {"allowed": True, "reason": "Allowed: $100.0 to shop.com", "balance": 500.0, "remaining": 200.0}

Composio Import (OpenAPI)

Import the Sardis API into Composio using the bundled OpenAPI spec:

  1. Go to app.composio.devToolsImport OpenAPI
  2. Upload openapi.yaml from this package (find it at packages/sardis-composio/openapi.yaml or after install at $(pip show sardis-composio | grep Location | awk '{print $2}')/sardis_composio/../../openapi.yaml)
  3. Set your X-API-Key authentication in Composio's credential manager
  4. The following actions will be available:
    • executePayment — POST /v2/wallets/{wallet_id}/transfer
    • getBalance — GET /v2/wallets/{wallet_id}/balance
    • checkPolicy — POST /v2/payments/policy-check

Using with an AI Framework

# Example: LangChain + Composio
from composio_langchain import ComposioToolSet

toolset = ComposioToolSet(api_key="<composio-key>")
tools = toolset.get_tools(actions=["executePayment", "getBalance", "checkPolicy"])
# Example: Direct SARDIS_TOOLS dict (no Composio required)
from sardis_composio import SARDIS_TOOLS

# Pass to any agent framework that accepts a dict of callables
agent_tools = SARDIS_TOOLS

Development

uv sync
uv run pytest tests/

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sardis_composio-1.0.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sardis_composio-1.0.0-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file sardis_composio-1.0.0.tar.gz.

File metadata

  • Download URL: sardis_composio-1.0.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for sardis_composio-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5eef5696d36437d900bb807076f12ed28ed12fc34a33b4caa1a9ba1ca4175e85
MD5 3e5db9b99a93b52c944317a5c1b6c7a5
BLAKE2b-256 c83fb4e09074f2fdf7b98f186be961e6cb4df3717db0cbdbdc443c1fbc1c7509

See more details on using hashes here.

File details

Details for the file sardis_composio-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sardis_composio-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ad1634ac79a611aaa30b299d59c96d505f112d35ebd71843d6df517595ed06a
MD5 f23f7325e2d26419b44a2fe7542f6717
BLAKE2b-256 e547392523a82c122b58ffcf55905c0428af3b055e2d80502d0fb7c696885130

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page