Skip to main content
POST
/
api
/
billing
/
contractpausedperiods
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A ContractPausedPeriod represents a freeze period applied to a customer’s plan contract (CoworkerContract). Plan freezing lets admins — and optionally customers — suspend a contract for one or more billing cycles without cancelling it. Freeze dates are always aligned to billing cycle boundaries: PauseFrom is always the first day of the customer’s next billing cycle, and PauseUntil is always the first day of the billing cycle when the plan is due to restart. While a contract is frozen:
  • No charges are generated for the contract for the duration of the freeze.
  • The customer’s status reverts to Contact if they have no other active contract.
  • No member rates or benefits from the frozen contract apply during the freeze.
  • Invoices are still generated on the usual billing day for any purchases (bookings, products) linked to the contract.
Admins can freeze contracts from the customer’s account, via teams, or in bulk from Finance > Contracts. Whether customers can freeze their own plans from the Members Portal is controlled by the AllowContractFreezing setting on the plan (Tariff).

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

Request Body

Required Fields

CoworkerContractId
integer
required
ID of the customer contract being frozen.
PauseFrom
string
required
UTC date when the freeze starts. Always falls on the first day of a billing cycle.
PauseUntil
string
required
UTC date when the freeze ends. Always falls on the first day of the billing cycle when the plan is due to restart.

Optional Fields

Notes
string
Optional notes or reason for this freeze period.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/billing/contractpausedperiods" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "CoworkerContractId": 0,
    "PauseFrom": "2025-01-15T10:30:00Z",
    "PauseUntil": "2025-01-15T10:30:00Z"
}'

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 contractpausedperiod was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "ContractPausedPeriod 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": "PauseFrom: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "PauseFrom"
    }
  ],
  "WasSuccessful": false
}