Skip to main content

Reference

Quotations

Sales proposals with a full life cycle — send, accept, decline, and convert to invoice.

Quotations are proposals before they become invoices. They start as drafts, can be sent to a customer, and then accepted, declined, or expired. An accepted quotation is converted into an invoice with one call — no re-entering line items.

List quotations

GET/v1/quotations

Returns recent quotations, newest first.

Query parameters

FieldTypeRequiredNotes
businessIdstringyes
limitintegernoDefault 50, max 100.
statusstringnodraft, sent, accepted, declined, expired, converted.
customerIdstringno

Get a single quotation

GET/v1/quotations/{id}

Create a quotation

POST/v1/quotations

Creates a draft quotation.

Body

FieldTypeRequiredNotes
customerIdstringyes (or customerName)Link to an existing customer.
customerNamestringyes (or id)For ad-hoc prospects.
customerEmailstringno
lineItemsarrayyes1–100 items.
lineItems[].descriptionstringyes
lineItems[].quantitynumberyes
lineItems[].unitPricenumberyesNaira.
lineItems[].taxablebooleannoDefaults to true.
quotationDateISO 8601noDefaults to today.
validUntilISO 8601noExpiry date.
vatRatenumbernoDefaults to 7.5.
notes, terms, referencestringno

Update a quotation

PUT/v1/quotations/{id}

Edits a draft or sent quotation. Accepted, declined, and converted quotations are immutable.

Status transitions

POST/v1/quotations/{id}/send

Marks a quotation as sent to the customer. Typically triggers an email (dashboard-configured).

POST/v1/quotations/{id}/accept

Records customer acceptance. Does not create an invoice automatically — use convert-to-invoice.

POST/v1/quotations/{id}/decline

Records a declined quotation.

Body (for accept/decline)

FieldTypeRequiredNotes
notestringnoShown in the quotation log.

Convert to invoice

POST/v1/quotations/{id}/convert-to-invoice

Creates a draft invoice from the quotation. The quotation status advances to converted.

Response — 201

{
  "success": true,
  "data": {
    "invoiceId": "inv_xyz",
    "invoiceNumber": "INV-2026-017",
    "quotationId": "quo_abc",
    "quotationStatus": "converted"
  }
}

Only accepted quotations can be converted. The resulting invoice starts as draft and follows the regular invoice life cycle.

Related endpoints

Reference index

Back to all modules