Reference

Proposal

The proposal object

Attributes
Id: int required, autogenerated, unique
The unique identifier for this proposal
BillingDay: int required
CancellationDate: DateTime? optional
CancellationLimitDays: int? optional
ContractTerm: DateTime? optional
CoworkerId: Id required
DiscountCodeId: Id optional
DocumentToSendId: Id optional
DocumentToSendHtml: string optional
DocumentToSignId: Id optional
DocumentToSignHtml: string optional
IssuedById: Id required
Notes: string optional
Price: decimal? optional
ProposalStatus: Nexudus.Coworking.Core.Enums.eProposalStatus optional
Quantity: int required
Reference: string required
ResponsibleId: Id required
SentOn: DateTime? optional read-only
StartDate: DateTime? optional
TariffId: Id required
UniqueId: Guid required, autogenerated, unique
The globally unique identifier for this proposal
SystemId: string optional api-only
User defined data about this proposal. This property can only be seen and updated using the API.

Json Structure Example


{
  "Id": 1234567,
  "BillingDay": ,
  "CancellationDate": ,
  "CancellationLimitDays": ,
  "ContractTerm": ,
  "CoworkerId": 12345678,
  "DiscountCodeId": 12345678,
  "DocumentToSendId": 12345678,
  "DocumentToSendHtml": "Abc123456",
  "DocumentToSignId": 12345678,
  "DocumentToSignHtml": "Abc123456",
  "IssuedById": 12345678,
  "Notes": "Notes",
  "Price": ,
  "ProposalStatus": 1,
  "Quantity": ,
  "Reference": "00001",
  "ResponsibleId": 12345678,
  "SentOn": ,
  "StartDate": ,
  "TariffId": 12345678,
  "UniqueId": "b765df0e-6d6d-4c0b-8078-9eea801df641",
  "SystemId": "{ metadata: { id: 887766, processed: true } }"
}


Find a Proposal

This endpoint allows you to GET a list of proposals based on one or more filter querystring parameters.

GET https://spaces.nexudus.com/api/billing/proposals?...

πŸ”’ Requires role "Proposal-List"

Pagination querystring parameters
Lets control how many records to return at a time and their order.
page integer optional
?page=1
size integer optional default=25
Sets the maximum number of records to return each page of results.
?size=25
orderby string optional default=Id
Sets the property to use when ordering the results of the search.
?orderby=Id
dir 'ascending' or 'descending' optional default=SortDirection.Ascending
Sets the direction to use when ordering the records.
?sort=ascending

Search querystring parameters
Lets you search proposal records based on their different properties.
Id number
?Id=12345678
Proposal_BillingDay int
?Proposal_BillingDay=...
Proposal_CancellationDate DateTime?
?Proposal_CancellationDate=...
Proposal_CancellationLimitDays int?
?Proposal_CancellationLimitDays=...
Proposal_ContractTerm DateTime?
?Proposal_ContractTerm=...
Proposal_Coworker Coworker
?Proposal_Coworker=...
Proposal_DiscountCode DiscountCode
?Proposal_DiscountCode=...
Proposal_DocumentToSend DocumentTemplate
?Proposal_DocumentToSend=...
Proposal_DocumentToSendHtml string
?Proposal_DocumentToSendHtml=...
Proposal_DocumentToSign DocumentTemplate
?Proposal_DocumentToSign=...
Proposal_DocumentToSignHtml string
?Proposal_DocumentToSignHtml=...
Proposal_IssuedBy Business
?Proposal_IssuedBy=...
Proposal_Notes string
?Proposal_Notes=...
Proposal_Price decimal?
?Proposal_Price=...
Proposal_ProposalStatus Nexudus.Coworking.Core.Enums.eProposalStatus
?Proposal_ProposalStatus=...
Proposal_Quantity int
?Proposal_Quantity=...
Proposal_Reference string
?Proposal_Reference=...
Proposal_Responsible User
?Proposal_Responsible=...
Proposal_SentOn DateTime?
?Proposal_SentOn=...
Proposal_StartDate DateTime?
?Proposal_StartDate=...
Proposal_Tariff Tariff
?Proposal_Tariff=...
Proposal_IssuedByName string
?Proposal_IssuedByName=...
Proposal_IssuedByCurrency_Code string
?Proposal_IssuedByCurrency_Code=...
Proposal_ResponsibleFullName string
?Proposal_ResponsibleFullName=...
Proposal_CoworkerCoworkerType string
?Proposal_CoworkerCoworkerType=...
Proposal_CoworkerFullName string
?Proposal_CoworkerFullName=...
Proposal_CoworkerCompanyName string
?Proposal_CoworkerCompanyName=...
Proposal_CoworkerBillingName string
?Proposal_CoworkerBillingName=...
Proposal_TariffName string
?Proposal_TariffName=...
Proposal_Desks List of FloorPlanDesk
?Proposal_Desks=...

