Browse docs

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:

text
https://ai-accounting-software.vercel.app/api/v1

1. Get an API key

Create an organization and generate a key from the dashboard, then export it:

bash
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.

bash
curl -X POST "$FLYWHEEL_API/accounts/seed" \
-H "Authorization: Bearer $FLYWHEEL_KEY"

List the accounts to grab the IDs you'll post to:

bash
curl "$FLYWHEEL_API/accounts" \
-H "Authorization: Bearer $FLYWHEEL_KEY"

Every response uses the same envelope — data on success, error: null:

json
{
"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):

bash
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:

bash
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