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

# Create and send Bokio invoices from a list of jobs

> Turn a list of billable jobs into a Bokio draft, check the total, then publish the invoice and email it to the customer. Run from Claude Code or n8n.

Source: https://cotlet.dev/integrations/bokio-api-mcp-server/create-and-send-invoices

At the end of the week you have a list of jobs in a note or a spreadsheet, and every line has to be typed into a new Bokio invoice before it can go out.

Cotlet does it in your own Bokio account with list\_customers, create\_customer, create\_invoice, publish\_invoice and send\_invoice, 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 create a customer, create a draft invoice, add line items and publish it (checked 14 Oct 2026). It does not email the invoice: Bokio's publish endpoint states the invoice will not be emailed automatically when published through the API, and Zapier's Bokio app has actions to create and update invoices but none to send one. The email step has to be done in the app.

## How you do it in Bokio today

1. Go to Fakturering > Fakturor and click Ny faktura.
2. Search for the customer, or click Skapa ny when the customer is missing.
3. Click Lägg till ny rad for every job, pick a saved article or click Skapa ny, and set quantity, price and VAT.
4. Check the terms (betalningsfrist, dröjsmålsränta) and the dates, then choose a delivery method, for example E-post direkt till kund.
5. Click Skicka och publicera. Bokio assigns the invoice number only now, so a draft has none.

## How to create and send Bokio invoices from a list of jobs

Prompt

```
Here are this week's billable jobs for Nordlys Design AB. Create one Bokio invoice with a line for each job, show me the total, and after I say OK publish it and email it to their finance address.
```

1. 01  
### Find or create the customer  
list\_customers searches by name first. The agent calls create\_customer only when no customer matches, so a repeat client never gets a duplicate record.
2. 02  
### Build the draft  
create\_invoice receives one line per job with quantity, unit price and tax rate. Bokio has no per-item discount, so the agent adds a discount as a line with a negative price.
3. 03  
### Show the total before anything is issued  
The agent reads net, VAT and total from the draft response and checks that they match your list. A mismatch stops the run; the draft reaches nobody.
4. 04  
### Publish  
publish\_invoice turns the draft into a published invoice with an invoice number and payment reference. It waits for your OK by default.
5. 05  
### Email it  
send\_invoice emails the published invoice to the addresses you gave, as a link to a PDF or an attached PDF. It also waits for your OK by default.

### What you get back

Example data

```
Customer: Nordlys Design AB (existing)
Draft created: 2 lines, net 10 500 SEK, VAT 2 625 SEK, total 13 125 SEK
Published as invoice 2026-1042, due 2026-11-13
Emailed to ekonomi@nordlys.example
```

### Other ways to ask

- Create the invoice as a draft only and tell me the total. Do not publish.
- Every Friday, invoice the hours in this timesheet to each client, one draft per client, and list them for me to review.
- Add a line with a negative price for the 10% agreed discount before the total.
- Publish the draft invoices from this morning and email each one to its customer's finance address.

## What Bokio allows, and what to know first

- Bokio's API creates an invoice as a draft with status draft and no invoice number; the number is assigned when the invoice is published.
- Bokio does not support discounts per invoice line, and its API guide adds a line with a negative unit price instead.
- Bokio can email an invoice to up to four recipients at once, and a customer can have up to three contact persons.
- If an invoice is sent as a link to a PDF, Bokio shows whether each recipient has opened it.
- Invoicing is not included in the Basic plan; Bokio sells it there as an add-on.

publish\_invoice and send\_invoice ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [Bokio Help: Hur skapar jag en faktura?](https://www.bokio.se/hjalp/fakturera-kunder/skapa-faktura/hur-skapar-jag-en-faktura/) · [Bokio Help: Skicka faktura till flera mottagare](https://www.bokio.se/hjalp/fakturera-kunder/skicka-faktura/skicka-faktura-till-flera-mottagare-e-postadresser/) · [Bokio API docs: Getting started with the Invoice API](https://docs.bokio.se/docs/how-to-use-invoice-api) · [Bokio API docs: Publish an invoice](https://docs.bokio.se/reference/post-invoices-invoiceid-publish) · [Bokio pricing](https://www.bokio.se/priser/)

## Call create\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/bokio/customers/c7a1e5d2-3b94-4f60-9a1d-5e2f0b8c6d11/invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"currency":"SEK","invoice_date":"2026-10-14","due_date":"2026-11-13","lines":[{"description":"Website audit","quantity":8,"unit_price":1200,"tax_rate":25},{"description":"Hosting setup","quantity":1,"unit_price":900,"tax_rate":25}]}'
```

Example response

```
{
"invoice_id": "f2d84b1a-6c30-4e97-8a5b-1d9c7e3a40b2",
"status": "draft",
"invoice_number": null,
"customer": "Nordlys Design AB",
"currency": "SEK",
"invoice_date": "2026-10-14",
"due_date": "2026-11-13",
"total_amount": 13125,
"total_tax": 2625
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is bokio\_write → create\_invoice. 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 create and send Bokio invoices from a list of jobs__
| Tool | Parameters |
| ---------------- | ------------------------------------------------------- |
| list\_customers | search, page, page\_size |
| create\_customer | name, type, email, org\_number, vat\_number |
| create\_invoice | customer\_id, currency, invoice\_date, due\_date, lines |
| publish\_invoice | invoice\_id |
| send\_invoice | invoice\_id, recipients, attach\_pdf |

[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

- [Upload receipts to Bokio automatically](https://cotlet.dev/integrations/bokio-api-mcp-server/upload-receipts.md)
- [Record customer payments on Bokio invoices](https://cotlet.dev/integrations/bokio-api-mcp-server/record-invoice-payments.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.