Range search querystring parameters
Lets you search proposal records based on a range of date or numeric values.
To_Proposal_CreatedOn date
?To_Proposal_CreatedOn=2010-01-01T20:32
From_Proposal_CreatedOn date
?From_Proposal_CreatedOn=2010-01-01T20:32
To_Proposal_UpdatedOn date
?To_Proposal_UpdatedOn=2010-01-01T20:32
From_Proposal_UpdatedOn date
?From_Proposal_UpdatedOn=2010-01-01T20:32
To_Proposal_Price number
?To_Proposal_Price=0
From_Proposal_Price number
?From_Proposal_Price=10
To_Proposal_StartDate date
?To_Proposal_StartDate=2010-01-01T20:32
From_Proposal_StartDate date
?From_Proposal_StartDate=2010-01-01T20:32
To_Proposal_CancellationLimitDays number
?To_Proposal_CancellationLimitDays=0
From_Proposal_CancellationLimitDays number
?From_Proposal_CancellationLimitDays=10
To_Proposal_ContractTerm date
?To_Proposal_ContractTerm=2010-01-01T20:32
From_Proposal_ContractTerm date
?From_Proposal_ContractTerm=2010-01-01T20:32
To_Proposal_CancellationDate date
?To_Proposal_CancellationDate=2010-01-01T20:32
From_Proposal_CancellationDate date
?From_Proposal_CancellationDate=2010-01-01T20:32
To_Proposal_BillingDay number
?To_Proposal_BillingDay=0
From_Proposal_BillingDay number
?From_Proposal_BillingDay=10
To_Proposal_Quantity number
?To_Proposal_Quantity=0
From_Proposal_Quantity number
?From_Proposal_Quantity=10
To_Proposal_SentOn date
?To_Proposal_SentOn=2010-01-01T20:32
From_Proposal_SentOn date
?From_Proposal_SentOn=2010-01-01T20:32

Example request

GET https://spaces.nexudus.com/api/billing/proposals?Proposal_Id=...
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

Example response


{
    "Records": [{
        "Id": 1234567,
        "IssuedBy": ,
        "Responsible": ,
        "Coworker": ,
        "Reference": "00001",
        "Notes": "Notes",
        "ProposalStatus": 1,
        "DocumentToSend": ,
        "DocumentToSign": ,
        "DocumentToSignHtml": "Abc123456",
        "DocumentToSendHtml": "Abc123456",
        "Tariff": ,
        "Price": ,
        "StartDate": ,
        "CancellationLimitDays": ,
        "ContractTerm": ,
        "CancellationDate": ,
        "BillingDay": ,
        "Quantity": ,
        "DiscountCode": ,
        "SentOn": ,
        "ProposalIssuedByName": "...",
        "ProposalIssuedByCurrency_Code": "...",
        "ProposalResponsibleFullName": "...",
        "ProposalCoworkerCoworkerType": "...",
        "ProposalCoworkerFullName": "...",
        "ProposalCoworkerCompanyName": "...",
        "ProposalCoworkerBillingName": "...",
        "ProposalTariffName": "...",
        "CreatedOn": "2018-07-03T06:23:01Z",
        "UpdatedOn": "2020-01-01T21:57:21Z",
        "UpdatedBy": "System",
        "UniqueId": "9ec30f99-f1ab-4cc1-869e-928857aa097b",
        "SystemId": "{ metadata: { id: 887766, processed: true } }"
    }],
    "CurrentPageSize": 25,
    "CurrentPage": 1,
    "CurrentOrderField": "Id",
    "CurrentSortDirection": 1,
    "FirstItem": 1,
    "HasNextPage": true,
    "HasPreviousPage": false,
    "LastItem": 25,
    "PageNumber": 1,
    "PageSize": 25,
    "TotalItems": 60,
    "TotalPages": 3
}


