Create invoice

Create a draft invoice for a customer with its lines.

POST https://cotlet.dev/api/v1/bokio/customers/{customer_id}/invoices

write

Creates an invoice as a draft with status draft and no invoice number, and returns net, VAT and total so you can check them. Bokio has no discount per line: add a line with a negative unit price instead. A draft reaches no one and can be deleted in Bokio, so create_invoice runs without asking first; publishing is a separate tool.

Parameters

Parameters: create_invoice
NameTypeDescription
customer_id string required string Customer ID from list_customers or create_customer.
currency string string Currency code such as SEK. Default: SEK.
invoice_date string required string YYYY-MM-DD.
due_date string required string YYYY-MM-DD.
lines array required array Objects with description, quantity, unit_price and tax_rate (percent).

Request

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}]}'
Python
result = client.call("bokio", "create_invoice", {"customer_id":"c7a1e5d2-3b94-4f60-9a1d-5e2f0b8c6d11","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}]})
Node.js
const result = await cotlet.call('bokio', 'create_invoice', {"customer_id":"c7a1e5d2-3b94-4f60-9a1d-5e2f0b8c6d11","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}]});
CLI
cotlet call bokio create_invoice --data '{"customer_id":"c7a1e5d2-3b94-4f60-9a1d-5e2f0b8c6d11","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

JSON

{
  "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
}

Sign in once. Your agent does the rest.

Sign up and add the apps you need. Free 7-day trial with 2,000 credits, no card needed.