API REFERENCE

Quotes API

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.

Draft one

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
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"
  }'

Approve, send, convert

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.

Revisions and history

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.

Endpoints

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