Create sales invoice

Save a sales invoice as Unfinished and return the totals.

POST https://cotlet.dev/api/v1/procountor/partners/{partner_id}/sales-invoices

write Confirm

Creates the invoice the way Save does in Invoice view. Procountor generates the invoice number on save. The invoice stays Unfinished: editable, not sent and not yet counted in tax reports. Returns net, VAT and gross totals and the due date calculated from the payment terms. By default you confirm each call; you can switch that off for this tool.

Parameters

Parameters: create_sales_invoice
NameTypeDescription
partner_id string required string Customer ID from list_partners.
invoice_date string string YYYY-MM-DD. Default: today.
rows array required array Invoice rows: name, quantity, unit_price, vat_percent.
additional_info string string Text shown above the invoice rows.

Request

cURL
curl -X POST https://cotlet.dev/api/v1/procountor/partners/bp_20417/sales-invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"invoice_date":"2026-10-14","rows":[{"name":"Consulting","quantity":10,"unit_price":80,"vat_percent":25.5}]}'
Python
result = client.call("procountor", "create_sales_invoice", {"partner_id":"bp_20417","invoice_date":"2026-10-14","rows":[{"name":"Consulting","quantity":10,"unit_price":80,"vat_percent":25.5}]})
Node.js
const result = await cotlet.call('procountor', 'create_sales_invoice', {"partner_id":"bp_20417","invoice_date":"2026-10-14","rows":[{"name":"Consulting","quantity":10,"unit_price":80,"vat_percent":25.5}]});
CLI
cotlet call procountor create_sales_invoice --data '{"partner_id":"bp_20417","invoice_date":"2026-10-14","rows":[{"name":"Consulting","quantity":10,"unit_price":80,"vat_percent":25.5}]}'

Example response

JSON

{
  "invoice_id": "si_10482",
  "number": "10482",
  "customer": "Nordic Print Oy",
  "status": "unfinished",
  "invoice_date": "2026-10-14",
  "due_date": "2026-10-28",
  "currency": "EUR",
  "net_total": 800,
  "vat_total": 204,
  "total": 1004
}

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.