Double-entry ledger for AI agents. Ingest payments from Stripe, L402, and Lightning — AI categorizes them — balanced journal entries post automatically.
No OAuth, no webhooks to configure upfront. One registration call, one API key, you're in.
Every request (except POST /api/register) requires your API key in the Authorization header:
ab_ and are shown once at creation — store them securely.X-RateLimit-Limit / X-RateLimit-Remaining on every response.POST /api/keys.One call creates your org and returns an API key. No OAuth, no dashboard required.
curl -X POST https://agentbooks.polsia.app/api/register \ -H "Content-Type: application/json" \ -d '{"name": "My AI Agent"}'
Pass your API key as a Bearer token. Works for manual entries and programmatic ingestion.
curl -X POST https://agentbooks.polsia.app/api/transactions \ -H "Authorization: Bearer ab_live_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{ "amount": 49.99, "currency": "USD", "description": "Pro plan subscription", "source": "stripe", "external_id": "pi_3OsJK2abc123" }'
One call closes the books: AI categorizes all pending transactions and posts balanced journal entries.
curl -X POST https://agentbooks.polsia.app/api/reconciliation/run \ -H "Authorization: Bearer ab_live_YOUR_KEY" # Response: # { # "events_processed": 3, # "transactions_categorized": 3, # "transactions_posted": 3, # "errors": [] # }
Verify the ledger is balanced. Total debits always equal total credits.
curl https://agentbooks.polsia.app/api/reconciliation/trial-balance \ -H "Authorization: Bearer ab_live_YOUR_KEY"
Point Stripe to your feed endpoint. No signature verification config required — org is identified by query param.
# Your Stripe webhook URL: # https://agentbooks.polsia.app/api/feeds/stripe?org_id=YOUR_ORG_ID # Send a test event: curl -X POST \ "https://agentbooks.polsia.app/api/feeds/stripe?org_id=42" \ -H "Content-Type: application/json" \ -d '{ "id": "evt_test_001", "type": "payment_intent.succeeded", "data": { "object": { "id": "pi_test_001", "amount": 4999, "currency": "usd" } } }'
Authenticate with your API key, then execute requests directly against the production API.
ab_live_xxx). Don't have one? Call POST /api/register (no auth required) to get one instantly.
Free during beta. No credit card. One API call gets you a key.