Skip to main content
POST
/
api
/
billing
/
tariffs
Create Tariff
curl --request POST \
  --url https://spaces.nexudus.com/api/billing/tariffs \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "BusinessId": 123,
  "Name": "<string>",
  "SystemTariffType": 123,
  "Price": 123,
  "CurrencyId": 123,
  "CancellationPeriod": 123,
  "DisplayOrder": 123,
  "InvoiceEvery": 123,
  "InvoiceEveryWeeks": 123,
  "BookingDueDateStrategy": 123,
  "AddressIdentityCheckProvider": 123,
  "AddressIdentityCheckRepeatPattern": 123,
  "IdentityCheckProvider": 123,
  "IdentityCheckRepeatPattern": 123,
  "DeliveryPreferencesMail": 123,
  "DeliveryPreferencesParcels": 123,
  "DeliveryPreferencesChecks": 123,
  "DeliveryPreferencesPublicity": 123,
  "DeliveryPreferencesOther": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A Tariff (also called a Plan) is a membership plan that customers can sign up to in exchange for access to a coworking space and other benefits. Tariffs are the foundation for contracts — every time a customer signs up to a plan, Nexudus generates a CoworkerContract for that member based on the plan’s settings. Plans define billing frequency (in months or weeks via InvoiceEvery / InvoiceEveryWeeks), pricing, cancellation rules, and limits on check-ins, booking minutes, visitor passes, and hours. Members are invoiced at the end of each billing cycle. Plans can include benefits such as day passes, booking credits, and money credits — these are configured through CoworkerExtraService and Product entities linked to the contract. Use SystemTariffType to categorise the plan (e.g. FullTimeHotDesk, VirtualOffice, Storage). Use Visible to control whether the plan appears on the members portal. Plans can optionally require identity checks before activation, enforce contract terms, support pausing, and define delivery handling preferences for virtual office mail. When you edit a plan, changes impact all members signed up to that plan. To customise settings for an individual member, edit their CoworkerContract instead.

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

Enums

ValueName
1FullTimePrivateOffice
2PartTimePrivateOffice
3FullTimeDedicatedDesk
4PartTimeDedicatedDesk
5FullTimeHotDesk
6PartTimeHotDesk
7FullTimeOther
8PartTimeOther
9Storage
10VirtualOffice
11Virtual
99Other
ValueName
1RenewalDate
2BookingEndDate
3BookingCreationDate
4NextNthOfMonth
ValueName
1Manual
2StripeIdentity
ValueName
1Never
2Every3Months
3Every6Months
4Every12Months
5Every24Months
ValueName
1StoreForCollection
2Forward
3OpenScanForward
4OpenScanRecycle
5OpenScanShred
6OpenScanStoreForCollection
7Recycle
8ReturnToSender
9Shred
10DepositCheck
11Unknown

Request Body

Required Fields

BusinessId
integer
required
ID of the business linked to this record.
Name
string
required
Plan name.
SystemTariffType
integer
required
Category of the plan: FullTimePrivateOffice, PartTimePrivateOffice, FullTimeDedicatedDesk, PartTimeDedicatedDesk, FullTimeHotDesk, PartTimeHotDesk, FullTimeOther, PartTimeOther, Storage, VirtualOffice, Virtual, or Other. Defaults to eTariffType.FullTimePrivateOffice.
Price
number
required
Recurring price charged per billing cycle.
CurrencyId
integer
required
ID of the currency linked to this record.
CancellationPeriod
integer
required
Number of days’ notice required before a contract can be cancelled.
DisplayOrder
integer
required
Display order on the members portal (lower numbers appear first).
InvoiceEvery
integer
required
Billing cycle length in months. Set to 0 if billing by weeks instead.
InvoiceEveryWeeks
integer
required
Billing cycle length in weeks. Set to 0 if billing by months instead.
BookingDueDateStrategy
integer
required
Strategy for determining when booking charges are due: RenewalDate, BookingEndDate, BookingCreationDate, or NextNthOfMonth. Defaults to eTariffBookingDueDateStrategy.RenewalDate.
AddressIdentityCheckProvider
integer
required
Provider used for address identity checks: Manual or StripeIdentity. Defaults to eIdentityCheckProvider.Manual.
AddressIdentityCheckRepeatPattern
integer
required
How often to repeat the address identity check: Never, Every3Months, Every6Months, Every12Months, or Every24Months. Defaults to eIdentityCheckRepeatPattern.Never.
IdentityCheckProvider
integer
required
Provider used for identity checks: Manual or StripeIdentity. Defaults to eIdentityCheckProvider.Manual.
IdentityCheckRepeatPattern
integer
required
How often to repeat the identity check: Never, Every3Months, Every6Months, Every12Months, or Every24Months. Defaults to eIdentityCheckRepeatPattern.Never.
DeliveryPreferencesMail
integer
required
Allowed handling preferences for mail deliveries (virtual office).
DeliveryPreferencesParcels
integer
required
Allowed handling preferences for parcel deliveries (virtual office).
DeliveryPreferencesChecks
integer
required
Allowed handling preferences for check deliveries (virtual office).
DeliveryPreferencesPublicity
integer
required
Allowed handling preferences for publicity deliveries (virtual office).
DeliveryPreferencesOther
integer
required
Allowed handling preferences for other deliveries (virtual office).

