/listings/ownership-periods/{id}
Update a listing ownership period by ID. Date-range changes relink journal entries to the adjusted period, with onConflict controlling how overlaps with neighboring periods are resolved (updateExisting by default). Periods are half-open, so a period ending on the next period start does not overlap it. Each changed date boundary is validated independently against locked history. Toggling setListingInactive flips the active flag of the journal entries in the range and refreshes affected reservation totals. Active periods require at least one member; deactivation periods require an empty members array, so change the mode and members atomically. Changes touching books-closed or statement-locked months are rejected. Supports dryRun. See https://docs.vrplatform.app/guides/build/portfolio.
Required scope: ownerships:write
Authorization
apiKey API key provided in dashboard
In: header
Path Parameters
^([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)$uuidQuery Parameters
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
^([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)$uuidOne or more unique owners for an active period; canonical explicit splits total 100000 basis points, while legacy 100-point totals remain accepted; use an empty array only with setListingInactive=true
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/listings/ownership-periods/497f6eca-6276-4993-bfeb-53cbbbba6f08" \ -H "Content-Type: application/json" \ -d '{}'{
"listingId": "8c73d933-f7ed-437e-9da1-caac95adc1ae",
"startAt": "string",
"endAt": "string",
"setListingInactive": true,
"businessModel": "managed",
"reserve": -9007199254740991,
"members": [
{
"split": 100000,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"contact": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"firstName": "string",
"uniqueRef": "string",
"shortRef": "string",
"email": "user@example.com",
"type": "owner"
}
}
],
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"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",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "MISDIRECTED_REQUEST",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"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",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "LOCKED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}{
"code": "AUDIT_CURSOR_EXPIRED",
"message": "string",
"links": {
"docs": "string",
"schema": "string"
},
"issues": [
{
"message": "string",
"path": [
"string"
],
"schema": "string"
}
],
"retryable": true,
"context": null
}