Send or finish a sales invoice
Emails a concept invoice to the customer or saves it without sending.
POST https://cotlet.dev/api/v1/snelstart/invoices/{invoice_id}/sales-invoices
write Confirm
Does what Versturen or Alleen Opslaan does in step 4. SnelStart assigns the invoice number at that moment, so the invoice stops being a concept. Sending needs the customer email address on the card and attaches a UBL file. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| invoice_id string required | string | Sales invoice ID from list_sales_invoices or create_sales_invoice. |
| action string required | string | One of: send, save_only. send emails the invoice, save_only finishes it without email. |
| email_text string | string | Replaces the default email text for this invoice. |
Request
curl -X POST https://cotlet.dev/api/v1/snelstart/invoices/invoice_8c41d2/sales-invoices \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action":"action"}' result = client.call("snelstart", "issue_sales_invoice", {"invoice_id":"invoice_8c41d2","action":"action"}) const result = await cotlet.call('snelstart', 'issue_sales_invoice', {"invoice_id":"invoice_8c41d2","action":"action"}); cotlet call snelstart issue_sales_invoice --data '{"invoice_id":"invoice_8c41d2","action":"action"}' Example response
{
"invoice_id": "inv_c_0041",
"number": "2026-0412",
"status": "open",
"sent_to": "billing@northwind.example",
"amount_total": 1379.4
}