Skip to main content

Sardis Checkout Surface

Agentic Checkout - PSP routing and orchestration layer for Sardis.

This package provides the checkout surface that routes agent payments to existing PSPs (Stripe, PayPal, Coinbase, Circle) while leveraging the core Agent Wallet OS for policy enforcement and mandate verification.


Architecture

Agent Checkout Request
         │
         ▼
┌─────────────────────────────────────┐
│   Agent Wallet OS (Core)            │
│   - Policy Check                    │
│   - Mandate Verification            │
│   - Agent Identity                  │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│   Checkout Orchestrator             │
│   - PSP Selection                   │
│   - Session Management              │
└──────────────┬──────────────────────┘
               │
        ┌──────┴──────┐
        │             │
        ▼             ▼
┌──────────┐   ┌──────────┐
│ Stripe   │   │ PayPal   │
│ Connector│   │ Connector│
└──────────┘   └──────────┘

Features

  • Multi-PSP Support: Route to Stripe, PayPal, Coinbase, Circle
  • Policy-Based Routing: Uses core policy engine for approval
  • Checkout Sessions: Create and manage checkout sessions
  • Webhook Handling: Process PSP webhooks
  • Merchant Dashboard: Analytics and configuration

Installation

pip install sardis-checkout

Usage

Basic Checkout Flow

from sardis_checkout import CheckoutOrchestrator
from sardis_checkout.connectors import StripeConnector

# Initialize orchestrator
orchestrator = CheckoutOrchestrator(
    stripe_connector=StripeConnector(api_key="sk_..."),
)

# Create checkout session
session = await orchestrator.create_checkout_session(
    agent_id="agent_123",
    merchant_id="merchant_456",
    amount=Decimal("100.00"),
    currency="USD",
    metadata={"order_id": "order_789"},
)

# Get checkout URL
print(session.checkout_url)  # https://checkout.stripe.com/...

PSP Selection

# Orchestrator automatically selects PSP based on:
# 1. Merchant preference
# 2. Agent policy constraints
# 3. PSP availability

psp = await orchestrator.select_psp(
    merchant_id="merchant_456",
    agent_id="agent_123",
    amount=Decimal("100.00"),
)

Webhook Handling

from sardis_checkout.webhooks import handle_stripe_webhook

# Handle Stripe webhook
event = await handle_stripe_webhook(
    payload=request.body,
    signature=request.headers["stripe-signature"],
    secret=stripe_webhook_secret,
)

if event.type == "checkout.session.completed":
    # Update ledger, emit webhook, etc.
    await process_payment_completion(event.data)

Connectors

Stripe

from sardis_checkout.connectors.stripe import StripeConnector

connector = StripeConnector(
    api_key="sk_test_...",
    webhook_secret="whsec_...",
)

session = await connector.create_checkout_session(
    amount=Decimal("100.00"),
    currency="USD",
    agent_id="agent_123",
    metadata={},
)

PayPal (Coming Soon)

from sardis_checkout.connectors.paypal import PayPalConnector

connector = PayPalConnector(
    client_id="...",
    client_secret="...",
)

Coinbase Commerce (Coming Soon)

from sardis_checkout.connectors.coinbase import CoinbaseConnector

connector = CoinbaseConnector(
    api_key="...",
)

API Integration

FastAPI Router

from sardis_checkout.api import create_checkout_router

app.include_router(
    create_checkout_router(orchestrator),
    prefix="/api/v2/checkout",
    tags=["checkout"],
)

Endpoints

  • POST /checkout/create - Create checkout session
  • GET /checkout/{id} - Get checkout status
  • POST /checkout/{id}/complete - Complete checkout
  • POST /checkout/webhooks/{psp} - PSP webhook handler

Development

# Install dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Type check
mypy src/

# Lint
ruff check src/

License

Proprietary - All rights reserved.

Metadata

Release files for sardis-checkout 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sardis-checkout 1.1.0
File Size Uploaded
sardis_checkout-1.1.0.tar.gz 58.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sardis-checkout 1.1.0
File Interpreter ABI Platform
sardis_checkout-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 122.2 kB

Release files / sardis_checkout-1.1.0.tar.gz

Download URL sardis_checkout-1.1.0.tar.gz
Size 58.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f791ebb3e3a694e5160e57c0be5f313016bc2e445df72eab3de172dd1b1cd0da
BLAKE2b-256 checksum
How to use checksums
b10d8e65a2ffaf258c9bdacf31fec585e2ed294e3041c27888e026c39c267953
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / sardis_checkout-1.1.0-py3-none-any.whl

Download URL sardis_checkout-1.1.0-py3-none-any.whl
Size 63.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
11a02c5d2eb021c15bea627969a97ce9ee1d3f6558f9071317725a543b21c1ac
BLAKE2b-256 checksum
How to use checksums
aa6d16ba6a3defee6dfd11692c260167df1f74a8517503c63cf173de17bbbf47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.9.22 {"installer":{"name":"uv","version":"0.9.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page