Accounting software with an API
Every part of Nordlet is available through one JSON API, with SDKs, webhooks, idempotent retries and an MCP server for AI assistants.
An API (application programming interface) is a way for one program to talk to another. An accounting API lets your own software create invoices, record payments and read reports, without a person clicking through screens.
Nordlet is accounting software where the API is the main way in. Everything the web app does is available over the same JSON API. This page is for developers and for the people who decide what their product connects to.
What Nordlet does
- One request shape. Every call is
POST /v1/{module}/{resource}/{action}with a JSON body, for examplesales/invoices/createorbank/transactions/match. - API keys with scopes. Each key belongs to one company and carries scopes such as
sales:readorbank:write. A key without the needed scope gets a 403 answer. - Money as text. Amounts are decimal strings with up to 4 decimal places, never floating-point numbers, so no cents are lost to rounding.
- One error format. Every error has the same envelope with a code, a message and a request id.
- Shared list queries. Every
listcall takes the same paging, sorting and filter fields, and can return totals. - Real accounting rules. Journal entries must balance, document numbers have no gaps, and a locked accounting period refuses new postings with a 409 answer. Every change is written to an audit log.
Safe retries with idempotency
A network can fail after your request was processed but before you got the answer. Retrying could then create the same invoice twice. Idempotency means a repeated request has the same effect as the first one.
- Send an
Idempotency-Keyheader with any call that changes data. - A retry with the same key and the same body gets the stored answer back, with
x-idempotent-replay: true. - The same key with a different body is refused.
- Keys are kept for 24 hours.
Webhooks
A webhook is a message Nordlet sends to your server when something happens, such as sale_invoice.paid.
- Events are written in the same database transaction as the change, so a change that is rolled back sends no event.
- Each delivery is signed with HMAC-SHA256 using your subscription secret, so you can check it came from Nordlet.
- A failed delivery is retried for about 24 hours. You can also send it again by hand.
- Subscriptions are managed under Account → Webhooks or through the API.
Tools for developers
- API reference. An interactive API reference built from the OpenAPI description, plus a Postman collection.
- SDKs. Typed clients for TypeScript, Python, Go, Java, C#, Ruby, PHP, Swift and Rust, generated from the same description. See the SDKs guide.
- MCP server. AI assistants such as Claude can search and call the API with your API key. See the MCP server guide.
- Sandbox companies. A test company works like a real one, is marked as test data, and sends filings and e-invoices only to the administrations' test endpoints.
- Rate limit. 300 requests per minute per API key, with headers that show what is left.
Frequently asked questions
What can I do through the API?
Everything in the product: invoicing, purchases, the general ledger, bank matching, stock, assets, payroll, reports and country filings. The getting started guide walks through a full cycle from invoice to VAT figures.
Can I build accounting into my own product?
Yes. Each company in Nordlet has its own books, and your software works on them through its API key. The API has no call that edits or deletes a posted journal entry. A correction is a new entry, which keeps an immutable ledger.