Find Proposals by IDs

Gets one or more proposal records based on their Id.
GET https://spaces.nexudus.com/api/billing/proposals?Proposal_Id=[:id1,:id2,...]

πŸ”’ Requires role "Proposal-List"

Querystring parameters
Proposal_Id: array requried
?Proposal_Id=[12345678,87654651]

Example request

GET https://spaces.nexudus.com/api/billing/proposals?Proposal_Id=[1234567,9876541]
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

Example response


{
    "Records": [{
        "Id": 1234567,
        "IssuedBy": ,
        "Responsible": ,
        "Coworker": ,
        "Reference": "00001",
        "Notes": "Notes",
        "ProposalStatus": 1,
        "DocumentToSend": ,
        "DocumentToSign": ,
        "DocumentToSignHtml": "Abc123456",
        "DocumentToSendHtml": "Abc123456",
        "Tariff": ,
        "Price": ,
        "StartDate": ,
        "CancellationLimitDays": ,
        "ContractTerm": ,
        "CancellationDate": ,
        "BillingDay": ,
        "Quantity": ,
        "DiscountCode": ,
        "SentOn": ,
        "ProposalIssuedByName": "...",
        "ProposalIssuedByCurrency_Code": "...",
        "ProposalResponsibleFullName": "...",
        "ProposalCoworkerCoworkerType": "...",
        "ProposalCoworkerFullName": "...",
        "ProposalCoworkerCompanyName": "...",
        "ProposalCoworkerBillingName": "...",
        "ProposalTariffName": "...",
        "CreatedOn": "2018-07-03T06:23:01Z",
        "UpdatedOn": "2020-01-01T21:57:21Z",
        "UpdatedBy": "System",
        "UniqueId": "155c1b3d-b906-437f-91fb-4ca268b30124",
        "SystemId": "{ metadata: { id: 887766, processed: true } }"
    }],
    "CurrentPageSize": 25,
    "CurrentPage": 1,
    "CurrentOrderField": "Id",
    "CurrentSortDirection": 1,
    "FirstItem": 1,
    "HasNextPage": true,
    "HasPreviousPage": false,
    "LastItem": 1,
    "PageNumber": 1,
    "PageSize": 25,
    "TotalItems": 1,
    "TotalPages": 1
}


Get single Proposal by Id

Gets one proposal record by its Id.
GET https://spaces.nexudus.com/api/billing/proposals/:Id

πŸ”’ Requires role "Proposal-Read"

URL parameters
Id: number requried

Example request

GET https://spaces.nexudus.com/api/billing/proposals/1234567
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

Example response


{
  "Id": 1234567,
  "BillingDay": ,
  "CancellationDate": ,
  "CancellationLimitDays": ,
  "ContractTerm": ,
  "CoworkerId": 12345678,
  "DiscountCodeId": 12345678,
  "DocumentToSendId": 12345678,
  "DocumentToSendHtml": "Abc123456",
  "DocumentToSignId": 12345678,
  "DocumentToSignHtml": "Abc123456",
  "IssuedById": 12345678,
  "Notes": "Notes",
  "Price": ,
  "ProposalStatus": 1,
  "Quantity": ,
  "Reference": "00001",
  "ResponsibleId": 12345678,
  "SentOn": ,
  "StartDate": ,
  "TariffId": 12345678,
  "CreatedOn": "2018-07-03T06:23:01Z",
  "UpdatedOn": "2020-01-01T21:57:21Z",
  "UpdatedBy": "System",
  "UniqueId": "05032dc1-1422-450d-8d8a-9222b6a47ca1",
  "SystemId": "{ metadata: { id: 887766, processed: true } }"
}


Create new Proposal

Creates a new proposal.
POST https://spaces.nexudus.com/api/billing/proposals

