VRPlatformVRPlatform
Recurring fees

/recurring-fees/{id}

Update a recurring fee. Every account reference must belong to the tenant; active fees also require active direct and tax posting accounts, including on reactivation. Changing the default keeps distinct listing-period overrides and converts rates equal to the previous default back to inheritance. The response includes an operation when the change queues reservation journal recalculation. Archived fees recalculate only reservations already referencing them.

Required scope: recurring-fees:write

PUT
/recurring-fees/{id}
X-API-Key<token>

API key provided in dashboard

In: header

Path Parameters

id*string
Match^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
Formatuuid

Query Parameters

dryRun?boolean

Validate this request through the real write path, then roll back all changes. See https://docs.vrplatform.app/api/dry-run-mode.

Request Body

application/json

uniqueRef?string|null
name?string
formula?string
defaultRate?integer|null
icon?string|null
type?string
Value in"managementFee" | "additionalFee" | "bookingChannelFee" | "cleaningFee" | "merchantFee"
taxRateId?string|null
taxBehavior?string|null
revenueRecognition?string|null
status?string|null
rateType?string|null
creditAccountId?string|null
debitAccountId?string|null
creditParty?string|null
debitParty?string|null
bookingChannelsFilter?|null
statusFilter?string|null
accountTotalConditions?|null
listingSubscriptions?|null

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X PUT "https://api.vrplatform.app/recurring-fees/497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{}'
{
  "name": "string",
  "formula": "string",
  "defaultRate": -9007199254740991,
  "icon": "string",
  "type": "managementFee",
  "taxBehavior": "excluded",
  "revenueRecognition": "checkIn",
  "status": "active",
  "rateType": "flat",
  "creditParty": "manager",
  "debitParty": "manager",
  "bookingChannelsFilter": [
    "string"
  ],
  "statusFilter": "canceled",
  "accountTotalConditions": [
    {
      "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
      "operator": ">",
      "centValue": -9007199254740991
    }
  ],
  "id": "string",
  "uniqueRef": "string",
  "lock": {
    "status": "locked",
    "booksClosed": {
      "date": "string"
    },
    "ownerStatement": {
      "ids": [
        "497f6eca-6276-4993-bfeb-53cbbbba6f08"
      ]
    },
    "reconciled": {
      "bankRecordIds": [
        "497f6eca-6276-4993-bfeb-53cbbbba6f08"
      ]
    },
    "statementPeriod": {
      "hits": [
        {
          "listingId": "8c73d933-f7ed-437e-9da1-caac95adc1ae",
          "txnAt": "string",
          "openFrom": "string"
        }
      ]
    }
  },
  "creditAccount": {
    "id": "string",
    "name": "string",
    "uniqueRef": "string",
    "status": "active"
  },
  "debitAccount": {
    "id": "string",
    "name": "string",
    "uniqueRef": "string",
    "status": "active"
  },
  "linkedAccounts": [
    {
      "id": "string",
      "name": "string",
      "uniqueRef": "string",
      "status": "active"
    }
  ],
  "includedFinancials": [
    {
      "accountId": "3d07c219-0a88-45be-9cfc-91e9d095a1e9",
      "lineType": "string",
      "name": "string",
      "app": {
        "id": "string",
        "name": "string"
      }
    }
  ],
  "taxRate": {
    "id": "string",
    "name": "string",
    "basisPoints": 100000
  },
  "activeListings": 9007199254740991,
  "operation": {
    "operationId": "3051932a-fdd2-48fa-b330-7e7d41535969",
    "type": "ach-verification",
    "status": "queued",
    "resource": {
      "type": "bank-rule",
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "role": "source"
    }
  }
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "MISDIRECTED_REQUEST",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": {
    "teamId": "a4ede8ba-7c0a-4485-8763-cbd9b282fbec",
    "dataRegion": "ap",
    "apiBaseUrl": "http://example.com"
  }
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "LOCKED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}
{
  "code": "AUDIT_CURSOR_EXPIRED",
  "reason": "accountClassificationLocked",
  "message": "string",
  "links": {
    "docs": "string",
    "schema": "string"
  },
  "issues": [
    {
      "code": "duplicateLast4",
      "message": "string",
      "path": [
        "string"
      ],
      "schema": "string"
    }
  ],
  "retryable": true,
  "context": null
}