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
/v1/quotationsReturns recent quotations, newest first.
Query parameters
| Field | Type | Required | Notes |
|---|---|---|---|
businessId | string | yes | |
limit | integer | no | Default 50, max 100. |
status | string | no | draft, sent, accepted, declined, expired, converted. |
customerId | string | no |
Get a single quotation
/v1/quotations/{id}Create a quotation
/v1/quotationsCreates a draft quotation.
Body
| Field | Type | Required | Notes |
|---|---|---|---|
customerId | string | yes (or customerName) | Link to an existing customer. |
customerName | string | yes (or id) | For ad-hoc prospects. |
customerEmail | string | no | |
lineItems | array | yes | 1–100 items. |
lineItems[].description | string | yes | |
lineItems[].quantity | number | yes | |
lineItems[].unitPrice | number | yes | Naira. |
lineItems[].taxable | boolean | no | Defaults to true. |
quotationDate | ISO 8601 | no | Defaults to today. |
validUntil | ISO 8601 | no | Expiry date. |
vatRate | number | no | Defaults to 7.5. |
notes, terms, reference | string | no |
Update a quotation
/v1/quotations/{id}Edits a draft or sent quotation. Accepted, declined, and converted quotations are immutable.
Status transitions
/v1/quotations/{id}/sendMarks a quotation as sent to the customer. Typically triggers an email (dashboard-configured).
/v1/quotations/{id}/acceptRecords customer acceptance. Does not create an invoice automatically — use convert-to-invoice.
/v1/quotations/{id}/declineRecords a declined quotation.
Body (for accept/decline)
| Field | Type | Required | Notes |
|---|---|---|---|
note | string | no | Shown in the quotation log. |
Convert to invoice
/v1/quotations/{id}/convert-to-invoiceCreates 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