Optional Fields

DefaultInvoicingDay
integer
Day of the month on which invoices are generated for members on this plan.
Visible
boolean
Whether the plan is visible to customers on the members portal and mobile app.
AvailableToAi
boolean
Whether this plan is available to any AI channels (Email, Chat or WhatsApp) for recommendations for private offices;.
NotesForAi
string
Custom notes provided to the AI assistant when describing this plan.
ShowPriceForAi
boolean
Whether to show the plan price to the AI assistant.
PriceForAi
number
Custom price shown to the AI assistant instead of the actual price.
UseTimePasses
boolean
Whether this plan uses time passes for check-in access.
Description
string
Plan description shown to customers.
InvoiceLineDisplayAs
string
Custom text shown on the invoice line instead of the plan name.
SignUpFee
number
One-off fee charged when a customer first signs up to this plan.
TaxRateId
integer
Standard tax rate applied to charges on this plan.
ReducedTaxRateId
integer
Reduced tax rate applied when applicable.
ExemptTaxRateId
integer
Tax-exempt rate applied when applicable.
FinancialAccountId
integer
Financial account used for revenue tracking.
TermsAndConditions
string
Terms and conditions text that members must accept when signing up.
NewContractDocumentUrl
string
URL to upload a new contract document template.
ClearContractDocumentFile
boolean
Set to true to remove the uploaded contract document file.
GroupName
string
Group name used to visually group plans together on the members portal.
DisablePortalCancellations
boolean
Prevents members from cancelling this plan through the members portal.
SubscribersLimit
integer
Maximum number of members that can be signed up to this plan at any time.
CancellationLimitDays
integer
Minimum number of days a contract must be active before it can be cancelled.
DefaultContractTerm
integer
Default minimum contract term in months for new sign-ups.
CancelMemeberAccountAfter
integer
Number of days after contract cancellation before the member account is deactivated.
CheckinPricePlanLimit
integer
Maximum number of check-ins included per billing cycle.
CheckinMonthLimit
integer
Maximum number of check-ins allowed per month.
CheckinWeekLimit
integer
Maximum number of check-ins allowed per week.
VisitorMonthLimit
integer
Maximum number of visitor passes allowed per month.
VisitorWeekLimit
integer
Maximum number of visitor passes allowed per week.
VisitorDayLimit
integer
Maximum number of visitor passes allowed per day.
HoursPricePlanLimit
integer
Maximum number of hours included per billing cycle.
HoursMonthLimit
integer
Maximum number of hours allowed per month.
HoursWeekLimit
integer
Maximum number of hours allowed per week.
BookingMinuteWeekLimit
integer
Maximum booking minutes allowed per week.
BookingMinuteMonthLimit
integer
Maximum booking minutes allowed per month.
DiscountExtraServices
number
Discount percentage for extra services.
DiscountTimePasses
number
Discount percentage for time passes.
DiscountCharges
number
Discount percentage for charges.
AutoCancelAfter
integer
Number of days after which the contract is automatically cancelled if not paid.
AdvanceInvoiceCycles
integer
Number of billing cycles to invoice in advance.
ProrateDayOfMonth
integer
Day of the month used to align billing cycles when prorating.
ProrateDaysBefore
integer
Number of days before the prorate day to start prorating.
ProrateCancellations
boolean
Whether to prorate the final invoice when a contract is cancelled mid-cycle.
ChargeAndExtend
integer
Number of days to extend a contract after payment is received.
ExcludeFromInvoice
boolean
Whether to exclude this plan’s charges from member invoices.
AutoRaiseInvoices
boolean
Whether to automatically generate invoices at the end of each billing cycle.
RaiseInvoiceEvery
integer
Raise invoice every N months.
RaiseInvoiceEveryWeeks
integer
Raise invoice every N weeks.
MinimumPrice
number
Minimum total amount charged per billing cycle regardless of usage.
MinimumPriceIncludeTimePasses
boolean
Whether time pass charges count towards the minimum price.
MinimumPriceIncludeExtraServices
boolean
Whether extra service charges count towards the minimum price.
MinimumPriceIncludeEvents
boolean
Whether event charges count towards the minimum price.
Archived
boolean
Whether the plan is archived and no longer available for new sign-ups.
Starred
boolean
Whether the plan is starred (highlighted) on the members portal.
KeepNewAccountsOnHold
boolean
Whether new sign-ups are kept on hold until manually approved.
CanBePaused
boolean
Whether members can pause their contract on this plan.
PauseYearlyLimit
integer
Maximum number of times a contract can be paused per year.
PauseCyclesLimit
integer
Maximum number of billing cycles a contract can be paused for.
BookingDueDateDayOfMonth
integer
Day of the month used when BookingDueDateStrategy is NextNthOfMonth.
IsVirtualOffice
boolean
Whether this is a virtual office plan with mail handling features.
WaitForIdentityChecksToActivate
boolean
Whether to keep the contract on hold until all required identity checks are completed.
RequestAddressIdentityCheck
boolean
Whether to request an address identity check from members signing up to this plan.
AddressIdentityCheckDescription
string
Instructions shown to members when completing the address identity check.
KeepPausedIfAddressMismatch
boolean
Whether to keep the contract paused if the address identity check reveals a mismatch.
RequestIdentityCheck
boolean
Whether to request an identity (ID document) check from members signing up to this plan.
IdentityCheckDescription
string
Instructions shown to members when completing the identity check.
RequestAmlCheck
boolean
Whether to request an AML check from members signing up to this plan.
AmlCheckOpenSanctionsEnabled
boolean
Whether to enable AML checks against the OpenSanctions dataset.
AmlCheckPappersEnabled
boolean
Whether to enable AML checks against the Pappers dataset.
AmlCheckOpenSanctionsDataset
string
Which OpenSanctions dataset to check against for AML screening (e.g. ‘default’).
AmlCheckScoreThreshold
number
Score threshold for AML checks, between 0 and 1. Matches with a score above this threshold will be considered a positive match. Default is 0.7.
SendOnBoardingFormByEmail
boolean
Whether to email the onboarding form to new members signing up to this plan.
FormPageId
integer
ID of the onboarding form page sent to new members.
ProductsStore
integer[]
Product IDs for mail stored for collection (virtual office).
ProductsForward
integer[]
Product IDs for mail forwarding (virtual office).
ProductsRecycle
integer[]
Product IDs for mail recycling (virtual office).
ProductsShred
integer[]
Product IDs for mail shredding (virtual office).
ProductsScan
integer[]
Product IDs for mail scanning (virtual office).
ProductsReturn
integer[]
Product IDs for returning mail to sender (virtual office).
ProductsDeposit
integer[]
Product IDs for check deposits (virtual office).
ProductsCollect
integer[]
Product IDs for mail collection (virtual office).
MaximumDeliveryStorageDays
integer
Maximum number of days deliveries are stored before being returned (virtual office).
MaximumCompanyAliases
integer
Maximum number of company name aliases allowed for mail handling (virtual office).
MaximumRecipients
integer
Maximum number of mail recipients allowed (virtual office).
MaximumAddresses
integer
Maximum number of forwarding addresses allowed (virtual office).
TransferProductsToContract
boolean
Whether to automatically transfer mail handling products to the member’s contract.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/billing/tariffs" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BusinessId": 0,
    "Name": "",
    "SystemTariffType": 0,
    "Price": 0,
    "CurrencyId": 0,
    "CancellationPeriod": 0,
    "DisplayOrder": 0,
    "InvoiceEvery": 0,
    "InvoiceEveryWeeks": 0,
    "BookingDueDateStrategy": 0,
    "AddressIdentityCheckProvider": 0,
    "AddressIdentityCheckRepeatPattern": 0,
    "IdentityCheckProvider": 0,
    "IdentityCheckRepeatPattern": 0,
    "DeliveryPreferencesMail": 0,
    "DeliveryPreferencesParcels": 0,
    "DeliveryPreferencesChecks": 0,
    "DeliveryPreferencesPublicity": 0,
    "DeliveryPreferencesOther": 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 tariff was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "Tariff 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
}