A quote is a priced proposal you send a client before any work or billing starts. This API drafts quotes, takes them through approval and delivery, tracks revisions, and converts the accepted ones into downstream records.
Only client_id is required. Pass title, valid_until, terms, and an items array up front, or add lines afterward with POST /quotes/{id}/items and reorder them via POST /quotes/{id}/items/reorder.
curl https://algapsa.com/api/v1/quotes \
-H "X-API-Key: $ALGA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"client_id": "cl_3f9a2c",
"title": "Q3 firewall refresh",
"valid_until": "2026-09-30",
"terms": "50% on acceptance, balance on delivery"
}'The lifecycle runs through dedicated actions, not status writes. Push a draft to reviewers with POST /quotes/{id}/submit-for-approval, sign off with /approve, then deliver via /send. After that, /resend, /remind, and /request-changes keep the conversation moving. When the client accepts, preview the result with GET /quotes/{id}/convert/preview before committing with POST /quotes/{id}/convert.
Cut a new version with POST /quotes/{id}/revisions and read the chain from GET /quotes/{id}/revisions. Every send, reminder, and change request lands in GET /quotes/{id}/activities for an audit trail.
Every endpoint links through to its full parameters, request and response schemas, and code samples.
GET/api/v1/quotesAlgaPSAList quotesPOST/api/v1/quotesAlgaPSACreate quoteGET/api/v1/quotes/{id}AlgaPSAGet quotePUT/api/v1/quotes/{id}AlgaPSAUpdate quoteDELETE/api/v1/quotes/{id}AlgaPSADelete quoteGET/api/v1/quotes/{id}/activitiesAlgaPSAList quote activitiesPOST/api/v1/quotes/{id}/approveAlgaPSAApprove quotePOST/api/v1/quotes/{id}/convertAlgaPSAConvert quoteGET/api/v1/quotes/{id}/convert/previewAlgaPSAPreview quote conversionGET/api/v1/quotes/{id}/itemsAlgaPSAList quote itemsPOST/api/v1/quotes/{id}/itemsAlgaPSAAdd quote itemPUT/api/v1/quotes/{id}/items/{itemId}AlgaPSAUpdate quote itemDELETE/api/v1/quotes/{id}/items/{itemId}AlgaPSADelete quote itemPOST/api/v1/quotes/{id}/items/reorderAlgaPSAReorder quote itemsPOST/api/v1/quotes/{id}/remindAlgaPSASend quote reminderPOST/api/v1/quotes/{id}/request-changesAlgaPSARequest quote changesPOST/api/v1/quotes/{id}/resendAlgaPSAResend quoteGET/api/v1/quotes/{id}/revisionsAlgaPSAList quote revisionsPOST/api/v1/quotes/{id}/revisionsAlgaPSACreate quote revisionPOST/api/v1/quotes/{id}/sendAlgaPSASend quotePOST/api/v1/quotes/{id}/submit-for-approvalAlgaPSASubmit quote for approval