Skip to main content
PUT
/
api
/
billing
/
proposals
Update Proposal
curl --request PUT \
  --url https://spaces.nexudus.com/api/billing/proposals \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "Id": 123,
  "IssuedById": 123,
  "ResponsibleId": 123,
  "CoworkerId": 123,
  "Reference": "<string>",
  "ProposalStatus": 123,
  "TariffId": 123,
  "BillingDay": 123,
  "Quantity": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
Updates an existing Proposal record. You must include the Id of the record to update along with all required fields.

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-Edit role.

Enums

ValueName
1Draft
2Sent
3Accepted
4Rejected

Request Body

Required Fields

Id
integer
required
The Id of the Proposal record to update.
IssuedById
integer
required
ID of the issued by linked to this record.
ResponsibleId
integer
required
ID of the responsible linked to this record.
CoworkerId
integer
required
ID of the coworker linked to this record.
Reference
string
required
Proposal reference.
ProposalStatus
integer
required
Proposal status.
TariffId
integer
required
ID of the tariff linked to this record.
BillingDay
integer
required
Billing day of month for the initial contract. Becomes read-only after creation; edit via ProposalContract.
Quantity
integer
required
Quantity for the initial contract. Becomes read-only after creation; edit via ProposalContract.

Optional Fields

Notes
string
Optional notes or comments about this proposal.
DocumentToSendId
integer
ID of the document to send linked to this record.
DocumentToSignId
integer
ID of the document to sign linked to this record.
DocumentToSignHtml
string
The document to sign html value for this proposal.
NewDocumentToSignBinaryDocumentUrl
string
URL of a new file to upload as the document to sign binary document.
ClearDocumentToSignBinaryDocumentFile
boolean
Set to true to remove the current document to sign binary document file.
DocumentToSendHtml
string
The document to send html value for this proposal.
NewDocumentToSendBinaryDocumentUrl
string
URL of a new file to upload as the document to send binary document.
ClearDocumentToSendBinaryDocumentFile
boolean
Set to true to remove the current document to send binary document file.
NewProposalFileUrl
string
URL of a new file to upload as the proposal file.
ClearProposalFileFile
boolean
Set to true to remove the current proposal file file.
Desks
integer[]
List of desks linked to this record.
AddedDesks
integer[]
The added desks value for this proposal.
RemovedDesks
integer[]
The removed desks value for this proposal.
Variants
integer[]
List of variants linked to this record.
AddedVariants
integer[]
The added variants value for this proposal.
RemovedVariants
integer[]
The removed variants value for this proposal.
Price
number
Price override for the initial contract. Becomes read-only after creation; edit via ProposalContract.
StartDate
string
Start date for the initial contract. Becomes read-only after creation; edit via ProposalContract.
CancellationLimitDays
integer
Cancellation limit in days for the initial contract. Becomes read-only after creation; edit via ProposalContract.
ContractTerm
string
Contract term end date for the initial contract. Becomes read-only after creation; edit via ProposalContract.
CancellationDate
string
Cancellation date for the initial contract. Becomes read-only after creation; edit via ProposalContract.
ExpirationDate
string
Proposal expiration date. Becomes read-only after creation; edit via ProposalContract.
DiscountCodeId
integer
ID of the discount code linked to this record.
StartDateLocal
string
Date/time value for start date local.
SentOnLocal
string
Date/time value for sent on local.
DoNotIssueInvoice
boolean
If true, the first invoice is not issued automatically when the proposal is accepted.

Code Examples

curl -X PUT \
  "https://spaces.nexudus.com/api/billing/proposals" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "IssuedById": 0,
    "ResponsibleId": 0,
    "CoworkerId": 0,
    "Reference": "",
    "ProposalStatus": 0,
    "TariffId": 0,
    "BillingDay": 0,
    "Quantity": 0,
    "Id": 87654321
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the update.
Value
object
Contains the Id of the updated record.
WasSuccessful
boolean
true if the proposal was updated successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "Proposal was successfully updated.",
  "Value": {
    "Id": 87654321
  },
  "OpenInDialog": false,
  "OpenInWindow": false,
  "RedirectURL": null,
  "JavaScript": null,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "UpdatedBy": "admin@example.com",
  "Errors": null,
  "WasSuccessful": true
}

400

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "Reference: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Reference"
    }
  ],
  "WasSuccessful": false
}