Skip to main content
POST
/
api
/
billing
/
proposalcontracts
Create ProposalContract
curl --request POST \
  --url https://spaces.nexudus.com/api/billing/proposalcontracts \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "ProposalId": 123,
  "TariffId": 123,
  "BillingDay": 123,
  "Quantity": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A ProposalContract links a contract configuration to a proposal, defining the pricing plan and terms that will be applied if the proposal is accepted by the customer.

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 ProposalContract-Create role.

Request Body

Required Fields

ProposalId
integer
required
ID of the proposal linked to this record.
TariffId
integer
required
ID of the tariff linked to this record.
BillingDay
integer
required
Billing day of month.
Quantity
integer
required
Number of units.

Optional Fields

Desks
integer[]
List of desks linked to this record.
Variants
integer[]
List of variants linked to this record.
Price
number
Price override.
StartDate
string
Contract start date.
CancellationLimitDays
integer
Cancellation limit in days.
ContractTerm
string
Contract term end date.
CancellationDate
string
Cancellation date.
DiscountCodeId
integer
ID of the discount code linked to this record.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/billing/proposalcontracts" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "ProposalId": 0,
    "TariffId": 0,
    "BillingDay": 0,
    "Quantity": 0
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the creation.
Value
object
Contains the Id of the newly created record.
WasSuccessful
boolean
true if the proposalcontract was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "ProposalContract was successfully created.",
  "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": "Name: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Name"
    }
  ],
  "WasSuccessful": false
}