Public API Overview
The Fiskl public API lets you read and update your accounting data from your own software, connect third-party apps, and react to changes as they happen. This overview explains how the four building blocks fit together so you can choose the right one for your task.
Beta Notice: The API, Webhooks, and MCP server are currently in Beta. This means these tools are actively in development; stability is not fully guaranteed and endpoints may change without notice. We encourage you to use this period to familiarise yourself with the system, and we will notify all users once they reach general availability.
What the Public API Is
The public API is a stable set of web endpoints under /v1 — for example /v1/clients and /v1/invoices. You send a request with a token, and Fiskl returns your company's data as JSON. Every request is authenticated and limited to what the token is allowed to do.
The full, interactive reference lives at api-docs.fiskl.com. There you can browse every endpoint, see example responses, and try calls in the browser. This help section explains the concepts around that reference: how to get a token, how access is scoped, and how to receive events.
The Four Building Blocks
These four features work together. Most integrations use two or three of them.
| Building block | What it is | Use it when |
|---|---|---|
| API keys | A token (fsk_…) you create for your own scripts and tools | You are building your own integration or one-off automation |
| Connected apps (OAuth) | A registered app that other Fiskl users authorise to act on their behalf | You are building an app or connector for other people to use |
| API endpoints | The /v1 requests that read and change your data | Any time you read or update Fiskl data programmatically |
| Webhooks | Notifications Fiskl sends to your system when something happens | You need to react to events such as an invoice being paid |
A simple way to remember the difference between the two token types: an API key is for your own access, while a connected app lets someone else's app access a user's data with that user's consent.
How Access Is Controlled
Every request carries a token in the Authorization header, and Fiskl checks two things: that the token is valid, and that it is allowed to perform the action.
- API keys use fine-grained permissions, such as
invoice.read. You select these on a grid when you create the key, and you can only grant permissions you hold yourself. - Connected apps use coarser scopes, such as
invoicing:read. The person authorising the app approves these scopes on a consent screen.
In both cases, a token can never do more than its owner can. If your permissions change, every token you created reflects that change immediately.
Choosing Your Path
- To call the API from your own code, create an API key, then follow Make Your First API Request.
- To build an app others will connect, register a connected app and use the OAuth flow.
- To react to changes in Fiskl, set up webhooks.
The interactive endpoint reference at api-docs.fiskl.com always reflects the current API. Use it alongside these guides to see exact fields and example responses.
Guides
📄️ Create and Manage API Keys
Create scoped API keys to access the Fiskl API from your own scripts and tools, copy the one-time secret, and revoke keys you no longer need.
📄️ Make Your First API Request
A developer quickstart for the Fiskl API: base URLs, authentication, your first calls, pagination, scopes, and error handling with curl examples.
📄️ Receive Events with Webhooks
Set up Fiskl webhooks to notify your system when invoices, clients, quotes, and payments change, with the event catalogue and payload format.
📄️ Connect Apps with OAuth
Register an OAuth app so other Fiskl users can authorise it to access their data, including confidential and public app types, redirect URIs, and scopes.
Related Topics
- Make Your First API Request — Authenticate and call the API in a few minutes
- Create and Manage API Keys — Generate scoped tokens for your own integrations
- Connect Apps with OAuth — Register apps that other users authorise
- Receive Events with Webhooks — Get notified when data changes
- Roles and Permissions — How permissions control what a token can do