Fortnox automation · runs daily
Register Fortnox customer payments automatically
Money lands in the bank account, and someone has to find each invoice in Fortnox, type the amount and the payment date, and register it, one invoice at a time.
Cotlet does it in your own Fortnox account with list_invoices, get_invoice and register_payment, called by your AI agent, an n8n workflow or a script.
Hosted · nothing to install or maintain
Can Fortnox do this on its own?
Fortnox matches payments by itself when a bank connection is set up, and invoices sent with Fakturaservice are marked paid when the money arrives (checked 14 Oct 2026). The API has an Invoice Payments resource under the payment scope. What neither does is read a payment list from your own system, such as a payment processor export, and register it against invoices with the rows that fail to match reported back.
How you do it in Fortnox today
- With a bank connection and bookkeeping in Fortnox, incoming payments are matched to the right invoice and booked automatically; rows that do not match by themselves have to be matched manually.
- For one invoice in the older view, open it, click Hantera and then Registrera inbetalning; in the new view the same function is under Fler alternativ.
- For many, go to Meny - Fakturering - Inbetalningar, fill in the payment date in Betaldatum, search the invoice in the Faktura field by customer number, customer name, invoice number or OCR number, type the amount in Betalt SEK and click Lägg till.
- For a partial payment, enter only the amount that arrived, and add the invoice again for the next payment.
- Finally book the payments from the list.
How to register Fortnox customer payments automatically
Here are yesterday's incoming payments. Find the matching unpaid invoice in Fortnox by invoice number or OCR, register the payment, and list anything that does not match. - 01
Collect open invoices
list_invoices runs with status unpaid and, when your list names a customer, that customer number, so the agent only compares payments with invoices that are still open.
- 02
Match by reference, then by amount
A payment is matched on invoice number or OCR number first. Only if there is no reference does the agent match on customer plus exact amount, and only when exactly one open invoice fits.
- 03
Read the invoice before paying it
get_invoice shows the remaining amount, so a short payment is registered as a partial payment instead of closing the invoice, and an overpayment is not registered at all.
- 04
Register the payment
register_payment records the amount and the payment date you gave, not today's date, so the books match the bank statement. Each call asks for your OK by default.
- 05
Leave the rest for you
Payments with no match, two possible matches or an amount above the open balance are listed with the reason, never forced onto an invoice.
What you get back
Payments in the list: 9
Registered 7, e.g. invoice 2377 Nordlys Design AB: 15,000 SEK, now fully paid
Partial: 1 (invoice 2379, 5,000 of 12,500 SEK, 7,500 SEK left)
Left for you 1: 3,200 SEK from "Berg AB" matches two open invoices Other ways to ask
- Every morning, register payments from the bank export in this folder and show me what did not match.
- Only match payments by OCR number and list everything else without registering it.
- List invoices that were paid late last month with the days late, but register nothing.
What Fortnox allows, and what to know first
- Fortnox registers a payment with a payment date you choose, which is the date it is booked against.
- A partial payment keeps the invoice open for the next payment: enter only the amount that arrived.
- Invoices sent with Fakturaservice are marked as paid in Fortnox when the money has arrived, so they need no manual registration.
- With a bank file, a row that is not matched automatically has to be matched by hand.
- The API's payment scope covers Invoice Payments and needs a Fortnox licence for Bokföring, Order or Kundfaktura.
register_payment asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.
Sources: Fortnox Support: Manuell registrering av betalningar · Fortnox Support: Registrera betalda kundfakturor · Fortnox Support: Skicka fakturan med Fakturaservice · Fortnox Developer: Scopes
Call register_payment from a script
curl -X POST https://cotlet.dev/api/v1/fortnox/invoices/2377/payments \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":15000,"payment_date":"2026-10-13"}' {
"invoice_number": "2377",
"paid_amount": 15000,
"payment_date": "2026-10-13",
"balance": 0,
"status": "fully paid",
"currency": "SEK"
} MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is fortnox_write → register_payment. Example data.
Schedule it in n8n, Make, Zapier or cronFortnox tools this automation uses
| Tool | Parameters |
|---|---|
| list_invoices | status, customer_number, due_before, limit, cursor |
| get_invoice | invoice_number |
| register_payment | invoice_number, amount, payment_date |
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.
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.