Create quote
Create a draft quote for a client with line items and a valid-until date.
POST https://cotlet.dev/api/v1/invoice-ninja/clients/{client_id}/quotes
Creates a quote as a draft and returns its number and total. A quote has no effect on the client balance until it becomes an invoice, and a draft is invisible to the client until you send it with send_quote. Valid until is optional; when the client record sets a default quote validity period, Invoice Ninja applies it. create_quote runs without asking first: a draft reaches nobody and you can delete it in Invoice Ninja.
Parameters
| Name | Type | Description |
|---|---|---|
| company string | string | Company name, for accounts with several companies. Default: the company open when you signed in. |
| client_id string required | string | Client ID from list_clients or create_client. |
| items array required | array | Line items. Each has product (name from list_products or free text), description, unit_cost and quantity (decimals allowed). |
| quote_date date | date | Default: today. |
| valid_until date | date | Expiry date of the price. Default: none, or the validity period set on the client. |
| public_notes string | string | Note the client sees on the quote. |
Request
curl -X POST https://cotlet.dev/api/v1/invoice-ninja/clients/client_8c41d2/quotes \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":"items"}' result = client.call("invoice-ninja", "create_quote", {"client_id":"client_8c41d2","items":"items"}) const result = await cotlet.call('invoice-ninja', 'create_quote', {"client_id":"client_8c41d2","items":"items"}); cotlet call invoice-ninja create_quote --data '{"client_id":"client_8c41d2","items":"items"}' Example response
{
"quote_number": "Q-0017",
"client": "Kestrel Labs",
"status": "draft",
"quote_date": "2026-10-14",
"valid_until": "2026-11-13",
"currency": "USD",
"items": [
{
"product": "Brand refresh",
"description": "Brand refresh, fixed price",
"unit_cost": 2400,
"quantity": 1,
"line_total": 2400
}
],
"amount": 2400
}