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

ParameterTypeRequiredDescription
idPositive integer-compatible quote IDYesMust 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

ResponseCondition
{"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_getPdf renders the configured Form PDF/HTML instead.