Proposals
Search Proposals
Search and list Proposal records with filtering, sorting, and pagination.
GET
Search Proposals
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-List role.Enums
eProposalStatus — ProposalStatus values
eProposalStatus — ProposalStatus values
Query Parameters
Pagination & Sorting
integer
default:"1"
The page number to retrieve.
integer
default:"25"
The number of records per page.
string
The property name to sort results by (e.g.
Name, CreatedOn).integer
Sort direction.
0 for ascending, 1 for descending.Filters
integer
Filter by 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
Filter by display value for IssuedBy.Name..
string
Filter by display value for IssuedBy.Currency.Code..
integer
Filter by 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
Filter by display value for Responsible.FullName..
integer
Filter by 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
Filter by display value for Coworker.CoworkerType..
string
Filter by display value for Coworker.FullName..
string
Filter by display value for Coworker.CompanyName..
string
Filter by display value for Coworker.BillingName..
string
Filter by 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
Filter by free-text notes about this proposal; they are shown to the customer on the proposal page, so they are not internal-only..
integer
Filter by 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)..
integer
Filter by 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
Filter by 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
Filter by 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
Filter by current file name of the document to sign binary document (read-only; upload via the corresponding URL field).
string
Filter by uRL of a new file to upload as the document to sign binary document.
boolean
Filter by set to true to remove the current document to sign binary document file.
string
Filter by 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
Filter by current file name of the document to send binary document (read-only; upload via the corresponding URL field).
string
Filter by uRL of a new file to upload as the document to send binary document.
boolean
Filter by set to true to remove the current document to send binary document file.
string
Filter by current file name of the proposal file (read-only; upload via the corresponding URL field).
string
Filter by uRL of a new file to upload as the proposal file.
boolean
Filter by set to true to remove the current proposal file file.
integer
Filter by 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
Filter by display value for Tariff.Name..
integer
Filter by display value for Tariff.InvoiceEvery..
integer
Filter by display value for Tariff.InvoiceEveryWeeks..
number
Filter by display value for Tariff.Price..
string
Filter by display value for Tariff.Business.Currency.Code..
number
Filter by 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
Filter by 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
Filter by 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
Filter by 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
Filter by 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
Filter by 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
Filter by 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
Filter by 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
Filter by 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
Filter by legacy location-timezone column for StartDate; Proposal is not date-localized, so it is never populated. Read StartDate instead..
string
Filter by uTC date and time the proposal was last emailed to the customer; the send action stamps it and no other flow sets it..
string
Filter by legacy location-timezone column for SentOn; Proposal is not date-localized, so it is never populated. Read SentOn instead..
string
Filter by 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
Filter by 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..
Range Filters
integer
Filter by display value for Tariff.InvoiceEvery. greater than or equal to this value.
integer
Filter by display value for Tariff.InvoiceEvery. less than or equal to this value.
integer
Filter by display value for Tariff.InvoiceEveryWeeks. greater than or equal to this value.
integer
Filter by display value for Tariff.InvoiceEveryWeeks. less than or equal to this value.
number
Filter by display value for Tariff.Price. greater than or equal to this value.
number
Filter by display value for Tariff.Price. less than or equal to this value.
number
Filter by 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. greater than or equal to this value.
number
Filter by 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. less than or equal to this value.
string
Filter by 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. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.integer
Filter by 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. greater than or equal to this value.
integer
Filter by 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. less than or equal to this value.
string
Filter by 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. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.integer
Filter by 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. greater than or equal to this value.
integer
Filter by 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. less than or equal to this value.
integer
Filter by 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. greater than or equal to this value.
integer
Filter by 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. less than or equal to this value.
string
Filter by legacy location-timezone column for StartDate; Proposal is not date-localized, so it is never populated. Read StartDate instead. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by legacy location-timezone column for StartDate; Proposal is not date-localized, so it is never populated. Read StartDate instead. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by uTC date and time the proposal was last emailed to the customer; the send action stamps it and no other flow sets it. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by uTC date and time the proposal was last emailed to the customer; the send action stamps it and no other flow sets it. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by legacy location-timezone column for SentOn; Proposal is not date-localized, so it is never populated. Read SentOn instead. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by legacy location-timezone column for SentOn; Proposal is not date-localized, so it is never populated. Read SentOn instead. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. greater than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter by 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. less than or equal to this value. Format:
YYYY-MM-DDTHH:mm.string
Filter records created on or after this date. Format:
YYYY-MM-DDTHH:mm.string
Filter records created on or before this date. Format:
YYYY-MM-DDTHH:mm.string
Filter records updated on or after this date. Format:
YYYY-MM-DDTHH:mm.string
Filter records updated on or before this date. Format:
YYYY-MM-DDTHH:mm.Code Examples
Simple listing
Filtering by Reference
Range filters
Response
200
Proposal[]
The list of Proposal records matching the query. See the Get one Proposal endpoint for the full list of properties returned for each record.
integer
Current page number.
integer
Number of records per page.
string
The field used for sorting.
integer
The sort direction (
0 = ascending, 1 = descending).integer
Index of the first item on the current page.
integer
Index of the last item on the current page.
integer
Total number of matching records across all pages.
integer
Total number of pages.
boolean
Whether there is a next page of results.
boolean
Whether there is a previous page of results.
Example Response