nenoDevelopers
⌘K
v1

Quotes

Record a quote decision

POST/quotes/{id}/status

Records the customer decision. Accept or decline only from quote_sent. Expire from quote_sent or quote_accepted.

Path parameters

idstring · uuidrequired

Public document UUID. This is distinct from the customer-facing share token.

Headers

Idempotency-Keystring · max 255required

Client-generated key that identifies one write for 24 hours. Reuse it only when retrying the same method, path, query, and body.

Body

statusstringrequired
quote_acceptedquote_declinedquote_expired
reasonstring

Responses

200
OK. Updated quote.
400
Bad request. Malformed request.
401
Unauthorized. Missing, invalid, revoked, or expired API key.
403
Forbidden. The API key lacks a required scope or the creator lacks a required permission.
404
Not found. Resource not found (or not in this workspace).
409
Conflict. A matching request with this Idempotency-Key is still in progress. Retry after one second.
422
Unprocessable content. This Idempotency-Key was already used for a different request.
429
Too many requests. Rate limit exceeded.
Request
curl -X POST https://api.neno.build/public/v1/quotes/quo_3Nf8p2Qa/status \
-H "Authorization: Bearer $NENO_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"status": "quote_accepted"
}'
200 OK · application/json
{
"id": "quo_3Nf8p2Qa",
"type": "invoice",
"invoiceNumber": "2026-0142",
"language": "en",
"templateStyle": null,
"customerName": "Aalto Studio BV",
"customerContactPerson": "Mira Aalto",
"customerAddressLine1": "Prinsengracht 263",
"customerAddressLine2": null,
"customerCity": "Amsterdam",
"customerPostalCode": "1016 GV",
"customerCountryCode": "NL",
"customerVatNumber": "NL859412763B01",
"currencyCode": "EUR",
"netAmountMinor": "125000",
"taxTotalMinor": "26250",
"totalMinor": "151250",
"discountPercent": null,
"discountMinor": null,
"issueDate": "2026-09-24",
"dueDate": "2026-10-24",
"paidAt": "2026-09-24T09:30:00Z",
"poNumber": "PO-88213",
"notes": null,
"terms": null,
"logoUrl": null,
"lineItems": [
{
"id": "9b2f6c1e-4a7d-4f0e-8c3b-2d51e7a0f4c9",
"lineNo": 1,
"description": "Brand identity, phase 2",
"details": null,
"unit": "project",
"quantity": "1",
"unitPriceMinor": "125000",
"taxRatePercent": "21",
"discountPercent": null,
"lineDiscountMinor": null,
"lineGrossMinor": "string",
"lineSubtotalMinor": "string",
"lineTaxMinor": "string",
"lineTotalMinor": "string"
}
],
"taxes": [
{
"id": "9b2f6c1e-4a7d-4f0e-8c3b-2d51e7a0f4c9",
"name": "string",
"ratePercent": "string",
"amountMinor": "string",
"discountMinor": null
}
],
"status": "quote_draft",
"validUntil": "2026-09-24",
"convertedInvoiceId": null,
"convertedInvoiceNumber": null
}