Record Quote Acceptance
POST/api/quotes/:quote/record-acceptance
Record the customer's acceptance of an issued quote (sent or viewed status) together with the signer's details, and transition the quote to accepted. The signer's IP address and user agent are captured automatically from the request.
orders:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
When the quote has optional or single-select lines, selected_line_ids pins exactly which lines were accepted — an explicit empty array means "no optional add-ons" and deselects previously selected optional lines. Omit the field to keep the current selection.
Body fields:
signer_name(required, string, max 255) — name of the person accepting.signature_data(optional, string, nullable) — captured signature image data.selected_line_ids(optional, array of integers, nullable) — the accepted optional/single-select line IDs.
Returns the accepted quote. 422 when the quote is not in an accepting state.
Authentication: Requires Bearer token.
Request
Responses
- 200
- 401
- 403
- 404
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Not found — no record with the given identifier (or the route does not exist). Verify the ID before retrying.
Unprocessable Entity
Response Headers
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.