Proposals
Get one Proposal
Retrieve a single Proposal record by its Id.
GET
Get one Proposal
A Proposal is a priced offer of one or more contracts that a customer reviews and accepts online. Creating a proposal automatically creates one ProposalContract from the proposal’s own plan, unit, price, and date fields; those fields are create-only here, so later changes must be made on that ProposalContract, and further contracts are added as additional ProposalContract records. Extra products and deposits are held as ProposalProduct records and scheduled price changes as ProposalSchedule records. Three attachments are optional: DocumentToSendId, a document template rendered for the customer in place of the standard price-schedule table; DocumentToSignId, a document template generated for e-signature on acceptance; and ProposalFile, a marketing file the customer can download. Sending the proposal stamps SentOn and moves the status to Sent; acceptance creates the real contracts, products, and discount on the customer and sets the status to Accepted, after which no field on the proposal can be changed.
Authentication
This endpoint requires OAuth2 authentication. Include a valid bearer token in the
Authorization header.
The authenticated user must be a full unrestricted administrator or have the Proposal-Read role.Path Parameters
integer
required
The Id of the Proposal record to retrieve.
Code Examples
Response
200
integer
ID of the location that issued this proposal; it is supplied from the agent’s current location context and its currency is the one all proposal amounts are expressed in..
string
Display value for IssuedBy.Name..
string
Display value for IssuedBy.Currency.Code..
integer
ID of the staff user who owns this proposal; required, and their email address is notified when the customer completes an e-signed document..
string
Display value for Responsible.FullName..
integer
ID of the customer the proposal is addressed to; required, and on acceptance the contracts, products, and discount of this proposal are created against this customer..
string
Display value for Coworker.CoworkerType..
string
Display value for Coworker.FullName..
string
Display value for Coworker.CompanyName..
string
Display value for Coworker.BillingName..
string
Required human-readable reference shown to the customer and used to name the generated e-signature document; the admin UI seeds it as a random six-character code followed by the customer and plan names..
string
Free-text notes about this proposal; they are shown to the customer on the proposal page, so they are not internal-only..
integer
Lifecycle state of the proposal: Draft, Sent (stamped when the proposal is emailed), Accepted (set only by the acceptance flow, after which no field on the proposal can be changed), or Rejected (set manually to withdraw the offer).. See
eProposalStatus enum values: 1 = Draft, 2 = Sent, 3 = Accepted, 4 = Rejected.integer
Optional ID of the document template rendered for the customer in place of the standard price-schedule table; when empty, the standard layout is used..
integer
Optional ID of the document template used to generate the document the customer is asked to e-sign when the proposal is accepted; when empty, no signature is requested..
string
Per-proposal HTML copy of the document to e-sign, produced from DocumentToSign and editable in the document editor; it is cleared automatically whenever DocumentToSign changes..
string
Current file name of the document to sign binary document (read-only; upload via the corresponding URL field).
string
URL of a new file to upload as the document to sign binary document.
boolean
Set to true to remove the current document to sign binary document file.
string
Per-proposal HTML copy of the document presented to the customer, produced from DocumentToSend and editable in the document editor; it is cleared automatically whenever DocumentToSend changes..
string
Current file name of the document to send binary document (read-only; upload via the corresponding URL field).
string
URL of a new file to upload as the document to send binary document.
boolean
Set to true to remove the current document to send binary document file.
string
Current file name of the proposal file (read-only; upload via the corresponding URL field).
string
URL of a new file to upload as the proposal file.
boolean
Set to true to remove the current proposal file file.
integer
ID of the plan being quoted; required, and it is copied into the ProposalContract created with the proposal, so a different plan must be set on that ProposalContract instead..
string
Display value for Tariff.Name..
integer
Display value for Tariff.InvoiceEvery..
integer
Display value for Tariff.InvoiceEveryWeeks..
number
Display value for Tariff.Price..
string
Display value for Tariff.Business.Currency.Code..
integer[]
List of IDs of the floor-plan units quoted in this proposal; each unit must belong to a location the user can access, an empty list means no unit is attached, and the list is copied into the ProposalContract created with the proposal, so later changes belong on that ProposalContract..
integer[]
List of IDs of the floor-plan unit packages quoted in this proposal; each package must belong to one of the units listed in Desks and to a location the user can access, an empty list means none, and the list is copied into the ProposalContract created with the proposal..
number
Optional per-unit price override for the quoted contract, in the issuing location’s currency; when empty the plan’s own price is used. It is copied into the ProposalContract created with the proposal, so later price changes belong on that ProposalContract..
string
Date the quoted contract starts; when empty, acceptance starts it the day after the proposal is accepted. It is copied into the ProposalContract created with the proposal, so later changes belong on that ProposalContract..
integer
Optional minimum cancellation notice, in days before the next billing day, for the quoted contract; when empty the plan’s own notice period applies. It seeds the ProposalContract created with the proposal and cannot be changed here afterwards, so later changes belong on that ProposalContract..
string
End date of the minimum term for the quoted contract; when empty, the contract derives its own term from the plan’s default term and start date. It seeds the ProposalContract created with the proposal and cannot be changed here afterwards, so later changes belong on that ProposalContract..
string
Optional date on which the quoted contract ends; leave empty for an open-ended contract. It is copied into the ProposalContract created with the proposal, so later changes belong on that ProposalContract..
string
Last date the customer may still accept this proposal; acceptance and e-signing are refused once the current UTC time passes this date plus one day, and when empty the proposal expires 30 days after it was created. It stays editable after creation..
integer
Day of the month, from 1 to 28, on which the quoted contract is invoiced; it is copied into the ProposalContract created with the proposal, so later changes belong on that ProposalContract..
integer
Number of plan units quoted, at least 1; it multiplies the unit price. It is copied into the ProposalContract created with the proposal, so later changes belong on that ProposalContract..
integer
Optional ID of a discount code quoted with this proposal; on acceptance it is both copied into the contract and added to the customer’s account..
string
Legacy location-timezone column for StartDate; Proposal is not date-localized, so it is never populated. Read StartDate instead..
string
UTC date and time the proposal was last emailed to the customer; the send action stamps it and no other flow sets it..
string
Legacy location-timezone column for SentOn; Proposal is not date-localized, so it is never populated. Read SentOn instead..
string
UTC date and time the customer last opened the public proposal page; it is stamped automatically on each view and stays empty while the customer has never opened it..
boolean
Whether the contracts created on acceptance are left paused with no renewal date, so no invoice is issued automatically; the location’s Billing.DoNotIssueInvoice setting supplies the default. It is read from the proposal at the moment of acceptance, never copied into the ProposalContract, so it can still be changed while the proposal is not accepted..
integer
Unique record identifier.
string
UUID of the record.
string
Date and time the record was created (ISO 8601).
string
Date and time the record was last updated (ISO 8601).
string
Email of the user who last updated this record.
boolean
Whether the record was recently created.
string
External system identifier.
Example Response