Skip to main content
POST
/
api
/
billing
/
charges
Create Charge
curl --request POST \
  --url https://spaces.nexudus.com/api/billing/charges \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "CoworkerId": 123,
  "BusinessId": 123,
  "Quantity": 123,
  "DiscountAmount": 123,
  "CreditAmount": 123,
  "TotalAmount": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}
A Charge is a generic debit item applied to a customer account. Prefer more specific entities when available — use CoworkerProduct for product sales, Booking for room/resource bookings, EventAttendee for event registrations, and CoworkerContract for recurring plan charges. Charges can reference the originating sale from another entity via its UniqueId (a GUID, not an integer ID). This is how items billed to a non-paying team member are passed through to the team’s paying member: the charge appears on the paying member’s account with a UniqueId reference back to the original CoworkerProduct, Booking, EventAttendee, or CoworkerTimePass. Booking-related extra-service charges are represented by CoworkerExtraService records and referenced via CoworkerExtraServiceUniqueId.

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

Request Body

Required Fields

CoworkerId
integer
required
ID of the coworker linked to this record.
BusinessId
integer
required
ID of the business linked to this record.
Quantity
integer
required
Number of units.
DiscountAmount
number
required
Discount amount.
CreditAmount
number
required
Credit amount.
TotalAmount
number
required
Total amount.

Optional Fields

Description
string
Free-text description of this charge.
InvoiceLineDisplayAs
string
Display text on invoice line.
RegularCharge
boolean
Whether this is a regular charge.
DueDate
string
Due date.
PurchaseOrder
string
Purchase order.
TaxRateId
integer
ID of the tax rate linked to this record.
FinancialAccountId
integer
ID of the financial account linked to this record.
Invoiced
boolean
Whether the charge has been invoiced.
SaleDate
string
Sale date.
FromTeamMember
boolean
Whether from team member is enabled.
CoworkerExtraServiceName
string
The coworker extra service name value for this charge.
CoworkerTimePassName
string
The coworker time pass name value for this charge.
CoworkerProductName
string
The coworker product name value for this charge.
TariffName
string
The tariff name value for this charge.
CoworkerProductUniqueId
string
ID of the coworker product unique associated with this record.
BookingUniqueId
string
ID of the booking unique associated with this record.
RepeatFrom
string
Repeat from date.
RepeatUntil
string
Repeat until date.

Code Examples

curl -X POST \
  "https://spaces.nexudus.com/api/billing/charges" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "CoworkerId": 0,
    "BusinessId": 0,
    "Quantity": 0,
    "DiscountAmount": 0,
    "CreditAmount": 0,
    "TotalAmount": 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 charge was created successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "Charge 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": "DiscountAmount: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "DiscountAmount"
    }
  ],
  "WasSuccessful": false
}