Quickstart
This guide takes you from zero to a posted journal entry and a financial report
in four steps, using curl. Everything here works identically over the
MCP server — same API key, same data.
The API base URL is:
https://ai-accounting-software.vercel.app/api/v11. Get an API key
Create an organization and generate a key from the dashboard, then export it:
export FLYWHEEL_KEY="ak_your_key_here"
export FLYWHEEL_API="https://ai-accounting-software.vercel.app/api/v1"Every request authenticates with Authorization: Bearer $FLYWHEEL_KEY. See
Authentication for key management.
2. Seed a chart of accounts
You need accounts before you can post to them. The fastest start is to seed the standard chart of accounts (≈40 accounts, numbered 1000–9000). This is idempotent — safe to call more than once.
curl -X POST "$FLYWHEEL_API/accounts/seed" \
-H "Authorization: Bearer $FLYWHEEL_KEY"List the accounts to grab the IDs you'll post to:
curl "$FLYWHEEL_API/accounts" \
-H "Authorization: Bearer $FLYWHEEL_KEY"Every response uses the same envelope — data on success, error: null:
{
"data": [
{ "id": "…", "account_number": "1000", "name": "Cash", "account_type": "asset", "...": "…" }
],
"error": null
}3. Post a balanced journal entry
A journal entry needs at least two lines, each line is a debit or a credit
(not both), and total debits must equal total credits. Set auto_post: true
to post immediately instead of saving a draft.
This records $500 of cash received against revenue (replace the account_ids
with real IDs from step 2):
curl -X POST "$FLYWHEEL_API/journal-entries" \
-H "Authorization: Bearer $FLYWHEEL_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: qs-first-entry-001" \
-d '{
"date": "2026-01-15",
"description": "Consulting revenue",
"auto_post": true,
"lines": [
{ "account_id": "<CASH_ACCOUNT_ID>", "debit": 500.00 },
{ "account_id": "<REVENUE_ACCOUNT_ID>", "credit": 500.00 }
]
}'Idempotency-Key
Sending the same Idempotency-Key again returns the original result instead of
creating a duplicate entry — safe to retry on network errors. See
Conventions.
4. Pull a report
Now read it back as a trial balance:
curl "$FLYWHEEL_API/reports/trial-balance?as_of=2026-01-31" \
-H "Authorization: Bearer $FLYWHEEL_KEY"Total debits and total credits should balance. You've completed a full double-entry cycle: accounts → posted entry → report.
Next steps
- Understand the model: Accounting model and Journal entries.
- Connect an agent instead of curl: Integrations.
- Browse every endpoint: API reference.