πŸ”’ Requires role "Proposal-Create"

Body parameters
IssuedById: number required
ResponsibleId: number required
CoworkerId: number required
Reference: string required
Notes: string optional
ProposalStatus: Nexudus.Coworking.Core.Enums.eProposalStatus optional
DocumentToSendId: number optional
DocumentToSignId: number optional
DocumentToSignHtml: string optional
DocumentToSendHtml: string optional
TariffId: number required
Price: decimal? optional
StartDate: DateTime? optional
CancellationLimitDays: int? optional
CancellationDate: DateTime? optional
BillingDay: int required
Quantity: int required
DiscountCodeId: number optional

Example request

POST https://spaces.nexudus.com/api/billing/proposals
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

{
    "IssuedById": 12345678,
    "ResponsibleId": 12345678,
    "CoworkerId": 12345678,
    "Reference": "00001",
    "Notes": "Notes",
    "ProposalStatus": 1, //(check Enumerated values section below)
    "DocumentToSendId": 12345678,
    "DocumentToSignId": 12345678,
    "DocumentToSignHtml": "Abc123456",
    "DocumentToSendHtml": "Abc123456",
    "TariffId": 12345678,
    "Desks": [12345678, 87654321],
    "Price": ,
    "StartDate": ,
    "CancellationLimitDays": ,
    "CancellationDate": ,
    "BillingDay": ,
    "Quantity": ,
    "DiscountCodeId": 12345678,
}


Example valid response


{
    "Status": 200,
    "WasSuccessful": true,
    "Message": "Record 'Name of the record' has been succesfully created.",
    "Value": {
        "Id": 12354678
    }
}


Example invalid response


{
    "Status": 500,
    "Message": "Name: may not be null or empty",
    "Value": null,
    "WasSuccessful": false,
    "Errors": [
        {
            "AttemptedValue": null,
            "Message": "may not be null or empty",
            "PropertyName": "Name"
        },
    ]
}


Update Proposal

Updates an existing proposal.
PUT https://spaces.nexudus.com/api/billing/proposals

PUT requests require ALL record properties to be submitted with every request. Any missing properties will be cleared or set to false.

πŸ”’ Requires role "Proposal-Edit"

Body parameters
Id: number required
The unique Id of the proposal to update.
IssuedById: number cleared if missing
ResponsibleId: number cleared if missing
CoworkerId: number cleared if missing
Reference: string cleared if missing
Notes: string cleared if missing
ProposalStatus: Nexudus.Coworking.Core.Enums.eProposalStatus cleared if missing
DocumentToSendId: number cleared if missing
DocumentToSignId: number cleared if missing
DocumentToSignHtml: string cleared if missing
DocumentToSendHtml: string cleared if missing
CancellationLimitDays: int? cleared if missing
ContractTerm: DateTime? cleared if missing

Example request

PUT https://spaces.nexudus.com/api/billing/proposals
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

{
    "Id": 12345678,
    "IssuedById": 12345678,
    "ResponsibleId": 12345678,
    "CoworkerId": 12345678,
    "Reference": "00001",
    "Notes": "Notes",
    "ProposalStatus": 1, //(check Enumerated values section below)
    "DocumentToSendId": 12345678,
    "DocumentToSignId": 12345678,
    "DocumentToSignHtml": "Abc123456",
    "DocumentToSendHtml": "Abc123456",
    "TariffId": 12345678,
    "Desks": [12345678, 87654321],
    "Price": ,
    "StartDate": ,
    "CancellationLimitDays": ,
    "CancellationDate": ,
    "BillingDay": ,
    "Quantity": ,
    "DiscountCodeId": 12345678,
}


Example valid response


{
    "Status": 200,
    "WasSuccessful": true,
    "Message": "Record 'Name of the record' has been succesfully updated.",
    "Value": {
        "Id": 12354678
    }
}


Example invalid response


{
    "Status": 500,
    "Message": "Name: may not be null or empty",
    "Value": null,
    "WasSuccessful": false,
    "Errors": [
        {
            "AttemptedValue": null,
            "Message": "may not be null or empty",
            "PropertyName": "Name"
        },
    ]
}


