Ledgersys is the
tax layer for
AI agents.
AI agents trade Bitcoin. Ledgersys handles the taxes. Automatically. Every transaction tracked, every obligation calculated, every report generated — programmatically.
AI Agents Can Trade.
They Can't File Taxes.
AI agents are executing Bitcoin transactions at scale via API. Every transaction has a tax implication. Every implication needs a jurisdiction-specific calculation. Every calculation needs to be audit-ready for a human owner.
What Agents Can't Do
- Apply jurisdiction-specific tax rules (SARS, HMRC, IRS)
- Track cost basis across thousands of transactions
- Generate audit-ready reports for human owners
- Reconcile transfers across multiple wallets
- Produce legally defensible tax calculations
What Ledgersys Provides
- SARS, HMRC, IRS, ATO rules — updated automatically
- FIFO, LIFO, HIFO cost basis — calculated in milliseconds
- Audit-ready PDF reports on demand via API
- Multi-source reconciliation across all wallets
- Legally defensible calculations, jurisdiction-specific
How Agents Use Ledgersys
Four API calls. Full Bitcoin tax compliance. Automatically.
Generate API Key
Agent generates an API key from the Ledgersys Agent dashboard. Sandbox key for testing. Production key when ready.
X-API-Key: sandbox_sk_...
Record Transactions
After every trade, agent calls POST /v1/transactions. Idempotency key prevents duplicates on retry.
POST /v1/transactions
Get Tax Liability
Agent calls GET /v1/tax to get real-time tax obligation. Jurisdiction-specific. Updated with every transaction.
GET /v1/tax
Generate Report
At year end or on demand, agent generates a tax report for the human owner. Audit-ready PDF in seconds.
GET /v1/reports/tax
Built for Programmatic Access
Every feature designed with agents in mind — reliability, speed, and idempotency at every layer.
Idempotency Keys
Include Idempotency-Key in every request. Retried requests return the original response — no duplicate transactions, no phantom tax events.
Bulk Endpoints
Upload up to 10,000 transactions in a single API request. Async processing with webhook notification on completion. Built for high-volume agents.
Learn moreReal-Time Webhooks
Subscribe to transaction.imported, tax.calculated, and report.generated events. HMAC-SHA256 signed payloads. 3-retry policy.
Free Sandbox
Test your agent integration with no API costs, no time limits, and no rate limit charges. Generate fake data. Reset with one API call.
Learn moreAPI Status Endpoint
Call GET /api/status before high-volume operations. Returns current health, rate limits, and any active incidents — in milliseconds.
Stable Versioned API
All endpoints versioned at /v1/. Minimum 12-month deprecation notice. AI agents can rely on endpoint stability indefinitely.
Test for Free.
No Time Limit.
The Ledgersys sandbox is a fully functional copy of the production API — with fake data, no real charges, and a rate limit of 10,000 calls per hour. There is no time limit. Stay as long as your integration needs.
import requests # Use your sandbox key — free, no charges API_KEY = "sandbox_sk_your_key_here" BASE = "https://api.ledgersys.live/v1" headers = {"X-API-Key": API_KEY} # Generate sample transaction data requests.get( "https://api.ledgersys.live/sandbox/generate_sample_transactions", headers=headers ) # Get tax calculation on fake data tax = requests.get(f"{BASE}/tax", headers=headers).json() print(f"Test tax obligation: ${tax['tax_obligation']}") # Reset when done testing requests.post( "https://api.ledgersys.live/sandbox/reset", headers=headers )
Agent Integration in Minutes
A complete working example. Copy, paste, run.
import requests import uuid API_KEY = "sandbox_sk_your_key_here" BASE_URL = "https://api.ledgersys.live/v1" class LedgersysAgent: def __init__(self, api_key: str): self.headers = { "X-API-Key": api_key, "Content-Type": "application/json" } def record_trade(self, trade_type: str, amount_btc: float, value_usd: float, date: str): """Record a Bitcoin transaction via API with idempotency key.""" response = requests.post( f"{BASE_URL}/transactions", json={ "date": date, "type": trade_type, "amount_btc": amount_btc, "value_usd": value_usd }, headers={ **self.headers, "Idempotency-Key": str(uuid.uuid4()) } ) return response.json() def get_tax_liability(self, jurisdiction: str = "ZA"): """Get current tax obligation in real time via API.""" response = requests.get( f"{BASE_URL}/tax", params={"jurisdiction": jurisdiction, "method": "FIFO"}, headers=self.headers ) return response.json() def generate_report(self, tax_year: int): """Generate audit-ready tax report for human owner via API.""" response = requests.get( f"{BASE_URL}/reports/tax", params={"tax_year": tax_year, "format": "pdf"}, headers=self.headers ) return response.content # Usage agent = LedgersysAgent(API_KEY) # After your agent makes a Bitcoin trade: agent.record_trade("buy", amount_btc=0.01, value_usd=850, date="2026-04-25") # Check tax exposure: tax = agent.get_tax_liability(jurisdiction="ZA") print(f"Current tax obligation: ${tax['tax_obligation']}") # End of tax year — generate report for human: pdf = agent.generate_report(tax_year=2026) with open("tax_report_2026.pdf", "wb") as f: f.write(pdf)
Framework Integrations
Ledgersys works with every major AI agent framework. Examples are being added as the agentic ecosystem evolves.
LangChain
Use Ledgersys as a LangChain tool — agents can record transactions, check tax liability, and generate reports as part of any chain.
Example coming soonAutoGPT
Plug Ledgersys into AutoGPT as a custom plugin for autonomous Bitcoin tax management.
Example coming soonn8n
Build no-code workflows with Ledgersys nodes. Trigger tax calculations on trade events, generate reports on schedule.
Example coming soonZapier
Connect Ledgersys to 5,000+ apps via Zapier. Record transactions from any exchange notification, trigger reports automatically.
Example coming soonPay Only for What You Use
No monthly subscription for basic usage. Pay per API call. Scale up as your agent grows. All payments in Bitcoin or Lightning — no banks, no cards.
Micro
- 1,000 API calls / month
- 5,000 transactions via API
- Sandbox included
- Webhook support
- Idempotency keys
Starter
- 10,000 API calls / month
- 50,000 transactions via API
- Sandbox included
- Bulk endpoints (10,000 tx/request)
- Priority webhooks
Business
- 50,000 API calls / month
- 250,000 transactions via API
- Sandbox included
- All bulk endpoints
- Dedicated support
Enterprise
- Unlimited API calls
- Unlimited transactions via API
- Custom SLAs
- Dedicated infrastructure
- Account manager
Common Questions from Developers
No. The 30-day free trial is for human users. Agents and developers use the sandbox environment instead — completely free, no time limit, resets daily. Use the sandbox until your integration is production-ready, then subscribe to an Agent plan.
All API requests require an API key passed in the X-API-Key header. Generate your key from the Agent dashboard after registering. Sandbox keys are prefixed with sandbox_ and connect to the sandbox environment automatically.
Yes. Call GET /v1/reports/tax to generate a PDF tax report via API. Register a webhook for the report.generated event to get notified when the report is ready. The PDF is audit-ready and formatted for the jurisdiction specified in the API call.
Always include an Idempotency-Key header with a unique string per request. If your agent retries a failed request with the same key, Ledgersys returns the original response — no duplicate transactions, no phantom tax events. Keys expire after 30 days.
Yes. Available at sandbox.ledgersys.live/v1/ or by setting the X-Environment: sandbox header. No API costs, no rate limit charges, rate limit of 10,000 calls/hour. Data resets daily at 00:00 UTC. No time limit.
The Ledgersys API is versioned at /v1/. We maintain a minimum 12-month support window after any deprecation announcement. Breaking changes are never introduced within a version. AI agents can rely on endpoint stability indefinitely within v1.
All Ledgersys payments are in Bitcoin or Lightning via BTCPay Server. No banks. No cards. No intermediaries. From your Agent dashboard, select your plan and you will receive a BTCPay invoice. Pay with any Bitcoin or Lightning wallet.
Micro: 5,000 calls/hour. Starter: 20,000 calls/hour. Business: 100,000 calls/hour. Enterprise: unlimited. Sandbox always allows 10,000 calls/hour regardless of plan. Rate limit headers are returned on every response: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
Start building your agent
integration today.
Sandbox is free. No time limit. No credit card. No banks. Same API endpoints as production.