The Finta API gives you programmatic access to your company’s financial data: transactions, journal entries, categories, and financial reports.
Getting Your API Key
Go to API Keys
Log into Finta and go to Settings > API Keys. Create a key
Click Create API key.
Copy the key
Copy the key immediately. It starts with finta_ and is only shown once. You cannot retrieve it later.
Each API key is scoped to a single company. There is no company ID parameter; the key already knows which company it belongs to. If you manage multiple companies, create a separate key for each.
Base URL
All requests go to:
https://app.finta.com/api/v1
There is no sandbox environment. All API calls hit production data.
Authentication
Include your API key in the Authorization header:
curl https://app.finta.com/api/v1/company \
-H "Authorization: Bearer finta_your_key_here"
Making Your First Request
Verify your API key by pulling your company’s metadata:
curl https://app.finta.com/api/v1/company \
-H "Authorization: Bearer finta_your_key_here"
{
"id": "comp_a1b2c3d4e5f6g7",
"object": "company",
"name": "Acme Corp",
"legal_name": "Acme Corp Inc.",
"entity_type": "c_corp",
"federal_ein": "12-3456789",
"incorporation": {
"date": "2022-10-21",
"state": "delaware"
},
"legal_address": {
"line_1": "548 Market Street",
"line_2": "PMB 39381",
"city": "San Francisco",
"state": "california",
"postal_code": "94104",
"country": "United States"
},
"created": 1688053841
}
From here, try pulling your income statement, balance sheet, or transactions.
Transactions vs Journal Entries
The API offers two ways to look at your financial activity:
Transactions
Journal Entries
Transactions are what your bank shows you: a single line like “AWS charged you $499.” Most API consumers want transactions.
Journal entries are the accounting records that transactions create. That same $499 AWS charge becomes two journal entries: debit Software $499, credit Cash $499 (double-entry bookkeeping). Use journal entries when you need accounting-level detail.
Rate Limits
All endpoints are rate limited to 120 requests per 60 seconds per IP address.
Every response includes rate limit headers:
| Header | Description |
|---|
X-RateLimit-Limit | Maximum requests per window (120) |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
List endpoints (/transactions, /journal-entries) accept limit and offset query parameters. Responses include total and has_more to help you paginate:
{
"object": "list",
"total": 19470,
"has_more": true,
"data": [...]
}
Errors
All errors return a consistent structure:
{
"error": {
"type": "invalid_request_error",
"code": "resource_missing",
"message": "The requested resource was not found.",
"doc_url": "https://docs.finta.com/errors/resource_missing"
}
}
See the error reference for details on each error code.