Quotes: queries, documents and delivery
Print a basic quote summary
/a/Quote_print
Return an HTML page containing quote details, notes and form answers, then invoke browser printing.
When to use this endpoint
Use for the legacy Print action. This is an HTML response; do not JSON-decode it or expect the configured Form PDF layout.
Authentication and permissions
Authenticate with signed API-key fields or a CRM session. Requires Quotes View (pageQuotes_view); non-admin users blocked by legacy crm_access bit 32 are denied. Client administrators inherit page permissions.
Quote visibility follows the account’s department/account-manager customer filters for non-admin users, including signed keys. Export routes additionally require pageMain_exportTableData. Linked Jobs require Jobs View and their TeamAccess scope; invoice enrichment requires Invoices View and the legacy invoice access check.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | Positive integer-compatible quote ID | Yes | Must resolve to an active quote. |
Example request
$html = FM_api('Quote_print', ['id'=>'1042']);
Example response
<html><head><style>…</style></head><body>…<script>setTimeout(function(){window.print();}, 500);</script></body></html>
Errors and unusual responses
| Response | Condition |
|---|---|
{"error":"not logged in"} | No authenticated tenant context is available. Invalid signed credentials can be rejected by the dispatcher before the handler runs. |
{"error":"missing or invalid parameter: id"} | Missing/nonpositive ID. |
{"error":"quote does not exist"} | No active quote. |
{"error":"permission denied"} | Required Quotes/Export permission is absent or legacy access restrictions apply. |
Legacy application errors may be returned with HTTP 200. Check the decoded response for error, not only the HTTP status.
Behaviour and edge cases
- Returns an authenticated HTML print page and invokes window.print after 500 milliseconds. CRM1 uses GET /a/Quote_print/id=1042; POST also works. Normal success is HTML and exits, while application errors are JSON.
- Requires an active visible quote and an existing Form with valid field definitions. Malformed stored form answers are rejected without modification.
- Prints the basic overview, notes and supported form values rather than the rich configured PDF layout. Images/signatures use the existing field renderers. It does not recalculate costs, send mail or write a PDF cache.
- No direct caller for this endpoint was found in the mobile app or its m-service intermediary.
Side effects
- Reads active permitted records without quote cost, history, email or derived Job-cache writes.
See it in Fieldmotion
CRM1
Quotes → Print opens a small iframe using the authenticated GET path and the quote ID.
CRM2
No active direct Quote_print caller found; the commented moduleQuotes branch is replaced by PDF/report actions.
Related endpoints
Quote_getPdfrenders the configured Form PDF/HTML instead.