[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Book recurring Fortnox journal entries as vouchers

> Book month-end accruals as Fortnox vouchers after checking the financial year and for duplicates. Hosted, nothing to maintain.

Source: https://cotlet.dev/integrations/fortnox-api-mcp-server/book-journal-entries

Every month-end the same accruals, rent allocations and corrections are keyed into Fortnox as vouchers by hand, and the one you forget shows up when the books are closed.

Cotlet does it in your own Fortnox account with list\_financial\_years, list\_vouchers and create\_voucher, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=fortnox) [All Fortnox tools](https://cotlet.dev/integrations/fortnox-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Fortnox do this on its own?

Fortnox has a Vouchers resource in its API under the bookkeeping scope (checked 14 Oct 2026), and Zapier lists a Create Voucher action. Neither checks whether this month's entry already exists, and the API route needs a registered integration. Fortnox documents the checks its own guide recommends (financial year, accounts, series) but leaves them to the caller.

## How you do it in Fortnox today

1. Bookkeeping needs a financial year first: it must exist before anything can be booked, and creating the new one at the turn of the year is easy to forget.
2. The accountant sets up default accounts and voucher series under the settings menu, and each account used on a voucher must exist and be active.
3. For each entry a voucher is created with a transaction date, a description, a voucher series and rows with account, debit and credit.
4. The same entries are keyed again every month, with only the date and sometimes the amount changed.

## How to book recurring Fortnox journal entries as vouchers

Prompt

```
On the last day of each month, book the accrued rent of 8,000 SEK as a voucher in Fortnox, debit 5010 and credit 2990, unless this month already has one.
```

1. 01  
### Check the financial year  
list\_financial\_years runs for the transaction date. If no financial year covers it, the agent stops and tells you to create it in Fortnox, because booking into a missing year fails.
2. 02  
### Look for this month's entry  
list\_vouchers filters by series and date range, and the agent compares description and amount. A voucher that already exists is reported, not booked a second time.
3. 03  
### Check the posting balances  
Before calling create\_voucher the agent sums debit and credit rows and refuses to book a voucher where they differ.
4. 04  
### Book the voucher  
create\_voucher books it in the series and with the transaction date you named. A voucher changes the books, so each call asks for your OK by default.
5. 05  
### Return the voucher number  
The agent reports series and number, so the entry can be matched with your month-end checklist.

### What you get back

Example data

```
Transaction date: 2026-10-31
Financial year found: yes
Existing voucher for October rent accrual: none
Booked voucher A 142: debit 5010 8,000 SEK, credit 2990 8,000 SEK
Checks: debit equals credit
```

### Other ways to ask

- Book the same accrual for every month left in the financial year, one voucher per month, and wait for my OK on each.
- List all vouchers in series A from October with their totals, and book nothing.
- Reverse last month's rent accrual on the first day of the month with a voucher that swaps debit and credit.

## What Fortnox allows, and what to know first

- Fortnox requires a financial year to exist for the booking date; an empty result for that date means none exists, and Fortnox recommends creating it in the app.
- Every account on a voucher must exist and be active, or the booking fails.
- A voucher row holds either a debit or a credit amount, and a voucher's debits and credits are expected to balance.
- The API's bookkeeping scope covers Vouchers, Voucher Series, Financial Years and Accounts, and needs a Fortnox licence for Bokföring or Kundfaktura.

create\_voucher asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [Fortnox Developer: Vouchers](https://www.fortnox.se/developer/guides-and-good-to-know/best-practices/vouchers) · [Fortnox Developer: Scopes](https://www.fortnox.se/developer/guides-and-good-to-know/scopes) · [Fortnox Support: Kom igång med Fortnox Bokföring](https://support.fortnox.se/produkthjalp/bokforing/kom-igang-med-fortnox-bokforing) · [Fortnox on Zapier: triggers and actions](https://zapier.com/apps/fortnox-1/integrations)

## Call create\_voucher from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/fortnox/vouchers \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"voucher_series":"A","transaction_date":"2026-10-31","description":"Accrued rent, October","rows":[{"account":"5010","debit":8000},{"account":"2990","credit":8000}]}'
```

Example response

```
{
"voucher_series": "A",
"voucher_number": 142,
"transaction_date": "2026-10-31",
"description": "Accrued rent, October",
"rows": [
{
"account": "5010",
"debit": 8000,
"credit": 0
},
{
"account": "2990",
"debit": 0,
"credit": 8000
}
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is fortnox\_write → create\_voucher. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/fortnox-api-mcp-server.md#automations)

## Fortnox tools this automation uses

__Cotlet Fortnox tools used to book recurring Fortnox journal entries as vouchers__
| Tool | Parameters |
| ---------------------- | ----------------------------------------------------- |
| list\_financial\_years | date |
| list\_vouchers | voucher\_series, from, to, limit, cursor |
| create\_voucher | voucher\_series, transaction\_date, description, rows |

[All 11 Fortnox tools with descriptions](https://cotlet.dev/integrations/fortnox-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Fortnox to Cotlet?

Yes. You sign in to Fortnox yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Fortnox once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Fortnox automations

- [Create and send Fortnox invoices from a list](https://cotlet.dev/integrations/fortnox-api-mcp-server/create-and-send-invoices.md)
- [Register Fortnox customer payments automatically](https://cotlet.dev/integrations/fortnox-api-mcp-server/register-invoice-payments.md)
- [Fortnox API and MCP server: every tool](https://cotlet.dev/integrations/fortnox-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Fortnox.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Fortnox.

[Sign up free](https://cotlet.dev/app/signup?app=fortnox)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
