[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)

# Record customer payments on Bokio invoices

> Match bank statement lines to unpaid Bokio invoices by amount and reference, record each payment on the right date and list what does not match.

Source: https://cotlet.dev/integrations/bokio-api-mcp-server/record-invoice-payments

The money for last month's invoices arrives on your bank statement, and every payment has to be matched to an invoice and registered in Bokio by hand.

Cotlet does it in your own Bokio account with list\_invoices, get\_invoice and record\_invoice\_payment, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Bokio do this on its own?

Bokio's API can register an invoice payment with a date, an amount and an account, and a second call books it (checked 14 Oct 2026). With a Bokio Företagskonto, Bokio matches incoming payments to invoices itself; for any other bank, matching a statement to invoices stays manual.

## How you do it in Bokio today

1. Open the unpaid invoice from Fakturering > Fakturor.
2. Click Registrera betalning in the upper-right corner.
3. Enter the amount the customer paid, choose the account (for your bank account 1930) and the date the money arrived.
4. If the amount differs from the invoice total, choose Lämna fakturan öppen för fler betalningar, Öresavrundning, Konstaterade kundförluster or Bankkostnad.
5. Click Bokför if automatic booking of invoice events is off.

## How to record customer payments on Bokio invoices

Prompt

```
Here is this week's bank statement. Match each incoming payment to an unpaid Bokio invoice by amount and reference, and record the payment on account 1930 on the date it arrived. List what you could not match.
```

1. 01  
### Read the unpaid invoices  
list\_invoices runs with a filter on the status published, overdue and underPaid, and the agent pages through all results so a long list is matched as one batch.
2. 02  
### Match by amount and reference  
Each statement line is matched on the OCR payment reference first, then on amount and customer name. A line that fits two invoices is left for you.
3. 03  
### Check the invoice again  
get\_invoice confirms the invoice is still unpaid and shows the paid amount, so a payment already registered in Bokio is never entered twice.
4. 04  
### Record the payment  
record\_invoice\_payment registers the amount on the date the money arrived and books it. It waits for your OK by default.
5. 05  
### Flag differences  
A short payment is recorded as a partial payment and the invoice stays open. The agent lists it with the missing amount instead of choosing a rounding or loss option for you.

### What you get back

Example data

```
Statement lines: 6
Recorded 4 payments on account 1930:
- Invoice 2026-1042, 13 125 SEK, 2026-10-13
- Invoice 2026-1039, 4 800 SEK, 2026-10-12
Partial: invoice 2026-1035, 2 000 of 3 000 SEK, left open
No invoice found for 1 line: 1 250 SEK from "J Berg"
```

### Other ways to ask

- Only list the matches and the unmatched lines. Do not record anything.
- Record payments from the CSV I attach, but only for invoices from this quarter.
- Every Monday, tell me which overdue invoices received a payment since last week.

## What Bokio allows, and what to know first

- Bokio's invoice statuses are draft, published, paid, overPaid, underPaid, overdue, credited and credit.
- Bokio's API records a payment in two steps: registering it, then booking it, which clears the receivable and links a journal entry.
- Bokio can book a short payment as rounding to account 3740, a confirmed customer loss to 6351 or a bank fee to 6570.
- With a Bokio Företagskonto and a Bankgiro number, invoices are marked paid automatically, and this job is for payments that arrive elsewhere.

record\_invoice\_payment asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Bokio Help: Registrera och bokför betalning av kundfaktura](https://www.bokio.se/hjalp/fakturera-kunder/betalning-bokforing/registrera-betalning-av-kundfaktura/) · [Bokio API docs: Getting started with the Invoice API](https://docs.bokio.se/docs/how-to-use-invoice-api) · [Bokio API docs: Get invoices](https://docs.bokio.se/reference/get-invoice) · [Bokio API docs: Invoicing in Bokio](https://docs.bokio.se/docs/invoicing-in-bokio)

## Call record\_invoice\_payment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/bokio/invoices/f2d84b1a-6c30-4e97-8a5b-1d9c7e3a40b2/payment \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-13","amount":13125,"account":"1930"}'
```

Example response

```
{
"invoice_id": "f2d84b1a-6c30-4e97-8a5b-1d9c7e3a40b2",
"payment_id": "a8e2c5f1-9d40-4b73-b6a2-0c7f3d18e594",
"amount": 13125,
"date": "2026-10-13",
"account": "1930",
"booked": true,
"invoice_status": "paid",
"paid_amount": 13125
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is bokio\_write → record\_invoice\_payment. Example data.

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

## Bokio tools this automation uses

__Cotlet Bokio tools used to record customer payments on Bokio invoices__
| Tool | Parameters |
| ------------------------ | --------------------------------------------------- |
| list\_invoices | status, due\_before, customer\_id, page, page\_size |
| get\_invoice | invoice\_id |
| record\_invoice\_payment | invoice\_id, date, amount, account |

[All 13 Bokio tools with descriptions](https://cotlet.dev/integrations/bokio-api-mcp-server.md#tools)

## Frequently asked questions

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

Yes. You sign in to Bokio yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Bokio 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 Bokio automations

- [Create and send Bokio invoices from a list of jobs](https://cotlet.dev/integrations/bokio-api-mcp-server/create-and-send-invoices.md)
- [Upload receipts to Bokio automatically](https://cotlet.dev/integrations/bokio-api-mcp-server/upload-receipts.md)
- [Bokio API and MCP server: every tool](https://cotlet.dev/integrations/bokio-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Bokio.

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

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

---

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.
