v1

latestOpenAPI 3.0.32026-07-2632131.4 MB
Expenses (only available for accounting add-on users)

Create expense

Creates a new manual expense.

Validates the expense date against the lock period and rejects creation if the date is locked.

Required fields: name, expenseDate, categoryId, chargeableAmount, currency, paymentShareAmountType, revenueShareAmountType, shares, and shareOption. Either owners or listingIds must be provided (mutually exclusive).

Type (owner_charge or pmc_expense) is optional. If omitted, it is derived from the shares array: PMC_EXPENSE when PMC pays (or both PMC and Owner pay), OWNER_CHARGE when only Owner pays. If provided, it must match the calculated type from shares.

post/expenses-api/expenses

Request body

type'owner_charge' | 'pmc_expense'

Expense type. If not provided, will be automatically calculated from shares array. If provided, must match the calculated type from shares.

namestring required
expenseDatestring required

Date of the expense in ISO 8601 format (YYYY-MM-DD)

categoryIdstring required
descriptionstring
chargeableAmountnumber required
currencystring required
paymentShareAmountType'fixed' | 'percent' required
revenueShareAmountType'fixed' | 'percent' required
taxCategoryCode'vat' | 'gst'

Legacy; prefer taxCategoryId when specifying tax category.

taxCategoryIdstring
taxNamestring
taxDescriptionstring
taxAmountType'percent'
taxAmountnumber

Tax amount as a decimal between 0 and 1 (e.g., 0.2 for 20%)

taxPayeeTypesstring[]

Business entity types that pay the tax (e.g., ["OWNER"], ["OWNER", "PMC"])

isPmcAsVendorboolean
vendorIdstring
reservationIdstring
externalRefIdstring

A unique identifier that serves as a reference to an external object. This ID can be used to link the current resource to a related entity in another system

listingIdsstring[]

Required when owners property is not in use. Each item must be a valid MongoDB ObjectId.

shareOption'pmc_pays_to_vendor' | 'owner_pays_to_vendor' | 'pmc_and_owner_pay_to_vendor' | 'owner_pays_to_pmc_and_vendor' | 'owner_pays_to_pmc' required

Example request

{
  "type": "owner_charge",
  "name": "Full feat Exp Rule",
  "expenseDate": "2025-05-16",
  "categoryId": "091b9801-e66f-4bcc-bca7-69536e18bc1d",
  "description": "Example description",
  "chargeableAmount": 20,
  "currency": "USD",
  "paymentShareAmountType": "fixed",
  "revenueShareAmountType": "percent",
  "taxCategoryCode": "vat",
  "taxCategoryId": "091b9801-e66f-4bcc-bca7-69536e18bc1d",
  "taxName": "VAT test",
  "taxDescription": "Value Added Tax",
  "taxAmountType": "percent",
  "taxAmount": 0.2,
  "taxPayeeTypes": [
    "OWNER"
  ],
  "isPmcAsVendor": true,
  "vendorId": "67d16b88b962316b4b888afb",
  "reservationId": "67d16b88b962316b4b888afb",
  "externalRefId": "EXT-REF-12345",
  "owners": [
    {
      "ownerId": "some id"
    }
  ],
  "listingIds": [
    "67d16b88b962316b4b888afb"
  ],
  "shares": [
    {
      "type": "payment",
      "businessEntityType": "OWNER",
      "share": 1
    },
    {
      "type": "revenue",
      "businessEntityType": "PMC",
      "share": 0.3
    },
    {
      "type": "revenue",
      "businessEntityType": "VENDOR",
      "share": 0.7
    }
  ],
  "shareOption": "owner_pays_to_pmc",
  "attachments": [
    {
      "url": "https://cdn.filepicker.io/api/file/bBnKEk8TlmJAUHcLApRx",
      "urlThumbnail": "https://cdn.filepicker.io/api/file/bBnKEk8TlmJAUHcLApRx",
      "extension": "png",
      "fileName": "Invoice copy"
    }
  ]
}

Response

Created expense(s) wrapped in a data array