Delete Proposal

Deletes an existing proposal by its Id.
DELETE https://spaces.nexudus.com/api/billing/proposals/:Id

πŸ”’ Requires role "Proposal-Delete"

URL parameters
Id: number required
The unique Id of the proposal to update.

Example request

DELETE https://spaces.nexudus.com/api/billing/proposals/12345678
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

Example valid response


{
    "Status": 200,
    "WasSuccessful": true,
    "Message": "The record was deleted successfully.",
    "Value": null,
    "OpenInDialog": false,
    "RedirectURL": null,
    "JavaScript": null,
    "Errors": null
}


Commands

Commands allow to perform actions against one or more proposal records. Some commands accept only one record while others can run an action for a number of records at the same time. Each command has metadata with information about how it can be used and the amount of records, if any, it needs to run.

Get Commands

Get all commands available to run for proposal records.
GET https://spaces.nexudus.com/api/billing/proposals/commands

Example request

GET https://spaces.nexudus.com/api/billing/proposals/commands
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

Example valid response


[
	{
		"Key": "COMMAND_KEY_1",
		"Name": "Command 1 english description",
		"AppliesOnlyToMultipleEntities": false,
		"DisplayInDropdown": true,
		"DisplayInDropdownV2": true,
		"AppliesOnlyToOneEntity": false,
		"AppliesOnlyToTwoEntities": false,
		"DisplayInGrid": false,
		"NeedsEntitiesToRun": true,
		"Order": 2,
		"RequiresParameters": []
	},
	{
		"Key": "COMMAND_KEY_2",
		"Name": "Command 2 english description",
		"AppliesOnlyToMultipleEntities": false,
		"DisplayInDropdown": true,
		"DisplayInDropdownV2": true,
		"AppliesOnlyToOneEntity": true,
		"AppliesOnlyToTwoEntities": false,
		"DisplayInGrid": true,
		"NeedsEntitiesToRun": true,
		"Order": 10,
		"RequiresParameters": 
		[
			{
				"Name": "Parameter 1 description",
				"Type": "string",
			},
			{
				"Name": "Parameter 2 description",
				"Type": "Boolean",
			}
		]
	},
	...
]


Run Command

Runs a command based on its Key and one or more proposal record IDs.
POST https://spaces.nexudus.com/api/billing/proposals/runacommand
πŸ”’ Requires role "Proposal-Edit"

Example request

POST https://spaces.nexudus.com/api/billing/proposals/runcommand
Content-Type: application/json
Authentication: Basic ZXhhbXBsZUBuZXh1ZHVzLmNvbTpFeGFtcGxlMTIzNA==

{
	"Ids":[1329961649],
	"Parameters": 
	[
		{ 
			"Type": "string"
			"Value":987654321
		},
		{
			"Type": "Boolean",
			"Value":true
		},
		...
	],
	"Key":"COMMAND_KEY_2"
}


Example valid response


{
	"Errors": null
	"JavaScript": null
	"Message": "Result description"
	"OpenInDialog": false
	"OpenInWindow": false
	"RedirectURL": null
	"Status": 200
	"UpdatedBy": "email@example.net"
	"UpdatedOn: "2020-06-04T11:40:20Z"
	"Value: {Id: 12345678}
	"WasSuccessful: true
}


Enumerated values

ProposalStatus

GET /api/utils/enums?name=eProposalStatus

Binary files

The following endpoints return binary data. Check the `ContentType` header to understand the type of file being returned in the response stream.

DocumentToSignBinaryDocument

GET https://spaces.nexudus.com/api/billing/proposals/getdocumenttosignbinarydocument/:id
URL parameters
Id: number required
The id of the Proposal to get the documenttosignbinarydocument for.

DocumentToSendBinaryDocument

GET https://spaces.nexudus.com/api/billing/proposals/getdocumenttosendbinarydocument/:id
URL parameters
Id: number required
The id of the Proposal to get the documenttosendbinarydocument for.

ProposalFile

GET https://spaces.nexudus.com/api/billing/proposals/getproposalfile/:id
URL parameters
Id: number required
The id of the Proposal to get the proposalfile for.

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Please sign in to leave a comment.