Evenbead docs

Estimates

6 operations. All areas

POST/v1/estimates

Create an estimate for a customer (never posts; convert it into an invoice later). dry_run previews number and totals.

  • Operation createEstimate
  • Scope: propose
  • Write: needs Idempotency-Key (or dry_run)
Request body
  • contact_id string, required
  • number string Optional; assigned (EST-0001) when omitted
  • estimate_date string, required Calendar date, YYYY-MM-DD.
  • expiry_date string Calendar date, YYYY-MM-DD.
  • reference string
  • memo string
  • tax_rate_id string
  • lines array of DocumentLineInput, required
  • dry_run boolean
Responses
  • 200 Dry run: the estimate it would create (object)
  • 201 Created (object)
  • Errors 400, 401, 403, 409, 422, 429, 500 (Error: error.type, message)

GET/v1/estimates

Estimates, newest first

  • Operation listEstimates
  • Scope: read
  • Read
Parameters
  • status query, "open" | "accepted" | "declined" | "converted" | "void"
  • contact_id query, string
  • as_of query, string
  • limit query, integer
Responses
  • 200 Estimates (object)
  • Errors 400, 401, 403, 429, 500 (Error: error.type, message)

GET/v1/estimates/{id}

One estimate with its lines

  • Operation getEstimate
  • Scope: read
  • Read
Parameters
  • id path, string, required
Responses
  • 200 Estimate (object)
  • Errors 400, 401, 403, 404, 429, 500 (Error: error.type, message)

POST/v1/estimates/{id}/status

Mark an estimate accepted, declined, open again, or void it (with a reason). Converted and void are final.

  • Operation setEstimateStatus
  • Scope: propose
  • Write: needs Idempotency-Key (or dry_run)
Parameters
  • id path, string, required
Request body
  • status "open" | "accepted" | "declined" | "void", required
  • reason string
Responses
  • 200 Updated (object)
  • Errors 400, 401, 403, 404, 409, 422, 429, 500 (Error: error.type, message)

POST/v1/estimates/{id}/convert

Convert an open or accepted estimate into an invoice (its lines, prices and tax rate), through the same governance as creating an invoice; the estimate is marked converted with it.

  • Operation convertEstimate
  • Scope: propose
  • Write: needs Idempotency-Key (or dry_run)
Parameters
  • id path, string, required
Request body
  • doc_date string Invoice date (default: the server's today)
  • due_date string Calendar date, YYYY-MM-DD.
  • terms_days integer
  • number string
  • memo string
  • dry_run boolean
  • confidence number
  • soft_lock_override_reason string
Responses
  • 200 Dry run (DocumentResult)
  • 201 Invoice posted; estimate converted (DocumentResult)
  • 202 Queued for approval (DocumentResult)
  • Errors 400, 401, 403, 404, 409, 422, 429, 500 (Error: error.type, message)

GET/v1/estimates/{id}/pdf

Render an estimate as a PDF (server-side; nothing is sent anywhere)

  • Operation renderEstimatePdf
  • Scope: read
  • Read
Parameters
  • id path, string, required
  • format query, "pdf" | "base64"
Responses
  • 200 The PDF (or with format=base64, JSON) (PdfFile)
  • Errors 400, 401, 403, 404, 429, 500 (Error: error.type, message)